1
0
mirror of https://github.com/systemd/systemd synced 2026-04-26 17:04:50 +02:00

Compare commits

..

10 Commits

Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek
e654d4316c
Merge pull request #23277 from keszybz/news-and-hwdb-update
News and hwdb update
2022-05-05 19:02:49 +02:00
Zbigniew Jędrzejewski-Szmek
9aa3d6b41e Revert "shared/install: create relative symlinks for enablement and aliasing"
This reverts commit d6c9411072901556176ac130f2ce71a33107aa93.

I still think this is something that needs to be done, but we're hitting some
unexplained failures, e.g. https://github.com/systemd/systemd/issues/22920.
So let's revert this for now, so -rc2 can be released, with a plan to return
to this after a release.

Closes #22920.
2022-05-05 19:02:26 +02:00
Jakob Lell
14736ab6ff Amend documentation for LimitNPROC= 2022-05-05 18:04:54 +02:00
Daan De Meyer
5517607ad7 journal: Make journal_default_metrics() static
Only caller resides in the same file as were it's defined so no
need to have it be public.
2022-05-05 16:32:24 +02:00
Zbigniew Jędrzejewski-Szmek
7000a8c3bc
Merge pull request #23273 from keszybz/bootctl-quiet
bootctl --quiet and --graceful
2022-05-05 16:30:53 +02:00
Zbigniew Jędrzejewski-Szmek
da2f26b2cb hwdb: run "update-hwdb" 2022-05-05 16:28:46 +02:00
Zbigniew Jędrzejewski-Szmek
211b564a32 NEWS: update with final changes 2022-05-05 16:28:46 +02:00
Andreas Rammhold
66c38cd053 core: handle lookup paths being symlinks
With a recent change paths leaving the statically known lookup paths would be
treated differently then those that remained within those. That was done
(AFAIK) to consistently handle alias names. Unfortunately that means that on
some distributions, especially those where /etc/ consists mostly of symlinks,
would trigger that new detection for every single unit in /etc/systemd/system.
The reason for that is that the units directory itself is already a symlink.

Rebased-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
2022-05-05 14:46:52 +02:00
Zbigniew Jędrzejewski-Szmek
14e6e444dd bootctl: add --quiet
It's useful for installation scripts and suchlike.
Raised in https://bugzilla.redhat.com/show_bug.cgi?id=2079784#c9.
2022-05-05 12:30:06 +02:00
Zbigniew Jędrzejewski-Szmek
18eb56c3c0 bootctl: support --graceful in is-installed 2022-05-05 12:30:06 +02:00
19 changed files with 1174 additions and 312 deletions

63
NEWS
View File

@ -154,6 +154,9 @@ CHANGES WITH 251:
* 'bootctl list' gained support for a new --json= switch to output boot * 'bootctl list' gained support for a new --json= switch to output boot
menu entries in JSON format. menu entries in JSON format.
* 'bootctl is-installed' now supports the --graceful, and various verbs
omit output with the new option --quiet.
Changes in systemd-homed: Changes in systemd-homed:
* Starting with v250 systemd-homed uses UID/GID mapping on the mounts * Starting with v250 systemd-homed uses UID/GID mapping on the mounts
@ -293,13 +296,6 @@ CHANGES WITH 251:
* systemctl's --timestamp= option gained a new choice "unix", to show * systemctl's --timestamp= option gained a new choice "unix", to show
timestamp as unix times, i.e. seconds since 1970, Jan 1st. timestamp as unix times, i.e. seconds since 1970, Jan 1st.
* 'systemctl enable' and similar commands will now create relative
symlinks in .wants/ and .requires/ and for aliases. Most of the time
systemd itself doesn't care, but absolute symlinks were causing wrong
behaviour in case of aliases to linked unit files. The change was
necessary to fix this aspect. Absolute links are interpreted as
before, and it is still possible to create them via other means.
* A new "taint" flag named "old-kernel" is introduced which is set when * A new "taint" flag named "old-kernel" is introduced which is set when
the kernel systemd runs on is older then the current baseline version the kernel systemd runs on is older then the current baseline version
(see above). The flag is shown in "systemctl status" output. (see above). The flag is shown in "systemctl status" output.
@ -525,6 +521,10 @@ CHANGES WITH 251:
a TPM2 device cannot be detected, to ensure that credentials a TPM2 device cannot be detected, to ensure that credentials
"encrypted" like that cannot be used to trick TPM2 systems. "encrypted" like that cannot be used to trick TPM2 systems.
* When deciding whether to colorize output, all systemd programs now
also check $COLORTERM (in addition to $NO_COLOR, $SYSTEMD_COLORS, and
$TERM).
Experimental features: Experimental features:
* sd-boot gained a new *experimental* setting "reboot-for-bitlocker" in * sd-boot gained a new *experimental* setting "reboot-for-bitlocker" in
@ -543,30 +543,35 @@ CHANGES WITH 251:
and other assets. See the new systemd-sysupdate man page for updates. and other assets. See the new systemd-sysupdate man page for updates.
Contributions from: 4piu, Adam Williamson, adrian5, Albert Brox, Contributions from: 4piu, Adam Williamson, adrian5, Albert Brox,
AlexCatze, Alfonso Sánchez-Beato, Alvin Šipraga, Andrea Pappacoda, AlexCatze, Alfonso Sánchez-Beato, Alice S, Alvin Šipraga, amarjargal,
Andy Chi, Anita Zhang, Antonio Alvarez Feijoo, Amarjargal, Andrea Pappacoda, Andy Chi, Anita Zhang,
Arfrever Frehtes Taifersar Arahesis, ash, Bastien Nocera, Be, Antonio Alvarez Feijoo, Arfrever Frehtes Taifersar Arahesis, ash,
bearhoney, Benjamin Berg, Christian Brauner, Clyde Byrd III, Bastien Nocera, Be, bearhoney, Ben Efros, Benjamin Berg, Brett Holman,
Curtis Klein, Daan De Meyer, Danilo Krummrich, David, David Bond, Christian Brauner, Clyde Byrd III, Curtis Klein, Daan De Meyer,
Davide Cavalca, David Tardon, dependabot[bot], Donald Chan, Daniele Medri, Daniel Mack, Danilo Krummrich, David, David Bond,
Davide Cavalca, David Tardon, davijosw, dependabot[bot], Donald Chan,
Dorian Clay, Eduard Tolosa, Erik Sjölund, Evgeny Vereshchagin, Dorian Clay, Eduard Tolosa, Erik Sjölund, Evgeny Vereshchagin,
Federico Ceratto, Franck Bui, Frantisek Sumsal, Gaël PORTAY, Federico Ceratto, Franck Bui, Frantisek Sumsal, Gaël PORTAY,
Georges Basile Stavracas Neto, Goffredo Baroncelli, Grigori Goronzy, Georges Basile Stavracas Neto, Gibeom Gwon, Goffredo Baroncelli,
Hans de Goede, Heiko Becker, Hugo Carvalho, James Hilliard, Grigori Goronzy, Hans de Goede, Heiko Becker, Hugo Carvalho,
Jan Janssen, Jason A. Donenfeld, Joan Bruguera, Joerie de Gram, James Hilliard, Jan Janssen, Jason A. Donenfeld, Joan Bruguera,
Josh Triplett, Julia Kartseva, ksa678491784, Lan Tian, Laura Barcziova, Joerie de Gram, Josh Triplett, Julia Kartseva, ksa678491784, Lance,
Lennart Poettering, Leviticoh, licunlong, Lidong Zhong, lincoln auster, Lan Tian, Laura Barcziova, Lennart Poettering, Leviticoh, licunlong,
Lubomir Rintel, Luca Boccassi, Luca BRUNO, Ludwig Nussel, Lidong Zhong, lincoln auster, Lubomir Rintel, Luca Boccassi,
Marcel Hellwig, march1993, Marco Scardovi, Markus Weippert, Luca BRUNO, Ludwig Nussel, Marcel Hellwig, march1993, Marco Scardovi,
Martin Wilck, Matija Skala, Matthias Lisin, Matt Walton, Max Gautier, Mariusz Tkaczyk, Markus Weippert, Martin Liska, Martin Wilck,
Michael Biebl, Michael Olbrich, Michal Koutný, Mike Gilbert, Matija Skala, Matthew Blythe, Matthias Lisin, Matthijs van Duin,
Morten Linderud, Nishal Kulkarni, Noel Kuntze, Peter Hutterer, Matt Walton, Max Gautier, Michael Biebl, Michael Olbrich,
Peter Morrow, Pigmy-penguin, prumian, Richard Neill, Michal Koutný, Michal Sekletár, Mike Gilbert, MkfsSion,
Rike-Benjamin Schuppner, Romain Naour, Ruben Kerkhof, Ryan Hendrickson, Morten Linderud, Nick Rosbrook, Nishal Kulkarni, Noel Kuntze,
Santa Wiryaman, Seth Falco, Stephen Hemminger, tawefogo, Peter Hutterer, Peter Morrow, Pigmy-penguin, prumian, Richard Neill,
Temuri Doghonadze, Thomas Batten, Thomas Haller, Tobias Stoeckmann, Rike-Benjamin Schuppner, rodin-ia, Romain Naour, Ruben Kerkhof,
Tyson Whitehead, Vishal Chillara Srinivas, Vivien Didelot, Weblate, Ryan Hendrickson, Santa Wiryaman, Sebastian Pucilowski, Seth Falco,
Xiaotian Wu, yangmingtai, YmrDtnJu, Yonathan Randolph, Yu Watanabe, Simon Ellmann, Sonali Srivastava, Stephen Hemminger, tawefogo,
techtino, Temuri Doghonadze, Thomas Batten, Thomas Haller,
Tobias Stoeckmann, Tyson Whitehead, Vishal Chillara Srinivas,
Vivien Didelot, w30023233, wangyuhang, Weblate, Xiaotian Wu,
yangmingtai, YmrDtnJu, Yonathan Randolph, Yu Watanabe,
Zbigniew Jędrzejewski-Szmek, наб Zbigniew Jędrzejewski-Szmek, наб
— Warsaw, 2022-03--- — Warsaw, 2022-03---

View File

