mirror of
https://git.proxmox.com/git/systemd
synced 2025-10-04 21:38:43 +00:00
New upstream version 252.6
This commit is contained in:
parent
2808577866
commit
82126c1317
@ -34,6 +34,9 @@ actions:
|
||||
- "sed -i '/%files ukify/d' .packit_rpm/systemd.spec"
|
||||
- "sed -i '/%files standalone-repart/d' .packit_rpm/systemd.spec"
|
||||
- "sed -i '/%files standalone-shutdown/d' .packit_rpm/systemd.spec"
|
||||
# These options were added in 253
|
||||
- "sed -i '/-Ddefault-timeout-sec/d' .packit_rpm/systemd.spec"
|
||||
- "sed -i '/-Ddefault-user-timeout-sec/d' .packit_rpm/systemd.spec"
|
||||
# [0] https://github.com/mesonbuild/meson/issues/7360
|
||||
# [1] https://github.com/systemd/systemd/pull/18908#issuecomment-792250110
|
||||
- 'sed -i "/^CONFIGURE_OPTS=(/a--werror" .packit_rpm/systemd.spec'
|
||||
|
4
README
4
README
@ -215,7 +215,9 @@ REQUIREMENTS:
|
||||
During runtime, you need the following additional
|
||||
dependencies:
|
||||
|
||||
util-linux >= v2.27.1 required
|
||||
util-linux >= v2.27.1 required (including but not limited to: mount,
|
||||
umount, swapon, swapoff, sulogin,
|
||||
agetty, fsck)
|
||||
dbus >= 1.4.0 (strictly speaking optional, but recommended)
|
||||
NOTE: If using dbus < 1.9.18, you should override the default
|
||||
policy directory (--with-dbuspolicydir=/etc/dbus-1/system.d).
|
||||
|
@ -1,18 +1,24 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
in_files = [
|
||||
'systemd.bg.catalog',
|
||||
'systemd.be.catalog',
|
||||
'systemd.be@latin.catalog',
|
||||
'systemd.bg.catalog',
|
||||
'systemd.catalog',
|
||||
'systemd.da.catalog',
|
||||
'systemd.de.catalog',
|
||||
'systemd.fr.catalog',
|
||||
'systemd.hr.catalog',
|
||||
'systemd.hu.catalog',
|
||||
'systemd.it.catalog',
|
||||
'systemd.ko.catalog',
|
||||
'systemd.pl.catalog',
|
||||
'systemd.pt_BR.catalog',
|
||||
'systemd.ru.catalog',
|
||||
'systemd.sr.catalog',
|
||||
'systemd.zh_CN.catalog',
|
||||
'systemd.zh_TW.catalog',
|
||||
'systemd.catalog']
|
||||
]
|
||||
|
||||
support_url = get_option('support-url')
|
||||
support_sed = 's~%SUPPORT_URL%~@0@~'.format(support_url)
|
||||
|
@ -298,9 +298,9 @@ care should be taken to avoid naming conflicts. `systemd` (and in particular
|
||||
you cannot link them to each other.
|
||||
|
||||
4. Do not pretend that the real VTs are available in the container. The VT
|
||||
subsystem consists of all the devices `/dev/tty*`, `/dev/vcs*`, `/dev/vcsa*`
|
||||
plus their `sysfs` counterparts. They speak specific `ioctl()`s and
|
||||
understand specific escape sequences, that other ptys don't understand.
|
||||
subsystem consists of all the devices `/dev/tty[0-9]*`, `/dev/vcs*`,
|
||||
`/dev/vcsa*` plus their `sysfs` counterparts. They speak specific `ioctl()`s
|
||||
and understand specific escape sequences, that other ptys don't understand.
|
||||
Hence, it is explicitly not OK to mount a pty to `/dev/tty1`, `/dev/tty2`,
|
||||
`/dev/tty3`. This is explicitly not supported.
|
||||
|
||||
|
2639
hwdb.d/20-OUI.hwdb
2639
hwdb.d/20-OUI.hwdb
File diff suppressed because it is too large
Load Diff
@ -66,6 +66,9 @@ acpi:BOSC*:
|
||||
acpi:BRCM*:
|
||||
ID_VENDOR_FROM_DATABASE=Broadcom Corporation
|
||||
|
||||
acpi:CIXH*:
|
||||
ID_VENDOR_FROM_DATABASE=Cix Technology (Shanghai) Co., Ltd.
|
||||
|
||||
acpi:CMHR*:
|
||||
ID_VENDOR_FROM_DATABASE=COMHEAR, INC.
|
||||
|
||||
@ -105,6 +108,9 @@ acpi:ELAS*:
|
||||
acpi:ESSX*:
|
||||
ID_VENDOR_FROM_DATABASE=Everest Semiconductor Co., Ltd.
|
||||
|
||||
acpi:ETDS*:
|
||||
ID_VENDOR_FROM_DATABASE=EyeTech Digital Systems
|
||||
|
||||
acpi:EXAR*:
|
||||
ID_VENDOR_FROM_DATABASE=Exar Corporation
|
||||
|
||||
@ -213,6 +219,9 @@ acpi:LTSC*:
|
||||
acpi:MCHP*:
|
||||
ID_VENDOR_FROM_DATABASE=Microchip Technology Inc
|
||||
|
||||
acpi:MCRY*:
|
||||
ID_VENDOR_FROM_DATABASE=Micro Crystal AG
|
||||
|
||||
acpi:MIPI*:
|
||||
ID_VENDOR_FROM_DATABASE=MIPI Alliance
|
||||
|
||||
@ -2253,6 +2262,9 @@ acpi:DYN*:
|
||||
acpi:DYX*:
|
||||
ID_VENDOR_FROM_DATABASE=Dynax Electronics (HK) Ltd
|
||||
|
||||
acpi:EAC*:
|
||||
ID_VENDOR_FROM_DATABASE=Emotiva Audio Corp.
|
||||
|
||||
acpi:EAG*:
|
||||
ID_VENDOR_FROM_DATABASE=ELTEC Elektronik AG
|
||||
|
||||
@ -6264,6 +6276,9 @@ acpi:SGL*:
|
||||
acpi:SGM*:
|
||||
ID_VENDOR_FROM_DATABASE=SAGEM
|
||||
|
||||
acpi:SGN*:
|
||||
ID_VENDOR_FROM_DATABASE=Shenzhen Soogeen Electronics Co., LTD.
|
||||
|
||||
acpi:SGO*:
|
||||
ID_VENDOR_FROM_DATABASE=Logos Design A/S
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- 20-acpi-vendor.hwdb.base 2022-10-31 11:15:33.457268398 +0000
|
||||
+++ 20-acpi-vendor.hwdb 2022-10-31 11:15:33.461268485 +0000
|
||||
--- 20-acpi-vendor.hwdb.base 2023-02-15 18:03:45.791408751 +0000
|
||||
+++ 20-acpi-vendor.hwdb 2023-02-15 18:03:45.799408909 +0000
|
||||
@@ -3,6 +3,8 @@
|
||||
# Data imported from:
|
||||
# https://uefi.org/uefi-pnp-export
|
||||
@ -19,7 +19,7 @@
|
||||
acpi:AMDI*:
|
||||
ID_VENDOR_FROM_DATABASE=AMD
|
||||
|
||||
@@ -343,6 +342,9 @@
|
||||
@@ -352,6 +351,9 @@
|
||||
acpi:AAA*:
|
||||
ID_VENDOR_FROM_DATABASE=Avolites Ltd
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
acpi:AAE*:
|
||||
ID_VENDOR_FROM_DATABASE=Anatek Electronics Inc.
|
||||
|
||||
@@ -370,6 +372,9 @@
|
||||
@@ -379,6 +381,9 @@
|
||||
acpi:ABO*:
|
||||
ID_VENDOR_FROM_DATABASE=D-Link Systems Inc
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
acpi:ABS*:
|
||||
ID_VENDOR_FROM_DATABASE=Abaco Systems, Inc.
|
||||
|
||||
@@ -415,7 +420,7 @@
|
||||
@@ -424,7 +429,7 @@
|
||||
acpi:ACO*:
|
||||
ID_VENDOR_FROM_DATABASE=Allion Computer Inc.
|
||||
|
||||
@ -48,7 +48,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=Aspen Tech Inc
|
||||
|
||||
acpi:ACR*:
|
||||
@@ -691,6 +696,9 @@
|
||||
@@ -700,6 +705,9 @@
|
||||
acpi:AMT*:
|
||||
ID_VENDOR_FROM_DATABASE=AMT International Industry
|
||||
|
||||
@ -58,7 +58,7 @@
|
||||
acpi:AMX*:
|
||||
ID_VENDOR_FROM_DATABASE=AMX LLC
|
||||
|
||||
@@ -739,6 +747,9 @@
|
||||
@@ -748,6 +756,9 @@
|
||||
acpi:AOA*:
|
||||
ID_VENDOR_FROM_DATABASE=AOpen Inc.
|
||||
|
||||
@ -68,7 +68,7 @@
|
||||
acpi:AOE*:
|
||||
ID_VENDOR_FROM_DATABASE=Advanced Optics Electronics, Inc.
|
||||
|
||||
@@ -748,6 +759,9 @@
|
||||
@@ -757,6 +768,9 @@
|
||||
acpi:AOT*:
|
||||
ID_VENDOR_FROM_DATABASE=Alcatel
|
||||
|
||||
@ -78,7 +78,7 @@
|
||||
acpi:APC*:
|
||||
ID_VENDOR_FROM_DATABASE=American Power Conversion
|
||||
|
||||
@@ -926,7 +940,7 @@
|
||||
@@ -935,7 +949,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=ALPS ALPINE CO., LTD.
|
||||
|
||||
acpi:AUO*:
|
||||
@ -87,7 +87,7 @@
|
||||
|
||||
acpi:AUR*:
|
||||
ID_VENDOR_FROM_DATABASE=Aureal Semiconductor
|
||||
@@ -1006,6 +1020,9 @@
|
||||
@@ -1015,6 +1029,9 @@
|
||||
acpi:AXE*:
|
||||
ID_VENDOR_FROM_DATABASE=Axell Corporation
|
||||
|
||||
@ -97,7 +97,7 @@
|
||||
acpi:AXI*:
|
||||
ID_VENDOR_FROM_DATABASE=American Magnetics
|
||||
|
||||
@@ -1162,6 +1179,9 @@
|
||||
@@ -1171,6 +1188,9 @@
|
||||
acpi:BML*:
|
||||
ID_VENDOR_FROM_DATABASE=BIOMED Lab
|
||||
|
||||
@ -107,7 +107,7 @@
|
||||
acpi:BMS*:
|
||||
ID_VENDOR_FROM_DATABASE=BIOMEDISYS
|
||||
|
||||
@@ -1174,6 +1194,9 @@
|
||||
@@ -1183,6 +1203,9 @@
|
||||
acpi:BNO*:
|
||||
ID_VENDOR_FROM_DATABASE=Bang & Olufsen
|
||||
|
||||
@ -117,7 +117,7 @@
|
||||
acpi:BNS*:
|
||||
ID_VENDOR_FROM_DATABASE=Boulder Nonlinear Systems
|
||||
|
||||
@@ -1417,6 +1440,9 @@
|
||||
@@ -1426,6 +1449,9 @@
|
||||
acpi:CHA*:
|
||||
ID_VENDOR_FROM_DATABASE=Chase Research PLC
|
||||
|
||||
@ -127,7 +127,7 @@
|
||||
acpi:CHD*:
|
||||
ID_VENDOR_FROM_DATABASE=ChangHong Electric Co.,Ltd
|
||||
|
||||
@@ -1579,6 +1605,9 @@
|
||||
@@ -1588,6 +1614,9 @@
|
||||
acpi:COD*:
|
||||
ID_VENDOR_FROM_DATABASE=CODAN Pty. Ltd.
|
||||
|
||||
@ -137,7 +137,7 @@
|
||||
acpi:COI*:
|
||||
ID_VENDOR_FROM_DATABASE=Codec Inc.
|
||||
|
||||
@@ -1988,7 +2017,7 @@
|
||||
@@ -1997,7 +2026,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=Dragon Information Technology
|
||||
|
||||
acpi:DJE*:
|
||||
@ -146,7 +146,7 @@
|
||||
|
||||
acpi:DJP*:
|
||||
ID_VENDOR_FROM_DATABASE=Maygay Machines, Ltd
|
||||
@@ -2326,6 +2355,9 @@
|
||||
@@ -2338,6 +2367,9 @@
|
||||
acpi:EIN*:
|
||||
ID_VENDOR_FROM_DATABASE=Elegant Invention
|
||||
|
||||
@ -156,7 +156,7 @@
|
||||
acpi:EKA*:
|
||||
ID_VENDOR_FROM_DATABASE=MagTek Inc.
|
||||
|
||||
@@ -2596,6 +2628,9 @@
|
||||
@@ -2608,6 +2640,9 @@
|
||||
acpi:FCG*:
|
||||
ID_VENDOR_FROM_DATABASE=First International Computer Ltd
|
||||
|
||||
@ -166,7 +166,7 @@
|
||||
acpi:FCS*:
|
||||
ID_VENDOR_FROM_DATABASE=Focus Enhancements, Inc.
|
||||
|
||||
@@ -2972,7 +3007,7 @@
|
||||
@@ -2984,7 +3019,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=General Standards Corporation
|
||||
|
||||
acpi:GSM*:
|
||||
@ -175,7 +175,7 @@
|
||||
|
||||
acpi:GSN*:
|
||||
ID_VENDOR_FROM_DATABASE=Grandstream Networks, Inc.
|
||||
@@ -3082,6 +3117,9 @@
|
||||
@@ -3094,6 +3129,9 @@
|
||||
acpi:HEC*:
|
||||
ID_VENDOR_FROM_DATABASE=Hisense Electric Co., Ltd.
|
||||
|
||||
@ -185,7 +185,7 @@
|
||||
acpi:HEL*:
|
||||
ID_VENDOR_FROM_DATABASE=Hitachi Micro Systems Europe Ltd
|
||||
|
||||
@@ -3214,6 +3252,9 @@
|
||||
@@ -3226,6 +3264,9 @@
|
||||
acpi:HSD*:
|
||||
ID_VENDOR_FROM_DATABASE=HannStar Display Corp
|
||||
|
||||
@ -195,7 +195,7 @@
|
||||
acpi:HSM*:
|
||||
ID_VENDOR_FROM_DATABASE=AT&T Microelectronics
|
||||
|
||||
@@ -3340,6 +3381,9 @@
|
||||
@@ -3352,6 +3393,9 @@
|
||||
acpi:ICI*:
|
||||
ID_VENDOR_FROM_DATABASE=Infotek Communication Inc
|
||||
|
||||
@ -205,7 +205,7 @@
|
||||
acpi:ICM*:
|
||||
ID_VENDOR_FROM_DATABASE=Intracom SA
|
||||
|
||||
@@ -3436,6 +3480,9 @@
|
||||
@@ -3448,6 +3492,9 @@
|
||||
acpi:IKE*:
|
||||
ID_VENDOR_FROM_DATABASE=Ikegami Tsushinki Co. Ltd.
|
||||
|
||||
@ -215,7 +215,7 @@
|
||||
acpi:IKS*:
|
||||
ID_VENDOR_FROM_DATABASE=Ikos Systems Inc
|
||||
|
||||
@@ -3484,6 +3531,9 @@
|
||||
@@ -3496,6 +3543,9 @@
|
||||
acpi:IMX*:
|
||||
ID_VENDOR_FROM_DATABASE=arpara Technology Co., Ltd.
|
||||
|
||||
@ -225,7 +225,7 @@
|
||||
acpi:INA*:
|
||||
ID_VENDOR_FROM_DATABASE=Inventec Corporation
|
||||
|
||||
@@ -4003,6 +4053,9 @@
|
||||
@@ -4015,6 +4065,9 @@
|
||||
acpi:LAN*:
|
||||
ID_VENDOR_FROM_DATABASE=Sodeman Lancom Inc
|
||||
|
||||
@ -235,7 +235,7 @@
|
||||
acpi:LAS*:
|
||||
ID_VENDOR_FROM_DATABASE=LASAT Comm. A/S
|
||||
|
||||
@@ -4051,6 +4104,9 @@
|
||||
@@ -4063,6 +4116,9 @@
|
||||
acpi:LED*:
|
||||
ID_VENDOR_FROM_DATABASE=Long Engineering Design Inc
|
||||
|
||||
@ -245,7 +245,7 @@
|
||||
acpi:LEG*:
|
||||
ID_VENDOR_FROM_DATABASE=Legerity, Inc
|
||||
|
||||
@@ -4069,6 +4125,9 @@
|
||||
@@ -4081,6 +4137,9 @@
|
||||
acpi:LGD*:
|
||||
ID_VENDOR_FROM_DATABASE=LG Display
|
||||
|
||||
@ -255,7 +255,7 @@
|
||||
acpi:LGI*:
|
||||
ID_VENDOR_FROM_DATABASE=Logitech Inc
|
||||
|
||||
@@ -4126,6 +4185,9 @@
|
||||
@@ -4138,6 +4197,9 @@
|
||||
acpi:LND*:
|
||||
ID_VENDOR_FROM_DATABASE=Land Computer Company Ltd
|
||||
|
||||
@ -265,7 +265,7 @@
|
||||
acpi:LNK*:
|
||||
ID_VENDOR_FROM_DATABASE=Link Tech Inc
|
||||
|
||||
@@ -4160,7 +4222,7 @@
|
||||
@@ -4172,7 +4234,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=Design Technology
|
||||
|
||||
acpi:LPL*:
|
||||
@ -274,7 +274,7 @@
|
||||
|
||||
acpi:LSC*:
|
||||
ID_VENDOR_FROM_DATABASE=LifeSize Communications
|
||||
@@ -4336,6 +4398,9 @@
|
||||
@@ -4348,6 +4410,9 @@
|
||||
acpi:MCX*:
|
||||
ID_VENDOR_FROM_DATABASE=Millson Custom Solutions Inc.
|
||||
|
||||
@ -284,7 +284,7 @@
|
||||
acpi:MDA*:
|
||||
ID_VENDOR_FROM_DATABASE=Media4 Inc
|
||||
|
||||
@@ -4576,6 +4641,9 @@
|
||||
@@ -4588,6 +4653,9 @@
|
||||
acpi:MOM*:
|
||||
ID_VENDOR_FROM_DATABASE=Momentum Data Systems
|
||||
|
||||
@ -294,7 +294,7 @@
|
||||
acpi:MOS*:
|
||||
ID_VENDOR_FROM_DATABASE=Moses Corporation
|
||||
|
||||
@@ -4813,6 +4881,9 @@
|
||||
@@ -4825,6 +4893,9 @@
|
||||
acpi:NAL*:
|
||||
ID_VENDOR_FROM_DATABASE=Network Alchemy
|
||||
|
||||
@ -304,7 +304,7 @@
|
||||
acpi:NAT*:
|
||||
ID_VENDOR_FROM_DATABASE=NaturalPoint Inc.
|
||||
|
||||
@@ -5347,6 +5418,9 @@
|
||||
@@ -5359,6 +5430,9 @@
|
||||
acpi:PCX*:
|
||||
ID_VENDOR_FROM_DATABASE=PC Xperten
|
||||
|
||||
@ -314,7 +314,7 @@
|
||||
acpi:PDM*:
|
||||
ID_VENDOR_FROM_DATABASE=Psion Dacom Plc.
|
||||
|
||||
@@ -5410,9 +5484,6 @@
|
||||
@@ -5422,9 +5496,6 @@
|
||||
acpi:PHE*:
|
||||
ID_VENDOR_FROM_DATABASE=Philips Medical Systems Boeblingen GmbH
|
||||
|
||||
@ -324,7 +324,7 @@
|
||||
acpi:PHL*:
|
||||
ID_VENDOR_FROM_DATABASE=Philips Consumer Electronics Company
|
||||
|
||||
@@ -5503,9 +5574,6 @@
|
||||
@@ -5515,9 +5586,6 @@
|
||||
acpi:PNL*:
|
||||
ID_VENDOR_FROM_DATABASE=Panelview, Inc.
|
||||
|
||||
@ -334,7 +334,7 @@
|
||||
acpi:PNR*:
|
||||
ID_VENDOR_FROM_DATABASE=Planar Systems, Inc.
|
||||
|
||||
@@ -5971,9 +6039,6 @@
|
||||
@@ -5983,9 +6051,6 @@
|
||||
acpi:RTI*:
|
||||
ID_VENDOR_FROM_DATABASE=Rancho Tech Inc
|
||||
|
||||
@ -344,7 +344,7 @@
|
||||
acpi:RTL*:
|
||||
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd
|
||||
|
||||
@@ -6145,9 +6210,6 @@
|
||||
@@ -6157,9 +6222,6 @@
|
||||
acpi:SEE*:
|
||||
ID_VENDOR_FROM_DATABASE=SeeColor Corporation
|
||||
|
||||
@ -354,7 +354,7 @@
|
||||
acpi:SEI*:
|
||||
ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc
|
||||
|
||||
@@ -6622,6 +6684,9 @@
|
||||
@@ -6637,6 +6699,9 @@
|
||||
acpi:SVD*:
|
||||
ID_VENDOR_FROM_DATABASE=SVD Computer
|
||||
|
||||
@ -364,7 +364,7 @@
|
||||
acpi:SVI*:
|
||||
ID_VENDOR_FROM_DATABASE=Sun Microsystems
|
||||
|
||||
@@ -6706,6 +6771,9 @@
|
||||
@@ -6721,6 +6786,9 @@
|
||||
acpi:SZM*:
|
||||
ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd
|
||||
|
||||
@ -374,7 +374,7 @@
|
||||
acpi:TAA*:
|
||||
ID_VENDOR_FROM_DATABASE=Tandberg
|
||||
|
||||
@@ -6796,6 +6864,9 @@
|
||||
@@ -6811,6 +6879,9 @@
|
||||
acpi:TDG*:
|
||||
ID_VENDOR_FROM_DATABASE=Six15 Technologies
|
||||
|
||||
@ -384,7 +384,7 @@
|
||||
acpi:TDM*:
|
||||
ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc
|
||||
|
||||
@@ -6838,6 +6909,9 @@
|
||||
@@ -6853,6 +6924,9 @@
|
||||
acpi:TEV*:
|
||||
ID_VENDOR_FROM_DATABASE=Televés, S.A.
|
||||
|
||||
@ -394,7 +394,7 @@
|
||||
acpi:TEZ*:
|
||||
ID_VENDOR_FROM_DATABASE=Tech Source Inc.
|
||||
|
||||
@@ -6964,9 +7038,6 @@
|
||||
@@ -6979,9 +7053,6 @@
|
||||
acpi:TNC*:
|
||||
ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd
|
||||
|
||||
@ -404,7 +404,7 @@
|
||||
acpi:TNM*:
|
||||
ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA
|
||||
|
||||
@@ -7276,14 +7347,14 @@
|
||||
@@ -7291,14 +7362,14 @@
|
||||
acpi:UNC*:
|
||||
ID_VENDOR_FROM_DATABASE=Unisys Corporation
|
||||
|
||||
@ -425,7 +425,7 @@
|
||||
|
||||
acpi:UNI*:
|
||||
ID_VENDOR_FROM_DATABASE=Uniform Industry Corp.
|
||||
@@ -7318,6 +7389,9 @@
|
||||
@@ -7333,6 +7404,9 @@
|
||||
acpi:USA*:
|
||||
ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG
|
||||
|
||||
@ -435,7 +435,7 @@
|
||||
acpi:USD*:
|
||||
ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
|
||||
|
||||
@@ -7576,9 +7650,6 @@
|
||||
@@ -7591,9 +7665,6 @@
|
||||
acpi:WAL*:
|
||||
ID_VENDOR_FROM_DATABASE=Wave Access
|
||||
|
||||
@ -445,7 +445,7 @@
|
||||
acpi:WAV*:
|
||||
ID_VENDOR_FROM_DATABASE=Wavephore
|
||||
|
||||
@@ -7706,7 +7777,7 @@
|
||||
@@ -7721,7 +7792,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=WyreStorm Technologies LLC
|
||||
|
||||
acpi:WYS*:
|
||||
@ -454,7 +454,7 @@
|
||||
|
||||
acpi:WYT*:
|
||||
ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
|
||||
@@ -7720,9 +7791,6 @@
|
||||
@@ -7735,9 +7806,6 @@
|
||||
acpi:XDM*:
|
||||
ID_VENDOR_FROM_DATABASE=XDM Ltd.
|
||||
|
||||
@ -464,7 +464,7 @@
|
||||
acpi:XES*:
|
||||
ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
|
||||
|
||||
@@ -7753,9 +7821,6 @@
|
||||
@@ -7768,9 +7836,6 @@
|
||||
acpi:XNT*:
|
||||
ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
|
||||
|
||||
@ -474,7 +474,7 @@
|
||||
acpi:XQU*:
|
||||
ID_VENDOR_FROM_DATABASE=SHANGHAI SVA-DAV ELECTRONICS CO., LTD
|
||||
|
||||
@@ -7822,6 +7887,9 @@
|
||||
@@ -7837,6 +7902,9 @@
|
||||
acpi:ZBX*:
|
||||
ID_VENDOR_FROM_DATABASE=Zebax Technologies
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -14,6 +14,9 @@ usb:v0002*
|
||||
usb:v0002p0002*
|
||||
ID_MODEL_FROM_DATABASE=passport00
|
||||
|
||||
usb:v0002p7007*
|
||||
ID_MODEL_FROM_DATABASE=HPRT XT300
|
||||
|
||||
usb:v0003*
|
||||
ID_VENDOR_FROM_DATABASE=Club Mac
|
||||
|
||||
@ -26,6 +29,15 @@ usb:v0011*
|
||||
usb:v0011p7788*
|
||||
ID_MODEL_FROM_DATABASE=counterfeit flash drive
|
||||
|
||||
usb:v0040*
|
||||
ID_VENDOR_FROM_DATABASE=Anyware Corporation
|
||||
|
||||
usb:v0040p073D*
|
||||
ID_MODEL_FROM_DATABASE=Mini Multimedia 2.4GHz Wireless Keyboard with Touch Pad
|
||||
|
||||
usb:v0042*
|
||||
ID_VENDOR_FROM_DATABASE=DMT
|
||||
|
||||
usb:v0053*
|
||||
ID_VENDOR_FROM_DATABASE=Planex
|
||||
|
||||
@ -122,6 +134,9 @@ usb:v0218*
|
||||
usb:v0218p0301*
|
||||
ID_MODEL_FROM_DATABASE=MIDI Port
|
||||
|
||||
usb:v0231*
|
||||
ID_VENDOR_FROM_DATABASE=Sonuus Limited
|
||||
|
||||
usb:v02AD*
|
||||
ID_VENDOR_FROM_DATABASE=HUMAX Co., Ltd.
|
||||
|
||||
@ -158,6 +173,12 @@ usb:v03C3*
|
||||
usb:v03C3p120E*
|
||||
ID_MODEL_FROM_DATABASE=ASI120MC-S Planetary Camera
|
||||
|
||||
usb:v03C3p1F10*
|
||||
ID_MODEL_FROM_DATABASE=EFF
|
||||
|
||||
usb:v03C3p294F*
|
||||
ID_MODEL_FROM_DATABASE=ASI294MC Pro
|
||||
|
||||
usb:v03D9*
|
||||
ID_VENDOR_FROM_DATABASE=Shenzhen Sinote Tech-Electron Co., Ltd
|
||||
|
||||
@ -624,7 +645,7 @@ usb:v03F0p0223*
|
||||
ID_MODEL_FROM_DATABASE=Digital Drive Flash Reader
|
||||
|
||||
usb:v03F0p022A*
|
||||
ID_MODEL_FROM_DATABASE=Laserjet CP1525nw
|
||||
ID_MODEL_FROM_DATABASE=LaserJet CP1525nw/x
|
||||
|
||||
usb:v03F0p0241*
|
||||
ID_MODEL_FROM_DATABASE=Link-5 micro dongle
|
||||
@ -773,6 +794,9 @@ usb:v03F0p0811*
|
||||
usb:v03F0p0817*
|
||||
ID_MODEL_FROM_DATABASE=LaserJet 3300
|
||||
|
||||
usb:v03F0p0853*
|
||||
ID_MODEL_FROM_DATABASE=ENVY 5000 series
|
||||
|
||||
usb:v03F0p0901*
|
||||
ID_MODEL_FROM_DATABASE=ScanJet 2300c
|
||||
|
||||
@ -1313,6 +1337,9 @@ usb:v03F0p2D11*
|
||||
usb:v03F0p2D17*
|
||||
ID_MODEL_FROM_DATABASE=Printing Support
|
||||
|
||||
usb:v03F0p2D2A*
|
||||
ID_MODEL_FROM_DATABASE=LaserJet Pro MFP M225dw
|
||||
|
||||
usb:v03F0p2E11*
|
||||
ID_MODEL_FROM_DATABASE=PSC 1000
|
||||
|
||||
@ -1508,6 +1535,9 @@ usb:v03F0p3D17*
|
||||
usb:v03F0p3E02*
|
||||
ID_MODEL_FROM_DATABASE=PhotoSmart 7550
|
||||
|
||||
usb:v03F0p3E07*
|
||||
ID_MODEL_FROM_DATABASE=x755w Flash Drive
|
||||
|
||||
usb:v03F0p3E17*
|
||||
ID_MODEL_FROM_DATABASE=LaserJet P1006
|
||||
|
||||
@ -1598,6 +1628,9 @@ usb:v03F0p4717*
|
||||
usb:v03F0p4811*
|
||||
ID_MODEL_FROM_DATABASE=PSC 1600
|
||||
|
||||
usb:v03F0p484A*
|
||||
ID_MODEL_FROM_DATABASE=Elite Dock G4
|
||||
|
||||
usb:v03F0p4911*
|
||||
ID_MODEL_FROM_DATABASE=PSC 2350
|
||||
|
||||
@ -2357,8 +2390,11 @@ usb:v0403p6014*
|
||||
usb:v0403p6015*
|
||||
ID_MODEL_FROM_DATABASE=Bridge(I2C/SPI/UART/FIFO)
|
||||
|
||||
usb:v0403p601E*
|
||||
ID_MODEL_FROM_DATABASE=FT600 16-bit FIFO IC
|
||||
|
||||
usb:v0403p601F*
|
||||
ID_MODEL_FROM_DATABASE=Myriad-RF LimeSDR-Mini
|
||||
ID_MODEL_FROM_DATABASE=FT601 32-bit FIFO IC
|
||||
|
||||
usb:v0403p6EE0*
|
||||
ID_MODEL_FROM_DATABASE=EZO Carrier Board
|
||||
@ -2627,6 +2663,9 @@ usb:v0403pD491*
|
||||
usb:v0403pD578*
|
||||
ID_MODEL_FROM_DATABASE=Accesio USB-COM-4SM
|
||||
|
||||
usb:v0403pD678*
|
||||
ID_MODEL_FROM_DATABASE=GammaScout
|
||||
|
||||
usb:v0403pD6F8*
|
||||
ID_MODEL_FROM_DATABASE=UNI Black BOX
|
||||
|
||||
@ -3554,9 +3593,15 @@ usb:v040D*
|
||||
usb:v040Dp3184*
|
||||
ID_MODEL_FROM_DATABASE=VNT VT6656 USB-802.11 Wireless LAN Adapter
|
||||
|
||||
usb:v040Dp340B*
|
||||
ID_MODEL_FROM_DATABASE=FX-Audio DAC-X6
|
||||
|
||||
usb:v040Dp340F*
|
||||
ID_MODEL_FROM_DATABASE=Audinst HUD-mx2
|
||||
|
||||
usb:v040Dp6204*
|
||||
ID_MODEL_FROM_DATABASE=Vectro VT6204 IDE bridge
|
||||
|
||||
usb:v040Dp6205*
|
||||
ID_MODEL_FROM_DATABASE=USB 2.0 Card Reader
|
||||
|
||||
@ -3966,7 +4011,7 @@ usb:v0416p7723*
|
||||
ID_MODEL_FROM_DATABASE=SD Card Reader
|
||||
|
||||
usb:v0416pB23C*
|
||||
ID_MODEL_FROM_DATABASE=KT108 keyboard
|
||||
ID_MODEL_FROM_DATABASE=Gaming Keyboard
|
||||
|
||||
usb:v0416pC141*
|
||||
ID_MODEL_FROM_DATABASE=Barcode Scanner
|
||||
@ -4088,6 +4133,9 @@ usb:v041Ep3030*
|
||||
usb:v041Ep3040*
|
||||
ID_MODEL_FROM_DATABASE=SoundBlaster Live! 24-bit External SB0490
|
||||
|
||||
usb:v041Ep3042*
|
||||
ID_MODEL_FROM_DATABASE=Sound Blaster X-Fi Surround 5.1
|
||||
|
||||
usb:v041Ep3060*
|
||||
ID_MODEL_FROM_DATABASE=Sound Blaster Audigy 2 ZS External
|
||||
|
||||
@ -4136,6 +4184,9 @@ usb:v041Ep3F04*
|
||||
usb:v041Ep3F07*
|
||||
ID_MODEL_FROM_DATABASE=E-Mu Xmidi 1x1
|
||||
|
||||
usb:v041Ep3F0A*
|
||||
ID_MODEL_FROM_DATABASE=E-Mu Tracker Pre
|
||||
|
||||
usb:v041Ep3F0E*
|
||||
ID_MODEL_FROM_DATABASE=Xmidi 1x1 Tab
|
||||
|
||||
@ -4320,7 +4371,7 @@ usb:v041Ep4095*
|
||||
ID_MODEL_FROM_DATABASE=Live! Cam Sync HD [VF0770]
|
||||
|
||||
usb:v041Ep4097*
|
||||
ID_MODEL_FROM_DATABASE=Live! Cam Chat HD [VF0700]
|
||||
ID_MODEL_FROM_DATABASE=Live! Cam Chat HD [VF0700/VF0790]
|
||||
|
||||
usb:v041Ep4099*
|
||||
ID_MODEL_FROM_DATABASE=Creative VF0800 [RealSense Camera SR300]
|
||||
@ -4943,6 +4994,9 @@ usb:v0424*
|
||||
usb:v0424p0001*
|
||||
ID_MODEL_FROM_DATABASE=Integrated Hub
|
||||
|
||||
usb:v0424p0007*
|
||||
ID_MODEL_FROM_DATABASE=ULPI Transciever [USB3320]
|
||||
|
||||
usb:v0424p0140*
|
||||
ID_MODEL_FROM_DATABASE=LPC47M14x hub
|
||||
|
||||
@ -5216,6 +5270,9 @@ usb:v0430p00A2*
|
||||
usb:v0430p0100*
|
||||
ID_MODEL_FROM_DATABASE=3-button Mouse
|
||||
|
||||
usb:v0430p0406*
|
||||
ID_MODEL_FROM_DATABASE=KVM Switch
|
||||
|
||||
usb:v0430p0502*
|
||||
ID_MODEL_FROM_DATABASE=Panasonic CF-19 HID Touch Panel
|
||||
|
||||
@ -5738,6 +5795,9 @@ usb:v043Dp0142*
|
||||
usb:v043Dp01FA*
|
||||
ID_MODEL_FROM_DATABASE=S310 series
|
||||
|
||||
usb:v043Dp020E*
|
||||
ID_MODEL_FROM_DATABASE=RICOH Aficio SP 4410SF
|
||||
|
||||
usb:v043Dp4303*
|
||||
ID_MODEL_FROM_DATABASE=Xerox WorkCentre Pro 412
|
||||
|
||||
@ -6227,6 +6287,15 @@ usb:v0455*
|
||||
usb:v0456*
|
||||
ID_VENDOR_FROM_DATABASE=Analog Devices, Inc.
|
||||
|
||||
usb:v0456p7031*
|
||||
ID_MODEL_FROM_DATABASE=FX2 SPI/I2C Interface
|
||||
|
||||
usb:v0456pB672*
|
||||
ID_MODEL_FROM_DATABASE=Libiio based instrument [ADALM2000]
|
||||
|
||||
usb:v0456pB673*
|
||||
ID_MODEL_FROM_DATABASE=LibIIO based AD9363 Software Defined Radio [ADALM-PLUTO]
|
||||
|
||||
usb:v0456pF000*
|
||||
ID_MODEL_FROM_DATABASE=FT2232 JTAG ICE [gnICE]
|
||||
|
||||
@ -6530,6 +6599,9 @@ usb:v0458p7025*
|
||||
usb:v0458p7029*
|
||||
ID_MODEL_FROM_DATABASE=Genius Look 320s (SN9C201 + HV7131R)
|
||||
|
||||
usb:v0458p702C*
|
||||
ID_MODEL_FROM_DATABASE=Trek 320R Camera
|
||||
|
||||
usb:v0458p702F*
|
||||
ID_MODEL_FROM_DATABASE=Genius Slim 322
|
||||
|
||||
@ -6963,7 +7035,7 @@ usb:v045Ep028E*
|
||||
ID_MODEL_FROM_DATABASE=Xbox360 Controller
|
||||
|
||||
usb:v045Ep028F*
|
||||
ID_MODEL_FROM_DATABASE=Xbox360 Wireless Controller
|
||||
ID_MODEL_FROM_DATABASE=Xbox360 Wireless Controller via Plug & Charge Cable
|
||||
|
||||
usb:v045Ep0290*
|
||||
ID_MODEL_FROM_DATABASE=Xbox360 Performance Pipe (PIX)
|
||||
@ -7025,6 +7097,9 @@ usb:v045Ep02D5*
|
||||
usb:v045Ep02DD*
|
||||
ID_MODEL_FROM_DATABASE=Xbox One Controller (Firmware 2015)
|
||||
|
||||
usb:v045Ep02E0*
|
||||
ID_MODEL_FROM_DATABASE=Xbox One Wireless Controller
|
||||
|
||||
usb:v045Ep02E3*
|
||||
ID_MODEL_FROM_DATABASE=Xbox One Elite Controller
|
||||
|
||||
@ -7037,6 +7112,12 @@ usb:v045Ep02EA*
|
||||
usb:v045Ep02FD*
|
||||
ID_MODEL_FROM_DATABASE=Xbox One S Controller [Bluetooth]
|
||||
|
||||
usb:v045Ep02FE*
|
||||
ID_MODEL_FROM_DATABASE=Xbox Wireless Adapter for Windows
|
||||
|
||||
usb:v045Ep02FF*
|
||||
ID_MODEL_FROM_DATABASE=Xbox One S Controller [Bluetooth]
|
||||
|
||||
usb:v045Ep0400*
|
||||
ID_MODEL_FROM_DATABASE=Windows Powered Pocket PC 2002
|
||||
|
||||
@ -7601,6 +7682,21 @@ usb:v045Ep0955*
|
||||
usb:v045Ep0957*
|
||||
ID_MODEL_FROM_DATABASE=Hub
|
||||
|
||||
usb:v045Ep097A*
|
||||
ID_MODEL_FROM_DATABASE=Generic Superspeed Hub [Azure Kinect]
|
||||
|
||||
usb:v045Ep097B*
|
||||
ID_MODEL_FROM_DATABASE=Generic Hub [Azure Kinect]
|
||||
|
||||
usb:v045Ep097C*
|
||||
ID_MODEL_FROM_DATABASE=Azure Kinect Depth Camera
|
||||
|
||||
usb:v045Ep097D*
|
||||
ID_MODEL_FROM_DATABASE=Azure Kinect 4K Camera
|
||||
|
||||
usb:v045Ep097E*
|
||||
ID_MODEL_FROM_DATABASE=Azure Kinect Microphone Array
|
||||
|
||||
usb:v045Ep09A0*
|
||||
ID_MODEL_FROM_DATABASE=RTL8153B GigE [Surface Ethernet Adapter]
|
||||
|
||||
@ -7608,7 +7704,10 @@ usb:v045Ep09C0*
|
||||
ID_MODEL_FROM_DATABASE=Surface Type Cover
|
||||
|
||||
usb:v045Ep0A00*
|
||||
ID_MODEL_FROM_DATABASE=Lumia 950 Dual SIM (RM-1118)
|
||||
ID_MODEL_FROM_DATABASE=Lumia 950 (RM-1104/RM-1118)
|
||||
|
||||
usb:v045Ep0B00*
|
||||
ID_MODEL_FROM_DATABASE=Xbox Elite Series 2 Controller (model 1797)
|
||||
|
||||
usb:v045Ep0B12*
|
||||
ID_MODEL_FROM_DATABASE=Xbox Wireless Controller (model 1914)
|
||||
@ -7805,6 +7904,9 @@ usb:v0461p4D51*
|
||||
usb:v0461p4D62*
|
||||
ID_MODEL_FROM_DATABASE=HP Laser Mobile Mini Mouse
|
||||
|
||||
usb:v0461p4D64*
|
||||
ID_MODEL_FROM_DATABASE=Asus wired optical mouse - Model MOEWUO
|
||||
|
||||
usb:v0461p4D75*
|
||||
ID_MODEL_FROM_DATABASE=Rocketfish RF-FLBTAD Bluetooth Adapter
|
||||
|
||||
@ -7835,6 +7937,9 @@ usb:v0461p4E04*
|
||||
usb:v0461p4E22*
|
||||
ID_MODEL_FROM_DATABASE=Dell Mouse, 2 Buttons, Modell: MS111-P
|
||||
|
||||
usb:v0461p4E26*
|
||||
ID_MODEL_FROM_DATABASE=Asus wired keyboard - model KB73211
|
||||
|
||||
usb:v0461p4E6F*
|
||||
ID_MODEL_FROM_DATABASE=Acer Wired Keyboard Model KBAY211
|
||||
|
||||
@ -7910,15 +8015,87 @@ usb:v046Ap003E*
|
||||
usb:v046Ap0041*
|
||||
ID_MODEL_FROM_DATABASE=G86 6240 Keyboard
|
||||
|
||||
usb:v046Ap0076*
|
||||
ID_MODEL_FROM_DATABASE=MX-Board 3.0 G80-3850
|
||||
|
||||
usb:v046Ap0077*
|
||||
ID_MODEL_FROM_DATABASE=MX BOARD 3.0S FL NBL Keyboard
|
||||
|
||||
usb:v046Ap0079*
|
||||
ID_MODEL_FROM_DATABASE=MX BOARD 3.0S FL RGB Keyboard
|
||||
|
||||
usb:v046Ap0080*
|
||||
ID_MODEL_FROM_DATABASE=eHealth Terminal ST 1503
|
||||
|
||||
usb:v046Ap0081*
|
||||
ID_MODEL_FROM_DATABASE=eHealth Keyboard G87 1504
|
||||
|
||||
usb:v046Ap0083*
|
||||
ID_MODEL_FROM_DATABASE=MX BOARD 3.0S FL RGB (KOREAN) Keyboard
|
||||
|
||||
usb:v046Ap0084*
|
||||
ID_MODEL_FROM_DATABASE=eHealth Terminal ST1506
|
||||
|
||||
usb:v046Ap0085*
|
||||
ID_MODEL_FROM_DATABASE=eHealth PIN-Pad PP1516
|
||||
|
||||
usb:v046Ap00A1*
|
||||
ID_MODEL_FROM_DATABASE=SmartCard Reader Keyboard KC 1000 SC
|
||||
|
||||
usb:v046Ap00AB*
|
||||
ID_MODEL_FROM_DATABASE=MX 1.0 FL BL Keyboard
|
||||
|
||||
usb:v046Ap00AC*
|
||||
ID_MODEL_FROM_DATABASE=MX BOARD 1.0 TKL RGB Keyboard
|
||||
|
||||
usb:v046Ap00B7*
|
||||
ID_MODEL_FROM_DATABASE=MX BOARD 8.0 TKL RGB Keyboard
|
||||
|
||||
usb:v046Ap00BB*
|
||||
ID_MODEL_FROM_DATABASE=MX BOARD 10.0 FL RGB Keyboard
|
||||
|
||||
usb:v046Ap00C3*
|
||||
ID_MODEL_FROM_DATABASE=G80 3000 TKL NBL Keyboard
|
||||
|
||||
usb:v046Ap00C4*
|
||||
ID_MODEL_FROM_DATABASE=MX BOARD 2.0S FL RGB Keyboard
|
||||
|
||||
usb:v046Ap00C5*
|
||||
ID_MODEL_FROM_DATABASE=G80 3000 TKL RGB Keyboard
|
||||
|
||||
usb:v046Ap00C7*
|
||||
ID_MODEL_FROM_DATABASE=MV BOARD 3.0 FL RGB
|
||||
|
||||
usb:v046Ap00C9*
|
||||
ID_MODEL_FROM_DATABASE=CCF MX 8.0 TKL BL Keyboard
|
||||
|
||||
usb:v046Ap00CA*
|
||||
ID_MODEL_FROM_DATABASE=CCF MX 1.0 TKL BL Keyboard
|
||||
|
||||
usb:v046Ap00CB*
|
||||
ID_MODEL_FROM_DATABASE=CCF MX 1.0 TKL NBL Keyboard
|
||||
|
||||
usb:v046Ap00CD*
|
||||
ID_MODEL_FROM_DATABASE=G80 3000 TKL NBL (KOREAN) Keyboard
|
||||
|
||||
usb:v046Ap00CE*
|
||||
ID_MODEL_FROM_DATABASE=MX BOARD 2.0S FL NBL Keyboard
|
||||
|
||||
usb:v046Ap00D2*
|
||||
ID_MODEL_FROM_DATABASE=MX 1.0 FL NBL Keyboard
|
||||
|
||||
usb:v046Ap00D3*
|
||||
ID_MODEL_FROM_DATABASE=MX 1.0 FL RGB Keyboard
|
||||
|
||||
usb:v046Ap00DD*
|
||||
ID_MODEL_FROM_DATABASE=G80-3000N RGB TKL Keyboard
|
||||
|
||||
usb:v046Ap00DE*
|
||||
ID_MODEL_FROM_DATABASE=G80-3000N FL RGB Keyboard
|
||||
|
||||
usb:v046Ap00DF*
|
||||
ID_MODEL_FROM_DATABASE=MX BOARD 10.0N FL RGB Keyboard
|
||||
|
||||
usb:v046Ap0106*
|
||||
ID_MODEL_FROM_DATABASE=R-300 Wireless Mouse Receiver
|
||||
|
||||
@ -7928,12 +8105,24 @@ usb:v046Ap010D*
|
||||
usb:v046Ap0180*
|
||||
ID_MODEL_FROM_DATABASE=Strait 3.0
|
||||
|
||||
usb:v046Ap01A4*
|
||||
ID_MODEL_FROM_DATABASE=MC 2.1 Mouse
|
||||
|
||||
usb:v046Ap01A6*
|
||||
ID_MODEL_FROM_DATABASE=MX BOARD 2.0S FL RGB DE Keyboard
|
||||
|
||||
usb:v046ApB090*
|
||||
ID_MODEL_FROM_DATABASE=Keyboard
|
||||
|
||||
usb:v046ApB091*
|
||||
ID_MODEL_FROM_DATABASE=Mouse
|
||||
|
||||
usb:v046ApC099*
|
||||
ID_MODEL_FROM_DATABASE=Stream Keyboard TKL
|
||||
|
||||
usb:v046ApC110*
|
||||
ID_MODEL_FROM_DATABASE=KC 4500 Ergo Keyboard
|
||||
|
||||
usb:v046B*
|
||||
ID_VENDOR_FROM_DATABASE=American Megatrends, Inc.
|
||||
|
||||
@ -8063,6 +8252,12 @@ usb:v046Dp0836*
|
||||
usb:v046Dp0837*
|
||||
ID_MODEL_FROM_DATABASE=BCC950 ConferenceCam
|
||||
|
||||
usb:v046Dp0838*
|
||||
ID_MODEL_FROM_DATABASE=BCC950 ConferenceCam audio
|
||||
|
||||
usb:v046Dp0839*
|
||||
ID_MODEL_FROM_DATABASE=BCC950 ConferenceCam integated hub
|
||||
|
||||
usb:v046Dp0840*
|
||||
ID_MODEL_FROM_DATABASE=QuickCam Express
|
||||
|
||||
@ -8096,6 +8291,9 @@ usb:v046Dp085C*
|
||||
usb:v046Dp085E*
|
||||
ID_MODEL_FROM_DATABASE=BRIO Ultra HD Webcam
|
||||
|
||||
usb:v046Dp086B*
|
||||
ID_MODEL_FROM_DATABASE=BRIO 4K Stream Edition
|
||||
|
||||
usb:v046Dp0870*
|
||||
ID_MODEL_FROM_DATABASE=QuickCam Express
|
||||
|
||||
@ -8429,6 +8627,9 @@ usb:v046Dp0A45*
|
||||
usb:v046Dp0A4D*
|
||||
ID_MODEL_FROM_DATABASE=G430 Surround Sound Gaming Headset
|
||||
|
||||
usb:v046Dp0A4F*
|
||||
ID_MODEL_FROM_DATABASE=MINI BOOM
|
||||
|
||||
usb:v046Dp0A5B*
|
||||
ID_MODEL_FROM_DATABASE=G933 Wireless Headset Dongle
|
||||
|
||||
@ -8441,6 +8642,9 @@ usb:v046Dp0A66*
|
||||
usb:v046Dp0A8F*
|
||||
ID_MODEL_FROM_DATABASE=H390 headset with microphone
|
||||
|
||||
usb:v046Dp0A90*
|
||||
ID_MODEL_FROM_DATABASE=Zone Receiver
|
||||
|
||||
usb:v046Dp0AAA*
|
||||
ID_MODEL_FROM_DATABASE=Logitech G PRO X Gaming Headset
|
||||
|
||||
@ -8678,6 +8882,9 @@ usb:v046DpC083*
|
||||
usb:v046DpC084*
|
||||
ID_MODEL_FROM_DATABASE=G203 Gaming Mouse
|
||||
|
||||
usb:v046DpC088*
|
||||
ID_MODEL_FROM_DATABASE=G Pro Wireless gaming mouse (wired mode)
|
||||
|
||||
usb:v046DpC08B*
|
||||
ID_MODEL_FROM_DATABASE=G502 SE HERO Gaming Mouse
|
||||
|
||||
@ -9129,7 +9336,7 @@ usb:v046DpC537*
|
||||
ID_MODEL_FROM_DATABASE=Cordless Mouse Receiver
|
||||
|
||||
usb:v046DpC539*
|
||||
ID_MODEL_FROM_DATABASE=Cordless Mouse Receiver
|
||||
ID_MODEL_FROM_DATABASE=Lightspeed Receiver
|
||||
|
||||
usb:v046DpC53A*
|
||||
ID_MODEL_FROM_DATABASE=PowerPlay Wireless Charging System
|
||||
@ -9137,6 +9344,12 @@ usb:v046DpC53A*
|
||||
usb:v046DpC53D*
|
||||
ID_MODEL_FROM_DATABASE=G631 Keyboard
|
||||
|
||||
usb:v046DpC542*
|
||||
ID_MODEL_FROM_DATABASE=M185 compact wireless mouse
|
||||
|
||||
usb:v046DpC548*
|
||||
ID_MODEL_FROM_DATABASE=Logi Bolt Receiver
|
||||
|
||||
usb:v046DpC603*
|
||||
ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Plus XT
|
||||
|
||||
@ -10031,6 +10244,9 @@ usb:v047FpAC01*
|
||||
usb:v047FpAD01*
|
||||
ID_MODEL_FROM_DATABASE=GameCom 777 5.1 Headset
|
||||
|
||||
usb:v047FpAF00*
|
||||
ID_MODEL_FROM_DATABASE=DA70
|
||||
|
||||
usb:v047FpAF01*
|
||||
ID_MODEL_FROM_DATABASE=DA80
|
||||
|
||||
@ -10043,6 +10259,9 @@ usb:v047FpC00E*
|
||||
usb:v047FpC03B*
|
||||
ID_MODEL_FROM_DATABASE=HD1
|
||||
|
||||
usb:v047FpC053*
|
||||
ID_MODEL_FROM_DATABASE=Blackwire C5220 headset (remote control and 3.5mm audio adapter)
|
||||
|
||||
usb:v047FpCA01*
|
||||
ID_MODEL_FROM_DATABASE=Calisto 800 Series
|
||||
|
||||
@ -10313,6 +10532,9 @@ usb:v0483pA171*
|
||||
usb:v0483pA2E0*
|
||||
ID_MODEL_FROM_DATABASE=BMeasure instrument
|
||||
|
||||
usb:v0483pA43F*
|
||||
ID_MODEL_FROM_DATABASE=inbed.io - Unified Controller (Gen 2)
|
||||
|
||||
usb:v0483pDF11*
|
||||
ID_MODEL_FROM_DATABASE=STM Device in DFU Mode
|
||||
|
||||
@ -10385,6 +10607,15 @@ usb:v0489pE04D*
|
||||
usb:v0489pE055*
|
||||
ID_MODEL_FROM_DATABASE=BCM43142A0 broadcom bluetooth
|
||||
|
||||
usb:v0489pE07A*
|
||||
ID_MODEL_FROM_DATABASE=Broadcom BCM20702A1 Bluetooth
|
||||
|
||||
usb:v0489pE0C8*
|
||||
ID_MODEL_FROM_DATABASE=MediaTek MT7921 Bluetooth
|
||||
|
||||
usb:v0489pE0CD*
|
||||
ID_MODEL_FROM_DATABASE=MediaTek Bluetooth Adapter
|
||||
|
||||
usb:v048A*
|
||||
ID_VENDOR_FROM_DATABASE=S-MOS Systems, Inc.
|
||||
|
||||
@ -10409,6 +10640,12 @@ usb:v048Dp1336*
|
||||
usb:v048Dp1345*
|
||||
ID_MODEL_FROM_DATABASE=Multi Cardreader
|
||||
|
||||
usb:v048Dp5702*
|
||||
ID_MODEL_FROM_DATABASE=RGB LED Controller
|
||||
|
||||
usb:v048Dp6008*
|
||||
ID_MODEL_FROM_DATABASE=8291 RGB keyboard backlight controller
|
||||
|
||||
usb:v048Dp8297*
|
||||
ID_MODEL_FROM_DATABASE=IT8297 RGB LED Controller
|
||||
|
||||
@ -11033,6 +11270,9 @@ usb:v04A6p0181*
|
||||
usb:v04A7*
|
||||
ID_VENDOR_FROM_DATABASE=Visioneer
|
||||
|
||||
usb:v04A7p0063*
|
||||
ID_MODEL_FROM_DATABASE=Visioneer DocuMate 152i
|
||||
|
||||
usb:v04A7p0100*
|
||||
ID_MODEL_FROM_DATABASE=StrobePro
|
||||
|
||||
@ -13247,6 +13487,9 @@ usb:v04A9p32D5*
|
||||
usb:v04A9p32DB*
|
||||
ID_MODEL_FROM_DATABASE=SELPHY CP1300
|
||||
|
||||
usb:v04A9p3302*
|
||||
ID_MODEL_FROM_DATABASE=SELPHY CP1500
|
||||
|
||||
usb:v04AA*
|
||||
ID_VENDOR_FROM_DATABASE=DaeWoo Telecom, Ltd
|
||||
|
||||
@ -13484,6 +13727,9 @@ usb:v04B0p042A*
|
||||
usb:v04B0p0430*
|
||||
ID_MODEL_FROM_DATABASE=D7100
|
||||
|
||||
usb:v04B0p0434*
|
||||
ID_MODEL_FROM_DATABASE=D610
|
||||
|
||||
usb:v04B0p0436*
|
||||
ID_MODEL_FROM_DATABASE=D810
|
||||
|
||||
@ -13532,6 +13778,9 @@ usb:v04B3p301B*
|
||||
usb:v04B3p301C*
|
||||
ID_MODEL_FROM_DATABASE=Enhanced Performance Keyboard
|
||||
|
||||
usb:v04B3p301E*
|
||||
ID_MODEL_FROM_DATABASE=Keyboard with UltraNav (SK-8845RC)
|
||||
|
||||
usb:v04B3p3020*
|
||||
ID_MODEL_FROM_DATABASE=Enhanced Performance Keyboard
|
||||
|
||||
@ -14351,6 +14600,9 @@ usb:v04B8p0E03*
|
||||
usb:v04B8p1114*
|
||||
ID_MODEL_FROM_DATABASE=XP-440 [Expression Home Small-in-One Printer]
|
||||
|
||||
usb:v04B8p1115*
|
||||
ID_MODEL_FROM_DATABASE=ES-0133 [Expression Home XP-342]
|
||||
|
||||
usb:v04B8p1129*
|
||||
ID_MODEL_FROM_DATABASE=ET-4750 [WorkForce ET-4750 EcoTank All-in-One]
|
||||
|
||||
@ -14771,6 +15023,9 @@ usb:v04CAp004F*
|
||||
usb:v04CAp008A*
|
||||
ID_MODEL_FROM_DATABASE=Acer Wired Mouse Model SM-9023
|
||||
|
||||
usb:v04CAp00F9*
|
||||
ID_MODEL_FROM_DATABASE=Multimedia Keyboard
|
||||
|
||||
usb:v04CAp1766*
|
||||
ID_MODEL_FROM_DATABASE=HID Monitor Controls
|
||||
|
||||
@ -14813,6 +15068,9 @@ usb:v04CAp7046*
|
||||
usb:v04CAp7054*
|
||||
ID_MODEL_FROM_DATABASE=HP HD Webcam
|
||||
|
||||
usb:v04CAp705A*
|
||||
ID_MODEL_FROM_DATABASE=HD Webcam (960×540)
|
||||
|
||||
usb:v04CAp9304*
|
||||
ID_MODEL_FROM_DATABASE=Hub
|
||||
|
||||
@ -15218,6 +15476,12 @@ usb:v04D5*
|
||||
usb:v04D6*
|
||||
ID_VENDOR_FROM_DATABASE=Mentor Graphics
|
||||
|
||||
usb:v04D6pE301*
|
||||
ID_MODEL_FROM_DATABASE=Bio-Key TouchLock XL All Weather Keyless Bio-Lock with Fingerprint Recognition
|
||||
|
||||
usb:v04D6pE302*
|
||||
ID_MODEL_FROM_DATABASE=ZC3202 [4GB Green Book Digital Quran Reading Pen For Home Teaching Quran]
|
||||
|
||||
usb:v04D7*
|
||||
ID_VENDOR_FROM_DATABASE=Oki Semiconductor
|
||||
|
||||
@ -15248,6 +15512,9 @@ usb:v04D8p0033*
|
||||
usb:v04D8p0036*
|
||||
ID_MODEL_FROM_DATABASE=PICkit Serial Analyzer
|
||||
|
||||
usb:v04D8p00DD*
|
||||
ID_MODEL_FROM_DATABASE=MCP2221(a) UART/I2C Bridge
|
||||
|
||||
usb:v04D8p00E0*
|
||||
ID_MODEL_FROM_DATABASE=PIC32 Starter Board
|
||||
|
||||
@ -15293,6 +15560,15 @@ usb:v04D8pC001*
|
||||
usb:v04D8pE11C*
|
||||
ID_MODEL_FROM_DATABASE=TL866CS EEPROM Programmer [MiniPRO]
|
||||
|
||||
usb:v04D8pE72E*
|
||||
ID_MODEL_FROM_DATABASE=YuanCon
|
||||
|
||||
usb:v04D8pE7EE*
|
||||
ID_MODEL_FROM_DATABASE=travisgeis.com Bike Light
|
||||
|
||||
usb:v04D8pEC72*
|
||||
ID_MODEL_FROM_DATABASE=Joystick with Rotary Switch Creative Electronics Ltd
|
||||
|
||||
usb:v04D8pED16*
|
||||
ID_MODEL_FROM_DATABASE=BeamiRC 2.0 CNC remote controller analoge
|
||||
|
||||
@ -15368,6 +15644,12 @@ usb:v04D9p0022*
|
||||
usb:v04D9p0129*
|
||||
ID_MODEL_FROM_DATABASE=Keyboard [KBPV8000]
|
||||
|
||||
usb:v04D9p0169*
|
||||
ID_MODEL_FROM_DATABASE=Keyboard
|
||||
|
||||
usb:v04D9p0198*
|
||||
ID_MODEL_FROM_DATABASE=Keyboard
|
||||
|
||||
usb:v04D9p0348*
|
||||
ID_MODEL_FROM_DATABASE=Keyboard
|
||||
|
||||
@ -16638,7 +16920,7 @@ usb:v04E8p685E*
|
||||
ID_MODEL_FROM_DATABASE=GT-I9100 / GT-C3350 Phones (USB Debugging mode)
|
||||
|
||||
usb:v04E8p6860*
|
||||
ID_MODEL_FROM_DATABASE=Galaxy A5 (MTP)
|
||||
ID_MODEL_FROM_DATABASE=Galaxy series, misc. (MTP mode)
|
||||
|
||||
usb:v04E8p6863*
|
||||
ID_MODEL_FROM_DATABASE=Galaxy series, misc. (tethering mode)
|
||||
@ -17111,6 +17393,12 @@ usb:v04F2pB604*
|
||||
usb:v04F2pB681*
|
||||
ID_MODEL_FROM_DATABASE=ThinkPad T490 Webcam
|
||||
|
||||
usb:v04F2pB71A*
|
||||
ID_MODEL_FROM_DATABASE=Integrated IR Camera
|
||||
|
||||
usb:v04F2pB76B*
|
||||
ID_MODEL_FROM_DATABASE=SunplusIT Inc [HP HD Camera]
|
||||
|
||||
usb:v04F3*
|
||||
ID_VENDOR_FROM_DATABASE=Elan Microelectronics Corp.
|
||||
|
||||
@ -17162,6 +17450,9 @@ usb:v04F3p04A0*
|
||||
usb:v04F3p0C28*
|
||||
ID_MODEL_FROM_DATABASE=fingerprint sensor [FeinTech FPS00200]
|
||||
|
||||
usb:v04F3p0C3D*
|
||||
ID_MODEL_FROM_DATABASE=Elan:Fingerprint
|
||||
|
||||
usb:v04F3p2234*
|
||||
ID_MODEL_FROM_DATABASE=Touchscreen
|
||||
|
||||
@ -17954,6 +18245,9 @@ usb:v04F9p0245*
|
||||
usb:v04F9p0248*
|
||||
ID_MODEL_FROM_DATABASE=DCP-7055 scanner/printer
|
||||
|
||||
usb:v04F9p024A*
|
||||
ID_MODEL_FROM_DATABASE=DCP-7065DN
|
||||
|
||||
usb:v04F9p024E*
|
||||
ID_MODEL_FROM_DATABASE=MFC-7460DN
|
||||
|
||||
@ -18782,6 +19076,9 @@ usb:v04F9p2044*
|
||||
usb:v04F9p204D*
|
||||
ID_MODEL_FROM_DATABASE=QL-720NW Label Printer (mass storage mode)
|
||||
|
||||
usb:v04F9p2060*
|
||||
ID_MODEL_FROM_DATABASE=PT-E550W P-touch Label Printer
|
||||
|
||||
usb:v04F9p2061*
|
||||
ID_MODEL_FROM_DATABASE=PT-P700 P-touch Label Printer
|
||||
|
||||
@ -19751,6 +20048,9 @@ usb:v0536*
|
||||
usb:v0536p01A0*
|
||||
ID_MODEL_FROM_DATABASE=PDT
|
||||
|
||||
usb:v0536p01CA*
|
||||
ID_MODEL_FROM_DATABASE=IT4800 Area Imager
|
||||
|
||||
usb:v0537*
|
||||
ID_VENDOR_FROM_DATABASE=Inventec Corp.
|
||||
|
||||
@ -20570,9 +20870,15 @@ usb:v054Cp04CB*
|
||||
usb:v054Cp0541*
|
||||
ID_MODEL_FROM_DATABASE=DSC-HX100V [Cybershot Digital Still Camera]
|
||||
|
||||
usb:v054Cp0568*
|
||||
ID_MODEL_FROM_DATABASE=DSC-H100 in Mass Storage mode
|
||||
|
||||
usb:v054Cp05C4*
|
||||
ID_MODEL_FROM_DATABASE=DualShock 4 [CUH-ZCT1x]
|
||||
|
||||
usb:v054Cp0643*
|
||||
ID_MODEL_FROM_DATABASE=DSC-H100 in PTP/MTP mode
|
||||
|
||||
usb:v054Cp0689*
|
||||
ID_MODEL_FROM_DATABASE=Walkman NWZ-B173F
|
||||
|
||||
@ -20612,9 +20918,15 @@ usb:v054Cp08B7*
|
||||
usb:v054Cp094E*
|
||||
ID_MODEL_FROM_DATABASE=ILCE-6000 (aka Alpha-6000) in PC Remote mode
|
||||
|
||||
usb:v054Cp098D*
|
||||
ID_MODEL_FROM_DATABASE=Walkman NWZ-B183F
|
||||
|
||||
usb:v054Cp0994*
|
||||
ID_MODEL_FROM_DATABASE=ILCE-6000 (aka Alpha-6000) in charging mode
|
||||
|
||||
usb:v054Cp09C2*
|
||||
ID_MODEL_FROM_DATABASE=D33021 Storage
|
||||
|
||||
usb:v054Cp09CC*
|
||||
ID_MODEL_FROM_DATABASE=DualShock 4 [CUH-ZCT2x]
|
||||
|
||||
@ -21725,12 +22037,24 @@ usb:v056Ap03AA*
|
||||
usb:v056Ap03AC*
|
||||
ID_MODEL_FROM_DATABASE=DTH-W1620 [MobileStudio Pro 16] touchscreen
|
||||
|
||||
usb:v056Ap03B2*
|
||||
ID_MODEL_FROM_DATABASE=DTH167 [Cintiq Pro 16] tablet
|
||||
|
||||
usb:v056Ap03B3*
|
||||
ID_MODEL_FROM_DATABASE=DTH167 [Cintiq Pro 16] touchscreen
|
||||
|
||||
usb:v056Ap03C5*
|
||||
ID_MODEL_FROM_DATABASE=CTL-4100WL [Intuos BT (S)]
|
||||
|
||||
usb:v056Ap03C7*
|
||||
ID_MODEL_FROM_DATABASE=CTL-6100WL [Intuos BT (M)]
|
||||
|
||||
usb:v056Ap03DC*
|
||||
ID_MODEL_FROM_DATABASE=PTH-460 [Intuos Pro (S)] tablet
|
||||
|
||||
usb:v056Ap03DD*
|
||||
ID_MODEL_FROM_DATABASE=PTH-460 [Intuos Pro BT (S)] tablet
|
||||
|
||||
usb:v056Ap0400*
|
||||
ID_MODEL_FROM_DATABASE=PenPartner 4x5
|
||||
|
||||
@ -22250,6 +22574,9 @@ usb:v0572p1301*
|
||||
usb:v0572p1328*
|
||||
ID_MODEL_FROM_DATABASE=TrendNet TFM-561 modem
|
||||
|
||||
usb:v0572p1340*
|
||||
ID_MODEL_FROM_DATABASE=CX93010 ACF Modem
|
||||
|
||||
usb:v0572p1804*
|
||||
ID_MODEL_FROM_DATABASE=HP Dock Audio
|
||||
|
||||
@ -22635,7 +22962,7 @@ usb:v057Ep0304*
|
||||
ID_MODEL_FROM_DATABASE=RVT-H Reader
|
||||
|
||||
usb:v057Ep0305*
|
||||
ID_MODEL_FROM_DATABASE=Broadcom BCM2045A Bluetooth Radio [Nintendo Wii]
|
||||
ID_MODEL_FROM_DATABASE=Broadcom BCM2045A Bluetooth Radio [Nintendo Wii/Wii U]
|
||||
|
||||
usb:v057Ep0306*
|
||||
ID_MODEL_FROM_DATABASE=Wii Remote Controller RVL-003
|
||||
@ -22643,6 +22970,9 @@ usb:v057Ep0306*
|
||||
usb:v057Ep0337*
|
||||
ID_MODEL_FROM_DATABASE=Wii U GameCube Controller Adapter
|
||||
|
||||
usb:v057Ep0341*
|
||||
ID_MODEL_FROM_DATABASE=DRH GamePad Host [Nintendo Wii U]
|
||||
|
||||
usb:v057Ep2000*
|
||||
ID_MODEL_FROM_DATABASE=Switch
|
||||
|
||||
@ -23390,6 +23720,9 @@ usb:v0584pB000*
|
||||
usb:v0584pB020*
|
||||
ID_MODEL_FROM_DATABASE=REX-USB60F
|
||||
|
||||
usb:v0584pB022*
|
||||
ID_MODEL_FROM_DATABASE=RTX-USB60F
|
||||
|
||||
usb:v0585*
|
||||
ID_VENDOR_FROM_DATABASE=FlashPoint Technology, Inc.
|
||||
|
||||
@ -24089,6 +24422,9 @@ usb:v059Fp106D*
|
||||
usb:v059Fp106E*
|
||||
ID_MODEL_FROM_DATABASE=Porsche Design Desktop Drive
|
||||
|
||||
usb:v059Fp1093*
|
||||
ID_MODEL_FROM_DATABASE=Rugged
|
||||
|
||||
usb:v059Fp1094*
|
||||
ID_MODEL_FROM_DATABASE=Rugged THB
|
||||
|
||||
@ -24185,6 +24521,9 @@ usb:v05A6p0004*
|
||||
usb:v05A6p0008*
|
||||
ID_MODEL_FROM_DATABASE=STA1520 Tuning Adapter
|
||||
|
||||
usb:v05A6p0009*
|
||||
ID_MODEL_FROM_DATABASE=Console
|
||||
|
||||
usb:v05A6p0A00*
|
||||
ID_MODEL_FROM_DATABASE=Integrated Management Controller Hub
|
||||
|
||||
@ -24216,7 +24555,7 @@ usb:v05A7p400D*
|
||||
ID_MODEL_FROM_DATABASE=SoundLink Color II speaker in DFU mode
|
||||
|
||||
usb:v05A7p40FE*
|
||||
ID_MODEL_FROM_DATABASE=SoundLink Color II speaker
|
||||
ID_MODEL_FROM_DATABASE=SoundLink Color II / Flex
|
||||
|
||||
usb:v05A7pBC50*
|
||||
ID_MODEL_FROM_DATABASE=SoundLink Wireless Mobile speaker
|
||||
@ -24566,6 +24905,12 @@ usb:v05ACp1006*
|
||||
usb:v05ACp1008*
|
||||
ID_MODEL_FROM_DATABASE=Mini DisplayPort to Dual-Link DVI Adapter
|
||||
|
||||
usb:v05ACp1009*
|
||||
ID_MODEL_FROM_DATABASE=iBus Hub
|
||||
|
||||
usb:v05ACp100C*
|
||||
ID_MODEL_FROM_DATABASE=Nova Hub
|
||||
|
||||
usb:v05ACp1101*
|
||||
ID_MODEL_FROM_DATABASE=Speakers
|
||||
|
||||
@ -24695,6 +25040,9 @@ usb:v05ACp129A*
|
||||
usb:v05ACp129C*
|
||||
ID_MODEL_FROM_DATABASE=iPhone 4(CDMA)
|
||||
|
||||
usb:v05ACp129D*
|
||||
ID_MODEL_FROM_DATABASE=iPhone
|
||||
|
||||
usb:v05ACp129E*
|
||||
ID_MODEL_FROM_DATABASE=iPod Touch 4.Gen
|
||||
|
||||
@ -24704,6 +25052,9 @@ usb:v05ACp129F*
|
||||
usb:v05ACp12A0*
|
||||
ID_MODEL_FROM_DATABASE=iPhone 4S
|
||||
|
||||
usb:v05ACp12A1*
|
||||
ID_MODEL_FROM_DATABASE=iPhone
|
||||
|
||||
usb:v05ACp12A2*
|
||||
ID_MODEL_FROM_DATABASE=iPad 2 (3G; 64GB)
|
||||
|
||||
@ -24719,8 +25070,11 @@ usb:v05ACp12A5*
|
||||
usb:v05ACp12A6*
|
||||
ID_MODEL_FROM_DATABASE=iPad 3 (3G, 16 GB)
|
||||
|
||||
usb:v05ACp12A7*
|
||||
ID_MODEL_FROM_DATABASE=TV Device
|
||||
|
||||
usb:v05ACp12A8*
|
||||
ID_MODEL_FROM_DATABASE=iPhone 5/5C/5S/6/SE
|
||||
ID_MODEL_FROM_DATABASE=iPhone 5/5C/5S/6/SE/7/8/X
|
||||
|
||||
usb:v05ACp12A9*
|
||||
ID_MODEL_FROM_DATABASE=iPad 2
|
||||
@ -24731,6 +25085,15 @@ usb:v05ACp12AA*
|
||||
usb:v05ACp12AB*
|
||||
ID_MODEL_FROM_DATABASE=iPad 4/Mini1
|
||||
|
||||
usb:v05ACp12AC*
|
||||
ID_MODEL_FROM_DATABASE=iPhone
|
||||
|
||||
usb:v05ACp12AF*
|
||||
ID_MODEL_FROM_DATABASE=Watch
|
||||
|
||||
usb:v05ACp12B0*
|
||||
ID_MODEL_FROM_DATABASE=HomePod
|
||||
|
||||
usb:v05ACp1300*
|
||||
ID_MODEL_FROM_DATABASE=iPod Shuffle
|
||||
|
||||
@ -24761,9 +25124,24 @@ usb:v05ACp1401*
|
||||
usb:v05ACp1402*
|
||||
ID_MODEL_FROM_DATABASE=Ethernet Adapter [A1277]
|
||||
|
||||
usb:v05ACp1460*
|
||||
ID_MODEL_FROM_DATABASE=Digital AV Multiport Adapter
|
||||
|
||||
usb:v05ACp1461*
|
||||
ID_MODEL_FROM_DATABASE=VGA Multiport Adapter
|
||||
|
||||
usb:v05ACp1463*
|
||||
ID_MODEL_FROM_DATABASE=HDMI Adapter
|
||||
|
||||
usb:v05ACp1500*
|
||||
ID_MODEL_FROM_DATABASE=SuperDrive [A1379]
|
||||
|
||||
usb:v05ACp1624*
|
||||
ID_MODEL_FROM_DATABASE=Nova
|
||||
|
||||
usb:v05ACp1625*
|
||||
ID_MODEL_FROM_DATABASE=iBus
|
||||
|
||||
usb:v05ACp8005*
|
||||
ID_MODEL_FROM_DATABASE=OHCI Root Hub Simulation
|
||||
|
||||
@ -24845,6 +25223,9 @@ usb:v05ACp8289*
|
||||
usb:v05ACp828C*
|
||||
ID_MODEL_FROM_DATABASE=Bluetooth Host Controller
|
||||
|
||||
usb:v05ACp828D*
|
||||
ID_MODEL_FROM_DATABASE=Bluetooth Host Controller
|
||||
|
||||
usb:v05ACp8290*
|
||||
ID_MODEL_FROM_DATABASE=Bluetooth Host Controller
|
||||
|
||||
@ -25262,6 +25643,9 @@ usb:v05C8p03BC*
|
||||
usb:v05C8p03CB*
|
||||
ID_MODEL_FROM_DATABASE=HP Wide Vision HD Integrated Webcam
|
||||
|
||||
usb:v05C8p03D2*
|
||||
ID_MODEL_FROM_DATABASE=HP TrueVision HD Camera
|
||||
|
||||
usb:v05C8p0403*
|
||||
ID_MODEL_FROM_DATABASE=Webcam
|
||||
|
||||
@ -26132,6 +26516,9 @@ usb:v05DCpB047*
|
||||
usb:v05DCpB051*
|
||||
ID_MODEL_FROM_DATABASE=microSD RDR UHS-I Card Reader [LRWM03U-7000]
|
||||
|
||||
usb:v05DCpB054*
|
||||
ID_MODEL_FROM_DATABASE=Dual-Slot Reader [LRW400U]
|
||||
|
||||
usb:v05DCpBA02*
|
||||
ID_MODEL_FROM_DATABASE=Workflow CFR1
|
||||
|
||||
@ -26751,7 +27138,7 @@ usb:v0603p6871*
|
||||
ID_MODEL_FROM_DATABASE=Mouse
|
||||
|
||||
usb:v0603p8611*
|
||||
ID_MODEL_FROM_DATABASE=NTK96550 based camera
|
||||
ID_MODEL_FROM_DATABASE=NTK96550-based camera (mass storage mode)
|
||||
|
||||
usb:v0604*
|
||||
ID_VENDOR_FROM_DATABASE=Jean Co., Ltd
|
||||
@ -52446,7 +52833,7 @@ usb:v13FDp3E40*
|
||||
ID_MODEL_FROM_DATABASE=ZALMAN ZM-VE350
|
||||
|
||||
usb:v13FE*
|
||||
ID_VENDOR_FROM_DATABASE=Kingston Technology Company Inc.
|
||||
ID_VENDOR_FROM_DATABASE=Phison Electronics Corp.
|
||||
|
||||
usb:v13FEp1A00*
|
||||
ID_MODEL_FROM_DATABASE=512MB/1GB Flash Drive
|
||||
@ -69156,16 +69543,19 @@ usb:v595Ap0001*
|
||||
ID_MODEL_FROM_DATABASE=Touchscreen
|
||||
|
||||
usb:v5986*
|
||||
ID_VENDOR_FROM_DATABASE=Acer, Inc
|
||||
ID_VENDOR_FROM_DATABASE=Bison Electronics Inc.
|
||||
|
||||
usb:v5986p0100*
|
||||
ID_MODEL_FROM_DATABASE=Orbicam
|
||||
ID_MODEL_FROM_DATABASE=Acer Orbicam
|
||||
|
||||
usb:v5986p0101*
|
||||
ID_MODEL_FROM_DATABASE=USB2.0 Camera
|
||||
|
||||
usb:v5986p0102*
|
||||
ID_MODEL_FROM_DATABASE=Crystal Eye Webcam
|
||||
ID_MODEL_FROM_DATABASE=Acer Crystal Eye Webcam
|
||||
|
||||
usb:v5986p0105*
|
||||
ID_MODEL_FROM_DATABASE=Acer Crystal Eye Webcam
|
||||
|
||||
usb:v5986p0137*
|
||||
ID_MODEL_FROM_DATABASE=HP Webcam
|
||||
@ -69189,7 +69579,7 @@ usb:v5986p01A9*
|
||||
ID_MODEL_FROM_DATABASE=Lenovo Integrated Webcam
|
||||
|
||||
usb:v5986p0200*
|
||||
ID_MODEL_FROM_DATABASE=OrbiCam
|
||||
ID_MODEL_FROM_DATABASE=Acer OrbiCam
|
||||
|
||||
usb:v5986p0202*
|
||||
ID_MODEL_FROM_DATABASE=Fujitsu Webcam
|
||||
|
@ -71,7 +71,7 @@ usb:v08FFp5731*
|
||||
ID_PERSIST=0
|
||||
|
||||
# Supported by libfprint driver aes4000
|
||||
usb:v5501p08FF*
|
||||
usb:v08FFp5501*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
|
@ -1,11 +1,34 @@
|
||||
# This file is part of systemd.
|
||||
#
|
||||
# ########################### MATCHING #######################################
|
||||
#
|
||||
# The lookup keys are composed in:
|
||||
# 60-evdev.rules
|
||||
#
|
||||
# Match string formats:
|
||||
# evdev:<modalias>
|
||||
# evdev:name:<device name>:dmi:<dmi string>
|
||||
# Supported hardware matches are:
|
||||
# - Generic input devices match:
|
||||
# evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV
|
||||
# This matches on the kernel modalias of the input-device, mainly:
|
||||
# ZZZZ is the bus-id (see /usr/include/linux/input.h BUS_*), YYYY, XXXX and
|
||||
# WWWW are the 4-digit hex uppercase vendor, product and version ID and VVVV
|
||||
# is a variable-length input-modalias describing the device capabilities.
|
||||
# The vendor, product and version ID for a device node "eventX" is listed
|
||||
# in /sys/class/input/eventX/device/id.
|
||||
#
|
||||
# - Input driver device name and DMI data match:
|
||||
# evdev:name:<input device name>:dmi:bvn*:bvr*:bd*:svn<vendor>:pn*
|
||||
# <input device name> is the name device specified by the
|
||||
# driver, <vendor> is the firmware-provided string exported
|
||||
# by the kernel DMI modalias, see /sys/class/dmi/id/modalias.
|
||||
#
|
||||
# - Extended input driver device name, properties and DMI data match:
|
||||
# evdev:name:<input device name>:phys:<phys>:ev:<ev>:dmi:bvn*:bvr*:bd*:svn<vendor>:pn*
|
||||
# <input device name> is the name device specified by the
|
||||
# driver, <phys> is the physical-device-path, "cat
|
||||
# /sys/class/input/input?/phys", <ev> is the event bitmask, "cat
|
||||
# /sys/class/input/input?/capabilities/ev" and <vendor> is the
|
||||
# firmware-provided string exported by the kernel DMI modalias,
|
||||
# see /sys/class/dmi/id/modalias.
|
||||
#
|
||||
# To add local entries, create a new file
|
||||
# /etc/udev/hwdb.d/61-evdev-local.hwdb
|
||||
@ -237,6 +260,13 @@ evdev:name:Synaptics TM2382-001:dmi:*svnDellInc.:pnInspiron3537:*
|
||||
EVDEV_ABS_35=::24
|
||||
EVDEV_ABS_36=::34
|
||||
|
||||
# Dell Inspiron N4010
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnInspironN4010:*
|
||||
EVDEV_ABS_00=1188:5797:49
|
||||
EVDEV_ABS_01=893:4894:80
|
||||
EVDEV_ABS_35=1188:5797:49
|
||||
EVDEV_ABS_36=893:4894:80
|
||||
|
||||
# Dell Inspiron N5040
|
||||
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnInspironN5040:*
|
||||
EVDEV_ABS_00=25:2000:22
|
||||
@ -337,6 +367,54 @@ evdev:name:Atmel maXTouch Touch*:dmi:bvn*:bvr*:bd*:svnGOOGLE:pnSamus:*
|
||||
EVDEV_ABS_35=::10
|
||||
EVDEV_ABS_36=::10
|
||||
|
||||
#########################################
|
||||
# Granite Devices Simucube wheel bases
|
||||
#########################################
|
||||
|
||||
# Granite Devices Simucube 1
|
||||
evdev:input:b0003v16D0p0D5A*
|
||||
EVDEV_ABS_00=:::0:0
|
||||
EVDEV_ABS_01=:::0:0
|
||||
EVDEV_ABS_02=:::0:0
|
||||
EVDEV_ABS_03=:::0:0
|
||||
EVDEV_ABS_04=:::0:0
|
||||
EVDEV_ABS_05=:::0:0
|
||||
EVDEV_ABS_06=:::0:0
|
||||
EVDEV_ABS_07=:::0:0
|
||||
|
||||
# Granite Devices Simucube 2 Sport
|
||||
evdev:input:b0003v16D0p0D61*
|
||||
EVDEV_ABS_00=:::0:0
|
||||
EVDEV_ABS_01=:::0:0
|
||||
EVDEV_ABS_02=:::0:0
|
||||
EVDEV_ABS_03=:::0:0
|
||||
EVDEV_ABS_04=:::0:0
|
||||
EVDEV_ABS_05=:::0:0
|
||||
EVDEV_ABS_06=:::0:0
|
||||
EVDEV_ABS_07=:::0:0
|
||||
|
||||
# Granite Devices Simucube 2 Pro
|
||||
evdev:input:b0003v16D0p0D60*
|
||||
EVDEV_ABS_00=:::0:0
|
||||
EVDEV_ABS_01=:::0:0
|
||||
EVDEV_ABS_02=:::0:0
|
||||
EVDEV_ABS_03=:::0:0
|
||||
EVDEV_ABS_04=:::0:0
|
||||
EVDEV_ABS_05=:::0:0
|
||||
EVDEV_ABS_06=:::0:0
|
||||
EVDEV_ABS_07=:::0:0
|
||||
|
||||
# Granite Devices Simucube 2 Ultimate
|
||||
evdev:input:b0003v16D0p0D5F*
|
||||
EVDEV_ABS_00=:::0:0
|
||||
EVDEV_ABS_01=:::0:0
|
||||
EVDEV_ABS_02=:::0:0
|
||||
EVDEV_ABS_03=:::0:0
|
||||
EVDEV_ABS_04=:::0:0
|
||||
EVDEV_ABS_05=:::0:0
|
||||
EVDEV_ABS_06=:::0:0
|
||||
EVDEV_ABS_07=:::0:0
|
||||
|
||||
#########################################
|
||||
# HP
|
||||
#########################################
|
||||
@ -384,7 +462,8 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnHP:pnHPSpectreNotebook:*
|
||||
EVDEV_ABS_36=1083:4808:65
|
||||
|
||||
# HP Envy x360
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:*svnHP:pnHPENVYx360Convertible15m-cn0xxx:*
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnHP:pnHPENVYx360Convertible15m-cn0xxx:*
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnHP:pnHPENVYx360Convertible15-cn0xxx**
|
||||
EVDEV_ABS_00=1302:5640:36
|
||||
EVDEV_ABS_01=1119:4741:61
|
||||
EVDEV_ABS_35=1302:5640:36
|
||||
@ -622,6 +701,13 @@ evdev:name:MSFT0001:02 04F3:304B Touchpad:dmi:*svnLENOVO:*pvrLenovoLegionY9000X2
|
||||
EVDEV_ABS_35=::31
|
||||
EVDEV_ABS_36=::30
|
||||
|
||||
# Lenovo g580
|
||||
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnLENOVO:*pvrLenovoG580**
|
||||
EVDEV_ABS_00=-170:2950:24
|
||||
EVDEV_ABS_01=-591:700:25
|
||||
EVDEV_ABS_35=-170:2950:24
|
||||
EVDEV_ABS_36=-591:700:25
|
||||
|
||||
#########################################
|
||||
# Microsoft
|
||||
#########################################
|
||||
@ -649,6 +735,17 @@ evdev:input:b0003v6161p4D15*
|
||||
EVDEV_ABS_00=::152
|
||||
EVDEV_ABS_01=::244
|
||||
|
||||
#########################################
|
||||
# Packard Bell
|
||||
#########################################
|
||||
|
||||
# EASYNOTE_TS11HR-200GE
|
||||
evdev:name:ETPS/2 Elantech Touchpad:dmi:bvnPackardBell:bvr*:br*:svnPackardBell:pnEasyNoteTS11HR:*
|
||||
EVDEV_ABS_00=0:2472:31
|
||||
EVDEV_ABS_01=-524:528:31
|
||||
EVDEV_ABS_35=0:2472:31
|
||||
EVDEV_ABS_36=-524:528:31
|
||||
|
||||
###########################################################
|
||||
# Pine64
|
||||
###########################################################
|
||||
|
@ -19,14 +19,14 @@
|
||||
# This matches on the kernel modalias of the input-device, mainly:
|
||||
# ZZZZ is the bus-id (see /usr/include/linux/input.h BUS_*), YYYY, XXXX and
|
||||
# WWWW are the 4-digit hex uppercase vendor, product and version ID and VVVV
|
||||
# is an arbitrary length input-modalias describing the device capabilities.
|
||||
# is a variable-length input-modalias describing the device capabilities.
|
||||
# The vendor, product and version ID for a device node "eventX" is listed
|
||||
# in /sys/class/input/eventX/device/id.
|
||||
#
|
||||
# - AT keyboard DMI data matches:
|
||||
# evdev:atkbd:dmi:bvn*:bvr*:bd*:svn<vendor>:pn<product>:pvr*
|
||||
# <vendor> and <product> are the firmware-provided strings
|
||||
# exported by the kernel DMI modalias, see /sys/class/dmi/id/modalias
|
||||
# exported by the kernel DMI modalias, see /sys/class/dmi/id/modalias.
|
||||
#
|
||||
# - Input driver device name and DMI data match:
|
||||
# evdev:name:<input device name>:dmi:bvn*:bvr*:bd*:svn<vendor>:pn*
|
||||
@ -41,7 +41,22 @@
|
||||
# /sys/class/input/input?/phys", <ev> is the event bitmask, "cat
|
||||
# /sys/class/input/input?/capabilities/ev" and <vendor> is the
|
||||
# firmware-provided string exported by the kernel DMI modalias,
|
||||
# see /sys/class/dmi/id/modalias
|
||||
# see /sys/class/dmi/id/modalias.
|
||||
#
|
||||
# To add local entries, create a new file
|
||||
# /etc/udev/hwdb.d/61-keyboard-local.hwdb
|
||||
# and add your rules there. To load the new rules execute (as root):
|
||||
# systemd-hwdb update
|
||||
# udevadm trigger /dev/input/eventXX
|
||||
# where /dev/input/eventXX is the keyboard in question. If in doubt, simply use
|
||||
# /dev/input/event* to reload all input rules.
|
||||
#
|
||||
# If your changes are generally applicable, preferably send them as a pull
|
||||
# request to
|
||||
# https://github.com/systemd/systemd
|
||||
# or create a bug report on https://github.com/systemd/systemd/issues and
|
||||
# include your new rules, a description of the device, and the output of
|
||||
# udevadm info /dev/input/eventXX.
|
||||
|
||||
# ######################### KEY MAPPING ######################################
|
||||
#
|
||||
@ -76,22 +91,6 @@
|
||||
# Examples of such devices: Chromebooks where the top row is used for both
|
||||
# media and F1-F10 keys.
|
||||
|
||||
# To update this file, create a new file
|
||||
# /etc/udev/hwdb.d/70-keyboard.hwdb
|
||||
# and add your rules there. To load the new rules execute (as root):
|
||||
# systemd-hwdb update
|
||||
# udevadm trigger /dev/input/eventXX
|
||||
# where /dev/input/eventXX is the keyboard in question. If in
|
||||
# doubt, simply reload all input rules
|
||||
# udevadm trigger --verbose --sysname-match="event*"
|
||||
#
|
||||
# If your changes are generally applicable, preferably send them as a pull
|
||||
# request to
|
||||
# https://github.com/systemd/systemd
|
||||
# or create a bug report on https://github.com/systemd/systemd/issues and
|
||||
# include your new rules, a description of the device, and the output of
|
||||
# udevadm info /dev/input/eventXX.
|
||||
|
||||
##########################################
|
||||
# Acer
|
||||
##########################################
|
||||
@ -278,6 +277,13 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNotebook:pnW65_67SZ:*
|
||||
KEYBOARD_KEY_ae=!volumedown
|
||||
KEYBOARD_KEY_b0=!volumeup
|
||||
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS50_70MU:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4XMB,ME,MZ:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS5x_NS7xPU:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4xPZ:*
|
||||
KEYBOARD_KEY_f7=f21 # Touchpad Toggle
|
||||
KEYBOARD_KEY_f8=f21 # Touchpad Toggle
|
||||
|
||||
###########################################################
|
||||
# Compal
|
||||
###########################################################
|
||||
@ -296,6 +302,9 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo*N*:*
|
||||
KEYBOARD_KEY_9e=email
|
||||
KEYBOARD_KEY_9f=homepage
|
||||
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnCompaq:pn*:pvr*:rvn*:rnN14KP6*
|
||||
KEYBOARD_KEY_76=f21 # Fn+f2 toggle touchpad
|
||||
|
||||
evdev:input:b0003v049Fp0051*
|
||||
evdev:input:b0003v049Fp008D*
|
||||
KEYBOARD_KEY_0c0011=presentation
|
||||
@ -407,6 +416,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:*
|
||||
KEYBOARD_KEY_88=wlan
|
||||
KEYBOARD_KEY_65=direction # Screen Rotate
|
||||
|
||||
# Dell G16 microphone mute
|
||||
evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnDellG16*:*
|
||||
# Dell Latitude microphone mute
|
||||
evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
|
||||
# Dell Precision microphone mute
|
||||
@ -596,6 +607,13 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPSpectrex360Convertible13*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx360Convertible13*:*
|
||||
KEYBOARD_KEY_82=f20 # Microphone mute button, should be micmute
|
||||
|
||||
# Spectre x360 16 2022
|
||||
evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pn*HP[sS][pP][eE][cC][tT][rR][eE]*x3602-in-1*:*
|
||||
# ENVY x360
|
||||
evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx360Convertible*:*
|
||||
evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx3602-in-1*:*
|
||||
KEYBOARD_KEY_08=unknown # Prevents random airplane mode activation
|
||||
|
||||
# HP Elite x2 1013 G3
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHPElitex21013G3:*
|
||||
KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
|
||||
@ -918,7 +936,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*3000*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn0769AP2:pvr3000N200:*
|
||||
KEYBOARD_KEY_b4=prog1
|
||||
|
||||
# lenovo-ideapad
|
||||
# Lenovo IdeaPad
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnS10-*:*
|
||||
KEYBOARD_KEY_81=rfkill # does nothing in BIOS
|
||||
@ -929,6 +947,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnS10-*:*
|
||||
KEYBOARD_KEY_f2=f21 # touchpad toggle (key alternately emits F2 and F3)
|
||||
KEYBOARD_KEY_f3=f21
|
||||
|
||||
# Lenovo IdeaPad 5
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrIdeaPad5*:*
|
||||
KEYBOARD_KEY_81=insert
|
||||
|
||||
# Thinkpad X200_Tablet
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet*:*
|
||||
KEYBOARD_KEY_5d=menu
|
||||
@ -1376,6 +1398,7 @@ evdev:input:b0003v1532p0200*
|
||||
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:*
|
||||
KEYBOARD_KEY_91=config # MSIControl Center
|
||||
KEYBOARD_KEY_a0=mute # Fn+F9
|
||||
KEYBOARD_KEY_ae=volumedown # Fn+F7
|
||||
KEYBOARD_KEY_b0=volumeup # Fn+F8
|
||||
@ -1386,6 +1409,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:*
|
||||
KEYBOARD_KEY_e4=f21 # Fn+F3 Touchpad disable
|
||||
KEYBOARD_KEY_ec=email # envelope button
|
||||
KEYBOARD_KEY_ee=camera # Fn+F6 camera disable
|
||||
KEYBOARD_KEY_f1=f20 # Microphone mute
|
||||
KEYBOARD_KEY_f2=rotate_display # Rotate screen
|
||||
KEYBOARD_KEY_f6=wlan # satellite dish1
|
||||
KEYBOARD_KEY_f7=brightnessdown # Fn+F4
|
||||
KEYBOARD_KEY_f8=brightnessup # Fn+F5
|
||||
@ -1813,6 +1838,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pn*:*
|
||||
KEYBOARD_KEY_f7=f21 # Touchpad toggle
|
||||
KEYBOARD_KEY_f8=f21 # Touchpad toggle
|
||||
|
||||
# Pangolin 12
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pnPangolin*:pvrpang12*
|
||||
KEYBOARD_KEY_76=f21 # Touchpad toggle
|
||||
|
||||
###########################################################
|
||||
# T-bao
|
||||
###########################################################
|
||||
@ -2001,6 +2030,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnViewSonic:pnVPAD10:*
|
||||
###########################################################
|
||||
# Positivo-Vaio
|
||||
###########################################################
|
||||
# Vaio Pro (VJPW11F11X, VJPW12F11X)
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJPW1[12]F11X*:pvr*:*
|
||||
# Vaio FE14 (VJFE41F11X, VJE42F11X, VJFE44F11X, VJFE54F11X)
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFE*:pvr*:*
|
||||
KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
|
||||
@ -2008,8 +2039,10 @@ evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:
|
||||
###########################################################
|
||||
# Positivo
|
||||
###########################################################
|
||||
# Positivo MASTER-N1110
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnNP11G-E*
|
||||
# Positivo DUO (k116)
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnK116*
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnK116*
|
||||
KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
|
||||
|
||||
# Positivo Motion (N14DP6, N14DP7, N14DP7-V2, N14DP9, N14JP6, N14KP6)
|
||||
@ -2022,6 +2055,8 @@ evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn
|
||||
|
||||
# Positivo Motion (K142, K142-V2)
|
||||
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnK142*
|
||||
# Positivo Motion (N14ZP6, N14ZP7)
|
||||
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14ZP[67]*
|
||||
# Positivo Motion (CW14Q01P) (CW14Q01P-V2)
|
||||
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnCW14Q01P*
|
||||
KEYBOARD_KEY_70073=f21 # Fn+f2 toggle touchpad
|
||||
|
@ -45,8 +45,8 @@
|
||||
# subsystem[1]. The default, when unset, is equivalent to:
|
||||
# ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, 1
|
||||
# eg. the identity matrix,
|
||||
# and <value> is an integer value above which an object is considered
|
||||
# close by a proximity sensor:
|
||||
# and <value> is an integer value above or equal to which an object is
|
||||
# considered close by a proximity sensor:
|
||||
# PROXIMITY_NEAR_LEVEL=100
|
||||
#
|
||||
# [1]: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dfc57732ad38f93ae6232a3b4e64fd077383a0f1
|
||||
@ -92,6 +92,9 @@ sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-012:*
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:*svnAcer*:*TP-SW5-017-17BU:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, -1
|
||||
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:*:svnAcer:pnSW5-017:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
sensor:modalias:acpi:BMA250E*:dmi:*:svnAcer:pnIconiaW1-810:*
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
|
||||
@ -230,6 +233,10 @@ sensor:modalias:acpi:BOSC0200*:dmi:*:svn*CHUWIINNOVATIONANDTECHNOLOGY*:pnHi10pro
|
||||
sensor:modalias:acpi:MXC6655*:dmi:*:svnCHUWIInnovationAndTechnology*:pnHi10X:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
# Chuwi Hi10 X (N4120 processor version)
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnCHUWIInnovationAndTechnology*:pnHi10X:*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
# Chuwi Hi10 Go
|
||||
sensor:modalias:acpi:MXC6655*:dmi:*:svnCHUWIINNOVATIONLIMITED:pnHi10Go:*
|
||||
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0,-1, 0; 0, 0, 1
|
||||
@ -280,6 +287,13 @@ sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo*:pnC3W6_AP108_4GB:*
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnConnect:pnTablet9:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
# CSL Computer
|
||||
#########################################
|
||||
# CSL Panther Tab HD
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnCSL*Computer*:pnCSL*Panther*Tab*HD:*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
# Cube
|
||||
#########################################
|
||||
@ -336,6 +350,11 @@ sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0B09:*
|
||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0B0B:*
|
||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0B0D:*
|
||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0B11:*
|
||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0C00:*
|
||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0C02:*
|
||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0C40:*
|
||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0C41:*
|
||||
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0C42:*
|
||||
ACCEL_LOCATION=base
|
||||
|
||||
# Dell Venue 8 Pro 3845
|
||||
@ -350,8 +369,8 @@ sensor:modalias:acpi:INVN6500*:dmi:*svnDell*:pnVenue10Pro5055:*
|
||||
# DERE
|
||||
#########################################
|
||||
|
||||
# DBook D10
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInternational,LLC.:bvrJP2V1.05:bd04/27/2022:br1.5:efr1.3:svnDefaultstring:*
|
||||
# DBook D10 / Juno Tablet
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInternational,LLC.:bvrJP2V*:svnDefaultstring:*
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
@ -629,6 +648,10 @@ sensor:modalias:i2c:bmc150_accel:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, -1
|
||||
ACCEL_LOCATION=base
|
||||
|
||||
# IdeaPad Duet 3 10IGL5 (82AT)
|
||||
sensor:modalias:acpi:SMO8B30*:dmi:*:svnLENOVO*:pn82AT:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
# LINX
|
||||
#########################################
|
||||
@ -637,6 +660,10 @@ sensor:modalias:i2c:bmc150_accel:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
|
||||
sensor:modalias:acpi:BOSC0200*:dmi:*:svnLINX*:pnLINX1010B:*
|
||||
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, -1
|
||||
|
||||
# Linx 1020
|
||||
sensor:modalias:acpi:MIRAACC*:dmi:*:svnLINX*:pnLINX1020:*
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, -1
|
||||
|
||||
# Linx 12X64, 12V64 and Vision 8
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnLINX*:pnLINX12*64:*
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:*:svnLINX:pnVISION004:*
|
||||
@ -899,6 +926,10 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnX80Pro:*
|
||||
sensor:modalias:acpi:SMO8500*:dmi:*bd12/19/2014:*:rvnTECLAST:rntPAD:*
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
|
||||
# Teclast X98 Air 3G (C5J6), "tPAD" is too generic also match on newest BIOS date
|
||||
sensor:modalias:acpi:SMO8500*:dmi:*bd05/05/2015:*:rvnTECLAST:rntPAD:*
|
||||
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
|
||||
|
||||
# Teclast X98 Plus I (A5C6), generic DMI strings, match entire dmi modalias inc. bios-date
|
||||
# '*' in ":*svn" is there because kernels >= 5.8 have inserted a br field there
|
||||
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.011:bd11/03/2015:*svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnCherryTrailCR:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:*
|
||||
@ -975,6 +1006,9 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnUMAX:pnVisionBook10WiPro:*
|
||||
sensor:modalias:acpi:SMO8500*:dmi:*:svnUMAX:pnVisionBook10WiPlus:*
|
||||
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
|
||||
|
||||
sensor:modalias:acpi:MXC6655*:dmi:*:svnUMAX:pnVisionbook12WrTab:*
|
||||
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
|
||||
|
||||
#########################################
|
||||
# Voyo
|
||||
#########################################
|
||||
|
@ -52,6 +52,10 @@ usb:v0FD9p006D*
|
||||
usb:v0FD9p0080*
|
||||
ID_AV_PRODUCTION_CONTROLLER=1
|
||||
|
||||
# Stream Deck Pedal
|
||||
usb:v0FD9p0086*
|
||||
ID_AV_PRODUCTION_CONTROLLER=1
|
||||
|
||||
#############################
|
||||
# Hercules (Guillemot Corp)
|
||||
#############################
|
||||
|
@ -1,8 +1,10 @@
|
||||
# This file is part of systemd.
|
||||
#
|
||||
# Pointingstick const-accel configuration, to make different brand / model
|
||||
# laptop pointingsticks have the same speed / feel, and per model adjustment
|
||||
# of the IBM TrackPoint driver's sensitivity setting
|
||||
# laptop pointingsticks have the same speed / feel, and per model adjustment of
|
||||
# the IBM TrackPoint and Dell DualPoint Stick driver's sensitivity setting.
|
||||
#
|
||||
# ########################### MATCHING #######################################
|
||||
#
|
||||
# The lookup keys are composed in:
|
||||
# 60-evdev.rules
|
||||
@ -13,7 +15,7 @@
|
||||
# This matches on the kernel modalias of the input-device, mainly:
|
||||
# ZZZZ is the bus-id (see /usr/include/linux/input.h BUS_*), YYYY, XXXX and
|
||||
# WWW are the 4-digit hex uppercase vendor, product and version ID and VVVV
|
||||
# is an arbitrary length input-modalias describing the device capabilities.
|
||||
# is a variable-length input-modalias describing the device capabilities.
|
||||
# The vendor, product and version ID for a device node "eventX" is listed
|
||||
# in /sys/class/input/eventX/device/id.
|
||||
#
|
||||
@ -21,15 +23,24 @@
|
||||
# evdev:name:<input device name>:dmi:bvn*:bvr*:bd*:svn<vendor>:pn*:*
|
||||
# <input device name> is the name device specified by the driver,
|
||||
# <vendor> is the firmware-provided string from the kernel DMI modalias,
|
||||
# see /sys/class/dmi/id/modalias
|
||||
# see /sys/class/dmi/id/modalias.
|
||||
#
|
||||
# - Extended input driver device name, properties and DMI data match:
|
||||
# evdev:name:<input device name>:phys:<phys>:ev:<ev>:dmi:bvn*:bvr*:bd*:svn<vendor>:pn*
|
||||
# <input device name> is the name device specified by the
|
||||
# driver, <phys> is the physical-device-path, "cat
|
||||
# /sys/class/input/input?/phys", <ev> is the event bitmask, "cat
|
||||
# /sys/class/input/input?/capabilities/ev" and <vendor> is the
|
||||
# firmware-provided string exported by the kernel DMI modalias,
|
||||
# see /sys/class/dmi/id/modalias.
|
||||
#
|
||||
# To add local entries, create a new file
|
||||
# /etc/udev/hwdb.d/71-pointingstick-local.hwdb
|
||||
# and add your rules there. To load the new rules execute (as root):
|
||||
# systemd-hwdb update
|
||||
# udevadm trigger /dev/input/eventXX
|
||||
# where /dev/input/eventXX is the pointingstick in question. If in
|
||||
# doubt, simply use /dev/input/event* to reload all input rules.
|
||||
# where /dev/input/eventXX is the pointingstick in question. If in doubt, simply
|
||||
# use /dev/input/event* to reload all input rules.
|
||||
#
|
||||
# If your changes are generally applicable, preferably send them as a pull
|
||||
# request to
|
||||
@ -79,6 +90,7 @@
|
||||
# Generic
|
||||
##########################################
|
||||
evdev:name:*[tT]rack[pP]oint*:*
|
||||
evdev:name:*[dD]ual[pP]oint [sS]tick*:*
|
||||
ID_INPUT_POINTINGSTICK=1
|
||||
|
||||
#########################################
|
||||
|
@ -1094,6 +1094,13 @@ ieee1394:ven000001F2mo*sp000001F2ver00000035
|
||||
IEEE1394_UNIT_FUNCTION_MIDI=1
|
||||
IEEE1394_UNIT_FUNCTION_AUDIO=1
|
||||
|
||||
ieee1394:node:ven0x0001f2units0x0001f2:0x000037
|
||||
ieee1394:ven000001F2mo00102800sp000001F2ver00000037
|
||||
ID_VENDOR_FROM_DATABASE=MOTU
|
||||
ID_MODEL_FROM_DATABASE=MOTU 896 mk3 Hybrid
|
||||
IEEE1394_UNIT_FUNCTION_MIDI=1
|
||||
IEEE1394_UNIT_FUNCTION_AUDIO=1
|
||||
|
||||
ieee1394:node:ven0x0001f2units0x0001f2:0x000039
|
||||
ieee1394:ven000001F2mo*sp000001F2ver00000039
|
||||
ID_VENDOR_FROM_DATABASE=MOTU
|
||||
|
@ -116,6 +116,9 @@
|
||||
<tr class="even"><td>GoUp Co.,Ltd</td><td>GOUP</td><td>06/24/2022</td> </tr>
|
||||
<tr class="odd"><td>Shenzhen Jaguar Microsystems Co.,Ltd.</td><td>JMIC</td><td>09/23/2022</td> </tr>
|
||||
<tr class="even"><td>Elliptic Laboratories AS</td><td>ELAS</td><td>10/20/2022</td> </tr>
|
||||
<tr class="odd"><td>Micro Crystal AG</td><td>MCRY</td><td>11/10/2022</td> </tr>
|
||||
<tr class="even"><td>Cix Technology (Shanghai) Co., Ltd. </td><td>CIXH</td><td>11/16/2022</td> </tr>
|
||||
<tr class="odd"><td>EyeTech Digital Systems</td><td>ETDS</td><td>11/29/2022</td> </tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
|
4650
hwdb.d/ma-large.txt
4650
hwdb.d/ma-large.txt
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1347
hwdb.d/ma-small.txt
1347
hwdb.d/ma-small.txt
File diff suppressed because it is too large
Load Diff
577
hwdb.d/pci.ids
577
hwdb.d/pci.ids
File diff suppressed because it is too large
Load Diff
@ -2523,6 +2523,8 @@
|
||||
<tr class="odd"><td>Printronix LLC</td><td>PTX</td><td>10/20/2022</td> </tr>
|
||||
<tr class="even"><td>Colorlight</td><td>KLT</td><td>10/20/2022</td> </tr>
|
||||
<tr class="odd"><td>Beck GmbH & Co. Elektronik Bauelemente KG</td><td>BCK</td><td>10/20/2022</td> </tr>
|
||||
<tr class="even"><td>Shenzhen Soogeen Electronics Co., LTD.</td><td>SGN</td><td>11/29/2022</td> </tr>
|
||||
<tr class="odd"><td>Emotiva Audio Corp. </td><td>EAC</td><td>02/02/2023</td> </tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
|
168
hwdb.d/usb.ids
168
hwdb.d/usb.ids
@ -9,8 +9,8 @@
|
||||
# The latest version can be obtained from
|
||||
# http://www.linux-usb.org/usb.ids
|
||||
#
|
||||
# Version: 2022.05.20
|
||||
# Date: 2022-05-20 20:34:10
|
||||
# Version: 2023.01.16
|
||||
# Date: 2023-01-16 20:34:10
|
||||
#
|
||||
|
||||
# Vendors, devices and interfaces. Please keep sorted.
|
||||
@ -24,10 +24,14 @@
|
||||
7778 Counterfeit flash drive [Kingston]
|
||||
0002 Ingram
|
||||
0002 passport00
|
||||
7007 HPRT XT300
|
||||
0003 Club Mac
|
||||
0004 Nebraska Furniture Mart
|
||||
0011 Unknown
|
||||
7788 counterfeit flash drive
|
||||
0040 Anyware Corporation
|
||||
073d Mini Multimedia 2.4GHz Wireless Keyboard with Touch Pad
|
||||
0042 DMT
|
||||
0053 Planex
|
||||
5301 GW-US54ZGL 802.11bg
|
||||
0078 Microntek
|
||||
@ -60,6 +64,7 @@
|
||||
6026 CBM1180 Flash drive controller
|
||||
0218 Hangzhou Worlde
|
||||
0301 MIDI Port
|
||||
0231 Sonuus Limited
|
||||
02ad HUMAX Co., Ltd.
|
||||
138c PVR Mass Storage
|
||||
0303 Mini Automation Controller
|
||||
@ -72,6 +77,8 @@
|
||||
0001 PSX for USB Converter
|
||||
03c3 ZWO
|
||||
120e ASI120MC-S Planetary Camera
|
||||
1f10 EFF
|
||||
294f ASI294MC Pro
|
||||
03d9 Shenzhen Sinote Tech-Electron Co., Ltd
|
||||
0499 SE340D PC Remote Control
|
||||
03da Bernd Walter Computer Technology
|
||||
@ -227,7 +234,7 @@
|
||||
0218 APOLLO P2500/2600
|
||||
0221 StreamSmart 400 [F2235AA]
|
||||
0223 Digital Drive Flash Reader
|
||||
022a Laserjet CP1525nw
|
||||
022a LaserJet CP1525nw/x
|
||||
0241 Link-5 micro dongle
|
||||
0304 DeskJet 810c/812c
|
||||
0305 ScanJet 4300c
|
||||
@ -277,6 +284,7 @@
|
||||
0805 HP4470C
|
||||
0811 OfficeJet K80xi
|
||||
0817 LaserJet 3300
|
||||
0853 ENVY 5000 series
|
||||
0901 ScanJet 2300c
|
||||
0904 DeskJet 845c
|
||||
0912 Printing Support
|
||||
@ -457,6 +465,7 @@
|
||||
2d05 Scanjet 7000
|
||||
2d11 OfficeJet 6110
|
||||
2d17 Printing Support
|
||||
2d2a LaserJet Pro MFP M225dw
|
||||
2e11 PSC 1000
|
||||
2e17 LaserJet 2600n
|
||||
2e24 LP2275w Monitor Hub
|
||||
@ -522,6 +531,7 @@
|
||||
3d11 OfficeJet 4215
|
||||
3d17 LaserJet P1005
|
||||
3e02 PhotoSmart 7550
|
||||
3e07 x755w Flash Drive
|
||||
3e17 LaserJet P1006
|
||||
3f02 PhotoSmart 7550~
|
||||
3f11 PSC-1315/PSC-1317
|
||||
@ -552,6 +562,7 @@
|
||||
4611 PhotoSmart 2700
|
||||
4717 Color LaserJet CP1215
|
||||
4811 PSC 1600
|
||||
484a Elite Dock G4
|
||||
4911 PSC 2350
|
||||
4b11 OfficeJet 6200
|
||||
4c11 PSC 1500 series
|
||||
@ -805,7 +816,8 @@
|
||||
6011 FT4232H Quad HS USB-UART/FIFO IC
|
||||
6014 FT232H Single HS USB-UART/FIFO IC
|
||||
6015 Bridge(I2C/SPI/UART/FIFO)
|
||||
601f Myriad-RF LimeSDR-Mini
|
||||
601e FT600 16-bit FIFO IC
|
||||
601f FT601 32-bit FIFO IC
|
||||
6ee0 EZO Carrier Board
|
||||
6f70 HB-RF-USB
|
||||
7be8 FT232R
|
||||
@ -895,6 +907,7 @@
|
||||
d38f Xsens serial converter
|
||||
d491 Zolix Omni 1509 monochromator
|
||||
d578 Accesio USB-COM-4SM
|
||||
d678 GammaScout
|
||||
d6f8 UNI Black BOX
|
||||
d738 Propox JTAGcable II
|
||||
d739 Propox ISPcable III
|
||||
@ -1204,7 +1217,9 @@
|
||||
040c VTech Computers, Ltd
|
||||
040d VIA Technologies, Inc.
|
||||
3184 VNT VT6656 USB-802.11 Wireless LAN Adapter
|
||||
340b FX-Audio DAC-X6
|
||||
340f Audinst HUD-mx2
|
||||
6204 Vectro VT6204 IDE bridge
|
||||
6205 USB 2.0 Card Reader
|
||||
040e MCCI
|
||||
040f Echo Speech Corp.
|
||||
@ -1341,7 +1356,7 @@
|
||||
7721 Memory Stick Reader/Writer
|
||||
7722 Memory Stick Reader/Writer
|
||||
7723 SD Card Reader
|
||||
b23c KT108 keyboard
|
||||
b23c Gaming Keyboard
|
||||
c141 Barcode Scanner
|
||||
0417 Symbios Logic
|
||||
0418 AST Research
|
||||
@ -1382,6 +1397,7 @@
|
||||
3020 SoundBlaster Audigy 2 NX
|
||||
3030 SB External Composite Device
|
||||
3040 SoundBlaster Live! 24-bit External SB0490
|
||||
3042 Sound Blaster X-Fi Surround 5.1
|
||||
3060 Sound Blaster Audigy 2 ZS External
|
||||
3061 SoundBlaster Audigy 2 ZS Video Editor
|
||||
3090 Sound Blaster Digital Music SX
|
||||
@ -1398,6 +1414,7 @@
|
||||
3f02 E-Mu 0202
|
||||
3f04 E-Mu 0404
|
||||
3f07 E-Mu Xmidi 1x1
|
||||
3f0a E-Mu Tracker Pre
|
||||
3f0e Xmidi 1x1 Tab
|
||||
4003 VideoBlaster Webcam Go Plus [W9967CF]
|
||||
4004 Nomad II MG
|
||||
@ -1459,7 +1476,7 @@
|
||||
4087 Live! Cam Socialize HD 1080 [VF0680]
|
||||
4088 Live! Cam Chat HD [VF0700]
|
||||
4095 Live! Cam Sync HD [VF0770]
|
||||
4097 Live! Cam Chat HD [VF0700]
|
||||
4097 Live! Cam Chat HD [VF0700/VF0790]
|
||||
4099 Creative VF0800 [RealSense Camera SR300]
|
||||
4100 Nomad Jukebox 2
|
||||
4101 Nomad Jukebox 3
|
||||
@ -1667,6 +1684,7 @@
|
||||
1237 Andromeda Hub
|
||||
0424 Microchip Technology, Inc. (formerly SMSC)
|
||||
0001 Integrated Hub
|
||||
0007 ULPI Transciever [USB3320]
|
||||
0140 LPC47M14x hub
|
||||
0acd Sitecom Internal Multi Memory reader/writer MD-005
|
||||
0fdc Floppy
|
||||
@ -1758,6 +1776,7 @@
|
||||
0083 109 Japanese Keyboard
|
||||
00a2 Type 7 Keyboard
|
||||
0100 3-button Mouse
|
||||
0406 KVM Switch
|
||||
0502 Panasonic CF-19 HID Touch Panel
|
||||
100e 24.1" LCD Monitor v4 / FID-638 Mouse
|
||||
36ba Bus Powered Hub
|
||||
@ -1932,6 +1951,7 @@
|
||||
010f 6500 series
|
||||
0142 X3650 (Printer, Scanner, Copier)
|
||||
01fa S310 series
|
||||
020e RICOH Aficio SP 4410SF
|
||||
4303 Xerox WorkCentre Pro 412
|
||||
043e LG Electronics USA, Inc.
|
||||
3001 AN-WF100 802.11abgn Wireless Adapter [Broadcom BCM4323]
|
||||
@ -2095,6 +2115,9 @@
|
||||
0454 Vobis Microcomputer AG
|
||||
0455 Telematics International, Inc.
|
||||
0456 Analog Devices, Inc.
|
||||
7031 FX2 SPI/I2C Interface
|
||||
b672 Libiio based instrument [ADALM2000]
|
||||
b673 LibIIO based AD9363 Software Defined Radio [ADALM-PLUTO]
|
||||
f000 FT2232 JTAG ICE [gnICE]
|
||||
f001 FT2232H Hi-Speed JTAG ICE [gnICE+]
|
||||
0457 Silicon Integrated Systems Corp.
|
||||
@ -2196,6 +2219,7 @@
|
||||
7020 Sim 321C
|
||||
7025 Eye 311Q Camera
|
||||
7029 Genius Look 320s (SN9C201 + HV7131R)
|
||||
702c Trek 320R Camera
|
||||
702f Genius Slim 322
|
||||
7035 i-Look 325T Camera
|
||||
7045 Genius Look 1320 V2
|
||||
@ -2340,7 +2364,7 @@
|
||||
028b Xbox360 DVD Emulator
|
||||
028d Xbox360 Memory Unit 64MB
|
||||
028e Xbox360 Controller
|
||||
028f Xbox360 Wireless Controller
|
||||
028f Xbox360 Wireless Controller via Plug & Charge Cable
|
||||
0290 Xbox360 Performance Pipe (PIX)
|
||||
0291 Xbox 360 Wireless Receiver for Windows
|
||||
0292 Xbox360 Wireless Networking Adapter
|
||||
@ -2361,10 +2385,13 @@
|
||||
02d1 Xbox One Controller
|
||||
02d5 Xbox One Digital TV Tuner
|
||||
02dd Xbox One Controller (Firmware 2015)
|
||||
02e0 Xbox One Wireless Controller
|
||||
02e3 Xbox One Elite Controller
|
||||
02e6 Wireless XBox Controller Dongle
|
||||
02ea Xbox One S Controller
|
||||
02fd Xbox One S Controller [Bluetooth]
|
||||
02fe Xbox Wireless Adapter for Windows
|
||||
02ff Xbox One S Controller [Bluetooth]
|
||||
0400 Windows Powered Pocket PC 2002
|
||||
0401 Windows Powered Pocket PC 2002
|
||||
0402 Windows Powered Pocket PC 2002
|
||||
@ -2553,9 +2580,15 @@
|
||||
0927 RTL8153B GigE [Surface Ethernet Adapter]
|
||||
0955 Hub
|
||||
0957 Hub
|
||||
097a Generic Superspeed Hub [Azure Kinect]
|
||||
097b Generic Hub [Azure Kinect]
|
||||
097c Azure Kinect Depth Camera
|
||||
097d Azure Kinect 4K Camera
|
||||
097e Azure Kinect Microphone Array
|
||||
09a0 RTL8153B GigE [Surface Ethernet Adapter]
|
||||
09c0 Surface Type Cover
|
||||
0a00 Lumia 950 Dual SIM (RM-1118)
|
||||
0a00 Lumia 950 (RM-1104/RM-1118)
|
||||
0b00 Xbox Elite Series 2 Controller (model 1797)
|
||||
0b12 Xbox Wireless Controller (model 1914)
|
||||
930a ISOUSB.SYS Intel 82930 Isochronous IO Test Board
|
||||
ffca Catalina
|
||||
@ -2621,6 +2654,7 @@
|
||||
4d2e Optical Mobile Mouse (HID)
|
||||
4d51 0Y357C PMX-MMOCZUL (B) [Dell Laser Mouse]
|
||||
4d62 HP Laser Mobile Mini Mouse
|
||||
4d64 Asus wired optical mouse - Model MOEWUO
|
||||
4d75 Rocketfish RF-FLBTAD Bluetooth Adapter
|
||||
4d81 Dell N889 Optical Mouse
|
||||
4d8a HP Multimedia Keyboard
|
||||
@ -2631,6 +2665,7 @@
|
||||
4de7 webcam
|
||||
4e04 Lenovo Keyboard KB1021
|
||||
4e22 Dell Mouse, 2 Buttons, Modell: MS111-P
|
||||
4e26 Asus wired keyboard - model KB73211
|
||||
4e6f Acer Wired Keyboard Model KBAY211
|
||||
4e72 Acer Wired Keyboard Model KBAY211
|
||||
0463 MGE UPS Systems
|
||||
@ -2656,14 +2691,42 @@
|
||||
003d Raptor Gaming Keyboard Integrated Hub
|
||||
003e SmartTerminal ST-2xxx
|
||||
0041 G86 6240 Keyboard
|
||||
0076 MX-Board 3.0 G80-3850
|
||||
0077 MX BOARD 3.0S FL NBL Keyboard
|
||||
0079 MX BOARD 3.0S FL RGB Keyboard
|
||||
0080 eHealth Terminal ST 1503
|
||||
0081 eHealth Keyboard G87 1504
|
||||
0083 MX BOARD 3.0S FL RGB (KOREAN) Keyboard
|
||||
0084 eHealth Terminal ST1506
|
||||
0085 eHealth PIN-Pad PP1516
|
||||
00a1 SmartCard Reader Keyboard KC 1000 SC
|
||||
00ab MX 1.0 FL BL Keyboard
|
||||
00ac MX BOARD 1.0 TKL RGB Keyboard
|
||||
00b7 MX BOARD 8.0 TKL RGB Keyboard
|
||||
00bb MX BOARD 10.0 FL RGB Keyboard
|
||||
00c3 G80 3000 TKL NBL Keyboard
|
||||
00c4 MX BOARD 2.0S FL RGB Keyboard
|
||||
00c5 G80 3000 TKL RGB Keyboard
|
||||
00c7 MV BOARD 3.0 FL RGB
|
||||
00c9 CCF MX 8.0 TKL BL Keyboard
|
||||
00ca CCF MX 1.0 TKL BL Keyboard
|
||||
00cb CCF MX 1.0 TKL NBL Keyboard
|
||||
00cd G80 3000 TKL NBL (KOREAN) Keyboard
|
||||
00ce MX BOARD 2.0S FL NBL Keyboard
|
||||
00d2 MX 1.0 FL NBL Keyboard
|
||||
00d3 MX 1.0 FL RGB Keyboard
|
||||
00dd G80-3000N RGB TKL Keyboard
|
||||
00de G80-3000N FL RGB Keyboard
|
||||
00df MX BOARD 10.0N FL RGB Keyboard
|
||||
0106 R-300 Wireless Mouse Receiver
|
||||
010d MX-Board 3.0 Keyboard
|
||||
0180 Strait 3.0
|
||||
01a4 MC 2.1 Mouse
|
||||
01a6 MX BOARD 2.0S FL RGB DE Keyboard
|
||||
b090 Keyboard
|
||||
b091 Mouse
|
||||
c099 Stream Keyboard TKL
|
||||
c110 KC 4500 Ergo Keyboard
|
||||
046b American Megatrends, Inc.
|
||||
0001 Keyboard
|
||||
0101 PS/2 Keyboard, Mouse & Joystick Ports
|
||||
@ -2707,6 +2770,8 @@
|
||||
0830 QuickClip
|
||||
0836 B525 HD Webcam
|
||||
0837 BCC950 ConferenceCam
|
||||
0838 BCC950 ConferenceCam audio
|
||||
0839 BCC950 ConferenceCam integated hub
|
||||
0840 QuickCam Express
|
||||
0843 Webcam C930e
|
||||
0845 ConferenceCam CC3000e Camera
|
||||
@ -2718,6 +2783,7 @@
|
||||
0857 Logi Group Speakerphone
|
||||
085c C922 Pro Stream Webcam
|
||||
085e BRIO Ultra HD Webcam
|
||||
086b BRIO 4K Stream Edition
|
||||
0870 QuickCam Express
|
||||
0882 Logi Group Speakerphone
|
||||
0890 QuickCam Traveler
|
||||
@ -2829,10 +2895,12 @@
|
||||
0a44 Headset H390
|
||||
0a45 960 Headset
|
||||
0a4d G430 Surround Sound Gaming Headset
|
||||
0a4f MINI BOOM
|
||||
0a5b G933 Wireless Headset Dongle
|
||||
0a5d G933 Headset Battery Charger
|
||||
0a66 [G533 Wireless Headset Dongle]
|
||||
0a8f H390 headset with microphone
|
||||
0a90 Zone Receiver
|
||||
0aaa Logitech G PRO X Gaming Headset
|
||||
0b02 C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
|
||||
8801 Video Camera
|
||||
@ -2912,6 +2980,7 @@
|
||||
c080 G303 Gaming Mouse
|
||||
c083 G403 Prodigy Gaming Mouse
|
||||
c084 G203 Gaming Mouse
|
||||
c088 G Pro Wireless gaming mouse (wired mode)
|
||||
c08b G502 SE HERO Gaming Mouse
|
||||
c092 G102/G203 LIGHTSYNC Gaming Mouse
|
||||
c101 UltraX Media Remote
|
||||
@ -3062,9 +3131,11 @@
|
||||
c532 Unifying Receiver
|
||||
c534 Unifying Receiver
|
||||
c537 Cordless Mouse Receiver
|
||||
c539 Cordless Mouse Receiver
|
||||
c539 Lightspeed Receiver
|
||||
c53a PowerPlay Wireless Charging System
|
||||
c53d G631 Keyboard
|
||||
c542 M185 compact wireless mouse
|
||||
c548 Logi Bolt Receiver
|
||||
c603 3Dconnexion Spacemouse Plus XT
|
||||
c605 3Dconnexion CADman
|
||||
c606 3Dconnexion Spacemouse Classic
|
||||
@ -3363,10 +3434,12 @@
|
||||
aa05 DA45
|
||||
ac01 Savi 7xx
|
||||
ad01 GameCom 777 5.1 Headset
|
||||
af00 DA70
|
||||
af01 DA80
|
||||
c008 Audio 655 DSP
|
||||
c00e Blackwire C310 headset
|
||||
c03b HD1
|
||||
c053 Blackwire C5220 headset (remote control and 3.5mm audio adapter)
|
||||
ca01 Calisto 800 Series
|
||||
da60 DA60
|
||||
0480 Toshiba America Inc
|
||||
@ -3457,6 +3530,7 @@
|
||||
91d1 Sensor Hub
|
||||
a171 ThermaData WiFi
|
||||
a2e0 BMeasure instrument
|
||||
a43f inbed.io - Unified Controller (Gen 2)
|
||||
df11 STM Device in DFU Mode
|
||||
ff10 Swann ST56 Modem
|
||||
0484 Specialix
|
||||
@ -3481,6 +3555,9 @@
|
||||
e042 Broadcom BCM20702 Bluetooth
|
||||
e04d Atheros AR3012 Bluetooth
|
||||
e055 BCM43142A0 broadcom bluetooth
|
||||
e07a Broadcom BCM20702A1 Bluetooth
|
||||
e0c8 MediaTek MT7921 Bluetooth
|
||||
e0cd MediaTek Bluetooth Adapter
|
||||
048a S-MOS Systems, Inc.
|
||||
048c Alps Electric Ireland, Ltd
|
||||
048d Integrated Technology Express, Inc.
|
||||
@ -3489,6 +3566,8 @@
|
||||
1234 Chipsbank CBM2199 Flash Drive
|
||||
1336 SD/MMC Cardreader
|
||||
1345 Multi Cardreader
|
||||
5702 RGB LED Controller
|
||||
6008 8291 RGB keyboard backlight controller
|
||||
8297 IT8297 RGB LED Controller
|
||||
9006 IT9135 BDA Afatech DVB-T HDTV Dongle
|
||||
9009 Zolid HD DVD Maker
|
||||
@ -3697,6 +3776,7 @@
|
||||
0180 Hub Type P
|
||||
0181 HID Monitor Controls
|
||||
04a7 Visioneer
|
||||
0063 Visioneer DocuMate 152i
|
||||
0100 StrobePro
|
||||
0101 Strobe Pro Scanner (1.01)
|
||||
0102 StrobePro Scanner
|
||||
@ -4435,6 +4515,7 @@
|
||||
32d4 Powershot ELPH 185 / IXUS 185 / IXY 200
|
||||
32d5 PowerShot SX430 IS
|
||||
32db SELPHY CP1300
|
||||
3302 SELPHY CP1500
|
||||
04aa DaeWoo Telecom, Ltd
|
||||
04ab Chromatic Research
|
||||
04ac Micro Audiometrics Corp.
|
||||
@ -4514,6 +4595,7 @@
|
||||
0429 D5100
|
||||
042a D800 (ptp)
|
||||
0430 D7100
|
||||
0434 D610
|
||||
0436 D810
|
||||
043f D5600
|
||||
0f03 PD-10 Wireless Printer Adapter
|
||||
@ -4530,6 +4612,7 @@
|
||||
301a 2-port low-power hub
|
||||
301b SK-8815 Keyboard
|
||||
301c Enhanced Performance Keyboard
|
||||
301e Keyboard with UltraNav (SK-8845RC)
|
||||
3020 Enhanced Performance Keyboard
|
||||
3025 NetVista Full Width Keyboard
|
||||
3100 NetVista Mouse
|
||||
@ -4803,6 +4886,7 @@
|
||||
0893 EP-774A
|
||||
0e03 Thermal Receipt Printer [TM-T20]
|
||||
1114 XP-440 [Expression Home Small-in-One Printer]
|
||||
1115 ES-0133 [Expression Home XP-342]
|
||||
1129 ET-4750 [WorkForce ET-4750 EcoTank All-in-One]
|
||||
1168 Workforce WF-7820/7840 Series
|
||||
04b9 Rainbow Technologies, Inc.
|
||||
@ -4943,6 +5027,7 @@
|
||||
004b Keyboard
|
||||
004f SK-9020 keyboard
|
||||
008a Acer Wired Mouse Model SM-9023
|
||||
00f9 Multimedia Keyboard
|
||||
1766 HID Monitor Controls
|
||||
2004 Bluetooth 4.0 [Broadcom BCM20702A0]
|
||||
2006 Broadcom BCM43142A0 Bluetooth Device
|
||||
@ -4957,6 +5042,7 @@
|
||||
7025 HP HD Webcam
|
||||
7046 TOSHIBA Web Camera - HD
|
||||
7054 HP HD Webcam
|
||||
705a HD Webcam (960×540)
|
||||
9304 Hub
|
||||
f01c TT1280DA DVB-T TV Tuner
|
||||
04cb Fuji Photo Film Co., Ltd
|
||||
@ -5092,6 +5178,8 @@
|
||||
04d4 LSI Logic, Inc.
|
||||
04d5 Forte Technologies, Inc.
|
||||
04d6 Mentor Graphics
|
||||
e301 Bio-Key TouchLock XL All Weather Keyless Bio-Lock with Fingerprint Recognition
|
||||
e302 ZC3202 [4GB Green Book Digital Quran Reading Pen For Home Teaching Quran]
|
||||
04d7 Oki Semiconductor
|
||||
1be4 Bluetooth Device
|
||||
04d8 Microchip Technology, Inc.
|
||||
@ -5102,6 +5190,7 @@
|
||||
0032 PICkit1
|
||||
0033 PICkit2
|
||||
0036 PICkit Serial Analyzer
|
||||
00dd MCP2221(a) UART/I2C Bridge
|
||||
00e0 PIC32 Starter Board
|
||||
04cd 28Cxxx EEPROM Programmer
|
||||
0a04 AGP LIN Serial Analyzer
|
||||
@ -5117,6 +5206,9 @@
|
||||
9015 ICD 4 In-Circuit Debugger
|
||||
c001 PicoLCD 20x4
|
||||
e11c TL866CS EEPROM Programmer [MiniPRO]
|
||||
e72e YuanCon
|
||||
e7ee travisgeis.com Bike Light
|
||||
ec72 Joystick with Rotary Switch Creative Electronics Ltd
|
||||
ed16 BeamiRC 2.0 CNC remote controller analoge
|
||||
edb4 micro PLC (ATSAMD51G19A) [Black Brix ECU II]
|
||||
edb5 ATMEGA32U4 [Black Brix ECU]
|
||||
@ -5142,6 +5234,8 @@
|
||||
0006 Wired Keyboard (78/79 key) [RPI Wired Keyboard 5]
|
||||
0022 Portable Keyboard
|
||||
0129 Keyboard [KBPV8000]
|
||||
0169 Keyboard
|
||||
0198 Keyboard
|
||||
0348 Keyboard
|
||||
0407 Keyboard [TEX Shinobi]
|
||||
048e Optical Mouse
|
||||
@ -5565,7 +5659,7 @@
|
||||
685c GT-I9250 Phone [Galaxy Nexus] (Mass storage mode)
|
||||
685d GT-I9100 Phone [Galaxy S II] (Download mode)
|
||||
685e GT-I9100 / GT-C3350 Phones (USB Debugging mode)
|
||||
6860 Galaxy A5 (MTP)
|
||||
6860 Galaxy series, misc. (MTP mode)
|
||||
6863 Galaxy series, misc. (tethering mode)
|
||||
6864 GT-I9070 (network tethering, USB debugging enabled)
|
||||
6865 Galaxy (PTP mode)
|
||||
@ -5723,6 +5817,8 @@
|
||||
b5db HP Webcam
|
||||
b604 Integrated Camera (1280x720@30)
|
||||
b681 ThinkPad T490 Webcam
|
||||
b71a Integrated IR Camera
|
||||
b76b SunplusIT Inc [HP HD Camera]
|
||||
04f3 Elan Microelectronics Corp.
|
||||
000a Touchscreen
|
||||
0103 ActiveJet K-2024 Multimedia Keyboard
|
||||
@ -5740,6 +5836,7 @@
|
||||
0381 Touchscreen
|
||||
04a0 Dream Cheeky Stress/Panic Button
|
||||
0c28 fingerprint sensor [FeinTech FPS00200]
|
||||
0c3d Elan:Fingerprint
|
||||
2234 Touchscreen
|
||||
04f4 Harting Elektronik, Inc.
|
||||
04f5 Fujitsu-ICL Systems, Inc.
|
||||
@ -6004,6 +6101,7 @@
|
||||
0240 MFC-J950DN
|
||||
0245 MFC-9560CDW
|
||||
0248 DCP-7055 scanner/printer
|
||||
024a DCP-7065DN
|
||||
024e MFC-7460DN
|
||||
0253 DCP-J125
|
||||
0254 DCP-J315W
|
||||
@ -6280,6 +6378,7 @@
|
||||
2043 QL-710W Label Printer
|
||||
2044 QL-720NW Label Printer
|
||||
204d QL-720NW Label Printer (mass storage mode)
|
||||
2060 PT-E550W P-touch Label Printer
|
||||
2061 PT-P700 P-touch Label Printer
|
||||
2064 PT-P700 P-touch Label Printer RemovableDisk
|
||||
2074 PT-D600 P-touch Label Printer
|
||||
@ -6603,6 +6702,7 @@
|
||||
0535 LIH TZU Electric Co., Ltd
|
||||
0536 Hand Held Products (Welch Allyn, Inc.)
|
||||
01a0 PDT
|
||||
01ca IT4800 Area Imager
|
||||
0537 Inventec Corp.
|
||||
0538 Caldera International, Inc. (SCO)
|
||||
0539 Shyh Shiun Terminals Co., Ltd
|
||||
@ -6876,7 +6976,9 @@
|
||||
0485 MHS-PM5 HD camcorder
|
||||
04cb WALKMAN NWZ-E354
|
||||
0541 DSC-HX100V [Cybershot Digital Still Camera]
|
||||
0568 DSC-H100 in Mass Storage mode
|
||||
05c4 DualShock 4 [CUH-ZCT1x]
|
||||
0643 DSC-H100 in PTP/MTP mode
|
||||
0689 Walkman NWZ-B173F
|
||||
06bb WALKMAN NWZ-F805
|
||||
06c3 RC-S380
|
||||
@ -6890,7 +6992,9 @@
|
||||
088c Portable Headphone Amplifier
|
||||
08b7 ILCE-6000 (aka Alpha-6000) in MTP mode
|
||||
094e ILCE-6000 (aka Alpha-6000) in PC Remote mode
|
||||
098d Walkman NWZ-B183F
|
||||
0994 ILCE-6000 (aka Alpha-6000) in charging mode
|
||||
09c2 D33021 Storage
|
||||
09cc DualShock 4 [CUH-ZCT2x]
|
||||
0ba0 Dualshock4 Wireless Adaptor
|
||||
0bb5 Headset MDR-1000X
|
||||
@ -7261,8 +7365,12 @@
|
||||
039d DTH-W1320 [MobileStudio Pro 16] internal hub
|
||||
03aa DTH-W1620 [MobileStudio Pro 16] tablet
|
||||
03ac DTH-W1620 [MobileStudio Pro 16] touchscreen
|
||||
03b2 DTH167 [Cintiq Pro 16] tablet
|
||||
03b3 DTH167 [Cintiq Pro 16] touchscreen
|
||||
03c5 CTL-4100WL [Intuos BT (S)]
|
||||
03c7 CTL-6100WL [Intuos BT (M)]
|
||||
03dc PTH-460 [Intuos Pro (S)] tablet
|
||||
03dd PTH-460 [Intuos Pro BT (S)] tablet
|
||||
0400 PenPartner 4x5
|
||||
4001 TPC4001
|
||||
4004 TPC4004
|
||||
@ -7436,6 +7544,7 @@
|
||||
1300 SoftK56 Data Fax Voice CARP
|
||||
1301 Modem Enumerator
|
||||
1328 TrendNet TFM-561 modem
|
||||
1340 CX93010 ACF Modem
|
||||
1804 HP Dock Audio
|
||||
2000 SoftGate 802.11 Adapter
|
||||
2002 SoftGate 802.11 Adapter
|
||||
@ -7564,9 +7673,10 @@
|
||||
057e Nintendo Co., Ltd
|
||||
0300 USB-EXI Adapter (GCP-2000)
|
||||
0304 RVT-H Reader
|
||||
0305 Broadcom BCM2045A Bluetooth Radio [Nintendo Wii]
|
||||
0305 Broadcom BCM2045A Bluetooth Radio [Nintendo Wii/Wii U]
|
||||
0306 Wii Remote Controller RVL-003
|
||||
0337 Wii U GameCube Controller Adapter
|
||||
0341 DRH GamePad Host [Nintendo Wii U]
|
||||
2000 Switch
|
||||
2006 Joy-Con L
|
||||
2007 Joy-Con R
|
||||
@ -7816,6 +7926,7 @@
|
||||
0304 U2SCX-LVD (SCSI Converter)
|
||||
b000 REX-USB60
|
||||
b020 REX-USB60F
|
||||
b022 RTX-USB60F
|
||||
0585 FlashPoint Technology, Inc.
|
||||
0001 Digital Camera
|
||||
0002 Digital Camera
|
||||
@ -8049,6 +8160,7 @@
|
||||
106b Rugged Mini HDD
|
||||
106d Porsche Design Mobile Drive
|
||||
106e Porsche Design Desktop Drive
|
||||
1093 Rugged
|
||||
1094 Rugged THB
|
||||
1095 Rugged
|
||||
a601 HardDrive
|
||||
@ -8081,6 +8193,7 @@
|
||||
0003 CVA124E Cable Voice Adapter (WDM)
|
||||
0004 CVA122E Cable Voice Adapter (WDM)
|
||||
0008 STA1520 Tuning Adapter
|
||||
0009 Console
|
||||
0a00 Integrated Management Controller Hub
|
||||
0a01 Virtual Keyboard/Mouse
|
||||
0a02 Virtual Mass Storage
|
||||
@ -8091,7 +8204,7 @@
|
||||
4002 Bluetooth Headset Series 2
|
||||
4003 Bluetooth Headset Series 2 in DFU mode
|
||||
400d SoundLink Color II speaker in DFU mode
|
||||
40fe SoundLink Color II speaker
|
||||
40fe SoundLink Color II / Flex
|
||||
bc50 SoundLink Wireless Mobile speaker
|
||||
bc51 SoundLink Wireless Mobile speaker in DFU mode
|
||||
05a8 Spacetec IMC Corp.
|
||||
@ -8208,6 +8321,8 @@
|
||||
1003 Hub in Pro Keyboard [Mitsumi, A1048]
|
||||
1006 Hub in Aluminum Keyboard
|
||||
1008 Mini DisplayPort to Dual-Link DVI Adapter
|
||||
1009 iBus Hub
|
||||
100c Nova Hub
|
||||
1101 Speakers
|
||||
1105 Audio in LED Cinema Display
|
||||
1107 Thunderbolt Display Audio
|
||||
@ -8251,18 +8366,24 @@
|
||||
1299 iPod Touch 3.Gen
|
||||
129a iPad
|
||||
129c iPhone 4(CDMA)
|
||||
129d iPhone
|
||||
129e iPod Touch 4.Gen
|
||||
129f iPad 2
|
||||
12a0 iPhone 4S
|
||||
12a1 iPhone
|
||||
12a2 iPad 2 (3G; 64GB)
|
||||
12a3 iPad 2 (CDMA)
|
||||
12a4 iPad 3 (wifi)
|
||||
12a5 iPad 3 (CDMA)
|
||||
12a6 iPad 3 (3G, 16 GB)
|
||||
12a8 iPhone 5/5C/5S/6/SE
|
||||
12a7 TV Device
|
||||
12a8 iPhone 5/5C/5S/6/SE/7/8/X
|
||||
12a9 iPad 2
|
||||
12aa iPod Touch 5.Gen [A1421]
|
||||
12ab iPad 4/Mini1
|
||||
12ac iPhone
|
||||
12af Watch
|
||||
12b0 HomePod
|
||||
1300 iPod Shuffle
|
||||
1301 iPod Shuffle 2.Gen
|
||||
1302 iPod Shuffle 3.Gen
|
||||
@ -8273,7 +8394,12 @@
|
||||
1398 Smart Battery Case
|
||||
1401 Modem
|
||||
1402 Ethernet Adapter [A1277]
|
||||
1460 Digital AV Multiport Adapter
|
||||
1461 VGA Multiport Adapter
|
||||
1463 HDMI Adapter
|
||||
1500 SuperDrive [A1379]
|
||||
1624 Nova
|
||||
1625 iBus
|
||||
8005 OHCI Root Hub Simulation
|
||||
8006 EHCI Root Hub Simulation
|
||||
8007 XHCI Root Hub USB 2.0 Simulation
|
||||
@ -8301,6 +8427,7 @@
|
||||
8286 Bluetooth Host Controller
|
||||
8289 Bluetooth Host Controller
|
||||
828c Bluetooth Host Controller
|
||||
828d Bluetooth Host Controller
|
||||
8290 Bluetooth Host Controller
|
||||
8300 Built-in iSight (no firmware loaded)
|
||||
8403 Internal Memory Card Reader
|
||||
@ -8440,6 +8567,7 @@
|
||||
03b1 Webcam
|
||||
03bc HP Wide Vision HD Integrated Webcam
|
||||
03cb HP Wide Vision HD Integrated Webcam
|
||||
03d2 HP TrueVision HD Camera
|
||||
0403 Webcam
|
||||
041b HP 2.0MP High Definition Webcam
|
||||
05c9 Semtech Corp.
|
||||
@ -8730,6 +8858,7 @@
|
||||
b018 Multi-Card Reader
|
||||
b047 SDHC Reader [RW047-7000]
|
||||
b051 microSD RDR UHS-I Card Reader [LRWM03U-7000]
|
||||
b054 Dual-Slot Reader [LRW400U]
|
||||
ba02 Workflow CFR1
|
||||
ba0a Workflow DD512
|
||||
c753 JumpDrive TwistTurn
|
||||
@ -8936,7 +9065,7 @@
|
||||
00f2 Keyboard (Labtec Ultra Flat Keyboard)
|
||||
1002 Mobius actioncam (webcam mode)
|
||||
6871 Mouse
|
||||
8611 NTK96550 based camera
|
||||
8611 NTK96550-based camera (mass storage mode)
|
||||
0604 Jean Co., Ltd
|
||||
0605 Anchor C&C Co., Ltd
|
||||
0606 Royal Information Electronics Co., Ltd
|
||||
@ -17502,7 +17631,7 @@
|
||||
3940 external DVD burner ECD819-SU3
|
||||
3960 INIC-3639
|
||||
3e40 ZALMAN ZM-VE350
|
||||
13fe Kingston Technology Company Inc.
|
||||
13fe Phison Electronics Corp.
|
||||
1a00 512MB/1GB Flash Drive
|
||||
1a23 512MB Flash Drive
|
||||
1d00 DataTraveler 2.0 1GB/4GB Flash Drive / Patriot Xporter 4GB Flash Drive
|
||||
@ -23072,10 +23201,11 @@
|
||||
0832 UT2000/UT3000 Digital Storage Oscilloscope
|
||||
595a IRTOUCHSYSTEMS Co. Ltd.
|
||||
0001 Touchscreen
|
||||
5986 Acer, Inc
|
||||
0100 Orbicam
|
||||
5986 Bison Electronics Inc.
|
||||
0100 Acer Orbicam
|
||||
0101 USB2.0 Camera
|
||||
0102 Crystal Eye Webcam
|
||||
0102 Acer Crystal Eye Webcam
|
||||
0105 Acer Crystal Eye Webcam
|
||||
0137 HP Webcam
|
||||
0141 BisonCam, NB Pro
|
||||
0149 HP Webcam-101
|
||||
@ -23083,7 +23213,7 @@
|
||||
01a6 Lenovo Integrated Webcam
|
||||
01a7 Lenovo Integrated Webcam
|
||||
01a9 Lenovo Integrated Webcam
|
||||
0200 OrbiCam
|
||||
0200 Acer OrbiCam
|
||||
0202 Fujitsu Webcam
|
||||
0203 BisonCam NB Pro 1300
|
||||
0205 Lenovo EasyCamera
|
||||
|
@ -270,7 +270,7 @@ cat MicCorUEFCA2011_2011-06-27.esl >> db.esl
|
||||
|
||||
# Optionally add Microsoft Corporation KEK CA 2011. Recommended if either of the
|
||||
# Microsoft keys is used as the official UEFI revocation database is signed with this
|
||||
# key. The revocation database can be updated with <citerefentry><refentrytitle>fwupdmgr</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
|
||||
# key. The revocation database can be updated with <citerefentry project='man-pages'><refentrytitle>fwupdmgr</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
|
||||
cat MicCorKEKCA2011_2011-06-24.esl >> KEK.esl
|
||||
|
||||
sign-efi-sig-list -c PK.crt -k PK.key PK PK.esl PK.auth
|
||||
|
@ -1405,7 +1405,7 @@ After=sys-subsystem-net-devices-ens1.device</programlisting>
|
||||
|
||||
<orderedlist>
|
||||
<listitem><para>The user's home directory is bind mounted from the host into
|
||||
<filename>/run/hosts/home/</filename>.</para></listitem>
|
||||
<filename>/run/host/home/</filename>.</para></listitem>
|
||||
|
||||
<listitem><para>An additional UID/GID mapping is added that maps the host user's UID/GID to a
|
||||
container UID/GID, allocated from the 60514…60577 range.</para></listitem>
|
||||
|
@ -131,6 +131,14 @@
|
||||
all suitable TPM2 devices currently discovered.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--graceful</option></term>
|
||||
|
||||
<listitem><para>If no TPM2 firmware, kernel subsystem, kernel driver or device support is found, exit
|
||||
with exit status 0 (i.e. indicate success). If this is not specified any attempt to measure without a
|
||||
TPM2 device will cause the invocation to fail.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<xi:include href="standard-options.xml" xpointer="help" />
|
||||
<xi:include href="standard-options.xml" xpointer="version" />
|
||||
|
||||
|
@ -77,29 +77,16 @@
|
||||
<varlistentry>
|
||||
<term>suspend-then-hibernate</term>
|
||||
|
||||
<listitem><para>A low power state where initially user.slice unit is freezed.
|
||||
If the hardware supports low-battery alarms (ACPI _BTP), then the system is
|
||||
first suspended (the state is stored in RAM) and then hibernates if the system
|
||||
is woken up by the hardware via ACPI low-battery signal. Unit user.slice is
|
||||
thawed when system returns from hibernation. If the hardware does not support
|
||||
low-battery alarms (ACPI _BTP), then the system is suspended based on battery's
|
||||
current percentage capacity. If the current battery capacity is higher than 5%, the
|
||||
system suspends for interval calculated using battery discharge rate per hour or
|
||||
<command>HibernateDelaySec=</command>
|
||||
if former is not available.
|
||||
Battery discharge rate per hour is stored in a file which is created after
|
||||
initial suspend-resume cycle. The value is calculated using battery decreasing
|
||||
charge level over a timespan for which system was suspended. For each battery
|
||||
connected to the system, there is a unique entry. After RTC alarm wakeup from
|
||||
suspend, battery discharge rate per hour is again estimated. If the current battery
|
||||
charge level is equal to or less than 5%, the system will be hibernated (the state
|
||||
is then stored on disk) else the system goes back to suspend for the interval
|
||||
calculated using battery discharge rate per hour.
|
||||
In case of manual wakeup, if the battery was discharged while the system was
|
||||
suspended, the battery discharge rate is estimated and stored on the filesystem.
|
||||
In case the system is woken up by the hardware via the ACPI low-battery signal,
|
||||
then it hibernates.
|
||||
</para></listitem>
|
||||
<listitem>
|
||||
<para>A low power state where the system is initially suspended (the state is stored in
|
||||
RAM). If the system supports low-battery alarms (ACPI _BTP), then the system will be woken up by
|
||||
the ACPI low-battery signal and hibernated (the state is then stored on disk). Also, if not
|
||||
interrupted within the timespan specified by <varname>HibernateDelaySec=</varname> or the estimated
|
||||
timespan until the system battery charge level goes down to 5%, then the system will be woken up by the
|
||||
RTC alarm and hibernated. The estimated timespan is calculated from the change of the battery
|
||||
capacity level after the time specified by <varname>SuspendEstimationSec=</varname> or when
|
||||
the system is woken up from the suspend.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
@ -189,13 +176,28 @@
|
||||
uses the value of <varname>SuspendState=</varname> when suspending and the value of <varname>HibernateState=</varname> when hibernating.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>HibernateDelaySec=</varname></term>
|
||||
<listitem><para>The amount of time the system spends in suspend mode
|
||||
before the RTC alarm wakes the system, before the battery discharge rate
|
||||
can be estimated and used instead to calculate the suspension interval.
|
||||
<citerefentry><refentrytitle>systemd-suspend-then-hibernate.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Defaults
|
||||
to 2h.</para></listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The amount of time the system spends in suspend mode before the system is
|
||||
automatically put into hibernate mode. Only used by
|
||||
<citerefentry><refentrytitle>systemd-suspend-then-hibernate.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||
If the system has a battery, then defaults to the estimated timespan until the system battery charge level goes down to 5%.
|
||||
If the system has no battery, then defaults to 2h.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>SuspendEstimationSec=</varname></term>
|
||||
|
||||
<listitem>
|
||||
<para>The RTC alarm will wake the system after the specified timespan to measure the system battery
|
||||
capacity level and estimate battery discharging rate, which is used for estimating timespan until the system battery charge
|
||||
level goes down to 5%. Only used by
|
||||
<citerefentry><refentrytitle>systemd-suspend-then-hibernate.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||
Defaults to 2h.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
@ -3113,7 +3113,13 @@ StandardInputData=V2XigLJyZSBubyBzdHJhbmdlcnMgdG8gbG92ZQpZb3Uga25vdyB0aGUgcnVsZX
|
||||
authenticated credentials improves security as credentials are not stored in plaintext and only
|
||||
authenticated and decrypted into plaintext the moment a service requiring them is started. Moreover,
|
||||
credentials may be bound to the local hardware and installations, so that they cannot easily be
|
||||
analyzed offline, or be generated externally.</para>
|
||||
analyzed offline, or be generated externally. When <varname>DevicePolicy=</varname> is set to
|
||||
<literal>closed</literal> or <literal>strict</literal>, or set to <literal>auto</literal> and
|
||||
<varname>DeviceAllow=</varname> is set, or <varname>PrivateDevices=</varname> is set, then this
|
||||
setting adds <filename>/dev/tpmrm0</filename> with <constant>rw</constant> mode to
|
||||
<varname>DeviceAllow=</varname>. See
|
||||
<citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for the details about <varname>DevicePolicy=</varname> or <varname>DeviceAllow=</varname>.</para>
|
||||
|
||||
<para>The credential files/IPC sockets must be accessible to the service manager, but don't have to
|
||||
be directly accessible to the unit's processes: the credential data is read and copied into separate,
|
||||
|
@ -75,11 +75,11 @@
|
||||
<term><varname>login.issue</varname></term>
|
||||
<listitem>
|
||||
<para>The data of this credential is written to
|
||||
<filename>/etc/issue.d/50-provision.conf</filename>, if the file doesn't exist
|
||||
yet. <citerefentry><refentrytitle>agetty</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
reads this file and shows its contents at the login prompt of terminal logins. See <citerefentry
|
||||
project='man-pages'><refentrytitle>issue</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
|
||||
details.</para>
|
||||
<filename>/etc/issue.d/50-provision.conf</filename>, if the file doesn't exist yet.
|
||||
<citerefentry project='man-pages'><refentrytitle>agetty</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
reads this file and shows its contents at the login prompt of terminal logins. See
|
||||
<citerefentry project='man-pages'><refentrytitle>issue</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for details.</para>
|
||||
|
||||
<para>Consumed by <filename>/usr/lib/tmpfiles.d/provision.conf</filename>, see
|
||||
<citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
|
||||
@ -90,12 +90,11 @@
|
||||
<term><varname>login.motd</varname></term>
|
||||
<listitem>
|
||||
<para>The data of this credential is written to <filename>/etc/motd.d/50-provision.conf</filename>,
|
||||
if the file doesn't exist
|
||||
yet. <citerefentry><refentrytitle>pam_motd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
if the file doesn't exist yet.
|
||||
<citerefentry project='man-pages'><refentrytitle>pam_motd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
reads this file and shows its contents as "message of the day" during terminal logins. See
|
||||
<citerefentry
|
||||
project='man-pages'><refentrytitle>motd</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
|
||||
details.</para>
|
||||
<citerefentry project='man-pages'><refentrytitle>motd</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for details.</para>
|
||||
|
||||
<para>Consumed by <filename>/usr/lib/tmpfiles.d/provision.conf</filename>, see
|
||||
<citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
|
||||
@ -106,9 +105,9 @@
|
||||
<term><varname>network.hosts</varname></term>
|
||||
<listitem>
|
||||
<para>The data of this credential is written to <filename>/etc/hosts</filename>, if the file
|
||||
doesn't exist yet. See <citerefentry
|
||||
project='man-pages'><refentrytitle>hosts</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
|
||||
details.</para>
|
||||
doesn't exist yet. See
|
||||
<citerefentry project='man-pages'><refentrytitle>hosts</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for details.</para>
|
||||
|
||||
<para>Consumed by <filename>/usr/lib/tmpfiles.d/provision.conf</filename>, see
|
||||
<citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
|
||||
|
@ -90,7 +90,7 @@ A+ /path-or-glob/to/append/acls/recursively - - - - POSIX
|
||||
|
||||
<para><command>systemd-tmpfiles</command> uses this configuration to create volatile files and
|
||||
directories during boot and to do periodic cleanup afterwards. See
|
||||
<citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
|
||||
<citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry> for
|
||||
the description of <filename>systemd-tmpfiles-setup.service</filename>,
|
||||
<filename>systemd-tmpfiles-clean.service</filename>, and associated units.</para>
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
if conf.get('ENABLE_NETWORKD') == 1
|
||||
install_data('80-6rd-tunnel.network',
|
||||
'80-container-host0.network',
|
||||
'80-container-vb.network',
|
||||
'80-container-ve.network',
|
||||
'80-container-vz.network',
|
||||
'80-ethernet.network.example',
|
||||
|
@ -6,7 +6,7 @@ KERNEL!="event*", GOTO="evdev_end"
|
||||
# Execute the match patterns below, from least-to-most specific.
|
||||
|
||||
# Device matching the modalias string (bustype, vendor, product, version, other properties)
|
||||
IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=evdev:",
|
||||
IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=evdev:", \
|
||||
ENV{.HAVE_HWDB_PROPERTIES}="1"
|
||||
|
||||
# AT keyboard matching by the machine's DMI data
|
||||
|
@ -11,6 +11,7 @@ rules = [
|
||||
'60-drm.rules',
|
||||
'60-evdev.rules',
|
||||
'60-fido-id.rules',
|
||||
'60-infiniband.rules',
|
||||
'60-input-id.rules',
|
||||
'60-persistent-alsa.rules',
|
||||
'60-persistent-input.rules',
|
||||
|
@ -31,11 +31,11 @@ items = [['busctl', ''],
|
||||
['systemd-path', ''],
|
||||
['systemd-run', ''],
|
||||
['udevadm', ''],
|
||||
['kernel-install', 'ENABLE_KERNEL_INSTALL'],
|
||||
['bootctl', 'HAVE_GNU_EFI'],
|
||||
['coredumpctl', 'ENABLE_COREDUMP'],
|
||||
['homectl', 'ENABLE_HOMED'],
|
||||
['hostnamectl', 'ENABLE_HOSTNAMED'],
|
||||
['kernel-install', 'ENABLE_KERNEL_INSTALL'],
|
||||
['localectl', 'ENABLE_LOCALED'],
|
||||
['loginctl', 'ENABLE_LOGIND'],
|
||||
['machinectl', 'ENABLE_MACHINED'],
|
||||
@ -44,7 +44,9 @@ items = [['busctl', ''],
|
||||
['portablectl', 'ENABLE_PORTABLED'],
|
||||
['resolvectl', 'ENABLE_RESOLVE'],
|
||||
['systemd-cryptenroll', 'HAVE_LIBCRYPTSETUP'],
|
||||
['systemd-dissect', 'HAVE_BLKID'],
|
||||
['systemd-resolve', 'ENABLE_RESOLVE'],
|
||||
['systemd-sysext', 'ENABLE_SYSEXT'],
|
||||
['timedatectl', 'ENABLE_TIMEDATED']]
|
||||
|
||||
foreach item : items
|
||||
|
@ -5,3 +5,4 @@ modifications are applied:
|
||||
- btrfs.h: drop '__user' attributes
|
||||
- if.h: drop '#include <linux/compiler.h>' and '__user' attributes
|
||||
- stddef.h: drop '#include <linux/compiler_types.h>'
|
||||
- guard linux/fs.h include to avoid conflict with glibc 2.36
|
||||
|
@ -26,7 +26,9 @@ extern "C" {
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/ioctl.h>
|
||||
#if WANT_LINUX_FS_H
|
||||
#include <linux/fs.h>
|
||||
#endif
|
||||
|
||||
#define BTRFS_IOCTL_MAGIC 0x94
|
||||
#define BTRFS_VOL_NAME_MAX 255
|
||||
|
@ -7,4 +7,5 @@ for i in *.h */*.h; do
|
||||
curl --fail "https://raw.githubusercontent.com/torvalds/linux/master/include/uapi/linux/$i" -o "$i"
|
||||
|
||||
sed -r -i -e 's/__user //g' -e '/^#include <linux\/compiler(_types)?.h>/ d' "$i"
|
||||
sed -r -i 's/^(#include <linux\/fs\.h>)/#if WANT_LINUX_FS_H\n\1\n#endif/' "$i"
|
||||
done
|
||||
|
@ -368,6 +368,10 @@ int rename_process(const char name[]) {
|
||||
strncpy(program_invocation_name, name, k);
|
||||
if (l > k)
|
||||
truncated = true;
|
||||
|
||||
/* Also update the short name. */
|
||||
char *p = strrchr(program_invocation_name, '/');
|
||||
program_invocation_short_name = p ? p + 1 : program_invocation_name;
|
||||
}
|
||||
|
||||
/* Third step, completely replace the argv[] array the kernel maintains for us. This requires privileges, but
|
||||
|
@ -450,7 +450,9 @@ static const char *get_efi_arch(void) {
|
||||
if (r == -ENOENT)
|
||||
return EFI_MACHINE_TYPE_NAME;
|
||||
if (r < 0) {
|
||||
log_warning_errno(r, "Error reading EFI firmware word size, assuming '%i': %m", __WORDSIZE);
|
||||
log_warning_errno(r,
|
||||
"Error reading EFI firmware word size, assuming machine type '%s': %m",
|
||||
EFI_MACHINE_TYPE_NAME);
|
||||
return EFI_MACHINE_TYPE_NAME;
|
||||
}
|
||||
|
||||
@ -460,9 +462,9 @@ static const char *get_efi_arch(void) {
|
||||
return "ia32";
|
||||
|
||||
log_warning(
|
||||
"Unknown EFI firmware word size '%s', using default word size '%i' instead.",
|
||||
"Unknown EFI firmware word size '%s', using machine type '%s'.",
|
||||
platform_size,
|
||||
__WORDSIZE);
|
||||
EFI_MACHINE_TYPE_NAME);
|
||||
#endif
|
||||
|
||||
return EFI_MACHINE_TYPE_NAME;
|
||||
@ -1419,7 +1421,7 @@ static int install_entry_token(void) {
|
||||
|
||||
r = write_string_file("/etc/kernel/entry-token", arg_entry_token, WRITE_STRING_FILE_CREATE|WRITE_STRING_FILE_ATOMIC|WRITE_STRING_FILE_MKDIR_0755);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to write entry token '%s' to /etc/kernel/entry-token", arg_entry_token);
|
||||
return log_error_errno(r, "Failed to write entry token '%s' to /etc/kernel/entry-token: %m", arg_entry_token);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ static uint64_t ticks_read(void) {
|
||||
#elif defined(__aarch64__)
|
||||
static uint64_t ticks_read(void) {
|
||||
uint64_t val;
|
||||
__asm__ volatile ("mrs %0, cntpct_el0" : "=r" (val));
|
||||
asm volatile("mrs %0, cntvct_el0" : "=r"(val));
|
||||
return val;
|
||||
}
|
||||
#else
|
||||
@ -44,7 +44,7 @@ static uint64_t ticks_read(void) {
|
||||
#if defined(__aarch64__)
|
||||
static uint64_t ticks_freq(void) {
|
||||
uint64_t freq;
|
||||
__asm__ volatile ("mrs %0, cntfrq_el0": "=r" (freq));
|
||||
asm volatile("mrs %0, cntfrq_el0" : "=r"(freq));
|
||||
return freq;
|
||||
}
|
||||
#else
|
||||
|
@ -270,10 +270,22 @@ char16_t *xstr8_to_path(const char *str8) {
|
||||
}
|
||||
|
||||
void mangle_stub_cmdline(char16_t *cmdline) {
|
||||
char16_t *p = cmdline;
|
||||
|
||||
for (; *cmdline != '\0'; cmdline++)
|
||||
/* Convert ASCII control characters to spaces. */
|
||||
if (*cmdline <= 0x1F)
|
||||
*cmdline = ' ';
|
||||
|
||||
/* chomp the trailing whitespaces */
|
||||
while (cmdline != p) {
|
||||
--cmdline;
|
||||
|
||||
if (*cmdline != ' ')
|
||||
break;
|
||||
|
||||
*cmdline = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
EFI_STATUS file_read(EFI_FILE *dir, const char16_t *name, UINTN off, UINTN size, char **ret, UINTN *ret_size) {
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "tpm-pcr.h"
|
||||
#include "tpm2-util.h"
|
||||
|
||||
static bool arg_graceful = false;
|
||||
static char *arg_tpm2_device = NULL;
|
||||
static char **arg_banks = NULL;
|
||||
|
||||
@ -33,6 +34,7 @@ static int help(int argc, char *argv[], void *userdata) {
|
||||
" --version Print version\n"
|
||||
" --bank=DIGEST Select TPM bank (SHA1, SHA256)\n"
|
||||
" --tpm2-device=PATH Use specified TPM2 device\n"
|
||||
" --graceful Exit gracefully if no TPM2 device is found\n"
|
||||
"\nSee the %2$s for details.\n",
|
||||
program_invocation_short_name,
|
||||
link,
|
||||
@ -49,6 +51,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
ARG_VERSION = 0x100,
|
||||
ARG_BANK,
|
||||
ARG_TPM2_DEVICE,
|
||||
ARG_GRACEFUL,
|
||||
};
|
||||
|
||||
static const struct option options[] = {
|
||||
@ -56,6 +59,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
{ "version", no_argument, NULL, ARG_VERSION },
|
||||
{ "bank", required_argument, NULL, ARG_BANK },
|
||||
{ "tpm2-device", required_argument, NULL, ARG_TPM2_DEVICE },
|
||||
{ "graceful", no_argument, NULL, ARG_GRACEFUL },
|
||||
{}
|
||||
};
|
||||
|
||||
@ -103,6 +107,10 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
break;
|
||||
}
|
||||
|
||||
case ARG_GRACEFUL:
|
||||
arg_graceful = true;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
return -EINVAL;
|
||||
|
||||
@ -172,6 +180,11 @@ static int run(int argc, char *argv[]) {
|
||||
if (isempty(word))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "String to measure cannot be empty, refusing.");
|
||||
|
||||
if (arg_graceful && tpm2_support() != TPM2_SUPPORT_FULL) {
|
||||
log_notice("No complete TPM2 support detected, exiting gracefully.");
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
length = strlen(word);
|
||||
|
||||
/* Skip logic if sd-stub is not used, after all PCR 11 might have a very different purpose then. */
|
||||
|
@ -39,16 +39,20 @@ struct {
|
||||
SEC("lsm/file_open")
|
||||
int BPF_PROG(restrict_filesystems, struct file *file, int ret)
|
||||
{
|
||||
unsigned long magic_number;
|
||||
unsigned long raw_magic_number;
|
||||
uint64_t cgroup_id;
|
||||
uint32_t *value, *magic_map, zero = 0, *is_allow;
|
||||
uint32_t *value, *magic_map, magic_number, zero = 0, *is_allow;
|
||||
|
||||
/* ret is the return value from the previous BPF program or 0 if it's
|
||||
* the first hook */
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
|
||||
BPF_CORE_READ_INTO(&magic_number, file, f_inode, i_sb, s_magic);
|
||||
BPF_CORE_READ_INTO(&raw_magic_number, file, f_inode, i_sb, s_magic);
|
||||
/* super_block.s_magic is unsigned long, but magic_map keys are
|
||||
* uint32_t. Using s_magic as-is would fail on big-endian systems,
|
||||
* which have 64-bit unsigned long. So cast it. */
|
||||
magic_number = (uint32_t)raw_magic_number;
|
||||
|
||||
cgroup_id = bpf_get_current_cgroup_id();
|
||||
|
||||
|
@ -2635,25 +2635,24 @@ _pure_ static bool service_can_reload(Unit *u) {
|
||||
return !!s->exec_command[SERVICE_EXEC_RELOAD];
|
||||
}
|
||||
|
||||
static unsigned service_exec_command_index(Unit *u, ServiceExecCommand id, ExecCommand *current) {
|
||||
static unsigned service_exec_command_index(Unit *u, ServiceExecCommand id, const ExecCommand *current) {
|
||||
Service *s = SERVICE(u);
|
||||
unsigned idx = 0;
|
||||
ExecCommand *first, *c;
|
||||
|
||||
assert(s);
|
||||
assert(id >= 0);
|
||||
assert(id < _SERVICE_EXEC_COMMAND_MAX);
|
||||
|
||||
first = s->exec_command[id];
|
||||
const ExecCommand *first = s->exec_command[id];
|
||||
|
||||
/* Figure out where we are in the list by walking back to the beginning */
|
||||
for (c = current; c != first; c = c->command_prev)
|
||||
for (const ExecCommand *c = current; c != first; c = c->command_prev)
|
||||
idx++;
|
||||
|
||||
return idx;
|
||||
}
|
||||
|
||||
static int service_serialize_exec_command(Unit *u, FILE *f, ExecCommand *command) {
|
||||
static int service_serialize_exec_command(Unit *u, FILE *f, const ExecCommand *command) {
|
||||
_cleanup_free_ char *args = NULL, *p = NULL;
|
||||
Service *s = SERVICE(u);
|
||||
const char *type, *key;
|
||||
@ -2708,7 +2707,16 @@ static int service_serialize_exec_command(Unit *u, FILE *f, ExecCommand *command
|
||||
return log_oom();
|
||||
|
||||
key = strjoina(type, "-command");
|
||||
(void) serialize_item_format(f, key, "%s %u %s %s", service_exec_command_to_string(id), idx, p, args);
|
||||
|
||||
/* We use '+1234' instead of '1234' to mark the last command in a sequence.
|
||||
* This is used in service_deserialize_exec_command(). */
|
||||
(void) serialize_item_format(
|
||||
f, key,
|
||||
"%s %s%u %s %s",
|
||||
service_exec_command_to_string(id),
|
||||
command->command_next ? "" : "+",
|
||||
idx,
|
||||
p, args);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -2819,7 +2827,7 @@ int service_deserialize_exec_command(
|
||||
Service *s = SERVICE(u);
|
||||
int r;
|
||||
unsigned idx = 0, i;
|
||||
bool control, found = false;
|
||||
bool control, found = false, last = false;
|
||||
ServiceExecCommand id = _SERVICE_EXEC_COMMAND_INVALID;
|
||||
ExecCommand *command = NULL;
|
||||
_cleanup_free_ char *path = NULL;
|
||||
@ -2860,9 +2868,15 @@ int service_deserialize_exec_command(
|
||||
state = STATE_EXEC_COMMAND_INDEX;
|
||||
break;
|
||||
case STATE_EXEC_COMMAND_INDEX:
|
||||
/* PID 1234 is serialized as either '1234' or '+1234'. The second form is used to
|
||||
* mark the last command in a sequence. We warn if the deserialized command doesn't
|
||||
* match what we have loaded from the unit, but we don't need to warn if that is the
|
||||
* last command. */
|
||||
|
||||
r = safe_atou(arg, &idx);
|
||||
if (r < 0)
|
||||
return r;
|
||||
last = arg[0] == '+';
|
||||
|
||||
state = STATE_EXEC_COMMAND_PATH;
|
||||
break;
|
||||
@ -2907,6 +2921,8 @@ int service_deserialize_exec_command(
|
||||
s->control_command_id = id;
|
||||
} else if (command)
|
||||
s->main_command = command;
|
||||
else if (last)
|
||||
log_unit_debug(u, "Current command vanished from the unit file.");
|
||||
else
|
||||
log_unit_warning(u, "Current command vanished from the unit file, execution of the command list won't be resumed.");
|
||||
|
||||
|
@ -1092,6 +1092,20 @@ fail:
|
||||
return r;
|
||||
}
|
||||
|
||||
static bool shall_stop_on_isolate(Transaction *tr, Unit *u) {
|
||||
assert(tr);
|
||||
assert(u);
|
||||
|
||||
if (u->ignore_on_isolate)
|
||||
return false;
|
||||
|
||||
/* Is there already something listed for this? */
|
||||
if (hashmap_get(tr->jobs, u))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int transaction_add_isolate_jobs(Transaction *tr, Manager *m) {
|
||||
Unit *u;
|
||||
char *k;
|
||||
@ -1101,20 +1115,27 @@ int transaction_add_isolate_jobs(Transaction *tr, Manager *m) {
|
||||
assert(m);
|
||||
|
||||
HASHMAP_FOREACH_KEY(u, k, m->units) {
|
||||
Unit *o;
|
||||
|
||||
/* ignore aliases */
|
||||
/* Ignore aliases */
|
||||
if (u->id != k)
|
||||
continue;
|
||||
|
||||
if (u->ignore_on_isolate)
|
||||
continue;
|
||||
|
||||
/* No need to stop inactive jobs */
|
||||
/* No need to stop inactive units */
|
||||
if (UNIT_IS_INACTIVE_OR_FAILED(unit_active_state(u)) && !u->job)
|
||||
continue;
|
||||
|
||||
/* Is there already something listed for this? */
|
||||
if (hashmap_get(tr->jobs, u))
|
||||
if (!shall_stop_on_isolate(tr, u))
|
||||
continue;
|
||||
|
||||
/* Keep units that are triggered by units we want to keep around. */
|
||||
bool keep = false;
|
||||
UNIT_FOREACH_DEPENDENCY(o, u, UNIT_ATOM_TRIGGERED_BY)
|
||||
if (!shall_stop_on_isolate(tr, o)) {
|
||||
keep = true;
|
||||
break;
|
||||
}
|
||||
if (keep)
|
||||
continue;
|
||||
|
||||
r = transaction_add_job_and_dependencies(tr, JOB_STOP, u, tr->anchor_job, true, false, false, false, NULL);
|
||||
|
@ -4157,6 +4157,16 @@ int unit_patch_contexts(Unit *u) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
/* If there are encrypted credentials we might need to access the TPM. */
|
||||
ExecLoadCredential *cred;
|
||||
HASHMAP_FOREACH(cred, ec->load_credentials)
|
||||
if (cred->encrypted) {
|
||||
r = cgroup_add_device_allow(cc, "/dev/tpmrm0", "rw");
|
||||
if (r < 0)
|
||||
return r;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -4488,7 +4498,9 @@ static int log_kill(pid_t pid, int sig, void *userdata) {
|
||||
/* Don't log about processes marked with brackets, under the assumption that these are temporary processes
|
||||
only, like for example systemd's own PAM stub process. */
|
||||
if (comm && comm[0] == '(')
|
||||
return 0;
|
||||
/* Although we didn't log anything, as this callback is used in unit_kill_context we must return 1
|
||||
* here to let the manager know that a process was killed. */
|
||||
return 1;
|
||||
|
||||
log_unit_notice(userdata,
|
||||
"Killing process " PID_FMT " (%s) with signal SIG%s.",
|
||||
|
@ -169,16 +169,13 @@ int enroll_tpm2(struct crypt_device *cd,
|
||||
|
||||
log_debug_errno(r, "Failed to read TPM2 PCR public key, proceeding without: %m");
|
||||
pubkey_pcr_mask = 0;
|
||||
} else {
|
||||
/* Also try to load the signature JSON object, to verify that our enrollment will work. This is optional however. */
|
||||
} else if (signature_path) {
|
||||
/* Also try to load the signature JSON object, to verify that our enrollment will work.
|
||||
* This is optional however, skip it if it's not explicitly provided. */
|
||||
|
||||
r = tpm2_load_pcr_signature(signature_path, &signature_json);
|
||||
if (r < 0) {
|
||||
if (signature_path || r != -ENOENT)
|
||||
return log_debug_errno(r, "Failed to read TPM PCR signature: %m");
|
||||
|
||||
log_debug_errno(r, "Failed to read TPM2 PCR signature, proceeding without: %m");
|
||||
}
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to read TPM PCR signature: %m");
|
||||
}
|
||||
|
||||
r = tpm2_seal(device,
|
||||
|
@ -1,7 +1,8 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
#pragma once
|
||||
|
||||
#include "stdint.h"
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#define SHA256_DIGEST_SIZE 32
|
||||
|
||||
|
@ -46,7 +46,8 @@ int import_fork_tar_x(const char *path, pid_t *ret) {
|
||||
"--ignore-zeros",
|
||||
"--numeric-owner",
|
||||
"-C", path,
|
||||
"-px",
|
||||
"-pxf",
|
||||
"-",
|
||||
"--xattrs",
|
||||
"--xattrs-include=*",
|
||||
use_selinux ? "--selinux" : "--no-selinux",
|
||||
|
@ -390,7 +390,7 @@ static int dhcp_server_send_udp(sd_dhcp_server *server, be32_t destination,
|
||||
assert(server);
|
||||
assert(server->fd >= 0);
|
||||
assert(message);
|
||||
assert(len > sizeof(DHCPMessage));
|
||||
assert(len >= sizeof(DHCPMessage));
|
||||
|
||||
if (server->bind_to_interface) {
|
||||
msg.msg_control = &control;
|
||||
|
@ -80,24 +80,24 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_common_errors[] = {
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_NO_SUCH_DNSSD_SERVICE, ENOENT),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNSSD_SERVICE_EXISTS, EEXIST),
|
||||
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "FORMERR", EBADMSG),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "SERVFAIL", EHOSTDOWN),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "NXDOMAIN", ENXIO),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "NOTIMP", ENOSYS),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "REFUSED", EACCES),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "YXDOMAIN", EEXIST),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "YRRSET", EEXIST),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "NXRRSET", ENOENT),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "NOTAUTH", EACCES),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "NOTZONE", EREMOTE),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "BADVERS", EBADMSG),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "BADKEY", EKEYREJECTED),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "BADTIME", EBADMSG),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "BADMODE", EBADMSG),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "BADNAME", EBADMSG),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "BADALG", EBADMSG),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "BADTRUNC", EBADMSG),
|
||||
SD_BUS_ERROR_MAP(_BUS_ERROR_DNS "BADCOOKIE", EBADR),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_FORMERR, EBADMSG),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_SERVFAIL, EHOSTDOWN),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_NXDOMAIN, ENXIO),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_NOTIMP, ENOSYS),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_REFUSED, EACCES),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_YXDOMAIN, EEXIST),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_YRRSET, EEXIST),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_NXRRSET, ENOENT),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_NOTAUTH, EACCES),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_NOTZONE, EREMOTE),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_BADVERS, EBADMSG),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_BADKEY, EKEYREJECTED),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_BADTIME, EBADMSG),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_BADMODE, EBADMSG),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_BADNAME, EBADMSG),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_BADALG, EBADMSG),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_BADTRUNC, EBADMSG),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_DNS_BADCOOKIE, EBADR),
|
||||
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_NO_SUCH_TRANSFER, ENXIO),
|
||||
SD_BUS_ERROR_MAP(BUS_ERROR_TRANSFER_IN_PROGRESS, EBUSY),
|
||||
|
@ -79,7 +79,26 @@
|
||||
#define BUS_ERROR_STUB_LOOP "org.freedesktop.resolve1.StubLoop"
|
||||
#define BUS_ERROR_NO_SUCH_DNSSD_SERVICE "org.freedesktop.resolve1.NoSuchDnssdService"
|
||||
#define BUS_ERROR_DNSSD_SERVICE_EXISTS "org.freedesktop.resolve1.DnssdServiceExists"
|
||||
|
||||
#define _BUS_ERROR_DNS "org.freedesktop.resolve1.DnsError."
|
||||
#define BUS_ERROR_DNS_FORMERR _BUS_ERROR_DNS "FORMERR"
|
||||
#define BUS_ERROR_DNS_SERVFAIL _BUS_ERROR_DNS "SERVFAIL"
|
||||
#define BUS_ERROR_DNS_NXDOMAIN _BUS_ERROR_DNS "NXDOMAIN"
|
||||
#define BUS_ERROR_DNS_NOTIMP _BUS_ERROR_DNS "NOTIMP"
|
||||
#define BUS_ERROR_DNS_REFUSED _BUS_ERROR_DNS "REFUSED"
|
||||
#define BUS_ERROR_DNS_YXDOMAIN _BUS_ERROR_DNS "YXDOMAIN"
|
||||
#define BUS_ERROR_DNS_YRRSET _BUS_ERROR_DNS "YRRSET"
|
||||
#define BUS_ERROR_DNS_NXRRSET _BUS_ERROR_DNS "NXRRSET"
|
||||
#define BUS_ERROR_DNS_NOTAUTH _BUS_ERROR_DNS "NOTAUTH"
|
||||
#define BUS_ERROR_DNS_NOTZONE _BUS_ERROR_DNS "NOTZONE"
|
||||
#define BUS_ERROR_DNS_BADVERS _BUS_ERROR_DNS "BADVERS"
|
||||
#define BUS_ERROR_DNS_BADKEY _BUS_ERROR_DNS "BADKEY"
|
||||
#define BUS_ERROR_DNS_BADTIME _BUS_ERROR_DNS "BADTIME"
|
||||
#define BUS_ERROR_DNS_BADMODE _BUS_ERROR_DNS "BADMODE"
|
||||
#define BUS_ERROR_DNS_BADNAME _BUS_ERROR_DNS "BADNAME"
|
||||
#define BUS_ERROR_DNS_BADALG _BUS_ERROR_DNS "BADALG"
|
||||
#define BUS_ERROR_DNS_BADTRUNC _BUS_ERROR_DNS "BADTRUNC"
|
||||
#define BUS_ERROR_DNS_BADCOOKIE _BUS_ERROR_DNS "BADCOOKIE"
|
||||
|
||||
#define BUS_ERROR_NO_SUCH_TRANSFER "org.freedesktop.import1.NoSuchTransfer"
|
||||
#define BUS_ERROR_TRANSFER_IN_PROGRESS "org.freedesktop.import1.TransferInProgress"
|
||||
|
@ -14,6 +14,8 @@
|
||||
#include "list.h"
|
||||
#include "set.h"
|
||||
|
||||
#define JOURNAL_FILES_MAX 7168u
|
||||
|
||||
typedef struct Match Match;
|
||||
typedef struct Location Location;
|
||||
typedef struct Directory Directory;
|
||||
|
@ -42,8 +42,6 @@
|
||||
#include "strv.h"
|
||||
#include "syslog-util.h"
|
||||
|
||||
#define JOURNAL_FILES_MAX 7168
|
||||
|
||||
#define JOURNAL_FILES_RECHECK_USEC (2 * USEC_PER_SEC)
|
||||
|
||||
/* The maximum size of variable values we'll expand in catalog entries. We bind this to PATH_MAX for now, as
|
||||
|
@ -3,7 +3,6 @@
|
||||
#include "sd-netlink.h"
|
||||
|
||||
#include "fd-util.h"
|
||||
#include "format-util.h"
|
||||
#include "io-util.h"
|
||||
#include "memory-util.h"
|
||||
#include "netlink-internal.h"
|
||||
@ -15,7 +14,7 @@
|
||||
int rtnl_set_link_name(sd_netlink **rtnl, int ifindex, const char *name) {
|
||||
_cleanup_(sd_netlink_message_unrefp) sd_netlink_message *message = NULL;
|
||||
_cleanup_strv_free_ char **alternative_names = NULL;
|
||||
char old_name[IF_NAMESIZE] = {};
|
||||
bool altname_deleted = false;
|
||||
int r;
|
||||
|
||||
assert(rtnl);
|
||||
@ -36,31 +35,32 @@ int rtnl_set_link_name(sd_netlink **rtnl, int ifindex, const char *name) {
|
||||
return log_debug_errno(r, "Failed to remove '%s' from alternative names on network interface %i: %m",
|
||||
name, ifindex);
|
||||
|
||||
r = format_ifname(ifindex, old_name);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to get current name of network interface %i: %m", ifindex);
|
||||
altname_deleted = true;
|
||||
}
|
||||
|
||||
r = sd_rtnl_message_new_link(*rtnl, &message, RTM_SETLINK, ifindex);
|
||||
if (r < 0)
|
||||
return r;
|
||||
goto fail;
|
||||
|
||||
r = sd_netlink_message_append_string(message, IFLA_IFNAME, name);
|
||||
if (r < 0)
|
||||
return r;
|
||||
goto fail;
|
||||
|
||||
r = sd_netlink_call(*rtnl, message, 0, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (!isempty(old_name)) {
|
||||
r = rtnl_set_link_alternative_names(rtnl, ifindex, STRV_MAKE(old_name));
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to set '%s' as an alternative name on network interface %i, ignoring: %m",
|
||||
old_name, ifindex);
|
||||
}
|
||||
goto fail;
|
||||
|
||||
return 0;
|
||||
|
||||
fail:
|
||||
if (altname_deleted) {
|
||||
int q = rtnl_set_link_alternative_names(rtnl, ifindex, STRV_MAKE(name));
|
||||
if (q < 0)
|
||||
log_debug_errno(q, "Failed to restore '%s' as an alternative name on network interface %i, ignoring: %m",
|
||||
name, ifindex);
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
int rtnl_set_link_properties(
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include <linux/if_macsec.h>
|
||||
#include <linux/l2tp.h>
|
||||
#include <linux/nl80211.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "sd-netlink.h"
|
||||
|
||||
@ -16,6 +17,7 @@
|
||||
#include "macro.h"
|
||||
#include "netlink-genl.h"
|
||||
#include "netlink-internal.h"
|
||||
#include "netlink-util.h"
|
||||
#include "socket-util.h"
|
||||
#include "stdio-util.h"
|
||||
#include "string-util.h"
|
||||
@ -667,6 +669,30 @@ static void test_genl(void) {
|
||||
}
|
||||
}
|
||||
|
||||
static void test_rtnl_set_link_name(sd_netlink *rtnl, int ifindex) {
|
||||
_cleanup_strv_free_ char **alternative_names = NULL;
|
||||
int r;
|
||||
|
||||
log_debug("/* %s */", __func__);
|
||||
|
||||
if (geteuid() != 0)
|
||||
return (void) log_tests_skipped("not root");
|
||||
|
||||
/* Test that the new name (which is currently an alternative name) is
|
||||
* restored as an alternative name on error. Create an error by using
|
||||
* an invalid device name, namely one that exceeds IFNAMSIZ
|
||||
* (alternative names can exceed IFNAMSIZ, but not regular names). */
|
||||
r = rtnl_set_link_alternative_names(&rtnl, ifindex, STRV_MAKE("testlongalternativename"));
|
||||
if (r == -EPERM)
|
||||
return (void) log_tests_skipped("missing required capabilities");
|
||||
|
||||
assert_se(r >= 0);
|
||||
assert_se(rtnl_set_link_name(&rtnl, ifindex, "testlongalternativename") == -EINVAL);
|
||||
assert_se(rtnl_get_link_alternative_names(&rtnl, ifindex, &alternative_names) >= 0);
|
||||
assert_se(strv_contains(alternative_names, "testlongalternativename"));
|
||||
assert_se(rtnl_delete_link_alternative_names(&rtnl, ifindex, STRV_MAKE("testlongalternativename")) >= 0);
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
sd_netlink *rtnl;
|
||||
sd_netlink_message *m;
|
||||
@ -698,6 +724,7 @@ int main(void) {
|
||||
test_pipe(if_loopback);
|
||||
test_event_loop(if_loopback);
|
||||
test_link_configure(rtnl, if_loopback);
|
||||
test_rtnl_set_link_name(rtnl, if_loopback);
|
||||
|
||||
test_get_addresses(rtnl);
|
||||
test_message_link_bridge(rtnl);
|
||||
|
@ -334,15 +334,18 @@ static int dhcp4_request_route_auto(
|
||||
route->gw = IN_ADDR_NULL;
|
||||
route->prefsrc.in = address;
|
||||
|
||||
} else {
|
||||
if (in4_addr_is_null(gw)) {
|
||||
log_link_debug(link, "DHCP: requested route destination "IPV4_ADDRESS_FMT_STR"/%u is not in the assigned network "
|
||||
IPV4_ADDRESS_FMT_STR"/%u, but no gateway is specified, ignoring.",
|
||||
IPV4_ADDRESS_FMT_VAL(route->dst.in), route->dst_prefixlen,
|
||||
IPV4_ADDRESS_FMT_VAL(prefix), prefixlen);
|
||||
return 0;
|
||||
}
|
||||
} else if (in4_addr_is_null(gw)) {
|
||||
log_link_debug(link, "DHCP: requested route destination "IPV4_ADDRESS_FMT_STR"/%u is not in the assigned network "
|
||||
IPV4_ADDRESS_FMT_STR"/%u, but no gateway is specified, using 'link' scope.",
|
||||
IPV4_ADDRESS_FMT_VAL(route->dst.in), route->dst_prefixlen,
|
||||
IPV4_ADDRESS_FMT_VAL(prefix), prefixlen);
|
||||
|
||||
route->scope = RT_SCOPE_LINK;
|
||||
route->gw_family = AF_UNSPEC;
|
||||
route->gw = IN_ADDR_NULL;
|
||||
route->prefsrc.in = address;
|
||||
|
||||
} else {
|
||||
r = dhcp4_request_route_to_gateway(link, gw);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
@ -858,7 +858,8 @@ int link_object_find(sd_bus *bus, const char *path, const char *interface, void
|
||||
if (r < 0)
|
||||
return 0;
|
||||
|
||||
if (streq(interface, "org.freedesktop.network1.DHCPServer") && !link->dhcp_server)
|
||||
if (streq(interface, "org.freedesktop.network1.DHCPServer") &&
|
||||
(!link->dhcp_server || sd_dhcp_server_is_in_relay_mode(link->dhcp_server)))
|
||||
return 0;
|
||||
|
||||
*found = link;
|
||||
|
@ -394,7 +394,7 @@ int bind_user_setup(
|
||||
|
||||
r = userns_mkdir(root, "/run/host/home", 0755, 0, 0);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to create /run/host/userdb: %m");
|
||||
return log_error_errno(r, "Failed to create /run/host/home: %m");
|
||||
|
||||
r = userns_mkdir(root, "/run/host/userdb", 0755, 0, 0);
|
||||
if (r < 0)
|
||||
|
@ -1716,7 +1716,16 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
* --directory=". */
|
||||
arg_directory = TAKE_PTR(arg_template);
|
||||
|
||||
arg_caps_retain = (arg_caps_retain | plus | (arg_private_network ? UINT64_C(1) << CAP_NET_ADMIN : 0)) & ~minus;
|
||||
arg_caps_retain |= plus;
|
||||
arg_caps_retain |= arg_private_network ? UINT64_C(1) << CAP_NET_ADMIN : 0;
|
||||
|
||||
/* If we're not unsharing the network namespace and are unsharing the user namespace, we won't have
|
||||
* permissions to bind ports in the container, so let's drop the CAP_NET_BIND_SERVICE capability to
|
||||
* indicate that. */
|
||||
if (!arg_private_network && arg_userns_mode != USER_NAMESPACE_NO && arg_uid_shift > 0)
|
||||
arg_caps_retain &= ~(UINT64_C(1) << CAP_NET_BIND_SERVICE);
|
||||
|
||||
arg_caps_retain &= ~minus;
|
||||
|
||||
/* Make sure to parse environment before we reset the settings mask below */
|
||||
r = parse_environment();
|
||||
|
@ -345,9 +345,10 @@ enum nss_status _nss_myhostname_gethostbyname3_r(
|
||||
return NSS_STATUS_UNAVAIL;
|
||||
}
|
||||
|
||||
if (af == AF_INET6 && !socket_ipv6_is_enabled())
|
||||
goto not_found;
|
||||
|
||||
if (is_localhost(name)) {
|
||||
if (af == AF_INET6 && !socket_ipv6_is_enabled())
|
||||
goto not_found;
|
||||
|
||||
canonical = "localhost";
|
||||
local_address_ipv4 = htobe32(INADDR_LOOPBACK);
|
||||
@ -460,7 +461,7 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r(
|
||||
} else {
|
||||
assert(af == AF_INET6);
|
||||
|
||||
if (socket_ipv6_is_enabled())
|
||||
if (!socket_ipv6_is_enabled())
|
||||
goto not_found;
|
||||
|
||||
if (memcmp(addr, LOCALADDRESS_IPV6, 16) == 0) {
|
||||
|
@ -4793,7 +4793,7 @@ static int resolve_copy_blocks_auto(
|
||||
continue;
|
||||
}
|
||||
if (major(sl) == 0) {
|
||||
log_debug_errno(r, "Device backing %s is special, ignoring: %m", q);
|
||||
log_debug("Device backing %s is special, ignoring.", q);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -4869,11 +4869,12 @@ static int context_open_copy_block_paths(
|
||||
"Copying from block device node is not permitted in --image=/--root= mode, refusing.");
|
||||
|
||||
} else if (p->copy_blocks_auto) {
|
||||
dev_t devno;
|
||||
dev_t devno = 0; /* Fake initialization to appease gcc. */
|
||||
|
||||
r = resolve_copy_blocks_auto(p->type_uuid, root, restrict_devno, &devno, &uuid);
|
||||
if (r < 0)
|
||||
return r;
|
||||
assert(devno != 0);
|
||||
|
||||
source_fd = r = device_open_from_devnum(S_IFBLK, devno, O_RDONLY|O_CLOEXEC|O_NONBLOCK, &opened);
|
||||
if (r < 0)
|
||||
|
@ -230,6 +230,13 @@ static void print_ifindex_comment(int printed_so_far, int ifindex) {
|
||||
ansi_grey(), ifname, ansi_normal());
|
||||
}
|
||||
|
||||
static int resolve_host_error(const char *name, int r, const sd_bus_error *error) {
|
||||
if (sd_bus_error_has_name(error, BUS_ERROR_DNS_NXDOMAIN))
|
||||
return log_error_errno(r, "%s: %s", name, bus_error_message(error, r));
|
||||
|
||||
return log_error_errno(r, "%s: resolve call failed: %s", name, bus_error_message(error, r));
|
||||
}
|
||||
|
||||
static int resolve_host(sd_bus *bus, const char *name) {
|
||||
_cleanup_(sd_bus_message_unrefp) sd_bus_message *req = NULL, *reply = NULL;
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
@ -255,7 +262,7 @@ static int resolve_host(sd_bus *bus, const char *name) {
|
||||
|
||||
r = sd_bus_call(bus, req, SD_RESOLVED_QUERY_TIMEOUT_USEC, &error, &reply);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "%s: resolve call failed: %s", name, bus_error_message(&error, r));
|
||||
return resolve_host_error(name, r, &error);
|
||||
|
||||
ts = now(CLOCK_MONOTONIC) - ts;
|
||||
|
||||
@ -1200,12 +1207,19 @@ static int reset_server_features(int argc, char **argv, void *userdata) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int read_dns_server_one(sd_bus_message *m, bool with_ifindex, bool extended, char **ret) {
|
||||
static int read_dns_server_one(
|
||||
sd_bus_message *m,
|
||||
bool with_ifindex, /* read "ifindex" reply that also carries an interface index */
|
||||
bool extended, /* read "extended" reply, i.e. with port number and server name */
|
||||
bool only_global, /* suppress entries with an (non-loopback) ifindex set (i.e. which are specific to some interface) */
|
||||
char **ret) {
|
||||
|
||||
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
_cleanup_free_ char *pretty = NULL;
|
||||
int ifindex, family, r, k;
|
||||
union in_addr_union a;
|
||||
const char *name = NULL;
|
||||
int32_t ifindex = 0;
|
||||
int family, r, k;
|
||||
uint16_t port = 0;
|
||||
|
||||
assert(m);
|
||||
@ -1245,8 +1259,8 @@ static int read_dns_server_one(sd_bus_message *m, bool with_ifindex, bool extend
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (with_ifindex && ifindex != 0) {
|
||||
/* only show the global ones here */
|
||||
if (only_global && ifindex > 0 && ifindex != LOOPBACK_IFINDEX) {
|
||||
/* This one has an (non-loopback) ifindex set, and we were told to suppress those. Hence do so. */
|
||||
*ret = NULL;
|
||||
return 1;
|
||||
}
|
||||
@ -1275,7 +1289,7 @@ static int map_link_dns_servers_internal(sd_bus *bus, const char *member, sd_bus
|
||||
for (;;) {
|
||||
_cleanup_free_ char *pretty = NULL;
|
||||
|
||||
r = read_dns_server_one(m, false, extended, &pretty);
|
||||
r = read_dns_server_one(m, /* with_ifindex= */ false, extended, /* only_global= */ false, &pretty);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r == 0)
|
||||
@ -1308,14 +1322,14 @@ static int map_link_current_dns_server(sd_bus *bus, const char *member, sd_bus_m
|
||||
assert(m);
|
||||
assert(userdata);
|
||||
|
||||
return read_dns_server_one(m, false, false, userdata);
|
||||
return read_dns_server_one(m, /* with_ifindex= */ false, /* extended= */ false, /* only_global= */ false, userdata);
|
||||
}
|
||||
|
||||
static int map_link_current_dns_server_ex(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata) {
|
||||
assert(m);
|
||||
assert(userdata);
|
||||
|
||||
return read_dns_server_one(m, false, true, userdata);
|
||||
return read_dns_server_one(m, /* with_ifindex= */ false, /* extended= */ true, /* only_global= */ false, userdata);
|
||||
}
|
||||
|
||||
static int read_domain_one(sd_bus_message *m, bool with_ifindex, char **ret) {
|
||||
@ -1740,7 +1754,7 @@ static int map_global_dns_servers_internal(sd_bus *bus, const char *member, sd_b
|
||||
for (;;) {
|
||||
_cleanup_free_ char *pretty = NULL;
|
||||
|
||||
r = read_dns_server_one(m, true, extended, &pretty);
|
||||
r = read_dns_server_one(m, /* with_ifindex= */ true, extended, /* only_global= */ true, &pretty);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r == 0)
|
||||
@ -1770,17 +1784,11 @@ static int map_global_dns_servers_ex(sd_bus *bus, const char *member, sd_bus_mes
|
||||
}
|
||||
|
||||
static int map_global_current_dns_server(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata) {
|
||||
assert(m);
|
||||
assert(userdata);
|
||||
|
||||
return read_dns_server_one(m, true, false, userdata);
|
||||
return read_dns_server_one(m, /* with_ifindex= */ true, /* extended= */ false, /* only_global= */ true, userdata);
|
||||
}
|
||||
|
||||
static int map_global_current_dns_server_ex(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata) {
|
||||
assert(m);
|
||||
assert(userdata);
|
||||
|
||||
return read_dns_server_one(m, true, true, userdata);
|
||||
return read_dns_server_one(m, /* with_ifindex= */ true, /* extended= */ true, /* only_global= */ true, userdata);
|
||||
}
|
||||
|
||||
static int map_global_domains(sd_bus *bus, const char *member, sd_bus_message *m, sd_bus_error *error, void *userdata) {
|
||||
|
@ -159,7 +159,7 @@ static int reply_query_state(DnsQuery *q) {
|
||||
case DNS_TRANSACTION_NOT_FOUND:
|
||||
/* We return this as NXDOMAIN. This is only generated when a host doesn't implement LLMNR/TCP, and we
|
||||
* thus quickly know that we cannot resolve an in-addr.arpa or ip6.arpa address. */
|
||||
return reply_method_errorf(q, _BUS_ERROR_DNS "NXDOMAIN", "'%s' not found", dns_query_string(q));
|
||||
return reply_method_errorf(q, BUS_ERROR_DNS_NXDOMAIN, "'%s' not found", dns_query_string(q));
|
||||
|
||||
case DNS_TRANSACTION_NO_SOURCE:
|
||||
return reply_method_errorf(q, BUS_ERROR_NO_SOURCE, "All suitable resolution sources turned off");
|
||||
@ -176,7 +176,7 @@ static int reply_query_state(DnsQuery *q) {
|
||||
return 0;
|
||||
|
||||
if (q->answer_rcode == DNS_RCODE_NXDOMAIN)
|
||||
sd_bus_error_setf(&error, _BUS_ERROR_DNS "NXDOMAIN", "'%s' not found", dns_query_string(q));
|
||||
sd_bus_error_setf(&error, BUS_ERROR_DNS_NXDOMAIN, "Name '%s' not found", dns_query_string(q));
|
||||
else {
|
||||
const char *rc, *n;
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
#include <net/if_arp.h>
|
||||
#include <netinet/tcp.h>
|
||||
|
||||
#include "capability-util.h"
|
||||
#include "errno-util.h"
|
||||
#include "fd-util.h"
|
||||
#include "missing_network.h"
|
||||
@ -1237,6 +1238,12 @@ static int manager_dns_stub_fd_extra(Manager *m, DnsStubListenerExtra *l, int ty
|
||||
if (*event_source)
|
||||
return sd_event_source_get_io_fd(*event_source);
|
||||
|
||||
if (!have_effective_cap(CAP_NET_BIND_SERVICE) && dns_stub_listener_extra_port(l) < 1024) {
|
||||
log_warning("Missing CAP_NET_BIND_SERVICE capability, not creating extra stub listener on port %hu.",
|
||||
dns_stub_listener_extra_port(l));
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (l->family == AF_INET)
|
||||
sa = (union sockaddr_union) {
|
||||
.in.sin_family = l->family,
|
||||
@ -1332,6 +1339,8 @@ int manager_dns_stub_start(Manager *m) {
|
||||
|
||||
if (m->dns_stub_listener_mode == DNS_STUB_LISTENER_NO)
|
||||
log_debug("Not creating stub listener.");
|
||||
else if (!have_effective_cap(CAP_NET_BIND_SERVICE))
|
||||
log_warning("Missing CAP_NET_BIND_SERVICE capability, not creating stub listener on port 53.");
|
||||
else {
|
||||
static const struct {
|
||||
uint32_t addr;
|
||||
|
@ -146,9 +146,9 @@ int main(int argc, char* argv[]) {
|
||||
test_hostname_lookup(bus, "www.dnssec-bogus.sg", AF_INET, BUS_ERROR_DNSSEC_FAILED);
|
||||
|
||||
/* NXDOMAIN in NSEC domain */
|
||||
test_rr_lookup(bus, "hhh.nasa.gov", DNS_TYPE_A, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_hostname_lookup(bus, "hhh.nasa.gov", AF_UNSPEC, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_rr_lookup(bus, "_pgpkey-https._tcp.hkps.pool.sks-keyservers.net", DNS_TYPE_SRV, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_rr_lookup(bus, "hhh.nasa.gov", DNS_TYPE_A, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_hostname_lookup(bus, "hhh.nasa.gov", AF_UNSPEC, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_rr_lookup(bus, "_pgpkey-https._tcp.hkps.pool.sks-keyservers.net", DNS_TYPE_SRV, BUS_ERROR_DNS_NXDOMAIN);
|
||||
|
||||
/* wildcard, NSEC zone */
|
||||
test_rr_lookup(bus, ".wilda.nsec.0skar.cz", DNS_TYPE_A, NULL);
|
||||
@ -187,16 +187,16 @@ int main(int argc, char* argv[]) {
|
||||
test_hostname_lookup(bus, "herndon.nasa.gov", AF_INET6, BUS_ERROR_NO_SUCH_RR);
|
||||
|
||||
/* NXDOMAIN in NSEC root zone: */
|
||||
test_rr_lookup(bus, "jasdhjas.kjkfgjhfjg", DNS_TYPE_A, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_hostname_lookup(bus, "jasdhjas.kjkfgjhfjg", AF_UNSPEC, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_hostname_lookup(bus, "jasdhjas.kjkfgjhfjg", AF_INET, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_hostname_lookup(bus, "jasdhjas.kjkfgjhfjg", AF_INET6, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_rr_lookup(bus, "jasdhjas.kjkfgjhfjg", DNS_TYPE_A, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_hostname_lookup(bus, "jasdhjas.kjkfgjhfjg", AF_UNSPEC, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_hostname_lookup(bus, "jasdhjas.kjkfgjhfjg", AF_INET, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_hostname_lookup(bus, "jasdhjas.kjkfgjhfjg", AF_INET6, BUS_ERROR_DNS_NXDOMAIN);
|
||||
|
||||
/* NXDOMAIN in NSEC3 .com zone: */
|
||||
test_rr_lookup(bus, "kjkfgjhfjgsdfdsfd.com", DNS_TYPE_A, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_hostname_lookup(bus, "kjkfgjhfjgsdfdsfd.com", AF_INET, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_hostname_lookup(bus, "kjkfgjhfjgsdfdsfd.com", AF_INET6, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_hostname_lookup(bus, "kjkfgjhfjgsdfdsfd.com", AF_UNSPEC, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_rr_lookup(bus, "kjkfgjhfjgsdfdsfd.com", DNS_TYPE_A, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_hostname_lookup(bus, "kjkfgjhfjgsdfdsfd.com", AF_INET, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_hostname_lookup(bus, "kjkfgjhfjgsdfdsfd.com", AF_INET6, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_hostname_lookup(bus, "kjkfgjhfjgsdfdsfd.com", AF_UNSPEC, BUS_ERROR_DNS_NXDOMAIN);
|
||||
|
||||
/* Unsigned A */
|
||||
test_rr_lookup(bus, "poettering.de", DNS_TYPE_A, NULL);
|
||||
@ -213,11 +213,11 @@ int main(int argc, char* argv[]) {
|
||||
#endif
|
||||
|
||||
/* DNAME, pointing to NXDOMAIN */
|
||||
test_rr_lookup(bus, ".ireallyhpoethisdoesnexist.xn--kprw13d.", DNS_TYPE_A, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_rr_lookup(bus, ".ireallyhpoethisdoesnexist.xn--kprw13d.", DNS_TYPE_RP, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_hostname_lookup(bus, ".ireallyhpoethisdoesntexist.xn--kprw13d.", AF_UNSPEC, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_hostname_lookup(bus, ".ireallyhpoethisdoesntexist.xn--kprw13d.", AF_INET, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_hostname_lookup(bus, ".ireallyhpoethisdoesntexist.xn--kprw13d.", AF_INET6, _BUS_ERROR_DNS "NXDOMAIN");
|
||||
test_rr_lookup(bus, ".ireallyhpoethisdoesnexist.xn--kprw13d.", DNS_TYPE_A, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_rr_lookup(bus, ".ireallyhpoethisdoesnexist.xn--kprw13d.", DNS_TYPE_RP, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_hostname_lookup(bus, ".ireallyhpoethisdoesntexist.xn--kprw13d.", AF_UNSPEC, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_hostname_lookup(bus, ".ireallyhpoethisdoesntexist.xn--kprw13d.", AF_INET, BUS_ERROR_DNS_NXDOMAIN);
|
||||
test_hostname_lookup(bus, ".ireallyhpoethisdoesntexist.xn--kprw13d.", AF_INET6, BUS_ERROR_DNS_NXDOMAIN);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1658,7 +1658,7 @@ static int install_info_traverse(
|
||||
r = install_info_follow(ctx, i, lp, flags,
|
||||
/* If linked, don't look at the target name */
|
||||
/* ignore_different_name= */ i->install_mode == INSTALL_MODE_LINKED);
|
||||
if (r == -EXDEV) {
|
||||
if (r == -EXDEV && i->symlink_target) {
|
||||
_cleanup_free_ char *buffer = NULL;
|
||||
const char *bn;
|
||||
|
||||
|
@ -128,6 +128,10 @@ int journal_access_check_and_warn(sd_journal *j, bool quiet, bool want_other_use
|
||||
log_warning_errno(err, "Journal file %s corrupted, ignoring file.", path);
|
||||
break;
|
||||
|
||||
case ETOOMANYREFS:
|
||||
log_warning_errno(err, "Too many journal files (limit is at %u) in scope, ignoring file '%s'.", JOURNAL_FILES_MAX, path);
|
||||
break;
|
||||
|
||||
default:
|
||||
log_warning_errno(err, "An error was encountered while opening journal file or directory %s, ignoring file: %m", path);
|
||||
break;
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "btrfs-util.h"
|
||||
#include "conf-parser.h"
|
||||
#include "def.h"
|
||||
#include "device-private.h"
|
||||
#include "device-util.h"
|
||||
#include "devnum-util.h"
|
||||
#include "env-util.h"
|
||||
@ -65,10 +66,14 @@ int parse_sleep_config(SleepConfig **ret_sleep_config) {
|
||||
int allow_suspend = -1, allow_hibernate = -1,
|
||||
allow_s2h = -1, allow_hybrid_sleep = -1;
|
||||
|
||||
sc = new0(SleepConfig, 1);
|
||||
sc = new(SleepConfig, 1);
|
||||
if (!sc)
|
||||
return log_oom();
|
||||
|
||||
*sc = (SleepConfig) {
|
||||
.hibernate_delay_usec = USEC_INFINITY,
|
||||
};
|
||||
|
||||
const ConfigTableItem items[] = {
|
||||
{ "Sleep", "AllowSuspend", config_parse_tristate, 0, &allow_suspend },
|
||||
{ "Sleep", "AllowHibernation", config_parse_tristate, 0, &allow_hibernate },
|
||||
@ -82,7 +87,8 @@ int parse_sleep_config(SleepConfig **ret_sleep_config) {
|
||||
{ "Sleep", "HybridSleepMode", config_parse_strv, 0, sc->modes + SLEEP_HYBRID_SLEEP },
|
||||
{ "Sleep", "HybridSleepState", config_parse_strv, 0, sc->states + SLEEP_HYBRID_SLEEP },
|
||||
|
||||
{ "Sleep", "HibernateDelaySec", config_parse_sec, 0, &sc->hibernate_delay_sec },
|
||||
{ "Sleep", "HibernateDelaySec", config_parse_sec, 0, &sc->hibernate_delay_usec },
|
||||
{ "Sleep", "SuspendEstimationSec", config_parse_sec, 0, &sc->suspend_estimation_usec },
|
||||
{}
|
||||
};
|
||||
|
||||
@ -113,8 +119,8 @@ int parse_sleep_config(SleepConfig **ret_sleep_config) {
|
||||
sc->modes[SLEEP_HYBRID_SLEEP] = strv_new("suspend", "platform", "shutdown");
|
||||
if (!sc->states[SLEEP_HYBRID_SLEEP])
|
||||
sc->states[SLEEP_HYBRID_SLEEP] = strv_new("disk");
|
||||
if (sc->hibernate_delay_sec == 0)
|
||||
sc->hibernate_delay_sec = 2 * USEC_PER_HOUR;
|
||||
if (sc->suspend_estimation_usec == 0)
|
||||
sc->suspend_estimation_usec = DEFAULT_SUSPEND_ESTIMATION_USEC;
|
||||
|
||||
/* Ensure values set for all required fields */
|
||||
if (!sc->states[SLEEP_SUSPEND] || !sc->modes[SLEEP_HIBERNATE]
|
||||
@ -137,16 +143,27 @@ static int battery_enumerator_new(sd_device_enumerator **ret) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_device_enumerator_add_match_subsystem(e, "power_supply", /* match= */ true);
|
||||
r = sd_device_enumerator_add_match_subsystem(e, "power_supply", /* match = */ true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_device_enumerator_add_match_property(e, "POWER_SUPPLY_TYPE", "Battery");
|
||||
r = sd_device_enumerator_allow_uninitialized(e);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_device_enumerator_add_match_sysattr(e, "type", "Battery", /* match = */ true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_device_enumerator_add_match_sysattr(e, "present", "1", /* match = */ true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_device_enumerator_add_match_sysattr(e, "scope", "Device", /* match = */ false);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
*ret = TAKE_PTR(e);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -165,18 +182,13 @@ static int get_capacity_by_name(Hashmap *capacities_by_name, const char *name) {
|
||||
|
||||
/* Battery percentage capacity fetched from capacity file and if in range 0-100 then returned */
|
||||
static int read_battery_capacity_percentage(sd_device *dev) {
|
||||
const char *power_supply_capacity;
|
||||
int battery_capacity, r;
|
||||
|
||||
assert(dev);
|
||||
|
||||
r = sd_device_get_property_value(dev, "POWER_SUPPLY_CAPACITY", &power_supply_capacity);
|
||||
r = device_get_sysattr_int(dev, "capacity", &battery_capacity);
|
||||
if (r < 0)
|
||||
return log_device_debug_errno(dev, r, "Failed to get property POWER_SUPPLY_CAPACITY: %m");
|
||||
|
||||
r = safe_atoi(power_supply_capacity, &battery_capacity);
|
||||
if (r < 0)
|
||||
return log_device_debug_errno(dev, r, "Failed to parse property POWER_SUPPLY_CAPACITY: %m");
|
||||
return log_device_debug_errno(dev, r, "Failed to read/parse POWER_SUPPLY_CAPACITY: %m");
|
||||
|
||||
if (battery_capacity < 0 || battery_capacity > 100)
|
||||
return log_device_debug_errno(dev, SYNTHETIC_ERRNO(ERANGE), "Invalid battery capacity");
|
||||
@ -198,15 +210,9 @@ int battery_is_low(void) {
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to initialize battery enumerator: %m");
|
||||
|
||||
FOREACH_DEVICE(e, dev) {
|
||||
r = read_battery_capacity_percentage(dev);
|
||||
if (r < 0) {
|
||||
log_device_debug_errno(dev, r, "Failed to get battery capacity, ignoring: %m");
|
||||
continue;
|
||||
}
|
||||
if (r > BATTERY_LOW_CAPACITY_LEVEL)
|
||||
FOREACH_DEVICE(e, dev)
|
||||
if (read_battery_capacity_percentage(dev) > BATTERY_LOW_CAPACITY_LEVEL)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -259,61 +265,55 @@ int fetch_batteries_capacity_by_name(Hashmap **ret) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Read file path and return hash of value in that file */
|
||||
static int get_battery_identifier(sd_device *dev, const char *property, struct siphash *state) {
|
||||
static int siphash24_compress_device_sysattr(sd_device *dev, const char *attr, struct siphash *state) {
|
||||
const char *x;
|
||||
int r;
|
||||
|
||||
assert(dev);
|
||||
assert(property);
|
||||
assert(attr);
|
||||
assert(state);
|
||||
|
||||
r = sd_device_get_property_value(dev, property, &x);
|
||||
if (r == -ENOENT)
|
||||
log_device_debug_errno(dev, r, "Battery device property %s is unavailable, ignoring: %m", property);
|
||||
else if (r < 0)
|
||||
return log_device_debug_errno(dev, r, "Failed to get battery device property %s: %m", property);
|
||||
else if (isempty(x))
|
||||
log_device_debug(dev, "Battery device property '%s' is empty.", property);
|
||||
else
|
||||
siphash24_compress_string(x, state);
|
||||
r = sd_device_get_sysattr_value(dev, attr, &x);
|
||||
if (r < 0)
|
||||
return log_device_debug_errno(dev, r, "Failed to read '%s' attribute: %m", attr);
|
||||
|
||||
if (!isempty(x))
|
||||
siphash24_compress_string(x, state);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int siphash24_compress_id128(int (*getter)(sd_id128_t*), const char *name, struct siphash *state) {
|
||||
sd_id128_t id;
|
||||
int r;
|
||||
|
||||
assert(getter);
|
||||
assert(state);
|
||||
|
||||
r = getter(&id);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to get %s ID: %m", name);
|
||||
|
||||
siphash24_compress(&id, sizeof(sd_id128_t), state);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Read system and battery identifier from specific location and generate hash of it */
|
||||
static int get_system_battery_identifier_hash(sd_device *dev, uint64_t *ret) {
|
||||
struct siphash state;
|
||||
sd_id128_t machine_id, product_id;
|
||||
int r;
|
||||
|
||||
assert(ret);
|
||||
assert(dev);
|
||||
|
||||
siphash24_init(&state, BATTERY_DISCHARGE_RATE_HASH_KEY.bytes);
|
||||
|
||||
get_battery_identifier(dev, "POWER_SUPPLY_MANUFACTURER", &state);
|
||||
get_battery_identifier(dev, "POWER_SUPPLY_MODEL_NAME", &state);
|
||||
get_battery_identifier(dev, "POWER_SUPPLY_SERIAL_NUMBER", &state);
|
||||
|
||||
r = sd_id128_get_machine(&machine_id);
|
||||
if (r == -ENOENT)
|
||||
log_debug_errno(r, "machine ID is unavailable: %m");
|
||||
else if (r < 0)
|
||||
return log_debug_errno(r, "Failed to get machine ID: %m");
|
||||
else
|
||||
siphash24_compress(&machine_id, sizeof(sd_id128_t), &state);
|
||||
|
||||
r = id128_get_product(&product_id);
|
||||
if (r == -ENOENT)
|
||||
log_debug_errno(r, "product_id does not exist: %m");
|
||||
else if (r < 0)
|
||||
return log_debug_errno(r, "Failed to get product ID: %m");
|
||||
else
|
||||
siphash24_compress(&product_id, sizeof(sd_id128_t), &state);
|
||||
(void) siphash24_compress_device_sysattr(dev, "manufacturer", &state);
|
||||
(void) siphash24_compress_device_sysattr(dev, "model_name", &state);
|
||||
(void) siphash24_compress_device_sysattr(dev, "serial_number", &state);
|
||||
(void) siphash24_compress_id128(sd_id128_get_machine, "machine", &state);
|
||||
(void) siphash24_compress_id128(id128_get_product, "product", &state);
|
||||
|
||||
*ret = siphash24_finalize(&state);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -391,11 +391,11 @@ static int put_battery_discharge_rate(int estimated_battery_discharge_rate, uint
|
||||
estimated_battery_discharge_rate);
|
||||
|
||||
r = write_string_filef(
|
||||
DISCHARGE_RATE_FILEPATH,
|
||||
WRITE_STRING_FILE_CREATE | WRITE_STRING_FILE_MKDIR_0755 | (trunc ? WRITE_STRING_FILE_TRUNCATE : 0),
|
||||
"%"PRIu64" %d",
|
||||
system_hash_id,
|
||||
estimated_battery_discharge_rate);
|
||||
DISCHARGE_RATE_FILEPATH,
|
||||
WRITE_STRING_FILE_CREATE | WRITE_STRING_FILE_MKDIR_0755 | (trunc ? WRITE_STRING_FILE_TRUNCATE : 0),
|
||||
"%"PRIu64" %d",
|
||||
system_hash_id,
|
||||
estimated_battery_discharge_rate);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to update %s: %m", DISCHARGE_RATE_FILEPATH);
|
||||
|
||||
|
@ -6,6 +6,8 @@
|
||||
#include "hashmap.h"
|
||||
#include "time-util.h"
|
||||
|
||||
#define DEFAULT_SUSPEND_ESTIMATION_USEC (1 * USEC_PER_HOUR)
|
||||
|
||||
typedef enum SleepOperation {
|
||||
SLEEP_SUSPEND,
|
||||
SLEEP_HIBERNATE,
|
||||
@ -19,7 +21,8 @@ typedef struct SleepConfig {
|
||||
bool allow[_SLEEP_OPERATION_MAX];
|
||||
char **modes[_SLEEP_OPERATION_MAX];
|
||||
char **states[_SLEEP_OPERATION_MAX];
|
||||
usec_t hibernate_delay_sec;
|
||||
usec_t hibernate_delay_usec;
|
||||
usec_t suspend_estimation_usec;
|
||||
} SleepConfig;
|
||||
|
||||
SleepConfig* free_sleep_config(SleepConfig *sc);
|
||||
|
@ -294,8 +294,8 @@ static int userdb_on_query_reply(
|
||||
} membership_data = {};
|
||||
|
||||
static const JsonDispatch dispatch_table[] = {
|
||||
{ "userName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct membership_data, user_name), JSON_SAFE },
|
||||
{ "groupName", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct membership_data, group_name), JSON_SAFE },
|
||||
{ "userName", JSON_VARIANT_STRING, json_dispatch_user_group_name, offsetof(struct membership_data, user_name), JSON_RELAX },
|
||||
{ "groupName", JSON_VARIANT_STRING, json_dispatch_user_group_name, offsetof(struct membership_data, group_name), JSON_RELAX },
|
||||
{}
|
||||
};
|
||||
|
||||
|
@ -267,36 +267,48 @@ static int execute(
|
||||
}
|
||||
|
||||
static int custom_timer_suspend(const SleepConfig *sleep_config) {
|
||||
usec_t hibernate_timestamp;
|
||||
int r;
|
||||
|
||||
assert(sleep_config);
|
||||
|
||||
hibernate_timestamp = usec_add(now(CLOCK_BOOTTIME), sleep_config->hibernate_delay_usec);
|
||||
|
||||
while (battery_is_low() == 0) {
|
||||
_cleanup_hashmap_free_ Hashmap *last_capacity = NULL, *current_capacity = NULL;
|
||||
_cleanup_close_ int tfd = -1;
|
||||
struct itimerspec ts = {};
|
||||
usec_t suspend_interval = sleep_config->hibernate_delay_sec, before_timestamp = 0, after_timestamp = 0, total_suspend_interval;
|
||||
usec_t suspend_interval;
|
||||
bool woken_by_timer;
|
||||
|
||||
tfd = timerfd_create(CLOCK_BOOTTIME_ALARM, TFD_NONBLOCK|TFD_CLOEXEC);
|
||||
if (tfd < 0)
|
||||
return log_error_errno(errno, "Error creating timerfd: %m");
|
||||
|
||||
/* Store current battery capacity and current time before suspension */
|
||||
/* Store current battery capacity before suspension */
|
||||
r = fetch_batteries_capacity_by_name(&last_capacity);
|
||||
if (r >= 0)
|
||||
before_timestamp = now(CLOCK_BOOTTIME);
|
||||
else if (r == -ENOENT)
|
||||
/* In case of no battery, system suspend interval will be set to HibernateDelaySec=. */
|
||||
log_debug_errno(r, "Suspend Interval value set to %s: %m", FORMAT_TIMESPAN(suspend_interval, USEC_PER_SEC));
|
||||
else
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Error fetching battery capacity percentage: %m");
|
||||
|
||||
r = get_total_suspend_interval(last_capacity, &total_suspend_interval);
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to estimate suspend interval using previous discharge rate, ignoring: %m");
|
||||
else
|
||||
suspend_interval = total_suspend_interval;
|
||||
if (hashmap_isempty(last_capacity))
|
||||
/* In case of no battery, system suspend interval will be set to HibernateDelaySec= or 2 hours. */
|
||||
suspend_interval = timestamp_is_set(hibernate_timestamp) ? sleep_config->hibernate_delay_usec : DEFAULT_SUSPEND_ESTIMATION_USEC;
|
||||
else {
|
||||
r = get_total_suspend_interval(last_capacity, &suspend_interval);
|
||||
if (r < 0) {
|
||||
log_debug_errno(r, "Failed to estimate suspend interval using previous discharge rate, ignoring: %m");
|
||||
/* In case of any errors, especially when we do not know the battery
|
||||
* discharging rate, system suspend interval will be set to
|
||||
* SuspendEstimationSec=. */
|
||||
suspend_interval = sleep_config->suspend_estimation_usec;
|
||||
}
|
||||
}
|
||||
|
||||
/* Do not suspend more than HibernateDelaySec= */
|
||||
usec_t before_timestamp = now(CLOCK_BOOTTIME);
|
||||
suspend_interval = MIN(suspend_interval, usec_sub_unsigned(hibernate_timestamp, before_timestamp));
|
||||
if (suspend_interval <= 0)
|
||||
break; /* system should hibernate */
|
||||
|
||||
log_debug("Set timerfd wake alarm for %s", FORMAT_TIMESPAN(suspend_interval, USEC_PER_SEC));
|
||||
/* Wake alarm for system with or without battery to hibernate or estimate discharge rate whichever is applicable */
|
||||
@ -316,17 +328,20 @@ static int custom_timer_suspend(const SleepConfig *sleep_config) {
|
||||
woken_by_timer = FLAGS_SET(r, POLLIN);
|
||||
|
||||
r = fetch_batteries_capacity_by_name(¤t_capacity);
|
||||
if (r < 0) {
|
||||
if (r < 0 || hashmap_isempty(current_capacity)) {
|
||||
/* In case of no battery or error while getting charge level, no need to measure
|
||||
* discharge rate. Instead system should wakeup if it is manual wakeup or
|
||||
* hibernate if this is a timer wakeup. */
|
||||
log_debug_errno(r, "Battery capacity percentage unavailable, cannot estimate discharge rate: %m");
|
||||
* discharge rate. Instead the system should wake up if it is manual wakeup or
|
||||
* hibernate if this is a timer wakeup. */
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Battery capacity percentage unavailable, cannot estimate discharge rate: %m");
|
||||
else
|
||||
log_debug("No battery found.");
|
||||
if (!woken_by_timer)
|
||||
return 0;
|
||||
break;
|
||||
}
|
||||
|
||||
after_timestamp = now(CLOCK_BOOTTIME);
|
||||
usec_t after_timestamp = now(CLOCK_BOOTTIME);
|
||||
log_debug("Attempting to estimate battery discharge rate after wakeup from %s sleep",
|
||||
FORMAT_TIMESPAN(after_timestamp - before_timestamp, USEC_PER_HOUR));
|
||||
|
||||
@ -379,7 +394,7 @@ static int freeze_thaw_user_slice(const char **method) {
|
||||
|
||||
static int execute_s2h(const SleepConfig *sleep_config) {
|
||||
_unused_ _cleanup_(freeze_thaw_user_slice) const char *auto_method_thaw = "ThawUnit";
|
||||
int r, k;
|
||||
int r;
|
||||
|
||||
assert(sleep_config);
|
||||
|
||||
@ -387,15 +402,21 @@ static int execute_s2h(const SleepConfig *sleep_config) {
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to freeze unit user.slice, ignoring: %m");
|
||||
|
||||
r = check_wakeup_type();
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to check hardware wakeup type, ignoring: %m");
|
||||
/* Only check if we have automated battery alarms if HibernateDelaySec= is not set, as in that case
|
||||
* we'll busy poll for the configured interval instead */
|
||||
if (!timestamp_is_set(sleep_config->hibernate_delay_usec)) {
|
||||
r = check_wakeup_type();
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to check hardware wakeup type, ignoring: %m");
|
||||
else {
|
||||
r = battery_trip_point_alarm_exists();
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to check whether acpi_btp support is enabled or not, ignoring: %m");
|
||||
}
|
||||
} else
|
||||
r = 0; /* Force fallback path */
|
||||
|
||||
k = battery_trip_point_alarm_exists();
|
||||
if (k < 0)
|
||||
log_debug_errno(k, "Failed to check whether acpi_btp support is enabled or not, ignoring: %m");
|
||||
|
||||
if (r >= 0 && k > 0) {
|
||||
if (r > 0) { /* If we have both wakeup alarms and battery trip point support, use them */
|
||||
log_debug("Attempting to suspend...");
|
||||
r = execute(sleep_config, SLEEP_SUSPEND, NULL);
|
||||
if (r < 0)
|
||||
@ -410,9 +431,9 @@ static int execute_s2h(const SleepConfig *sleep_config) {
|
||||
return 0;
|
||||
} else {
|
||||
r = custom_timer_suspend(sleep_config);
|
||||
if(r < 0)
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Suspend cycle with manual battery discharge rate estimation failed: %m");
|
||||
if(r == 0)
|
||||
if (r == 0)
|
||||
/* manual wakeup */
|
||||
return 0;
|
||||
}
|
||||
|
@ -23,4 +23,5 @@
|
||||
#HibernateState=disk
|
||||
#HybridSleepMode=suspend platform shutdown
|
||||
#HybridSleepState=disk
|
||||
#HibernateDelaySec=120min
|
||||
#HibernateDelaySec=
|
||||
#SuspendEstimationSec=60min
|
||||
|
@ -17,7 +17,7 @@ static int test_acpi_fpdt(void) {
|
||||
|
||||
r = acpi_get_boot_usec(&loader_start, &loader_exit);
|
||||
if (r < 0) {
|
||||
bool ok = IN_SET(r, -ENOENT, -ENODATA) || ERRNO_IS_PRIVILEGE(r);
|
||||
bool ok = IN_SET(r, -ENOENT, -ENODATA, -ERANGE) || ERRNO_IS_PRIVILEGE(r);
|
||||
|
||||
log_full_errno(ok ? LOG_DEBUG : LOG_ERR, r, "Failed to read ACPI FPDT: %m");
|
||||
return ok ? 0 : r;
|
||||
|
@ -480,6 +480,14 @@ TEST(safe_atou16) {
|
||||
assert_se(r == 0);
|
||||
assert_se(l == 12345);
|
||||
|
||||
r = safe_atou16("+12345", &l);
|
||||
assert_se(r == 0);
|
||||
assert_se(l == 12345);
|
||||
|
||||
r = safe_atou16(" +12345", &l);
|
||||
assert_se(r == 0);
|
||||
assert_se(l == 12345);
|
||||
|
||||
r = safe_atou16("123456", &l);
|
||||
assert_se(r == -ERANGE);
|
||||
|
||||
@ -514,6 +522,14 @@ TEST(safe_atoi16) {
|
||||
assert_se(r == 0);
|
||||
assert_se(l == -12345);
|
||||
|
||||
r = safe_atoi16("+12345", &l);
|
||||
assert_se(r == 0);
|
||||
assert_se(l == 12345);
|
||||
|
||||
r = safe_atoi16(" +12345", &l);
|
||||
assert_se(r == 0);
|
||||
assert_se(l == 12345);
|
||||
|
||||
r = safe_atoi16("32767", &l);
|
||||
assert_se(r == 0);
|
||||
assert_se(l == 32767);
|
||||
@ -703,6 +719,22 @@ TEST(safe_atoux64) {
|
||||
assert_se(r == 0);
|
||||
assert_se(l == 11603985);
|
||||
|
||||
r = safe_atoux64("+12345", &l);
|
||||
assert_se(r == 0);
|
||||
assert_se(l == 0x12345);
|
||||
|
||||
r = safe_atoux64(" +12345", &l);
|
||||
assert_se(r == 0);
|
||||
assert_se(l == 0x12345);
|
||||
|
||||
r = safe_atoux64("+0x12345", &l);
|
||||
assert_se(r == 0);
|
||||
assert_se(l == 0x12345);
|
||||
|
||||
r = safe_atoux64("+0b11011", &l);
|
||||
assert_se(r == 0);
|
||||
assert_se(l == 11603985);
|
||||
|
||||
r = safe_atoux64("0o11011", &l);
|
||||
assert_se(r == -EINVAL);
|
||||
|
||||
|
@ -3311,12 +3311,6 @@ static int parse_line(
|
||||
*invalid_config = true;
|
||||
return log_syntax(NULL, LOG_ERR, fname, line, SYNTHETIC_ERRNO(EBADMSG), "base64 decoding not supported for symlink targets.");
|
||||
}
|
||||
|
||||
if (!i.argument) {
|
||||
i.argument = path_join("/usr/share/factory", i.path);
|
||||
if (!i.argument)
|
||||
return log_oom();
|
||||
}
|
||||
break;
|
||||
|
||||
case WRITE_FILE:
|
||||
@ -3331,34 +3325,6 @@ static int parse_line(
|
||||
*invalid_config = true;
|
||||
return log_syntax(NULL, LOG_ERR, fname, line, SYNTHETIC_ERRNO(EBADMSG), "base64 decoding not supported for copy sources.");
|
||||
}
|
||||
|
||||
if (!i.argument) {
|
||||
i.argument = path_join("/usr/share/factory", i.path);
|
||||
if (!i.argument)
|
||||
return log_oom();
|
||||
} else if (!path_is_absolute(i.argument)) {
|
||||
*invalid_config = true;
|
||||
return log_syntax(NULL, LOG_ERR, fname, line, SYNTHETIC_ERRNO(EBADMSG), "Source path '%s' is not absolute.", i.argument);
|
||||
|
||||
}
|
||||
|
||||
if (!empty_or_root(arg_root)) {
|
||||
char *p;
|
||||
|
||||
p = path_join(arg_root, i.argument);
|
||||
if (!p)
|
||||
return log_oom();
|
||||
free_and_replace(i.argument, p);
|
||||
}
|
||||
|
||||
path_simplify(i.argument);
|
||||
|
||||
if (laccess(i.argument, F_OK) == -ENOENT) {
|
||||
/* Silently skip over lines where the source file is missing. */
|
||||
log_syntax(NULL, LOG_DEBUG, fname, line, 0, "Copy source path '%s' does not exist, skipping line.", i.argument);
|
||||
return 0;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case CREATE_CHAR_DEVICE:
|
||||
@ -3452,6 +3418,49 @@ static int parse_line(
|
||||
}
|
||||
}
|
||||
|
||||
switch (i.type) {
|
||||
case CREATE_SYMLINK:
|
||||
if (!i.argument) {
|
||||
i.argument = path_join("/usr/share/factory", i.path);
|
||||
if (!i.argument)
|
||||
return log_oom();
|
||||
}
|
||||
break;
|
||||
|
||||
case COPY_FILES:
|
||||
if (!i.argument) {
|
||||
i.argument = path_join("/usr/share/factory", i.path);
|
||||
if (!i.argument)
|
||||
return log_oom();
|
||||
} else if (!path_is_absolute(i.argument)) {
|
||||
*invalid_config = true;
|
||||
return log_syntax(NULL, LOG_ERR, fname, line, SYNTHETIC_ERRNO(EBADMSG), "Source path '%s' is not absolute.", i.argument);
|
||||
|
||||
}
|
||||
|
||||
if (!empty_or_root(arg_root)) {
|
||||
char *p;
|
||||
|
||||
p = path_join(arg_root, i.argument);
|
||||
if (!p)
|
||||
return log_oom();
|
||||
free_and_replace(i.argument, p);
|
||||
}
|
||||
|
||||
path_simplify(i.argument);
|
||||
|
||||
if (laccess(i.argument, F_OK) == -ENOENT) {
|
||||
/* Silently skip over lines where the source file is missing. */
|
||||
log_syntax(NULL, LOG_DEBUG, fname, line, 0, "Copy source path '%s' does not exist, skipping line.", i.argument);
|
||||
return 0;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (from_cred) {
|
||||
if (!i.argument)
|
||||
return log_syntax(NULL, LOG_ERR, fname, line, SYNTHETIC_ERRNO(EINVAL), "Reading from credential requested, but no credential name specified.");
|
||||
|
@ -841,8 +841,6 @@ static int link_apply_alternative_names(Link *link, sd_netlink **rtnl) {
|
||||
}
|
||||
}
|
||||
|
||||
if (link->new_name)
|
||||
strv_remove(altnames, link->new_name);
|
||||
strv_remove(altnames, link->ifname);
|
||||
|
||||
r = rtnl_get_link_alternative_names(rtnl, link->ifindex, ¤t_altnames);
|
||||
|
@ -144,7 +144,7 @@ static int get_virtfn_info(sd_device *pcidev, sd_device **ret_physfn_pcidev, cha
|
||||
if (!suffix)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret_physfn_pcidev = sd_device_ref(child);
|
||||
*ret_physfn_pcidev = sd_device_ref(physfn_pcidev);
|
||||
*ret_suffix = suffix;
|
||||
return 0;
|
||||
}
|
||||
|
@ -862,7 +862,6 @@ int udev_event_spawn(
|
||||
static int rename_netif(UdevEvent *event) {
|
||||
const char *oldname;
|
||||
sd_device *dev;
|
||||
unsigned flags;
|
||||
int ifindex, r;
|
||||
|
||||
assert(event);
|
||||
@ -896,16 +895,6 @@ static int rename_netif(UdevEvent *event) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
r = rtnl_get_link_info(&event->rtnl, ifindex, NULL, &flags, NULL, NULL, NULL);
|
||||
if (r < 0)
|
||||
return log_device_warning_errno(dev, r, "Failed to get link flags: %m");
|
||||
|
||||
if (FLAGS_SET(flags, IFF_UP)) {
|
||||
log_device_info(dev, "Network interface '%s' is already up, refusing to rename to '%s'.",
|
||||
oldname, event->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Set ID_RENAMING boolean property here, and drop it in the corresponding move uevent later. */
|
||||
r = device_add_property(dev, "ID_RENAMING", "1");
|
||||
if (r < 0)
|
||||
@ -927,6 +916,11 @@ static int rename_netif(UdevEvent *event) {
|
||||
return log_device_debug_errno(event->dev_db_clone, r, "Failed to update database under /run/udev/data/: %m");
|
||||
|
||||
r = rtnl_set_link_name(&event->rtnl, ifindex, event->name);
|
||||
if (r == -EBUSY) {
|
||||
log_device_info(dev, "Network interface '%s' is already up, cannot rename to '%s'.",
|
||||
oldname, event->name);
|
||||
return 0;
|
||||
}
|
||||
if (r < 0)
|
||||
return log_device_error_errno(dev, r, "Failed to rename network interface %i from '%s' to '%s': %m",
|
||||
ifindex, oldname, event->name);
|
||||
|
@ -1641,7 +1641,7 @@ static int udev_rule_apply_token_to_event(
|
||||
case TK_M_PARENTS_TAG: {
|
||||
const char *val;
|
||||
|
||||
FOREACH_DEVICE_TAG(dev, val)
|
||||
FOREACH_DEVICE_CURRENT_TAG(dev, val)
|
||||
if (token_match_string(token, val))
|
||||
return token->op == OP_MATCH;
|
||||
return token->op == OP_NOMATCH;
|
||||
|
@ -794,7 +794,7 @@ static int worker_spawn(Manager *manager, Event *event) {
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Worker: Failed to enable receiving of device: %m");
|
||||
|
||||
r = safe_fork(NULL, FORK_DEATHSIG, &pid);
|
||||
r = safe_fork("(udev-worker)", FORK_DEATHSIG, &pid);
|
||||
if (r < 0) {
|
||||
event->state = EVENT_QUEUED;
|
||||
return log_error_errno(r, "Failed to fork() worker: %m");
|
||||
|
@ -6,7 +6,8 @@
|
||||
# (at your option) any later version.
|
||||
|
||||
# The superuser
|
||||
u root 0 "Super User" /root
|
||||
g root 0 - -
|
||||
u root 0:0 "Super User" /root
|
||||
|
||||
# The nobody user/group for NFS file systems
|
||||
g {{NOBODY_GROUP_NAME}} 65534 - -
|
||||
|
7
test/test-network/conf/12-dummy-rename-to-altname.link
Normal file
7
test/test-network/conf/12-dummy-rename-to-altname.link
Normal file
@ -0,0 +1,7 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[Match]
|
||||
OriginalName=dummy98
|
||||
|
||||
[Link]
|
||||
Name=dummyalt
|
||||
AlternativeName=dummyalt hogehogehogehogehogehoge
|
@ -936,6 +936,17 @@ class NetworkctlTests(unittest.TestCase, Utilities):
|
||||
output = check_output(*networkctl_cmd, '-n', '0', 'status', 'dummy98', env=env)
|
||||
self.assertRegex(output, 'hogehogehogehogehogehoge')
|
||||
|
||||
@expectedFailureIfAlternativeNameIsNotAvailable()
|
||||
def test_rename_to_altname(self):
|
||||
copy_network_unit('26-netdev-link-local-addressing-yes.network',
|
||||
'12-dummy.netdev', '12-dummy-rename-to-altname.link')
|
||||
start_networkd()
|
||||
self.wait_online(['dummyalt:degraded'])
|
||||
|
||||
output = check_output(*networkctl_cmd, '-n', '0', 'status', 'dummyalt', env=env)
|
||||
self.assertIn('hogehogehogehogehogehoge', output)
|
||||
self.assertNotIn('dummy98', output)
|
||||
|
||||
def test_reconfigure(self):
|
||||
copy_network_unit('25-address-static.network', '12-dummy.netdev')
|
||||
start_networkd()
|
||||
|
@ -97,7 +97,7 @@ test "$(stat -c %U:%G:%a /tmp/e/3/f1)" = "root:root:644"
|
||||
# 'C'
|
||||
#
|
||||
|
||||
mkdir /tmp/C/{1,2,3}-origin
|
||||
mkdir /tmp/C/{0,1,2,3}-origin
|
||||
touch /tmp/C/{1,2,3}-origin/f1
|
||||
chmod 755 /tmp/C/{1,2,3}-origin/f1
|
||||
|
||||
@ -121,3 +121,31 @@ EOF
|
||||
|
||||
test "$(stat -c %U:%G:%a /tmp/C/3/f1)" = "root:root:644"
|
||||
test ! -e /tmp/C/4
|
||||
|
||||
# Check that %U expands to 0, both in the path and in the argument.
|
||||
home='/tmp/C'
|
||||
systemd-tmpfiles --create - <<EOF
|
||||
C $home/%U - - - - $home/%U-origin
|
||||
EOF
|
||||
|
||||
test -d "$home/0"
|
||||
|
||||
# Check that %h expands to $home, both in the path and in the argument.
|
||||
HOME="$home" \
|
||||
systemd-tmpfiles --create - <<EOF
|
||||
C %h/5 - - - - %h/3-origin
|
||||
EOF
|
||||
|
||||
test -f "$home/5/f1"
|
||||
|
||||
# Check that %h in the path is expanded, but
|
||||
# the result of this expansion is not expanded once again.
|
||||
root='/tmp/C/6'
|
||||
home='/%U'
|
||||
mkdir -p "$root/usr/share/factory$home"
|
||||
HOME="$home" \
|
||||
systemd-tmpfiles --create --root="$root" - <<EOF
|
||||
C %h - - - -
|
||||
EOF
|
||||
|
||||
test -d "$root$home"
|
||||
|
32
test/units/testsuite-22.15.sh
Executable file
32
test/units/testsuite-22.15.sh
Executable file
@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
#
|
||||
# Check specifier expansion in L lines.
|
||||
#
|
||||
set -eux
|
||||
|
||||
rm -fr /tmp/L
|
||||
mkdir /tmp/L
|
||||
|
||||
# Check that %h expands to $home.
|
||||
home='/somewhere'
|
||||
dst='/tmp/L/1'
|
||||
src="$home"
|
||||
HOME="$home" \
|
||||
systemd-tmpfiles --create - <<EOF
|
||||
L $dst - - - - %h
|
||||
EOF
|
||||
test "$(readlink "$dst")" = "$src"
|
||||
|
||||
# Check that %h in the path is expanded, but
|
||||
# the result of this expansion is not expanded once again.
|
||||
root='/tmp/L/2'
|
||||
home='/%U'
|
||||
src="/usr/share/factory$home"
|
||||
mkdir -p "$root$src"
|
||||
dst="$root$home"
|
||||
HOME="$home" \
|
||||
systemd-tmpfiles --create --root="$root" - <<EOF
|
||||
L %h - - - -
|
||||
EOF
|
||||
test "$(readlink "$dst")" = "$src"
|
@ -128,6 +128,12 @@ if [ -e /usr/lib/systemd/systemd-measure ] && \
|
||||
# Now, do the same, but with a cryptsetup binding
|
||||
truncate -s 20M $img
|
||||
cryptsetup luksFormat -q --pbkdf pbkdf2 --pbkdf-force-iterations 1000 --use-urandom $img /tmp/passphrase
|
||||
# Ensure that an unrelated signature, when not requested, is not used
|
||||
touch /run/systemd/tpm2-pcr-signature.json
|
||||
systemd-cryptenroll --unlock-key-file=/tmp/passphrase --tpm2-device=auto --tpm2-public-key="/tmp/pcrsign-public.pem" $img
|
||||
# Reset and use the signature now
|
||||
rm -f /run/systemd/tpm2-pcr-signature.json
|
||||
systemd-cryptenroll --wipe-slot=tpm2 $img
|
||||
systemd-cryptenroll --unlock-key-file=/tmp/passphrase --tpm2-device=auto --tpm2-public-key="/tmp/pcrsign-public.pem" --tpm2-signature="/tmp/pcrsign.sig2" $img
|
||||
|
||||
# Check if we can activate that (without the token module stuff)
|
||||
@ -155,6 +161,12 @@ else
|
||||
echo "/usr/lib/systemd/systemd-measure or PCR sysfs files not found, skipping signed PCR policy test case"
|
||||
fi
|
||||
|
||||
# Ensure that sandboxing doesn't stop creds from being accessible
|
||||
echo "test" > /tmp/testdata
|
||||
systemd-creds encrypt /tmp/testdata /tmp/testdata.encrypted --with-key=tpm2
|
||||
systemd-run -p PrivateDevices=yes -p LoadCredentialEncrypted=testdata.encrypted:/tmp/testdata.encrypted --pipe --wait systemd-creds cat testdata.encrypted | cmp - /tmp/testdata
|
||||
rm /tmp/testdata
|
||||
|
||||
echo OK >/testok
|
||||
|
||||
exit 0
|
||||
|
@ -10,7 +10,7 @@
|
||||
[Unit]
|
||||
Description=Container %i
|
||||
Documentation=man:systemd-nspawn(1)
|
||||
Wants=modprobe@tun.service modprobe@loop.service modprobe@dm-mod.service
|
||||
Wants=modprobe@tun.service modprobe@loop.service modprobe@dm_mod.service
|
||||
PartOf=machines.target
|
||||
Before=machines.target
|
||||
After=network.target modprobe@tun.service modprobe@loop.service modprobe@dm-mod.service
|
||||
|
@ -13,12 +13,12 @@ Documentation=man:systemd-pcrphase-initrd.service(8)
|
||||
DefaultDependencies=no
|
||||
Conflicts=shutdown.target initrd-switch-root.target
|
||||
Before=sysinit.target cryptsetup-pre.target cryptsetup.target shutdown.target initrd-switch-root.target systemd-sysext.service
|
||||
AssertPathExists=/etc/initrd-release
|
||||
ConditionPathExists=/etc/initrd-release
|
||||
ConditionSecurity=tpm2
|
||||
ConditionPathExists=/sys/firmware/efi/efivars/StubPcrKernelImage-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart={{ROOTLIBEXECDIR}}/systemd-pcrphase enter-initrd
|
||||
ExecStop={{ROOTLIBEXECDIR}}/systemd-pcrphase leave-initrd
|
||||
ExecStart={{ROOTLIBEXECDIR}}/systemd-pcrphase --graceful enter-initrd
|
||||
ExecStop={{ROOTLIBEXECDIR}}/systemd-pcrphase --graceful leave-initrd
|
||||
|
@ -14,12 +14,12 @@ DefaultDependencies=no
|
||||
Conflicts=shutdown.target
|
||||
After=sysinit.target
|
||||
Before=basic.target shutdown.target
|
||||
AssertPathExists=!/etc/initrd-release
|
||||
ConditionPathExists=!/etc/initrd-release
|
||||
ConditionSecurity=tpm2
|
||||
ConditionPathExists=/sys/firmware/efi/efivars/StubPcrKernelImage-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart={{ROOTLIBEXECDIR}}/systemd-pcrphase sysinit
|
||||
ExecStop={{ROOTLIBEXECDIR}}/systemd-pcrphase final
|
||||
ExecStart={{ROOTLIBEXECDIR}}/systemd-pcrphase --graceful sysinit
|
||||
ExecStop={{ROOTLIBEXECDIR}}/systemd-pcrphase --graceful final
|
||||
|
@ -12,12 +12,12 @@ Description=TPM2 PCR Barrier (User)
|
||||
Documentation=man:systemd-pcrphase.service(8)
|
||||
After=remote-fs.target remote-cryptsetup.target
|
||||
Before=systemd-user-sessions.service
|
||||
AssertPathExists=!/etc/initrd-release
|
||||
ConditionPathExists=!/etc/initrd-release
|
||||
ConditionSecurity=tpm2
|
||||
ConditionPathExists=/sys/firmware/efi/efivars/StubPcrKernelImage-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart={{ROOTLIBEXECDIR}}/systemd-pcrphase ready
|
||||
ExecStop={{ROOTLIBEXECDIR}}/systemd-pcrphase shutdown
|
||||
ExecStart={{ROOTLIBEXECDIR}}/systemd-pcrphase --graceful ready
|
||||
ExecStop={{ROOTLIBEXECDIR}}/systemd-pcrphase --graceful shutdown
|
||||
|
@ -12,7 +12,8 @@ Description=Repartition Root Disk
|
||||
Documentation=man:systemd-repart.service(8)
|
||||
DefaultDependencies=no
|
||||
Conflicts=shutdown.target
|
||||
After=initrd-usr-fs.target
|
||||
Wants=modprobe@loop.service modprobe@dm_mod.service
|
||||
After=initrd-usr-fs.target modprobe@loop.service modprobe@dm_mod.service
|
||||
Before=initrd-root-fs.target shutdown.target
|
||||
ConditionVirtualization=!container
|
||||
ConditionDirectoryNotEmpty=|/usr/lib/repart.d
|
||||
|
Loading…
Reference in New Issue
Block a user