+++ /dev/null
-# CODE FREEZE NOTICE
-
-An -rc1 tag has been created and a release is being prepared, so please note that
-PRs introducing new features and APIs will be held back until the new version
-has been released.
--- /dev/null
+# CODE FREEZE NOTICE
+
+An -rc1 tag has been created and a release is being prepared, so please note that
+PRs introducing new features and APIs will be held back until the new version
+has been released.
else
MESON_ARGS+=(-Dmode=release --optimization=2)
fi
+
+ # Some variation: remove machine-id, like on Debian builders to ensure unit tests still work.
+ if [ -w /etc/machine-id ]; then
+ mv /etc/machine-id /etc/machine-id.bak
+ fi
fi
# The install_tag feature introduced in 0.60 causes meson to fail with fatal-meson-warnings
# "Project targeting '>= 0.53.2' but tried to use feature introduced in '0.60.0': install_tag arg in custom_target"
;;
CLEANUP)
info "Cleanup phase"
+ if [ ! -f /etc/machine-id ] && [ -w /etc/machine-id.bak ]; then
+ mv /etc/machine-id.bak /etc/machine-id
+ fi
;;
*)
echo >&2 "Unknown phase '$phase'"
--- /dev/null
+MIT No Attribution
+
+Copyright <YEAR> <COPYRIGHT HOLDER>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* the following sources are licensed under the **CC0-1.0** license:
- src/basic/siphash24.c
- src/basic/siphash24.h
- - src/systemctl/systemd-sysv-install.SKELETON
- tools/check-includes.pl
+ * the following sources are licensed under the **MIT-0** license:
- all examples under man/
+ - src/systemctl/systemd-sysv-install.SKELETON
- config files and examples under /network
* the following sources are under **Public Domain** (LicenseRef-murmurhash2-public-domain):
- src/basic/MurmurHash2.c
systemd System and Service Manager
-CHANGES WITH 252 in spe:
+CHANGES WITH 252 🎃:
Announcements of Future Feature Removals:
* The sd-boot stub exports a StubFeatures flag, which is used by
bootctl to show features supported by the stub that was used to boot.
- * sd-boot will now try to detect and warn about overlapping PE sections
- in the UKI.
+ * The PE section offsets that are used by tools that assemble unified
+ kernel images have historically been hard-coded. This may lead to
+ overlapping PE sections which may break on boot. The UKI will now try
+ to detect and warn about this.
+
+ Any tools that assemble UKIs must update to calculate these offsets
+ dynamically. Future sd-stub versions may use offsets that will not
+ work with the currently used set of hard-coded offsets!
* sd-stub now accepts (and passes to the initrd and then to the full
OS) new PE sections '.pcrsig' and '.pcrkey' that can be used to embed
useful to avoid link flaps while the underlying service providing the
interface is being serviced.
+ * RouteTable= now also accepts route table names.
+
Changes in systemd-nspawn:
* The --bind= and --overlay= options now support relative paths.
* systemd-udev will now create infiniband/by-path and
infiniband/by-ibdev links for Infiniband verbs devices.
+ * systemd-udev-trigger.service will now also prioritize input devices.
+
* ConditionACPower= and systemd-ac-power will now assume the system is
running on AC power if no battery can be found.
* When using gcrypt, all systemd tools and services will now configure
it to prefer the OS random number generator if present.
+ * All example code shipped with documentation has been relicensed from CC0
+ to MIT-0.
+
+ * Unit tests will no longer fail when running on a system without
+ /etc/machine-id.
+
Experimental features:
* BPF programs can now be compiled with bpf-gcc (requires libbpf >= 1.0
Contributions from: 김인수, Adam Williamson, adrian5, Aidan Dang,
Akihiko Odaki, Alban Bedel, Albert Mikaelyan, Aleksey Vasenev,
Alexander Graf, Alexander Shopov, Alexander Wilson,
- Alper Nebi Yasak, anarcat, Andre Kalb, Andrew Stone,
- Andrey Albershteyn, Anita Zhang, Ansgar Burchardt,
+ Alper Nebi Yasak, anarcat, Anders Jonsson, Andre Kalb,
+ Andrew Stone, Andrey Albershteyn, Anita Zhang, Ansgar Burchardt,
Antonio Alvarez Feijoo, Arnaud Ferraris, Aryan singh, asavah,
Avamander, Avram Lubkin, Balázs Meskó, Bastien Nocera,
Benjamin Franzke, BerndAdameit, bin456789, Celeste Liu,
Jan Janssen, Jan Kuparinen, Jan Luebbe, Jan Macku,
Jason A. Donenfeld, Javkhlanbayar Khongorzul, Jeremy Soller,
JeroenHD, jiangchuangang, João Loureiro,
- Joaquín Ignacio Aramendía, Johannes Schauer Marin Rodrigues,
- Jonas Kümmerlin, Jonas Witschel, Jonathan Kang, Jonathan Lebon,
- Joost Heitbrink, Jörg Thalheim, josh-gordon-fb, Joyce, Kai Lueke,
- lastkrick, Lennart Poettering, Leon M. George, licunlong, Li kunyu,
+ Joaquín Ignacio Aramendía, Jochen Sprickerhof,
+ Johannes Schauer Marin Rodrigues, Jonas Kümmerlin,
+ Jonas Witschel, Jonathan Kang, Jonathan Lebon, Joost Heitbrink,
+ Jörg Thalheim, josh-gordon-fb, Joyce, Kai Lueke, lastkrick,
+ Lennart Poettering, Leon M. George, licunlong, Li kunyu,
LockBlock-dev, Loïc Collignon, Lubomir Rintel, Luca Boccassi,
Luca BRUNO, Ludwig Nussel, Łukasz Stelmach, Maccraft123,
Marc Kleine-Budde, Marius Vollmer, Martin Wilck, matoro,
Matthias Lisin, Max Gautier, Maxim Mikityanskiy, Michael Biebl,
Michal Koutný, Michal Sekletár, Michal Stanke, Mike Gilbert,
Mitchell Freiderich, msizanoen1, Nick Rosbrook, nl6720, Oğuz Ersen,
- Oleg Solovyov, Pablo Ceballos, Pavel Zhukov, Phaedrus Leeds,
- Philipp Gortan, Piotr Drąg, Pyfisch, Quentin Deslandes,
- Rahil Bhimjiani, Rene Hollander, Richard Huang, Richard Phibel,
- Rudi Heitbaum, Sam James, Sarah Brofeldt, Sean Anderson,
- Sebastian Scheibner, Shreenidhi Shedi, Sonali Srivastava,
- Steve Ramage, Suraj Krishnan, Swapnil Devesh, Ted X. Toth,
- Thomas Blume, Thomas Haller, Thomas Hebb, Tomáš Hnyk,
- Tomasz Paweł Gajc, Topi Miettinen, Ulrich Ölmann, undef,
- Uriel Corfa, Victor Westerhuis, Vincent Dagonneau,
- Vishal Chillara Srinivas, Vito Caputo, Weblate, Wenchao Hao,
- William Roberts, williamsumendap, wineway, Yuri Chornoivan,
- Yu Watanabe, Zbigniew Jędrzejewski-Szmek, Zhaofeng Li, наб
-
- – Under the Sea, 2022-10-07
+ Oleg Solovyov, Olga Smirnova, Pablo Ceballos, Pavel Zhukov,
+ Phaedrus Leeds, Philipp Gortan, Piotr Drąg, Pyfisch,
+ Quentin Deslandes, Rahil Bhimjiani, Rene Hollander, Richard Huang,
+ Richard Phibel, Rudi Heitbaum, Sam James, Sarah Brofeldt,
+ Sean Anderson, Sebastian Scheibner, Shreenidhi Shedi,
+ Sonali Srivastava, Steve Ramage, Suraj Krishnan, Swapnil Devesh,
+ Takashi Sakamoto, Ted X. Toth, Temuri Doghonadze, Thomas Blume,
+ Thomas Haller, Thomas Hebb, Tomáš Hnyk, Tomasz Paweł Gajc,
+ Topi Miettinen, Ulrich Ölmann, undef, Uriel Corfa,
+ Victor Westerhuis, Vincent Dagonneau, Vishal Chillara Srinivas,
+ Vito Caputo, Weblate, Wenchao Hao, William Roberts, williamsumendap,
+ wineway, xiaoyang, Yuri Chornoivan, Yu Watanabe,
+ Zbigniew Jędrzejewski-Szmek, Zhaofeng Li, наб
+
+ – The Great Beyond, 2022-10-31 👻
CHANGES WITH 251:
Features:
+* sd-stub: add ".bootcfg" section for kernel bootconfig data (as per
+
+* tpm2: add (optional) support for generating a local signing key from PCR 15
+ state. use private key part to sign PCR 7+14 policies. stash signatures for
+ expected PCR7+14 policies in EFI var. use public key part in disk encryption.
+ generate new sigs whenever db/dbx/mok/mokx gets updated. that way we can
+ securely bind against SecureBoot/shim state, without having to renroll
+ everything on each update (but we still have to generate one sig on each
+ update, but that should be robust/idempotent). needs rollback protection, as
+ usual.
+
+* Lennart: big blog story about DDIs
+
+* Lennart: big blog story about building initrds
+
+* Lennart: big blog story about "why systemd-boot"
+
+* bpf: see if we can use BPF to solve the syslog message cgroup source problem:
+ one idea would be to patch source sockaddr of all AF_UNIX/SOCK_DGRAM to
+ implicitly contain the source cgroup id. Another idea would be to patch
+ sendto()/connect()/sendmsg() sockaddr on-the-fly to use a different target
+ sockaddr.
+
+* bpf: see if we can address opportunistic inode sharing of immutable fs images
+ with BPF. i.e. if bpf gives us power to hook into openat() and return a
+ different inode than is requested for which we however it has same contents
+ then we can use that to implement opportunistic inode sharing among DDIs:
+ make all DDIs ship xattr on all reg files with a SHA256 hash. Then, also
+ dictate that DDIs should come with a top-level subdir where all reg files are
+ linked into by their SHA256 sum. Then, whenever an inode is opened with the
+ xattr set, check bpf table to find dirs with hashes for other prior DDIs and
+ try to use inode from there.
+
+* dissect too: add --with switch that will invoke a command with the image
+ mounted, and as current working directory. Terminate once done.
+
+* extend the verity signature partition to permit multiple signatures for the
+ same root hash, so that people can sign a single image with multiple keys.
+
* consider adding a new partition type, just for /opt/ for usage in system
extensions
these signatures into one object, and then include the result in the UKI.
Then, if you bind a LUKS volume to public key X it really only can be
unlocked during early boot, and you bind a LUKS volume to public key Y it
- realy only can be unlocked during later boot, and so on.
+ really only can be unlocked during later boot, and so on.
* dissection policy should enforce that unlocking can only take place by
certain means, i.e. only via pw, only via tpm2, or only via fido, or a
software updates. But that's wrong. Recent fwupd (rightfully) contains code
for updating the dbx denylist. This means even without any active policy
change PCR 7 might change. Hence, better idea might be in systemd-creds to
- default to PCR 15 at least of sd-stub is used (i.e. bind to system identity),
- and in cryptsetup simply the empty list?
+ default to PCR 15 at least if sd-stub is used (i.e. bind to system identity),
+ and in cryptsetup simply the empty list? Also, PCR 14 almost certainly should
+ be included as much as PCR 7 (as it contains shim's policy, which is
+ certainly as relevant as PCR 7 on many systems)
* move discoverable partition spec and boot loader spec over to uapi group
OUI:043110*
ID_OUI_FROM_DATABASE=Inspur Group Co., Ltd.
+OUI:043201*
+ ID_OUI_FROM_DATABASE=Broadcom Limited
+
OUI:0432F4*
ID_OUI_FROM_DATABASE=Partron
OUI:046E49*
ID_OUI_FROM_DATABASE=TaiYear Electronic Technology (Suzhou) Co., Ltd
+OUI:047056*
+ ID_OUI_FROM_DATABASE=Arcadyan Corporation
+
OUI:0470BC*
ID_OUI_FROM_DATABASE=Globalstar Inc.
OUI:080371*
ID_OUI_FROM_DATABASE=KRG CORPORATE
+OUI:0804B4*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
OUI:080581*
ID_OUI_FROM_DATABASE=Roku, Inc.
OUI:10BD55*
ID_OUI_FROM_DATABASE=Q-Lab Corporation
+OUI:10BE99*
+ ID_OUI_FROM_DATABASE=Netberg
+
OUI:10BEF5*
ID_OUI_FROM_DATABASE=D-Link International
OUI:147EA1*
ID_OUI_FROM_DATABASE=Britania Eletrônicos S.A.
+OUI:147F0F*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
OUI:14825B*
ID_OUI_FROM_DATABASE=Hefei Radio Communication Technology Co., Ltd
OUI:14DCE2*
ID_OUI_FROM_DATABASE=THALES AVS France
+OUI:14DD02*
+ ID_OUI_FROM_DATABASE=Liangang Optoelectronic Technology CO., Ltd.
+
OUI:14DD9C*
ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
OUI:249504*
ID_OUI_FROM_DATABASE=SFR
+OUI:24952F*
+ ID_OUI_FROM_DATABASE=Google, Inc.
+
OUI:249745*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
OUI:28B4FB*
ID_OUI_FROM_DATABASE=Sprocomm Technologies CO.,LTD.
+OUI:28B5E8*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
OUI:28B77C0*
ID_OUI_FROM_DATABASE=SHENZHEN EVIEW GPS TECHNOLOGY
OUI:30AEF6*
ID_OUI_FROM_DATABASE=Radio Mobile Access
+OUI:30AF7E*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
OUI:30AFCE*
ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
OUI:3838A6*
ID_OUI_FROM_DATABASE=Arista Networks
+OUI:38396C*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:383A210*
ID_OUI_FROM_DATABASE=R3C Information(Shenzhen) Co.,Ltd.
OUI:38FB14*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:38FC34*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:38FC98*
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:3C306F*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:3C3174*
+ ID_OUI_FROM_DATABASE=Google, Inc.
+
OUI:3C3178*
ID_OUI_FROM_DATABASE=Qolsys Inc.
OUI:3C3A73*
ID_OUI_FROM_DATABASE=Avaya Inc
+OUI:3C3B4D*
+ ID_OUI_FROM_DATABASE=Toyo Seisakusho Kaisha, Limited
+
OUI:3C3B99*
ID_OUI_FROM_DATABASE=ITEL MOBILE LIMITED
OUI:3CF652*
ID_OUI_FROM_DATABASE=zte corporation
+OUI:3CF692*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:3CF72A*
ID_OUI_FROM_DATABASE=Nokia Corporation
OUI:40FE95*
ID_OUI_FROM_DATABASE=New H3C Technologies Co., Ltd
+OUI:40FF40*
+ ID_OUI_FROM_DATABASE=GloquadTech
+
OUI:440010*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:44EE02*
ID_OUI_FROM_DATABASE=MTI Ltd.
+OUI:44EE14*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
OUI:44EE30*
ID_OUI_FROM_DATABASE=Budelmann Elektronik GmbH
ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
OUI:4829E4*
- ID_OUI_FROM_DATABASE=AO NPK RoTeK
+ ID_OUI_FROM_DATABASE=AO
OUI:482AE3*
ID_OUI_FROM_DATABASE=Wistron InfoComm(Kunshan)Co.,Ltd.
OUI:482FD7*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:4831DB*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:4833DD*
ID_OUI_FROM_DATABASE=ZENNIO AVANCE Y TECNOLOGIA, S.L.
OUI:4C875D*
ID_OUI_FROM_DATABASE=Bose Corporation
+OUI:4C889E*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:4C8B30*
ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc
OUI:5065F3*
ID_OUI_FROM_DATABASE=Hewlett Packard
+OUI:5066E5*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:506787*
ID_OUI_FROM_DATABASE=Planet Networks
OUI:60C658*
ID_OUI_FROM_DATABASE=PHYTRONIX Co.,Ltd.
+OUI:60C727*
+ ID_OUI_FROM_DATABASE=Digiboard Eletronica da Amazonia Ltda
+
OUI:60C798*
ID_OUI_FROM_DATABASE=Verifone
OUI:60DEF3*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:60DEF4*
+ ID_OUI_FROM_DATABASE=Shenzhen iComm Semiconductor CO.,LTD
+
OUI:60E00E*
ID_OUI_FROM_DATABASE=SHINSEI ELECTRONICS CO LTD
OUI:64B21D*
ID_OUI_FROM_DATABASE=Chengdu Phycom Tech Co., Ltd.
+OUI:64B2B4*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
OUI:64B310*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:686359*
ID_OUI_FROM_DATABASE=Advanced Digital Broadcast SA
+OUI:686372*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:68644B*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:6899CD*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+OUI:689A21*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
OUI:689A87*
ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
OUI:705A0F*
ID_OUI_FROM_DATABASE=Hewlett Packard
+OUI:705A6F0*
+ ID_OUI_FROM_DATABASE=Thyracont Vacuum Instruments GmbH
+
+OUI:705A6F1*
+ ID_OUI_FROM_DATABASE=BMR s.r.o.
+
OUI:705A9E*
ID_OUI_FROM_DATABASE=Technicolor CH USA Inc.
OUI:70B64F*
ID_OUI_FROM_DATABASE=Guangzhou V-SOLUTION Electronic Technology Co., Ltd.
+OUI:70B651*
+ ID_OUI_FROM_DATABASE=Eight Sleep
+
OUI:70B7AA*
ID_OUI_FROM_DATABASE=vivo Mobile Communication Co., Ltd.
OUI:7C1689*
ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
+OUI:7C1779*
+ ID_OUI_FROM_DATABASE=EM Microelectronic
+
OUI:7C18CD*
ID_OUI_FROM_DATABASE=E-TRON Co.,Ltd.
OUI:7CC709*
ID_OUI_FROM_DATABASE=SHENZHEN RF-LINK TECHNOLOGY CO.,LTD.
+OUI:7CC74A*
+ ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
+
OUI:7CC77E*
ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Technologies Co.,LTD
OUI:7CE1FF*
ID_OUI_FROM_DATABASE=Computer Performance, Inc. DBA Digital Loggers, Inc.
+OUI:7CE269*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
OUI:7CE2CA*
ID_OUI_FROM_DATABASE=Juniper Networks
OUI:84D343*
ID_OUI_FROM_DATABASE=Calix Inc.
+OUI:84D352*
+ ID_OUI_FROM_DATABASE=Tonly Technology Co. Ltd
+
OUI:84D3D5*
ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
OUI:886B76*
ID_OUI_FROM_DATABASE=CHINA HOPEFUL GROUP HOPEFUL ELECTRIC CO.,LTD
+OUI:886D2D*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:886EE1*
ID_OUI_FROM_DATABASE=Erbe Elektromedizin GmbH
OUI:8C1F641AF*
ID_OUI_FROM_DATABASE=EnviroNode IoT Solutions
+OUI:8C1F641B2*
+ ID_OUI_FROM_DATABASE=Rapid-e-Engineering Steffen Kramer
+
OUI:8C1F641B5*
ID_OUI_FROM_DATABASE=Xicato
OUI:8C1F643FF*
ID_OUI_FROM_DATABASE=UISEE(SHANGHAI) AUTOMOTIVE TECHNOLOGIES LTD.
+OUI:8C1F64402*
+ ID_OUI_FROM_DATABASE=Integer.pl S.A.
+
OUI:8C1F64406*
ID_OUI_FROM_DATABASE=ANDA TELECOM PVT LTD
OUI:8C1F645AF*
ID_OUI_FROM_DATABASE=Teq Diligent Product Solutions Pvt. Ltd.
+OUI:8C1F645B2*
+ ID_OUI_FROM_DATABASE=MIJ CO LTD
+
OUI:8C1F645B3*
ID_OUI_FROM_DATABASE=eumig industrie-TV GmbH.
OUI:8C1F64685*
ID_OUI_FROM_DATABASE=Sanchar Communication Systems
+OUI:8C1F64691*
+ ID_OUI_FROM_DATABASE=Wende Tan
+
OUI:8C1F64692*
ID_OUI_FROM_DATABASE=Nexilis Electronics India Pvt Ltd (PICSYS)
OUI:8C1F646AE*
ID_OUI_FROM_DATABASE=Bray International
+OUI:8C1F646B1*
+ ID_OUI_FROM_DATABASE=Specialist Mechanical Engineers (PTY)LTD
+
OUI:8C1F646B3*
ID_OUI_FROM_DATABASE=Feritech Ltd.
OUI:8C1F64731*
ID_OUI_FROM_DATABASE=ehoosys Co.,LTD.
+OUI:8C1F64733*
+ ID_OUI_FROM_DATABASE=Video Network Security
+
OUI:8C1F64737*
ID_OUI_FROM_DATABASE=Vytahy-Vymyslicky s.r.o.
OUI:8C1F648F4*
ID_OUI_FROM_DATABASE=Loadrite (Auckland) Limited
+OUI:8C1F648F6*
+ ID_OUI_FROM_DATABASE=Idneo Technologies S.A.U.
+
OUI:8C1F648F8*
ID_OUI_FROM_DATABASE=HIGHVOLT Prüftechnik
OUI:8C1F649FA*
ID_OUI_FROM_DATABASE=METRONA-Union GmbH
+OUI:8C1F649FB*
+ ID_OUI_FROM_DATABASE=CI SYSTEMS ISRAEL LTD
+
OUI:8C1F649FD*
ID_OUI_FROM_DATABASE=Vishay Nobel AB
OUI:8C1F64A76*
ID_OUI_FROM_DATABASE=DEUTA-WERKE GmbH
+OUI:8C1F64A83*
+ ID_OUI_FROM_DATABASE=EkspertStroyProekt
+
OUI:8C1F64A84*
ID_OUI_FROM_DATABASE=Beijing Wenrise Technology Co., Ltd.
OUI:8C1F64B64*
ID_OUI_FROM_DATABASE=GSP Sprachtechnologie GmbH
+OUI:8C1F64B65*
+ ID_OUI_FROM_DATABASE=HomyHub SL
+
OUI:8C1F64B67*
ID_OUI_FROM_DATABASE=M2M craft Co., Ltd.
OUI:8C1F64BC6*
ID_OUI_FROM_DATABASE=Chengdu ZiChen Time&Frequency Technology Co.,Ltd
+OUI:8C1F64BC9*
+ ID_OUI_FROM_DATABASE=GL TECH CO.,LTD
+
OUI:8C1F64BCB*
ID_OUI_FROM_DATABASE=A&T Corporation
OUI:8C1F64D9A*
ID_OUI_FROM_DATABASE=Beijing Redlink Information Technology Co., Ltd.
+OUI:8C1F64DA6*
+ ID_OUI_FROM_DATABASE=Power Electronics Espana, S.L.
+
OUI:8C1F64DAA*
ID_OUI_FROM_DATABASE=Davetech Limited
OUI:8C1F64DC0*
ID_OUI_FROM_DATABASE=Pigs Can Fly Labs LLC
+OUI:8C1F64DC2*
+ ID_OUI_FROM_DATABASE=Procon Electronics Pty Ltd
+
OUI:8C1F64DC9*
ID_OUI_FROM_DATABASE=Peter Huber Kaeltemaschinenbau AG
OUI:90CDB6*
ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
+OUI:90CEB8*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
OUI:90CF15*
ID_OUI_FROM_DATABASE=Nokia Corporation
ID_OUI_FROM_DATABASE=OSOM Products Inc
OUI:94C9B79*
- ID_OUI_FROM_DATABASE=Private
+ ID_OUI_FROM_DATABASE=Titanium union(shenzhen)technology co.,ltd
OUI:94C9B7A*
ID_OUI_FROM_DATABASE=ShenZhen Beide Technology Co.,LTD
OUI:A0BFA5*
ID_OUI_FROM_DATABASE=CORESYS
+OUI:A0C20D*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:A0C2DE*
ID_OUI_FROM_DATABASE=Costar Video Systems
OUI:ACFAA5*
ID_OUI_FROM_DATABASE=digitron
+OUI:ACFC82*
+ ID_OUI_FROM_DATABASE=Shenzhen Sundray Technologies Company Limited
+
OUI:ACFD93*
ID_OUI_FROM_DATABASE=WEIFANG GOERTEK ELECTRONICS CO.,LTD
OUI:B4AC8C*
ID_OUI_FROM_DATABASE=Bern University of Applied Sciences
+OUI:B4AC9D*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
OUI:B4ADA3*
ID_OUI_FROM_DATABASE=Guangzhou Shiyuan Electronic Technology Company Limited
OUI:B894D2*
ID_OUI_FROM_DATABASE=Retail Innovation HTT AB
+OUI:B894D9*
+ ID_OUI_FROM_DATABASE=Texas Instruments
+
OUI:B894E7*
ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
OUI:C4A402*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
+OUI:C4A5590*
+ ID_OUI_FROM_DATABASE=Archermind Japan Co.,Ltd.
+
OUI:C4A5591*
ID_OUI_FROM_DATABASE=Motive Technologies, Inc.
+OUI:C4A5592*
+ ID_OUI_FROM_DATABASE=SHENZHEN ORFA TECH CO., LTD
+
+OUI:C4A5593*
+ ID_OUI_FROM_DATABASE=X-speed lnformation Technology Co.,Ltd
+
+OUI:C4A5594*
+ ID_OUI_FROM_DATABASE=Private
+
OUI:C4A5595*
ID_OUI_FROM_DATABASE=Moultrie Mobile
OUI:C4A559D*
ID_OUI_FROM_DATABASE=MINOLTA SECURITY
+OUI:C4A559E*
+ ID_OUI_FROM_DATABASE=SERNET (SUZHOU) TECHNOLOGIES CORPORATION
+
OUI:C4A72B*
ID_OUI_FROM_DATABASE=SHENZHEN CHUANGWEI-RGB ELECTRONICS CO.,LTD
OUI:D0A637*
ID_OUI_FROM_DATABASE=Apple, Inc.
+OUI:D0A9D3*
+ ID_OUI_FROM_DATABASE=EM Microelectronic
+
OUI:D0ABD5*
ID_OUI_FROM_DATABASE=Intel Corporate
OUI:D404CD*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
+OUI:D404E6*
+ ID_OUI_FROM_DATABASE=Broadcom Limited
+
OUI:D404FF*
ID_OUI_FROM_DATABASE=Juniper Networks
OUI:D43DF3*
ID_OUI_FROM_DATABASE=Zyxel Communications Corporation
+OUI:D43F32*
+ ID_OUI_FROM_DATABASE=eero inc.
+
OUI:D43FCB*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
OUI:D833B7*
ID_OUI_FROM_DATABASE=Sagemcom Broadband SAS
+OUI:D8341C*
+ ID_OUI_FROM_DATABASE=GD Midea Air-Conditioning Equipment Co.,Ltd.
+
OUI:D834D1*
ID_OUI_FROM_DATABASE=Shenzhen Orange Digital Technology Co.,Ltd
ID_OUI_FROM_DATABASE=Hangzhou Bigbright Integrated communications system Co.,Ltd
OUI:D8AF81*
- ID_OUI_FROM_DATABASE=AO NPK RoTeK
+ ID_OUI_FROM_DATABASE=AO
OUI:D8AFF1*
ID_OUI_FROM_DATABASE=Panasonic Appliances Company
OUI:DC774C*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc
+OUI:DC7794*
+ ID_OUI_FROM_DATABASE=Huawei Device Co., Ltd.
+
OUI:DC7834*
ID_OUI_FROM_DATABASE=LOGICOM SA
OUI:DCA266*
ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
+OUI:DCA313*
+ ID_OUI_FROM_DATABASE=Shenzhen Changjin Communication Technology Co.,Ltd
+
OUI:DCA333*
ID_OUI_FROM_DATABASE=Shenzhen YOUHUA Technology Co., Ltd
ID_OUI_FROM_DATABASE=Lumens Digital Optics Inc.
OUI:DCE305*
- ID_OUI_FROM_DATABASE=AO NPK RoTeK
+ ID_OUI_FROM_DATABASE=AO
OUI:DCE5330*
ID_OUI_FROM_DATABASE=FLYHT Aerospace
OUI:E41FE9*
ID_OUI_FROM_DATABASE=Dunkermotoren GmbH
+OUI:E42150*
+ ID_OUI_FROM_DATABASE=Shanghai Chint low voltage electrical technology Co.,Ltd.
+
OUI:E422A5*
ID_OUI_FROM_DATABASE=PLANTRONICS, INC.
OUI:F83441*
ID_OUI_FROM_DATABASE=Intel Corporate
+OUI:F83451*
+ ID_OUI_FROM_DATABASE=Comcast-SRL
+
OUI:F8345A*
ID_OUI_FROM_DATABASE=Hitron Technologies. Inc
---- 20-acpi-vendor.hwdb.base 2022-10-24 20:18:18.479120318 +0100
-+++ 20-acpi-vendor.hwdb 2022-10-24 20:21:56.647726523 +0100
+--- 20-acpi-vendor.hwdb.base 2022-10-31 11:15:33.457268398 +0000
++++ 20-acpi-vendor.hwdb 2022-10-31 11:15:33.461268485 +0000
@@ -3,6 +3,8 @@
# Data imported from:
# https://uefi.org/uefi-pnp-export
pci:v00000731d00009100sv00000731sd00009102*
ID_MODEL_FROM_DATABASE=JM9100 (-I)
+pci:v00000731d00009100sv00000731sd00009103*
+ ID_MODEL_FROM_DATABASE=JM9100 (M)
+
pci:v00000731d0000910A*
ID_MODEL_FROM_DATABASE=JH910
pci:v00001022d000014BA*
ID_MODEL_FROM_DATABASE=Family 17h-19h PCIe GPP Bridge
+pci:v00001022d000014CD*
+ ID_MODEL_FROM_DATABASE=Family 19h USB4/Thunderbolt PCIe tunnel
+
pci:v00001022d00001510*
ID_MODEL_FROM_DATABASE=Family 14h Processor Root Complex
pci:v00001022d000015D5*
ID_MODEL_FROM_DATABASE=FireFlight USB 3.1
+pci:v00001022d000015D6*
+ ID_MODEL_FROM_DATABASE=Rembrandt USB4 XHCI controller #5
+
+pci:v00001022d000015D7*
+ ID_MODEL_FROM_DATABASE=Rembrandt USB4 XHCI controller #6
+
pci:v00001022d000015DA*
ID_MODEL_FROM_DATABASE=Raven/Raven2 PCIe Dummy Host Bridge
pci:v00001022d0000160F*
ID_MODEL_FROM_DATABASE=Arden Device 18h: Function 7
+pci:v00001022d0000161A*
+ ID_MODEL_FROM_DATABASE=Rembrandt USB4 XHCI controller #1
+
+pci:v00001022d0000161B*
+ ID_MODEL_FROM_DATABASE=Rembrandt USB4 XHCI controller #2
+
+pci:v00001022d0000161C*
+ ID_MODEL_FROM_DATABASE=Rembrandt USB4 XHCI controller #7
+
+pci:v00001022d0000161D*
+ ID_MODEL_FROM_DATABASE=Rembrandt USB4 XHCI controller #3
+
+pci:v00001022d0000161E*
+ ID_MODEL_FROM_DATABASE=Rembrandt USB4 XHCI controller #4
+
+pci:v00001022d0000161F*
+ ID_MODEL_FROM_DATABASE=Rembrandt USB4 XHCI controller #8
+
pci:v00001022d00001620*
ID_MODEL_FROM_DATABASE=Anubis HT Configuration
pci:v00001022d00001671*
ID_MODEL_FROM_DATABASE=Cezanne Data Fabric; Function 7
+pci:v00001022d00001679*
+ ID_MODEL_FROM_DATABASE=Rembrandt Data Fabric: Device 18h; Function 0
+
+pci:v00001022d0000167A*
+ ID_MODEL_FROM_DATABASE=Rembrandt Data Fabric: Device 18h; Function 1
+
+pci:v00001022d0000167B*
+ ID_MODEL_FROM_DATABASE=Rembrandt Data Fabric: Device 18h; Function 2
+
+pci:v00001022d0000167C*
+ ID_MODEL_FROM_DATABASE=Rembrandt Data Fabric: Device 18h; Function 3
+
+pci:v00001022d0000167D*
+ ID_MODEL_FROM_DATABASE=Rembrandt Data Fabric: Device 18h; Function 4
+
+pci:v00001022d0000167E*
+ ID_MODEL_FROM_DATABASE=Rembrandt Data Fabric: Device 18h; Function 5
+
+pci:v00001022d0000167F*
+ ID_MODEL_FROM_DATABASE=Rembrandt Data Fabric: Device 18h; Function 6
+
+pci:v00001022d00001680*
+ ID_MODEL_FROM_DATABASE=Rembrandt Data Fabric: Device 18h; Function 7
+
pci:v00001022d00001700*
ID_MODEL_FROM_DATABASE=Family 12h/14h Processor Function 0
ID_MODEL_FROM_DATABASE=GK107GL [GRID K100 vGPU] (GRID K100)
pci:v000010DEd00000FE8*
- ID_MODEL_FROM_DATABASE=GK107M
+ ID_MODEL_FROM_DATABASE=GK107M [N14P-GS]
pci:v000010DEd00000FE9*
ID_MODEL_FROM_DATABASE=GK107M [GeForce GT 750M Mac Edition]
pci:v000010DEd000011A7*
ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 675MX]
+pci:v000010DEd000011A8*
+ ID_MODEL_FROM_DATABASE=GK104GLM [Quadro K5100M]
+
pci:v000010DEd000011A9*
ID_MODEL_FROM_DATABASE=GK104M [GeForce GTX 870M]
pci:v000010DEd00001E02*
ID_MODEL_FROM_DATABASE=TU102 [TITAN RTX]
+pci:v000010DEd00001E03*
+ ID_MODEL_FROM_DATABASE=TU102 [GeForce RTX 2080 Ti 12GB]
+
pci:v000010DEd00001E04*
ID_MODEL_FROM_DATABASE=TU102 [GeForce RTX 2080 Ti]
pci:v000010DEd00001FB6*
ID_MODEL_FROM_DATABASE=TU117GLM [T600 Laptop GPU]
+pci:v000010DEd00001FB6sv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=TU117GLM [T600 Laptop GPU] (Precision 3571)
+
pci:v000010DEd00001FB7*
ID_MODEL_FROM_DATABASE=TU117GLM [T550 Laptop GPU]
pci:v000010DEd000020F2*
ID_MODEL_FROM_DATABASE=GA100 [A100-PG506-217]
+pci:v000010DEd000020F3*
+ ID_MODEL_FROM_DATABASE=GA100 [A800-SXM4-80GB]
+
pci:v000010DEd000020F5*
- ID_MODEL_FROM_DATABASE=GA100 [A800-80]
+ ID_MODEL_FROM_DATABASE=GA100 [A800 80GB PCIe]
pci:v000010DEd000020F6*
- ID_MODEL_FROM_DATABASE=GA100 [A800-40]
+ ID_MODEL_FROM_DATABASE=GA100 [A800 40GB PCIe]
pci:v000010DEd00002182*
ID_MODEL_FROM_DATABASE=TU116 [GeForce GTX 1660 Ti]
pci:v000010ECd0000525Asv00001028sd000009BE*
ID_MODEL_FROM_DATABASE=RTS525A PCI Express Card Reader (Latitude 7410)
+pci:v000010ECd0000525Asv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=RTS525A PCI Express Card Reader (Precision 3571)
+
pci:v000010ECd0000525Asv000017AAsd0000224F*
ID_MODEL_FROM_DATABASE=RTS525A PCI Express Card Reader (ThinkPad X1 Carbon 5th Gen)
pci:v00001179d00000116*
ID_MODEL_FROM_DATABASE=XG5 NVMe SSD Controller
+pci:v00001179d00000116sv00001179sd00000001*
+ ID_MODEL_FROM_DATABASE=XG5 NVMe SSD Controller
+
pci:v00001179d0000011A*
ID_MODEL_FROM_DATABASE=XG6 NVMe SSD Controller
pci:v00001D0Fd0000EFA1*
ID_MODEL_FROM_DATABASE=Elastic Fabric Adapter (EFA)
+pci:v00001D0Fd0000EFA2*
+ ID_MODEL_FROM_DATABASE=Elastic Fabric Adapter (EFA)
+
pci:v00001D17*
ID_VENDOR_FROM_DATABASE=Zhaoxin
pci:v00001D6Cd00001022*
ID_MODEL_FROM_DATABASE=AR-ARKA-FX2 [Arkville 128B DPDK Data Mover for Agilex]
+pci:v00001D6Cd00001023*
+ ID_MODEL_FROM_DATABASE=AR-BD-FX1 [BufferDirect Zero-Bounce Data Motion Endpoint]
+
pci:v00001D6Cd00004200*
ID_MODEL_FROM_DATABASE=A5PL-E1-10GETI [10 GbE Ethernet Traffic Instrument]
pci:v00001EE1d00000050*
ID_MODEL_FROM_DATABASE=Aurora NVMe SSD Controller
+pci:v00001EE1d00000050sv00001EE1sd00000009*
+ ID_MODEL_FROM_DATABASE=Aurora NVMe SSD Controller (Airglow A430 NVMe SSD U.2 1.6TB)
+
+pci:v00001EE1d00000050sv00001EE1sd0000000A*
+ ID_MODEL_FROM_DATABASE=Aurora NVMe SSD Controller (Airglow A430 NVMe SSD U.2 3.2TB)
+
pci:v00001EE4*
ID_VENDOR_FROM_DATABASE=PETAIO INC
ID_VENDOR_FROM_DATABASE=3SNIC Ltd
pci:v00001F3Fd00002100*
- ID_MODEL_FROM_DATABASE=3SRAID SAS/SATA HBA
+ ID_MODEL_FROM_DATABASE=SSSRAID SAS/SATA HBA
pci:v00001F3Fd00002100sv00001F3Fsd00000120*
- ID_MODEL_FROM_DATABASE=3SRAID SAS/SATA HBA (HBA 32 Ports)
+ ID_MODEL_FROM_DATABASE=SSSRAID SAS/SATA HBA (HBA 32 Ports)
pci:v00001F3Fd00002100sv00001F3Fsd00000125*
- ID_MODEL_FROM_DATABASE=3SRAID SAS/SATA HBA (HBA 40 Ports)
+ ID_MODEL_FROM_DATABASE=SSSRAID SAS/SATA HBA (HBA 40 Ports)
pci:v00001F3Fd00002100sv00001F3Fsd00000180*
- ID_MODEL_FROM_DATABASE=3SRAID SAS/SATA HBA (HBA 16 Ports)
+ ID_MODEL_FROM_DATABASE=SSSRAID SAS/SATA HBA (HBA 16 Ports)
pci:v00001F3Fd00002100sv00001F3Fsd00000185*
- ID_MODEL_FROM_DATABASE=3SRAID SAS/SATA HBA (HBA 8 Ports)
+ ID_MODEL_FROM_DATABASE=SSSRAID SAS/SATA HBA (HBA 8 Ports)
pci:v00001F3Fd00002200*
- ID_MODEL_FROM_DATABASE=3SRAID RAID controller
+ ID_MODEL_FROM_DATABASE=SSSRAID RAID controller
pci:v00001F3Fd00002200sv00001F3Fsd00000185*
- ID_MODEL_FROM_DATABASE=3SRAID RAID controller (RAID Controller 16 Ports with 2G Cache)
+ ID_MODEL_FROM_DATABASE=SSSRAID RAID controller (RAID Controller 16 Ports with 2G Cache)
pci:v00001F3Fd00002200sv00001F3Fsd000001A1*
- ID_MODEL_FROM_DATABASE=3SRAID RAID controller (RAID Controller 40 Ports with 2G Cache)
+ ID_MODEL_FROM_DATABASE=SSSRAID RAID controller (RAID Controller 40 Ports with 2G Cache)
pci:v00001F3Fd00002200sv00001F3Fsd000001A4*
- ID_MODEL_FROM_DATABASE=3SRAID RAID controller (RAID Controller 16 Ports with 4G Cache)
+ ID_MODEL_FROM_DATABASE=SSSRAID RAID controller (RAID Controller 16 Ports with 4G Cache)
pci:v00001F3Fd00002200sv00001F3Fsd000001A8*
- ID_MODEL_FROM_DATABASE=3SRAID RAID controller (RAID Controller 32 Ports with 4G Cache)
+ ID_MODEL_FROM_DATABASE=SSSRAID RAID controller (RAID Controller 32 Ports with 4G Cache)
pci:v00001F3Fd00002200sv00001F3Fsd000001AD*
- ID_MODEL_FROM_DATABASE=3SRAID RAID controller (RAID Controller 40 Ports with 4G Cache)
+ ID_MODEL_FROM_DATABASE=SSSRAID RAID controller (RAID Controller 40 Ports with 4G Cache)
pci:v00001F3Fd00009001*
- ID_MODEL_FROM_DATABASE=Ethernet VF
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet VF
pci:v00001F3Fd00009001sv00001F3Fsd00001000*
- ID_MODEL_FROM_DATABASE=Ethernet VF
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet VF (Ethernet VF)
pci:v00001F3Fd00009002*
- ID_MODEL_FROM_DATABASE=Ethernet VF Hyper-V
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet VF Hyper-V
pci:v00001F3Fd00009002sv00001F3Fsd00001000*
- ID_MODEL_FROM_DATABASE=Ethernet VF Hyper-V
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet VF Hyper-V (Ethernet VF Hyper-V)
pci:v00001F3Fd00009003*
- ID_MODEL_FROM_DATABASE=Ethernet SDI VF
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet SDI VF
pci:v00001F3Fd00009003sv00001F3Fsd00001000*
- ID_MODEL_FROM_DATABASE=Ethernet SDI VF
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet SDI VF (Ethernet SDI VF)
pci:v00001F3Fd00009004*
- ID_MODEL_FROM_DATABASE=Ethernet SDI VF Hyper-V
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet SDI VF Hyper-V
pci:v00001F3Fd00009004sv00001F3Fsd00001000*
- ID_MODEL_FROM_DATABASE=Ethernet SDI VF Hyper-V
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet SDI VF Hyper-V (Ethernet SDI VF Hyper-V)
pci:v00001F3Fd00009008*
- ID_MODEL_FROM_DATABASE=3SFC VF
+ ID_MODEL_FROM_DATABASE=SSSFC VF
pci:v00001F3Fd00009008sv00001F3Fsd00001000*
- ID_MODEL_FROM_DATABASE=3SFC VF
+ ID_MODEL_FROM_DATABASE=SSSFC VF (3SFC VF)
pci:v00001F3Fd00009009*
- ID_MODEL_FROM_DATABASE=3SFC VF Hyper-V
+ ID_MODEL_FROM_DATABASE=SSSFC VF Hyper-V
pci:v00001F3Fd00009009sv00001F3Fsd00001000*
- ID_MODEL_FROM_DATABASE=3SFC VF Hyper-V
+ ID_MODEL_FROM_DATABASE=SSSFC VF Hyper-V (3SFC VF Hyper-V)
pci:v00001F3Fd00009010*
- ID_MODEL_FROM_DATABASE=3SFC FC Controller
+ ID_MODEL_FROM_DATABASE=SSSFC FC Controller
pci:v00001F3Fd00009010sv00001F3Fsd00000041*
- ID_MODEL_FROM_DATABASE=3SFC FC Controller (Dual Port 16GE FC to PCIe Gen4 x16 Adapter)
+ ID_MODEL_FROM_DATABASE=SSSFC FC Controller (Dual Port 16GE FC to PCIe Gen4 x16 Adapter)
pci:v00001F3Fd00009010sv00001F3Fsd00000061*
- ID_MODEL_FROM_DATABASE=3SFC FC Controller (Dual Port 32GE FC to PCIe Gen4 x16 Adapter)
+ ID_MODEL_FROM_DATABASE=SSSFC FC Controller (Dual Port 32GE FC to PCIe Gen4 x16 Adapter)
pci:v00001F3Fd00009020*
- ID_MODEL_FROM_DATABASE=Ethernet Network Adapter
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet Network Adapter
pci:v00001F3Fd00009020sv00001F3Fsd00000051*
- ID_MODEL_FROM_DATABASE=Ethernet Network Adapter (Dual Port 25GE Ethernet Network Adapter)
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet Network Adapter (Dual Port 25GE Ethernet Network Adapter)
pci:v00001F3Fd00009020sv00001F3Fsd00000052*
- ID_MODEL_FROM_DATABASE=Ethernet Network Adapter (Quad Port 25GE Ethernet Network Adapter)
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet Network Adapter (Quad Port 25GE Ethernet Network Adapter)
pci:v00001F3Fd00009020sv00001F3Fsd000000A1*
- ID_MODEL_FROM_DATABASE=Ethernet Network Adapter (Dual Port 100GE Ethernet Network Adapter)
+ ID_MODEL_FROM_DATABASE=SSSNIC Ethernet Network Adapter (Dual Port 100GE Ethernet Network Adapter)
pci:v00001F3Fd00009030*
- ID_MODEL_FROM_DATABASE=IPU
+ ID_MODEL_FROM_DATABASE=SSSNIC IPU
pci:v00001F3Fd00009030sv00001F3Fsd00000051*
- ID_MODEL_FROM_DATABASE=IPU (Dual Port 25GE IPU)
+ ID_MODEL_FROM_DATABASE=SSSNIC IPU (Dual Port 25GE IPU)
pci:v00001F3Fd00009031*
- ID_MODEL_FROM_DATABASE=SDI5.0
+ ID_MODEL_FROM_DATABASE=SSSNIC SDI5.0
pci:v00001F3Fd00009031sv00001F3Fsd00000051*
- ID_MODEL_FROM_DATABASE=SDI5.0 (Dual Port 25GE SDI5.0lite)
+ ID_MODEL_FROM_DATABASE=SSSNIC SDI5.0 (Dual Port 25GE SDI5.0lite)
pci:v00001F3Fd00009031sv00001F3Fsd000000A1*
- ID_MODEL_FROM_DATABASE=SDI5.0 (Dual Port 100GE SDI5.0)
+ ID_MODEL_FROM_DATABASE=SSSNIC SDI5.0 (Dual Port 100GE SDI5.0)
pci:v00001F3Fd00009032*
- ID_MODEL_FROM_DATABASE=SDI5.1
+ ID_MODEL_FROM_DATABASE=SSSNIC SDI5.1
pci:v00001F3Fd00009032sv00001F3Fsd000000A1*
- ID_MODEL_FROM_DATABASE=SDI5.1 (Dual Port 100GE SDI5.1)
+ ID_MODEL_FROM_DATABASE=SSSNIC SDI5.1 (Dual Port 100GE SDI5.1)
pci:v00001F40*
ID_VENDOR_FROM_DATABASE=Netac Technology Co.,Ltd
pci:v00008086d00001A1E*
ID_MODEL_FROM_DATABASE=Ethernet Connection (16) I219-LM
+pci:v00008086d00001A1Esv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Ethernet Connection (16) I219-LM (Precision 3571)
+
pci:v00008086d00001A1F*
ID_MODEL_FROM_DATABASE=Ethernet Connection (16) I219-V
pci:v00008086d0000461D*
ID_MODEL_FROM_DATABASE=Alder Lake Innovation Platform Framework Processor Participant
+pci:v00008086d0000461Dsv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake Innovation Platform Framework Processor Participant (Precision 3571)
+
pci:v00008086d0000461E*
ID_MODEL_FROM_DATABASE=Alder Lake-P Thunderbolt 4 USB Controller
+pci:v00008086d0000461Esv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake-P Thunderbolt 4 USB Controller (Precision 3571)
+
pci:v00008086d0000461F*
ID_MODEL_FROM_DATABASE=Alder Lake-P Thunderbolt 4 PCI Express Root Port #3
pci:v00008086d0000463E*
ID_MODEL_FROM_DATABASE=Alder Lake-P Thunderbolt 4 NHI #0
+pci:v00008086d0000463Esv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake-P Thunderbolt 4 NHI #0 (Precision 3571)
+
pci:v00008086d0000463F*
ID_MODEL_FROM_DATABASE=Alder Lake-P Thunderbolt 4 PCI Express Root Port #1
pci:v00008086d00004641*
ID_MODEL_FROM_DATABASE=12th Gen Core Processor Host Bridge/DRAM Registers
+pci:v00008086d00004641sv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=12th Gen Core Processor Host Bridge/DRAM Registers (Precision 3571)
+
pci:v00008086d0000464D*
ID_MODEL_FROM_DATABASE=12th Gen Core Processor PCI Express x4 Controller #0
pci:v00008086d0000464F*
ID_MODEL_FROM_DATABASE=12th Gen Core Processor Gaussian & Neural Accelerator
+pci:v00008086d0000464Fsv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=12th Gen Core Processor Gaussian & Neural Accelerator (Precision 3571)
+
pci:v00008086d00004660*
ID_MODEL_FROM_DATABASE=12th Gen Core Processor Host Bridge/DRAM Registers
pci:v00008086d00005182*
ID_MODEL_FROM_DATABASE=Alder Lake PCH eSPI Controller
+pci:v00008086d00005182sv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake PCH eSPI Controller (Precision 3571)
+
pci:v00008086d000051A3*
ID_MODEL_FROM_DATABASE=Alder Lake PCH-P SMBus Host Controller
+pci:v00008086d000051A3sv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake PCH-P SMBus Host Controller (Precision 3571)
+
pci:v00008086d000051A4*
ID_MODEL_FROM_DATABASE=Alder Lake-P PCH SPI Controller
+pci:v00008086d000051A4sv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake-P PCH SPI Controller (Precision 3571)
+
pci:v00008086d000051A8*
ID_MODEL_FROM_DATABASE=Alder Lake PCH UART #0
pci:v00008086d000051A9*
ID_MODEL_FROM_DATABASE=Alder Lake PCH UART #1
+pci:v00008086d000051B1*
+ ID_MODEL_FROM_DATABASE=Alder Lake PCI Express x1 Root Port #10
+
pci:v00008086d000051BF*
ID_MODEL_FROM_DATABASE=Alder Lake PCH-P PCI Express Root Port #9
pci:v00008086d000051C8*
ID_MODEL_FROM_DATABASE=Alder Lake PCH-P High Definition Audio Controller
+pci:v00008086d000051C8sv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake PCH-P High Definition Audio Controller (Precision 3571)
+
pci:v00008086d000051D3*
ID_MODEL_FROM_DATABASE=Alder Lake-P SATA AHCI Controller
+pci:v00008086d000051D3sv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake-P SATA AHCI Controller (Precision 3571)
+
pci:v00008086d000051D8*
ID_MODEL_FROM_DATABASE=Alder Lake-P Serial IO I2C Controller #2
pci:v00008086d000051E0*
ID_MODEL_FROM_DATABASE=Alder Lake PCH HECI Controller
+pci:v00008086d000051E0sv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake PCH HECI Controller (Precision 3571)
+
+pci:v00008086d000051E3*
+ ID_MODEL_FROM_DATABASE=Alder Lake AMT SOL Redirection
+
+pci:v00008086d000051E3sv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake AMT SOL Redirection (Precision 3571)
+
pci:v00008086d000051E8*
ID_MODEL_FROM_DATABASE=Alder Lake PCH Serial IO I2C Controller #0
+pci:v00008086d000051E8sv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake PCH Serial IO I2C Controller #0 (Precision 3571)
+
pci:v00008086d000051E9*
ID_MODEL_FROM_DATABASE=Alder Lake PCH Serial IO I2C Controller #1
+pci:v00008086d000051E9sv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake PCH Serial IO I2C Controller #1 (Precision 3571)
+
pci:v00008086d000051EA*
ID_MODEL_FROM_DATABASE=Alder Lake PCH Serial IO I2C Controller #2
pci:v00008086d000051ED*
ID_MODEL_FROM_DATABASE=Alder Lake PCH USB 3.2 xHCI Host Controller
+pci:v00008086d000051EDsv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake PCH USB 3.2 xHCI Host Controller (Precision 3571)
+
pci:v00008086d000051EF*
ID_MODEL_FROM_DATABASE=Alder Lake PCH Shared SRAM
+pci:v00008086d000051EFsv00001028sd00000B10*
+ ID_MODEL_FROM_DATABASE=Alder Lake PCH Shared SRAM (Precision 3571)
+
pci:v00008086d000051F0*
ID_MODEL_FROM_DATABASE=Alder Lake-P PCH CNVi WiFi
pci:v00008086d000051F0sv00008086sd00004070*
ID_MODEL_FROM_DATABASE=Alder Lake-P PCH CNVi WiFi (Wi-Fi 6 AX201 160MHz)
+pci:v00008086d000051F0sv00008086sd00004090*
+ ID_MODEL_FROM_DATABASE=Alder Lake-P PCH CNVi WiFi (Wi-Fi 6E AX211 160MHz)
+
pci:v00008086d00005200*
ID_MODEL_FROM_DATABASE=EtherExpress PRO/100 Intelligent Server PCI Bridge
# * Configuration ROM for AV/C Devices 1.0 (Dec. 12, 2000, 1394 Trading Association, TA Document
# 1999027)
#
+# Exceptional layout of configuration ROM for legacy device is described in annex of the above
+# document. The layout has some entries for model information in vendor directory instead of root
+# or unit directories. For the case, Linux FireWire subsystem don't detect Model_ID and model name,
+# thus node key without 'mo' field is detected. Wild card pattern is used to match the case with and
+# without mo field in customized key for node device.
# Just for backward compatibility. Please invalidate IEEE1394_UNIT_FUNCTION_VIDEO by adding entries
# if it is inconvenient.
-ieee1394:node:ven*mo*units*0x00a02d:0x010001*
-ieee1394:ven*mo*sp0000A02Dver00010001
+ieee1394:node:ven*units*0x00a02d:0x010001*
+ieee1394:ven*sp0000A02Dver00010001
IEEE1394_UNIT_FUNCTION_VIDEO=1
#
#
# Please invalidate IEEE1394_UNIT_FUNCTION_VIDEO by adding entries if it is inconvenient.
-ieee1394:node:ven*mo*units*0x00a02d:0x014000*
-ieee1394:ven*mo*sp0000A02Dver00014000
+ieee1394:node:ven*units*0x00a02d:0x014000*
+ieee1394:ven*sp0000A02Dver00014000
IEEE1394_UNIT_FUNCTION_VIDEO=1
# Just for backward compatibility. Please invalidate IEEE1394_UNIT_FUNCTION_VIDEO by adding entries
# if it is inconvenient.
-ieee1394:node:ven*mo*units*0x00a02d:0x014001*
-ieee1394:ven*mo*sp0000A02Dver00014001
+ieee1394:node:ven*units*0x00a02d:0x014001*
+ieee1394:ven*sp0000A02Dver00014001
IEEE1394_UNIT_FUNCTION_VIDEO=1
#
ID_MODEL_FROM_DATABASE=FireDTV C/CI
IEEE1394_UNIT_FUNCTION_VIDEO=1
+#
+# Legacy layout of configuration ROM described in Annex 1 of 'Configuration ROM for AV/C Devices
+# 1.0 (December 12, 2000, 1394 Trading Association, TA Document 1999027)'.
+#
+
+ieee1394:node:ven0x080046units0x00a02d:0x010001
+ieee1394:ven00080046mo00000000sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Sony Corporation
+ ID_MODEL_FROM_DATABASE=DCR-TRV310
+ IEEE1394_UNIT_FUNCTION_VIDEO=1
+
#
# Node with multiple units for several functions.
#
Sandy UT 84070\r
US\r
\r
-94-0E-E7 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-940EE7 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
- CN\r
-\r
-A8-B2-71 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-A8B271 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
- CN\r
-\r
50-5A-65 (hex) AzureWave Technology Inc.\r
505A65 (base 16) AzureWave Technology Inc.\r
8F., No. 94, Baozhong Rd., Xindian Dist.\r
Piscataway NJ 08554\r
US\r
\r
-64-05-E4 (hex) ALPSALPINE CO,.LTD\r
-6405E4 (base 16) ALPSALPINE CO,.LTD\r
- nishida 6-1\r
- kakuda-City Miyagi-Pref 981-1595\r
- JP\r
-\r
-BC-64-D9 (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
-BC64D9 (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
- NO.18 HAIBIN ROAD,\r
- DONG GUAN GUANG DONG 523860\r
- CN\r
-\r
DC-AC-6F (hex) Everytale Inc\r
DCAC6F (base 16) Everytale Inc\r
2093 Philadelphia Pike #2211\r
Nanjing Jiangsu 211800\r
CN\r
\r
-48-29-E4 (hex) AO NPK RoTeK\r
-4829E4 (base 16) AO NPK RoTeK\r
- Prospekt Mira\r
- Moscow 129223\r
- RU\r
+A8-B2-71 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+A8B271 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
+ No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+ Dongguan 523808\r
+ CN\r
+\r
+64-05-E4 (hex) ALPSALPINE CO,.LTD\r
+6405E4 (base 16) ALPSALPINE CO,.LTD\r
+ nishida 6-1\r
+ kakuda-City Miyagi-Pref 981-1595\r
+ JP\r
+\r
+BC-64-D9 (hex) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+BC64D9 (base 16) GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD\r
+ NO.18 HAIBIN ROAD,\r
+ DONG GUAN GUANG DONG 523860\r
+ CN\r
\r
30-1F-48 (hex) zte corporation\r
301F48 (base 16) zte corporation\r
shenzhen guangdong 518057\r
CN\r
\r
+94-0E-E7 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+940EE7 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
+ No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+ Dongguan 523808\r
+ CN\r
+\r
+7C-C7-4A (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
+7CC74A (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
+ No.5 DongXin Road\r
+ Wuhan Hubei 430074\r
+ CN\r
+\r
+38-FC-34 (hex) Huawei Device Co., Ltd.\r
+38FC34 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+3C-F6-92 (hex) Huawei Device Co., Ltd.\r
+3CF692 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+28-B5-E8 (hex) Texas Instruments\r
+28B5E8 (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
+\r
+48-29-E4 (hex) AO \r
+4829E4 (base 16) AO \r
+ Prospekt Mira\r
+ Moscow 129223\r
+ RU\r
+\r
9C-FF-C2 (hex) AVI Systems GmbH\r
9CFFC2 (base 16) AVI Systems GmbH\r
Dr. Franz Wilhelmstraße 2A\r
Xiamen Fujian 361024\r
CN\r
\r
+64-C6-D2 (hex) Seiko Epson Corporation\r
+64C6D2 (base 16) Seiko Epson Corporation\r
+ 2070 Kotobuki Koaka\r
+ Matsumoto-shi Nagano-ken 399-8702\r
+ JP\r
+\r
78-24-59 (hex) Alcatel-Lucent Enterprise\r
782459 (base 16) Alcatel-Lucent Enterprise\r
26801 West Agoura Rd\r
Culoz 01350\r
FR\r
\r
+B8-3C-28 (hex) Apple, Inc.\r
+B83C28 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+3C-6D-89 (hex) Apple, Inc.\r
+3C6D89 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+AC-45-00 (hex) Apple, Inc.\r
+AC4500 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+84-B1-E4 (hex) Apple, Inc.\r
+84B1E4 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+54-EB-E9 (hex) Apple, Inc.\r
+54EBE9 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+AC-16-15 (hex) Apple, Inc.\r
+AC1615 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
48-BD-CE (hex) Technicolor CH USA Inc.\r
48BDCE (base 16) Technicolor CH USA Inc.\r
5030 Sugarloaf Parkway Bldg 6 \r
Lawrenceville GA 30044\r
US\r
\r
-64-C6-D2 (hex) Seiko Epson Corporation\r
-64C6D2 (base 16) Seiko Epson Corporation\r
- 2070 Kotobuki Koaka\r
- Matsumoto-shi Nagano-ken 399-8702\r
- JP\r
-\r
48-1F-66 (hex) China Mobile Group Device Co.,Ltd.\r
481F66 (base 16) China Mobile Group Device Co.,Ltd.\r
32 Xuanwumen West Street,Xicheng District\r
Beijing 100053\r
CN\r
\r
-B8-3C-28 (hex) Apple, Inc.\r
-B83C28 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
10-68-38 (hex) AzureWave Technology Inc.\r
106838 (base 16) AzureWave Technology Inc.\r
8F., No.94, Baozhong Rd., Xindian\r
Brescia Italy 25062\r
IT\r
\r
+CC-DE-DE (hex) Nokia\r
+CCDEDE (base 16) Nokia\r
+ 600 March Road\r
+ Kanata Ontario K2K 2E6\r
+ CA\r
+\r
+EC-F8-D0 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+ECF8D0 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
+ No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+ Dongguan 523808\r
+ CN\r
+\r
+30-DF-17 (hex) ALPSALPINE CO,.LTD\r
+30DF17 (base 16) ALPSALPINE CO,.LTD\r
+ nishida 6-1\r
+ kakuda-City Miyagi-Pref 981-1595\r
+ JP\r
+\r
D8-02-8A (hex) Shenzhen YOUHUA Technology Co., Ltd\r
D8028A (base 16) Shenzhen YOUHUA Technology Co., Ltd\r
Room 407 Shenzhen University-town Business Park,Lishan Road,Taoyuan Street,Nanshan District\r
Dongguan 523808\r
CN\r
\r
-EC-F8-D0 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-ECF8D0 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
- CN\r
-\r
-3C-6D-89 (hex) Apple, Inc.\r
-3C6D89 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-AC-45-00 (hex) Apple, Inc.\r
-AC4500 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-84-B1-E4 (hex) Apple, Inc.\r
-84B1E4 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-54-EB-E9 (hex) Apple, Inc.\r
-54EBE9 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
-\r
-AC-16-15 (hex) Apple, Inc.\r
-AC1615 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
+60-B6-47 (hex) Silicon Laboratories\r
+60B647 (base 16) Silicon Laboratories\r
+ 7000 W. William Cannon Dr.\r
+ Austin TX 78735\r
US\r
\r
EC-73-79 (hex) Apple, Inc.\r
Cupertino CA 95014\r
US\r
\r
-60-B6-47 (hex) Silicon Laboratories\r
-60B647 (base 16) Silicon Laboratories\r
- 7000 W. William Cannon Dr.\r
- Austin TX 78735\r
- US\r
+04-70-56 (hex) Arcadyan Corporation\r
+047056 (base 16) Arcadyan Corporation\r
+ No.8, Sec.2, Guangfu Rd.\r
+ Hsinchu City Hsinchu 30071\r
+ TW\r
\r
-30-DF-17 (hex) ALPSALPINE CO,.LTD\r
-30DF17 (base 16) ALPSALPINE CO,.LTD\r
- nishida 6-1\r
- kakuda-City Miyagi-Pref 981-1595\r
- JP\r
+40-FF-40 (hex) GloquadTech\r
+40FF40 (base 16) GloquadTech\r
+ 801, Tower-A, 58-1, Giheung-ro, Giheung-gu, Yongin-si, Gyeonggi-do, 16976, Republic of Korea\r
+ Yongin-si Gyeonggi-do 16976\r
+ KR\r
\r
-CC-DE-DE (hex) Nokia\r
-CCDEDE (base 16) Nokia\r
- 600 March Road\r
- Kanata Ontario K2K 2E6\r
- CA\r
+E8-65-38 (hex) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+E86538 (base 16) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
+ B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
+ Nanning Guangxi 530007\r
+ CN\r
\r
-DC-E3-05 (hex) AO NPK RoTeK\r
-DCE305 (base 16) AO NPK RoTeK\r
+D4-04-E6 (hex) Broadcom Limited\r
+D404E6 (base 16) Broadcom Limited\r
+ 15191 Alton Parkway\r
+ Irvine CA 92618\r
+ US\r
+\r
+DC-E3-05 (hex) AO \r
+DCE305 (base 16) AO \r
Prospekt Mira\r
Moscow 129223\r
RU\r
\r
-E8-65-38 (hex) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
-E86538 (base 16) CLOUD NETWORK TECHNOLOGY SINGAPORE PTE. LTD.\r
- B22 Building,NO.51 Tongle Road, Shajing Town, Jiangnan District, Nanning, Guangxi Province, China\r
- Nanning Guangxi 530007\r
+B8-94-D9 (hex) Texas Instruments\r
+B894D9 (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
+\r
+7C-E2-69 (hex) Texas Instruments\r
+7CE269 (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
+\r
+88-6D-2D (hex) Huawei Device Co., Ltd.\r
+886D2D (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
CN\r
\r
+08-04-B4 (hex) Texas Instruments\r
+0804B4 (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
+\r
+30-AF-7E (hex) Texas Instruments\r
+30AF7E (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
+\r
24-2A-04 (hex) Cisco Systems, Inc\r
242A04 (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
San Jose CA 94568\r
US\r
\r
+24-95-2F (hex) Google, Inc.\r
+24952F (base 16) Google, Inc.\r
+ 1600 Amphitheatre Parkway\r
+ Mountain View CA 94043\r
+ US\r
+\r
+10-BE-99 (hex) Netberg\r
+10BE99 (base 16) Netberg\r
+ 2F-1 No.36, Park St., Nangang District\r
+ Taipei 11560\r
+ TW\r
+\r
+60-DE-F4 (hex) Shenzhen iComm Semiconductor CO.,LTD\r
+60DEF4 (base 16) Shenzhen iComm Semiconductor CO.,LTD\r
+ Room 601,Block B ,Digital Building,Garden City\r
+ Shenzhen No.1079 Nanhai Road,Nanshan District 518067\r
+ CN\r
+\r
+84-D3-52 (hex) Tonly Technology Co. Ltd \r
+84D352 (base 16) Tonly Technology Co. Ltd \r
+ Section 37, Zhongkai Hi-Tech Development Zone\r
+ Huizhou Guangdong 516006\r
+ CN\r
+\r
+E4-21-50 (hex) Shanghai Chint low voltage electrical technology Co.,Ltd.\r
+E42150 (base 16) Shanghai Chint low voltage electrical technology Co.,Ltd.\r
+ 3857 Sixian Road, Songjiang District, Shanghai\r
+ Shanghai Shanghai 201616\r
+ CN\r
+\r
84-80-94 (hex) Meter, Inc.\r
848094 (base 16) Meter, Inc.\r
148 Townsend St\r
Eveleigh NSW 2015\r
NZ\r
\r
-00-12-E0 (hex) Codan Limited\r
-0012E0 (base 16) Codan Limited\r
- 81 Graves Street\r
- Newton South 5074\r
- AU\r
-\r
00-12-DE (hex) Radio Components Sweden AB\r
0012DE (base 16) Radio Components Sweden AB\r
Viderogatan 3B\r
Maebashi-shi Gunma 371-0853\r
JP\r
\r
+D8-34-1C (hex) GD Midea Air-Conditioning Equipment Co.,Ltd.\r
+D8341C (base 16) GD Midea Air-Conditioning Equipment Co.,Ltd.\r
+ Midea Global Innovation Center,Beijiao Town,Shunde\r
+ Foshan Guangdong 528311\r
+ CN\r
+\r
+54-51-DE (hex) Cisco Systems, Inc\r
+5451DE (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
+ US\r
+\r
F4-33-1C (hex) Toast, Inc.\r
F4331C (base 16) Toast, Inc.\r
401 Park Drive, Suite 801\r
Boston MA 02215\r
US\r
\r
-D8-AF-81 (hex) AO NPK RoTeK\r
-D8AF81 (base 16) AO NPK RoTeK\r
+04-32-01 (hex) Broadcom Limited\r
+043201 (base 16) Broadcom Limited\r
+ 15191 Alton Parkway\r
+ Irvine CA 92618\r
+ US\r
+\r
+D8-AF-81 (hex) AO \r
+D8AF81 (base 16) AO \r
Filippovskiy per., 8/1\r
Moscow 119019\r
RU\r
\r
-54-51-DE (hex) Cisco Systems, Inc\r
-5451DE (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
+00-12-E0 (hex) Codan Limited\r
+0012E0 (base 16) Codan Limited\r
+ Technology Park, 2 Second Avenue\r
+ Mawson Lakes SA 5095\r
+ AU\r
+\r
+38-39-6C (hex) Huawei Device Co., Ltd.\r
+38396C (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+50-66-E5 (hex) Huawei Device Co., Ltd.\r
+5066E5 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+DC-77-94 (hex) Huawei Device Co., Ltd.\r
+DC7794 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+70-B6-51 (hex) Eight Sleep\r
+70B651 (base 16) Eight Sleep\r
+ 212 W 35th StFloor 4\r
+ New York NY 10123\r
+ US\r
+\r
+DC-A3-13 (hex) Shenzhen Changjin Communication Technology Co.,Ltd\r
+DCA313 (base 16) Shenzhen Changjin Communication Technology Co.,Ltd\r
+ 6th Floor, Saibo Building, Tenglong Road, Minzhi Street, Longhua District, Shenzhen\r
+ Shenzhen 518000\r
+ CN\r
+\r
+68-9A-21 (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
+689A21 (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
+ No.5 DongXin Road\r
+ Wuhan Hubei 430074\r
+ CN\r
+\r
+7C-17-79 (hex) EM Microelectronic\r
+7C1779 (base 16) EM Microelectronic\r
+ Rue des Sors 3\r
+ Marin-Epagnier Neuchatel 2074\r
+ CH\r
+\r
+90-CE-B8 (hex) Texas Instruments\r
+90CEB8 (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
+\r
+AC-FC-82 (hex) Shenzhen Sundray Technologies Company Limited\r
+ACFC82 (base 16) Shenzhen Sundray Technologies Company Limited\r
+ 5th Floor, Block A4, Nanshan ipark,NO.1001 Xue Yuan Road, Nanshan District, Shenzhen 518055, P.R. China\r
+ Shenzhen Guangdong 518057\r
+ CN\r
+\r
+70-5A-6F (hex) IEEE Registration Authority\r
+705A6F (base 16) IEEE Registration Authority\r
+ 445 Hoes Lane\r
+ Piscataway NJ 08554\r
US\r
\r
F8-D0-27 (hex) Seiko Epson Corporation\r
Laziska Gorne Slaskie 43-173\r
PL\r
\r
+FC-31-5D (hex) Apple, Inc.\r
+FC315D (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
74-A6-CD (hex) Apple, Inc.\r
74A6CD (base 16) Apple, Inc.\r
1 Infinite Loop\r
Cupertino CA 95014\r
US\r
\r
-88-74-77 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
-887477 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
- No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
- Dongguan 523808\r
+3C-BC-D0 (hex) zte corporation\r
+3CBCD0 (base 16) zte corporation\r
+ 12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+ shenzhen guangdong 518057\r
CN\r
\r
-FC-31-5D (hex) Apple, Inc.\r
-FC315D (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
+64-6E-60 (hex) zte corporation\r
+646E60 (base 16) zte corporation\r
+ 12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
+ shenzhen guangdong 518057\r
+ CN\r
\r
-28-B8-29 (hex) Juniper Networks\r
-28B829 (base 16) Juniper Networks\r
- 1133 Innovation Way\r
- Sunnyvale CA 94089\r
+4C-42-1E (hex) Cisco Systems, Inc\r
+4C421E (base 16) Cisco Systems, Inc\r
+ 80 West Tasman Drive\r
+ San Jose CA 94568\r
US\r
\r
-5C-34-5B (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
-5C345B (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
- No.555 Qianmo Road\r
- Hangzhou Zhejiang 310052\r
- CN\r
-\r
C4-CB-E1 (hex) Dell Inc.\r
C4CBE1 (base 16) Dell Inc.\r
One Dell Way\r
kakuda-City Miyagi-Pref 981-1595\r
JP\r
\r
+5C-34-5B (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+5C345B (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.\r
+ No.555 Qianmo Road\r
+ Hangzhou Zhejiang 310052\r
+ CN\r
+\r
58-70-7F (hex) Ericsson AB\r
58707F (base 16) Ericsson AB\r
Torshamnsgatan 36\r
Stockholm SE-164 80\r
SE\r
\r
-3C-BC-D0 (hex) zte corporation\r
-3CBCD0 (base 16) zte corporation\r
- 12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
- shenzhen guangdong 518057\r
+88-74-77 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
+887477 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
+ No.2 Xin Cheng Road, Room R6,Songshan Lake Technology Park\r
+ Dongguan 523808\r
CN\r
\r
-64-6E-60 (hex) zte corporation\r
-646E60 (base 16) zte corporation\r
- 12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China\r
- shenzhen guangdong 518057\r
+28-B8-29 (hex) Juniper Networks\r
+28B829 (base 16) Juniper Networks\r
+ 1133 Innovation Way\r
+ Sunnyvale CA 94089\r
+ US\r
+\r
+3C-3B-4D (hex) Toyo Seisakusho Kaisha, Limited\r
+3C3B4D (base 16) Toyo Seisakusho Kaisha, Limited\r
+ 2-4-6 Honjyo\r
+ Higashi-Osaka Osaka 578-0953\r
+ JP\r
+\r
+64-B2-B4 (hex) Fiberhome Telecommunication Technologies Co.,LTD\r
+64B2B4 (base 16) Fiberhome Telecommunication Technologies Co.,LTD\r
+ No.5 DongXin Road\r
+ Wuhan Hubei 430074\r
CN\r
\r
-4C-42-1E (hex) Cisco Systems, Inc\r
-4C421E (base 16) Cisco Systems, Inc\r
- 80 West Tasman Drive\r
- San Jose CA 94568\r
+48-31-DB (hex) Huawei Device Co., Ltd.\r
+4831DB (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+14-7F-0F (hex) Texas Instruments\r
+147F0F (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
US\r
\r
+D0-A9-D3 (hex) EM Microelectronic\r
+D0A9D3 (base 16) EM Microelectronic\r
+ Rue des Sors 3\r
+ Marin-Epagnier Neuchatel 2074\r
+ CH\r
+\r
+14-DD-02 (hex) Liangang Optoelectronic Technology CO., Ltd.\r
+14DD02 (base 16) Liangang Optoelectronic Technology CO., Ltd.\r
+ 150 JingHai West Road,ShaQu Village ShaTou Area,ChangAn Town\r
+ DongGuan GuangDong 523846\r
+ CN\r
+\r
+60-C7-27 (hex) Digiboard Eletronica da Amazonia Ltda\r
+60C727 (base 16) Digiboard Eletronica da Amazonia Ltda\r
+ 1111-A Matrinxa\r
+ Manaus Amazonia 69075-150\r
+ BR\r
+\r
7C-8A-E1 (hex) COMPAL INFORMATION (KUNSHAN) CO., LTD. \r
7C8AE1 (base 16) COMPAL INFORMATION (KUNSHAN) CO., LTD. \r
NO. 25, THE 3RD Street KUNSHAN EXPORT PROCESSING ZONE \r
Sunnyvale CA 94089\r
US\r
\r
-50-3C-CA (hex) TECNO MOBILE LIMITED\r
-503CCA (base 16) TECNO MOBILE LIMITED\r
- ROOMS 05-15, 13A/F., SOUTH TOWER, WORLD FINANCE CENTRE, HARBOUR CITY, 17 CANTON ROAD, TSIM SHA TSUI, KOWLOON, HONG KONG\r
- Hong Kong Hong Kong 999077\r
- HK\r
-\r
-9C-0C-35 (hex) Shenzhenshi Xinzhongxin Technology Co.Ltd\r
-9C0C35 (base 16) Shenzhenshi Xinzhongxin Technology Co.Ltd\r
- Block 3, Dong Huan Industrial Park, Sha Jing Town, Bao’an District, Shenzhen City, Guangdong Province, China\r
- ShenZHEN GuangDong 518104\r
- CN\r
-\r
C8-ED-FC (hex) Shenzhen Ideaform Industrial Product Design Co., Ltd\r
C8EDFC (base 16) Shenzhen Ideaform Industrial Product Design Co., Ltd\r
Room 206, Building A2, Hangcheng Park, Xixiang Street, Bao'an District\r
Shanghai 201206\r
CN\r
\r
-44-3D-54 (hex) Amazon Technologies Inc.\r
-443D54 (base 16) Amazon Technologies Inc.\r
- P.O Box 8102 \r
- Reno NV 89507\r
- US\r
-\r
-54-47-CC (hex) Sagemcom Broadband SAS\r
-5447CC (base 16) Sagemcom Broadband SAS\r
- 250, route de l'Empereur\r
- Rueil Malmaison Cedex hauts de seine 92848\r
- FR\r
-\r
78-D6-D6 (hex) eero inc.\r
78D6D6 (base 16) eero inc.\r
660 3rd Street\r
Taipei City TAIWAN 11087\r
TW\r
\r
-DC-FB-B8 (hex) Meizhou Guo Wei Electronics Co., Ltd\r
-DCFBB8 (base 16) Meizhou Guo Wei Electronics Co., Ltd\r
- AD1 Section, The Economy Development Area, Dongsheng Industrial District, \r
- Meizhou Guangdong Province 514000\r
+9C-0C-35 (hex) Shenzhenshi Xinzhongxin Technology Co.Ltd\r
+9C0C35 (base 16) Shenzhenshi Xinzhongxin Technology Co.Ltd\r
+ Block 3, Dong Huan Industrial Park, Sha Jing Town, Bao’an District, Shenzhen City, Guangdong Province, China\r
+ ShenZHEN GuangDong 518104\r
CN\r
\r
-AC-B1-81 (hex) Belden Mooresville\r
-ACB181 (base 16) Belden Mooresville\r
- 1113 N Main St.\r
- Mooresville 28115\r
+44-3D-54 (hex) Amazon Technologies Inc.\r
+443D54 (base 16) Amazon Technologies Inc.\r
+ P.O Box 8102 \r
+ Reno NV 89507\r
US\r
\r
-AC-E4-03 (hex) Shenzhen Visteng Technology CO.,LTD\r
-ACE403 (base 16) Shenzhen Visteng Technology CO.,LTD\r
- 6F, M7, MaQueLing, Hi-tech Park, Nanshan District\r
- Shenzhen 518000\r
- CN\r
-\r
-60-D0-39 (hex) Apple, Inc.\r
-60D039 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
+50-3C-CA (hex) TECNO MOBILE LIMITED\r
+503CCA (base 16) TECNO MOBILE LIMITED\r
+ ROOMS 05-15, 13A/F., SOUTH TOWER, WORLD FINANCE CENTRE, HARBOUR CITY, 17 CANTON ROAD, TSIM SHA TSUI, KOWLOON, HONG KONG\r
+ Hong Kong Hong Kong 999077\r
+ HK\r
\r
-C4-C1-7D (hex) Apple, Inc.\r
-C4C17D (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
+54-47-CC (hex) Sagemcom Broadband SAS\r
+5447CC (base 16) Sagemcom Broadband SAS\r
+ 250, route de l'Empereur\r
+ Rueil Malmaison Cedex hauts de seine 92848\r
+ FR\r
\r
-E0-BD-A0 (hex) Apple, Inc.\r
-E0BDA0 (base 16) Apple, Inc.\r
- 1 Infinite Loop\r
- Cupertino CA 95014\r
- US\r
+DC-FB-B8 (hex) Meizhou Guo Wei Electronics Co., Ltd\r
+DCFBB8 (base 16) Meizhou Guo Wei Electronics Co., Ltd\r
+ AD1 Section, The Economy Development Area, Dongsheng Industrial District, \r
+ Meizhou Guangdong Province 514000\r
+ CN\r
\r
C4-DB-04 (hex) HUAWEI TECHNOLOGIES CO.,LTD\r
C4DB04 (base 16) HUAWEI TECHNOLOGIES CO.,LTD\r
Cupertino CA 95014\r
US\r
\r
+60-D0-39 (hex) Apple, Inc.\r
+60D039 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+C4-C1-7D (hex) Apple, Inc.\r
+C4C17D (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
94-09-C9 (hex) ALPSALPINE CO,.LTD\r
9409C9 (base 16) ALPSALPINE CO,.LTD\r
nishida 6-1\r
kakuda-City Miyagi-Pref 981-1595\r
JP\r
\r
+E0-BD-A0 (hex) Apple, Inc.\r
+E0BDA0 (base 16) Apple, Inc.\r
+ 1 Infinite Loop\r
+ Cupertino CA 95014\r
+ US\r
+\r
+F8-34-51 (hex) Comcast-SRL\r
+F83451 (base 16) Comcast-SRL\r
+ Alejo Martinez 17\r
+ Sosua Puerto Plata 34443\r
+ DO\r
+\r
20-DE-1E (hex) Nokia\r
20DE1E (base 16) Nokia\r
600 March Road\r
Kanata Ontario K2K 2E6\r
CA\r
\r
+AC-B1-81 (hex) Belden Mooresville\r
+ACB181 (base 16) Belden Mooresville\r
+ 1113 N Main St.\r
+ Mooresville 28115\r
+ US\r
+\r
+AC-E4-03 (hex) Shenzhen Visteng Technology CO.,LTD\r
+ACE403 (base 16) Shenzhen Visteng Technology CO.,LTD\r
+ 6F, M7, MaQueLing, Hi-tech Park, Nanshan District\r
+ Shenzhen 518000\r
+ CN\r
+\r
E4-62-C4 (hex) Cisco Systems, Inc\r
E462C4 (base 16) Cisco Systems, Inc\r
80 West Tasman Drive\r
San Jose CA 94568\r
US\r
+\r
+3C-31-74 (hex) Google, Inc.\r
+3C3174 (base 16) Google, Inc.\r
+ 1600 Amphitheatre Parkway\r
+ Mountain View CA 94043\r
+ US\r
+\r
+D4-3F-32 (hex) eero inc.\r
+D43F32 (base 16) eero inc.\r
+ 660 3rd Street\r
+ San Francisco CA 94107\r
+ US\r
+\r
+68-63-72 (hex) Huawei Device Co., Ltd.\r
+686372 (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+A0-C2-0D (hex) Huawei Device Co., Ltd.\r
+A0C20D (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+4C-88-9E (hex) Huawei Device Co., Ltd.\r
+4C889E (base 16) Huawei Device Co., Ltd.\r
+ No.2 of Xincheng Road, Songshan Lake Zone\r
+ Dongguan Guangdong 523808\r
+ CN\r
+\r
+44-EE-14 (hex) Texas Instruments\r
+44EE14 (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
+\r
+B4-AC-9D (hex) Texas Instruments\r
+B4AC9D (base 16) Texas Instruments\r
+ 12500 TI Blvd\r
+ Dallas TX 75243\r
+ US\r
Ludwigsburg 71640\r
DE\r
\r
+C4-A5-59 (hex) SERNET (SUZHOU) TECHNOLOGIES CORPORATION\r
+E00000-EFFFFF (base 16) SERNET (SUZHOU) TECHNOLOGIES CORPORATION\r
+ NO.8 Tangzhuang Road,Suzhou Industrial Park,Su ZhouCity,JiangSu Province,China\r
+ Suzhou 215021\r
+ CN\r
+\r
+C4-A5-59 (hex) X-speed lnformation Technology Co.,Ltd\r
+300000-3FFFFF (base 16) X-speed lnformation Technology Co.,Ltd\r
+ th Floor,Building 2,Xinyu Electronic Industrial Park,No.69, Zhaishan,Houshan Village, High-tech Zone,Fuzhou,Fujian ,China\r
+ Fuzhou 350000\r
+ CN\r
+\r
+70-5A-6F (hex) Thyracont Vacuum Instruments GmbH\r
+000000-0FFFFF (base 16) Thyracont Vacuum Instruments GmbH\r
+ Max-Emanuel-Str. 10\r
+ Passau Bavaria 94036\r
+ DE\r
+\r
4C-4B-F9 (hex) Shenzhen dingsheng technology co., LTD\r
400000-4FFFFF (base 16) Shenzhen dingsheng technology co., LTD\r
Floor 3, building 5, kaijeda industrial zone, no.97, huaxing road, langkou community, dalang street, longhua district\r
San Francisco CA 94105\r
US\r
\r
+C4-A5-59 (hex) SHENZHEN ORFA TECH CO., LTD\r
+200000-2FFFFF (base 16) SHENZHEN ORFA TECH CO., LTD\r
+ Room 205, Building 4, Hongmumian Industrial Park, Longgang district,\r
+ Shenzhen Guangdong 518000\r
+ CN\r
+\r
20-85-93 (hex) UNILUMIN GROUP CO.,LTD\r
300000-3FFFFF (base 16) UNILUMIN GROUP CO.,LTD\r
No.112 Yongfu Rd.,BaoanDistrict,\r
Jiangsu 214028\r
CN\r
\r
-94-C9-B7 (hex) Private\r
-900000-9FFFFF (base 16) Private\r
- 35F, Shenzhen Bay VC&PE Bldg, No.25, Haitian 2nd Rd, Binhai Comm, Yuehai St., Nanshan Dist, Shenzhen\r
- shenzhen guangdong 518000\r
- CN\r
-\r
D4-61-37 (hex) Beijing Digital China Yunke Technology Limited\r
800000-8FFFFF (base 16) Beijing Digital China Yunke Technology Limited\r
R301, 3F, NO9, shangdi 9th street, haidian district, beijing\r
Dalian LiaoNing 116000\r
CN\r
\r
+C4-A5-59 (hex) Aviron Interactive Inc.\r
+700000-7FFFFF (base 16) Aviron Interactive Inc.\r
+ 251 Bartley Drive. Unit 2 \r
+ Toronto Ontario M4A 2N7\r
+ CA\r
+\r
C4-A5-59 (hex) MINOLTA SECURITY\r
D00000-DFFFFF (base 16) MINOLTA SECURITY\r
29 Park Place\r
Englewood NJ 07631\r
US\r
\r
-C4-A5-59 (hex) Aviron Interactive Inc.\r
-700000-7FFFFF (base 16) Aviron Interactive Inc.\r
- 251 Bartley Drive. Unit 2 \r
- Toronto Ontario M4A 2N7\r
- CA\r
+C4-A5-59 (hex) Private\r
+400000-4FFFFF (base 16) Private\r
+\r
+70-5A-6F (hex) BMR s.r.o.\r
+100000-1FFFFF (base 16) BMR s.r.o.\r
+ Lipovka 17\r
+ Rychnov nad Kneznou 51601\r
+ CZ\r
+\r
+94-C9-B7 (hex) Titanium union(shenzhen)technology co.,ltd\r
+900000-9FFFFF (base 16) Titanium union(shenzhen)technology co.,ltd\r
+ 35F, Shenzhen Bay VC&PE Bldg, No.25, Haitian 2nd Rd, Binhai Comm, Yuehai St., Nanshan Dist, Shenzhen\r
+ shenzhen guangdong 518000\r
+ CN\r
\r
4C-4B-F9 (hex) Shandong Linkotech Electronic Co., Ltd.\r
600000-6FFFFF (base 16) Shandong Linkotech Electronic Co., Ltd.\r
Flowood 39232\r
US\r
\r
+C4-A5-59 (hex) Hebei Far-East Communication System Engineerning Co.,Ltd.\r
+A00000-AFFFFF (base 16) Hebei Far-East Communication System Engineerning Co.,Ltd.\r
+ NO.21, Changsheng Street, Luquan Economic Development Zone\r
+ Shijiazhuang Hebei Prov 050000\r
+ CN\r
+\r
C4-A5-59 (hex) Moultrie Mobile\r
500000-5FFFFF (base 16) Moultrie Mobile\r
5724 Highway 280 East\r
Cupertino CA 95014\r
US\r
\r
-C4-A5-59 (hex) Hebei Far-East Communication System Engineerning Co.,Ltd.\r
-A00000-AFFFFF (base 16) Hebei Far-East Communication System Engineerning Co.,Ltd.\r
- NO.21, Changsheng Street, Luquan Economic Development Zone\r
- Shijiazhuang Hebei Prov 050000\r
- CN\r
-\r
20-85-93 (hex) Great Lite International\r
700000-7FFFFF (base 16) Great Lite International\r
11F., No.207-2, Sec. 3, Beixin Rd., Xindian Dist.,\r
Carrer Orient 78-84, 2-8\r
Sant Cugat del Valles Barcelona 08172\r
ES\r
+\r
+C4-A5-59 (hex) Archermind Japan Co.,Ltd.\r
+000000-0FFFFF (base 16) Archermind Japan Co.,Ltd.\r
+ 4F Shinagawa East One Tower, 2-16-1, Konan\r
+ Minato-ku Tokyo 1080075\r
+ JP\r
Gangnam-gu seoul 06296\r
KR\r
\r
-8C-1F-64 (hex) YUYAMA MFG Co.,Ltd\r
-CFA000-CFAFFF (base 16) YUYAMA MFG Co.,Ltd\r
- 1-4-30\r
- MEISHINGUCHI,TOYONAKA OSAKA 561-0841\r
- JP\r
-\r
8C-1F-64 (hex) ABB\r
6D0000-6D0FFF (base 16) ABB\r
Fulachstrasse 150\r
Venhuizen 1606 AK\r
NL\r
\r
+8C-1F-64 (hex) MIJ CO LTD\r
+5B2000-5B2FFF (base 16) MIJ CO LTD\r
+ ROOM 204 882, Baksa-ro, Seo-myeon, chuncheon-si, Gangwon-do, Republic of korea\r
+ chuncheon-si Gangwon-do 24461\r
+ KR\r
+\r
+8C-1F-64 (hex) YUYAMA MFG Co.,Ltd\r
+CFA000-CFAFFF (base 16) YUYAMA MFG Co.,Ltd\r
+ 1-4-30\r
+ MEISHINGUCHI,TOYONAKA OSAKA 561-0841\r
+ JP\r
+\r
+8C-1F-64 (hex) Power Electronics Espana, S.L.\r
+DA6000-DA6FFF (base 16) Power Electronics Espana, S.L.\r
+ Pol Industrial Carrases Ronda del Camp d’Aviació,4\r
+ Lliria Valencia 46160\r
+ ES\r
+\r
70-B3-D5 (hex) EVCO SPA\r
A80000-A80FFF (base 16) EVCO SPA\r
VIA FELTRE N. 81\r
Incheon Incheon 22689\r
KR\r
\r
+8C-1F-64 (hex) HomyHub SL\r
+B65000-B65FFF (base 16) HomyHub SL\r
+ Sierra de Atapuerca 13Correos Labs\r
+ MADRID Madrid 28050\r
+ ES\r
+\r
+8C-1F-64 (hex) Wende Tan\r
+691000-691FFF (base 16) Wende Tan\r
+ FIT 1-213, Tsinghua University\r
+ Beijing 100084\r
+ CN\r
+\r
+8C-1F-64 (hex) CI SYSTEMS ISRAEL LTD\r
+9FB000-9FBFFF (base 16) CI SYSTEMS ISRAEL LTD\r
+ HaMehkar St 6\r
+ Migdal HaEmek 2306990\r
+ IL\r
+\r
70-B3-D5 (hex) System West dba ICS Electronics\r
E06000-E06FFF (base 16) System West dba ICS Electronics\r
7034 Commerce Circle Suite A\r
Odense S Odense 5260\r
DK\r
\r
+8C-1F-64 (hex) Video Network Security\r
+733000-733FFF (base 16) Video Network Security\r
+ Suite 402-01, B Wing DSO HQ Building\r
+ Dubai 6009\r
+ AE\r
+\r
+8C-1F-64 (hex) Specialist Mechanical Engineers (PTY)LTD\r
+6B1000-6B1FFF (base 16) Specialist Mechanical Engineers (PTY)LTD\r
+ 907 HertzogstreetRietfontein\r
+ Pretoria Gauteng 0182\r
+ ZA\r
+\r
70-B3-D5 (hex) YUYAMA MFG Co.,Ltd\r
BBB000-BBBFFF (base 16) YUYAMA MFG Co.,Ltd\r
3-3-1\r
SHENZHEN Guangdong 518054\r
CN\r
\r
+8C-1F-64 (hex) GL TECH CO.,LTD\r
+BC9000-BC9FFF (base 16) GL TECH CO.,LTD\r
+ NO.Ten Changchun Road\r
+ ZHENGZHOU HENAN 455000\r
+ CN\r
+\r
+8C-1F-64 (hex) Integer.pl S.A.\r
+402000-402FFF (base 16) Integer.pl S.A.\r
+ Wielicka 28\r
+ Krakow 30-552\r
+ PL\r
+\r
+8C-1F-64 (hex) Idneo Technologies S.A.U.\r
+8F6000-8F6FFF (base 16) Idneo Technologies S.A.U.\r
+ Carrer de Dalt, 3\r
+ Mollet del Valles Barcelona 08100\r
+ ES\r
+\r
+8C-1F-64 (hex) EkspertStroyProekt\r
+A83000-A83FFF (base 16) EkspertStroyProekt\r
+ office 422, str.1, d.1, ul. Eniseyskaya\r
+ Moscow 129344\r
+ RU\r
+\r
70-B3-D5 (hex) DISMUNTEL SAL\r
92C000-92CFFF (base 16) DISMUNTEL SAL\r
Pol ind cotes\r
Orpund 2552\r
CH\r
\r
+8C-1F-64 (hex) Rapid-e-Engineering Steffen Kramer\r
+1B2000-1B2FFF (base 16) Rapid-e-Engineering Steffen Kramer\r
+ Am Waldring 7\r
+ Rechtmehring Bayern 83562\r
+ DE\r
+\r
70-B3-D5 (hex) Earth Works\r
61C000-61CFFF (base 16) Earth Works\r
2-9-14 Aioi\r
Kofu Yamanashi 400-0858\r
JP\r
+\r
+8C-1F-64 (hex) Procon Electronics Pty Ltd\r
+DC2000-DC2FFF (base 16) Procon Electronics Pty Ltd\r
+ P O Box 164\r
+ Seven Hills NSW 1730\r
+ AU\r
#
# List of PCI ID's
#
-# Version: 2022.10.22
-# Date: 2022-10-22 03:15:01
+# Version: 2022.10.28
+# Date: 2022-10-28 03:15:01
#
# Maintained by Albert Pool, Martin Mares, and other volunteers from
# the PCI ID Project at https://pci-ids.ucw.cz/.
9100 JM9100
0731 9101 JM9100
0731 9102 JM9100-I
+ 0731 9103 JM9100M
910a JH910
0731 910a JH910
0731 910b JH910-I
14b7 Family 17h-19h PCIe Dummy Host Bridge
14b9 Family 17h-19h Internal PCIe GPP Bridge
14ba Family 17h-19h PCIe GPP Bridge
+ 14cd Family 19h USB4/Thunderbolt PCIe tunnel
1510 Family 14h Processor Root Complex
174b 1001 PURE Fusion Mini
1512 Family 14h Processor Root Port
ea50 ce19 mCOM10-L1900
15d4 FireFlight USB 3.1
15d5 FireFlight USB 3.1
+ 15d6 Rembrandt USB4 XHCI controller #5
+ 15d7 Rembrandt USB4 XHCI controller #6
15da Raven/Raven2 PCIe Dummy Host Bridge
15db Raven/Raven2 Internal PCIe GPP Bridge 0 to Bus A
ea50 ce19 mCOM10-L1900
160d Arden Device 18h: Function 5
160e Arden Device 18h: Function 6
160f Arden Device 18h: Function 7
+ 161a Rembrandt USB4 XHCI controller #1
+ 161b Rembrandt USB4 XHCI controller #2
+ 161c Rembrandt USB4 XHCI controller #7
+ 161d Rembrandt USB4 XHCI controller #3
+ 161e Rembrandt USB4 XHCI controller #4
+ 161f Rembrandt USB4 XHCI controller #8
1620 Anubis HT Configuration
1621 Anubis Address Maps
1622 Anubis DRAM Configuration
166f Cezanne Data Fabric; Function 5
1670 Cezanne Data Fabric; Function 6
1671 Cezanne Data Fabric; Function 7
+ 1679 Rembrandt Data Fabric: Device 18h; Function 0
+ 167a Rembrandt Data Fabric: Device 18h; Function 1
+ 167b Rembrandt Data Fabric: Device 18h; Function 2
+ 167c Rembrandt Data Fabric: Device 18h; Function 3
+ 167d Rembrandt Data Fabric: Device 18h; Function 4
+ 167e Rembrandt Data Fabric: Device 18h; Function 5
+ 167f Rembrandt Data Fabric: Device 18h; Function 6
+ 1680 Rembrandt Data Fabric: Device 18h; Function 7
1700 Family 12h/14h Processor Function 0
1701 Family 12h/14h Processor Function 1
1702 Family 12h/14h Processor Function 2
# GRID K1 USM
0fe7 GK107GL [GRID K100 vGPU]
10de 101e GRID K100
- 0fe8 GK107M
+ 0fe8 GK107M [N14P-GS]
0fe9 GK107M [GeForce GT 750M Mac Edition]
0fea GK107M [GeForce GT 755M Mac Edition]
0fec GK107M [GeForce 710A]
11a3 GK104M [GeForce GTX 680MX]
106b 010d iMac 13,2
11a7 GK104M [GeForce GTX 675MX]
+ 11a8 GK104GLM [Quadro K5100M]
11a9 GK104M [GeForce GTX 870M]
11af GK104GLM [GRID IceCube]
11b0 GK104GL [GRID K240Q / K260Q vGPU]
1df5 GV100GL [Tesla V100 SXM2 16GB]
1df6 GV100GL [Tesla V100S PCIe 32GB]
1e02 TU102 [TITAN RTX]
+ 1e03 TU102 [GeForce RTX 2080 Ti 12GB]
1e04 TU102 [GeForce RTX 2080 Ti]
1e07 TU102 [GeForce RTX 2080 Ti Rev. A]
1462 3715 RTX 2080 Ti GAMING X TRIO
1fb1 TU117GL [T600]
1fb2 TU117GLM [Quadro T400 Mobile]
1fb6 TU117GLM [T600 Laptop GPU]
+ 1028 0b10 Precision 3571
1fb7 TU117GLM [T550 Laptop GPU]
1fb8 TU117GLM [Quadro T2000 Mobile / Max-Q]
1fb9 TU117GLM [Quadro T1000 Mobile]
20f0 GA100 [A100-PG506-207]
20f1 GA100 [A100 PCIe 40GB]
20f2 GA100 [A100-PG506-217]
- 20f5 GA100 [A800-80]
- 20f6 GA100 [A800-40]
+ 20f3 GA100 [A800-SXM4-80GB]
+ 20f5 GA100 [A800 80GB PCIe]
+ 20f6 GA100 [A800 40GB PCIe]
2182 TU116 [GeForce GTX 1660 Ti]
2183 TU116
2184 TU116 [GeForce GTX 1660]
1028 06e4 XPS 15 9550
1028 06e6 Latitude 11 5175 2-in-1
1028 09be Latitude 7410
+ 1028 0b10 Precision 3571
17aa 224f ThinkPad X1 Carbon 5th Gen
5260 RTS5260 PCI Express Card Reader
5261 RTS5261 PCI Express Card Reader
1179 0001 Toshiba KBG30ZMS128G 128GB NVMe SSD
0115 XG4 NVMe SSD Controller
0116 XG5 NVMe SSD Controller
+ 1179 0001 XG5 NVMe SSD Controller
011a XG6 NVMe SSD Controller
0404 DVD Decoder card
0406 Tecra Video Capture device
ec20 Elastic Network Adapter (ENA)
efa0 Elastic Fabric Adapter (EFA)
efa1 Elastic Fabric Adapter (EFA)
+ efa2 Elastic Fabric Adapter (EFA)
1d17 Zhaoxin
070f ZX-100 PCI Express Root Port
0710 ZX-100/ZX-200 PCI Express Root Port
1020 AR-GP-PF [General-Purpose Physical Function]
1021 AR-MGMT-PF [Board-Generic Management Physical Function]
1022 AR-ARKA-FX2 [Arkville 128B DPDK Data Mover for Agilex]
+ 1023 AR-BD-FX1 [BufferDirect Zero-Bounce Data Motion Endpoint]
4200 A5PL-E1-10GETI [10 GbE Ethernet Traffic Instrument]
1d72 Xiaomi
1d78 DERA Storage
1ed9 Myrtle.ai
1ee1 Suzhou Kuhan Information Technologies
0050 Aurora NVMe SSD Controller
+ 1ee1 0009 Airglow A430 NVMe SSD U.2 1.6TB
+ 1ee1 000a Airglow A430 NVMe SSD U.2 3.2TB
1ee4 PETAIO INC
1180 P8118 U.2 Single Port SSD
1ee9 SUSE LLC
1f2f 6116 KM560 U.2 3.84TB NVMe SSD
1f2f 6118 KM560 U.2 7.68TB NVMe SSD
1f3f 3SNIC Ltd
- 2100 3SRAID SAS/SATA HBA
+ 2100 SSSRAID SAS/SATA HBA
1f3f 0120 HBA 32 Ports
1f3f 0125 HBA 40 Ports
1f3f 0180 HBA 16 Ports
1f3f 0185 HBA 8 Ports
- 2200 3SRAID RAID controller
+ 2200 SSSRAID RAID controller
1f3f 0185 RAID Controller 16 Ports with 2G Cache
1f3f 01a1 RAID Controller 40 Ports with 2G Cache
1f3f 01a4 RAID Controller 16 Ports with 4G Cache
1f3f 01a8 RAID Controller 32 Ports with 4G Cache
1f3f 01ad RAID Controller 40 Ports with 4G Cache
- 9001 Ethernet VF
+ 9001 SSSNIC Ethernet VF
1f3f 1000 Ethernet VF
- 9002 Ethernet VF Hyper-V
+ 9002 SSSNIC Ethernet VF Hyper-V
1f3f 1000 Ethernet VF Hyper-V
- 9003 Ethernet SDI VF
+ 9003 SSSNIC Ethernet SDI VF
1f3f 1000 Ethernet SDI VF
- 9004 Ethernet SDI VF Hyper-V
+ 9004 SSSNIC Ethernet SDI VF Hyper-V
1f3f 1000 Ethernet SDI VF Hyper-V
- 9008 3SFC VF
+ 9008 SSSFC VF
1f3f 1000 3SFC VF
- 9009 3SFC VF Hyper-V
+ 9009 SSSFC VF Hyper-V
1f3f 1000 3SFC VF Hyper-V
- 9010 3SFC FC Controller
+ 9010 SSSFC FC Controller
1f3f 0041 Dual Port 16GE FC to PCIe Gen4 x16 Adapter
1f3f 0061 Dual Port 32GE FC to PCIe Gen4 x16 Adapter
- 9020 Ethernet Network Adapter
+ 9020 SSSNIC Ethernet Network Adapter
1f3f 0051 Dual Port 25GE Ethernet Network Adapter
1f3f 0052 Quad Port 25GE Ethernet Network Adapter
1f3f 00a1 Dual Port 100GE Ethernet Network Adapter
- 9030 IPU
+ 9030 SSSNIC IPU
1f3f 0051 Dual Port 25GE IPU
- 9031 SDI5.0
+ 9031 SSSNIC SDI5.0
1f3f 0051 Dual Port 25GE SDI5.0lite
1f3f 00a1 Dual Port 100GE SDI5.0
- 9032 SDI5.1
+ 9032 SSSNIC SDI5.1
1f3f 00a1 Dual Port 100GE SDI5.1
1f40 Netac Technology Co.,Ltd
1f44 VVDN Technologies Private Limited
1a1c Ethernet Connection (17) I219-LM
1a1d Ethernet Connection (17) I219-V
1a1e Ethernet Connection (16) I219-LM
+ 1028 0b10 Precision 3571
1a1f Ethernet Connection (16) I219-V
1a21 82840 840 [Carmel] Chipset Host Bridge (Hub A)
1a23 82840 840 [Carmel] Chipset AGP Bridge
4571 Elkhart Lake [UHD Graphics Gen11 32EU]
460d 12th Gen Core Processor PCI Express x16 Controller #1
461d Alder Lake Innovation Platform Framework Processor Participant
+ 1028 0b10 Precision 3571
461e Alder Lake-P Thunderbolt 4 USB Controller
+ 1028 0b10 Precision 3571
461f Alder Lake-P Thunderbolt 4 PCI Express Root Port #3
4626 Alder Lake-P Integrated Graphics Controller
4628 Alder Lake-UP3 GT2 [UHD Graphics]
463a AlderLake-P [UHD Graphics]
463d 12th Gen Core Processor PCI Express x4 Controller #2
463e Alder Lake-P Thunderbolt 4 NHI #0
+ 1028 0b10 Precision 3571
463f Alder Lake-P Thunderbolt 4 PCI Express Root Port #1
4641 12th Gen Core Processor Host Bridge/DRAM Registers
+ 1028 0b10 Precision 3571
464d 12th Gen Core Processor PCI Express x4 Controller #0
464f 12th Gen Core Processor Gaussian & Neural Accelerator
+ 1028 0b10 Precision 3571
4660 12th Gen Core Processor Host Bridge/DRAM Registers
4668 12th Gen Core Processor Host Bridge/DRAM Registers
466d Alder Lake-P Thunderbolt 4 NHI #1
504c EP80579 Integrated Processor with QuickAssist TDM
5181 Alder Lake PCH-P LPC/eSPI Controller
5182 Alder Lake PCH eSPI Controller
+ 1028 0b10 Precision 3571
51a3 Alder Lake PCH-P SMBus Host Controller
+ 1028 0b10 Precision 3571
51a4 Alder Lake-P PCH SPI Controller
+ 1028 0b10 Precision 3571
51a8 Alder Lake PCH UART #0
51a9 Alder Lake PCH UART #1
+ 51b1 Alder Lake PCI Express x1 Root Port #10
51bf Alder Lake PCH-P PCI Express Root Port #9
51c5 Alder Lake-P Serial IO I2C Controller #0
51c6 Alder Lake-P Serial IO I2C Controller #1
51c8 Alder Lake PCH-P High Definition Audio Controller
+ 1028 0b10 Precision 3571
51d3 Alder Lake-P SATA AHCI Controller
+ 1028 0b10 Precision 3571
51d8 Alder Lake-P Serial IO I2C Controller #2
51d9 Alder Lake-P Serial IO I2C Controller #3
51e0 Alder Lake PCH HECI Controller
+ 1028 0b10 Precision 3571
+ 51e3 Alder Lake AMT SOL Redirection
+ 1028 0b10 Precision 3571
51e8 Alder Lake PCH Serial IO I2C Controller #0
+ 1028 0b10 Precision 3571
51e9 Alder Lake PCH Serial IO I2C Controller #1
+ 1028 0b10 Precision 3571
51ea Alder Lake PCH Serial IO I2C Controller #2
51eb Alder Lake PCH Serial IO I2C Controller #3
51ed Alder Lake PCH USB 3.2 xHCI Host Controller
+ 1028 0b10 Precision 3571
51ef Alder Lake PCH Shared SRAM
+ 1028 0b10 Precision 3571
51f0 Alder Lake-P PCH CNVi WiFi
8086 0034 Wireless-AC 9560 160MHz
8086 0070 Wi-Fi 6 AX201 160MHz
8086 0074 Wi-Fi 6 AX201 160MHz
8086 4070 Wi-Fi 6 AX201 160MHz
+ 8086 4090 Wi-Fi 6E AX211 160MHz
5200 EtherExpress PRO/100 Intelligent Server PCI Bridge
5201 EtherExpress PRO/100 Intelligent Server Fast Ethernet Controller
8086 0001 EtherExpress PRO/100 Server Ethernet Adapter
#!/bin/sh
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
# set the default value
XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share/:/usr/share}"
#!/usr/bin/env python3
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
"""
#!/usr/bin/python
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
import platform
os_release = platform.freedesktop_os_release()
#!/usr/bin/python
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
import ast
import re
#!/bin/sh -eu
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
test -e /etc/os-release && os_release='/etc/os-release' || os_release='/usr/lib/os-release'
. "${os_release}"
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <assert.h>
#include <stdio.h>
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
# Enroll the security token in the LUKS2 volume. Replace /dev/sdXn by the
# partition to use (e.g. /dev/sda1).
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <stdlib.h>
#include <glib.h>
<term><option>-p</option></term>
<term><option>--poweroff</option></term>
- <listitem><para>Power-off the machine, regardless of which one
- of the three commands is invoked.</para></listitem>
+ <listitem><para>Power-off the machine, when either <command>halt</command>
+ or <command>poweroff</command> is invoked. This option is ignored when
+ <command>reboot</command> is invoked.</para></listitem>
</varlistentry>
<varlistentry>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <stdio.h>
#include <stdint.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <stdio.h>
#include <systemd/sd-id128.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <stdio.h>
#include <string.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <poll.h>
#include <time.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <errno.h>
#include <syslog.h>
<varname>RuntimeMaxUse=</varname> limit after a vacuuming operation is
complete.</para>
- <para><varname>SystemMaxFileSize=</varname> and
- <varname>RuntimeMaxFileSize=</varname> control how large
- individual journal files may grow at most. This influences
- the granularity in which disk space is made available through
- rotation, i.e. deletion of historic data. Defaults to one
- eighth of the values configured with
- <varname>SystemMaxUse=</varname> and
- <varname>RuntimeMaxUse=</varname>, so that usually seven
- rotated journal files are kept as history.</para>
-
- <para>Specify values in bytes or use K, M, G, T, P, E as
- units for the specified sizes (equal to 1024, 1024², … bytes).
- Note that size limits are enforced synchronously when journal
- files are extended, and no explicit rotation step triggered by
- time is needed.</para>
+ <para><varname>SystemMaxFileSize=</varname> and <varname>RuntimeMaxFileSize=</varname> control how
+ large individual journal files may grow at most. This influences the granularity in which disk space
+ is made available through rotation, i.e. deletion of historic data. Defaults to one eighth of the
+ values configured with <varname>SystemMaxUse=</varname> and <varname>RuntimeMaxUse=</varname>, so
+ that usually seven rotated journal files are kept as history. If the journal compact mode is enabled
+ (enabled by default), the maximum file size is capped to 4G.</para>
+
+ <para>Specify values in bytes or use K, M, G, T, P, E as units for the specified sizes (equal to
+ 1024, 1024², … bytes). Note that size limits are enforced synchronously when journal files are
+ extended, and no explicit rotation step triggered by time is needed.</para>
<para><varname>SystemMaxFiles=</varname> and
<varname>RuntimeMaxFiles=</varname> control how many
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <stdio.h>
#include <stdlib.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <errno.h>
#include <stdio.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <systemd/sd-bus.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <stdio.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <errno.h>
#include <string.h>
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <systemd/sd-bus.h>
#define _cleanup_(f) __attribute__((cleanup(f)))
<refnamediv>
<refname>systemd-dissect</refname>
- <refpurpose>Dissect file system OS images</refpurpose>
+ <refpurpose>Dissect Discoverable Disk Images (DDIs)</refpurpose>
</refnamediv>
<refsynopsisdiv>
<title>Description</title>
<para><command>systemd-dissect</command> is a tool for introspecting and interacting with file system OS
- disk images. It supports five different operations:</para>
+ disk images, specifically Discoverable Disk Images (DDIs). It supports five different operations:</para>
<orderedlist>
<listitem><para>Show general OS image information, including the image's
/usr/lib/systemd/boot/efi/linuxx64.efi.stub \
foo-unsigned.efi</programlisting>
+ <para>Note that these PE section offsets are example values and a properly assembled image must not
+ contain any overlapping sections (this includes already existing sections inside the stub before
+ assembly) or boot may fail.</para>
+
<para>This generates one PE executable file <filename>foo-unsigned.efi</filename> from the six individual
files for OS release information, kernel command line, boot splash image, kernel image, main initrd and
UEFI boot stub.</para>
setgid bits, or filesystem capabilities). This is the simplest and most effective way to ensure that
a process and its children can never elevate privileges again. Defaults to false, but certain
settings override this and ignore the value of this setting. This is the case when
- <varname>DynamicUser=</varname>,
- <varname>LockPersonality=</varname>,
- <varname>MemoryDenyWriteExecute=</varname>,
- <varname>PrivateDevices=</varname>,
- <varname>ProtectClock=</varname>,
- <varname>ProtectHostname=</varname>,
- <varname>ProtectKernelLogs=</varname>,
- <varname>ProtectKernelModules=</varname>,
- <varname>ProtectKernelTunables=</varname>,
- <varname>RestrictAddressFamilies=</varname>,
- <varname>RestrictNamespaces=</varname>,
- <varname>RestrictRealtime=</varname>,
- <varname>RestrictSUIDSGID=</varname>,
- <varname>SystemCallArchitectures=</varname>,
- <varname>SystemCallFilter=</varname>, or
- <varname>SystemCallLog=</varname> are specified. Note that even if this setting is overridden
- by them, <command>systemctl show</command> shows the original value of this setting. In case the
- service will be run in a new mount namespace anyway and SELinux is disabled, all file systems
- are mounted with <constant>MS_NOSUID</constant> flag. Also see
- <ulink url="https://docs.kernel.org/userspace-api/no_new_privs.html">No New
- Privileges Flag</ulink>.</para></listitem>
+ <varname>DynamicUser=</varname>, <varname>LockPersonality=</varname>,
+ <varname>MemoryDenyWriteExecute=</varname>, <varname>PrivateDevices=</varname>,
+ <varname>ProtectClock=</varname>, <varname>ProtectHostname=</varname>,
+ <varname>ProtectKernelLogs=</varname>, <varname>ProtectKernelModules=</varname>,
+ <varname>ProtectKernelTunables=</varname>, <varname>RestrictAddressFamilies=</varname>,
+ <varname>RestrictNamespaces=</varname>, <varname>RestrictRealtime=</varname>,
+ <varname>RestrictSUIDSGID=</varname>, <varname>SystemCallArchitectures=</varname>,
+ <varname>SystemCallFilter=</varname>, or <varname>SystemCallLog=</varname> are specified. Note that
+ even if this setting is overridden by them, <command>systemctl show</command> shows the original
+ value of this setting. In case the service will be run in a new mount namespace anyway and SELinux is
+ disabled, all file systems are mounted with <constant>MS_NOSUID</constant> flag. Also see <ulink
+ url="https://docs.kernel.org/userspace-api/no_new_privs.html">No New Privileges
+ Flag</ulink>.</para>
+
+ <para>Note that this setting only has an effect on the unit's processes themselves (or any processes
+ directly or indirectly forked off them). It has no effect on processes potentially invoked on request
+ of them through tools such as <citerefentry
+ project='man-pages'><refentrytitle>at</refentrytitle><manvolnum>1p</manvolnum></citerefentry>,
+ <citerefentry
+ project='man-pages'><refentrytitle>crontab</refentrytitle><manvolnum>1p</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>systemd-run</refentrytitle><manvolnum>1</manvolnum></citerefentry>, or
+ arbitrary IPC services.</para></listitem>
</varlistentry>
<varlistentry>
<varlistentry>
<term><varname>RouteTable=<replaceable>num</replaceable></varname></term>
<listitem>
- <para>The table identifier for DHCP routes (a number between 1 and 4294967295, or 0 to
- unset). The table can be retrieved using
- <command>ip route show table <replaceable>num</replaceable></command>.</para>
+ <para>The table identifier for DHCP routes. Takes one of predefined names
+ <literal>default</literal>, <literal>main</literal>, and <literal>local</literal>, and names
+ defined in <varname>RouteTable=</varname> in
+ <citerefentry><refentrytitle>networkd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ or a number between 1…4294967295.</para>
<para>When used in combination with <varname>VRF=</varname>, the VRF's routing table is
used when this parameter is not specified.</para>
<varlistentry>
<term><varname>RouteTable=<replaceable>num</replaceable></varname></term>
<listitem>
- <para>The table identifier for the routes received in the Router Advertisement
- (a number between 1 and 4294967295, or 0 to unset).
- The table can be retrieved using <command>ip route show table <replaceable>num</replaceable></command>.
- </para>
+ <para>The table identifier for the routes received in the Router Advertisement. Takes one of
+ predefined names <literal>default</literal>, <literal>main</literal>, and <literal>local</literal>,
+ and names defined in <varname>RouteTable=</varname> in
+ <citerefentry><refentrytitle>networkd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ or a number between 1…4294967295.</para>
+
+ <para>When used in combination with <varname>VRF=</varname>, the VRF's routing table is
+ used when this parameter is not specified.</para>
</listitem>
</varlistentry>
<term><varname>AssertHost=</varname></term>
<term><varname>AssertKernelCommandLine=</varname></term>
<term><varname>AssertKernelVersion=</varname></term>
+ <term><varname>AssertCredential=</varname></term>
<term><varname>AssertEnvironment=</varname></term>
<term><varname>AssertSecurity=</varname></term>
<term><varname>AssertCapability=</varname></term>
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
# Enroll the TPM2 security chip in the LUKS2 volume, and bind it to PCR 7
# only. Replace /dev/sdXn by the partition to use (e.g. /dev/sda1).
-/* SPDX-License-Identifier: CC0-1.0 */
+/* SPDX-License-Identifier: MIT-0 */
#include <errno.h>
#include <stdbool.h>
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
# Destroy any old key on the Yubikey (careful!)
ykman piv reset
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This config file is installed as part of systemd.
-# It may be freely copied and edited (following the Creative Commons Zero v1.0 Universal License).
+# It may be freely copied and edited (following the MIT No Attribution license).
#
# To make local modifications, one of the following methods may be used:
# 1. add a drop-in file that extends this file by creating the
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This config file is installed as part of systemd.
-# It may be freely copied and edited (following the Creative Commons Zero v1.0 Universal License).
+# It may be freely copied and edited (following the MIT No Attribution license).
#
# To make local modifications, one of the following methods may be used:
# 1. add a drop-in file that extends this file by creating the
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This config file is installed as part of systemd.
-# It may be freely copied and edited (following the Creative Commons Zero v1.0 Universal License).
+# It may be freely copied and edited (following the MIT No Attribution license).
#
# To make local modifications, one of the following methods may be used:
# 1. add a drop-in file that extends this file by creating the
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This config file is installed as part of systemd.
-# It may be freely copied and edited (following the Creative Commons Zero v1.0 Universal License).
+# It may be freely copied and edited (following the MIT No Attribution license).
#
# To make local modifications, one of the following methods may be used:
# 1. add a drop-in file that extends this file by creating the
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This config file is installed as part of systemd.
-# It may be freely copied and edited (following the Creative Commons Zero v1.0 Universal License).
+# It may be freely copied and edited (following the MIT No Attribution license).
#
# To make local modifications, one of the following methods may be used:
# 1. add a drop-in file that extends this file by creating the
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This example config file is installed as part of systemd.
-# It may be freely copied and edited (following the Creative Commons Zero v1.0 Universal License).
+# It may be freely copied and edited (following the MIT No Attribution license).
#
# To use the file, one of the following methods may be used:
# 1. add a symlink from /etc/systemd/network to the current location of this file,
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This config file is installed as part of systemd.
-# It may be freely copied and edited (following the Creative Commons Zero v1.0 Universal License).
+# It may be freely copied and edited (following the MIT No Attribution license).
#
# To make local modifications, one of the following methods may be used:
# 1. add a drop-in file that extends this file by creating the
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This config file is installed as part of systemd.
-# It may be freely copied and edited (following the Creative Commons Zero v1.0 Universal License).
+# It may be freely copied and edited (following the MIT No Attribution license).
#
# To make local modifications, one of the following methods may be used:
# 1. add a drop-in file that extends this file by creating the
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This example config file is installed as part of systemd.
-# It may be freely copied and edited (following the Creative Commons Zero v1.0 Universal License).
+# It may be freely copied and edited (following the MIT No Attribution license).
#
# To use the file, one of the following methods may be used:
# 1. add a symlink from /etc/systemd/network to the current location of this file,
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This example config file is installed as part of systemd.
-# It may be freely copied and edited (following the Creative Commons Zero v1.0 Universal License).
+# It may be freely copied and edited (following the MIT No Attribution license).
#
# To use the file, one of the following methods may be used:
# 1. add a symlink from /etc/systemd/network to the current location of this file,
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This config file is installed as part of systemd.
-# It may be freely copied and edited (following the Creative Commons Zero v1.0 Universal License).
+# It may be freely copied and edited (following the MIT No Attribution license).
#
# To make local modifications, one of the following methods may be used:
# 1. add a drop-in file that extends this file by creating the
# SOME DESCRIPTIVE TITLE.
# This file is distributed under the same license as the PACKAGE package.
# gogo <trebelnik2@gmail.com>, 2016.
-# Gogo Gogsi <linux.hr@protonmail.com>, 2020, 2021.
+# Gogo Gogsi <linux.hr@protonmail.com>, 2020, 2021, 2022.
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-20 10:35+0200\n"
-"PO-Revision-Date: 2021-10-03 16:04+0000\n"
+"PO-Revision-Date: 2022-10-31 11:19+0000\n"
"Last-Translator: Gogo Gogsi <linux.hr@protonmail.com>\n"
"Language-Team: Croatian <https://translate.fedoraproject.org/projects/"
"systemd/master/hr/>\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.8\n"
+"X-Generator: Weblate 4.14.1\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
#: src/hostname/org.freedesktop.hostname1.policy:61
msgid "Get hardware serial number"
-msgstr ""
+msgstr "Prikaži serijski broj hardvera"
#: src/hostname/org.freedesktop.hostname1.policy:62
-#, fuzzy
msgid "Authentication is required to get hardware serial number."
-msgstr "Potrebna je ovjera za postavljanje vremena sustava."
+msgstr "Potrebna je ovjera za prikaz serijskog broja hardvera."
#: src/hostname/org.freedesktop.hostname1.policy:71
-#, fuzzy
msgid "Get system description"
-msgstr "Postavi vremensku zonu sustava"
+msgstr "Prikaži informacije sustava"
#: src/hostname/org.freedesktop.hostname1.policy:72
-#, fuzzy
msgid "Authentication is required to get system description."
-msgstr "Potrebna je ovjera za postavljanje vremenske zone sustava."
+msgstr "Potrebna je ovjera za prikaz informacija sustava."
#: src/import/org.freedesktop.import1.policy:22
msgid "Import a VM or container image"
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-20 10:35+0200\n"
-"PO-Revision-Date: 2022-03-10 18:16+0000\n"
+"PO-Revision-Date: 2022-10-25 22:19+0000\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian <https://translate.fedoraproject.org/projects/"
"systemd/master/ka/>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.11.2\n"
+"X-Generator: Weblate 4.14.1\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
#: src/hostname/org.freedesktop.hostname1.policy:61
msgid "Get hardware serial number"
-msgstr ""
+msgstr "აპარატურის სერიული ნომრის მიღება"
#: src/hostname/org.freedesktop.hostname1.policy:62
-#, fuzzy
msgid "Authentication is required to get hardware serial number."
-msgstr "á\83¡á\83\98á\83¡á\83¢á\83\94á\83\9bá\83£á\83 á\83\98 á\83\93á\83 á\83\9dá\83\98á\83¡ á\83\93á\83\90á\83¡á\83\90á\83§á\83\94á\83\9cá\83\94á\83\91á\83\9aად საჭიროა ავთენტიკაცია."
+msgstr "á\83\90á\83\9eá\83\90á\83 á\83\90á\83¢á\83£á\83 á\83\98á\83¡ á\83¡á\83\94á\83 á\83\98á\83£á\83\9aá\83\98 á\83\9cá\83\9dá\83\9bá\83 á\83\98á\83¡ á\83\9bá\83\98á\83¡á\83\90á\83¦á\83\94á\83\91ად საჭიროა ავთენტიკაცია."
#: src/hostname/org.freedesktop.hostname1.policy:71
-#, fuzzy
msgid "Get system description"
-msgstr "á\83¡á\83\98á\83¡á\83¢á\83\94á\83\9bá\83£á\83 á\83\98 á\83\93á\83 á\83\9dá\83\98á\83¡ á\83¡á\83\90á\83 á\83¢á\83§á\83\9aá\83\98á\83¡ á\83\93á\83\90á\83§á\83\94á\83\9cება"
+msgstr "á\83¡á\83\98á\83¡á\83¢á\83\94á\83\9bá\83\98á\83¡ á\83\90á\83¦á\83¬á\83\94á\83 á\83\98á\83¡ á\83\9bá\83\98á\83¦ება"
#: src/hostname/org.freedesktop.hostname1.policy:72
-#, fuzzy
msgid "Authentication is required to get system description."
-msgstr "á\83¡á\83\98á\83¡á\83¢á\83\94á\83\9bá\83£á\83 á\83\98 á\83\93á\83 á\83\9dá\83\98á\83¡ á\83¡á\83\90á\83 á\83¢á\83§á\83\9aá\83\98á\83¡ á\83\93á\83\90á\83¡á\83\90á\83§á\83\94á\83\9cá\83\94á\83\91á\83\9aად საჭიროა ავთენტიკაცია."
+msgstr "á\83¡á\83\98á\83¡á\83¢á\83\94á\83\9bá\83\98á\83¡ á\83\90á\83¦á\83¬á\83\94á\83 á\83\98á\83¡ á\83\9bá\83\98á\83¡á\83\90á\83¦á\83\94á\83\91ად საჭიროა ავთენტიკაცია."
#: src/import/org.freedesktop.import1.policy:22
msgid "Import a VM or container image"
# Sergey Ptashnick <0comffdiz@inbox.ru>, 2013-2018.
# Vladimir Yerilov <openmindead@gmail.com>, 2020.
# Alexey Rubtsov <rushills@gmail.com>, 2021.
+# Olga Smirnova <mistresssilvara@hotmail.com>, 2022.
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-20 10:35+0200\n"
-"PO-Revision-Date: 2021-07-02 09:04+0000\n"
-"Last-Translator: Alexey Rubtsov <rushills@gmail.com>\n"
+"PO-Revision-Date: 2022-10-27 23:19+0000\n"
+"Last-Translator: Olga Smirnova <mistresssilvara@hotmail.com>\n"
"Language-Team: Russian <https://translate.fedoraproject.org/projects/systemd/"
"master/ru/>\n"
"Language: ru\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-"X-Generator: Weblate 4.7.1\n"
+"X-Generator: Weblate 4.14.1\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
#: src/hostname/org.freedesktop.hostname1.policy:61
msgid "Get hardware serial number"
-msgstr ""
+msgstr "Получить серийный номер оборудования"
#: src/hostname/org.freedesktop.hostname1.policy:62
-#, fuzzy
msgid "Authentication is required to get hardware serial number."
-msgstr "ЧÑ\82обÑ\8b наÑ\81Ñ\82Ñ\80оиÑ\82Ñ\8c Ñ\81иÑ\81Ñ\82емное вÑ\80емÑ\8f, необходимо пройти аутентификацию."
+msgstr "ЧÑ\82обÑ\8b полÑ\83Ñ\87иÑ\82Ñ\8c Ñ\81еÑ\80ийнÑ\8bй номеÑ\80, необходимо пройти аутентификацию."
#: src/hostname/org.freedesktop.hostname1.policy:71
-#, fuzzy
msgid "Get system description"
-msgstr "Ð\9dаÑ\81Ñ\82Ñ\80оиÑ\82Ñ\8c Ñ\87аÑ\81овой поÑ\8fÑ\81"
+msgstr "Ð\9fолÑ\83Ñ\87иÑ\82Ñ\8c опиÑ\81ание Ñ\81иÑ\81Ñ\82емÑ\8b"
#: src/hostname/org.freedesktop.hostname1.policy:72
-#, fuzzy
msgid "Authentication is required to get system description."
-msgstr "ЧÑ\82обÑ\8b наÑ\81Ñ\82Ñ\80оиÑ\82Ñ\8c Ñ\87аÑ\81овой поÑ\8fÑ\81, необходимо пройти аутентификацию."
+msgstr "ЧÑ\82обÑ\8b полÑ\83Ñ\87иÑ\82Ñ\8c опиÑ\81ание Ñ\81иÑ\81Ñ\82емÑ\8b, необходимо пройти аутентификацию."
#: src/import/org.freedesktop.import1.policy:22
msgid "Import a VM or container image"
# Josef Andersson <l10nl18nsweja@gmail.com>, 2015, 2017.
# Göran Uddeborg <goeran@uddeborg.se>, 2020, 2021.
# Luna Jernberg <bittin@reimu.nl>, 2020.
+# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2022.
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-20 10:35+0200\n"
-"PO-Revision-Date: 2021-02-10 15:40+0000\n"
-"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
+"PO-Revision-Date: 2022-10-27 23:19+0000\n"
+"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <https://translate.fedoraproject.org/projects/systemd/"
"master/sv/>\n"
"Language: sv\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 4.4.2\n"
+"X-Generator: Weblate 4.14.1\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
#: src/hostname/org.freedesktop.hostname1.policy:61
msgid "Get hardware serial number"
-msgstr ""
+msgstr "Hämta serienummer för hårdvara"
#: src/hostname/org.freedesktop.hostname1.policy:62
-#, fuzzy
msgid "Authentication is required to get hardware serial number."
-msgstr "Autentisering krävs för ställa in systemtiden."
+msgstr "Autentisering krävs för att hämta serienummer för hårdvara."
#: src/hostname/org.freedesktop.hostname1.policy:71
-#, fuzzy
msgid "Get system description"
-msgstr "Ange systemets tidszon"
+msgstr "Hämta systemets beskrivning"
#: src/hostname/org.freedesktop.hostname1.policy:72
-#, fuzzy
msgid "Authentication is required to get system description."
-msgstr "Autentisering krävs för att ställa in systemets tidszon."
+msgstr "Autentisering krävs för att hämta systemets beskrivning."
#: src/import/org.freedesktop.import1.policy:22
msgid "Import a VM or container image"
#: src/network/org.freedesktop.network1.policy:122
msgid "Authentication is required to reset NTP settings."
-msgstr "Autentisering krävs för återställa NTP-inställningar."
+msgstr "Autentisering krävs för att återställa NTP-inställningar."
#: src/network/org.freedesktop.network1.policy:132
msgid "Revert DNS settings"
# Frank Hill <hxf.prc@gmail.com>, 2014.
# Boyuan Yang <073plan@gmail.com>, 2015.
# Jeff Bai <jeffbai@aosc.xyz>, 2016.
-# Charles Lee <lchopn@gmail.com>, 2020, 2021.
+# Charles Lee <lchopn@gmail.com>, 2020, 2021, 2022.
# Whired Planck <fungdaat31@outlook.com>, 2020.
msgid ""
msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-20 10:35+0200\n"
-"PO-Revision-Date: 2021-03-01 09:40+0000\n"
+"PO-Revision-Date: 2022-10-31 11:19+0000\n"
"Last-Translator: Charles Lee <lchopn@gmail.com>\n"
"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/"
"projects/systemd/master/zh_CN/>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Weblate 4.4.2\n"
+"X-Generator: Weblate 4.14.1\n"
#: src/core/org.freedesktop.systemd1.policy.in:22
msgid "Send passphrase back to system"
#: src/hostname/org.freedesktop.hostname1.policy:61
msgid "Get hardware serial number"
-msgstr ""
+msgstr "获取硬件序列号"
#: src/hostname/org.freedesktop.hostname1.policy:62
-#, fuzzy
msgid "Authentication is required to get hardware serial number."
-msgstr "设置系ç»\9fæ\97¶é\97´需要认证。"
+msgstr "è\8e·å\8f\96硬件åº\8få\88\97å\8f·需要认证。"
#: src/hostname/org.freedesktop.hostname1.policy:71
-#, fuzzy
msgid "Get system description"
-msgstr "设置系ç»\9fæ\97¶å\8cº"
+msgstr "è\8e·å¾\97ç³»ç»\9fæ\8f\8fè¿°"
#: src/hostname/org.freedesktop.hostname1.policy:72
-#, fuzzy
msgid "Authentication is required to get system description."
-msgstr "设置系ç»\9fæ\97¶å\8cº需要认证。"
+msgstr "è\8e·å¾\97ç³»ç»\9fæ\8f\8fè¿°需要认证。"
#: src/import/org.freedesktop.import1.policy:22
msgid "Import a VM or container image"
# Run ata_id on non-removable USB Mass Storage (SATA/PATA disks in enclosures)
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", ATTR{removable}=="0", SUBSYSTEMS=="usb", IMPORT{program}="ata_id --export $devnode"
-# Fall back usb_id for USB devices
-KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"
+# Also import properties from usb_id for USB devices
+KERNEL=="sd*[!0-9]|sr*", SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"
# SCSI devices
KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="scsi"
KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $devnode", ENV{ID_BUS}="cciss"
KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
+# Previously, ata_id in the above might not be able to retrieve attributes correctly,
+# and properties from usb_id were used as a fallback. See issue #24921 and PR #24923.
+# To keep backward compatibility, still we need to create symlinks based on USB serial.
+# See issue #25179.
+KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_USB_SERIAL}=="?*", SYMLINK+="disk/by-id/usb-$env{ID_USB_SERIAL}"
+KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_USB_SERIAL}=="?*", SYMLINK+="disk/by-id/usb-$env{ID_USB_SERIAL}-part%n"
# PMEM devices
KERNEL=="pmem*", ENV{DEVTYPE}=="disk", ATTRS{uuid}=="?*", SYMLINK+="disk/by-id/pmem-$attr{uuid}"
" -h --help Show this help\n"
" --version Show package version\n"
" -q --quiet Do not emit hints\n"
+ " --root=PATH Operate on an alternate filesystem root\n"
+ " --image=PATH Operate on disk image as filesystem root\n"
"\nSee the %s for details.\n",
program_invocation_short_name,
ansi_highlight(),
#include <errno.h>
#include <fcntl.h>
-#include <linux/btrfs.h>
#if WANT_LINUX_FS_H
#include <linux/fs.h>
#endif
return 1024 * 1024;
}
-/* This is here because it's fd-related and is called from sd-journal code. Other btrfs-related utilities are
- * in src/shared, but libsystemd must not link to libsystemd-shared, see docs/ARCHITECTURE.md. */
-int btrfs_defrag_fd(int fd) {
- int r;
-
- assert(fd >= 0);
-
- r = fd_verify_regular(fd);
- if (r < 0)
- return r;
-
- return RET_NERRNO(ioctl(fd, BTRFS_IOC_DEFRAG, NULL));
-}
-
int fd_get_diskseq(int fd, uint64_t *ret) {
uint64_t diskseq;
int fd_reopen(int fd, int flags);
int read_nr_open(void);
-int btrfs_defrag_fd(int fd);
int fd_get_diskseq(int fd, uint64_t *ret);
/* The maximum length a buffer for a /proc/self/fd/<fd> path needs */
return EFI_SUCCESS;
}
-char16_t *get_dropin_dir(const EFI_DEVICE_PATH *file_path) {
+static char16_t *get_dropin_dir(const EFI_DEVICE_PATH *file_path) {
if (!file_path)
return NULL;
}
};
-EFIAPI EFI_STATUS initrd_load_file(
+static EFIAPI EFI_STATUS initrd_load_file(
EFI_LOAD_FILE_PROTOCOL *this,
EFI_DEVICE_PATH *file_path,
BOOLEAN boot_policy,
this->original_security2, device_path, file_buffer, file_size, boot_policy);
}
-EFI_STATUS load_image(EFI_HANDLE parent, const void *source, size_t len, EFI_HANDLE *ret_image) {
+static EFI_STATUS load_image(EFI_HANDLE parent, const void *source, size_t len, EFI_HANDLE *ret_image) {
assert(parent);
assert(source);
assert(ret_image);
/* This replaces the platform provided security arch protocols (defined in the UEFI Platform Initialization
* Specification) with the provided override instances. If not running in secure boot or the protocols are
- * not available nothing happens. The override instances are provided with the neccessary info to undo this
+ * not available nothing happens. The override instances are provided with the necessary info to undo this
* in uninstall_security_override(). */
void install_security_override(SecurityOverride *override, SecurityOverride *override2) {
assert(override);
if (!arg_sections[UNIFIED_SECTION_LINUX] && !arg_current)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Either --linux= or --current must be specified, refusing.");
+ assert(!strv_isempty(arg_banks));
+ assert(!strv_isempty(arg_phase));
+
r = pcr_states_allocate(&pcr_states);
if (r < 0)
return r;
if (!arg_private_key)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "No private key specified, use --private-key=.");
+ assert(!strv_isempty(arg_banks));
+ assert(!strv_isempty(arg_phase));
+
/* When signing we only support JSON output */
arg_json_format_flags &= ~JSON_FORMAT_OFF;
if (r < 0)
return r;
+ r = pcr_states_save(pcr_states, n);
+ if (r < 0)
+ return r;
+
r = dlopen_tpm2();
if (r < 0)
return r;
if (r < 0)
return r;
- for (size_t i = 0; i < n; i++) {
- static const TPMT_SYM_DEF symmetric = {
- .algorithm = TPM2_ALG_AES,
- .keyBits.aes = 128,
- .mode.aes = TPM2_ALG_CFB,
- };
- PcrState *p = pcr_states + i;
-
- rc = sym_Esys_StartAuthSession(
- c.esys_context,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- NULL,
- TPM2_SE_TRIAL,
- &symmetric,
- TPM2_ALG_SHA256,
- &session_handle);
- if (rc != TSS2_RC_SUCCESS) {
- r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
- "Failed to open session in TPM: %s", sym_Tss2_RC_Decode(rc));
- goto finish;
- }
+ STRV_FOREACH(phase, arg_phase) {
- /* Generate a single hash value from the PCRs included in our policy. Given that that's
- * exactly one, the calculation is trivial. */
- TPM2B_DIGEST intermediate_digest = {
- .size = SHA256_DIGEST_SIZE,
- };
- assert(sizeof(intermediate_digest.buffer) >= SHA256_DIGEST_SIZE);
- sha256_direct(p->value, p->value_size, intermediate_digest.buffer);
+ r = measure_phase(pcr_states, n, *phase);
+ if (r < 0)
+ return r;
- int tpmalg = tpm2_pcr_bank_from_string(EVP_MD_name(p->md));
- if (tpmalg < 0) {
- log_error_errno(tpmalg, "Unsupported PCR bank");
- goto finish;
- }
+ for (size_t i = 0; i < n; i++) {
+ static const TPMT_SYM_DEF symmetric = {
+ .algorithm = TPM2_ALG_AES,
+ .keyBits.aes = 128,
+ .mode.aes = TPM2_ALG_CFB,
+ };
+ PcrState *p = pcr_states + i;
+
+ rc = sym_Esys_StartAuthSession(
+ c.esys_context,
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ NULL,
+ TPM2_SE_TRIAL,
+ &symmetric,
+ TPM2_ALG_SHA256,
+ &session_handle);
+ if (rc != TSS2_RC_SUCCESS) {
+ r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
+ "Failed to open session in TPM: %s", sym_Tss2_RC_Decode(rc));
+ goto finish;
+ }
- TPML_PCR_SELECTION pcr_selection;
- tpm2_pcr_mask_to_selection(1 << TPM_PCR_INDEX_KERNEL_IMAGE, tpmalg, &pcr_selection);
-
- rc = sym_Esys_PolicyPCR(
- c.esys_context,
- session_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &intermediate_digest,
- &pcr_selection);
- if (rc != TSS2_RC_SUCCESS) {
- r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
- "Failed to push PCR policy into TPM: %s", sym_Tss2_RC_Decode(rc));
- goto finish;
- }
+ /* Generate a single hash value from the PCRs included in our policy. Given that that's
+ * exactly one, the calculation is trivial. */
+ TPM2B_DIGEST intermediate_digest = {
+ .size = SHA256_DIGEST_SIZE,
+ };
+ assert(sizeof(intermediate_digest.buffer) >= SHA256_DIGEST_SIZE);
+ sha256_direct(p->value, p->value_size, intermediate_digest.buffer);
+
+ int tpmalg = tpm2_pcr_bank_from_string(EVP_MD_name(p->md));
+ if (tpmalg < 0) {
+ log_error_errno(tpmalg, "Unsupported PCR bank");
+ goto finish;
+ }
- _cleanup_(Esys_Freep) TPM2B_DIGEST *pcr_policy_digest = NULL;
- rc = sym_Esys_PolicyGetDigest(
- c.esys_context,
- session_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &pcr_policy_digest);
- if (rc != TSS2_RC_SUCCESS) {
- r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
- "Failed to get policy digest from TPM: %s", sym_Tss2_RC_Decode(rc));
- goto finish;
- }
+ TPML_PCR_SELECTION pcr_selection;
+ tpm2_pcr_mask_to_selection(1 << TPM_PCR_INDEX_KERNEL_IMAGE, tpmalg, &pcr_selection);
+
+ rc = sym_Esys_PolicyPCR(
+ c.esys_context,
+ session_handle,
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ &intermediate_digest,
+ &pcr_selection);
+ if (rc != TSS2_RC_SUCCESS) {
+ r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
+ "Failed to push PCR policy into TPM: %s", sym_Tss2_RC_Decode(rc));
+ goto finish;
+ }
- session_handle = tpm2_flush_context_verbose(c.esys_context, session_handle);
+ _cleanup_(Esys_Freep) TPM2B_DIGEST *pcr_policy_digest = NULL;
+ rc = sym_Esys_PolicyGetDigest(
+ c.esys_context,
+ session_handle,
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ &pcr_policy_digest);
+ if (rc != TSS2_RC_SUCCESS) {
+ r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
+ "Failed to get policy digest from TPM: %s", sym_Tss2_RC_Decode(rc));
+ goto finish;
+ }
- _cleanup_(EVP_MD_CTX_freep) EVP_MD_CTX* mdctx = NULL;
- mdctx = EVP_MD_CTX_new();
- if (!mdctx) {
- r = log_oom();
- goto finish;
- }
+ session_handle = tpm2_flush_context_verbose(c.esys_context, session_handle);
- if (EVP_DigestSignInit(mdctx, NULL, p->md, NULL, privkey) != 1) {
- r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
- "Failed to initialize signature context.");
- goto finish;
- }
+ _cleanup_(EVP_MD_CTX_freep) EVP_MD_CTX* mdctx = NULL;
+ mdctx = EVP_MD_CTX_new();
+ if (!mdctx) {
+ r = log_oom();
+ goto finish;
+ }
- if (EVP_DigestSignUpdate(mdctx, pcr_policy_digest->buffer, pcr_policy_digest->size) != 1) {
- r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
- "Failed to sign data.");
- goto finish;
- }
+ if (EVP_DigestSignInit(mdctx, NULL, p->md, NULL, privkey) != 1) {
+ r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
+ "Failed to initialize signature context.");
+ goto finish;
+ }
- size_t ss;
- if (EVP_DigestSignFinal(mdctx, NULL, &ss) != 1) {
- r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
- "Failed to finalize signature");
- goto finish;
- }
+ if (EVP_DigestSignUpdate(mdctx, pcr_policy_digest->buffer, pcr_policy_digest->size) != 1) {
+ r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
+ "Failed to sign data.");
+ goto finish;
+ }
- _cleanup_free_ void *sig = malloc(ss);
- if (!ss) {
- r = log_oom();
- goto finish;
- }
+ size_t ss;
+ if (EVP_DigestSignFinal(mdctx, NULL, &ss) != 1) {
+ r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
+ "Failed to finalize signature");
+ goto finish;
+ }
- if (EVP_DigestSignFinal(mdctx, sig, &ss) != 1) {
- r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
- "Failed to acquire signature data");
- goto finish;
- }
+ _cleanup_free_ void *sig = malloc(ss);
+ if (!ss) {
+ r = log_oom();
+ goto finish;
+ }
- _cleanup_free_ void *pubkey_fp = NULL;
- size_t pubkey_fp_size = 0;
- r = pubkey_fingerprint(pubkey, EVP_sha256(), &pubkey_fp, &pubkey_fp_size);
- if (r < 0)
- goto finish;
+ if (EVP_DigestSignFinal(mdctx, sig, &ss) != 1) {
+ r = log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
+ "Failed to acquire signature data");
+ goto finish;
+ }
- _cleanup_(json_variant_unrefp) JsonVariant *bv = NULL, *a = NULL;
+ _cleanup_free_ void *pubkey_fp = NULL;
+ size_t pubkey_fp_size = 0;
+ r = pubkey_fingerprint(pubkey, EVP_sha256(), &pubkey_fp, &pubkey_fp_size);
+ if (r < 0)
+ goto finish;
- r = tpm2_make_pcr_json_array(UINT64_C(1) << TPM_PCR_INDEX_KERNEL_IMAGE, &a);
- if (r < 0) {
- log_error_errno(r, "Failed to build JSON PCR mask array: %m");
- goto finish;
- }
+ _cleanup_(json_variant_unrefp) JsonVariant *a = NULL;
+ r = tpm2_make_pcr_json_array(UINT64_C(1) << TPM_PCR_INDEX_KERNEL_IMAGE, &a);
+ if (r < 0) {
+ log_error_errno(r, "Failed to build JSON PCR mask array: %m");
+ goto finish;
+ }
- r = json_build(&bv, JSON_BUILD_ARRAY(
- JSON_BUILD_OBJECT(
- JSON_BUILD_PAIR("pcrs", JSON_BUILD_VARIANT(a)), /* PCR mask */
- JSON_BUILD_PAIR("pkfp", JSON_BUILD_HEX(pubkey_fp, pubkey_fp_size)), /* SHA256 fingerprint of public key (DER) used for the signature */
- JSON_BUILD_PAIR("pol", JSON_BUILD_HEX(pcr_policy_digest->buffer, pcr_policy_digest->size)), /* TPM2 policy hash that is signed */
- JSON_BUILD_PAIR("sig", JSON_BUILD_BASE64(sig, ss))))); /* signature data */
- if (r < 0) {
- log_error_errno(r, "Failed to build JSON object: %m");
- goto finish;
- }
+ _cleanup_(json_variant_unrefp) JsonVariant *bv = NULL;
+ r = json_build(&bv, JSON_BUILD_OBJECT(
+ JSON_BUILD_PAIR("pcrs", JSON_BUILD_VARIANT(a)), /* PCR mask */
+ JSON_BUILD_PAIR("pkfp", JSON_BUILD_HEX(pubkey_fp, pubkey_fp_size)), /* SHA256 fingerprint of public key (DER) used for the signature */
+ JSON_BUILD_PAIR("pol", JSON_BUILD_HEX(pcr_policy_digest->buffer, pcr_policy_digest->size)), /* TPM2 policy hash that is signed */
+ JSON_BUILD_PAIR("sig", JSON_BUILD_BASE64(sig, ss)))); /* signature data */
+ if (r < 0) {
+ log_error_errno(r, "Failed to build JSON object: %m");
+ goto finish;
+ }
+
+ _cleanup_(json_variant_unrefp) JsonVariant *av = NULL;
+ av = json_variant_ref(json_variant_by_key(v, p->bank));
+
+ r = json_variant_append_array(&av, bv);
+ if (r < 0) {
+ log_error_errno(r, "Failed to append JSON object: %m");
+ goto finish;
+ }
- r = json_variant_set_field(&v, p->bank, bv);
- if (r < 0) {
- log_error_errno(r, "Failed to add JSON field: %m");
- goto finish;
+ r = json_variant_set_field(&v, p->bank, av);
+ if (r < 0) {
+ log_error_errno(r, "Failed to add JSON field: %m");
+ goto finish;
+ }
}
- }
- if (!v)
- return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unable to find a single working PCR bank.");
+ /* Return to the original kernel measurement for the next phase calculation */
+ pcr_states_restore(pcr_states, n);
+ }
if (arg_json_format_flags & (JSON_FORMAT_PRETTY|JSON_FORMAT_PRETTY_AUTO))
pager_open(arg_pager_flags);
"File %s is under the systemd unit hierarchy already.", changes[i].path);
goto found;
+ case -EBADSLT:
+ r = sd_bus_error_setf(error, BUS_ERROR_BAD_UNIT_SETTING,
+ "Invalid specifier in %s.", changes[i].path);
+ goto found;
+
+ case -EIDRM:
+ r = sd_bus_error_setf(error, BUS_ERROR_BAD_UNIT_SETTING,
+ "Destination unit %s is a non-template unit.", changes[i].path);
+ goto found;
+
case -EUCLEAN:
r = sd_bus_error_setf(error, BUS_ERROR_BAD_UNIT_SETTING,
"\"%s\" is not a valid unit name.",
changes[i].path);
goto found;
+ case -EXDEV:
+ if (changes[i].source)
+ r = sd_bus_error_setf(error, BUS_ERROR_BAD_UNIT_SETTING,
+ "Cannot alias %s as %s.",
+ changes[i].source, changes[i].path);
+ else
+ r = sd_bus_error_setf(error, BUS_ERROR_BAD_UNIT_SETTING,
+ "Invalid unit reference %s.", changes[i].path);
+ goto found;
+
case -ENOENT:
r = sd_bus_error_setf(error, BUS_ERROR_NO_SUCH_UNIT,
"Unit file %s does not exist.", changes[i].path);
goto found;
+ case -EUNATCH:
+ r = sd_bus_error_setf(error, BUS_ERROR_BAD_UNIT_SETTING,
+ "Cannot resolve specifiers in %s.", changes[i].path);
+ goto found;
+
default:
assert(changes[i].type < 0); /* other errors */
r = sd_bus_error_set_errnof(error, changes[i].type, "File %s: %m", changes[i].path);
#DefaultLimitNOFILE=1024:{{HIGH_RLIMIT_NOFILE}}
#DefaultLimitAS=
#DefaultLimitNPROC=
-#DefaultLimitMEMLOCK=
+#DefaultLimitMEMLOCK=8M
#DefaultLimitLOCKS=
#DefaultLimitSIGPENDING=
#DefaultLimitMSGQUEUE=
" -D --directory=DIR Use journal files from directory\n\n"
" -q --quiet Do not show info messages and privilege warning\n"
" --all Look at all journal files instead of local ones\n"
+ " --root=PATH Operate on an alternate filesystem root\n"
+ " --image=PATH Operate on disk image as filesystem root\n"
"\nSee the %2$s for details.\n",
program_invocation_short_name,
link,
"%1$s [OPTIONS...] --umount PATH\n"
"%1$s [OPTIONS...] --copy-from IMAGE PATH [TARGET]\n"
"%1$s [OPTIONS...] --copy-to IMAGE [SOURCE] PATH\n\n"
- "%5$sDissect a file system OS image.%6$s\n\n"
+ "%5$sDissect a Discoverable Disk Image (DDI).%6$s\n\n"
"%3$sOptions:%4$s\n"
" --no-pager Do not pipe output into a pager\n"
" --no-legend Do not show the headers and footers\n"
return device_add_property_internal(device, "INTERFACE", name);
}
-int device_shallow_clone(sd_device *device, sd_device **ret) {
+static int device_shallow_clone(sd_device *device, sd_device **ret) {
_cleanup_(sd_device_unrefp) sd_device *dest = NULL;
const char *val = NULL;
int r;
return 0;
}
-int device_copy_properties(sd_device *device_dst, sd_device *device_src) {
- const char *property, *value;
- int r;
-
- assert(device_dst);
- assert(device_src);
-
- r = device_properties_prepare(device_src);
- if (r < 0)
- return r;
-
- ORDERED_HASHMAP_FOREACH_KEY(value, property, device_src->properties_db) {
- r = device_add_property_aux(device_dst, property, value, true);
- if (r < 0)
- return r;
- }
-
- ORDERED_HASHMAP_FOREACH_KEY(value, property, device_src->properties) {
- r = device_add_property_aux(device_dst, property, value, false);
- if (r < 0)
- return r;
- }
-
- return 0;
-}
-
void device_cleanup_tags(sd_device *device) {
assert(device);
int device_get_properties_strv(sd_device *device, char ***ret);
int device_rename(sd_device *device, const char *name);
-int device_shallow_clone(sd_device *device, sd_device **ret);
int device_clone_with_db(sd_device *device, sd_device **ret);
-int device_copy_properties(sd_device *device_dst, sd_device *device_src);
int device_tag_index(sd_device *dev, sd_device *dev_old, bool add);
int device_update_db(sd_device *device);
assert_se(sd_event_loop(sd_device_monitor_get_event(monitor_client)) == 100);
}
-static void test_device_copy_properties(sd_device *device) {
- _cleanup_(sd_device_unrefp) sd_device *copy = NULL;
-
- assert_se(device_shallow_clone(device, ©) >= 0);
- assert_se(device_copy_properties(copy, device) >= 0);
-
- test_send_receive_one(copy, false, false, false);
-}
-
int main(int argc, char *argv[]) {
_cleanup_(sd_device_unrefp) sd_device *loopback = NULL, *sda = NULL;
int r;
test_tag_filter(loopback);
test_sysattr_filter(loopback, "ifindex");
test_sd_device_monitor_filter_remove(loopback);
- test_device_copy_properties(loopback);
r = sd_device_new_from_subsystem_sysname(&sda, "block", "sda");
if (r < 0) {
/* The test test_sd_device_enumerator_filter_subsystem_trial() is quite racy. Let's run the function
* several times after the udev queue becomes empty. */
- if (!udev_available()) {
+ if (!udev_available() || (access("/run/udev", F_OK) < 0 && errno == ENOENT)) {
assert_se(test_sd_device_enumerator_filter_subsystem_trial_many());
return;
}
#include "networkd-link.h"
#include "networkd-manager.h"
#include "networkd-network.h"
+#include "networkd-route-util.h"
#include "parse-util.h"
#include "socket-util.h"
#include "string-table.h"
assert(IN_SET(ltype, AF_INET, AF_INET6));
assert(rvalue);
- r = safe_atou32(rvalue, &rt);
+ r = manager_get_route_table_from_string(network->manager, rvalue, &rt);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
"Failed to parse RouteTable=%s, ignoring assignment: %m", rvalue);
}
log_link_debug(link, "IPv6 Router Advertisement engine is configured%s.",
- link_has_carrier(link) ? " and started." : "");
+ link_has_carrier(link) ? " and started" : "");
return 1;
}
assert(m);
assert(ret);
- if (table == 0)
- return -EINVAL;
+ /* Unlike manager_get_route_table_from_string(), this accepts 0, as the kernel may create routes with
+ * table 0. See issue #25089. */
s = route_table_to_string(table);
if (!s)
r = manager_get_route_table_from_string(network->manager, rvalue, &n->table);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
- "Could not parse route table number \"%s\", ignoring assignment: %m", rvalue);
+ "Could not parse route table \"%s\", ignoring assignment: %m", rvalue);
return 0;
}
r = manager_get_route_table_from_string(network->manager, rvalue, &n->table);
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r,
- "Could not parse RPDB rule route table number \"%s\", ignoring assignment: %m", rvalue);
+ "Could not parse RPDB rule route table \"%s\", ignoring assignment: %m", rvalue);
return 0;
}
assert(l->ifname);
r = sd_network_link_get_required_for_online(l->ifindex);
- if (r < 0)
+ if (r < 0 && r != -ENODATA)
ret = log_link_debug_errno(l, r, "Failed to determine whether the link is required for online or not, "
"assuming required: %m");
l->required_for_online = r != 0;
r = sd_network_link_get_required_operstate_for_online(l->ifindex, &required_operstate);
- if (r < 0) {
+ if (r < 0 && r != -ENODATA)
ret = log_link_debug_errno(l, r, "Failed to get required operational state, ignoring: %m");
- l->required_operstate = LINK_OPERSTATE_RANGE_DEFAULT;
- } else if (isempty(required_operstate))
+
+ if (isempty(required_operstate))
l->required_operstate = LINK_OPERSTATE_RANGE_DEFAULT;
else {
r = parse_operational_state_range(required_operstate, &l->required_operstate);
ret = log_link_debug_errno(l, r, "Failed to get operational state, ignoring: %m");
r = sd_network_link_get_required_family_for_online(l->ifindex, &required_family);
- if (r < 0)
+ if (r < 0 && r != -ENODATA)
ret = log_link_debug_errno(l, r, "Failed to get required address family, ignoring: %m");
- else if (isempty(required_family))
+
+ if (isempty(required_family))
l->required_family = ADDRESS_FAMILY_NO;
else {
AddressFamily f;
return varlink_error_invalid_parameter(link, JSON_VARIANT_STRING_CONST("family"));
if (FAMILY_ADDRESS_SIZE(p.family) != p.address_size)
- return varlink_error(link, "io.systemd.UserDatabase.BadAddressSize", NULL);
+ return varlink_error(link, "io.systemd.Resolve.BadAddressSize", NULL);
if (!validate_and_mangle_flags(NULL, &p.flags, 0))
return varlink_error_invalid_parameter(link, JSON_VARIANT_STRING_CONST("flags"));
return btrfs_subvol_get_subtree_quota_fd(fd, subvol_id, ret);
}
+int btrfs_defrag_fd(int fd) {
+ int r;
+
+ assert(fd >= 0);
+
+ r = fd_verify_regular(fd);
+ if (r < 0)
+ return r;
+
+ return RET_NERRNO(ioctl(fd, BTRFS_IOC_DEFRAG, NULL));
+}
+
int btrfs_defrag(const char *p) {
_cleanup_close_ int fd = -1;
int btrfs_get_block_device_fd(int fd, dev_t *dev);
int btrfs_get_block_device(const char *path, dev_t *dev);
+int btrfs_defrag_fd(int fd);
int btrfs_defrag(const char *p);
int btrfs_quota_enable_fd(int fd, bool b);
n = info->name;
}
+ r = 0;
STRV_FOREACH(s, list) {
_cleanup_free_ char *path = NULL, *dst = NULL;
q = install_name_printf(scope, info, *s, &dst);
- if (q < 0)
- return install_changes_add(changes, n_changes, q, *s, NULL);
+ if (q < 0) {
+ install_changes_add(changes, n_changes, q, *s, NULL);
+ if (r >= 0)
+ r = q;
+ }
if (!unit_name_is_valid(dst, valid_dst_type)) {
/* Generate a proper error here: EUCLEAN if the name is generally bad, EIDRM if the
continue;
if (unit_name_is_valid(dst, UNIT_NAME_ANY))
- return install_changes_add(changes, n_changes, -EIDRM, dst, n);
+ q = install_changes_add(changes, n_changes, -EIDRM, dst, n);
else
- return install_changes_add(changes, n_changes, -EUCLEAN, dst, NULL);
+ q = install_changes_add(changes, n_changes, -EUCLEAN, dst, NULL);
+ if (r >= 0)
+ r = q;
continue;
}
return -ENOMEM;
q = create_symlink(lp, info->path, path, true, changes, n_changes);
- if (r == 0)
+ if ((q < 0 && r >= 0) || r == 0)
r = q;
if (unit_file_exists(scope, lp, dst) == 0) {
#!/bin/sh
-# SPDX-License-Identifier: CC0-1.0
+# SPDX-License-Identifier: MIT-0
#
# This script is called by "systemctl enable/disable" when the given unit is a
# SysV init.d script. It needs to call the distribution's mechanism for
_cleanup_free_ char *hostname = NULL;
Condition *condition;
sd_id128_t id;
+ int r;
- assert_se(sd_id128_get_machine(&id) >= 0);
+ r = sd_id128_get_machine(&id);
+ if (IN_SET(r, -ENOENT, -ENOMEDIUM))
+ return (void) log_tests_skipped("/etc/machine-id missing");
+ assert_se(r >= 0);
condition = condition_new(CONDITION_HOST, SD_ID128_TO_STRING(id), false, false);
assert_se(condition);
result = mfree(result);
r = chase_symlinks("/etc/machine-id/foo", NULL, 0, &result, NULL);
- assert_se(r == -ENOTDIR);
+ assert_se(IN_SET(r, -ENOTDIR, -ENOENT));
result = mfree(result);
/* Path that loops back to self */
assert_se(!sd_id128_in_set(id, ID128_WALDI));
assert_se(!sd_id128_in_set(id, ID128_WALDI, ID128_WALDI));
- if (sd_booted() > 0) {
+ if (sd_booted() > 0 && access("/etc/machine-id", F_OK) >= 0) {
assert_se(sd_id128_get_machine(&id) == 0);
printf("machine: %s\n", sd_id128_to_string(id, t));
assert_se(id128_read_fd(fd, ID128_UUID, &id2) >= 0);
assert_se(sd_id128_equal(id, id2));
- assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e), &id) >= 0);
- assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e), &id2) >= 0);
- assert_se(sd_id128_equal(id, id2));
- assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(51,df,0b,4b,c3,b0,4c,97,80,e2,99,b9,8c,a3,73,b8), &id2) >= 0);
- assert_se(!sd_id128_equal(id, id2));
+ if (sd_booted() > 0 && access("/etc/machine-id", F_OK) >= 0) {
+ assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e), &id) >= 0);
+ assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(f0,3d,aa,eb,1c,33,4b,43,a7,32,17,29,44,bf,77,2e), &id2) >= 0);
+ assert_se(sd_id128_equal(id, id2));
+ assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(51,df,0b,4b,c3,b0,4c,97,80,e2,99,b9,8c,a3,73,b8), &id2) >= 0);
+ assert_se(!sd_id128_equal(id, id2));
+ }
}
TEST(sd_id128_get_invocation) {
unsigned iterations = slow_tests_enabled() ? 1000000 : 1000;
usec_t t, q;
+ if (access("/etc/machine-id", F_OK) < 0 && errno == ENOENT)
+ return (void) log_tests_skipped("/etc/machine-id does not exist");
+
log_info("/* %s (%u iterations) */", __func__, iterations);
sd_id128_t id = ID128_WALDI, id2;
_cleanup_free_ char *mid = NULL, *bid = NULL, *host = NULL, *gid = NULL, *group = NULL, *uid = NULL, *user = NULL;
- assert_se(specifier_machine_id('m', NULL, NULL, NULL, &mid) >= 0 && mid);
- assert_se(specifier_boot_id('b', NULL, NULL, NULL, &bid) >= 0 && bid);
+ if (access("/etc/machine-id", F_OK) >= 0)
+ assert_se(specifier_machine_id('m', NULL, NULL, NULL, &mid) >= 0 && mid);
+ if (sd_booted() > 0)
+ assert_se(specifier_boot_id('b', NULL, NULL, NULL, &bid) >= 0 && bid);
assert_se(host = gethostname_malloc());
assert_se(group = gid_to_name(getgid()));
assert_se(asprintf(&gid, UID_FMT, getgid()) >= 0);
assert_se( iszero_safe(DBL_MIN / -INFINITY));
assert_se( iszero_safe(DBL_MAX / INFINITY / 2));
assert_se( iszero_safe(DBL_MAX / -INFINITY * DBL_MAX));
-#if defined(__i386__) && !defined(__SSE2_MATH__)
- /* On 32bit x86, -mfpmath=387 is the default and SSE2 is not used. Then, floating point values are
- * calculated in 80bit, and truncated to the length of the used type (double in this case). Hence,
- * DBL_MAX * 2 is temporary calculated as a normal value, and goes to zero when divided with
- * INFINITY. See issue #25044. */
- log_debug("i386 architecture without SSE2 is detected. "
- "Skipping \"assert_se(!iszero_safe(DBL_MAX * 2 / INFINITY))\".");
-#else
- assert_se(!iszero_safe(DBL_MAX * 2 / INFINITY));
-#endif
/* infinity / infinity is NaN */
assert_se(!iszero_safe(INFINITY / INFINITY));
assert_se(streq(w, "xxx a=AAAA b=BBBB e= yyy"));
free(w);
- r = specifier_printf("machine=%m, boot=%b, host=%H, pretty=%q, version=%v, arch=%a, empty=%e", SIZE_MAX, table, NULL, NULL, &w);
+ r = specifier_printf("boot=%b, host=%H, pretty=%q, version=%v, arch=%a, empty=%e", SIZE_MAX, table, NULL, NULL, &w);
assert_se(r >= 0);
assert_se(w);
puts(w);
}
TEST(specifiers) {
+ int r;
+
for (const Specifier *s = specifier_table; s->specifier; s++) {
char spec[3];
_cleanup_free_ char *resolved = NULL;
xsprintf(spec, "%%%c", s->specifier);
- assert_se(specifier_printf(spec, SIZE_MAX, specifier_table, NULL, NULL, &resolved) >= 0);
+ r = specifier_printf(spec, SIZE_MAX, specifier_table, NULL, NULL, &resolved);
+ if (s->specifier == 'm' && IN_SET(r, -ENOENT, -ENOMEDIUM)) /* machine-id might be missing in build chroots */
+ continue;
+ assert_se(r >= 0);
log_info("%%%c → %s", s->specifier, resolved);
}
TEST_RET(unit_printf, .sd_booted = true) {
_cleanup_free_ char
- *architecture, *os_image_version, *boot_id, *os_build_id,
+ *architecture, *os_image_version, *boot_id = NULL, *os_build_id,
*hostname, *short_hostname, *pretty_hostname,
- *machine_id, *os_image_id, *os_id, *os_version_id, *os_variant_id,
+ *machine_id = NULL, *os_image_id, *os_id, *os_version_id, *os_variant_id,
*user, *group, *uid, *gid, *home, *shell,
*tmp_dir, *var_tmp_dir;
_cleanup_(manager_freep) Manager *m = NULL;
assert_se(specifier_architecture('a', NULL, NULL, NULL, &architecture) >= 0);
assert_se(architecture);
assert_se(specifier_os_image_version('A', NULL, NULL, NULL, &os_image_version) >= 0);
- assert_se(specifier_boot_id('b', NULL, NULL, NULL, &boot_id) >= 0);
- assert_se(boot_id);
+ if (sd_booted() > 0) {
+ assert_se(specifier_boot_id('b', NULL, NULL, NULL, &boot_id) >= 0);
+ assert_se(boot_id);
+ }
assert_se(specifier_os_build_id('B', NULL, NULL, NULL, &os_build_id) >= 0);
assert_se(hostname = gethostname_malloc());
assert_se(specifier_short_hostname('l', NULL, NULL, NULL, &short_hostname) == 0);
assert_se(short_hostname);
assert_se(specifier_pretty_hostname('q', NULL, NULL, NULL, &pretty_hostname) == 0);
assert_se(pretty_hostname);
- assert_se(specifier_machine_id('m', NULL, NULL, NULL, &machine_id) >= 0);
- assert_se(machine_id);
+ if (access("/etc/machine-id", F_OK) >= 0) {
+ assert_se(specifier_machine_id('m', NULL, NULL, NULL, &machine_id) >= 0);
+ assert_se(machine_id);
+ }
assert_se(specifier_os_image_id('M', NULL, NULL, NULL, &os_image_id) >= 0);
assert_se(specifier_os_id('o', NULL, NULL, NULL, &os_id) >= 0);
assert_se(specifier_os_version_id('w', NULL, NULL, NULL, &os_version_id) >= 0);
/* normal unit */
expect(u, "%a", architecture);
expect(u, "%A", os_image_version);
- expect(u, "%b", boot_id);
+ if (boot_id)
+ expect(u, "%b", boot_id);
expect(u, "%B", os_build_id);
expect(u, "%H", hostname);
expect(u, "%l", short_hostname);
expect(u, "%q", pretty_hostname);
- expect(u, "%m", machine_id);
+ if (machine_id)
+ expect(u, "%m", machine_id);
expect(u, "%M", os_image_id);
expect(u, "%o", os_id);
expect(u, "%w", os_version_id);
if (laccess(i.argument, F_OK) == -ENOENT) {
/* Silently skip over lines where the source file is missing. */
- log_syntax(NULL, LOG_INFO, fname, line, 0, "Copy source path '%s' does not exist, skipping line.", i.argument);
+ log_syntax(NULL, LOG_DEBUG, fname, line, 0, "Copy source path '%s' does not exist, skipping line.", i.argument);
return 0;
}
r = read_credential(i.argument, &i.binary_argument, &i.binary_argument_size);
if (IN_SET(r, -ENXIO, -ENOENT)) {
/* Silently skip over lines that have no credentials passed */
- log_syntax(NULL, LOG_INFO, fname, line, 0,
+ log_syntax(NULL, LOG_DEBUG, fname, line, 0,
"Credential '%s' not specified, skipping line.", i.argument);
return 0;
}
r = sd_device_get_sysattr_value(dev, "address", &s);
if (r < 0 && r != -ENOENT)
return r;
- if (r > 0) {
+ if (r >= 0) {
r = parse_hw_addr(s, &info->hw_addr);
if (r < 0)
log_device_debug_errno(dev, r, "Failed to parse 'address' sysattr, ignoring: %m");
if (!isempty(instance_str))
strpcpyl(&s, l, "-", instance_str, NULL);
- udev_builtin_add_property(dev, test, "ID_VENDOR", vendor_str);
- udev_builtin_add_property(dev, test, "ID_VENDOR_ENC", vendor_str_enc);
- udev_builtin_add_property(dev, test, "ID_VENDOR_ID", vendor_id);
- udev_builtin_add_property(dev, test, "ID_MODEL", model_str);
- udev_builtin_add_property(dev, test, "ID_MODEL_ENC", model_str_enc);
- udev_builtin_add_property(dev, test, "ID_MODEL_ID", product_id);
- udev_builtin_add_property(dev, test, "ID_REVISION", revision_str);
- udev_builtin_add_property(dev, test, "ID_SERIAL", serial);
+ if (sd_device_get_property_value(dev, "ID_BUS", NULL) >= 0)
+ log_device_debug(dev, "ID_BUS property is already set, setting only properties prefixed with \"ID_USB_\".");
+ else {
+ udev_builtin_add_property(dev, test, "ID_BUS", "usb");
+
+ udev_builtin_add_property(dev, test, "ID_MODEL", model_str);
+ udev_builtin_add_property(dev, test, "ID_MODEL_ENC", model_str_enc);
+ udev_builtin_add_property(dev, test, "ID_MODEL_ID", product_id);
+
+ udev_builtin_add_property(dev, test, "ID_SERIAL", serial);
+ if (!isempty(serial_str))
+ udev_builtin_add_property(dev, test, "ID_SERIAL_SHORT", serial_str);
+
+ udev_builtin_add_property(dev, test, "ID_VENDOR", vendor_str);
+ udev_builtin_add_property(dev, test, "ID_VENDOR_ENC", vendor_str_enc);
+ udev_builtin_add_property(dev, test, "ID_VENDOR_ID", vendor_id);
+
+ udev_builtin_add_property(dev, test, "ID_REVISION", revision_str);
+
+ if (!isempty(type_str))
+ udev_builtin_add_property(dev, test, "ID_TYPE", type_str);
+
+ if (!isempty(instance_str))
+ udev_builtin_add_property(dev, test, "ID_INSTANCE", instance_str);
+ }
+
+ /* Also export the same values in the above by prefixing ID_USB_. */
+ udev_builtin_add_property(dev, test, "ID_USB_MODEL", model_str);
+ udev_builtin_add_property(dev, test, "ID_USB_MODEL_ENC", model_str_enc);
+ udev_builtin_add_property(dev, test, "ID_USB_MODEL_ID", product_id);
+ udev_builtin_add_property(dev, test, "ID_USB_SERIAL", serial);
if (!isempty(serial_str))
- udev_builtin_add_property(dev, test, "ID_SERIAL_SHORT", serial_str);
+ udev_builtin_add_property(dev, test, "ID_USB_SERIAL_SHORT", serial_str);
+
+ udev_builtin_add_property(dev, test, "ID_USB_VENDOR", vendor_str);
+ udev_builtin_add_property(dev, test, "ID_USB_VENDOR_ENC", vendor_str_enc);
+ udev_builtin_add_property(dev, test, "ID_USB_VENDOR_ID", vendor_id);
+
+ udev_builtin_add_property(dev, test, "ID_USB_REVISION", revision_str);
+
if (!isempty(type_str))
- udev_builtin_add_property(dev, test, "ID_TYPE", type_str);
+ udev_builtin_add_property(dev, test, "ID_USB_TYPE", type_str);
+
if (!isempty(instance_str))
- udev_builtin_add_property(dev, test, "ID_INSTANCE", instance_str);
- udev_builtin_add_property(dev, test, "ID_BUS", "usb");
+ udev_builtin_add_property(dev, test, "ID_USB_INSTANCE", instance_str);
+
if (!isempty(packed_if_str))
udev_builtin_add_property(dev, test, "ID_USB_INTERFACES", packed_if_str);
if (ifnum)
ExecStart=sh -c 'test %G = $$(id -g)'
ExecStart=test %h = /root
ExecStart=sh -c 'test -x %s'
-ExecStart=sh -c 'test %m = $$(cat /etc/machine-id)'
ExecStart=sh -c 'test %b = $$(cat /proc/sys/kernel/random/boot_id | sed -e 's/-//g')'
ExecStart=sh -c 'test %H = $$(uname -n)'
ExecStart=sh -c 'test %v = $$(uname -r)'
ExecStart=sh -c 'test %G = $$(id -g)'
ExecStart=test %h = /root
ExecStart=sh -c 'test -x %s'
-ExecStart=sh -c 'test %m = $$(cat /etc/machine-id)'
ExecStart=sh -c 'test %b = $$(cat /proc/sys/kernel/random/boot_id | sed -e 's/-//g')'
ExecStart=sh -c 'test %H = $$(uname -n)'
ExecStart=sh -c 'test %v = $$(uname -r)'
--- /dev/null
+# SPDX-License-Identifier: LGPL-2.1-or-later
+[Match]
+Name=dummy98
+
+[Network]
+IPv6AcceptRA=no
+++ /dev/null
-# SPDX-License-Identifier: LGPL-2.1-or-later
-[Match]
-Name=veth99
-
-[NetworkEmulator]
-DelaySec=9
-
-[Network]
-DHCP=ipv4
-IPv6AcceptRA=true
+++ /dev/null
-# SPDX-License-Identifier: LGPL-2.1-or-later
-[Match]
-Name=veth-peer
-
-[Network]
-Address=192.168.5.1/24
-IPv6AcceptRA=no
-DHCPServer=yes
-IPv6SendRA=yes
-
-[IPv6Prefix]
-Prefix=2002:da8:1:0::/64
-
-[DHCPServer]
-DNS=192.168.5.1
-NTP=192.168.5.1
-
-[IPv6SendRA]
-EmitDNS=no
-EmitDomains=no
+++ /dev/null
-# SPDX-License-Identifier: LGPL-2.1-or-later
-[Match]
-Name=veth-peer
-
-[NetworkEmulator]
-DelaySec=15
-
-[Network]
-IPv6AcceptRA=no
-IPv6SendRA=yes
-
-[IPv6Prefix]
-Prefix=2002:da8:1:0::/64
+++ /dev/null
-# SPDX-License-Identifier: LGPL-2.1-or-later
-[Match]
-Name=veth99
-
-[Network]
-IPv6AcceptRA=true
-Address=192.168.5.1/24
import itertools
import os
import pathlib
-import psutil
import re
import shutil
import signal
import time
import unittest
+import psutil
+
network_unit_dir = '/run/systemd/network'
networkd_conf_dropin_dir = '/run/systemd/networkd.conf.d'
networkd_ci_temp_dir = '/run/networkd-ci'
def touch(path):
pathlib.Path(path).touch()
+# pylint: disable=R1710
def check_output(*command, **kwargs):
# This checks the result and returns stdout (and stderr) on success.
command = command[0].split() + list(command[1:])
return f
+# pylint: disable=C0415
+def compare_kernel_version(min_kernel_version):
+ try:
+ import platform
+ from packaging import version
+ except ImportError:
+ print('Failed to import either platform or packaging module, assuming the comparison failed')
+ return False
+
+ # Get only the actual kernel version without any build/distro/arch stuff
+ # e.g. '5.18.5-200.fc36.x86_64' -> '5.18.5'
+ kver = platform.release().split('-')[0]
+
+ return version.parse(kver) >= version.parse(min_kernel_version)
+
def udev_reload():
check_output(*udevadm_cmd, 'control', '--reload')
print(f'Cannot remove L2TP tunnel {tid}, ignoring.')
def save_timezone():
+ # pylint: disable=global-statement
global saved_timezone
r = run(*timedatectl_cmd, 'show', '--value', '--property', 'Timezone', env=env)
if r.returncode == 0:
args += ['--ipv6']
try:
check_output(*args, env=wait_online_env)
- except subprocess.CalledProcessError as e:
+ except subprocess.CalledProcessError:
# show detailed status on failure
for link in links_with_operstate:
name = link.split(':')[0]
def check_netlabel(self, interface, address, label='system_u:object_r:root_t:s0'):
if not shutil.which('selinuxenabled'):
- print(f'## Checking NetLabel skipped: selinuxenabled command not found.')
+ print('## Checking NetLabel skipped: selinuxenabled command not found.')
elif call_quiet('selinuxenabled') != 0:
- print(f'## Checking NetLabel skipped: SELinux disabled.')
+ print('## Checking NetLabel skipped: SELinux disabled.')
elif not shutil.which('netlabelctl'): # not packaged by all distros
- print(f'## Checking NetLabel skipped: netlabelctl command not found.')
+ print('## Checking NetLabel skipped: netlabelctl command not found.')
else:
output = check_output('netlabelctl unlbl list')
print(output)
output = check_output('ip -d tuntap show')
print(output)
- self.assertRegex(output, f'(?m)testtap99: tap pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:{name}\({pid}\)systemd\(1\)$')
- self.assertRegex(output, f'(?m)testtun99: tun pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:{name}\({pid}\)systemd\(1\)$')
+ self.assertRegex(output, fr'(?m)testtap99: tap pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:{name}\({pid}\)systemd\(1\)$')
+ self.assertRegex(output, fr'(?m)testtun99: tun pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:{name}\({pid}\)systemd\(1\)$')
output = check_output('ip -d link show testtun99')
print(output)
output = check_output('ip -d tuntap show')
print(output)
- self.assertRegex(output, f'(?m)testtap99: tap pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:{name}\({pid}\)systemd\(1\)$')
- self.assertRegex(output, f'(?m)testtun99: tun pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:{name}\({pid}\)systemd\(1\)$')
+ self.assertRegex(output, fr'(?m)testtap99: tap pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:{name}\({pid}\)systemd\(1\)$')
+ self.assertRegex(output, fr'(?m)testtun99: tun pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:{name}\({pid}\)systemd\(1\)$')
output = check_output('ip -d link show testtun99')
print(output)
output = check_output('ip -d tuntap show')
print(output)
- self.assertRegex(output, f'(?m)testtap99: tap pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:$')
- self.assertRegex(output, f'(?m)testtun99: tun pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:$')
+ self.assertRegex(output, r'(?m)testtap99: tap pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:$')
+ self.assertRegex(output, r'(?m)testtun99: tun pi (multi_queue |)vnet_hdr persist filter *(0x100|)\n\tAttached to processes:$')
for i in range(10):
if i != 0:
print(output)
self.assertIn('inet6 2002:da8:1:0:1034:56ff:fe78:9abc/64 scope global dynamic', output)
- @unittest.skip(reason="Causes kernel panic on recent kernels: https://bugzilla.kernel.org/show_bug.cgi?id=208315")
+ @unittest.skipUnless(compare_kernel_version("6"), reason="Causes kernel panic on unpatched kernels: https://bugzilla.kernel.org/show_bug.cgi?id=208315")
def test_macsec(self):
copy_network_unit('25-macsec.netdev', '25-macsec.network', '25-macsec.key',
'26-macsec.network', '12-dummy.netdev')
self.assertIn('inet6 2001:db8:1:f101::1/64 scope global deprecated', output)
self.assertRegex(output, r'inet6 fd[0-9a-f:]*1/64 scope global')
- self.check_netlabel('dummy98', '10\.4\.3\.0/24')
+ self.check_netlabel('dummy98', r'10\.4\.3\.0/24')
# Tests for #20891.
# 1. set preferred lifetime forever to drop the deprecated flag for testing #20891.
self.assertIn('anycast 149.10.123.2 proto static scope link', output)
self.assertIn('broadcast 149.10.123.3 proto static scope link', output)
- print('### ip route show type blackhole')
- output = check_output('ip route show type blackhole')
+ print('### ip -4 route show type blackhole')
+ output = check_output('ip -4 route show type blackhole')
print(output)
self.assertIn('blackhole 202.54.1.2 proto static', output)
- print('### ip route show type unreachable')
- output = check_output('ip route show type unreachable')
+ print('### ip -4 route show type unreachable')
+ output = check_output('ip -4 route show type unreachable')
print(output)
self.assertIn('unreachable 202.54.1.3 proto static', output)
- print('### ip route show type prohibit')
- output = check_output('ip route show type prohibit')
+ print('### ip -4 route show type prohibit')
+ output = check_output('ip -4 route show type prohibit')
print(output)
self.assertIn('prohibit 202.54.1.4 proto static', output)
self.wait_online(['dummy98:routable'])
# check all routes managed by Manager are removed
- print('### ip route show type blackhole')
- output = check_output('ip route show type blackhole')
+ print('### ip -4 route show type blackhole')
+ output = check_output('ip -4 route show type blackhole')
print(output)
self.assertEqual(output, '')
- print('### ip route show type unreachable')
- output = check_output('ip route show type unreachable')
+ print('### ip -4 route show type unreachable')
+ output = check_output('ip -4 route show type unreachable')
print(output)
self.assertEqual(output, '')
- print('### ip route show type prohibit')
- output = check_output('ip route show type prohibit')
+ print('### ip -4 route show type prohibit')
+ output = check_output('ip -4 route show type prohibit')
print(output)
self.assertEqual(output, '')
self.wait_online(['dummy98:routable'])
# check all routes managed by Manager are reconfigured
- print('### ip route show type blackhole')
- output = check_output('ip route show type blackhole')
+ print('### ip -4 route show type blackhole')
+ output = check_output('ip -4 route show type blackhole')
print(output)
self.assertIn('blackhole 202.54.1.2 proto static', output)
- print('### ip route show type unreachable')
- output = check_output('ip route show type unreachable')
+ print('### ip -4 route show type unreachable')
+ output = check_output('ip -4 route show type unreachable')
print(output)
self.assertIn('unreachable 202.54.1.3 proto static', output)
- print('### ip route show type prohibit')
- output = check_output('ip route show type prohibit')
+ print('### ip -4 route show type prohibit')
+ output = check_output('ip -4 route show type prohibit')
print(output)
self.assertIn('prohibit 202.54.1.4 proto static', output)
time.sleep(2)
# check all routes managed by Manager are removed
- print('### ip route show type blackhole')
- output = check_output('ip route show type blackhole')
+ print('### ip -4 route show type blackhole')
+ output = check_output('ip -4 route show type blackhole')
print(output)
self.assertEqual(output, '')
- print('### ip route show type unreachable')
- output = check_output('ip route show type unreachable')
+ print('### ip -4 route show type unreachable')
+ output = check_output('ip -4 route show type unreachable')
print(output)
self.assertEqual(output, '')
- print('### ip route show type prohibit')
- output = check_output('ip route show type prohibit')
+ print('### ip -4 route show type prohibit')
+ output = check_output('ip -4 route show type prohibit')
print(output)
self.assertEqual(output, '')
print(output)
self.assertRegex(output, 'qdisc teql1 31: root')
-class NetworkWaitOnlineTests(unittest.TestCase, Utilities):
-
- def setUp(self):
- setup_common()
-
- def tearDown(self):
- tear_down_common()
-
- @expectedFailureIfModuleIsNotAvailable('sch_netem')
- def test_wait_online_ipv4(self):
- copy_network_unit('25-veth.netdev', '25-dhcp-server-with-ipv6-prefix.network', '25-dhcp-client-ipv4-ipv6ra-prefix-client-with-delay.network')
- start_networkd()
-
- self.wait_online(['veth99:routable'], ipv4=True)
-
- self.wait_address('veth99', r'192.168.5.[0-9]+', ipv='-4', timeout_sec=1)
-
- @expectedFailureIfModuleIsNotAvailable('sch_netem')
- def test_wait_online_ipv6(self):
- copy_network_unit('25-veth.netdev', '25-ipv6-prefix-with-delay.network', '25-ipv6ra-prefix-client-with-static-ipv4-address.network')
- start_networkd()
-
- self.wait_online(['veth99:routable'], ipv6=True)
-
- self.wait_address('veth99', r'2002:da8:1:0:1034:56ff:fe78:9abc', ipv='-6', timeout_sec=1)
-
class NetworkdStateFileTests(unittest.TestCase, Utilities):
def setUp(self):
self.assertIn('MDNS=yes', output)
self.assertIn('DNSSEC=no', output)
+ def test_address_state(self):
+ copy_network_unit('12-dummy.netdev', '12-dummy-no-address.network')
+ start_networkd()
+
+ self.wait_online(['dummy98:degraded'])
+
+ output = read_link_state_file('dummy98')
+ self.assertIn('IPV4_ADDRESS_STATE=off', output)
+ self.assertIn('IPV6_ADDRESS_STATE=degraded', output)
+
+ # with a routable IPv4 address
+ check_output('ip address add 10.1.2.3/16 dev dummy98')
+ self.wait_online(['dummy98:routable'], ipv4=True)
+ self.wait_online(['dummy98:routable'])
+
+ output = read_link_state_file('dummy98')
+ self.assertIn('IPV4_ADDRESS_STATE=routable', output)
+ self.assertIn('IPV6_ADDRESS_STATE=degraded', output)
+
+ check_output('ip address del 10.1.2.3/16 dev dummy98')
+
+ # with a routable IPv6 address
+ check_output('ip address add 2002:da8:1:0:1034:56ff:fe78:9abc/64 dev dummy98')
+ self.wait_online(['dummy98:routable'], ipv6=True)
+ self.wait_online(['dummy98:routable'])
+
+ output = read_link_state_file('dummy98')
+ self.assertIn('IPV4_ADDRESS_STATE=off', output)
+ self.assertIn('IPV6_ADDRESS_STATE=routable', output)
+
class NetworkdBondTests(unittest.TestCase, Utilities):
def setUp(self):
self.assertIn('client provides name: test-hostname', output)
self.assertIn('26:mtu', output)
- self.check_netlabel('veth99', '192\.168\.5\.0/24')
+ self.check_netlabel('veth99', r'192\.168\.5\.0/24')
def test_dhcp_client_ipv4_use_routes_gateway(self):
first = True
def test_valid_specifiers(*, user):
test_content('f {} - - - - two words', 'two words', user=user)
- if id128:
+ if id128 and os.path.isfile('/etc/machine-id'):
try:
test_content('f {} - - - - %m', '{}'.format(id128.get_machine().hex), user=user)
except AssertionError as e:
not_exp_links => ["notthere"],
}],
rules => <<EOF
-TEST=="/etc/machine-id", SYMLINK+="there"
-TEST!="/etc/machine-id", SYMLINK+="notthere"
+TEST=="/etc/passwd", SYMLINK+="there"
+TEST!="/etc/passwd", SYMLINK+="notthere"
EOF
},
{
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
-set -ex
+
+# disable shellcheck warning about '"aaa"' type quotation
+# shellcheck disable=SC2016
+
+set -eux
set -o pipefail
+# shellcheck source=test/units/assert.sh
+. "$(dirname "$0")"/assert.sh
+
mkdir -p /run/udev/rules.d/
+# test for ID_RENAMING= udev property and device unit state
+
cat >/run/udev/rules.d/50-testsuite.rules <<EOF
-ACTION=="remove", GOTO="lo_end"
+ACTION=="remove", GOTO="hoge_end"
+SUBSYSTEM!="net", GOTO="hoge_end"
+KERNEL!="hoge", GOTO="hoge_end"
+
+OPTIONS="log_level=debug"
+
+# emulate renaming
+ACTION=="online", ENV{ID_RENAMING}="1"
+
+LABEL="hoge_end"
+EOF
+
+udevadm control --log-priority=debug --reload --timeout=30
+
+ip link add hoge type dummy
+udevadm wait --timeout=30 --settle /sys/devices/virtual/net/hoge
+assert_not_in "ID_RENAMING=" "$(udevadm info /sys/devices/virtual/net/hoge)"
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/devices/virtual/net/hoge)" != "active" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/subsystem/net/devices/hoge)" != "active" ]]; do sleep .5; done'
-SUBSYSTEM=="net", KERNEL=="lo", OPTIONS="log_level=debug"
-SUBSYSTEM=="net", KERNEL=="lo", TAG+="systemd", ENV{SYSTEMD_ALIAS}+="/sys/subsystem/net/devices/lo"
+udevadm trigger --action=online --settle /sys/devices/virtual/net/hoge
+assert_in "ID_RENAMING=" "$(udevadm info /sys/devices/virtual/net/hoge)"
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/devices/virtual/net/hoge)" != "inactive" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/subsystem/net/devices/hoge)" != "inactive" ]]; do sleep .5; done'
-ACTION!="change", GOTO="lo_end"
+udevadm trigger --action=move --settle /sys/devices/virtual/net/hoge
+assert_not_in "ID_RENAMING=" "$(udevadm info /sys/devices/virtual/net/hoge)"
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/devices/virtual/net/hoge)" != "active" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/subsystem/net/devices/hoge)" != "active" ]]; do sleep .5; done'
-SUBSYSTEM=="net", KERNEL=="lo", ENV{ID_RENAMING}="1"
+# test for renaming interface with NAME= (issue #25106)
-LABEL="lo_end"
+cat >/run/udev/rules.d/50-testsuite.rules <<EOF
+ACTION!="add", GOTO="hoge_end"
+SUBSYSTEM!="net", GOTO="hoge_end"
+
+OPTIONS="log_level=debug"
+
+KERNEL=="hoge", NAME="foobar"
+KERNEL=="foobar", NAME="hoge"
+
+LABEL="hoge_end"
EOF
-udevadm control --log-priority=debug --reload --timeout=600
-udevadm trigger --action=add --settle /sys/devices/virtual/net/lo
-udevadm info /sys/devices/virtual/net/lo
-sleep 1
-STATE=$(systemctl show --property=ActiveState --value sys-devices-virtual-net-lo.device)
-[[ $STATE == "active" ]] || exit 1
-
-udevadm trigger --action=change --settle /sys/devices/virtual/net/lo
-udevadm info /sys/devices/virtual/net/lo
-sleep 1
-STATE=$(systemctl show --property=ActiveState --value sys-devices-virtual-net-lo.device)
-[[ $STATE == "inactive" ]] || exit 1
-
-udevadm trigger --action=move --settle /sys/devices/virtual/net/lo
-udevadm info /sys/devices/virtual/net/lo
-sleep 1
-STATE=$(systemctl show --property=ActiveState --value sys-devices-virtual-net-lo.device)
-[[ $STATE == "active" ]] || exit 1
+udevadm control --log-priority=debug --reload --timeout=30
-rm -f /run/udev/rules.d/50-testsuite.rules
-udevadm control --reload --timeout=600
+# FIXME(?): the 'add' uevent is broadcast as for 'foobar', instead of 'hoge'. Hence, we cannot use --settle here.
+# See issue #25115.
+udevadm trigger --action=add /sys/devices/virtual/net/hoge
+udevadm wait --timeout=30 --settle /sys/devices/virtual/net/foobar
+assert_not_in "ID_RENAMING=" "$(udevadm info /sys/devices/virtual/net/foobar)"
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/devices/virtual/net/hoge)" != "inactive" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/subsystem/net/devices/hoge)" != "inactive" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/devices/virtual/net/foobar)" != "active" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/subsystem/net/devices/foobar)" != "active" ]]; do sleep .5; done'
-# test for issue #16967
+udevadm trigger --action=add /sys/devices/virtual/net/foobar
+udevadm wait --timeout=30 --settle /sys/devices/virtual/net/hoge
+assert_not_in "ID_RENAMING=" "$(udevadm info /sys/devices/virtual/net/hoge)"
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/devices/virtual/net/hoge)" != "active" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/subsystem/net/devices/hoge)" != "active" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/devices/virtual/net/foobar)" != "inactive" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/subsystem/net/devices/foobar)" != "inactive" ]]; do sleep .5; done'
-ip link add hoge type dummy
-udevadm info --wait-for-initialization=10s /sys/devices/virtual/net/hoge
-sleep 1
-if ! systemctl status sys-devices-virtual-net-hoge.device; then exit 1; fi
-if ! systemctl status sys-subsystem-net-devices-hoge.device; then exit 1; fi
+# cleanup
+rm -f /run/udev/rules.d/50-testsuite.rules
+udevadm control --reload --timeout=30
+
+# test for renaming interface with an external tool (issue #16967)
ip link set hoge name foobar
-udevadm info --wait-for-initialization=10s /sys/devices/virtual/net/foobar
-sleep 1
-if systemctl status sys-devices-virtual-net-hoge.device; then exit 1; fi
-if systemctl status sys-subsystem-net-devices-hoge.device; then exit 1; fi
-if ! systemctl status sys-devices-virtual-net-foobar.device; then exit 1; fi
-if ! systemctl status sys-subsystem-net-devices-foobar.device; then exit 1; fi
+udevadm wait --timeout=30 --settle /sys/devices/virtual/net/foobar
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/devices/virtual/net/hoge)" != "inactive" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/subsystem/net/devices/hoge)" != "inactive" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/devices/virtual/net/foobar)" != "active" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/subsystem/net/devices/foobar)" != "active" ]]; do sleep .5; done'
+
+ip link set foobar name hoge
+udevadm wait --timeout=30 --settle /sys/devices/virtual/net/hoge
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/devices/virtual/net/hoge)" != "active" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/subsystem/net/devices/hoge)" != "active" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/devices/virtual/net/foobar)" != "inactive" ]]; do sleep .5; done'
+timeout 30 bash -c 'while [[ "$(systemctl show --property=ActiveState --value /sys/subsystem/net/devices/foobar)" != "inactive" ]]; do sleep .5; done'
+
+# cleanup
+ip link del hoge
exit 0
if [[ -f /etc/timezone ]]; then
assert_eq "$(cat /etc/timezone)" "Europe/Kiev"
fi
- assert_in "Time zone: Europe/Kiev \(EEST, \+0[0-9]00\)" "$(timedatectl)"
+ assert_in "Time zone: Europe/Kiev \(EES*T, \+0[0-9]00\)" "$(timedatectl)"
if [[ -n "$ORIG_TZ" ]]; then
echo 'reset timezone to original'
d /var/cache/private 0700 root root -
{% if ENABLE_EFI %}
-# Copy sd-stub provided PCR signature and and public key file from initrd into /run/, so that it will survive the initrd stage
+# Copy sd-stub provided PCR signature and public key file from initrd into /run/, so that it will survive the initrd stage
C /run/systemd/tpm2-pcr-signature.json 0444 root root - /.extra/tpm2-pcr-signature.json
C /run/systemd/tpm2-pcr-public-key.pem 0444 root root - /.extra/tpm2-pcr-public-key.pem
{% endif %}
# Check that we have either .git/ (a normal clone) or a .git file (a work-tree)
# and that we don't get confused if a tarball is extracted in a higher-level
# git repository.
-[ -e .git ] && git describe --abbrev=7 --dirty=+ 2>/dev/null | sed 's/^v//' || echo "$fallback"
+[ -e .git ] && \
+ git describe --abbrev=7 --dirty=^ 2>/dev/null | sed 's/^v//; s/-rc/~rc/' || \
+ echo "$fallback"
[Service]
Type=oneshot
RemainAfterExit=yes
-ExecStart=-udevadm trigger --type=all --action=add --prioritized-subsystem=module,block,tpmrm,tty,net
+ExecStart=-udevadm trigger --type=all --action=add --prioritized-subsystem=module,block,tpmrm,net,tty,input