@ -39836,6 +39836,9 @@ OUI:044169*
OUI:04421A* OUI:04421A*
ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC.
OUI:0443FD*
ID_OUI_FROM_DATABASE=Sichuan Tianyi Comheart Telecom Co.,LTD
OUI:0444A1* OUI:0444A1*
ID_OUI_FROM_DATABASE=TELECON GALICIA,S.A. ID_OUI_FROM_DATABASE=TELECON GALICIA,S.A.
@ -41318,6 +41321,9 @@ OUI:082522*
OUI:082525* OUI:082525*
ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
OUI:082573*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:082697* OUI:082697*
ID_OUI_FROM_DATABASE=Zyxel Communications Corporation ID_OUI_FROM_DATABASE=Zyxel Communications Corporation
@ -48152,6 +48158,9 @@ OUI:200CC8*
OUI:200DB0* OUI:200DB0*
ID_OUI_FROM_DATABASE=Shenzhen Four Seas Global Link Network Technology Co., Ltd. ID_OUI_FROM_DATABASE=Shenzhen Four Seas Global Link Network Technology Co., Ltd.
OUI:200E2B*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:200E95* OUI:200E95*
ID_OUI_FROM_DATABASE=IEC TC9 WG43 ID_OUI_FROM_DATABASE=IEC TC9 WG43
@ -48959,6 +48968,9 @@ OUI:20E52A*
OUI:20E564* OUI:20E564*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
OUI:20E6DF*
ID_OUI_FROM_DATABASE=eero inc.
OUI:20E791* OUI:20E791*
ID_OUI_FROM_DATABASE=Siemens Healthcare Diagnostics, Inc ID_OUI_FROM_DATABASE=Siemens Healthcare Diagnostics, Inc
@ -50165,6 +50177,9 @@ OUI:2827BF*
OUI:28285D* OUI:28285D*
ID_OUI_FROM_DATABASE=Zyxel Communications Corporation ID_OUI_FROM_DATABASE=Zyxel Communications Corporation
OUI:282947*
ID_OUI_FROM_DATABASE=Chipsea Technologies (Shenzhen) Corp.
OUI:282986* OUI:282986*
ID_OUI_FROM_DATABASE=APC by Schneider Electric ID_OUI_FROM_DATABASE=APC by Schneider Electric
@ -50615,6 +50630,9 @@ OUI:288A1C*
OUI:288CB8* OUI:288CB8*
ID_OUI_FROM_DATABASE=zte corporation ID_OUI_FROM_DATABASE=zte corporation
OUI:288EEC*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:2891D0* OUI:2891D0*
ID_OUI_FROM_DATABASE=Stage Tec Entwicklungsgesellschaft für professionelle Audiotechnik mbH ID_OUI_FROM_DATABASE=Stage Tec Entwicklungsgesellschaft für professionelle Audiotechnik mbH
@ -51929,6 +51947,9 @@ OUI:2C8A72*
OUI:2C8BF2* OUI:2C8BF2*
ID_OUI_FROM_DATABASE=Hitachi Metals America Ltd ID_OUI_FROM_DATABASE=Hitachi Metals America Ltd
OUI:2C8D37*
ID_OUI_FROM_DATABASE=Virtium
OUI:2C8DB1* OUI:2C8DB1*
ID_OUI_FROM_DATABASE=Intel Corporate ID_OUI_FROM_DATABASE=Intel Corporate
@ -52652,6 +52673,21 @@ OUI:303ABA*
OUI:303D08* OUI:303D08*
ID_OUI_FROM_DATABASE=GLINTT TES S.A. ID_OUI_FROM_DATABASE=GLINTT TES S.A.
OUI:303D511*
ID_OUI_FROM_DATABASE=SHENZHEN WLINK TECHNOLOGY CO., LTD.
OUI:303D512*
ID_OUI_FROM_DATABASE=Harman Connected Services Corporation India Pvt. Ltd.
OUI:303D515*
ID_OUI_FROM_DATABASE=Media Hub Digital Smart Home Pty Ltd.
OUI:303D518*
ID_OUI_FROM_DATABASE=The Heil Co dba AWTI 3rd Eye Cam
OUI:303D51A*
ID_OUI_FROM_DATABASE=TeraNXT Global India Pvt Ltd.
OUI:303EA7* OUI:303EA7*
ID_OUI_FROM_DATABASE=Intel Corporate ID_OUI_FROM_DATABASE=Intel Corporate
@ -55133,6 +55169,9 @@ OUI:387A3C*
OUI:387B47* OUI:387B47*
ID_OUI_FROM_DATABASE=AKELA, Inc. ID_OUI_FROM_DATABASE=AKELA, Inc.
OUI:387C76*
ID_OUI_FROM_DATABASE=Universal Global Scientific Industrial Co., Ltd.
OUI:3880DF* OUI:3880DF*
ID_OUI_FROM_DATABASE=Motorola Mobility LLC, a Lenovo Company ID_OUI_FROM_DATABASE=Motorola Mobility LLC, a Lenovo Company
@ -56078,6 +56117,9 @@ OUI:3C38F4*
OUI:3C39C3* OUI:3C39C3*
ID_OUI_FROM_DATABASE=JW Electronics Co., Ltd. ID_OUI_FROM_DATABASE=JW Electronics Co., Ltd.
OUI:3C39C8*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:3C39E70* OUI:3C39E70*
ID_OUI_FROM_DATABASE=Hannstar Display Corp ID_OUI_FROM_DATABASE=Hannstar Display Corp
@ -57227,6 +57269,9 @@ OUI:4044FD*
OUI:4045DA* OUI:4045DA*
ID_OUI_FROM_DATABASE=Spreadtrum Communications (Shanghai) Co., Ltd. ID_OUI_FROM_DATABASE=Spreadtrum Communications (Shanghai) Co., Ltd.
OUI:40475E*
ID_OUI_FROM_DATABASE=eero inc.
OUI:40476A* OUI:40476A*
ID_OUI_FROM_DATABASE=Astro Gaming ID_OUI_FROM_DATABASE=Astro Gaming
@ -57617,6 +57662,9 @@ OUI:40A36BD*
OUI:40A3CC* OUI:40A3CC*
ID_OUI_FROM_DATABASE=Intel Corporate ID_OUI_FROM_DATABASE=Intel Corporate
OUI:40A53B*
ID_OUI_FROM_DATABASE=Nokia
OUI:40A5EF* OUI:40A5EF*
ID_OUI_FROM_DATABASE=Shenzhen Four Seas Global Link Network Technology Co., Ltd. ID_OUI_FROM_DATABASE=Shenzhen Four Seas Global Link Network Technology Co., Ltd.
@ -58040,6 +58088,9 @@ OUI:40FA7F*
OUI:40FC89* OUI:40FC89*
ID_OUI_FROM_DATABASE=ARRIS Group, Inc. ID_OUI_FROM_DATABASE=ARRIS Group, Inc.
OUI:40FDF3*
ID_OUI_FROM_DATABASE=AMPAK Technology,Inc.
OUI:40FE0D* OUI:40FE0D*
ID_OUI_FROM_DATABASE=MAXIO ID_OUI_FROM_DATABASE=MAXIO
@ -60734,6 +60785,9 @@ OUI:4CA003*
OUI:4CA161* OUI:4CA161*
ID_OUI_FROM_DATABASE=Rain Bird Corporation ID_OUI_FROM_DATABASE=Rain Bird Corporation
OUI:4CA3A7*
ID_OUI_FROM_DATABASE=TECNO MOBILE LIMITED
OUI:4CA515* OUI:4CA515*
ID_OUI_FROM_DATABASE=Baikal Electronics JSC ID_OUI_FROM_DATABASE=Baikal Electronics JSC
@ -63665,6 +63719,9 @@ OUI:586356*
OUI:58639A* OUI:58639A*
ID_OUI_FROM_DATABASE=TPL SYSTEMES ID_OUI_FROM_DATABASE=TPL SYSTEMES
OUI:5864C4*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:5865E6* OUI:5865E6*
ID_OUI_FROM_DATABASE=infomark ID_OUI_FROM_DATABASE=infomark
@ -63890,6 +63947,9 @@ OUI:589835*
OUI:58986F* OUI:58986F*
ID_OUI_FROM_DATABASE=Revolution Display ID_OUI_FROM_DATABASE=Revolution Display
OUI:589A3E*
ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
OUI:589B0B* OUI:589B0B*
ID_OUI_FROM_DATABASE=Shineway Technologies, Inc. ID_OUI_FROM_DATABASE=Shineway Technologies, Inc.
@ -64472,6 +64532,9 @@ OUI:5C3B35*
OUI:5C3C27* OUI:5C3C27*
ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd
OUI:5C3E1B*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:5C4058* OUI:5C4058*
ID_OUI_FROM_DATABASE=Jefferson Audio Video Systems, Inc. ID_OUI_FROM_DATABASE=Jefferson Audio Video Systems, Inc.
@ -64532,6 +64595,9 @@ OUI:5C521E*
OUI:5C5230* OUI:5C5230*
ID_OUI_FROM_DATABASE=Apple, Inc. ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:5C5284*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:5C53C3* OUI:5C53C3*
ID_OUI_FROM_DATABASE=Ubee Interactive Co., Limited ID_OUI_FROM_DATABASE=Ubee Interactive Co., Limited
@ -67811,6 +67877,9 @@ OUI:6882F2*
OUI:68831A* OUI:68831A*
ID_OUI_FROM_DATABASE=Pandora Mobility Corporation ID_OUI_FROM_DATABASE=Pandora Mobility Corporation
OUI:6883CB*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:688470* OUI:688470*
ID_OUI_FROM_DATABASE=eSSys Co.,Ltd ID_OUI_FROM_DATABASE=eSSys Co.,Ltd
@ -70178,6 +70247,9 @@ OUI:70B14E*
OUI:70B265* OUI:70B265*
ID_OUI_FROM_DATABASE=Hiltron s.r.l. ID_OUI_FROM_DATABASE=Hiltron s.r.l.
OUI:70B306*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:70B317* OUI:70B317*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc ID_OUI_FROM_DATABASE=Cisco Systems, Inc
@ -79704,7 +79776,7 @@ OUI:70B3D5C74*
ID_OUI_FROM_DATABASE=Qtechnology A/S ID_OUI_FROM_DATABASE=Qtechnology A/S
OUI:70B3D5C75* OUI:70B3D5C75*
ID_OUI_FROM_DATABASE=BIT Group USA, Inc. ID_OUI_FROM_DATABASE=PLANET INNOVATION (PI)
OUI:70B3D5C76* OUI:70B3D5C76*
ID_OUI_FROM_DATABASE=ELA INNOVATION ID_OUI_FROM_DATABASE=ELA INNOVATION
@ -79983,7 +80055,7 @@ OUI:70B3D5CD1*
ID_OUI_FROM_DATABASE=Cannex Technology Inc. ID_OUI_FROM_DATABASE=Cannex Technology Inc.
OUI:70B3D5CD2* OUI:70B3D5CD2*
ID_OUI_FROM_DATABASE=HBH Microwave GmbH ID_OUI_FROM_DATABASE=TRUMPF Huttinger GmbH + Co. KG,
OUI:70B3D5CD3* OUI:70B3D5CD3*
ID_OUI_FROM_DATABASE=Controlrad ID_OUI_FROM_DATABASE=Controlrad
@ -83273,6 +83345,9 @@ OUI:747E1A*
OUI:747E2D* OUI:747E2D*
ID_OUI_FROM_DATABASE=Beijing Thomson CITIC Digital Technology Co. LTD. ID_OUI_FROM_DATABASE=Beijing Thomson CITIC Digital Technology Co. LTD.
OUI:74803F*
ID_OUI_FROM_DATABASE=Renesas Electronics (Penang) Sdn. Bhd.
OUI:748114* OUI:748114*
ID_OUI_FROM_DATABASE=Apple, Inc. ID_OUI_FROM_DATABASE=Apple, Inc.
@ -85364,6 +85439,9 @@ OUI:7C27BC*
OUI:7C2A31* OUI:7C2A31*
ID_OUI_FROM_DATABASE=Intel Corporate ID_OUI_FROM_DATABASE=Intel Corporate
OUI:7C2ACA*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:7C2ADB* OUI:7C2ADB*
ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd ID_OUI_FROM_DATABASE=Xiaomi Communications Co Ltd
@ -88610,6 +88688,9 @@ OUI:881DFC*
OUI:881FA1* OUI:881FA1*
ID_OUI_FROM_DATABASE=Apple, Inc. ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:88200D*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:882012* OUI:882012*
ID_OUI_FROM_DATABASE=LMI Technologies ID_OUI_FROM_DATABASE=LMI Technologies
@ -89981,6 +90062,9 @@ OUI:8C1F6419B*
OUI:8C1F6419C* OUI:8C1F6419C*
ID_OUI_FROM_DATABASE=Aton srl ID_OUI_FROM_DATABASE=Aton srl
OUI:8C1F641A5*
ID_OUI_FROM_DATABASE=DIALTRONICS SYSTEMS PVT LTD
OUI:8C1F641AF* OUI:8C1F641AF*
ID_OUI_FROM_DATABASE=EnviroNode IoT Solutions ID_OUI_FROM_DATABASE=EnviroNode IoT Solutions
@ -90014,6 +90098,9 @@ OUI:8C1F641E3*
OUI:8C1F641EF* OUI:8C1F641EF*
ID_OUI_FROM_DATABASE=Tantronic AG ID_OUI_FROM_DATABASE=Tantronic AG
OUI:8C1F641F0*
ID_OUI_FROM_DATABASE=AVCOMM Technologies Inc
OUI:8C1F64204* OUI:8C1F64204*
ID_OUI_FROM_DATABASE=castcore ID_OUI_FROM_DATABASE=castcore
@ -90050,6 +90137,9 @@ OUI:8C1F6425E*
OUI:8C1F64264* OUI:8C1F64264*
ID_OUI_FROM_DATABASE=BR. Voss Ingenjörsfirma AB ID_OUI_FROM_DATABASE=BR. Voss Ingenjörsfirma AB
OUI:8C1F64268*
ID_OUI_FROM_DATABASE=Astro Machine Corporation
OUI:8C1F64270* OUI:8C1F64270*
ID_OUI_FROM_DATABASE=Xian Hangguang Satellite and Control Technology Co.,Ltd ID_OUI_FROM_DATABASE=Xian Hangguang Satellite and Control Technology Co.,Ltd
@ -90272,6 +90362,9 @@ OUI:8C1F64498*
OUI:8C1F644AC* OUI:8C1F644AC*
ID_OUI_FROM_DATABASE=Vekto ID_OUI_FROM_DATABASE=Vekto
OUI:8C1F644AE*
ID_OUI_FROM_DATABASE=KCS Co., Ltd.
OUI:8C1F644B0* OUI:8C1F644B0*
ID_OUI_FROM_DATABASE=U -MEI-DAH INT'L ENTERPRISE CO.,LTD. ID_OUI_FROM_DATABASE=U -MEI-DAH INT'L ENTERPRISE CO.,LTD.
@ -90584,6 +90677,9 @@ OUI:8C1F6472C*
OUI:8C1F64737* OUI:8C1F64737*
ID_OUI_FROM_DATABASE=Vytahy-Vymyslicky s.r.o. ID_OUI_FROM_DATABASE=Vytahy-Vymyslicky s.r.o.
OUI:8C1F6473B*
ID_OUI_FROM_DATABASE=Fink Zeitsysteme GmbH
OUI:8C1F6473C* OUI:8C1F6473C*
ID_OUI_FROM_DATABASE=REO AG ID_OUI_FROM_DATABASE=REO AG
@ -90905,6 +91001,9 @@ OUI:8C1F649F0*
OUI:8C1F649F2* OUI:8C1F649F2*
ID_OUI_FROM_DATABASE=MB connect line GmbH Fernwartungssysteme ID_OUI_FROM_DATABASE=MB connect line GmbH Fernwartungssysteme
OUI:8C1F649F4*
ID_OUI_FROM_DATABASE=Grossenbacher Systeme AG
OUI:8C1F649FA* OUI:8C1F649FA*
ID_OUI_FROM_DATABASE=METRONA-Union GmbH ID_OUI_FROM_DATABASE=METRONA-Union GmbH
@ -90914,6 +91013,9 @@ OUI:8C1F649FD*
OUI:8C1F649FE* OUI:8C1F649FE*
ID_OUI_FROM_DATABASE=Metroval Controle de Fluidos Ltda ID_OUI_FROM_DATABASE=Metroval Controle de Fluidos Ltda
OUI:8C1F649FF*
ID_OUI_FROM_DATABASE=Satelles Inc
OUI:8C1F64A01* OUI:8C1F64A01*
ID_OUI_FROM_DATABASE=Guan Show Technologe Co., Ltd. ID_OUI_FROM_DATABASE=Guan Show Technologe Co., Ltd.
@ -91130,6 +91232,9 @@ OUI:8C1F64C03*
OUI:8C1F64C0C* OUI:8C1F64C0C*
ID_OUI_FROM_DATABASE=GIORDANO CONTROLS SPA ID_OUI_FROM_DATABASE=GIORDANO CONTROLS SPA
OUI:8C1F64C0E*
ID_OUI_FROM_DATABASE=Goodtech AS dep Fredrikstad
OUI:8C1F64C1F* OUI:8C1F64C1F*
ID_OUI_FROM_DATABASE=Esys Srl ID_OUI_FROM_DATABASE=Esys Srl
@ -91200,7 +91305,7 @@ OUI:8C1F64CBE*
ID_OUI_FROM_DATABASE=Circa Enterprises Inc ID_OUI_FROM_DATABASE=Circa Enterprises Inc
OUI:8C1F64CC6* OUI:8C1F64CC6*
ID_OUI_FROM_DATABASE=Genius vision digital private limted ID_OUI_FROM_DATABASE=Genius Vision Digital Private Limited
OUI:8C1F64CCB* OUI:8C1F64CCB*
ID_OUI_FROM_DATABASE=suzhou yuecrown Electronic Technology Co.,LTD ID_OUI_FROM_DATABASE=suzhou yuecrown Electronic Technology Co.,LTD
@ -91238,6 +91343,9 @@ OUI:8C1F64CF1*
OUI:8C1F64CF3* OUI:8C1F64CF3*
ID_OUI_FROM_DATABASE=ABB S.p.A. ID_OUI_FROM_DATABASE=ABB S.p.A.
OUI:8C1F64CF4*
ID_OUI_FROM_DATABASE=NT
OUI:8C1F64D02* OUI:8C1F64D02*
ID_OUI_FROM_DATABASE=Flextronics International Kft ID_OUI_FROM_DATABASE=Flextronics International Kft
@ -91304,6 +91412,9 @@ OUI:8C1F64DAE*
OUI:8C1F64DB5* OUI:8C1F64DB5*
ID_OUI_FROM_DATABASE=victtron ID_OUI_FROM_DATABASE=victtron
OUI:8C1F64DB7*
ID_OUI_FROM_DATABASE=Lambda Systems Inc.
OUI:8C1F64DB9* OUI:8C1F64DB9*
ID_OUI_FROM_DATABASE=Ermes Elettronica s.r.l. ID_OUI_FROM_DATABASE=Ermes Elettronica s.r.l.
@ -91322,6 +91433,9 @@ OUI:8C1F64DCA*
OUI:8C1F64DD5* OUI:8C1F64DD5*
ID_OUI_FROM_DATABASE=Cardinal Scales Manufacturing Co ID_OUI_FROM_DATABASE=Cardinal Scales Manufacturing Co
OUI:8C1F64DD7*
ID_OUI_FROM_DATABASE=KST technology
OUI:8C1F64DE1* OUI:8C1F64DE1*
ID_OUI_FROM_DATABASE=Franke Aquarotter GmbH ID_OUI_FROM_DATABASE=Franke Aquarotter GmbH
@ -91529,6 +91643,9 @@ OUI:8C1F64FB0*
OUI:8C1F64FB1* OUI:8C1F64FB1*
ID_OUI_FROM_DATABASE=ABB ID_OUI_FROM_DATABASE=ABB
OUI:8C1F64FB5*
ID_OUI_FROM_DATABASE=Bavaria Digital Technik GmbH
OUI:8C1F64FB7* OUI:8C1F64FB7*
ID_OUI_FROM_DATABASE=Grace Design/Lunatec LLC ID_OUI_FROM_DATABASE=Grace Design/Lunatec LLC
@ -92600,6 +92717,9 @@ OUI:900A39*
OUI:900A3A* OUI:900A3A*
ID_OUI_FROM_DATABASE=PSG Plastic Service GmbH ID_OUI_FROM_DATABASE=PSG Plastic Service GmbH
OUI:900A62*
ID_OUI_FROM_DATABASE=Inventus Power Eletronica do Brasil LTDA
OUI:900A84* OUI:900A84*
ID_OUI_FROM_DATABASE=Mellanox Technologies, Inc. ID_OUI_FROM_DATABASE=Mellanox Technologies, Inc.
@ -94013,6 +94133,9 @@ OUI:946A77*
OUI:946AB0* OUI:946AB0*
ID_OUI_FROM_DATABASE=Arcadyan Corporation ID_OUI_FROM_DATABASE=Arcadyan Corporation
OUI:946DAE*
ID_OUI_FROM_DATABASE=Mellanox Technologies, Inc.
OUI:9470D2* OUI:9470D2*
ID_OUI_FROM_DATABASE=WINFIRM TECHNOLOGY ID_OUI_FROM_DATABASE=WINFIRM TECHNOLOGY
@ -95984,6 +96107,9 @@ OUI:9C04EB*
OUI:9C0567* OUI:9C0567*
ID_OUI_FROM_DATABASE=Honor Device Co., Ltd. ID_OUI_FROM_DATABASE=Honor Device Co., Ltd.
OUI:9C0591*
ID_OUI_FROM_DATABASE=Mellanox Technologies, Inc.
OUI:9C061B* OUI:9C061B*
ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited ID_OUI_FROM_DATABASE=Hangzhou H3C Technologies Co., Limited
@ -96557,6 +96683,9 @@ OUI:9C8EDC*
OUI:9C9019* OUI:9C9019*
ID_OUI_FROM_DATABASE=Beyless ID_OUI_FROM_DATABASE=Beyless
OUI:9C924F*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:9C934E* OUI:9C934E*
ID_OUI_FROM_DATABASE=Xerox Corporation ID_OUI_FROM_DATABASE=Xerox Corporation
@ -97679,6 +97808,9 @@ OUI:A08C15*
OUI:A08C9B* OUI:A08C9B*
ID_OUI_FROM_DATABASE=Xtreme Technologies Corp ID_OUI_FROM_DATABASE=Xtreme Technologies Corp
OUI:A08CF2*
ID_OUI_FROM_DATABASE=YINUOLINK CO.,LTD
OUI:A08CF8* OUI:A08CF8*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
@ -98900,6 +99032,9 @@ OUI:A48873*
OUI:A4895B* OUI:A4895B*
ID_OUI_FROM_DATABASE=ARK INFOSOLUTIONS PVT LTD ID_OUI_FROM_DATABASE=ARK INFOSOLUTIONS PVT LTD
OUI:A4897E*
ID_OUI_FROM_DATABASE=Guangzhou Yuhong Technology Co.,Ltd.
OUI:A48CC0* OUI:A48CC0*
ID_OUI_FROM_DATABASE=JLG Industries, Inc. ID_OUI_FROM_DATABASE=JLG Industries, Inc.
@ -100079,6 +100214,9 @@ OUI:A8A668*
OUI:A8A795* OUI:A8A795*
ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd.
OUI:A8ABB5*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:A8AD3D* OUI:A8AD3D*
ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd
@ -100331,6 +100469,9 @@ OUI:AA0003*
OUI:AA0004* OUI:AA0004*
ID_OUI_FROM_DATABASE=DIGITAL EQUIPMENT CORPORATION ID_OUI_FROM_DATABASE=DIGITAL EQUIPMENT CORPORATION
OUI:AC007A*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:AC00D0* OUI:AC00D0*
ID_OUI_FROM_DATABASE=zte corporation ID_OUI_FROM_DATABASE=zte corporation
@ -101117,6 +101258,9 @@ OUI:ACBB61*
OUI:ACBC32* OUI:ACBC32*
ID_OUI_FROM_DATABASE=Apple, Inc. ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:ACBCB5*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:ACBCD9* OUI:ACBCD9*
ID_OUI_FROM_DATABASE=Cisco Systems, Inc ID_OUI_FROM_DATABASE=Cisco Systems, Inc
@ -101453,6 +101597,9 @@ OUI:B01C91*
OUI:B01F29* OUI:B01F29*
ID_OUI_FROM_DATABASE=Helvetia INC. ID_OUI_FROM_DATABASE=Helvetia INC.
OUI:B01F47*
ID_OUI_FROM_DATABASE=Heights Telecom T ltd
OUI:B01F810* OUI:B01F810*
ID_OUI_FROM_DATABASE=Dalian GigaTec Electronics Co.,Ltd ID_OUI_FROM_DATABASE=Dalian GigaTec Electronics Co.,Ltd
@ -101735,6 +101882,9 @@ OUI:B065F1*
OUI:B0672F* OUI:B0672F*
ID_OUI_FROM_DATABASE=Bowers & Wilkins ID_OUI_FROM_DATABASE=Bowers & Wilkins
OUI:B067B5*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:B068B6* OUI:B068B6*
ID_OUI_FROM_DATABASE=Hangzhou OYE Technology Co. Ltd ID_OUI_FROM_DATABASE=Hangzhou OYE Technology Co. Ltd
@ -103643,6 +103793,9 @@ OUI:B847C6*
OUI:B848AA* OUI:B848AA*
ID_OUI_FROM_DATABASE=EM Microelectronic ID_OUI_FROM_DATABASE=EM Microelectronic
OUI:B8496D*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:B84D43* OUI:B84D43*
ID_OUI_FROM_DATABASE=HUNAN FN-LINK TECHNOLOGY LIMITED ID_OUI_FROM_DATABASE=HUNAN FN-LINK TECHNOLOGY LIMITED
@ -104411,6 +104564,9 @@ OUI:BC1485*
OUI:BC14EF* OUI:BC14EF*
ID_OUI_FROM_DATABASE=ITON Technology Limited ID_OUI_FROM_DATABASE=ITON Technology Limited
OUI:BC1541*
ID_OUI_FROM_DATABASE=Nokia
OUI:BC15A6* OUI:BC15A6*
ID_OUI_FROM_DATABASE=Taiwan Jantek Electronics,Ltd. ID_OUI_FROM_DATABASE=Taiwan Jantek Electronics,Ltd.
@ -105893,6 +106049,9 @@ OUI:C09435*
OUI:C094AD* OUI:C094AD*
ID_OUI_FROM_DATABASE=zte corporation ID_OUI_FROM_DATABASE=zte corporation
OUI:C0956D*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:C095DA* OUI:C095DA*
ID_OUI_FROM_DATABASE=NXP India Private Limited ID_OUI_FROM_DATABASE=NXP India Private Limited
@ -106814,6 +106973,9 @@ OUI:C464B7*
OUI:C464E3* OUI:C464E3*
ID_OUI_FROM_DATABASE=Texas Instruments ID_OUI_FROM_DATABASE=Texas Instruments
OUI:C464F2*
ID_OUI_FROM_DATABASE=Infinix mobility limited
OUI:C46516* OUI:C46516*
ID_OUI_FROM_DATABASE=Hewlett Packard ID_OUI_FROM_DATABASE=Hewlett Packard
@ -107603,6 +107765,9 @@ OUI:C81CFE*
OUI:C81E8E* OUI:C81E8E*
ID_OUI_FROM_DATABASE=ADV Security (S) Pte Ltd ID_OUI_FROM_DATABASE=ADV Security (S) Pte Ltd
OUI:C81EC2*
ID_OUI_FROM_DATABASE=ITEL MOBILE LIMITED
OUI:C81EE7* OUI:C81EE7*
ID_OUI_FROM_DATABASE=Apple, Inc. ID_OUI_FROM_DATABASE=Apple, Inc.
@ -114809,12 +114974,18 @@ OUI:E0EDC7*
OUI:E0EE1B* OUI:E0EE1B*
ID_OUI_FROM_DATABASE=Panasonic Automotive Systems Company of America ID_OUI_FROM_DATABASE=Panasonic Automotive Systems Company of America
OUI:E0EF02*
ID_OUI_FROM_DATABASE=Chengdu Quanjing Intelligent Technology Co.,Ltd
OUI:E0EF25* OUI:E0EF25*
ID_OUI_FROM_DATABASE=Lintes Technology Co., Ltd. ID_OUI_FROM_DATABASE=Lintes Technology Co., Ltd.
OUI:E0F211* OUI:E0F211*
ID_OUI_FROM_DATABASE=Digitalwatt ID_OUI_FROM_DATABASE=Digitalwatt
OUI:E0F318*
ID_OUI_FROM_DATABASE=Sichuan Tianyi Comheart Telecom Co.,LTD
OUI:E0F379* OUI:E0F379*
ID_OUI_FROM_DATABASE=Vaddio ID_OUI_FROM_DATABASE=Vaddio
@ -115502,6 +115673,9 @@ OUI:E4A471*
OUI:E4A5EF* OUI:E4A5EF*
ID_OUI_FROM_DATABASE=TRON LINK ELECTRONICS CO., LTD. ID_OUI_FROM_DATABASE=TRON LINK ELECTRONICS CO., LTD.
OUI:E4A634*
ID_OUI_FROM_DATABASE=Universal Electronics, Inc.
OUI:E4A749* OUI:E4A749*
ID_OUI_FROM_DATABASE=Palo Alto Networks ID_OUI_FROM_DATABASE=Palo Alto Networks
@ -116003,6 +116177,9 @@ OUI:E8361D*
OUI:E8377A* OUI:E8377A*
ID_OUI_FROM_DATABASE=Zyxel Communications Corporation ID_OUI_FROM_DATABASE=Zyxel Communications Corporation
OUI:E838A0*
ID_OUI_FROM_DATABASE=Vizio, Inc
OUI:E83935* OUI:E83935*
ID_OUI_FROM_DATABASE=Hewlett Packard ID_OUI_FROM_DATABASE=Hewlett Packard
@ -116625,7 +116802,7 @@ OUI:E8CC32*
ID_OUI_FROM_DATABASE=Micronet LTD ID_OUI_FROM_DATABASE=Micronet LTD
OUI:E8CC8C* OUI:E8CC8C*
ID_OUI_FROM_DATABASE=Chengdu Jia Rui Hua Lian Communication Technology Co.,Ltd. ID_OUI_FROM_DATABASE=Chengdu Jiarui Hualian Communication Technology Co
OUI:E8CD2D* OUI:E8CD2D*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
@ -117419,6 +117596,9 @@ OUI:EC9F0DD*
OUI:EC9F0DE* OUI:EC9F0DE*
ID_OUI_FROM_DATABASE=MAX Technologies ID_OUI_FROM_DATABASE=MAX Technologies
OUI:ECA138*
ID_OUI_FROM_DATABASE=Amazon Technologies Inc.
OUI:ECA1D1* OUI:ECA1D1*
ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD
@ -117515,6 +117695,9 @@ OUI:ECC01B*
OUI:ECC06A* OUI:ECC06A*
ID_OUI_FROM_DATABASE=PowerChord Group Limited ID_OUI_FROM_DATABASE=PowerChord Group Limited
OUI:ECC07A*
ID_OUI_FROM_DATABASE=Laird Connectivity
OUI:ECC1AB* OUI:ECC1AB*
ID_OUI_FROM_DATABASE=Guangzhou Shiyuan Electronic Technology Company Limited ID_OUI_FROM_DATABASE=Guangzhou Shiyuan Electronic Technology Company Limited
@ -117776,6 +117959,9 @@ OUI:F01E34*
OUI:F01FAF* OUI:F01FAF*
ID_OUI_FROM_DATABASE=Dell Inc. ID_OUI_FROM_DATABASE=Dell Inc.
OUI:F01FC7*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:F0219D* OUI:F0219D*
ID_OUI_FROM_DATABASE=Cal-Comp Electronics & Communications Company Ltd. ID_OUI_FROM_DATABASE=Cal-Comp Electronics & Communications Company Ltd.
@ -118610,6 +118796,9 @@ OUI:F0D657*
OUI:F0D767* OUI:F0D767*
ID_OUI_FROM_DATABASE=Axema Passagekontroll AB ID_OUI_FROM_DATABASE=Axema Passagekontroll AB
OUI:F0D793*
ID_OUI_FROM_DATABASE=Apple, Inc.
OUI:F0D7AA* OUI:F0D7AA*
ID_OUI_FROM_DATABASE=Motorola Mobility LLC, a Lenovo Company ID_OUI_FROM_DATABASE=Motorola Mobility LLC, a Lenovo Company
@ -119465,6 +119654,9 @@ OUI:F4911E*
OUI:F492BF* OUI:F492BF*
ID_OUI_FROM_DATABASE=Ubiquiti Networks Inc. ID_OUI_FROM_DATABASE=Ubiquiti Networks Inc.
OUI:F4931C*
ID_OUI_FROM_DATABASE=Universal Electronics, Inc.
OUI:F4939F* OUI:F4939F*
ID_OUI_FROM_DATABASE=Hon Hai Precision Industry Co., Ltd. ID_OUI_FROM_DATABASE=Hon Hai Precision Industry Co., Ltd.
@ -121463,9 +121655,18 @@ OUI:FC61799*
OUI:FC6179A* OUI:FC6179A*
ID_OUI_FROM_DATABASE=Shenzhen Dptek Technology Co., Ltd. ID_OUI_FROM_DATABASE=Shenzhen Dptek Technology Co., Ltd.
OUI:FC6179B*
ID_OUI_FROM_DATABASE=Fulian Precision Electronics(Tianjin) Co., Ltd
OUI:FC6179C*
ID_OUI_FROM_DATABASE=Shenzhen Xmitech Electronic Co.,Ltd
OUI:FC6179D* OUI:FC6179D*
ID_OUI_FROM_DATABASE=Int'Act Pty Ltd ID_OUI_FROM_DATABASE=Int'Act Pty Ltd
OUI:FC6179E*
ID_OUI_FROM_DATABASE=ACCO Brands USA LLC
OUI:FC6198* OUI:FC6198*
ID_OUI_FROM_DATABASE=NEC Personal Products, Ltd ID_OUI_FROM_DATABASE=NEC Personal Products, Ltd

View File

@ -1,5 +1,5 @@
--- 20-acpi-vendor.hwdb.base 2022-04-28 17:39:22.374730080 +0200 --- 20-acpi-vendor.hwdb.base 2022-05-05 16:21:43.499198786 +0200
+++ 20-acpi-vendor.hwdb 2022-04-28 17:39:22.381730080 +0200 +++ 20-acpi-vendor.hwdb 2022-05-05 16:21:43.513198949 +0200
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
# Data imported from: # Data imported from:
# https://uefi.org/uefi-pnp-export # https://uefi.org/uefi-pnp-export

View File

@ -2127,7 +2127,13 @@ pci:v00001000d000000A5sv00001028sd00002141*
ID_MODEL_FROM_DATABASE=Fusion-MPT 24GSAS/PCIe SAS40xx (PERC H360 MX) ID_MODEL_FROM_DATABASE=Fusion-MPT 24GSAS/PCIe SAS40xx (PERC H360 MX)
pci:v00001000d000000A5sv00001028sd00002142* pci:v00001000d000000A5sv00001028sd00002142*
ID_MODEL_FROM_DATABASE=Fusion-MPT 24GSAS/PCIe SAS40xx (HBA 465e Adapter) ID_MODEL_FROM_DATABASE=Fusion-MPT 24GSAS/PCIe SAS40xx (HBA465e Adapter)
pci:v00001000d000000A5sv00001028sd00002209*
ID_MODEL_FROM_DATABASE=Fusion-MPT 24GSAS/PCIe SAS40xx (HBA465i Adapter)
pci:v00001000d000000A5sv00001028sd0000220A*
ID_MODEL_FROM_DATABASE=Fusion-MPT 24GSAS/PCIe SAS40xx (HBA465i Front)
pci:v00001000d000000AB* pci:v00001000d000000AB*
ID_MODEL_FROM_DATABASE=SAS3516 Fusion-MPT Tri-Mode RAID On Chip (ROC) ID_MODEL_FROM_DATABASE=SAS3516 Fusion-MPT Tri-Mode RAID On Chip (ROC)
@ -11072,6 +11078,9 @@ pci:v00001002d000073BFsv00001002sd00000E3A*
pci:v00001002d000073BFsv0000148Csd00002408* pci:v00001002d000073BFsv0000148Csd00002408*
ID_MODEL_FROM_DATABASE=Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] (Red Devil AMD Radeon RX 6900 XT) ID_MODEL_FROM_DATABASE=Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] (Red Devil AMD Radeon RX 6900 XT)
pci:v00001002d000073BFsv00001DA2sd0000440F*
ID_MODEL_FROM_DATABASE=Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] (TOXIC RX 6900 XT)
pci:v00001002d000073BFsv00001EAEsd00006701* pci:v00001002d000073BFsv00001EAEsd00006701*
ID_MODEL_FROM_DATABASE=Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] (XFX Speedster MERC 319 AMD Radeon RX 6800 XT Black) ID_MODEL_FROM_DATABASE=Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] (XFX Speedster MERC 319 AMD Radeon RX 6800 XT Black)
@ -11114,6 +11123,12 @@ pci:v00001002d0000740C*
pci:v00001002d0000740F* pci:v00001002d0000740F*
ID_MODEL_FROM_DATABASE=Aldebaran ID_MODEL_FROM_DATABASE=Aldebaran
pci:v00001002d00007421*
ID_MODEL_FROM_DATABASE=Navi 24 [Radeon PRO W6500M]
pci:v00001002d00007422*
ID_MODEL_FROM_DATABASE=Navi 24 [Radeon PRO W6400]
pci:v00001002d0000743F* pci:v00001002d0000743F*
ID_MODEL_FROM_DATABASE=Navi 24 [Radeon RX 6400 / 6500 XT] ID_MODEL_FROM_DATABASE=Navi 24 [Radeon RX 6400 / 6500 XT]
@ -37052,6 +37067,9 @@ pci:v000010DEd00002505*
pci:v000010DEd00002507* pci:v000010DEd00002507*
ID_MODEL_FROM_DATABASE=GA106 [Geforce RTX 3050] ID_MODEL_FROM_DATABASE=GA106 [Geforce RTX 3050]
pci:v000010DEd00002508*
ID_MODEL_FROM_DATABASE=GA106 [GeForce RTX 3050 OEM]
pci:v000010DEd00002520* pci:v000010DEd00002520*
ID_MODEL_FROM_DATABASE=GA106M [GeForce RTX 3060 Mobile / Max-Q] ID_MODEL_FROM_DATABASE=GA106M [GeForce RTX 3060 Mobile / Max-Q]
@ -37121,6 +37139,9 @@ pci:v000010DEd000025B9*
pci:v000010DEd000025BA* pci:v000010DEd000025BA*
ID_MODEL_FROM_DATABASE=GA107GLM [RTX A2000 8GB Laptop GPU] ID_MODEL_FROM_DATABASE=GA107GLM [RTX A2000 8GB Laptop GPU]
pci:v000010DEd000025BB*
ID_MODEL_FROM_DATABASE=GA107GLM [RTX A500 Laptop GPU]
pci:v000010DEd000025E0* pci:v000010DEd000025E0*
ID_MODEL_FROM_DATABASE=GA107BM [GeForce RTX 3050 Ti Mobile] ID_MODEL_FROM_DATABASE=GA107BM [GeForce RTX 3050 Ti Mobile]
@ -56754,7 +56775,7 @@ pci:v000014C3*
ID_VENDOR_FROM_DATABASE=MEDIATEK Corp. ID_VENDOR_FROM_DATABASE=MEDIATEK Corp.
pci:v000014C3d00000608* pci:v000014C3d00000608*
ID_MODEL_FROM_DATABASE=RZ608 Wi-Fi 6E 80MHz ID_MODEL_FROM_DATABASE=MT7921K (RZ608) Wi-Fi 6E 80MHz
pci:v000014C3d00000616* pci:v000014C3d00000616*
ID_MODEL_FROM_DATABASE=MT7922 802.11ax PCI Express Wireless Network Adapter ID_MODEL_FROM_DATABASE=MT7922 802.11ax PCI Express Wireless Network Adapter
@ -61523,6 +61544,12 @@ pci:v000015B3d00000258*
pci:v000015B3d00000259* pci:v000015B3d00000259*
ID_MODEL_FROM_DATABASE=Abir Chiplet ID_MODEL_FROM_DATABASE=Abir Chiplet
pci:v000015B3d0000025B*
ID_MODEL_FROM_DATABASE=Quantum-3 in Flash Recovery Mode
pci:v000015B3d0000025C*
ID_MODEL_FROM_DATABASE=Quantum-3 RMA
pci:v000015B3d00000262* pci:v000015B3d00000262*
ID_MODEL_FROM_DATABASE=MT27710 [ConnectX-4 Lx Programmable] EN ID_MODEL_FROM_DATABASE=MT27710 [ConnectX-4 Lx Programmable] EN
@ -62108,6 +62135,9 @@ pci:v000015B3d0000D2F0*
pci:v000015B3d0000D2F2* pci:v000015B3d0000D2F2*
ID_MODEL_FROM_DATABASE=Quantum-2 NDR (400Gbps) switch ID_MODEL_FROM_DATABASE=Quantum-2 NDR (400Gbps) switch
pci:v000015B3d0000D2F4*
ID_MODEL_FROM_DATABASE=Quantum-3
pci:v000015B4* pci:v000015B4*
ID_VENDOR_FROM_DATABASE=CCI/TRIAD ID_VENDOR_FROM_DATABASE=CCI/TRIAD
@ -65375,6 +65405,18 @@ pci:v000017D3d00001884*
pci:v000017D3d0000188A* pci:v000017D3d0000188A*
ID_MODEL_FROM_DATABASE=ARC-1886 series PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller ID_MODEL_FROM_DATABASE=ARC-1886 series PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller
pci:v000017D3d0000188Asv000017D3sd00001217*
ID_MODEL_FROM_DATABASE=ARC-1886 series PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller (ARC-1217 4-Port PCIe 4.0 to SAS/SATA 12/6Gb RAID Controller)
pci:v000017D3d0000188Asv000017D3sd00001227*
ID_MODEL_FROM_DATABASE=ARC-1886 series PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller (ARC-1227 8-Port PCIe 4.0 to SAS/SATA 12/6Gb RAID Controller)
pci:v000017D3d0000188Asv000017D3sd00001686*
ID_MODEL_FROM_DATABASE=ARC-1886 series PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller (ARC-1686 PCIe 4.0 to SAS/SATA 12/6Gb Tape drive Controller)
pci:v000017D3d0000188Asv000017D3sd00001886*
ID_MODEL_FROM_DATABASE=ARC-1886 series PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller (ARC-1886 PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller)
pci:v000017D5* pci:v000017D5*
ID_VENDOR_FROM_DATABASE=Exar Corp. ID_VENDOR_FROM_DATABASE=Exar Corp.
@ -70268,6 +70310,9 @@ pci:v00001C5Cd00002839sv00001C5Csd00000100*
pci:v00001C5Cd00002849* pci:v00001C5Cd00002849*
ID_MODEL_FROM_DATABASE=PE81x0 U.2/3 NVMe Solid State Drive ID_MODEL_FROM_DATABASE=PE81x0 U.2/3 NVMe Solid State Drive
pci:v00001C5Cd00002849sv00001C5Csd00000101*
ID_MODEL_FROM_DATABASE=PE81x0 U.2/3 NVMe Solid State Drive
pci:v00001C5F* pci:v00001C5F*
ID_VENDOR_FROM_DATABASE=Beijing Memblaze Technology Co. Ltd. ID_VENDOR_FROM_DATABASE=Beijing Memblaze Technology Co. Ltd.
@ -72525,13 +72570,61 @@ pci:v00001EECd00001EEC*
ID_MODEL_FROM_DATABASE=VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe ID_MODEL_FROM_DATABASE=VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe
pci:v00001EED* pci:v00001EED*
ID_VENDOR_FROM_DATABASE=Xiangdixian Computing Technology (Chongqing) Ltd. ID_VENDOR_FROM_DATABASE=XDX Computing Technology Ltd.
pci:v00001EEDd00000100* pci:v00001EEDd00001100*
ID_MODEL_FROM_DATABASE=XDX P100 VGA controller ID_MODEL_FROM_DATABASE=XDX110 Graphic/VGA Controller
pci:v00001EEDd00000101* pci:v00001EEDd00001101*
ID_MODEL_FROM_DATABASE=XDX P101 High Definition Audio Controller ID_MODEL_FROM_DATABASE=XDX110 Audio Controller
pci:v00001EEDd00001200*
ID_MODEL_FROM_DATABASE=XDX120 Graphic/VGA Controller
pci:v00001EEDd00001201*
ID_MODEL_FROM_DATABASE=XDX120 Audio Controller
pci:v00001EEDd00001300*
ID_MODEL_FROM_DATABASE=XDX130 Graphic/VGA Controller
pci:v00001EEDd00001301*
ID_MODEL_FROM_DATABASE=XDX130 Audio Controller
pci:v00001EEDd00001400*
ID_MODEL_FROM_DATABASE=XDX140 Graphic/VGA Controller
pci:v00001EEDd00001401*
ID_MODEL_FROM_DATABASE=XDX140 Audio Controller
pci:v00001EEDd00001500*
ID_MODEL_FROM_DATABASE=XDX150 Graphic/VGA Controller
pci:v00001EEDd00001501*
ID_MODEL_FROM_DATABASE=XDX150 Audio Controller
pci:v00001EEDd00001600*
ID_MODEL_FROM_DATABASE=XDX160 Graphic/VGA Controller
pci:v00001EEDd00001601*
ID_MODEL_FROM_DATABASE=XDX160 Audio Controller
pci:v00001EEDd00001700*
ID_MODEL_FROM_DATABASE=XDX170 Graphic/VGA Controller
pci:v00001EEDd00001701*
ID_MODEL_FROM_DATABASE=XDX170 Audio Controller
pci:v00001EEDd00001800*
ID_MODEL_FROM_DATABASE=XDX180 Graphic/VGA Controller
pci:v00001EEDd00001801*
ID_MODEL_FROM_DATABASE=XDX180 Audio Controller
pci:v00001EEDd00001900*
ID_MODEL_FROM_DATABASE=XDX190 Graphic/VGA Controller
pci:v00001EEDd00001901*
ID_MODEL_FROM_DATABASE=XDX190 Audio Controller
pci:v00001EFB* pci:v00001EFB*
ID_VENDOR_FROM_DATABASE=Flexxon Pte Ltd ID_VENDOR_FROM_DATABASE=Flexxon Pte Ltd
@ -74156,6 +74249,12 @@ pci:v00005168d00000300*
pci:v00005168d00000301* pci:v00005168d00000301*
ID_MODEL_FROM_DATABASE=FlyDVB-T ID_MODEL_FROM_DATABASE=FlyDVB-T
pci:v000051D8*
ID_VENDOR_FROM_DATABASE=Alder Lake-P Serial IO I2C Controller #2
pci:v000051D9*
ID_VENDOR_FROM_DATABASE=Alder Lake-P Serial IO I2C Controller #3
pci:v00005301* pci:v00005301*
ID_VENDOR_FROM_DATABASE=Alliance Semiconductor Corp. ID_VENDOR_FROM_DATABASE=Alliance Semiconductor Corp.
@ -74804,6 +74903,12 @@ pci:v00006766d00003D00*
pci:v00006766d00003D02* pci:v00006766d00003D02*
ID_MODEL_FROM_DATABASE=Arise 1020 ID_MODEL_FROM_DATABASE=Arise 1020
pci:v00006766d00003D03*
ID_MODEL_FROM_DATABASE=Arise-GT-1040
pci:v00006766d00003D04*
ID_MODEL_FROM_DATABASE=Arise1010
pci:v00006766d00003D40* pci:v00006766d00003D40*
ID_MODEL_FROM_DATABASE=Arise-GT-10C0 High Definition Audio Controller ID_MODEL_FROM_DATABASE=Arise-GT-10C0 High Definition Audio Controller
@ -80048,6 +80153,9 @@ pci:v00008086d0000124F*
pci:v00008086d00001250* pci:v00008086d00001250*
ID_MODEL_FROM_DATABASE=430HX - 82439HX TXC [Triton II] ID_MODEL_FROM_DATABASE=430HX - 82439HX TXC [Triton II]
pci:v00008086d0000125B*
ID_MODEL_FROM_DATABASE=Ethernet Controller I226-LM
pci:v00008086d00001360* pci:v00008086d00001360*
ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub PCI Bridge ID_MODEL_FROM_DATABASE=82806AA PCI64 Hub PCI Bridge
@ -80682,61 +80790,61 @@ pci:v00008086d00001560*
ID_MODEL_FROM_DATABASE=Ethernet Controller X540 ID_MODEL_FROM_DATABASE=Ethernet Controller X540
pci:v00008086d00001563* pci:v00008086d00001563*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T ID_MODEL_FROM_DATABASE=Ethernet Controller X550
pci:v00008086d00001563sv00001028sd00001FA8* pci:v00008086d00001563sv00001028sd00001FA8*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (Ethernet 10G 4P X550/I350 rNDC) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (Ethernet 10G 4P X550/I350 rNDC)
pci:v00008086d00001563sv00001028sd00001FA9* pci:v00008086d00001563sv00001028sd00001FA9*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (Ethernet 10G 4P X550 rNDC) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (Ethernet 10G 4P X550 rNDC)
pci:v00008086d00001563sv00001137sd000002B2* pci:v00008086d00001563sv00001137sd000002B2*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (X550-TX 10 Gig LOM) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (X550-TX 10 Gig LOM)
pci:v00008086d00001563sv00001137sd000002B3* pci:v00008086d00001563sv00001137sd000002B3*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (X550-TX 10 Gig LOM) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (X550-TX 10 Gig LOM)
pci:v00008086d00001563sv00001170sd00000001* pci:v00008086d00001563sv00001170sd00000001*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (Intel Ethernet Controller X550-T2 OCP card) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (Intel Ethernet Controller X550-T2 OCP card)
pci:v00008086d00001563sv000014C0sd00001201* pci:v00008086d00001563sv000014C0sd00001201*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (X550 10Gb 2P RJ45 OCP Mezz) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (X550 10Gb 2P RJ45 OCP Mezz)
pci:v00008086d00001563sv00001590sd000000D1* pci:v00008086d00001563sv00001590sd000000D1*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (Ethernet 10Gb 2-port 562T Adapter) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (Ethernet 10Gb 2-port 562T Adapter)
pci:v00008086d00001563sv00001590sd000000D2* pci:v00008086d00001563sv00001590sd000000D2*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (Ethernet 10Gb 2-port 562FLR-T Adapter) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (Ethernet 10Gb 2-port 562FLR-T Adapter)
pci:v00008086d00001563sv000016B8sd00007217* pci:v00008086d00001563sv000016B8sd00007217*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (Twin10G Thunderbolt 3 Edition) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (Twin10G Thunderbolt 3 Edition)
pci:v00008086d00001563sv000018D4sd00000C08* pci:v00008086d00001563sv000018D4sd00000C08*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (X550 10Gb 2-port RJ45 OCP Mezz Card MOP81-I-10GT2) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (X550 10Gb 2-port RJ45 OCP Mezz Card MOP81-I-10GT2)
pci:v00008086d00001563sv0000193Dsd00001008* pci:v00008086d00001563sv0000193Dsd00001008*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (560T-B) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (560T-B)
pci:v00008086d00001563sv0000193Dsd00001009* pci:v00008086d00001563sv0000193Dsd00001009*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (560T-L) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (560T-L)
pci:v00008086d00001563sv0000193Dsd00001011* pci:v00008086d00001563sv0000193Dsd00001011*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (UN-NIC-ETH563T-sL-2P) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (UN-NIC-ETH563T-sL-2P)
pci:v00008086d00001563sv00008086sd00000001* pci:v00008086d00001563sv00008086sd00000001*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (Ethernet Converged Network Adapter X550-T2) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (Ethernet Converged Network Adapter X550-T2)
pci:v00008086d00001563sv00008086sd0000001A* pci:v00008086d00001563sv00008086sd0000001A*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (Ethernet Converged Network Adapter X550-T2) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (Ethernet Converged Network Adapter X550-T2)
pci:v00008086d00001563sv00008086sd0000001B* pci:v00008086d00001563sv00008086sd0000001B*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (Ethernet Server Adapter X550-T2 for OCP) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (Ethernet Server Adapter X550-T2 for OCP)
pci:v00008086d00001563sv00008086sd0000001D* pci:v00008086d00001563sv00008086sd0000001D*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (Ethernet 10G 2P X550-t Adapter) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (Ethernet 10G 2P X550-t Adapter)
pci:v00008086d00001563sv00008086sd00000022* pci:v00008086d00001563sv00008086sd00000022*
ID_MODEL_FROM_DATABASE=Ethernet Controller 10G X550T (Ethernet Converged Network Adapter X550-T2) ID_MODEL_FROM_DATABASE=Ethernet Controller X550 (Ethernet Converged Network Adapter X550-T2)
pci:v00008086d00001564* pci:v00008086d00001564*
ID_MODEL_FROM_DATABASE=X550 Virtual Function ID_MODEL_FROM_DATABASE=X550 Virtual Function
@ -81266,6 +81374,9 @@ pci:v00008086d00001592sv00008086sd00000010*
pci:v00008086d00001592sv00008086sd00000011* pci:v00008086d00001592sv00008086sd00000011*
ID_MODEL_FROM_DATABASE=Ethernet Controller E810-C for QSFP (Ethernet Network Adapter E810-C-Q1 for OCP3.0) ID_MODEL_FROM_DATABASE=Ethernet Controller E810-C for QSFP (Ethernet Network Adapter E810-C-Q1 for OCP3.0)
pci:v00008086d00001592sv00008086sd00000012*
ID_MODEL_FROM_DATABASE=Ethernet Controller E810-C for QSFP (Ethernet 100G 2P E810-C-st Adapter)
pci:v00008086d00001593* pci:v00008086d00001593*
ID_MODEL_FROM_DATABASE=Ethernet Controller E810-C for SFP ID_MODEL_FROM_DATABASE=Ethernet Controller E810-C for SFP
@ -81836,6 +81947,21 @@ pci:v00008086d0000163E*
pci:v00008086d00001889* pci:v00008086d00001889*
ID_MODEL_FROM_DATABASE=Ethernet Adaptive Virtual Function ID_MODEL_FROM_DATABASE=Ethernet Adaptive Virtual Function
pci:v00008086d0000188A*
ID_MODEL_FROM_DATABASE=Ethernet Connection E823-C for backplane
pci:v00008086d0000188B*
ID_MODEL_FROM_DATABASE=Ethernet Connection E823-C for QSFP
pci:v00008086d0000188C*
ID_MODEL_FROM_DATABASE=Ethernet Connection E823-C for SFP
pci:v00008086d0000188D*
ID_MODEL_FROM_DATABASE=Ethernet Connection E823-C/X557-AT 10GBASE-T
pci:v00008086d0000188E*
ID_MODEL_FROM_DATABASE=Ethernet Connection E823-C 1GbE
pci:v00008086d00001890* pci:v00008086d00001890*
ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C for backplane ID_MODEL_FROM_DATABASE=Ethernet Connection E822-C for backplane
@ -95171,6 +95297,12 @@ pci:v00008086d000051C8*
pci:v00008086d000051D3* pci:v00008086d000051D3*
ID_MODEL_FROM_DATABASE=Alder Lake-P SATA AHCI Controller ID_MODEL_FROM_DATABASE=Alder Lake-P SATA AHCI Controller
pci:v00008086d000051D8*
ID_MODEL_FROM_DATABASE=Alder Lake-P Serial IO I2C Controller #2
pci:v00008086d000051D9*
ID_MODEL_FROM_DATABASE=Alder Lake-P Serial IO I2C Controller #3
pci:v00008086d000051E0* pci:v00008086d000051E0*
ID_MODEL_FROM_DATABASE=Alder Lake PCH HECI Controller ID_MODEL_FROM_DATABASE=Alder Lake PCH HECI Controller
@ -95222,9 +95354,6 @@ pci:v00008086d0000530D*
pci:v00008086d00005502* pci:v00008086d00005502*
ID_MODEL_FROM_DATABASE=Ethernet Controller (2) I225-LMvP ID_MODEL_FROM_DATABASE=Ethernet Controller (2) I225-LMvP
pci:v00008086d00005504*
ID_MODEL_FROM_DATABASE=Ethernet Controller I226-K
pci:v00008086d00005845* pci:v00008086d00005845*
ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller ID_MODEL_FROM_DATABASE=QEMU NVM Express Controller

View File

@ -66939,7 +66939,7 @@ usb:v2A19p5442*
ID_MODEL_FROM_DATABASE=TimVideos' HDMI2USB Opsis (FX2) - HDMI/DVI Capture Device ID_MODEL_FROM_DATABASE=TimVideos' HDMI2USB Opsis (FX2) - HDMI/DVI Capture Device
usb:v2A1D* usb:v2A1D*
ID_VENDOR_FROM_DATABASE=Oxford Nanopore Technologies, Ltd ID_VENDOR_FROM_DATABASE=Oxford Nanopore Technologies plc
usb:v2A1Dp0000* usb:v2A1Dp0000*
ID_MODEL_FROM_DATABASE=MinION ID_MODEL_FROM_DATABASE=MinION
@ -66959,6 +66959,12 @@ usb:v2A1Dp0020*
usb:v2A1Dp0021* usb:v2A1Dp0021*
ID_MODEL_FROM_DATABASE=GridION ID_MODEL_FROM_DATABASE=GridION
usb:v2A1Dp0120*
ID_MODEL_FROM_DATABASE=GridION Mk1 Bay
usb:v2A1Dp0121*
ID_MODEL_FROM_DATABASE=GridION Mk1 Bay
usb:v2A37* usb:v2A37*
ID_VENDOR_FROM_DATABASE=RTD Embedded Technologies, Inc. ID_VENDOR_FROM_DATABASE=RTD Embedded Technologies, Inc.

View File

@ -38327,12 +38327,6 @@ C8BF4C (base 16) Beijing Xiaomi Mobile Software Co., Ltd
Beijing Beijing 100085 Beijing Beijing 100085
CN CN
E8-CC-8C (hex) Chengdu Jia Rui Hua Lian Communication Technology Co.,Ltd.
E8CC8C (base 16) Chengdu Jia Rui Hua Lian Communication Technology Co.,Ltd.
5th Floor, Building F, Huirong Plaza (Jinhua), No. 88, Section 3, Jinhua Road, Industrial Park, Jinjiang District, Chengdu, Sichuan Province
Chengdu Sichuan 610000
CN
58-1C-F8 (hex) Intel Corporate 58-1C-F8 (hex) Intel Corporate
581CF8 (base 16) Intel Corporate 581CF8 (base 16) Intel Corporate
Lot 8, Jalan Hi-Tech 2/3 Lot 8, Jalan Hi-Tech 2/3
@ -38387,11 +38381,17 @@ CC29BD (base 16) zte corporation
Hangzhou Zhejiang 310052 Hangzhou Zhejiang 310052
CN CN
5C-60-BA (hex) HP Inc. E0-EF-02 (hex) Chengdu Quanjing Intelligent Technology Co.,Ltd
5C60BA (base 16) HP Inc. E0EF02 (base 16) Chengdu Quanjing Intelligent Technology Co.,Ltd
10300 Energy Dr Building A2, Chi Yuen Technology Park, 1001 College Avenue, Nanshan District, Shenzhen,P.R.C.
Spring TX 77389 Shenzhen Guangdong 518000
US CN
4C-A3-A7 (hex) TECNO MOBILE LIMITED
4CA3A7 (base 16) TECNO MOBILE LIMITED
ROOMS 05-15, 13A/F., SOUTH TOWER, WORLD FINANCE CENTRE, HARBOUR CITY, 17 CANTON ROAD, TSIM SHA TSUI, KOWLOON, HONG KONG
Hong Kong Hong Kong 999077
HK
20-9C-B4 (hex) Aruba, a Hewlett Packard Enterprise Company 20-9C-B4 (hex) Aruba, a Hewlett Packard Enterprise Company
209CB4 (base 16) Aruba, a Hewlett Packard Enterprise Company 209CB4 (base 16) Aruba, a Hewlett Packard Enterprise Company
@ -38399,6 +38399,90 @@ CC29BD (base 16) zte corporation
Santa Clara CA 95054 Santa Clara CA 95054
US US
E8-CC-8C (hex) Chengdu Jiarui Hualian Communication Technology Co
E8CC8C (base 16) Chengdu Jiarui Hualian Communication Technology Co
5th Floor, Building F, Huirong Plaza (Jinhua), No. 88, Section 3, Jinhua Road, Industrial Park, Jinjiang District, Chengdu, Sichuan Province
Chengdu Sichuan 610000
CN
A8-AB-B5 (hex) Apple, Inc.
A8ABB5 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
58-64-C4 (hex) Apple, Inc.
5864C4 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
40-A5-3B (hex) Nokia
40A53B (base 16) Nokia
600 March Road
Kanata Ontario K2K 2E6
CA
B0-67-B5 (hex) Apple, Inc.
B067B5 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
5C-52-84 (hex) Apple, Inc.
5C5284 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
C0-95-6D (hex) Apple, Inc.
C0956D (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
3C-39-C8 (hex) Apple, Inc.
3C39C8 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
04-43-FD (hex) Sichuan Tianyi Comheart Telecom Co.,LTD
0443FD (base 16) Sichuan Tianyi Comheart Telecom Co.,LTD
No.198,First Section,Snow Mountain Avenue, Jinyuan Town, Dayi County
Chengdu Sichuan 611330
CN
74-80-3F (hex) Renesas Electronics (Penang) Sdn. Bhd.
74803F (base 16) Renesas Electronics (Penang) Sdn. Bhd.
Phase 3, Bayan Lepas FIZ
Bayan Lepas Penang 11900
MY
EC-A1-38 (hex) Amazon Technologies Inc.
ECA138 (base 16) Amazon Technologies Inc.
P.O Box 8102
Reno NV 89507
US
5C-60-BA (hex) HP Inc.
5C60BA (base 16) HP Inc.
10300 Energy Dr
Spring TX 77389
US
A4-89-7E (hex) Guangzhou Yuhong Technology Co.,Ltd.
A4897E (base 16) Guangzhou Yuhong Technology Co.,Ltd.
Room 402, No. 11 Software Road, Tianhe District, Guangzhou
Guangzhou Guangdong 510640
CN
90-0A-62 (hex) Inventus Power Eletronica do Brasil LTDA
900A62 (base 16) Inventus Power Eletronica do Brasil LTDA
Av Buriti, 4285 Distrito Industrial
Manaus Amazonas 69075000
BR
9C-FF-C2 (hex) AVI Systems GmbH 9C-FF-C2 (hex) AVI Systems GmbH
9CFFC2 (base 16) AVI Systems GmbH 9CFFC2 (base 16) AVI Systems GmbH
Dr. Franz Wilhelmstraße 2A Dr. Franz Wilhelmstraße 2A
@ -76376,6 +76460,42 @@ A036BC (base 16) ASUSTek COMPUTER INC.
Hsinchu 300 Hsinchu 300
TW TW
70-B3-06 (hex) Apple, Inc.
70B306 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
B8-49-6D (hex) Apple, Inc.
B8496D (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
9C-92-4F (hex) Apple, Inc.
9C924F (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
20-0E-2B (hex) Apple, Inc.
200E2B (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
F0-D7-93 (hex) Apple, Inc.
F0D793 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
30-3D-51 (hex) IEEE Registration Authority
303D51 (base 16) IEEE Registration Authority
445 Hoes Lane
Piscataway NJ 08554
US
84-80-94 (hex) Meter, Inc. 84-80-94 (hex) Meter, Inc.
848094 (base 16) Meter, Inc. 848094 (base 16) Meter, Inc.
148 Townsend St 148 Townsend St
@ -114587,12 +114707,6 @@ F0C1CE (base 16) GoodWe Technologies CO., Ltd
Dallas TX 75243 Dallas TX 75243
US US
38-E7-C0 (hex) Hui Zhou Gaoshengda Technology Co.,LTD
38E7C0 (base 16) Hui Zhou Gaoshengda Technology Co.,LTD
No.2,Jin-da Road,Huinan Industrial Park
Hui Zhou Guangdong 516025
CN
D8-E8-44 (hex) zte corporation D8-E8-44 (hex) zte corporation
D8E844 (base 16) zte corporation D8E844 (base 16) zte corporation
12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China 12/F.,zte R&D building ,kejinan Road,Shenzhen,P.R.China
@ -114611,12 +114725,54 @@ E46A35 (base 16) Realme Chongqing Mobile Telecommunications Corp.,Ltd.
Shenzhen Guangdong 518040 Shenzhen Guangdong 518040
CN CN
58-9A-3E (hex) Amazon Technologies Inc.
589A3E (base 16) Amazon Technologies Inc.
P.O Box 8102
Reno NV 89507
US
E8-38-A0 (hex) Vizio, Inc
E838A0 (base 16) Vizio, Inc
39 Tesla
Irvine CA 92618
US
C8-1E-C2 (hex) ITEL MOBILE LIMITED
C81EC2 (base 16) ITEL MOBILE LIMITED
RM B3 & B4 BLOCK B, KO FAI INDUSTRIAL BUILDING NO.7 KO FAI ROAD, YAU TONG, KLN, H.K
Hong Kong KOWLOON 999077
HK
38-E7-C0 (hex) Hui Zhou Gaoshengda Technology Co.,LTD
38E7C0 (base 16) Hui Zhou Gaoshengda Technology Co.,LTD
No.2,Jin-da Road,Huinan Industrial Park
Hui Zhou Guangdong 516025
CN
68-B9-C2 (hex) Earda Technologies co Ltd 68-B9-C2 (hex) Earda Technologies co Ltd
68B9C2 (base 16) Earda Technologies co Ltd 68B9C2 (base 16) Earda Technologies co Ltd
Block A,Lianfeng Creative Park, #2 Jisheng Rd., Nansha District Block A,Lianfeng Creative Park, #2 Jisheng Rd., Nansha District
Guangzhou Guangdong 511455 Guangzhou Guangdong 511455
CN CN
68-83-CB (hex) Apple, Inc.
6883CB (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
EC-C0-7A (hex) Laird Connectivity
ECC07A (base 16) Laird Connectivity
3F.-1, No.145, Xianzheng 9th Rd.,
Zhubei 30251
TW
9C-05-91 (hex) Mellanox Technologies, Inc.
9C0591 (base 16) Mellanox Technologies, Inc.
350 Oakmead Parkway, Suite 100
Sunnyvale CA 94085
US
F8-D0-27 (hex) Seiko Epson Corporation F8-D0-27 (hex) Seiko Epson Corporation
F8D027 (base 16) Seiko Epson Corporation F8D027 (base 16) Seiko Epson Corporation
2070 Kotobuki Koaka 2070 Kotobuki Koaka
@ -152948,6 +153104,48 @@ EC74D7 (base 16) Grandstream Networks Inc
shenzhen guangdong 518057 shenzhen guangdong 518057
CN CN
A0-8C-F2 (hex) YINUOLINK CO.,LTD
A08CF2 (base 16) YINUOLINK CO.,LTD
3F, Bldg 5, Gaoxinjian Industrial Park, Fuyuan 1st Road, Heping, Fuhai, Bao'an
Shenzhen Guangdong 518103
CN
40-47-5E (hex) eero inc.
40475E (base 16) eero inc.
660 3rd Street
San Francisco CA 94107
US
20-E6-DF (hex) eero inc.
20E6DF (base 16) eero inc.
660 3rd Street
San Francisco CA 94107
US
F4-93-1C (hex) Universal Electronics, Inc.
F4931C (base 16) Universal Electronics, Inc.
201 E. Sandpointe Ave
Santa Ana CA 92707
US
5C-3E-1B (hex) Apple, Inc.
5C3E1B (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
7C-2A-CA (hex) Apple, Inc.
7C2ACA (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
28-8E-EC (hex) Apple, Inc.
288EEC (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
7C-8A-E1 (hex) COMPAL INFORMATION (KUNSHAN) CO., LTD. 7C-8A-E1 (hex) COMPAL INFORMATION (KUNSHAN) CO., LTD.
7C8AE1 (base 16) COMPAL INFORMATION (KUNSHAN) CO., LTD. 7C8AE1 (base 16) COMPAL INFORMATION (KUNSHAN) CO., LTD.
NO. 25, THE 3RD Street KUNSHAN EXPORT PROCESSING ZONE NO. 25, THE 3RD Street KUNSHAN EXPORT PROCESSING ZONE
@ -191027,8 +191225,98 @@ DC0539 (base 16) Cisco Systems, Inc
East Greenwich RI 02818 East Greenwich RI 02818
US US
B0-1F-47 (hex) Heights Telecom T ltd
B01F47 (base 16) Heights Telecom T ltd
Moshe Lerer 15
Nes Ziona 7404996
IL
28-29-47 (hex) Chipsea Technologies (Shenzhen) Corp.
282947 (base 16) Chipsea Technologies (Shenzhen) Corp.
3 / F, Block A, Building 2, Shenzhen Bay Innovation Technology Center, No.3156 keyuan South Road, Yuehai Street, Nanshan District, Shenzhen
Shenzhen Guangdong 518000
CN
AC-BC-B5 (hex) Apple, Inc.
ACBCB5 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
08-25-73 (hex) Apple, Inc.
082573 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
AC-00-7A (hex) Apple, Inc.
AC007A (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
F0-1F-C7 (hex) Apple, Inc.
F01FC7 (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
B8-8F-27 (hex) Realme Chongqing Mobile Telecommunications Corp.,Ltd. B8-8F-27 (hex) Realme Chongqing Mobile Telecommunications Corp.,Ltd.
B88F27 (base 16) Realme Chongqing Mobile Telecommunications Corp.,Ltd. B88F27 (base 16) Realme Chongqing Mobile Telecommunications Corp.,Ltd.
No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing. No.178 Yulong Avenue, Yufengshan, Yubei District, Chongqing.
Chongqing China 401120 Chongqing China 401120
CN CN
88-20-0D (hex) Apple, Inc.
88200D (base 16) Apple, Inc.
1 Infinite Loop
Cupertino CA 95014
US
BC-15-41 (hex) Nokia
BC1541 (base 16) Nokia
600 March Road
Kanata Ontario K2K 2E6
CA
E0-F3-18 (hex) Sichuan Tianyi Comheart Telecom Co.,LTD
E0F318 (base 16) Sichuan Tianyi Comheart Telecom Co.,LTD
No.198,First Section,Snow Mountain Avenue, Jinyuan Town, Dayi County
Chengdu Sichuan 611330
CN
C4-64-F2 (hex) Infinix mobility limited
C464F2 (base 16) Infinix mobility limited
RMS 05-15, 13A/F SOUTH TOWER WORLD FINANCE CTR HARBOUR CITY 17 CANTON RD TST KLN HONG KONG
HongKong HongKong 999077
HK
94-6D-AE (hex) Mellanox Technologies, Inc.
946DAE (base 16) Mellanox Technologies, Inc.
350 Oakmead Parkway, Suite 100
Sunnyvale CA 94085
US
40-FD-F3 (hex) AMPAK Technology,Inc.
40FDF3 (base 16) AMPAK Technology,Inc.
3F, No.15-1 Zhonghua Road, Hsinchu Industrail Park, Hukou,
Hsinchu Hsinchu,Taiwan R.O.C. 30352
TW
E4-A6-34 (hex) Universal Electronics, Inc.
E4A634 (base 16) Universal Electronics, Inc.
201 E. Sandpointe Ave
Santa Ana CA 92707
US
2C-8D-37 (hex) Virtium
2C8D37 (base 16) Virtium
30052 Tomas
Racho Santa MArgarita CA 92688
US
38-7C-76 (hex) Universal Global Scientific Industrial Co., Ltd.
387C76 (base 16) Universal Global Scientific Industrial Co., Ltd.
141, Lane 351, Taiping Road, Sec.1,Tsao Tuen
Nan-Tou Taiwan 54261
TW

View File

@ -5060,6 +5060,18 @@ A00000-AFFFFF (base 16) Annapurna labs
Mail box 15123 Haifa 3508409 Mail box 15123 Haifa 3508409
IL IL
FC-61-79 (hex) Shenzhen Xmitech Electronic Co.,Ltd
C00000-CFFFFF (base 16) Shenzhen Xmitech Electronic Co.,Ltd
Room 8B1888, Block AB, New Energy Building, No.2239, Nanhai Avenue, Nanguang Community, Nanshan Street, Nanshan District, Shenzhen
Shenzhen 518054
CN
30-3D-51 (hex) SHENZHEN WLINK TECHNOLOGY CO., LTD.
100000-1FFFFF (base 16) SHENZHEN WLINK TECHNOLOGY CO., LTD.
201, F5 Building, TCL International E City, No.1001 Zhongshanyuan Rd., Nanshan Dist.
Shenzhen Guangdong 518052
CN
4C-4B-F9 (hex) Shenzhen dingsheng technology co., LTD 4C-4B-F9 (hex) Shenzhen dingsheng technology co., LTD
400000-4FFFFF (base 16) Shenzhen dingsheng technology co., LTD 400000-4FFFFF (base 16) Shenzhen dingsheng technology co., LTD
Floor 3, building 5, kaijeda industrial zone, no.97, huaxing road, langkou community, dalang street, longhua district Floor 3, building 5, kaijeda industrial zone, no.97, huaxing road, langkou community, dalang street, longhua district
@ -15023,11 +15035,11 @@ FC-61-79 (hex) MACH SYSTEMS s.r.o.
Prague 10800 Prague 10800
CZ CZ
FC-61-79 (hex) Annapurna labs 30-3D-51 (hex) Media Hub Digital Smart Home Pty Ltd.
800000-8FFFFF (base 16) Annapurna labs 500000-5FFFFF (base 16) Media Hub Digital Smart Home Pty Ltd.
Matam Scientific Industries Center, Building 8.2 40 Koornang Road
Mail box 15123 Haifa 3508409 Scoresby VIC 3179
IL AU
FC-61-79 (hex) Zhuhai Anjubao Electronics Technology Co., Ltd. FC-61-79 (hex) Zhuhai Anjubao Electronics Technology Co., Ltd.
000000-0FFFFF (base 16) Zhuhai Anjubao Electronics Technology Co., Ltd. 000000-0FFFFF (base 16) Zhuhai Anjubao Electronics Technology Co., Ltd.
@ -15041,6 +15053,18 @@ FC-61-79 (hex) Shenzhen Shenshui Electronic Commerce Co.,Ltd
Shenzhen 518132 Shenzhen 518132
CN CN
FC-61-79 (hex) Annapurna labs
800000-8FFFFF (base 16) Annapurna labs
Matam Scientific Industries Center, Building 8.2
Mail box 15123 Haifa 3508409
IL
30-3D-51 (hex) TeraNXT Global India Pvt Ltd.
A00000-AFFFFF (base 16) TeraNXT Global India Pvt Ltd.
7A/61 W.E.A KAROL BAGH
DELHI DELHI 110005
IN
4C-4B-F9 (hex) Shandong Linkotech Electronic Co., Ltd. 4C-4B-F9 (hex) Shandong Linkotech Electronic Co., Ltd.
600000-6FFFFF (base 16) Shandong Linkotech Electronic Co., Ltd. 600000-6FFFFF (base 16) Shandong Linkotech Electronic Co., Ltd.
22nd Floor, Building 2, Aosheng Building, No.1166 Xinyi Street, High-tech Zone 22nd Floor, Building 2, Aosheng Building, No.1166 Xinyi Street, High-tech Zone
@ -20039,6 +20063,18 @@ FC-61-79 (hex) Hangzhou LiDe Communication Co.,Ltd
Hangzhou 311500 Hangzhou 311500
CN CN
30-3D-51 (hex) Harman Connected Services Corporation India Pvt. Ltd.
200000-2FFFFF (base 16) Harman Connected Services Corporation India Pvt. Ltd.
Plot No 3 & 3A, EOIZ Industrial Area, Sy.No.85 and 86, KIADB, Whitefield,
Bengaluru Karnataka 560066
IN
FC-61-79 (hex) ACCO Brands USA LLC
E00000-EFFFFF (base 16) ACCO Brands USA LLC
Four Corporate Drive
Lake Zurich IL 60047-2997
US
20-85-93 (hex) Great Lite International 20-85-93 (hex) Great Lite International
700000-7FFFFF (base 16) Great Lite International 700000-7FFFFF (base 16) Great Lite International
11F., No.207-2, Sec. 3, Beixin Rd., Xindian Dist., 11F., No.207-2, Sec. 3, Beixin Rd., Xindian Dist.,
@ -25100,12 +25136,24 @@ D00000-DFFFFF (base 16) Int'Act Pty Ltd
Boston MA 02215 Boston MA 02215
US US
30-3D-51 (hex) The Heil Co dba AWTI 3rd Eye Cam
800000-8FFFFF (base 16) The Heil Co dba AWTI 3rd Eye Cam
201 West Main Street, Suite 300
Chattanooga 37408
US
FC-61-79 (hex) Signalinks Communication Technology Co.,Ltd FC-61-79 (hex) Signalinks Communication Technology Co.,Ltd
100000-1FFFFF (base 16) Signalinks Communication Technology Co.,Ltd 100000-1FFFFF (base 16) Signalinks Communication Technology Co.,Ltd
3rd Floor, Building 6, Longxing Sciece park, East Huaning Road, Dalang Street , Longhua District, Shenzhen 3rd Floor, Building 6, Longxing Sciece park, East Huaning Road, Dalang Street , Longhua District, Shenzhen
Shenzhen Guangdong 518000 Shenzhen Guangdong 518000
CN CN
FC-61-79 (hex) Fulian Precision Electronics(Tianjin) Co., Ltd
B00000-BFFFFF (base 16) Fulian Precision Electronics(Tianjin) Co., Ltd
No 36. North Street, West Zone, Economic & Technological Development Area, Tianjin, China
Tianjin Tianjin 300457
CN
FC-61-79 (hex) Shenzhen Dptek Technology Co., Ltd. FC-61-79 (hex) Shenzhen Dptek Technology Co., Ltd.
A00000-AFFFFF (base 16) Shenzhen Dptek Technology Co., Ltd. A00000-AFFFFF (base 16) Shenzhen Dptek Technology Co., Ltd.
Room 706, Building Pincui, Zhongcui Garden,Dafen Community, Buji Street, Longgang District Room 706, Building Pincui, Zhongcui Garden,Dafen Community, Buji Street, Longgang District

View File

@ -5927,6 +5927,30 @@ E90000-E90FFF (base 16) MHE Electronics
Changwon-si, Gyeongsangnam-do, Republic of Korea 51368 Changwon-si, Gyeongsangnam-do, Republic of Korea 51368
KR KR
8C-1F-64 (hex) Lambda Systems Inc.
DB7000-DB7FFF (base 16) Lambda Systems Inc.
2-11-26 Sangenjaya
Setagaya-ku Tokyo 154-0024
JP
8C-1F-64 (hex) Grossenbacher Systeme AG
9F4000-9F4FFF (base 16) Grossenbacher Systeme AG
Spinnereistrasse 10
St. Gallen 9008
CH
8C-1F-64 (hex) KCS Co., Ltd.
4AE000-4AEFFF (base 16) KCS Co., Ltd.
1101, NexZone, 50, Wanam-ro, Seongsan-gu,
Changwon-si 51573
KR
8C-1F-64 (hex) Satelles Inc
9FF000-9FFFFF (base 16) Satelles Inc
1835 Alexander Bell Dr., Suite 240
Reston VA 20191
US
70-B3-D5 (hex) EVCO SPA 70-B3-D5 (hex) EVCO SPA
A80000-A80FFF (base 16) EVCO SPA A80000-A80FFF (base 16) EVCO SPA
VIA FELTRE N. 81 VIA FELTRE N. 81
@ -11699,18 +11723,24 @@ B7C000-B7CFFF (base 16) EVERNET CO,.LTD TAIWAN
Plainsboro NJ 08536 Plainsboro NJ 08536
US US
8C-1F-64 (hex) Genius vision digital private limted
CC6000-CC6FFF (base 16) Genius vision digital private limted
S-39, GF JANTA MARKET, RAJOURI GARDEN,NEW DELHI - 110027
new delhi new delhi 110027
IN
8C-1F-64 (hex) FMTec GmbH - Future Management Technologies 8C-1F-64 (hex) FMTec GmbH - Future Management Technologies
3E3000-3E3FFF (base 16) FMTec GmbH - Future Management Technologies 3E3000-3E3FFF (base 16) FMTec GmbH - Future Management Technologies
Austraße 59e Austraße 59e
Bludenz Austria 6700 Bludenz Austria 6700
AT AT
8C-1F-64 (hex) Genius Vision Digital Private Limited
CC6000-CC6FFF (base 16) Genius Vision Digital Private Limited
S-39, GF JANTA MARKET, RAJOURI GARDEN,NEW DELHI - 110027
new delhi new delhi 110027
IN
8C-1F-64 (hex) AVCOMM Technologies Inc
1F0000-1F0FFF (base 16) AVCOMM Technologies Inc
333 West Loop N FreewaySuite 460
Houston TX 77024-7338
US
70-B3-D5 (hex) System West dba ICS Electronics 70-B3-D5 (hex) System West dba ICS Electronics
E06000-E06FFF (base 16) System West dba ICS Electronics E06000-E06FFF (base 16) System West dba ICS Electronics
7034 Commerce Circle Suite A 7034 Commerce Circle Suite A
@ -13829,12 +13859,6 @@ CE5000-CE5FFF (base 16) GridBridge Inc
Christchurch Canterbury 8024 Christchurch Canterbury 8024
NZ NZ
70-B3-D5 (hex) HBH Microwave GmbH
CD2000-CD2FFF (base 16) HBH Microwave GmbH
Helmholtzstr. 1
Stutensee 76297
DE
70-B3-D5 (hex) Firefly RFID Solutions 70-B3-D5 (hex) Firefly RFID Solutions
8B3000-8B3FFF (base 16) Firefly RFID Solutions 8B3000-8B3FFF (base 16) Firefly RFID Solutions
1521 Boone Trail Rd 1521 Boone Trail Rd
@ -17450,6 +17474,24 @@ CDB000-CDBFFF (base 16) EUROPEAN TELECOMMUNICATION INTERNATIONAL KFT
Budapest 1132 Budapest 1132
HU HU
8C-1F-64 (hex) Goodtech AS dep Fredrikstad
C0E000-C0EFFF (base 16) Goodtech AS dep Fredrikstad
Gamle Beddingvei 28
FREDRIKSTAD Viken 1671
NO
70-B3-D5 (hex) TRUMPF Huttinger GmbH + Co. KG,
CD2000-CD2FFF (base 16) TRUMPF Huttinger GmbH + Co. KG,
Helmholtzstr. 1
Stutensee 76297
DE
8C-1F-64 (hex) DIALTRONICS SYSTEMS PVT LTD
1A5000-1A5FFF (base 16) DIALTRONICS SYSTEMS PVT LTD
Dialtronics Systems Pvt Ltd, #201, Sirisampada Hitech, Kavuri Hills, Madhapur
Hyderabad Telangana 500081
IN
70-B3-D5 (hex) YUYAMA MFG Co.,Ltd 70-B3-D5 (hex) YUYAMA MFG Co.,Ltd
BBB000-BBBFFF (base 16) YUYAMA MFG Co.,Ltd BBB000-BBBFFF (base 16) YUYAMA MFG Co.,Ltd
3-3-1 3-3-1
@ -21887,12 +21929,6 @@ DBA000-DBAFFF (base 16) KODENSHI CORP.
MINATO-KU TOKYO 1060032 MINATO-KU TOKYO 1060032
JP JP
70-B3-D5 (hex) BIT Group USA, Inc.
C75000-C75FFF (base 16) BIT Group USA, Inc.
15870 Bernardo center drive
San Diego CA 92127
US
70-B3-D5 (hex) Zeus Control Systems Ltd 70-B3-D5 (hex) Zeus Control Systems Ltd
E73000-E73FFF (base 16) Zeus Control Systems Ltd E73000-E73FFF (base 16) Zeus Control Systems Ltd
1-4 Alexander House Station Road 1-4 Alexander House Station Road
@ -23366,6 +23402,36 @@ C3A000-C3AFFF (base 16) YUSUR Technology Co., Ltd.
Faridabad HARYANA 121002 Faridabad HARYANA 121002
IN IN
8C-1F-64 (hex) Fink Zeitsysteme GmbH
73B000-73BFFF (base 16) Fink Zeitsysteme GmbH
Möslestraße 21
Altach Vorarlberg 6844
AT
70-B3-D5 (hex) PLANET INNOVATION (PI)
C75000-C75FFF (base 16) PLANET INNOVATION (PI)
6 Thomas
Irvine CA 92618
US
8C-1F-64 (hex) KST technology
DD7000-DD7FFF (base 16) KST technology
KST B/D 4-5, Wiryeseong-daero 12-gil
Songpa-gu Seoul 05636
KR
8C-1F-64 (hex) Bavaria Digital Technik GmbH
FB5000-FB5FFF (base 16) Bavaria Digital Technik GmbH
Rehbichler Weg 26
Pfronten Bayern 87459
DE
8C-1F-64 (hex) NT
CF4000-CF4FFF (base 16) NT
Azrieli Circular Tower132 Menachem Begin Rd
Tel Aviv 6701101
IL
70-B3-D5 (hex) DISMUNTEL SAL 70-B3-D5 (hex) DISMUNTEL SAL
92C000-92CFFF (base 16) DISMUNTEL SAL 92C000-92CFFF (base 16) DISMUNTEL SAL
Pol ind cotes Pol ind cotes
@ -29089,3 +29155,9 @@ DFE000-DFEFFF (base 16) Nuvation Energy
40 Bathurst Drive 40 Bathurst Drive
Waterloo Ontario N2V 1V6 Waterloo Ontario N2V 1V6
CA CA
8C-1F-64 (hex) Astro Machine Corporation
268000-268FFF (base 16) Astro Machine Corporation
630 Lively Blvd
Elk Grove Village IL 60007
US

View File

@ -1,8 +1,8 @@
# #
# List of PCI ID's # List of PCI ID's
# #
# Version: 2022.04.16 # Version: 2022.05.03
# Date: 2022-04-16 00:17:00 # Date: 2022-05-03 03:15:01
# #
# Maintained by Albert Pool, Martin Mares, and other volunteers from # Maintained by Albert Pool, Martin Mares, and other volunteers from
# the PCI ID Project at https://pci-ids.ucw.cz/. # the PCI ID Project at https://pci-ids.ucw.cz/.
@ -744,7 +744,9 @@
1028 213f PERC H365i Adapter 1028 213f PERC H365i Adapter
1028 2140 PERC H365i Front 1028 2140 PERC H365i Front
1028 2141 PERC H360 MX 1028 2141 PERC H360 MX
1028 2142 HBA 465e Adapter 1028 2142 HBA465e Adapter
1028 2209 HBA465i Adapter
1028 220a HBA465i Front
00ab SAS3516 Fusion-MPT Tri-Mode RAID On Chip (ROC) 00ab SAS3516 Fusion-MPT Tri-Mode RAID On Chip (ROC)
# 8 Internal and 8 External port channel 9400 HBA # 8 Internal and 8 External port channel 9400 HBA
1000 3040 HBA 9400-8i8e 1000 3040 HBA 9400-8i8e
@ -3776,6 +3778,7 @@
73bf Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] 73bf Navi 21 [Radeon RX 6800/6800 XT / 6900 XT]
1002 0e3a Radeon RX 6900 XT 1002 0e3a Radeon RX 6900 XT
148c 2408 Red Devil AMD Radeon RX 6900 XT 148c 2408 Red Devil AMD Radeon RX 6900 XT
1da2 440f TOXIC RX 6900 XT
1eae 6701 XFX Speedster MERC 319 AMD Radeon RX 6800 XT Black 1eae 6701 XFX Speedster MERC 319 AMD Radeon RX 6800 XT Black
73c3 Navi 22 73c3 Navi 22
73c4 Navi 22 USB 73c4 Navi 22 USB
@ -3790,6 +3793,8 @@
7408 Aldebaran 7408 Aldebaran
740c Aldebaran 740c Aldebaran
740f Aldebaran 740f Aldebaran
7421 Navi 24 [Radeon PRO W6500M]
7422 Navi 24 [Radeon PRO W6400]
743f Navi 24 [Radeon RX 6400 / 6500 XT] 743f Navi 24 [Radeon RX 6400 / 6500 XT]
1da2 e457 PULSE AMD Radeon RX 6500 XT 1da2 e457 PULSE AMD Radeon RX 6500 XT
7833 RS350 Host Bridge 7833 RS350 Host Bridge
@ -12515,6 +12520,7 @@
2504 GA106 [GeForce RTX 3060 Lite Hash Rate] 2504 GA106 [GeForce RTX 3060 Lite Hash Rate]
2505 GA106 2505 GA106
2507 GA106 [Geforce RTX 3050] 2507 GA106 [Geforce RTX 3050]
2508 GA106 [GeForce RTX 3050 OEM]
2520 GA106M [GeForce RTX 3060 Mobile / Max-Q] 2520 GA106M [GeForce RTX 3060 Mobile / Max-Q]
2523 GA106M [GeForce RTX 3050 Ti Mobile / Max-Q] 2523 GA106M [GeForce RTX 3050 Ti Mobile / Max-Q]
252f GA106 [GeForce RTX 3060 Engineering Sample] 252f GA106 [GeForce RTX 3060 Engineering Sample]
@ -12539,6 +12545,7 @@
25b8 GA107GLM [RTX A2000 Mobile] 25b8 GA107GLM [RTX A2000 Mobile]
25b9 GA107GLM [RTX A1000 Laptop GPU] 25b9 GA107GLM [RTX A1000 Laptop GPU]
25ba GA107GLM [RTX A2000 8GB Laptop GPU] 25ba GA107GLM [RTX A2000 8GB Laptop GPU]
25bb GA107GLM [RTX A500 Laptop GPU]
25e0 GA107BM [GeForce RTX 3050 Ti Mobile] 25e0 GA107BM [GeForce RTX 3050 Ti Mobile]
25e2 GA107BM [GeForce RTX 3050 Mobile] 25e2 GA107BM [GeForce RTX 3050 Mobile]
25e5 GA107BM [GeForce RTX 3050 Mobile] 25e5 GA107BM [GeForce RTX 3050 Mobile]
@ -19178,7 +19185,7 @@
103c 1240 Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM) 103c 1240 Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM)
14c2 DTK Computer 14c2 DTK Computer
14c3 MEDIATEK Corp. 14c3 MEDIATEK Corp.
0608 RZ608 Wi-Fi 6E 80MHz 0608 MT7921K (RZ608) Wi-Fi 6E 80MHz
0616 MT7922 802.11ax PCI Express Wireless Network Adapter 0616 MT7922 802.11ax PCI Express Wireless Network Adapter
7612 MT7612E 802.11acbgn PCI Express Wireless Network Adapter 7612 MT7612E 802.11acbgn PCI Express Wireless Network Adapter
7615 MT7615E 802.11ac PCI Express Wireless Network Adapter 7615 MT7615E 802.11ac PCI Express Wireless Network Adapter
@ -20795,6 +20802,8 @@
0257 Quantum-2 in Flash Recovery Mode 0257 Quantum-2 in Flash Recovery Mode
0258 Quantum-2 RMA 0258 Quantum-2 RMA
0259 Abir Chiplet 0259 Abir Chiplet
025b Quantum-3 in Flash Recovery Mode
025c Quantum-3 RMA
0262 MT27710 [ConnectX-4 Lx Programmable] EN 0262 MT27710 [ConnectX-4 Lx Programmable] EN
0263 MT27710 [ConnectX-4 Lx Programmable Virtual Function] EN 0263 MT27710 [ConnectX-4 Lx Programmable Virtual Function] EN
0264 Innova-2 Flex Burn image 0264 Innova-2 Flex Burn image
@ -20998,6 +21007,7 @@
cf84 Spectrum-4C cf84 Spectrum-4C
d2f0 Quantum HDR (200Gbps) switch d2f0 Quantum HDR (200Gbps) switch
d2f2 Quantum-2 NDR (400Gbps) switch d2f2 Quantum-2 NDR (400Gbps) switch
d2f4 Quantum-3
15b4 CCI/TRIAD 15b4 CCI/TRIAD
15b5 Cimetrics Inc 15b5 Cimetrics Inc
15b6 Texas Memory Systems Inc 15b6 Texas Memory Systems Inc
@ -22126,6 +22136,10 @@
17d3 1883 ARC-1883 8/12/16/24 Port PCIe 3.0 to SAS/SATA 12Gb RAID Controller 17d3 1883 ARC-1883 8/12/16/24 Port PCIe 3.0 to SAS/SATA 12Gb RAID Controller
1884 ARC-1884 series PCIe 3.0 to SAS/SATA 12/6Gb RAID Controller 1884 ARC-1884 series PCIe 3.0 to SAS/SATA 12/6Gb RAID Controller
188a ARC-1886 series PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller 188a ARC-1886 series PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller
17d3 1217 ARC-1217 4-Port PCIe 4.0 to SAS/SATA 12/6Gb RAID Controller
17d3 1227 ARC-1227 8-Port PCIe 4.0 to SAS/SATA 12/6Gb RAID Controller
17d3 1686 ARC-1686 PCIe 4.0 to SAS/SATA 12/6Gb Tape drive Controller
17d3 1886 ARC-1886 PCIe 4.0 to NVMe/SAS/SATA 16/12/6Gb RAID Controller
# nee Neterion Inc., previously S2io Inc. # nee Neterion Inc., previously S2io Inc.
17d5 Exar Corp. 17d5 Exar Corp.
5731 Xframe 10-Gigabit Ethernet PCI-X 5731 Xframe 10-Gigabit Ethernet PCI-X
@ -23901,6 +23915,7 @@
1028 214a DC NVMe PE8010 RI U.2 7.68TB 1028 214a DC NVMe PE8010 RI U.2 7.68TB
1c5c 0100 PE8000 Series NVMe Solid State Drive 1c5c 0100 PE8000 Series NVMe Solid State Drive
2849 PE81x0 U.2/3 NVMe Solid State Drive 2849 PE81x0 U.2/3 NVMe Solid State Drive
1c5c 0101 PE81x0 U.2/3 NVMe Solid State Drive
1c5f Beijing Memblaze Technology Co. Ltd. 1c5f Beijing Memblaze Technology Co. Ltd.
000d PBlaze5 520/526 000d PBlaze5 520/526
000e PBlaze6 6530 000e PBlaze6 6530
@ -24698,9 +24713,25 @@
1eec Viscore Technologies Ltd 1eec Viscore Technologies Ltd
0102 VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe 0102 VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe
1eec VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe 1eec VSE250231S Dual-port 10Gb/25Gb Ethernet PCIe
1eed Xiangdixian Computing Technology (Chongqing) Ltd. 1eed XDX Computing Technology Ltd.
0100 XDX P100 VGA controller 1100 XDX110 Graphic/VGA Controller
0101 XDX P101 High Definition Audio Controller 1101 XDX110 Audio Controller
1200 XDX120 Graphic/VGA Controller
1201 XDX120 Audio Controller
1300 XDX130 Graphic/VGA Controller
1301 XDX130 Audio Controller
1400 XDX140 Graphic/VGA Controller
1401 XDX140 Audio Controller
1500 XDX150 Graphic/VGA Controller
1501 XDX150 Audio Controller
1600 XDX160 Graphic/VGA Controller
1601 XDX160 Audio Controller
1700 XDX170 Graphic/VGA Controller
1701 XDX170 Audio Controller
1800 XDX180 Graphic/VGA Controller
1801 XDX180 Audio Controller
1900 XDX190 Graphic/VGA Controller
1901 XDX190 Audio Controller
1efb Flexxon Pte Ltd 1efb Flexxon Pte Ltd
1f02 Beijing Dayu Technology 1f02 Beijing Dayu Technology
1f03 Shenzhen Shichuangyi Electronics Co., Ltd 1f03 Shenzhen Shichuangyi Electronics Co., Ltd
@ -25247,6 +25278,8 @@
5168 Animation Technologies Inc. 5168 Animation Technologies Inc.
0300 FlyDVB-S 0300 FlyDVB-S
0301 FlyDVB-T 0301 FlyDVB-T
51d8 Alder Lake-P Serial IO I2C Controller #2
51d9 Alder Lake-P Serial IO I2C Controller #3
5301 Alliance Semiconductor Corp. 5301 Alliance Semiconductor Corp.
0001 ProMotion aT3D 0001 ProMotion aT3D
5333 S3 Graphics Ltd. 5333 S3 Graphics Ltd.
@ -25466,6 +25499,8 @@
6766 Glenfly Tech Co., Ltd. 6766 Glenfly Tech Co., Ltd.
3d00 Arise-GT-10C0 3d00 Arise-GT-10C0
3d02 Arise 1020 3d02 Arise 1020
3d03 Arise-GT-1040
3d04 Arise1010
3d40 Arise-GT-10C0 High Definition Audio Controller 3d40 Arise-GT-10C0 High Definition Audio Controller
3d41 Arise 1020 High Definition Audio Controller 3d41 Arise 1020 High Definition Audio Controller
6899 ZT Systems 6899 ZT Systems
@ -27357,6 +27392,7 @@
124e Ethernet Connection E823-L/X557-AT 10GBASE-T 124e Ethernet Connection E823-L/X557-AT 10GBASE-T
124f Ethernet Connection E823-L 1GbE 124f Ethernet Connection E823-L 1GbE
1250 430HX - 82439HX TXC [Triton II] 1250 430HX - 82439HX TXC [Triton II]
125b Ethernet Controller I226-LM
1360 82806AA PCI64 Hub PCI Bridge 1360 82806AA PCI64 Hub PCI Bridge
1361 82806AA PCI64 Hub Controller (HRes) 1361 82806AA PCI64 Hub Controller (HRes)
8086 1361 82806AA PCI64 Hub Controller (HRes) 8086 1361 82806AA PCI64 Hub Controller (HRes)
@ -27569,7 +27605,7 @@
8086 0001 Ethernet Server Bypass Adapter X520-SR2 8086 0001 Ethernet Server Bypass Adapter X520-SR2
8086 0002 Ethernet Server Bypass Adapter X520-LR2 8086 0002 Ethernet Server Bypass Adapter X520-LR2
1560 Ethernet Controller X540 1560 Ethernet Controller X540
1563 Ethernet Controller 10G X550T 1563 Ethernet Controller X550
1028 1fa8 Ethernet 10G 4P X550/I350 rNDC 1028 1fa8 Ethernet 10G 4P X550/I350 rNDC
1028 1fa9 Ethernet 10G 4P X550 rNDC 1028 1fa9 Ethernet 10G 4P X550 rNDC
1137 02b2 X550-TX 10 Gig LOM 1137 02b2 X550-TX 10 Gig LOM
@ -27773,6 +27809,7 @@
8086 000f Ethernet Network Adapter E810-C-Q2T 8086 000f Ethernet Network Adapter E810-C-Q2T
8086 0010 Ethernet 100G 2P E810-C-stg Adapter 8086 0010 Ethernet 100G 2P E810-C-stg Adapter
8086 0011 Ethernet Network Adapter E810-C-Q1 for OCP3.0 8086 0011 Ethernet Network Adapter E810-C-Q1 for OCP3.0
8086 0012 Ethernet 100G 2P E810-C-st Adapter
1593 Ethernet Controller E810-C for SFP 1593 Ethernet Controller E810-C for SFP
1137 02c3 E810XXVDA4 4x25/10 GbE SFP28 PCIe NIC 1137 02c3 E810XXVDA4 4x25/10 GbE SFP28 PCIe NIC
1137 02e9 E810XXVDA4TG 4x25/10 GbE SFP28 PCIe NIC 1137 02e9 E810XXVDA4TG 4x25/10 GbE SFP28 PCIe NIC
@ -27964,6 +28001,11 @@
163d Broadwell-U Integrated Graphics 163d Broadwell-U Integrated Graphics
163e Broadwell-U Integrated Graphics 163e Broadwell-U Integrated Graphics
1889 Ethernet Adaptive Virtual Function 1889 Ethernet Adaptive Virtual Function
188a Ethernet Connection E823-C for backplane
188b Ethernet Connection E823-C for QSFP
188c Ethernet Connection E823-C for SFP
188d Ethernet Connection E823-C/X557-AT 10GBASE-T
188e Ethernet Connection E823-C 1GbE
1890 Ethernet Connection E822-C for backplane 1890 Ethernet Connection E822-C for backplane
1891 Ethernet Connection E822-C for QSFP 1891 Ethernet Connection E822-C for QSFP
1892 Ethernet Connection E822-C for SFP 1892 Ethernet Connection E822-C for SFP
@ -32420,6 +32462,8 @@
51c6 Alder Lake-P Serial IO I2C Controller #1 51c6 Alder Lake-P Serial IO I2C Controller #1
51c8 Alder Lake PCH-P High Definition Audio Controller 51c8 Alder Lake PCH-P High Definition Audio Controller
51d3 Alder Lake-P SATA AHCI Controller 51d3 Alder Lake-P SATA AHCI Controller
51d8 Alder Lake-P Serial IO I2C Controller #2
51d9 Alder Lake-P Serial IO I2C Controller #3
51e0 Alder Lake PCH HECI Controller 51e0 Alder Lake PCH HECI Controller
51e8 Alder Lake PCH Serial IO I2C Controller #0 51e8 Alder Lake PCH Serial IO I2C Controller #0
51e9 Alder Lake PCH Serial IO I2C Controller #1 51e9 Alder Lake PCH Serial IO I2C Controller #1
@ -32437,7 +32481,6 @@
8086 0001 EtherExpress PRO/100 Server Ethernet Adapter 8086 0001 EtherExpress PRO/100 Server Ethernet Adapter
530d 80310 (IOP) IO Processor 530d 80310 (IOP) IO Processor
5502 Ethernet Controller (2) I225-LMvP 5502 Ethernet Controller (2) I225-LMvP
5504 Ethernet Controller I226-K
5845 QEMU NVM Express Controller 5845 QEMU NVM Express Controller
1af4 1100 QEMU Virtual Machine 1af4 1100 QEMU Virtual Machine
5900 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers 5900 Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers

View File

@ -9,8 +9,8 @@
# The latest version can be obtained from # The latest version can be obtained from
# http://www.linux-usb.org/usb.ids # http://www.linux-usb.org/usb.ids
# #
# Version: 2022.04.13 # Version: 2022.05.03
# Date: 2022-04-13 20:34:10 # Date: 2022-05-03 20:34:10
# #
# Vendors, devices and interfaces. Please keep sorted. # Vendors, devices and interfaces. Please keep sorted.
@ -22333,13 +22333,15 @@
5440 TimVideos' HDMI2USB Opsis (FX2) - Unconfigured device 5440 TimVideos' HDMI2USB Opsis (FX2) - Unconfigured device
5441 TimVideos' HDMI2USB Opsis (FX2) - Firmware load/upgrade 5441 TimVideos' HDMI2USB Opsis (FX2) - Firmware load/upgrade
5442 TimVideos' HDMI2USB Opsis (FX2) - HDMI/DVI Capture Device 5442 TimVideos' HDMI2USB Opsis (FX2) - HDMI/DVI Capture Device
2a1d Oxford Nanopore Technologies, Ltd 2a1d Oxford Nanopore Technologies plc
0000 MinION 0000 MinION
0001 MinION 0001 MinION
0010 VolTRAX 0010 VolTRAX
0011 VolTRAX 0011 VolTRAX
0020 GridION 0020 GridION
0021 GridION 0021 GridION
0120 GridION Mk1 Bay
0121 GridION Mk1 Bay
2a37 RTD Embedded Technologies, Inc. 2a37 RTD Embedded Technologies, Inc.
5110 UPS35110/UPS25110 5110 UPS35110/UPS25110
2a39 RME 2a39 RME

View File

@ -272,7 +272,16 @@
<term><option>--graceful</option></term> <term><option>--graceful</option></term>
<listitem><para>Ignore failure when the EFI System Partition cannot be found, when EFI variables <listitem><para>Ignore failure when the EFI System Partition cannot be found, when EFI variables
cannot be written, or a different or newer boot loader is already installed. Currently only applies cannot be written, or a different or newer boot loader is already installed. Currently only applies
to random seed and update operations.</para></listitem> to <command>is-installed</command>, <command>update</command>, and <command>random-seed</command>
verbs.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<term><option>--quiet</option></term>
<listitem><para>Suppress printing of the results of various commands and also the hints about ESP
being unavailable.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>

View File

@ -846,6 +846,14 @@ CapabilityBoundingSet=~CAP_B CAP_C</programlisting>
runtime, and are generally more expressive. For example, <varname>MemoryMax=</varname> is a more runtime, and are generally more expressive. For example, <varname>MemoryMax=</varname> is a more
powerful (and working) replacement for <varname>LimitRSS=</varname>.</para> powerful (and working) replacement for <varname>LimitRSS=</varname>.</para>
<para>Note that <varname>LimitNPROC=</varname> will limit the number of processes from one (real) UID and
not the number of processes started (forked) by the service. Therefore the limit is cumulative for all
processes running under the same UID. Please also note that the <varname>LimitNPROC=</varname> will not be
enforced if the service is running as root (and not dropping privileges). Due to these limitations,
<varname>TasksMax=</varname> (see <citerefentry><refentrytitle>systemd.resource-control</refentrytitle>
<manvolnum>5</manvolnum></citerefentry>) is typically a better choice than <varname>LimitNPROC=</varname>.
</para>
<para>Resource limits not configured explicitly for a unit default to the value configured in the various <para>Resource limits not configured explicitly for a unit default to the value configured in the various
<varname>DefaultLimitCPU=</varname>, <varname>DefaultLimitFSIZE=</varname>, … options available in <varname>DefaultLimitCPU=</varname>, <varname>DefaultLimitFSIZE=</varname>, … options available in
<citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, and <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, and

View File

@ -388,6 +388,7 @@ int unit_file_build_name_map(
_cleanup_hashmap_free_ Hashmap *ids = NULL, *names = NULL; _cleanup_hashmap_free_ Hashmap *ids = NULL, *names = NULL;
_cleanup_set_free_free_ Set *paths = NULL; _cleanup_set_free_free_ Set *paths = NULL;
_cleanup_strv_free_ char **expanded_search_path = NULL;
uint64_t timestamp_hash; uint64_t timestamp_hash;
int r; int r;
@ -406,6 +407,44 @@ int unit_file_build_name_map(
return log_oom(); return log_oom();
} }
/* Go over all our search paths, chase their symlinks and store the result in the
* expanded_search_path list.
*
* This is important for cases where any of the unit directories itself are symlinks into other
* directories and would therefore cause all of the unit files to be recognized as linked units.
*
* This is important for distributions such as NixOS where most paths in /etc/ are symlinks to some
* other location on the filesystem (e.g. into /nix/store/).
*
* Search paths are ordered by priority (highest first), and we need to maintain this order.
* If a resolved path is already in the list, we don't need to include.
*
* Note that we build a list that contains both the original paths and the resolved symlinks:
* we need the latter for the case where the directory is symlinked, as described above, and
* the former for the case where some unit file alias is a dangling symlink that points to one
* of the "original" directories (and can't be followed).
*/
STRV_FOREACH(dir, lp->search_path) {
_cleanup_free_ char *resolved_dir = NULL;
r = strv_extend(&expanded_search_path, *dir);
if (r < 0)
return log_oom();
r = chase_symlinks(*dir, NULL, 0, &resolved_dir, NULL);
if (r < 0) {
if (r != -ENOENT)
log_warning_errno(r, "Failed to resolve symlink %s, ignoring: %m", *dir);
continue;
}
if (strv_contains(expanded_search_path, resolved_dir))
continue;
if (strv_consume(&expanded_search_path, TAKE_PTR(resolved_dir)) < 0)
return log_oom();
}
STRV_FOREACH(dir, lp->search_path) { STRV_FOREACH(dir, lp->search_path) {
_cleanup_closedir_ DIR *d = NULL; _cleanup_closedir_ DIR *d = NULL;
@ -504,7 +543,7 @@ int unit_file_build_name_map(
/* We don't explicitly check for alias loops here. unit_ids_map_get() which /* We don't explicitly check for alias loops here. unit_ids_map_get() which
* limits the number of hops should be used to access the map. */ * limits the number of hops should be used to access the map. */
r = unit_file_resolve_symlink(lp->root_dir, lp->search_path, r = unit_file_resolve_symlink(lp->root_dir, expanded_search_path,
*dir, dirfd(d), de->d_name, *dir, dirfd(d), de->d_name,
/* resolve_destination_target= */ false, /* resolve_destination_target= */ false,
&dst); &dst);

View File

@ -61,6 +61,7 @@ static bool arg_print_dollar_boot_path = false;
static bool arg_touch_variables = true; static bool arg_touch_variables = true;
static PagerFlags arg_pager_flags = 0; static PagerFlags arg_pager_flags = 0;
static bool arg_graceful = false; static bool arg_graceful = false;
static bool arg_quiet = false;
static int arg_make_entry_directory = false; /* tri-state: < 0 for automatic logic */ static int arg_make_entry_directory = false; /* tri-state: < 0 for automatic logic */
static sd_id128_t arg_machine_id = SD_ID128_NULL; static sd_id128_t arg_machine_id = SD_ID128_NULL;
static char *arg_install_layout = NULL; static char *arg_install_layout = NULL;
@ -105,7 +106,8 @@ static int acquire_esp(
r = find_esp_and_warn(arg_esp_path, unprivileged_mode, &np, ret_part, ret_pstart, ret_psize, ret_uuid, ret_devid); r = find_esp_and_warn(arg_esp_path, unprivileged_mode, &np, ret_part, ret_pstart, ret_psize, ret_uuid, ret_devid);
if (r == -ENOKEY) { if (r == -ENOKEY) {
if (graceful) if (graceful)
return log_info_errno(r, "Couldn't find EFI system partition, skipping."); return log_full_errno(arg_quiet ? LOG_DEBUG : LOG_INFO, r,
"Couldn't find EFI system partition, skipping.");
return log_error_errno(r, return log_error_errno(r,
"Couldn't find EFI system partition. It is recommended to mount it to /boot or /efi.\n" "Couldn't find EFI system partition. It is recommended to mount it to /boot or /efi.\n"
@ -178,7 +180,9 @@ static int load_etc_machine_info(void) {
return log_error_errno(r, "Failed to parse /etc/machine-info: %m"); return log_error_errno(r, "Failed to parse /etc/machine-info: %m");
if (!isempty(s)) { if (!isempty(s)) {
log_notice("Read $KERNEL_INSTALL_MACHINE_ID from /etc/machine-info. Please move it to /etc/kernel/entry-token."); if (!arg_quiet)
log_notice("Read $KERNEL_INSTALL_MACHINE_ID from /etc/machine-info. "
"Please move it to /etc/kernel/entry-token.");
r = sd_id128_from_string(s, &arg_machine_id); r = sd_id128_from_string(s, &arg_machine_id);
if (r < 0) if (r < 0)
@ -189,7 +193,9 @@ static int load_etc_machine_info(void) {
} }
if (!isempty(layout)) { if (!isempty(layout)) {
log_notice("Read $KERNEL_INSTALL_LAYOUT from /etc/machine-info. Please move it to the layout= setting of /etc/kernel/install.conf."); if (!arg_quiet)
log_notice("Read $KERNEL_INSTALL_LAYOUT from /etc/machine-info. "
"Please move it to the layout= setting of /etc/kernel/install.conf.");
log_debug("KERNEL_INSTALL_LAYOUT=%s is specified in /etc/machine-info.", layout); log_debug("KERNEL_INSTALL_LAYOUT=%s is specified in /etc/machine-info.", layout);
free_and_replace(arg_install_layout, layout); free_and_replace(arg_install_layout, layout);
@ -470,13 +476,13 @@ static int status_binaries(const char *esp_path, sd_id128_t partition) {
r = enumerate_binaries(esp_path, "EFI/systemd", NULL); r = enumerate_binaries(esp_path, "EFI/systemd", NULL);
if (r < 0) if (r < 0)
goto finish; goto finish;
if (r == 0) if (r == 0 && !arg_quiet)
log_info("systemd-boot not installed in ESP."); log_info("systemd-boot not installed in ESP.");
r = enumerate_binaries(esp_path, "EFI/BOOT", "boot"); r = enumerate_binaries(esp_path, "EFI/BOOT", "boot");
if (r < 0) if (r < 0)
goto finish; goto finish;
if (r == 0) if (r == 0 && !arg_quiet)
log_info("No default/fallback boot loader installed in ESP."); log_info("No default/fallback boot loader installed in ESP.");
r = 0; r = 0;
@ -1445,6 +1451,7 @@ static int help(int argc, char *argv[], void *userdata) {
" --no-pager Do not pipe output into a pager\n" " --no-pager Do not pipe output into a pager\n"
" --graceful Don't fail when the ESP cannot be found or EFI\n" " --graceful Don't fail when the ESP cannot be found or EFI\n"
" variables cannot be written\n" " variables cannot be written\n"
" -q --quiet Suppress output\n"
" --make-entry-directory=yes|no|auto\n" " --make-entry-directory=yes|no|auto\n"
" Create $BOOT/ENTRY-TOKEN/ directory\n" " Create $BOOT/ENTRY-TOKEN/ directory\n"
" --entry-token=machine-id|os-id|os-image-id|auto|literal:…\n" " --entry-token=machine-id|os-id|os-image-id|auto|literal:…\n"
@ -1487,6 +1494,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "no-variables", no_argument, NULL, ARG_NO_VARIABLES }, { "no-variables", no_argument, NULL, ARG_NO_VARIABLES },
{ "no-pager", no_argument, NULL, ARG_NO_PAGER }, { "no-pager", no_argument, NULL, ARG_NO_PAGER },
{ "graceful", no_argument, NULL, ARG_GRACEFUL }, { "graceful", no_argument, NULL, ARG_GRACEFUL },
{ "quiet", no_argument, NULL, 'q' },
{ "make-entry-directory", required_argument, NULL, ARG_MAKE_ENTRY_DIRECTORY }, { "make-entry-directory", required_argument, NULL, ARG_MAKE_ENTRY_DIRECTORY },
{ "make-machine-id-directory", required_argument, NULL, ARG_MAKE_ENTRY_DIRECTORY }, /* Compatibility alias */ { "make-machine-id-directory", required_argument, NULL, ARG_MAKE_ENTRY_DIRECTORY }, /* Compatibility alias */
{ "entry-token", required_argument, NULL, ARG_ENTRY_TOKEN }, { "entry-token", required_argument, NULL, ARG_ENTRY_TOKEN },
@ -1548,6 +1556,10 @@ static int parse_argv(int argc, char *argv[]) {
arg_graceful = true; arg_graceful = true;
break; break;
case 'q':
arg_quiet = true;
break;
case ARG_ENTRY_TOKEN: { case ARG_ENTRY_TOKEN: {
const char *e; const char *e;
@ -2226,7 +2238,9 @@ static int verb_remove(int argc, char *argv[], void *userdata) {
static int verb_is_installed(int argc, char *argv[], void *userdata) { static int verb_is_installed(int argc, char *argv[], void *userdata) {
int r; int r;
r = acquire_esp(/* privileged_mode= */ false, /* graceful= */ false, NULL, NULL, NULL, NULL, NULL); r = acquire_esp(/* privileged_mode= */ false,
/* graceful= */ arg_graceful,
NULL, NULL, NULL, NULL, NULL);
if (r < 0) if (r < 0)
return r; return r;
@ -2235,9 +2249,11 @@ static int verb_is_installed(int argc, char *argv[], void *userdata) {
return r; return r;
if (r > 0) { if (r > 0) {
if (!arg_quiet)
puts("yes"); puts("yes");
return EXIT_SUCCESS; return EXIT_SUCCESS;
} else { } else {
if (!arg_quiet)
puts("no"); puts("no");
return EXIT_FAILURE; return EXIT_FAILURE;
} }

View File

@ -3341,6 +3341,84 @@ static int journal_file_warn_btrfs(JournalFile *f) {
return 1; return 1;
} }
static void journal_default_metrics(JournalMetrics *m, int fd) {
struct statvfs ss;
uint64_t fs_size = 0;
assert(m);
assert(fd >= 0);
if (fstatvfs(fd, &ss) >= 0)
fs_size = ss.f_frsize * ss.f_blocks;
else
log_debug_errno(errno, "Failed to determine disk size: %m");
if (m->max_use == UINT64_MAX) {
if (fs_size > 0)
m->max_use = CLAMP(PAGE_ALIGN(fs_size / 10), /* 10% of file system size */
MAX_USE_LOWER, MAX_USE_UPPER);
else
m->max_use = MAX_USE_LOWER;
} else {
m->max_use = PAGE_ALIGN(m->max_use);
if (m->max_use != 0 && m->max_use < JOURNAL_FILE_SIZE_MIN*2)
m->max_use = JOURNAL_FILE_SIZE_MIN*2;
}
if (m->min_use == UINT64_MAX) {
if (fs_size > 0)
m->min_use = CLAMP(PAGE_ALIGN(fs_size / 50), /* 2% of file system size */
MIN_USE_LOW, MIN_USE_HIGH);
else
m->min_use = MIN_USE_LOW;
}
if (m->min_use > m->max_use)
m->min_use = m->max_use;
if (m->max_size == UINT64_MAX)
m->max_size = MIN(PAGE_ALIGN(m->max_use / 8), /* 8 chunks */
MAX_SIZE_UPPER);
else
m->max_size = PAGE_ALIGN(m->max_size);
if (m->max_size != 0) {
if (m->max_size < JOURNAL_FILE_SIZE_MIN)
m->max_size = JOURNAL_FILE_SIZE_MIN;
if (m->max_use != 0 && m->max_size*2 > m->max_use)
m->max_use = m->max_size*2;
}
if (m->min_size == UINT64_MAX)
m->min_size = JOURNAL_FILE_SIZE_MIN;
else
m->min_size = CLAMP(PAGE_ALIGN(m->min_size),
JOURNAL_FILE_SIZE_MIN,
m->max_size ?: UINT64_MAX);
if (m->keep_free == UINT64_MAX) {
if (fs_size > 0)
m->keep_free = MIN(PAGE_ALIGN(fs_size / 20), /* 5% of file system size */
KEEP_FREE_UPPER);
else
m->keep_free = DEFAULT_KEEP_FREE;
}
if (m->n_max_files == UINT64_MAX)
m->n_max_files = DEFAULT_N_MAX_FILES;
log_debug("Fixed min_use=%s max_use=%s max_size=%s min_size=%s keep_free=%s n_max_files=%" PRIu64,
FORMAT_BYTES(m->min_use),
FORMAT_BYTES(m->max_use),
FORMAT_BYTES(m->max_size),
FORMAT_BYTES(m->min_size),
FORMAT_BYTES(m->keep_free),
m->n_max_files);
}
int journal_file_open( int journal_file_open(
int fd, int fd,
const char *fname, const char *fname,
@ -3770,84 +3848,6 @@ void journal_reset_metrics(JournalMetrics *m) {
}; };
} }
void journal_default_metrics(JournalMetrics *m, int fd) {
struct statvfs ss;
uint64_t fs_size = 0;
assert(m);
assert(fd >= 0);
if (fstatvfs(fd, &ss) >= 0)
fs_size = ss.f_frsize * ss.f_blocks;
else
log_debug_errno(errno, "Failed to determine disk size: %m");
if (m->max_use == UINT64_MAX) {
if (fs_size > 0)
m->max_use = CLAMP(PAGE_ALIGN(fs_size / 10), /* 10% of file system size */
MAX_USE_LOWER, MAX_USE_UPPER);
else
m->max_use = MAX_USE_LOWER;
} else {
m->max_use = PAGE_ALIGN(m->max_use);
if (m->max_use != 0 && m->max_use < JOURNAL_FILE_SIZE_MIN*2)
m->max_use = JOURNAL_FILE_SIZE_MIN*2;
}
if (m->min_use == UINT64_MAX) {
if (fs_size > 0)
m->min_use = CLAMP(PAGE_ALIGN(fs_size / 50), /* 2% of file system size */
MIN_USE_LOW, MIN_USE_HIGH);
else
m->min_use = MIN_USE_LOW;
}
if (m->min_use > m->max_use)
m->min_use = m->max_use;
if (m->max_size == UINT64_MAX)
m->max_size = MIN(PAGE_ALIGN(m->max_use / 8), /* 8 chunks */
MAX_SIZE_UPPER);
else
m->max_size = PAGE_ALIGN(m->max_size);
if (m->max_size != 0) {
if (m->max_size < JOURNAL_FILE_SIZE_MIN)
m->max_size = JOURNAL_FILE_SIZE_MIN;
if (m->max_use != 0 && m->max_size*2 > m->max_use)
m->max_use = m->max_size*2;
}
if (m->min_size == UINT64_MAX)
m->min_size = JOURNAL_FILE_SIZE_MIN;
else
m->min_size = CLAMP(PAGE_ALIGN(m->min_size),
JOURNAL_FILE_SIZE_MIN,
m->max_size ?: UINT64_MAX);
if (m->keep_free == UINT64_MAX) {
if (fs_size > 0)
m->keep_free = MIN(PAGE_ALIGN(fs_size / 20), /* 5% of file system size */
KEEP_FREE_UPPER);
else
m->keep_free = DEFAULT_KEEP_FREE;
}
if (m->n_max_files == UINT64_MAX)
m->n_max_files = DEFAULT_N_MAX_FILES;
log_debug("Fixed min_use=%s max_use=%s max_size=%s min_size=%s keep_free=%s n_max_files=%" PRIu64,
FORMAT_BYTES(m->min_use),
FORMAT_BYTES(m->max_use),
FORMAT_BYTES(m->max_size),
FORMAT_BYTES(m->min_size),
FORMAT_BYTES(m->keep_free),
m->n_max_files);
}
int journal_file_get_cutoff_realtime_usec(JournalFile *f, usec_t *from, usec_t *to) { int journal_file_get_cutoff_realtime_usec(JournalFile *f, usec_t *from, usec_t *to) {
assert(f); assert(f);
assert(f->header); assert(f->header);

View File

@ -241,7 +241,6 @@ void journal_file_post_change(JournalFile *f);
int journal_file_enable_post_change_timer(JournalFile *f, sd_event *e, usec_t t); int journal_file_enable_post_change_timer(JournalFile *f, sd_event *e, usec_t t);
void journal_reset_metrics(JournalMetrics *m); void journal_reset_metrics(JournalMetrics *m);
void journal_default_metrics(JournalMetrics *m, int fd);
int journal_file_get_cutoff_realtime_usec(JournalFile *f, usec_t *from, usec_t *to); int journal_file_get_cutoff_realtime_usec(JournalFile *f, usec_t *from, usec_t *to);
int journal_file_get_cutoff_monotonic_usec(JournalFile *f, sd_id128_t boot, usec_t *from, usec_t *to); int journal_file_get_cutoff_monotonic_usec(JournalFile *f, sd_id128_t boot, usec_t *from, usec_t *to);

View File

@ -1899,7 +1899,7 @@ static int install_info_symlink_alias(
if (!alias_path) if (!alias_path)
return -ENOMEM; return -ENOMEM;
q = create_symlink(lp, info->name, alias_path, force, changes, n_changes); q = create_symlink(lp, info->path, alias_path, force, changes, n_changes);
r = r < 0 ? r : q; r = r < 0 ? r : q;
} }
@ -1968,7 +1968,7 @@ static int install_info_symlink_wants(
} }
STRV_FOREACH(s, list) { STRV_FOREACH(s, list) {
_cleanup_free_ char *dst = NULL; _cleanup_free_ char *path = NULL, *dst = NULL;
q = install_name_printf(scope, info, *s, &dst); q = install_name_printf(scope, info, *s, &dst);
if (q < 0) { if (q < 0) {
@ -1998,15 +1998,11 @@ static int install_info_symlink_wants(
continue; continue;
} }
_cleanup_free_ char *path = strjoin(config_path, "/", dst, suffix, n); path = strjoin(config_path, "/", dst, suffix, n);
if (!path) if (!path)
return -ENOMEM; return -ENOMEM;
_cleanup_free_ char *target = strjoin("../", info->name); q = create_symlink(lp, info->path, path, true, changes, n_changes);
if (!target)
return -ENOMEM;
q = create_symlink(lp, target, path, true, changes, n_changes);
if (r == 0) if (r == 0)
r = q; r = q;
@ -2914,7 +2910,7 @@ int unit_file_set_default(
return r; return r;
new_path = strjoina(lp.persistent_config, "/" SPECIAL_DEFAULT_TARGET); new_path = strjoina(lp.persistent_config, "/" SPECIAL_DEFAULT_TARGET);
return create_symlink(&lp, info->name, new_path, flags & UNIT_FILE_FORCE, changes, n_changes); return create_symlink(&lp, info->path, new_path, flags & UNIT_FILE_FORCE, changes, n_changes);
} }
int unit_file_get_default( int unit_file_get_default(

View File

@ -88,7 +88,7 @@ TEST(basic_mask_and_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) == 1); assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 1); assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../a.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/a.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
@ -128,7 +128,7 @@ TEST(basic_mask_and_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("d.service"), &changes, &n_changes) >= 0); assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("d.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1); assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../a.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/a.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
@ -147,7 +147,7 @@ TEST(basic_mask_and_enable) {
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[1].source, "../a.service")); assert_se(streq(changes[1].source, "/usr/lib/systemd/system/a.service"));
assert_se(streq(changes[1].path, p)); assert_se(streq(changes[1].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
changes = NULL; n_changes = 0; changes = NULL; n_changes = 0;
@ -186,7 +186,7 @@ TEST(basic_mask_and_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("f.service"), &changes, &n_changes) == 1); assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("f.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 2); assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../f.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/f.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/x.target.wants/f.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/x.target.wants/f.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
assert_se(changes[1].type_or_errno == UNIT_FILE_DESTINATION_NOT_PRESENT); assert_se(changes[1].type_or_errno == UNIT_FILE_DESTINATION_NOT_PRESENT);
@ -280,8 +280,7 @@ TEST(linked_units) {
q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked.service"); q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked.service");
for (i = 0 ; i < n_changes; i++) { for (i = 0 ; i < n_changes; i++) {
assert_se(changes[i].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[i].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(STR_IN_SET(changes[i].source, assert_se(streq(changes[i].source, "/opt/linked.service"));
"../linked.service", "/opt/linked.service"));
if (p && streq(changes[i].path, p)) if (p && streq(changes[i].path, p))
p = NULL; p = NULL;
@ -323,8 +322,7 @@ TEST(linked_units) {
q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked2.service"); q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked2.service");
for (i = 0 ; i < n_changes; i++) { for (i = 0 ; i < n_changes; i++) {
assert_se(changes[i].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[i].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(STR_IN_SET(changes[i].source, assert_se(streq(changes[i].source, "/opt/linked2.service"));
"../linked2.service", "/opt/linked2.service"));
if (p && streq(changes[i].path, p)) if (p && streq(changes[i].path, p))
p = NULL; p = NULL;
@ -342,7 +340,7 @@ TEST(linked_units) {
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(startswith(changes[0].path, root)); assert_se(startswith(changes[0].path, root));
assert_se(endswith(changes[0].path, "linked3.service")); assert_se(endswith(changes[0].path, "linked3.service"));
assert_se(streq(changes[0].source, "../linked3.service")); assert_se(streq(changes[0].source, "/opt/linked3.service"));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
changes = NULL; n_changes = 0; changes = NULL; n_changes = 0;
} }
@ -373,7 +371,7 @@ TEST(default) {
assert_se(unit_file_set_default(LOOKUP_SCOPE_SYSTEM, 0, root, "test-default.target", &changes, &n_changes) >= 0); assert_se(unit_file_set_default(LOOKUP_SCOPE_SYSTEM, 0, root, "test-default.target", &changes, &n_changes) >= 0);
assert_se(n_changes == 1); assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "test-default-real.target")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/test-default-real.target"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR "/" SPECIAL_DEFAULT_TARGET); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR "/" SPECIAL_DEFAULT_TARGET);
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
@ -403,7 +401,7 @@ TEST(add_dependency) {
assert_se(unit_file_add_dependency(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("add-dependency-test-service.service"), "add-dependency-test-target.target", UNIT_WANTS, &changes, &n_changes) >= 0); assert_se(unit_file_add_dependency(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("add-dependency-test-service.service"), "add-dependency-test-target.target", UNIT_WANTS, &changes, &n_changes) >= 0);
assert_se(n_changes == 1); assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../real-add-dependency-test-service.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/real-add-dependency-test-service.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/real-add-dependency-test-target.target.wants/real-add-dependency-test-service.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/real-add-dependency-test-target.target.wants/real-add-dependency-test-service.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
@ -444,7 +442,7 @@ TEST(template_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@.service"), &changes, &n_changes) >= 0); assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1); assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../template@.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@def.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@def.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
@ -475,14 +473,13 @@ TEST(template_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@foo.service"), &changes, &n_changes) >= 0); assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@foo.service"), &changes, &n_changes) >= 0);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../template@foo.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@foo.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@foo.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
changes = NULL; n_changes = 0; changes = NULL; n_changes = 0;
assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@.service", &state) >= 0); assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_INDIRECT);
assert_se(state == UNIT_FILE_INDIRECT);
assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED); assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED);
assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED); assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED);
assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED); assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED);
@ -509,7 +506,7 @@ TEST(template_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template-symlink@quux.service"), &changes, &n_changes) >= 0); assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template-symlink@quux.service"), &changes, &n_changes) >= 0);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../template@quux.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@quux.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@quux.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
@ -555,7 +552,7 @@ TEST(indirect) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("indirectc.service"), &changes, &n_changes) >= 0); assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("indirectc.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1); assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../indirectb.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/indirectb.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/indirectb.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/indirectb.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
@ -607,7 +604,7 @@ TEST(preset_and_list) {
assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("preset-yes.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("preset-yes.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0);
assert_se(n_changes == 1); assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../preset-yes.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/preset-yes.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/preset-yes.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/preset-yes.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
@ -644,7 +641,7 @@ TEST(preset_and_list) {
for (i = 0; i < n_changes; i++) { for (i = 0; i < n_changes; i++) {
if (changes[i].type_or_errno == UNIT_FILE_SYMLINK) { if (changes[i].type_or_errno == UNIT_FILE_SYMLINK) {
assert_se(streq(changes[i].source, "../preset-yes.service")); assert_se(streq(changes[i].source, "/usr/lib/systemd/system/preset-yes.service"));
assert_se(streq(changes[i].path, p)); assert_se(streq(changes[i].path, p));
} else } else
assert_se(changes[i].type_or_errno == UNIT_FILE_UNLINK); assert_se(changes[i].type_or_errno == UNIT_FILE_UNLINK);
@ -760,7 +757,7 @@ TEST(preset_order) {
assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("prefix-1.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0); assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("prefix-1.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0);
assert_se(n_changes == 1); assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../prefix-1.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/prefix-1.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/prefix-1.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/prefix-1.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
@ -869,8 +866,8 @@ TEST(with_dropin) {
assert_se(n_changes == 2); assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../with-dropin-1.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-1.service"));
assert_se(streq(changes[1].source, "../with-dropin-1.service")); assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-1.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-1.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-1.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-1.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-1.service");
@ -883,8 +880,8 @@ TEST(with_dropin) {
assert_se(n_changes == 2); assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../with-dropin-2.service")); assert_se(streq(changes[0].source, SYSTEM_CONFIG_UNIT_DIR"/with-dropin-2.service"));
assert_se(streq(changes[1].source, "../with-dropin-2.service")); assert_se(streq(changes[1].source, SYSTEM_CONFIG_UNIT_DIR"/with-dropin-2.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-2.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-2.service");
@ -897,8 +894,8 @@ TEST(with_dropin) {
assert_se(n_changes == 2); assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../with-dropin-3.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-3.service"));
assert_se(streq(changes[1].source, "../with-dropin-3.service")); assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-3.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-3.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-3.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-3.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-3.service");
@ -911,8 +908,8 @@ TEST(with_dropin) {
assert_se(n_changes == 2); assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../with-dropin-4a.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-4a.service"));
assert_se(streq(changes[1].source, "../with-dropin-4b.service")); assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-4b.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-4a.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-4a.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-4b.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-4b.service");
@ -978,8 +975,8 @@ TEST(with_dropin_template) {
assert_se(n_changes == 2); assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../with-dropin-1@instance-1.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-1@.service"));
assert_se(streq(changes[1].source, "../with-dropin-1@instance-1.service")); assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-1@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-1@instance-1.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-1@instance-1.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-1@instance-1.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-1@instance-1.service");
@ -991,8 +988,8 @@ TEST(with_dropin_template) {
assert_se(n_changes == 2); assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../with-dropin-2@instance-1.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-2@.service"));
assert_se(streq(changes[1].source, "../with-dropin-2@instance-1.service")); assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-2@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2@instance-1.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2@instance-1.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-2@instance-1.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-2@instance-1.service");
@ -1003,7 +1000,7 @@ TEST(with_dropin_template) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2@instance-2.service"), &changes, &n_changes) == 1); assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2@instance-2.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 1); assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../with-dropin-2@instance-2.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-2@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2@instance-2.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2@instance-2.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);
@ -1012,7 +1009,7 @@ TEST(with_dropin_template) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-3@.service"), &changes, &n_changes) == 1); assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-3@.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 1); assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK); assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(streq(changes[0].source, "../with-dropin-3@.service")); assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-3@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-3@instance-2.service"); p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-3@instance-2.service");
assert_se(streq(changes[0].path, p)); assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes); unit_file_changes_free(changes, n_changes);

View File

@ -90,27 +90,27 @@ EOF
( ! "$systemctl" --root="$root" enable test1 ) ( ! "$systemctl" --root="$root" enable test1 )
test -h "$root/etc/systemd/system/default.target.wants/test1.service" test -h "$root/etc/systemd/system/default.target.wants/test1.service"
test -h "$root/etc/systemd/system/special.target.requires/test1.service" test -h "$root/etc/systemd/system/special.target.requires/test1.service"
test -e "$root/etc/systemd/system/test1-goodalias.service" test ! -e "$root/etc/systemd/system/test1-goodalias.service"
test -h "$root/etc/systemd/system/test1-goodalias.service" test -h "$root/etc/systemd/system/test1-goodalias.service"
test ! -h "$root/etc/systemd/system/test1@badalias.service" test ! -e "$root/etc/systemd/system/test1@badalias.service"
test ! -h "$root/etc/systemd/system/test1-badalias.target" test ! -e "$root/etc/systemd/system/test1-badalias.target"
test ! -h "$root/etc/systemd/system/test1-badalias.socket" test ! -e "$root/etc/systemd/system/test1-badalias.socket"
test -e "$root/etc/systemd/system/test1-goodalias2.service"
test -h "$root/etc/systemd/system/test1-goodalias2.service" test -h "$root/etc/systemd/system/test1-goodalias2.service"
: '-------aliases in reeanble----------------------------------' : '-------aliases in reeanble----------------------------------'
( ! "$systemctl" --root="$root" reenable test1 ) ( ! "$systemctl" --root="$root" reenable test1 )
islink "$root/etc/systemd/system/default.target.wants/test1.service" "../test1.service" test -h "$root/etc/systemd/system/default.target.wants/test1.service"
islink "$root/etc/systemd/system/test1-goodalias.service" "test1.service" test ! -e "$root/etc/systemd/system/test1-goodalias.service"
test -h "$root/etc/systemd/system/test1-goodalias.service"
test ! -h "$root/etc/systemd/system/test1@badalias.service" test ! -e "$root/etc/systemd/system/test1@badalias.service"
test ! -h "$root/etc/systemd/system/test1-badalias.target" test ! -e "$root/etc/systemd/system/test1-badalias.target"
test ! -h "$root/etc/systemd/system/test1-badalias.socket" test ! -e "$root/etc/systemd/system/test1-badalias.socket"
"$systemctl" --root="$root" disable test1 "$systemctl" --root="$root" disable test1
test ! -h "$root/etc/systemd/system/default.target.wants/test1.service" test ! -e "$root/etc/systemd/system/default.target.wants/test1.service"
test ! -h "$root/etc/systemd/system/special.target.requires/test1.service" test ! -e "$root/etc/systemd/system/special.target.requires/test1.service"
test ! -h "$root/etc/systemd/system/test1-goodalias.service" test ! -e "$root/etc/systemd/system/test1-goodalias.service"
: '-------aliases when link already exists---------------------' : '-------aliases when link already exists---------------------'
cat >"$root/etc/systemd/system/test1a.service" <<EOF cat >"$root/etc/systemd/system/test1a.service" <<EOF
@ -201,17 +201,17 @@ test ! -e "$root/etc/systemd/system/link1.path"
: '-------link and enable--------------------------------------' : '-------link and enable--------------------------------------'
"$systemctl" --root="$root" enable '/link1.path' "$systemctl" --root="$root" enable '/link1.path'
islink "$root/etc/systemd/system/link1.path" "/link1.path" islink "$root/etc/systemd/system/link1.path" "/link1.path"
islink "$root/etc/systemd/system/paths.target.wants/link1.path" "../link1.path" islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
: '-------enable already linked same path----------------------' : '-------enable already linked same path----------------------'
"$systemctl" --root="$root" enable '/link1.path' "$systemctl" --root="$root" enable '/link1.path'
islink "$root/etc/systemd/system/link1.path" "/link1.path" islink "$root/etc/systemd/system/link1.path" "/link1.path"
islink "$root/etc/systemd/system/paths.target.wants/link1.path" "../link1.path" islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
: '-------enable already linked different path-----------------' : '-------enable already linked different path-----------------'
( ! "$systemctl" --root="$root" enable '/subdir/link1.path' ) ( ! "$systemctl" --root="$root" enable '/subdir/link1.path' )
islink "$root/etc/systemd/system/link1.path" "/link1.path" islink "$root/etc/systemd/system/link1.path" "/link1.path"
islink "$root/etc/systemd/system/paths.target.wants/link1.path" "../link1.path" islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
: '-------enable bad suffix------------------------------------' : '-------enable bad suffix------------------------------------'
cp "$root/link1.path" "$root/subdir/link1.suffix" cp "$root/link1.path" "$root/subdir/link1.suffix"
@ -240,11 +240,11 @@ test ! -h "$root/etc/systemd/system/paths.target.wants/link1.path"
"$systemctl" --root="$root" enable 'link1.path' "$systemctl" --root="$root" enable 'link1.path'
islink "$root/etc/systemd/system/link1.path" "/link1.path" islink "$root/etc/systemd/system/link1.path" "/link1.path"
islink "$root/etc/systemd/system/paths.target.wants/link1.path" "../link1.path" islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
"$systemctl" --root="$root" reenable 'link1.path' "$systemctl" --root="$root" reenable 'link1.path'
islink "$root/etc/systemd/system/link1.path" "/link1.path" islink "$root/etc/systemd/system/link1.path" "/link1.path"
islink "$root/etc/systemd/system/paths.target.wants/link1.path" "../link1.path" islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
: '-------manual link------------------------------------------' : '-------manual link------------------------------------------'
cat >"$root/link3.suffix" <<EOF cat >"$root/link3.suffix" <<EOF
@ -257,7 +257,7 @@ ln -s "/link3.suffix" "$root/etc/systemd/system/link3.service"
SYSTEMD_LOG_LEVEL=debug SYSTEMD_LOG_LOCATION=1 "$systemctl" --root="$root" enable 'link3.service' SYSTEMD_LOG_LEVEL=debug SYSTEMD_LOG_LOCATION=1 "$systemctl" --root="$root" enable 'link3.service'
islink "$root/etc/systemd/system/link3.service" "/link3.suffix" islink "$root/etc/systemd/system/link3.service" "/link3.suffix"
islink "$root/etc/systemd/system/services.target.wants/link3.service" "../link3.service" islink "$root/etc/systemd/system/services.target.wants/link3.service" "/link3.suffix"
SYSTEMD_LOG_LEVEL=debug SYSTEMD_LOG_LOCATION=1 "$systemctl" --root="$root" disable 'link3.service' SYSTEMD_LOG_LEVEL=debug SYSTEMD_LOG_LOCATION=1 "$systemctl" --root="$root" disable 'link3.service'
test ! -h "$root/etc/systemd/system/link3.service" test ! -h "$root/etc/systemd/system/link3.service"
@ -293,7 +293,7 @@ test ! -h "$root/etc/systemd/system/services.target.wants/link5-also.service"
"$systemctl" --root="$root" enable 'link5-also.service' "$systemctl" --root="$root" enable 'link5-also.service'
test ! -h "$root/etc/systemd/system/services.target.wants/link5.service" test ! -h "$root/etc/systemd/system/services.target.wants/link5.service"
islink "$root/etc/systemd/system/services.target.wants/link5-also.service" "../link5-also.service" islink "$root/etc/systemd/system/services.target.wants/link5-also.service" "/etc/systemd/system/link5-also.service"
: '-------template enablement----------------------------------' : '-------template enablement----------------------------------'
cat >"$root/etc/systemd/system/templ1@.service" <<EOF cat >"$root/etc/systemd/system/templ1@.service" <<EOF
@ -307,17 +307,17 @@ test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
"$systemctl" --root="$root" enable 'templ1@one.service' "$systemctl" --root="$root" enable 'templ1@one.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "../templ1@one.service" islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" enable 'templ1@two.service' "$systemctl" --root="$root" enable 'templ1@two.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "../templ1@one.service" islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "../templ1@two.service" islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" disable 'templ1@one.service' "$systemctl" --root="$root" disable 'templ1@one.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@one.service" test ! -h "$root/etc/systemd/system/services.target.wants/templ1@one.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "../templ1@two.service" islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" disable 'templ1@two.service' "$systemctl" --root="$root" disable 'templ1@two.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
@ -335,33 +335,33 @@ EOF
"$systemctl" --root="$root" enable 'templ1@.service' "$systemctl" --root="$root" enable 'templ1@.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "../templ1@.service" islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "../templ1@.service" islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" enable 'templ1@one.service' "$systemctl" --root="$root" enable 'templ1@one.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "../templ1@.service" islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "../templ1@.service" islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "../templ1@one.service" islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" "../templ1@one.service" islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" enable 'templ1@two.service' "$systemctl" --root="$root" enable 'templ1@two.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "../templ1@.service" islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "../templ1@.service" islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "../templ1@one.service" islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" "../templ1@one.service" islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "../templ1@two.service" islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@two.service" "../templ1@two.service" islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@two.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" disable 'templ1@one.service' "$systemctl" --root="$root" disable 'templ1@one.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service" test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "../templ1@.service" islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "../templ1@.service" islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service"
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@one.service" test ! -h "$root/etc/systemd/system/services.target.wants/templ1@one.service"
test ! -h "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" test ! -h "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service"
islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "../templ1@two.service" islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service"
islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@two.service" "../templ1@two.service" islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@two.service" "/etc/systemd/system/templ1@.service"
# disable remaining links here # disable remaining links here
"$systemctl" --root="$root" disable 'templ1@.service' "$systemctl" --root="$root" disable 'templ1@.service'
@ -400,18 +400,18 @@ RequiredBy=another-template@.target
EOF EOF
"$systemctl" --root="$root" enable 'templ2@.service' "$systemctl" --root="$root" enable 'templ2@.service'
islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "../templ2@.service" islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "/etc/systemd/system/templ2@.service"
"$systemctl" --root="$root" enable 'templ2@two.service' "$systemctl" --root="$root" enable 'templ2@two.service'
islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "../templ2@.service" islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "/etc/systemd/system/templ2@.service"
islink "$root/etc/systemd/system/another-template@.target.requires/templ2@two.service" "../templ2@two.service" islink "$root/etc/systemd/system/another-template@.target.requires/templ2@two.service" "/etc/systemd/system/templ2@.service"
"$systemctl" --root="$root" disable 'templ2@other.service' "$systemctl" --root="$root" disable 'templ2@other.service'
islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "../templ2@.service" islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "/etc/systemd/system/templ2@.service"
islink "$root/etc/systemd/system/another-template@.target.requires/templ2@two.service" "../templ2@two.service" islink "$root/etc/systemd/system/another-template@.target.requires/templ2@two.service" "/etc/systemd/system/templ2@.service"
"$systemctl" --root="$root" disable 'templ2@two.service' "$systemctl" --root="$root" disable 'templ2@two.service'
islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "../templ2@.service" islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "/etc/systemd/system/templ2@.service"
test ! -h "$root/etc/systemd/system/another-template@.target.requires/templ2@two.service" test ! -h "$root/etc/systemd/system/another-template@.target.requires/templ2@two.service"
"$systemctl" --root="$root" disable 'templ2@.service' "$systemctl" --root="$root" disable 'templ2@.service'
@ -433,8 +433,8 @@ EOF
test ! -h "$root/etc/systemd/system/link4.service" # this is our file test ! -h "$root/etc/systemd/system/link4.service" # this is our file
test ! -h "$root/etc/systemd/system/link4@.service" test ! -h "$root/etc/systemd/system/link4@.service"
test ! -h "$root/etc/systemd/system/link4@inst.service" test ! -h "$root/etc/systemd/system/link4@inst.service"
islink "$root/etc/systemd/system/link4alias.service" "link4.service" islink "$root/etc/systemd/system/link4alias.service" "/etc/systemd/system/link4.service"
islink "$root/etc/systemd/system/link4alias2.service" "link4.service" islink "$root/etc/systemd/system/link4alias2.service" "/etc/systemd/system/link4.service"
"$systemctl" --root="$root" disable 'link4.service' "$systemctl" --root="$root" disable 'link4.service'
test ! -h "$root/etc/systemd/system/link4.service" test ! -h "$root/etc/systemd/system/link4.service"
@ -453,8 +453,8 @@ EOF
# Apparently this works. I'm not sure what to think. # Apparently this works. I'm not sure what to think.
"$systemctl" --root="$root" enable '/etc/systemd/system/link4.service' "$systemctl" --root="$root" enable '/etc/systemd/system/link4.service'
test ! -h "$root/etc/systemd/system/link4.service" # this is our file test ! -h "$root/etc/systemd/system/link4.service" # this is our file
islink "$root/etc/systemd/system/link4alias.service" "link4.service" islink "$root/etc/systemd/system/link4alias.service" "/etc/systemd/system/link4.service"
islink "$root/etc/systemd/system/link4alias2.service" "link4.service" islink "$root/etc/systemd/system/link4alias2.service" "/etc/systemd/system/link4.service"
"$systemctl" --root="$root" disable '/etc/systemd/system/link4.service' "$systemctl" --root="$root" disable '/etc/systemd/system/link4.service'
test ! -h "$root/etc/systemd/system/link4.service" test ! -h "$root/etc/systemd/system/link4.service"
@ -472,8 +472,8 @@ EOF
"$systemctl" --root="$root" enable 'link5.service' "$systemctl" --root="$root" enable 'link5.service'
test ! -h "$root/etc/systemd/system/link5.service" # this is our file test ! -h "$root/etc/systemd/system/link5.service" # this is our file
islink "$root/etc/systemd/system/link5alias.service" "link5.service" islink "$root/etc/systemd/system/link5alias.service" "/etc/systemd/system/link5.service"
islink "$root/etc/systemd/system/link5alias2.service" "link5.service" islink "$root/etc/systemd/system/link5alias2.service" "/etc/systemd/system/link5.service"
"$systemctl" --root="$root" disable 'link5.service' "$systemctl" --root="$root" disable 'link5.service'
test ! -h "$root/etc/systemd/system/link5alias.service" test ! -h "$root/etc/systemd/system/link5alias.service"
@ -495,6 +495,10 @@ islink "$root/etc/systemd/system/link5copy.service" '/link5copy.service'
test ! -h "$root/etc/systemd/system/link5alias.service" test ! -h "$root/etc/systemd/system/link5alias.service"
test ! -h "$root/etc/systemd/system/link5alias2.service" test ! -h "$root/etc/systemd/system/link5alias2.service"
# FIXME: we must create link5alias2 and link5alias as relative links to link5.service
# When they are independent links to /link5.service, systemd doesn't know that
# they are aliases, because we do not follow symlinks outside of the search paths.
"$systemctl" --root="$root" disable 'link5copy.service' "$systemctl" --root="$root" disable 'link5copy.service'
test ! -h "$root/etc/systemd/system/link5copy.service" test ! -h "$root/etc/systemd/system/link5copy.service"
test ! -h "$root/etc/systemd/system/link5alias.service" test ! -h "$root/etc/systemd/system/link5alias.service"
@ -502,8 +506,8 @@ test ! -h "$root/etc/systemd/system/link5alias2.service"
"$systemctl" --root="$root" enable '/link5copy.service' "$systemctl" --root="$root" enable '/link5copy.service'
islink "$root/etc/systemd/system/link5copy.service" '/link5copy.service' islink "$root/etc/systemd/system/link5copy.service" '/link5copy.service'
islink "$root/etc/systemd/system/link5alias.service" 'link5copy.service' islink "$root/etc/systemd/system/link5alias.service" '/link5copy.service'
islink "$root/etc/systemd/system/link5alias2.service" 'link5copy.service' islink "$root/etc/systemd/system/link5alias2.service" '/link5copy.service'
"$systemctl" --root="$root" disable 'link5copy.service' "$systemctl" --root="$root" disable 'link5copy.service'
test ! -h "$root/etc/systemd/system/link5copy.service" test ! -h "$root/etc/systemd/system/link5copy.service"
@ -522,10 +526,10 @@ EOF
"$systemctl" --root="$root" enable 'link5@.path' "$systemctl" --root="$root" enable 'link5@.path'
test ! -h "$root/etc/systemd/system/link5@.path" # this is our file test ! -h "$root/etc/systemd/system/link5@.path" # this is our file
islink "$root/etc/systemd/system/target5@.target.wants/link5@.path" "../link5@.path" islink "$root/etc/systemd/system/target5@.target.wants/link5@.path" "/etc/systemd/system/link5@.path"
islink "$root/etc/systemd/system/target5@.target.requires/link5@.path" "../link5@.path" islink "$root/etc/systemd/system/target5@.target.requires/link5@.path" "/etc/systemd/system/link5@.path"
islink "$root/etc/systemd/system/target5@inst.target.wants/link5@.path" "../link5@.path" islink "$root/etc/systemd/system/target5@inst.target.wants/link5@.path" "/etc/systemd/system/link5@.path"
islink "$root/etc/systemd/system/target5@inst.target.requires/link5@.path" "../link5@.path" islink "$root/etc/systemd/system/target5@inst.target.requires/link5@.path" "/etc/systemd/system/link5@.path"
"$systemctl" --root="$root" disable 'link5@.path' "$systemctl" --root="$root" disable 'link5@.path'
test ! -h "$root/etc/systemd/system/link5@.path" # this is our file test ! -h "$root/etc/systemd/system/link5@.path" # this is our file
@ -564,7 +568,7 @@ check_alias() {
Alias=target@$1:%$1.socket Alias=target@$1:%$1.socket
EOF EOF
SYSTEMD_LOG_LEVEL=debug "$systemctl" --root="$root" enable 'some-some-link6@.socket' || return 1 SYSTEMD_LOG_LEVEL=debug "$systemctl" --root="$root" enable 'some-some-link6@.socket' || return 1
islink "$root/etc/systemd/system/target@$1:$2.socket" "some-some-link6@.socket" || return 2 islink "$root/etc/systemd/system/target@$1:$2.socket" "/etc/systemd/system/some-some-link6@.socket" || return 2
} }
# TODO: our architecture names are different than what uname -m returns. # TODO: our architecture names are different than what uname -m returns.
@ -670,10 +674,10 @@ RequiredBy=another-target2@.target
EOF EOF
"$systemctl" --root="$root" enable 'some-some-link7.socket' "$systemctl" --root="$root" enable 'some-some-link7.socket'
islink "$root/etc/systemd/system/target@some-some-link7.target.wants/some-some-link7.socket" "../some-some-link7.socket" islink "$root/etc/systemd/system/target@some-some-link7.target.wants/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
islink "$root/etc/systemd/system/another-target@.target.wants/some-some-link7.socket" "../some-some-link7.socket" islink "$root/etc/systemd/system/another-target@.target.wants/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
islink "$root/etc/systemd/system/target2@some-some-link7.target.requires/some-some-link7.socket" "../some-some-link7.socket" islink "$root/etc/systemd/system/target2@some-some-link7.target.requires/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
islink "$root/etc/systemd/system/another-target2@.target.requires/some-some-link7.socket" "../some-some-link7.socket" islink "$root/etc/systemd/system/another-target2@.target.requires/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
"$systemctl" --root="$root" disable 'some-some-link7.socket' "$systemctl" --root="$root" disable 'some-some-link7.socket'
test ! -h "$root/etc/systemd/system/target@some-some-link7.target.wants/some-some-link7.socket" test ! -h "$root/etc/systemd/system/target@some-some-link7.target.wants/some-some-link7.socket"