New upstream version 249~rc1

This commit is contained in:
Michael Biebl 2021-06-16 13:28:15 +02:00
parent 874c989ecb
commit 8b3d4ff0af
1261 changed files with 55750 additions and 22224 deletions

View File

@ -13,6 +13,7 @@ ARGS=(
"--optimization=3 -Db_lto=true"
"--optimization=3 -Db_lto=false"
"--optimization=3 -Ddns-over-tls=openssl"
"--optimization=3 -Dfexecve=true -Dstandalone-binaries=true -Dstatic-libsystemd=true -Dstatic-libudev=true"
"-Db_ndebug=true"
)
PACKAGES=(
@ -45,9 +46,9 @@ PACKAGES=(
mount
net-tools
perl
python-lxml
python3-evdev
python3-lxml
python3-jinja2
python3-pip
python3-pyparsing
python3-setuptools

View File

@ -19,6 +19,7 @@ jobs:
matrix:
env:
- { COMPILER: "gcc", COMPILER_VERSION: "10" }
- { COMPILER: "gcc", COMPILER_VERSION: "11" }
- { COMPILER: "clang", COMPILER_VERSION: "10" }
- { COMPILER: "clang", COMPILER_VERSION: "11" }
- { COMPILER: "clang", COMPILER_VERSION: "12" }

View File

@ -27,7 +27,7 @@ jobs:
- uses: systemd/mkosi@v9
- name: Install
run: sudo apt-get update && sudo apt-get install --no-install-recommends python3-pexpect
run: sudo apt-get update && sudo apt-get install --no-install-recommends python3-pexpect python3-jinja2
- name: Symlink
run: ln -s .mkosi/mkosi.${{ matrix.distro }} mkosi.default
@ -48,8 +48,17 @@ jobs:
- name: Build ${{ matrix.distro }}
run: sudo python3 -m mkosi --password= --qemu-headless build
- name: Show ${{ matrix.distro }} image summary
run: sudo python3 -m mkosi --password= --qemu-headless summary
# Ugly workaround for systemd/systemd#19442 where systemd-nspawn
# occasionally fails with 'Failed to dissect image xxx: Connection timed out
- name: Retry the build if necessary
if: ${{ matrix.distro == 'arch' }}
run: echo "BUILD_RETRY_MAX=3" >> $GITHUB_ENV
- name: Boot ${{ matrix.distro }} systemd-nspawn
run: sudo ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --password= --qemu-headless boot
run: sudo -E bash +e -x -c 'for _ in $(seq 1 ${BUILD_RETRY_MAX:-1}); do ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --password= --qemu-headless boot && break; done'
- name: Boot ${{ matrix.distro }} QEMU
run: sudo ./.github/workflows/test_mkosi_boot.py python3 -m mkosi --password= --qemu-headless qemu

View File

@ -8,9 +8,6 @@ import sys
def run() -> None:
p = pexpect.spawnu(" ".join(sys.argv[1:]), logfile=sys.stdout, timeout=300)
p.expect("login:")
p.sendline("root")
p.expect("#")
p.sendline("systemctl poweroff")

View File

@ -6,6 +6,7 @@ ADDITIONAL_DEPS=(
clang
expect
fdisk
jekyll
libfdisk-dev
libfido2-dev
libp11-kit-dev

View File

@ -9,6 +9,7 @@ extraction:
- libfdisk-dev
- libp11-kit-dev
- libssl-dev
- python3-jinja2
python:
python_setup:
version: 3

View File

@ -35,12 +35,12 @@ BuildPackages=
libxkbcommon
libxslt
lz4
m4
meson
pam
pkgconfig
python
python-lxml
python-jinja
qrencode
rsync
xz
@ -52,4 +52,3 @@ Packages=
nano
qrencode
strace
vi

View File

@ -46,11 +46,11 @@ BuildPackages=
libtss2-dev
libxkbcommon-dev
libzstd-dev
m4
meson
pkg-config
python3
python3-lxml
python3-jinja2
tree
uuid-dev
xsltproc
@ -68,4 +68,3 @@ Packages=
locales
nano
strace
vim-tiny

View File

@ -5,17 +5,12 @@
[Distribution]
Distribution=fedora
Release=33
Release=34
[Packages]
BuildPackages=
audit-libs-devel
bzip2-devel
cryptsetup-devel
dbus-devel
diffutils
docbook-style-xsl
elfutils-devel
findutils
gcc
gettext
@ -23,56 +18,56 @@ BuildPackages=
glibc-minimal-langpack
gnu-efi
gnu-efi-devel
gnutls-devel
gperf
iptables-devel
kmod-devel
libacl-devel
libblkid-devel
libcap-devel
libcurl-devel
libfdisk-devel
libfido2-devel
libgcrypt-devel
libidn2-devel
libmicrohttpd-devel
libmount-devel
libpwquality-devel
libseccomp-devel
libselinux-devel
libxkbcommon-devel
libxslt
libzstd-devel
lz4
lz4-devel
m4
meson
ninja-build
openssl-devel
p11-kit-devel
pam-devel
pcre2-devel
perl(IPC::SysV)
perl(Time::HiRes)
pkgconfig
python3-devel
python3-lxml
qrencode-devel
pkgconfig(audit)
pkgconfig(blkid)
pkgconfig(bzip2)
pkgconfig(dbus-1)
pkgconfig(fdisk)
pkgconfig(gnutls)
pkgconfig(libacl)
pkgconfig(libcap)
pkgconfig(libcryptsetup)
pkgconfig(libcurl)
pkgconfig(libdw)
pkgconfig(libfido2)
pkgconfig(libgcrypt)
pkgconfig(libidn2)
pkgconfig(libiptc)
pkgconfig(libkmod)
pkgconfig(liblz4)
pkgconfig(liblzma)
pkgconfig(libmicrohttpd)
pkgconfig(libpcre2-8)
pkgconfig(libqrencode)
pkgconfig(libseccomp)
pkgconfig(libselinux)
pkgconfig(libzstd)
pkgconfig(mount)
pkgconfig(openssl)
pkgconfig(p11-kit-1)
pkgconfig(pwquality)
pkgconfig(tss2-esys)
pkgconfig(tss2-mu)
pkgconfig(tss2-rc)
pkgconfig(valgrind)
pkgconfig(xkbcommon)
python3dist(jinja2)
python3dist(lxml)
rpm
tpm2-tss-devel
tree
valgrind-devel
xz-devel
zstd
/usr/bin/xsltproc
Packages=
gdb
# libfido2 + libzstd can be dropped once the Fedora RPM gets a dependency on them
libfido2
libzstd
nano
# procps-ng provides a set of useful utilies (ps, free, etc)
procps-ng
strace
tpm2-tss
vi

View File

@ -30,13 +30,13 @@ BuildPackages=
libseccomp-devel
libselinux-devel
libxslt-tools
m4
meson
pam-devel
pciutils-devel
pcre-devel
python3
python3-lxml
python3-jinja2
qrencode-devel
system-user-nobody
systemd-sysvinit
@ -69,4 +69,3 @@ Packages=
nano
strace
util-linux
vi

View File

@ -49,11 +49,11 @@ BuildPackages=
libxkbcommon-dev
libxtables-dev
libzstd-dev
m4
meson
pkg-config
python3
python3-lxml
python3-jinja2
tree
tzdata
uuid-dev
@ -71,4 +71,3 @@ Packages=
locales
nano
strace
vim-tiny

View File

@ -18,6 +18,8 @@ actions:
post-upstream-clone:
# Use the Fedora Rawhide specfile
- "git clone https://src.fedoraproject.org/rpms/systemd .packit_rpm --depth=1"
# Drop the "sources" file so rebase-helper doesn't think we're a dist-git
- "rm -fv .packit_rpm/sources"
# Drop backported patches from the specfile, but keep the downstream-only ones
# - Patch0000-0499: backported patches from upstream
# - Patch0500-9999: downstream-only patches

View File

@ -57,7 +57,7 @@ for phase in "${PHASES[@]}"; do
echo "deb http://archive.ubuntu.com/ubuntu $UBUNTU_RELEASE-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/backports.list
sudo apt-get -q update
sudo apt-get install -y -t "$UBUNTU_RELEASE-backports" lxc
sudo apt-get install -y python3-debian git dpkg-dev fakeroot
sudo apt-get install -y python3-debian git dpkg-dev fakeroot python3-jinja2
[ -d $AUTOPKGTEST_DIR ] || git clone --quiet --depth=1 https://salsa.debian.org/ci-team/autopkgtest.git "$AUTOPKGTEST_DIR"

506
NEWS
View File

@ -1,5 +1,511 @@
systemd System and Service Manager
CHANGES WITH 249 in spe:
* When operating on disk images via the --image= switch of various
tools (such as systemd-nspawn or systemd-dissect), and multiple
suitable root or /usr/ partitions exist in the image, then a simple
comparison inspired by strverscmp() is done on the GPT partition
label, and the newest partition is picked. This permits a simple and
generic whole-file-system A/B update logic where new operating system
versions are dropped into partitions whose label is then updated with
a matching version identifier.
* systemd-sysusers now supports querying the passwords to set for the
users it creates via the "credentials" logic introduced in v247: the
passwd.hashed-password.<user> and passwd.plaintext-password.<user>
credentials are consulted for the password to use (either in UNIX
hashed form, or literally). By default these credentials are inherited
down from PID1 (which in turn imports it from a container manager if
there is one). This permits easy configuration of user passwords
during first boot. Example:
# systemd-nspawn -i foo.raw --volatile=yes --set-credential=passwd.plaintext-password.root:foo
Note that systemd-sysusers operates in purely additive mode: it
executes no operation if the declared users already exist, and hence
doesn't set any passwords as effect of the command line above if the
specified root user exists already in the image. (Note that
--volatile=yes ensures it doesn't, though.)
* systemd-firstboot now also supports querying various system
parameters via the credential subsystems. Thus, as above this may be
used to initialize important system parameters on first boot of
previously unprovisioned images (i.e. images with a mostly empty
/etc/).
* Services gained a new ExitType= setting which can configure how to
determine when a service exited: the default is "main" which defines
the runtime by the service's main process lifetime (this matches the
only behaviour implemented in v248 and before), but with "cgroup" the
runtime is defined by the existence of any process in the service's
cgroup.
* The systemd-machine-id-setup tool now supports a --image= switch for
provisioning a machine ID file into an OS disk image, similar to how
--root= operates on an OS file tree. This matches the existing switch
of the same name for systemd-tmpfiles, systemd-firstboot, and
systemd-sysusers tools.
* Similarly, systemd-repart gained support for the --image= switch too.
In combination with the existing --size= option, this makes the tool
particularly useful for easily growing disk images in a single
invocation, following the declarative rules included in the image
itself.
* systemd-repart's partition configuration files gained support for a
new switch MakeDirectories= which may be used to create arbitrary
directories inside file systems that are created, before registering
them in the partition table. This is useful in particular for root
partitions to create mount point directories for other partitions
included in the image. For example, a disk image that contains a
root, /home/, and /var/ partitions, may set MakeDirectories=yes to
create /home/ and /var/ as empty directories in the root file system
on its creation, so that the resulting image can mounted immediately,
even in read-only mode.
* systemd-repart's CopyBlocks= setting gained support for the special
value "auto". If used, a suitable matching partition on the booted OS
is found as source to copy blocks from. This is useful when
implementing replicating installers, that are booted from one medium
and then stream their own root partition onto the target medium.
* systemd-repart's partition configuration files gained support for a
Flags= and a ReadOnly= setting, allowing control of the GPT partition
flags for the created partitions: this is useful for marking newly
created partitions as read-only from the start.
* The /etc/os-release file has been extended with two new (optional)
variables IMAGE_VERSION= and IMAGE_ID=, carrying identity and version
information for OS images that are updated comprehensively and
atomically as one image. Two new specifiers %M, %A now resolve to
these two fields in the various configuration options that resolve
specifiers.
* portablectl gained a new switch --extension= for enabling portable
service images with extensions that follow the extension image
concept introduced with v248, and thus allows layering multiple
images when setting up the root filesystem of the service.
* systemd-coredump will now extract ELF build-id information from
processes dumping core and include it in the coredump report.
Moreover, it will look for ELF .note.package sections with
distribution packaging meta-information about the crashing process.
This is useful to directly embed the rpm or deb (or any other)
package name and version in ELF files, making it easy to match
coredump reports with the specific package for which the software was
compiled. This is particularly useful on environments with ELF files
from multiple vendors, different distributions and versions, as is
common today in our containerized and sand-boxed world. For further
information, see:
https://systemd.io/COREDUMP_PACKAGE_METADATA
* A new udev hardware database has been added for FireWire devices
(IEEE 1394).
* sd-bus' sd_bus_is_ready() and sd_bus_is_open() calls now accept a
NULL bus object, for which they will return false. Or in other words,
an unallocated bus connection is neither ready nor open.
* The sd-device API acquired a new API function
sd_device_get_usec_initialized() that returns the monotonic time when
the udev device first appeared in the database.
* sd-device gained a new APIs sd_device_trigger_with_uuid() and
sd_device_get_trigger_uuid(). The former is similar to
sd_device_trigger() but returns a randomly generated UUID that is
associated with the synthetic uevent generated by the call. This UUID
may be read from the sd_device object a monitor eventually receives,
via the sd_device_get_trigger_uuid(). This interface requires kernel
4.13 or above to work, and allows tracking a synthetic uevent through
the entire device management stack. The "udevadm trigger --settle"
logic has been updated to make use of this concept if available to
wait precisely for the uevents it generates. "udevadm trigger" also
gained a new parameter --uuid that prints the UUID for each generated
uevent.
* sd-device also gained new APIs sd_device_new_from_ifname() and
sd_device_new_from_ifindex() for allocating an sd-device object for
the specified network interface. The former accepts an interface name
(either a primary or an alternative name), the latter an interface
index.
* The native Journal protocol has been documented. Clients may talk
this as alternative to the classic BSD syslog protocol for locally
delivering log records to the Journal. The protocol has been stable
since a long time and in fact been implemented already in a variety
of alternative client libraries. This documentation makes the support
for that official:
https://systemd.io/JOURNAL_NATIVE_PROTOCOL
* A new BPFProgram= setting has been added to service files. It may be
set to a path to a loaded kernel BPF program, i.e. a path to a bpffs
file, or a bind mount or symlink to one. This may be used to upload
and manage BPF programs externally and then hook arbitrary systemd
services into them.
* The "home.arpa" domain that has been officially declared as the
choice for domain for local home networks per RFC 8375 has been added
to the default NTA list of resolved, since DNSSEC is generally not
available on private domains.
* The CPUAffinity= setting of unit files now resolves "%" specifiers.
* A new ManageForeignRoutingPolicyRules= setting has been added to
.network files which may be used to exclude foreign-created routing
policy rules from systemd-networkd management.
* systemd-network-wait-online gained two new switches -4 and -6 that
may be used to tweak whether to wait for only IPv4 or only IPv6
connectivity.
* .network files gained a new RequiredFamilyForOnline= setting to
fine-tune whether to require an IPv4 or IPv6 address in order to
consider an interface "online".
* networkctl will now show an over-all "online" state in the per-link
information.
* In .network files a new OutgoingInterface= setting has been added to
specify the output interface in bridge FDB setups.
* In .network files the Multipath group ID may now be configured for
[NextHop] entries, via the new Group= setting.
* The DHCP server logic configured in .network files gained a new
setting RelayTarget= that turns the server into a DHCP server relay.
The RelayAgentCircuitId= and RelayAgentRemoteId= settings may be used
to further tweak the DHCP relay behaviour.
* The DHCP server logic also gained a new ServerAddress= setting in
.network files that explicitly specifies the server IP address to
use. If not specified, the address is determined automatically, as
before.
* The DHCP server logic in systemd-networkd gained support for static
DHCP leases, configurable via the [DHCPServerStaticLease]
section. This allows explicitly mapping specific MAC addresses to
fixed IP addresses and vice versa.
* The RestrictAddressFamilies= setting in service files now supports a
new special value "none". If specified sockets of all address
families will be made unavailable to services configured that way.
* systemd-fstab-generator and systemd-repart have been updated to
support booting from disks that carry only a /usr/ partition but no
root partition yet, and where systemd-repart can add it in on the
first boot. This is useful for implementing systems that ship with a
single /usr/ file system, and whose root file system shall be set up
and formatted on a LUKS-encrypted volume whose key is generated
locally (and possibly enrolled in the TPM) during the first boot.
* The [Address] section of .network files now accepts a new
RouteMetric= setting that configures the routing metric to use for
the prefix route created as effect of the address configuration.
Similarly, the [DHCPv6PrefixDelegation] and [IPv6Prefix] sections
gained matching settings for their prefix routes. (The option of the
same name in the [DHCPv6] section is moved to [IPv6AcceptRA], since
it conceptually belongs there; the old option is still understood for
compatibility.)
* The DHCPv6 IAID and DUID are now explicitly configurable in .network
files.
* A new udev property ID_NET_DHCP_BROADCAST on network interface
devices is now honoured by systemd-networkd, controlling whether to
issue DHCP offers via broadcasting. This is used to ensure that s390
layer 3 network interfaces work out-of-the-box with systemd-networkd.
* nss-myhostname and systemd-resolved will now synthesize address
records for a new special hostname "_outbound". The name will always
resolve to the local IP addresses most likely used for outbound
connections towards the default routes. On multi-homed hosts this is
useful to have a stable handle referring to "the" local IP address
that matters most, to the point where this is defined.
* The Discoverable Partition Specification has been updated with a new
GPT partition flag "growsfs" defined for its partition types.
Whenever partitions with this flag set are automatically mounted
(i.e. via systemd-gpt-auto-generator or the --image= switch of
systemd-nspawn or other tools; and as opposed to explicit mounting
via /etc/fstab), the file system within the partition is
automatically grown to the full size of the partition. If the file
system size already matches the partition size this flag has no
effect. Previously, this functionality has been available via the
explicit x-systemd.growfs mount option, and this new flag extends
this to automatically discovered mounts. A new GrowFileSystem=
setting has been added to systemd-repart drop-in files that allows
configuring this partition flag. This new flag defaults to on for
partitions automatically created by systemd-repart, except if they
are marked read-only. See the specification for further details:
https://systemd.io/DISCOVERABLE_PARTITIONS
* .network files gained a new setting RoutesToNTP= in the [DHCPv4]
section. If enabled (which is the default), and an NTP server address
is acquired through a DHCP lease on this interface an explicit route
to this address is created on this interface to ensure that NTP
traffic to the NTP server acquired on an interface is also routed
through that interface. The pre-existing RoutesToDNS= setting that
implements the same for DNS servers is now enabled by default.
* A pair of service settings SocketBindAllow= + SocketBindDeny= have
been added that may be used to restrict the network interfaces
sockets created by the service may be bound to. This is implemented
via BPF.
* A new ConditionFirmware= condition type has been added to unit files.
It may be used to detect certain firmware features. At the moment it
may check whether running on an UEFI system, a device.tree system, or
if the system is compatible with some specified device-tree feature.
* hostnamed gained a new Describe() D-Bus method that returns a JSON
serialization of the host data it exposes. This is exposed via
"hostnamectl --json=" to acquire a host identity description in JSON.
It's our intention to add a similar features to most services and
objects systemd manages, in order to simplify integration with
program code that can consume JSON.
* Similarly, networkd gained a Describe() method on its Manager and
Link bus objects. This is exposed via "networkctl --json=".
* hostnamectl's various "get-xyz"/"set-xyz" verb pairs
(e.g. "hostnamectl get-hostname", "hostnamectl "set-hostname") have
been replaced by a single "xyz" verb (e.g. "hostnamectl hostname")
that is used both to get the value (when no argument is given), and
to set the value (when an argument is specified). The old names
continue to be supported for compatibility.
* systemd-detect-virt and ConditionVirtualization= are now able to
correctly identify Amazon EC2 environments.
* The LogLevelMax= setting of unit files now applies not only to log
messages generated *by* the service, but also to log messages
generated *about* the service by PID 1. To suppress logs concerning a
specific service comprehensively, set this option to a high log
level.
* bootctl gained support for a new --make-machine-id-directory= switch
that allows precise control on whether to create the top-level
per-machine directory in the boot partition that typically contains
Type 1 boot loader entries.
* During build SBAT data to include in the systemd-boot EFI PE binaries
may be specified now.
* /etc/crypttab learnt a new option "headless". If specified any
requests to query the user interactively for passwords or PINs will
be skipped. This is useful on systems that are headless, i.e. where
an interactive user is generally not present.
* /etc/crypttab also learnt a new option "password-echo=" that allows
configuring whether the encryption password prompt shall echo the
typed password and if so, do so literally or via asterisks. (The
default is the same behaviour as before: provide echo feedback via
asterisks.)
* FIDO2 support in systemd-cryptenroll/systemd-cryptsetup and
systemd-homed has been updated to allow explicit configuration of the
"user presence" and "user verification" checks, as well as whether a
PIN is required for authentication, via the new switches
--fido2-with-user-presence=, --fido2-with-user-verification=,
--fido2-with-client-pin= to systemd-cryptenroll and homectl. Which
features are available, and may be enabled or disabled depends on the
used FIDO2 token.
* systemd-nspawn's --private-user= switch now accepts the special value
"identity" which configures a user namespacing environment with an
identity mapping of 65535 UIDs. This means the container UID 0 is
mapped to the host UID 0, and the UID 1 to host UID 1. On first look
this doesn't appear to be useful, however it does reduce the attack
surface a bit, since the resulting container will possess process
capabilities only within its namespace and not on the host.
* systemd-nspawn's --private-user-chown switch has been replaced by a
more generic --private-user-ownership= switch that accepts one of
three values: "chown" is equivalent to the old --private-user-chown,
and "off" is equivalent to the absence of the old switch. The value
"map" uses the new UID mapping mounts of Linux 5.12 to map ownership
of files and directories of the underlying image to the chosen UID
range for the container. "auto" is equivalent to "map" if UID mapping
mount are supported, otherwise it is equivalent to "chown". The short
-U switch systemd-nspawn now implies --private-user-ownership=auto
instead of the old --private-user-chown. Effectively this means: if
the backing file system supports UID mapping mounts the feature is
now used by default if -U is used. Generally, it's a good idea to use
UID mapping mounts instead of recursive chown()ing, since it allows
running containers off immutable images (since no modifications of
the images need to take place), and share images between multiple
instances. Moreover, the recursive chown()ing operation is slow and
can be avoided. Conceptually it's also a good thing if transient UID
range uses do not leak into persistent file ownership anymore. TLDR:
finally, the last major drawback of user namespacing has been
removed, and -U should always be used (unless you use btrfs, where
UID mapped mounts do not exist; or your container actually needs
privileges on the host).
* nss-systemd now synthesizes user and group shadow records in addition
to the main user and group records. Thus, hashed passwords managed by
systemd-homed are now accessible via the shadow database.
* The userdb logic (and thus nss-systemd, and so on) now read
additional user/group definitions in JSON format from the drop-in
directories /etc/userdb/, /run/userdb/, /run/host/userdb/ and
/usr/lib/userdb/. This is a simple and powerful mechanism for making
additional users available to the system, with full integration into
NSS including the shadow databases. Since the full JSON user/group
record format is supported this may also be used to define users with
resource management settings and other runtime settings that
pam_systemd and systemd-logind enforce at login.
* The userdbctl tool gained two new switches --with-dropin= and
--with-varlink= which can be used to fine-tune the sources used for
user database lookups.
* systemd-nspawn gained a new switch --bind-user= for binding a host
user account into the container. This does three things: the user's
home directory is bind mounted from the host into the container,
below the /run/userdb/home/ hierarchy. A free UID is picked in the
container, and a user namespacing UID mapping to the host user's UID
installed. And finally, a minimal JSON user and group record (along
with its hashed password) is dropped into /run/host/userdb/. These
records are picked up automatically by the userdb drop-in logic
describe above, and allow the user to login with the same password as
on the host. Effectively this means: if host and container run new
enough systemd versions making a host user available to the container
is trivially simple.
* systemd-journal-gatewayd now supports the switches --user, --system,
--merge, --file= that are equivalent to the same switches of
journalctl, and permit exposing only the specified subset of the
Journal records.
* The OnFailure= dependency between units is now augmented with a
implicit reverse dependency OnFailureOf= (this new dependency cannot
be configured directly it's only created as effect of an OnFailure=
dependency in the reverse order — it's visible in "systemctl show"
however). Similar, Slice= now has an reverse dependency SliceOf=,
that is also not configurable directly, but useful to determine all
units that are members of a slice.
* A pair of new dependency types between units PropagatesStopTo= +
StopPropagatedFrom= has been added, that allows propagation of unit
stop events between two units. It operates similar to the existing
PropagatesReloadTo= + ReloadPropagatedFrom= dependencies.
* A new dependency type OnSuccess= has been added (plus the reverse
dependency OnSuccessOf=, which cannot be configured directly, but
exists only as effect of the reverse OnSuccess=). It is similar to
OnFailure=, but triggers in the opposite case: when a service exits
cleanly. This allows "chaining up" of services where one or more
services are started once another service has successfully completed.
* A new dependency type Upholds= has been added (plus the reverse
dependency UpheldBy=, which cannot be configured directly, but exists
only as effect of Upholds=). This dependency type is a stronger form
of Wants=: if a unit has an UpHolds= dependency on some other unit
and the former is active then the latter is started whenever it is
found inactive (and no job is queued for it). This is an alternative
to Restart= inside service units, but less configurable, and the
request to uphold a unit is not encoded in the unit itself but in
another unit that intends to uphold it.
* The systemd-ask-password tool now also supports reading passwords
from the credentials subsystem, via the new --credential= switch.
* The systemd-ask-password tool learnt a new switch --emoji= which may
be used to explicit control whether the lock and key emoji (🔐) is
shown in the password prompt on suitable TTYs.
* The --echo switch of systemd-ask-password now optionally takes a
parameter that controls character echo. It may either show asterisks
(default, as before), turn echo off entirely, or echo the typed
characters literally.
* New documentation has been added that describes the organization of
the systemd source code tree:
https://systemd.io/ARCHITECTURE
* Units using ConditionNeedsUpdate= will no longer be activated in
the initrd.
* It is now possible to list a template unit in the WantedBy= or
RequiredBy= settings of the [Install] section of another template
unit, which will be instantiated using the same instance name.
* A new MemoryAvailable property is available for units. If the unit,
or the slice(s) it is part of, have a memory limit set via MemoryMax=/
MemoryHigh=, MemoryAvailable will indicate how much more memory the
unit can claim before hitting the limit(s).
* systemd-coredump will now try to stay below the cgroup memory limit
placed on itself or one of the slices it runs under, if the storage
area for core files (/var/lib/systemd/coredump/) is placed on a tmpfs,
since files written on such filesystems count toward the cgroup memory
limit. If there is not enough available memory in such cases to store
the core file uncompressed, systemd-coredump will skip to compressed
storage directly (if enabled) and it will avoid analyzing the core file
to print backtrace and metadata in the journal.
* tmpfiles.d/ drop-ins gained a new '=' modifier to check if the type
of a path matches the configured expectations, and remove it if not.
* tmpfiles.d/'s 'Age' now accepts an 'age-by' argument, which allows to
specify which of the several available filesystem timestamps (access
time, birth time, change time, modification time) to look at when
deciding whether a path has aged enough to be cleaned.
* A new IPv6StableSecretAddress= setting has been added to .network
files, which takes an IPv6 address to use as secret for IPv6 address
generation.
* The [DHCPServer] logic in .network files gained support for a new
UplinkInterface= setting that permits configuration of the uplink
interface name to propagate DHCP lease information from.
* The WakeOnLan= setting in .link files now accepts a list of flags
instead of a single one, to configure multiple wake-on-LAN policies.
* User-space defined tracepoints (USDT) have been added to udev at
strategic locations. This is useful for tracing udev behaviour and
performance with bpftrace and similar tools.
* systemd-journald-upload gained a new NetworkTimeoutSec= option for
setting a network timeout time.
Contributions from: Aakash Singh, adrian5, Alexander Sverdlin,
alexlzhu, Allen Webb, Alvin Šipraga, Alyssa Ross, Anita Zhang, asavah,
Balint Reczey, Bertrand Jacquin, borna-blazevic, caoxia2008cxx,
Carlo Teubner, Christian Göttsche, Christian Hesse, Daniel Schaefer,
Dan Streetman, David Santamaría Rogado, David Tardon, Deepak Rawat,
Dimitri John Ledkov, ei-ke, Emilio Herrera, Emil Renner Berthing,
Flos Lonicerae, Franck Bui, Francois Gervais, Frantisek Sumsal,
Gibeom Gwon, gitm0, Hans de Goede, Harsh Barsaiyan, Henri Chain,
Igor Zhbanov, imayoda, Jakub Warczarek, James Buren, Jan Janssen,
Jan Synacek, Jason Francis, Jayanth Ananthapadmanaban,
Jérôme Carretero, jiangchuangang, Joerg Behrmann,
Jóhann B. Guðmundsson, Jörg Deckert, Jörg Thalheim, Julia Kartseva,
Kai-Heng Feng, Khem Raj, KoyamaSohei, Lennart Poettering,
LetzteInstanz, Luca Adrian L, Luca Boccassi, Lucas Magasweran,
Mantas Mikulėnas, Marco Antonio Mauro, Mark Wielaard, Masahiro Matsuya,
Matt Johnston, Michael Catanzaro, Michal Koutný, Michal Sekletár,
Mike Kazantsev, Milan, Miroslav Suchý, Morten Linderud, nerdopolis,
nl6720, Noah Meyerhans, Oleg Popov, Olle Lundberg, Ondrej Kozina,
Perry.Yuan, Peter Hutterer, Peter Kjellerstedt, Peter Morrow,
Phaedrus Leeds, Roman Beranek, Roshan Shariff, Ryan Hendrickson,
Samuel BF, scootergrisen, Sebastian Blunt, Seong-ho Cho, Sergey Bugaev,
Sevan Janiyan, Sibo Dong, simmon, Simon Watts, Srinidhi Kaushik,
Štěpán Němec, Steve Bonds, Susant Sahani, sverdlin, syyhao1994,
Takashi Sakamoto, Topi Miettinen, tramsay, Uwe Kleine-König,
Viktor Mihajlovski, Vincent Dechenaux, Vito Caputo,
William A. Kennington III, Yangyang Shen, Yegor Alexeyev, Yi Gao,
Yu Watanabe, Zbigniew Jędrzejewski-Szmek, zsien, наб
— Berlin, 2021-06-15
CHANGES WITH 248:
* A concept of system extension images is introduced. Such images may

31
README
View File

@ -14,7 +14,7 @@ MAILING LIST:
https://lists.freedesktop.org/mailman/listinfo/systemd-devel
IRC:
#systemd on irc.freenode.org
#systemd on irc.libera.chat
BUG REPORTS:
https://github.com/systemd/systemd/issues
@ -35,6 +35,10 @@ LICENSE:
REQUIREMENTS:
Linux kernel >= 3.13
Linux kernel >= 4.2 for unified cgroup hierarchy support
Linux kernel >= 4.10 for cgroup-bpf egress and ingress hooks
Linux kernel >= 4.15 for cgroup-bpf device hook
Linux kernel >= 4.17 for cgroup-bpf socket address hooks
Linux kernel >= 5.3 for bounded-loops in BPF program
Linux kernel >= 5.4 for signed Verity images support
Kernel Config Options:
@ -95,8 +99,20 @@ REQUIREMENTS:
Required for CPUQuota= in resource control unit settings
CONFIG_CFS_BANDWIDTH
Required for IPAddressDeny= and IPAddressAllow= in resource control
Required for IPAddressDeny=, IPAddressAllow=, IPIngressFilterPath=,
IPEgressFilterPath= in resource control unit settings
unit settings
CONFIG_BPF
CONFIG_BPF_SYSCALL
CONFIG_BPF_JIT
CONFIG_HAVE_EBPF_JIT
CONFIG_CGROUP_BPF
Required for SocketBind{Allow|Deny}= in resource control unit settings
CONFIG_BPF
CONFIG_BPF_SYSCALL
CONFIG_BPF_JIT
CONFIG_HAVE_EBPF_JIT
CONFIG_CGROUP_BPF
For UEFI systems:
@ -154,6 +170,7 @@ REQUIREMENTS:
libcryptsetup (optional), >= 2.3.0 required for signed Verity images support
libaudit (optional)
libacl (optional)
libbpf >= 0.2.0 (optional)
libfdisk >= 2.33 (from util-linux) (optional)
libselinux (optional)
liblzma (optional)
@ -173,11 +190,14 @@ REQUIREMENTS:
gperf
docbook-xsl (optional, required for documentation)
xsltproc (optional, required for documentation)
python-jinja2
python-lxml (optional, required to build the indices)
python >= 3.5
meson >= 0.46 (>= 0.49 is required to build position-independent executables)
ninja
gcc, awk, sed, grep, m4, and similar tools
gcc, awk, sed, grep, and similar tools
clang >= 10.0, llvm >= 10.0 (optional, required to build BPF programs
from source code in C)
During runtime, you need the following additional
dependencies:
@ -337,8 +357,3 @@ STABLE BRANCHES AND BACKPORTS:
distribution maintainers on an as needed basis. See
https://www.freedesktop.org/wiki/Software/systemd/Backports/ for some
more information and examples.
ENGINEERING AND CONSULTING SERVICES:
Kinvolk (https://kinvolk.io) offers professional engineering
and consulting services for systemd. Please contact Chris Kühl
<chris@kinvolk.io> for more information.

View File

@ -26,12 +26,14 @@ Information about build requirements is provided in the [README file](README).
Consult our [NEWS file](NEWS) for information about what's new in the most recent systemd versions.
Please see the [Code Map](docs/ARCHITECTURE.md) for information about this repository's layout and content.
Please see the [Hacking guide](docs/HACKING.md) for information on how to hack on systemd and test your modifications.
Please see our [Contribution Guidelines](docs/CONTRIBUTING.md) for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our [Coding Style Guidelines](docs/CODING_STYLE.md).
If you are looking for support, please contact our [mailing list](https://lists.freedesktop.org/mailman/listinfo/systemd-devel) or join our [IRC channel](irc://irc.freenode.org/%23systemd).
If you are looking for support, please contact our [mailing list](https://lists.freedesktop.org/mailman/listinfo/systemd-devel) or join our [IRC channel](irc://irc.libera.chat/%23systemd).
Stable branches with backported patches are available in the [stable repo](https://github.com/systemd/systemd-stable).

137
TODO
View File

@ -9,6 +9,10 @@ Bugfixes:
* Get rid of nftw(). We should refuse to use such useless APIs on principle.
* Jun 01 09:43:02 krowka systemd[1]: Unit user@1000.service has alias user@.service.
Jun 01 09:43:02 krowka systemd[1]: Unit user@6.service has alias user@.service.
Jun 01 09:43:02 krowka systemd[1]: Unit user-runtime-dir@6.service has alias user-runtime-dir@.service.
External:
* Fedora: add an rpmlint check that verifies that all unit files in the RPM are listed in %systemd_post macros.
@ -22,6 +26,44 @@ Janitorial Clean-ups:
Features:
* in sd-id128: also parse UUIDs in RFC4122 URN syntax (i.e. chop off urn:uuid: prefix)
* ability to insert trusted configuration and secrets into the boot parameters
of a kernel booting in a VM or on baremetal some way, via TPM
protection. idea:
1. pass via /proc/bootconfig
2. for secrets: put secrets in node of /proc/bootconfig, decrypt them via
TPM early on in PID 1, put them in $CREDENTIAL_PATH logic
3. for config: put signed data in node /proc/booconfig, validate via TPM
early on in PID 1, put data into /run/bootconfig/ as individual files
4. boot loader/stub should pick these up automatically from the boot loader
file systems
* journald: support RFC3164 fully for the incoming syslog transport, see
https://github.com/systemd/systemd/issues/19251#issuecomment-816601955
* homed: if kernel 5.12 uid mapping mounts exist, use that instead of recursive
chowns.
* DynamicUser= + StateDirectory= → use uid mapping mounts, too, in order to
make dirs appear under right UID.
* nspawn: make --bind= work sanely with --private-users when uid mapping mounts
are used.
* systemd-sysext: optionally, run it in initrd already, before transitioning
into host, to open up possibility for services shipped like that.
* add a new switch --auto-definitions=yes/no or so to systemd-repart. If
specified, synthesize a definition automatically if we can: enlarge last
partition on disk, but only if it is marked for growing and not read-only.
* add a switch to homectl (maybe called --first-boot) where it will check if
any non-system users exist, and if not prompts interactively for basic user
info, mimicking systemd-firstboot. Then, place this in a service that runs
after systemd-homed, but before gdm and friends, as a simple, barebones
fallback logic to get a regular user created on uninitialized systems.
* maybe add a tool that displays most recent journal logs as QR code to scan
off screen and run it automatically on boot failures, emergency logs and
such. Use DRM APIs directly, see
@ -36,36 +78,27 @@ Features:
* systemd-repart: read LUKS encryption key from $CREDENTIALS_PATH
* introduce /dev/disk/root/* symlinks that allow referencing partitions on the
disk the rootfs is on in a reasonably secure way.
disk the rootfs is on in a reasonably secure way. (or maybe: add
/dev/gpt-auto-{home,srv,boot,…} similar in style to /dev/gpt-auto-root as we
already have it.
* systemd-repart: add a switch to factory reset the partition table without
immediately applying the new configuration again. i.e. --factory-reset=leave
or so. (this is useful to factory reset an image, then putting it into
another machine, ensuring that luks key is generated on new machine, not old)
* systemd-repart: support setting up dm-integrity with HMAC
* systemd-repart: maybe remove half-initialized image on failure. It fails
if the output file exists, so a repeated invocation will usually fail if
something goes wrong on the way.
* systemd-repart: drop pager mode on normal operation?
* move logind udev rules to top-level rule.d/ directory
* move multiseat vid/pid matches from logind udev rule to hwdb
* nspawn: default to 1:1 userns
* Provide a reasonably bespoke solution for mounting host $HOME directories
into containers:
• add new option --mount-user=$USER for mounting $HOME of the user into the
container at the same place
• check /etc/passwd for UID or user name clashes. If UID clash pick a different
UID in container, and map via userns. If user name clash, refuse. If
matching user already exists use that.
• otherwise: write user record of specified user into /run/host/passwd or so
• in nss-systemd pick up user record from there and make available to system
With all that in place if nspawn host and container payload are up-to-date
enough we have a very simple way to make host users available in containers.
* systemd-sysusers: pick up passwords from credentials logic, so that users can
easily set root user pw. enable cred inheriting for root user from PID 1, so
that for containers we can configure the root pw automatically via nspawn's
--set-credential= switch. (Also do this for systemd-firstboot)
* whenever we receive fds via SCM_RIGHTS make sure none got dropped due to the
reception limit the kernel silently enforces.
@ -179,22 +212,9 @@ Features:
* systemd-analyze netif that explains predictable interface (or networkctl)
* port selinux code from mallinfo() to mallinfo2() once added to glibc
* Add service setting to run a service within the specified VRF. i.e. do the
equivalent of "ip vrf exec".
* export action of device object on sd-device, so that monitor becomes useful
* add root=tmpfs that mounts a tmpfs to /sysroot (to be used in combination
with usr=…, for a similar effect as systemd.volatile=yes but without the
"hide-out" effect). Also, add root=gpt-auto-late support or so, that is like
root=gpt-auto but initially mounts a tmpfs to /sysroot, and then revisits
later after systemd-repart ran. Usecase: let's ship images with only /usr
partition, then on first boot create the root partition. In this case we want
to read the repart data from /usr before the root partition exists. Add
usr=gpt-auto that automatically finds a /usr partition.
* change SwitchRoot() implementation in PID 1 to use pivot_root(".", "."), as
documented in the pivot_root(2) man page, so that we can drop the /oldroot
temporary dir.
@ -205,15 +225,11 @@ Features:
* homed: keep an fd to the homedir open at all times, to keep the fs pinned
(autofs and such) while user is logged in.
* nss-systemd: also synthesize shadow records for users/groups
* make use of new glibc 2.32 APIs sigabbrev_np() and strerrorname_np().
* when main nspawn supervisor process gets suspended due to SIGSTOP/SIGTTOU or
so, freeze the payload too.
* repart: support setting up dm-integrity with HMAC
* add /etc/integritytab, to support dm-integrity setups. In particular those
with HMAC as hash function, so that we can have a protected /home without
encryption (leaving encryption to the individual dirs/homed).
@ -321,15 +337,6 @@ Features:
* busctl: maybe expose a verb "ping" for pinging a dbus service to see if it
exists and responds.
* when systemd-nspawn and suchlike dissect an OS image, and there are multiple
root partitions, do an strverscmp() on the partition label and boot
first. That is inspired how sd-boot figures out which kernel to boot, and
thus allows defining OS images which can be A/B updated and we default to the
newest version automatically, both in nspawn and in sd-boot
* systemd-gpt-auto should probably set x-systemd.growfs on the mounts it
creates
* bootctl:
- teach it to prepare an ESP wholesale, i.e. with mkfs.vfat invocation
- teach it to copy in unified kernel images and maybe type #1 boot loader spec entries from host
@ -380,8 +387,6 @@ Features:
* systemd-repart: allow sizing partitions as factor of available RAM, so that
we can reasonably size swap partitions for hibernation.
* systemd-repart: allow managing the gpt read-only partition flag + auto-mount flag
* systemd-repart: allow boolean option that ensures that if existing partition
doesn't exist within the configured size bounds the whole command fails. This
is useful to implement ESP vs. XBOOTLDR schemes in installers: have one set
@ -432,9 +437,6 @@ Features:
shouldn't operate in a volatile mode unless we got told so from a trusted
source.
* figure out automatic partition discovery when combining writable root dir
with immutable /usr
* coredump: maybe when coredumping read a new xattr from /proc/$PID/exe that
may be used to mark a whole binary as non-coredumpable. Would fix:
https://bugs.freedesktop.org/show_bug.cgi?id=69447
@ -555,10 +557,6 @@ Features:
a seccomp option we don't have to set NNP. For that, change uid first whil
keeping CAP_SYS_ADMIN, then apply seccomp, the drop cap.
* add a concept for automatically loading per-unit secrets off disk and
inserting them into the kernel keyring. Maybe SecretsDirectory= similar to
ConfigurationDirectory=.
* when no locale is configured, default to UEFI's PlatformLang variable
* bootctl,sd-boot: actually honour the "architecture" key
@ -611,13 +609,6 @@ Features:
output of "systemctl list-units" slightly by showing the tree structure of
the slices, and the units attached to them.
* the a-posteriori stopping of units bound to units that disappeared logic
should be reworked: there should be a queue of units, and we should only
enqueue stop jobs from a defer event that processes queue instead of
right-away when we find a unit that is bound to one that doesn't exist
anymore. (similar to how the stop-unneeded queue has been reworked the same
way)
* nspawn: make nspawn suitable for shell pipelines: instead of triggering a
hangup when input is finished, send ^D, which synthesizes an EOF. Then wait
for hangup or ^D before passing on the EOF.
@ -645,8 +636,6 @@ Features:
* add support for "portablectl attach http://foobar.com/waaa.raw (i.e. importd integration)
* add attach --enable and attach --now (for attach+enable+start)
* sync dynamic uids/gids between host+portable srvice (i.e. if DynamicUser=1 is set for a service, make sure that the
selected user is resolvable in the service even if it ships its own /etc/passwd)
@ -689,9 +678,6 @@ Features:
* add proper dbus APIs for the various sd_notify() commands, such as MAINPID=1
and so on, which would mean we could report errors and such.
* teach tmpfiles.d q/Q logic something sensible in the context of XFS/ext4
project quota
* introduce DefaultSlice= or so in system.conf that allows changing where we
place our units by default, i.e. change system.slice to something
else. Similar, ManagerSlice= should exist so that PID1's own scope unit could
@ -808,10 +794,6 @@ Features:
"systemd-gdb" for attaching to the start-up of any system service in its
natural habitat.
* gpt-auto logic: related to the above, maybe support a "secondary" root
partition, that is mounted to / and is writable, and where the actual root's
/usr is mounted into.
* gpt-auto logic: support encrypted swap, add kernel cmdline option to force it, and honour a gpt bit about it, plus maybe a configuration file
* drop nss-myhostname in favour of nss-resolve?
@ -844,13 +826,13 @@ Features:
on PID 1 with the relevant signals, and makes relevant files in /sys and
/proc (such as the sysrq stuff) unavailable
* Support ReadWritePaths/ReadOnlyPaths/InaccessiblePaths in systemd --user instances
via the new unprivileged Landlock LSM (https://landlock.io)
* make sure the ratelimit object can deal with USEC_INFINITY as way to turn off things
* journalctl: make sure -f ends when the container indicated by -M terminates
* mount: automatically search for "main" partition of an image has multiple
partitions
* in nss-systemd, if we run inside of RootDirectory= with PrivateUsers= set,
find a way to map the User=/Group= of the service to the right name. This way
a user/group for a service only has to exist on the host for the right
@ -936,8 +918,6 @@ Features:
* firstboot: make it useful to be run immediately after yum --installroot to set up a machine. (most specifically, make --copy-root-password work even if /etc/passwd already exists
* maybe add support for specifier expansion in user.conf, specifically DefaultEnvironment=
* maybe allow timer units with an empty Units= setting, so that they
can be used for resuming the system but nothing else.
@ -1051,8 +1031,6 @@ Features:
here:
http://blog.vmsplice.net/2020/07/rethinking-event-loop-integration-for.html
* investigate endianness issues of UUID vs. GUID
* dbus: when a unit failed to load (i.e. is in UNIT_ERROR state), we
should be able to safely try another attempt when the bus call LoadUnit() is invoked.
@ -1319,6 +1297,8 @@ Features:
should not follow symlinks. None of the other adjustment or creation
calls follow symlinks.
- add --test mode
- teach tmpfiles.d q/Q logic something sensible in the context of XFS/ext4
project quota
* make sure systemd-ask-password-wall does not shutdown systemd-ask-password-console too early
@ -1388,7 +1368,6 @@ Features:
https://bugzilla.redhat.com/show_bug.cgi?id=723942
- allow writing multiple conditions in unit files on one line
- introduce Type=pid-file
- introduce mix of BindTo and Requisite
- add a concept of RemainAfterExit= to scope units
- Allow multiple ExecStart= for all Type= settings, so that we can cover rescue.service nicely
- add verification of [Install] section to systemd-analyze verify

121
docs/ARCHITECTURE.md Normal file
View File

@ -0,0 +1,121 @@
---
title: systemd Repository Architecture
category: Contributing
layout: default
---
# Code Map
This section will attempt to provide a high-level overview of the various
components of the systemd repository.
# Source Code
Directories in `src/` provide the implementation of all daemons, libraries and
command-line tools shipped by the project. There are many, and more are
constantly added, so we will not enumerate them all here — the directory
names are self-explanatory.
## Shared Code
You might wonder what kind of common code belongs in `src/shared/` and what
belongs in `src/basic/`. The split is like this: anything that is used to
implement the public shared objects we provide (`sd-bus`, `sd-login`,
`sd-id128`, `nss-systemd`, `nss-mymachines`, `nss-resolve`, `nss-myhostname`,
`pam_systemd`), must be located in `src/basic` (those objects are not allowed
to link to `libsystemd-shared.so`). Conversely, anything which is shared
between multiple components and does not need to be in `src/basic/`, should be
in `src/shared/`.
To summarize:
`src/basic/`
- may be used by all code in the tree
- may not use any code outside of `src/basic/`
`src/libsystemd/`
- may be used by all code in the tree, except for code in `src/basic/`
- may not use any code outside of `src/basic/`, `src/libsystemd/`
`src/shared/`
- may be used by all code in the tree, except for code in `src/basic/`,
`src/libsystemd/`, `src/nss-*`, `src/login/pam_systemd.*`, and files under
`src/journal/` that end up in `libjournal-client.a` convenience library.
- may not use any code outside of `src/basic/`, `src/libsystemd/`, `src/shared/`
## PID 1
Code located in `src/core/` implements the main logic of the systemd system (and user)
service manager.
BPF helpers written in C and used by PID 1 can be found under `src/core/bpf/`.
## UDEV
Sources for the udev daemon and command-line tool (single binary) can be found under
`src/udev/`.
## Unit Tests
Source files found under `src/test/` implement unit-level testing, mostly for
modules found in `src/basic/` and `src/shared/`, but not exclusively. Each test
file is compiled in a standalone binary that can be run to exercise the
corresponding module. While most of the tests can be ran by any user, some
require privileges, and will attempt to clearly log about what they need
(mostly in the form of effective capabilities). These tests are self-contained,
and generally safe to run on the host without side effects.
Ideally, every module in `src/basic/` and `src/shared/` should have a
corresponding unit test under `src/test/`, exercising every helper function.
# Integration Tests
Sources in `test/` implement system-level testing for executables, libraries and
daemons that are shipped by the project. They require privileges to run, and
are not safe to execute directly on a host. By default they will build an image
and run the test under it via `QEMU` or `systemd-nspawn`.
Most of those tests should be able to run via `systemd-nspawn`, which is orders of
magnitude faster than `QEMU`, but some tests require privileged operations like
using `dm-crypt` or `loopdev`. They are clearly marked if that is the case.
See `test/README.testsuite` for more specific details.
# HWDB
Rules built in the static `HWDB` database shipped by the project can be found
under `hwdb.d/`. Some of these files are updated automatically, some are filled
by contributors.
# Documentation
## systemd.io
Markdown files found under `docs/` are automatically published on the
[systemd.io](https://systemd.io) website using Github Pages. A minimal unit test
to ensure the formatting doesn't have errors is included in the
`meson test -C build/ github-pages` run as part of the CI.
## MAN pages
Manpages for binaries and libraries, and the DBUS interfaces, can be found under
`man/` and should ideally be kept in sync with changes to the corresponding
binaries and libraries.
## Translations
Translations files for binaries and daemons, provided by volunteers, can be found
under `po/` in the usual format. They are kept up to date by contributors and by
automated tools.
# System Configuration files and presets
Presets (or templates from which they are generated) for various daemons and tools
can be found under various directories such as `factory/`, `modprobe.d/`, `network/`,
`presets/`, `rules.d/`, `shell-completion/`, `sysctl.d/`, `sysusers.d/`, `tmpfiles.d/`.
# Utilities for Developers
`tools/`, `coccinelle/`, `.github/`, `.semaphore/`, `.lgtm/`, `.mkosi/` host various
utilities and scripts that are used by maintainers and developers. They are not
shipped or installed.

View File

@ -131,7 +131,7 @@ If you wonder how to detect which of these three modes is currently used, use
you are either in legacy or hybrid mode. To distinguish these two cases, run
`statfs()` again on `/sys/fs/cgroup/unified/`. If that succeeds and reports
`CGROUP2_SUPER_MAGIC` you are in hybrid mode, otherwise not.
From a shell, you can use check the `Type` in `stat -f /sys/fs/cgroup` and
From a shell, you can check the `Type` in `stat -f /sys/fs/cgroup` and
`stat -f /sys/fs/cgroup/unified`.
## systemd's Unit Types
@ -224,7 +224,7 @@ guarantees:
cgroups below it. Note however that systemd will do that only in the unified
hierarchy (in unified and hybrid mode) as well as on systemd's own private
hierarchy (in legacy and hybrid mode). It won't pass ownership of the legacy
controller hierarchies. Delegation to less privileges processes is not safe
controller hierarchies. Delegation to less privileged processes is not safe
in cgroup v1 (as a limitation of the kernel), hence systemd won't facilitate
access to it.
@ -243,7 +243,7 @@ delegated.
Let's stress one thing: delegation is available on scope and service units
only. It's expressly not available on slice units. Why? Because slice units are
our *inner* nodes of the cgroup trees and we freely attach service and scopes
our *inner* nodes of the cgroup trees and we freely attach services and scopes
to them. If we'd allow delegation on slice units then this would mean that
both systemd and your own manager would create/delete cgroups below the slice
unit and that conflicts with the single-writer rule.

View File

@ -135,31 +135,6 @@ layout: default
global in global variables, for example data parsed from command lines, see
below.
- You might wonder what kind of common code belongs in `src/shared/` and what
belongs in `src/basic/`. The split is like this: anything that is used to
implement the public shared object we provide (sd-bus, sd-login, sd-id128,
nss-systemd, nss-mymachines, nss-resolve, nss-myhostname, pam_systemd), must
be located in `src/basic` (those objects are not allowed to link to
libsystemd-shared.so). Conversely, anything which is shared between multiple
components and does not need to be in `src/basic/`, should be in
`src/shared/`.
To summarize:
`src/basic/`
- may be used by all code in the tree
- may not use any code outside of `src/basic/`
`src/libsystemd/`
- may be used by all code in the tree, except for code in `src/basic/`
- may not use any code outside of `src/basic/`, `src/libsystemd/`
`src/shared/`
- may be used by all code in the tree, except for code in `src/basic/`,
`src/libsystemd/`, `src/nss-*`, `src/login/pam_systemd.*`, and files under
`src/journal/` that end up in `libjournal-client.a` convenience library.
- may not use any code outside of `src/basic/`, `src/libsystemd/`, `src/shared/`
- Our focus is on the GNU libc (glibc), not any other libcs. If other libcs are
incompatible with glibc it's on them. However, if there are equivalent POSIX
and Linux/GNU-specific APIs, we generally prefer the POSIX APIs. If there
@ -168,18 +143,37 @@ layout: default
## Using C Constructs
- Preferably allocate local variables on the top of the block:
- Allocate local variables where it makes sense: at the top of the block, or at
the point where they can be initialized. `r` is typically used for a local
state variable, but should almost always be declared at the top of the
function.
```c
{
int a, b;
uint64_t a, b;
int r;
a = 5;
b = a;
a = frobnicate();
b = a + 5;
r = do_something();
if (r < 0)
}
```
- Do not mix function invocations with variable definitions in one line. Wrong:
- Do not mix function invocations with variable definitions in one line.
```c
{
uint64_t x = 7;
int a;
a = foobar();
}
```
instead of:
```c
{
@ -188,18 +182,7 @@ layout: default
}
```
Right:
```c
{
int a;
uint64_t x = 7;
a = foobar();
}
```
- Use `goto` for cleaning up, and only use it for that. i.e. you may only jump
- Use `goto` for cleaning up, and only use it for that. I.e. you may only jump
to the end of a function, and little else. Never jump backwards!
- To minimize strict aliasing violations, we prefer unions over casting.
@ -372,8 +355,7 @@ layout: default
`log_oom()` for then printing a short message, but not in "library" code.
- Avoid fixed-size string buffers, unless you really know the maximum size and
that maximum size is small. They are a source of errors, since they possibly
result in truncated strings. It is often nicer to use dynamic memory,
that maximum size is small. It is often nicer to use dynamic memory,
`alloca()` or VLAs. If you do allocate fixed-size strings on the stack, then
it is probably only OK if you either use a maximum size such as `LINE_MAX`,
or count in detail the maximum size a string can have. (`DECIMAL_STR_MAX` and
@ -429,7 +411,7 @@ layout: default
limits after which it will refuse operation. It's fine if it is hard-coded
(at least initially), but it needs to be there. This is particularly
important for objects that unprivileged users may allocate, but also matters
for everything else any user may allocated.
for everything else any user may allocate.
## Types
@ -464,7 +446,7 @@ layout: default
- Use the bool type for booleans, not integers. One exception: in public
headers (i.e those in `src/systemd/sd-*.h`) use integers after all, as `bool`
is C99 and in our public APIs we try to stick to C89 (with a few extension).
is C99 and in our public APIs we try to stick to C89 (with a few extensions).
## Deadlocks
@ -581,7 +563,7 @@ layout: default
process, please use `_exit()` instead of `exit()`, so that the exit handlers
are not run.
- We never use the POSIX version of `basename()` (which glibc defines it in
- We never use the POSIX version of `basename()` (which glibc defines in
`libgen.h`), only the GNU version (which glibc defines in `string.h`). The
only reason to include `libgen.h` is because `dirname()` is needed. Every
time you need that please immediately undefine `basename()`, and add a
@ -590,7 +572,7 @@ layout: default
- Never use `FILENAME_MAX`. Use `PATH_MAX` instead (for checking maximum size
of paths) and `NAME_MAX` (for checking maximum size of filenames).
`FILENAME_MAX` is not POSIX, and is a confusingly named alias for `PATH_MAX`
on Linux. Note the `NAME_MAX` does not include space for a trailing `NUL`,
on Linux. Note that `NAME_MAX` does not include space for a trailing `NUL`,
but `PATH_MAX` does. UNIX FTW!
## Committing to git

View File

@ -140,7 +140,7 @@ manager, please consider supporting the following interfaces.
`$CREDENTIALS_DIRECTORY` environment variable. If the container managers
does this, the credentials passed to the service manager can be propagated
to services via `LoadCredential=` (see ...). The container manager can
choose any path, but `/run/host/credentials` is recommended."
choose any path, but `/run/host/credentials` is recommended.
## Advanced Integration
@ -329,6 +329,19 @@ care should be taken to avoid naming conflicts. `systemd` (and in particular
sub-directories of `/sys/` writable, but make sure to leave the root of
`/sys/` read-only.)
8. Do not pass the `CAP_AUDIT_CONTROL`, `CAP_AUDIT_READ`, `CAP_AUDIT_WRITE`
capabilities to the container, in particular not to those making use of user
namespaces. The kernel's audit subsystem is still not virtualized for
containers, and passing these credentials is pointless hence, given the
actual attempt to make use of the audit subsystem will fail. Note that
systemd's audit support is partially conditioned on these capabilities, thus
by dropping them you ensure that you get an entirely clean boot, as systemd
will make no attempt to use it. If you pass the capabilities to the payload
systemd will assume that audit is available and works, and some components
will subsequently fail in various ways. Note that once the kernel learnt
native support for container-virtualized audit, adding the capability to the
container description will automatically make the container payload use it.
## Fully Unprivileged Container Payload
First things first, to make this clear: Linux containers are not a security

View File

@ -0,0 +1,125 @@
---
title: Package Metadata for Core Files
category: Interfaces
layout: default
---
# Package Metadata for Core Files
*Intended audience: hackers working on userspace subsystems that create ELF binaries
or parse ELF core files.*
## Motivation
ELF binaries get stamped with a unique, build-time generated hex string identifier called
`build-id`, [which gets embedded as an ELF note called `.note.gnu.build-id`](https://fedoraproject.org/wiki/Releases/FeatureBuildId).
In most cases, this allows to associate a stripped binary with its debugging information.
It is used, for example, to dynamically fetch DWARF symbols from a debuginfo server, or
to query the local package manager and find out the package metadata or, again, the DWARF
symbols or program sources.
However, this usage of the `build-id` requires either local metadata, usually set up by
the package manager, or access to a remote server over the network. Both of those might
be unavailable or forbidden.
Thus it becomes desirable to add additional metadata to a binary at build time, so that
`systemd-coredump` and other services analyzing core files are able to extract said
metadata simply from the core file itself, without external dependencies.
## Implementation
This document will attempt to define a common metadata format specification, so that
multiple implementers might use it when building packages, or core file analyzers, and
so on.
The metadata will be embedded in a single, new ELF header section, in a key-value JSON
format. Implementers working on parsing core files should not assume a specific list of
keys, but parse anything that is included in the section.
Implementers working on build tools should strive to use the same key names, for
consistency. The most common will be listed here. When corresponding to the content of
os-release, the values should match, again for consistency.
If available, the metadata should also include the debuginfod server URL that can provide
the original executable, debuginfo and sources, to further facilitate debugging.
* Section header
```
SECTION: `.note.package`
node-id: `0xcafe1a7e`
Owner: `FDO` (FreeDesktop.org)
Value: a JSON string with the structure described below
```
* JSON payload
```json
{
"type":"rpm", # this provides a namespace for the package+package-version fields
"os":"fedora",
"osVersion":"33",
"name":"coreutils",
"version": "4711.0815.fc13.arm32",
"osCpe": "cpe:/o:fedoraproject:fedora:33", # A CPE name for the operating system, `CPE_NAME` from os-release is a good default
"debugInfoUrl": "https://debuginfod.fedoraproject.org/"
}
```
A reference implementations of a [build-time tool is provided](https://github.com/systemd/package-notes)
and can be used to generate a linker script, which can then be used at build time via
```LDFLAGS="-Wl,-T,/path/to/generated/script"``` to include the note in the binary.
Generator:
```console
$ ./generate-package-notes.py --rpm systemd-248~rc2-1.fc34
SECTIONS
{
.note.package : ALIGN(4) {
BYTE(0x04) BYTE(0x00) BYTE(0x00) BYTE(0x00) /* Length of Owner including NUL */
BYTE(0x64) BYTE(0x00) BYTE(0x00) BYTE(0x00) /* Length of Value including NUL */
BYTE(0x7e) BYTE(0x1a) BYTE(0xfe) BYTE(0xca) /* Note ID */
BYTE(0x46) BYTE(0x44) BYTE(0x4f) BYTE(0x00) /* Owner: 'FDO\x00' */
BYTE(0x7b) BYTE(0x22) BYTE(0x74) BYTE(0x79) /* Value: '{"type":"rpm","name":"systemd","version":"248~rc2-1.fc34","osCpe":"cpe:/o:fedoraproject:fedora:33"}\x00' */
BYTE(0x70) BYTE(0x65) BYTE(0x22) BYTE(0x3a)
BYTE(0x22) BYTE(0x72) BYTE(0x70) BYTE(0x6d)
BYTE(0x22) BYTE(0x2c) BYTE(0x22) BYTE(0x6e)
BYTE(0x61) BYTE(0x6d) BYTE(0x65) BYTE(0x22)
BYTE(0x3a) BYTE(0x22) BYTE(0x73) BYTE(0x79)
BYTE(0x73) BYTE(0x74) BYTE(0x65) BYTE(0x6d)
BYTE(0x64) BYTE(0x22) BYTE(0x2c) BYTE(0x22)
BYTE(0x76) BYTE(0x65) BYTE(0x72) BYTE(0x73)
BYTE(0x69) BYTE(0x6f) BYTE(0x6e) BYTE(0x22)
BYTE(0x3a) BYTE(0x22) BYTE(0x32) BYTE(0x34)
BYTE(0x38) BYTE(0x7e) BYTE(0x72) BYTE(0x63)
BYTE(0x32) BYTE(0x2d) BYTE(0x31) BYTE(0x2e)
BYTE(0x66) BYTE(0x63) BYTE(0x33) BYTE(0x34)
BYTE(0x22) BYTE(0x2c) BYTE(0x22) BYTE(0x6f)
BYTE(0x73) BYTE(0x43) BYTE(0x70) BYTE(0x65)
BYTE(0x22) BYTE(0x3a) BYTE(0x22) BYTE(0x63)
BYTE(0x70) BYTE(0x65) BYTE(0x3a) BYTE(0x2f)
BYTE(0x6f) BYTE(0x3a) BYTE(0x66) BYTE(0x65)
BYTE(0x64) BYTE(0x6f) BYTE(0x72) BYTE(0x61)
BYTE(0x70) BYTE(0x72) BYTE(0x6f) BYTE(0x6a)
BYTE(0x65) BYTE(0x63) BYTE(0x74) BYTE(0x3a)
BYTE(0x66) BYTE(0x65) BYTE(0x64) BYTE(0x6f)
BYTE(0x72) BYTE(0x61) BYTE(0x3a) BYTE(0x33)
BYTE(0x33) BYTE(0x22) BYTE(0x7d) BYTE(0x00)
}
}
INSERT AFTER .note.gnu.build-id;
```
## Well-known keys
The metadata format is intentionally left open, so that vendors can add their own information.
A set of well-known keys is defined here, and hopefully shared among all vendors.
| Key name | Key description | Example value |
|--------------|--------------------------------------------------------------------------|---------------------------------------|
| type | The packaging type | rpm |
| os | The OS name, typically corresponding to ID in os-release | fedora |
| osVersion | The OS version, typically corresponding to VERSION_ID in os-release | 33 |
| name | The source package name | coreutils |
| version | The source package version | 4711.0815.fc13.arm32 |
| osCpe | A CPE name for the OS, typically corresponding to CPE_NAME in os-release | cpe:/o:fedoraproject:fedora:33 |
| debugInfoUrl | The debuginfod server url, if available | https://debuginfod.fedoraproject.org/ |

View File

@ -62,7 +62,7 @@ Interface](https://systemd.io/BOOT_LOADER_INTERFACE).
| `4301d2a6-4e3b-4b2a-bb94-9e0b2c4225ea` | _`/usr/` Partition (Itanium/IA-64)_ | ditto | ditto |
| `b933fb22-5c3f-4f91-af90-e2bb0fa50702` | _`/usr/` Partition (RISC-V 32-bit)_ | ditto | ditto |
| `beaec34b-8442-439b-a40b-984381ed097d` | _`/usr/` Partition (RISC-V 64-bit)_ | ditto | ditto |
| `8f461b0d-14ee-4e81-9aa9-049b6fb97abd` | _`/usr/` Verity Partition (x86)_ | Any native, optionally in LUKS | Similar semantics to root Verity partition, but just for the `/usr/` partition. |
| `8f461b0d-14ee-4e81-9aa9-049b6fb97abd` | _`/usr/` Verity Partition (x86)_ | A dm-verity superblock followed by hash data | Similar semantics to root Verity partition, but just for the `/usr/` partition. |
| `77ff5f63-e7b6-4633-acf4-1565b864c0e6` | _`/usr/` Verity Partition (x86-64)_ | ditto | ditto |
| `c215d751-7bcd-4649-be90-6627490a4c05` | _`/usr/` Verity Partition (32-bit ARM)_ | ditto | ditto |
| `6e11a4e7-fbca-4ded-b9e9-e1a512bb664e` | _`/usr/` Verity Partition (64-bit ARM/AArch64)_ | ditto | ditto |
@ -73,10 +73,10 @@ Interface](https://systemd.io/BOOT_LOADER_INTERFACE).
| `3b8f8425-20e0-4f3b-907f-1a25a76f98e8` | _Server Data Partition_ | Any native, optionally in LUKS | The first partition with this type UUID on the disk containing the root partition is automatically mounted to `/srv/`. If the partition is encrypted with LUKS, the device mapper file will be named `/dev/mapper/srv`. |
| `4d21b016-b534-45c2-a9fb-5c16e091fd2d` | _Variable Data Partition_ | Any native, optionally in LUKS | The first partition with this type UUID on the disk containing the root partition is automatically mounted to `/var/` — under the condition that its partition UUID matches the first 128 bit of `HMAC-SHA256(machine-id, 0x4d21b016b53445c2a9fb5c16e091fd2d)` (i.e. the SHA256 HMAC hash of the binary type UUID keyed by the machine ID as read from [`/etc/machine-id`](https://www.freedesktop.org/software/systemd/man/machine-id.html). This special requirement is made because `/var/` (unlike the other partition types listed here) is inherently private to a specific installation and cannot possibly be shared between multiple OS installations on the same disk, and thus should be bound to a specific instance of the OS, identified by its machine ID. If the partition is encrypted with LUKS, the device mapper file will be named `/dev/mapper/var`. |
| `7ec6f557-3bc5-4aca-b293-16ef5df639d1` | _Temporary Data Partition_ | Any native, optionally in LUKS | The first partition with this type UUID on the disk containing the root partition is automatically mounted to `/var/tmp/`. If the partition is encrypted with LUKS, the device mapper file will be named `/dev/mapper/tmp`. Note that the intended mount point is indeed `/var/tmp/`, not `/tmp/`. The latter is typically maintained in memory via <tt>tmpfs</tt> and does not require a partition on disk. In some cases it might be desirable to make `/tmp/` persistent too, in which case it is recommended to make it a symlink or bind mount to `/var/tmp/`, thus not requiring its own partition type UUID. |
| `0657fd6d-a4ab-43c4-84e5-0933c84b4f4f` | _Swap_ | Swap | All swap partitions on the disk containing the root partition are automatically enabled. |
| `0657fd6d-a4ab-43c4-84e5-0933c84b4f4f` | _Swap_ | Swap | All swap partitions on the disk containing the root partition are automatically enabled. This partition type predates the Discoverable Partitions Specification. |
| `0fc63daf-8483-4772-8e79-3d69d8477de4` | _Generic Linux Data Partitions_ | Any native, optionally in LUKS | No automatic mounting takes place for other Linux data partitions. This partition type should be used for all partitions that carry Linux file systems. The installer needs to mount them explicitly via entries in <tt>/etc/fstab</tt>. Optionally, these partitions may be encrypted with LUKS. This partition type predates the Discoverable Partitions Specification. |
| `c12a7328-f81f-11d2-ba4b-00a0c93ec93b` | _EFI System Partition_ | VFAT | The ESP used for the current boot is automatically mounted to `/efi/` (or `/boot/` as fallback), unless a different partition is mounted there (possibly via `/etc/fstab`, or because the Extended Boot Loader Partition — see below — exists) or the directory is non-empty on the root disk. This partition type is defined by the [UEFI Specification](http://www.uefi.org/specifications). |
| `bc13c2ff-59e6-4262-a352-b275fd6f7172` | _Extended Boot Loader Partition_ | Typically VFAT | The Extended Boot Loader Partition (XBOOTLDR) used for the current boot is automatically mounted to <tt>/boot/</tt>, unless a different partition is mounted there (possibly via <tt>/etc/fstab</tt>) or the directory is non-empty on the root disk. This partition type is defined by the [Boot Loader Specification](https://systemd.io/BOOT_LOADER_SPECIFICATION). |
| `0fc63daf-8483-4772-8e79-3d69d8477de4` | _Other Data Partitions_ | Any native, optionally in LUKS | No automatic mounting takes place for other Linux data partitions. This partition type should be used for all partitions that carry Linux file systems. The installer needs to mount them explicitly via entries in <tt>/etc/fstab</tt>. Optionally, these partitions may be encrypted with LUKS. |
Other GPT type IDs might be used on Linux, for example to mark software RAID or
LVM partitions. The definitions of those GPT types is outside of the scope of
@ -94,24 +94,48 @@ localized.
## Partition Flags
For the root, `/usr/`, server data, home, variable data, temporary data and swap
partitions, the partition flag bit 63 ("*no-auto*") may be used to turn off
auto-discovery for the specific partition. If set, the partition will not be
automatically mounted or enabled.
This specification defines three GPT partition flags that may be set for the
partition types defined above:
For the root, `/usr/`, server data, home, variable data and temporary data
partitions, the partition flag bit 60 ("*read-only*") may be used to mark a
partition for read-only mounts only. If set, the partition will be mounted
read-only instead of read-write. Note that the variable data partition and the
temporary data partition will generally not be able to serve their purpose if
marked read-only, since by their very definition they are supposed to be
mutable. (The home and server data partitions are generally assumed to be
mutable as well, but the requirement for them is not equally strong.) Because
of that, while the read-only flag is defined and supported, it's almost never a
good idea to actually use it for these partitions.
1. For the root, `/usr/`, Verity, home, server data, variable data, temporary data,
swap and extended boot loader partitions, the partition flag bit 63
("*no-auto*") may be used to turn off auto-discovery for the specific
partition. If set, the partition will not be automatically mounted or
enabled.
Note that these two flag definitions happen to map nicely to the ones used by
Microsoft Basic Data Partitions.
2. For the root, `/usr/`, Verity, home, server data, variable data, temporary
data and extended boot loader partitions, the partition flag bit 60
("*read-only*") may be used to mark a partition for read-only mounts only.
If set, the partition will be mounted read-only instead of read-write. Note
that the variable data partition and the temporary data partition will
generally not be able to serve their purpose if marked read-only, since by
their very definition they are supposed to be mutable. (The home and server
data partitions are generally assumed to be mutable as well, but the
requirement for them is not equally strong.) Because of that, while the
read-only flag is defined and supported, it's almost never a good idea to
actually use it for these partitions. Also note that Verity partitions are
by their semantics always read-only. The flag is hence of little effect for
them, and it is recommended to set it unconditionally for the Verity
partition types.
3. For the root, `/usr/`, home, server data, variable data, temporary data and
extended boot loader partitions, the partition flag bit 59
("*grow-file-system*") may be used to mark a partition for automatic growing
of the contained file system to the size of the partition when
mounted. Tools that automatically mount disk image with a GPT partition
table are suggested to implicitly grow the contained file system to the
partition size they are contained in. This flag is without effect on
partitions marked read-only.
Note that the first two flag definitions happen to map nicely to the ones used
by Microsoft Basic Data Partitions.
All three of these flags generally affect only auto-discovery and automatic
mounting of disk images. If partitions marked with these flags are mounted
using low-level commands like
[mount(8)](https://man7.org/linux/man-pages/man2/mount.8.html) or directly with
[mount(2)](https://man7.org/linux/man-pages/man2/mount.2.html), they typically
have no effect.
## Suggested Mode of Operation
@ -162,7 +186,14 @@ partition is listed in `/etc/fstab` or with `root=` on the kernel command line,
it _must_ take precedence over automatically discovered partitions. If a
`/home/`, `/usr/`, `/srv/`, `/boot/`, `/var/`, `/var/tmp/`, `/efi/` or `/boot/`
directory is found to be populated already in the root partition, the automatic
discovery _must not_ mount any discovered file system over it.
discovery _must not_ mount any discovered file system over it. Optionally, in
case of the root, `/usr/` and their Verity partitions instead of strictly
mounting the first suitable partition an OS might choose to mount the partition
whose label compares the highest according to `strverscmp()` or a similar
logic, in order to implement a simple partition-based A/B versioning
scheme. The precise rules are left for the implementation to decide, but when
in doubt earlier partitions (by their index) should always win over later
partitions if the label comparison is inconclusive.
A *container* *manager* should automatically discover and mount the root,
`/usr/`, `/home/`, `/srv/`, `/var/`, `/var/tmp/` partitions inside a container
@ -190,11 +221,11 @@ We are not. `/etc/fstab` always overrides automatic discovery and is indeed
mentioned in the specifications. We are simply trying to make the boot and
installation processes of Linux a bit more robust and self-descriptive.
### Why did you only define the root partition for x86, x86-64, ARM, ARM64, ia64?
### Why did you only define the root partition for x86, x86-64, ARM, ARM64, ia64, riscv32, riscv64?
The automatic discovery of the root partition is defined to operate on the disk
containing the current EFI System Partition (ESP). Since EFI only exists on
x86, x86-64, ia64, and ARM so far, we only defined root partition UUIDs for
x86, x86-64, ia64, ARM and RISC-V so far, we only defined root partition UUIDs for
these architectures. Should EFI become more common on other architectures, we
can define additional UUIDs for them.

View File

@ -198,11 +198,6 @@ All tools:
prefixed with `:` in which case the kernel command line option takes
precedence, if it is specified as well.
installed systemd tests:
* `$SYSTEMD_TEST_DATA` — override the location of test data. This is useful if
a test executable is moved to an arbitrary location.
`nss-systemd`:
* `$SYSTEMD_NSS_BYPASS_SYNTHETIC=1` — if set, `nss-systemd` won't synthesize
@ -302,6 +297,14 @@ installed systemd tests:
* `$SYSTEMD_SYSVRCND_PATH` — Controls where `systemd-sysv-generator` looks for
SysV init script runlevel link farms.
systemd tests:
* `$SYSTEMD_TEST_DATA` — override the location of test data. This is useful if
a test executable is moved to an arbitrary location.
* `$SYSTEMD_TEST_NSS_BUFSIZE` — size of scratch buffers for "reentrant"
functions exported by the nss modules.
fuzzers:
* `$SYSTEMD_FUZZ_OUTPUT` — A boolean that specifies whether to write output to

View File

@ -10,8 +10,8 @@ We welcome all contributions to systemd. If you notice a bug or a missing
feature, please feel invited to fix it, and submit your work as a GitHub Pull
Request (PR) at https://github.com/systemd/systemd/pull/new.
Please make sure to follow our [Coding Style](CODING_STYLE.md) when submitting patches.
Also have a look at our [Contribution Guidelines](CONTRIBUTING.md).
Please make sure to follow our [Coding Style](CODING_STYLE.md) when submitting
patches. Also have a look at our [Contribution Guidelines](CONTRIBUTING.md).
When adding new functionality, tests should be added. For shared functionality
(in `src/basic/` and `src/shared/`) unit tests should be sufficient. The general
@ -22,8 +22,8 @@ test executable. For features at a higher level, tests in `src/test/` are very
strongly recommended. If that is not possible, integration tests in `test/` are
encouraged.
Please also have a look at our list of [code quality tools](CODE_QUALITY.md) we have setup for systemd,
to ensure our codebase stays in good shape.
Please also have a look at our list of [code quality tools](CODE_QUALITY.md) we
have setup for systemd, to ensure our codebase stays in good shape.
Please always test your work before submitting a PR. For many of the components
of systemd testing is straight-forward as you can simply compile systemd and
@ -36,12 +36,12 @@ building clean OS images from an upstream distribution in combination with a
fresh build of the project in the local working directory. To make use of this,
please acquire `mkosi` from https://github.com/systemd/mkosi first, unless your
distribution has packaged it already and you can get it from there. After the
tool is installed, symlink the settings file for your distribution of choice from
.mkosi/ to mkosi.default in the project root directory (note that the package
manager for this distro needs to be installed on your host system). After doing
that, it is sufficient to type `mkosi` in the systemd project directory to
generate a disk image `image.raw` you can boot either in `systemd-nspawn` or in
an UEFI-capable VM:
tool is installed, symlink the settings file for your distribution of choice
from .mkosi/ to mkosi.default in the project root directory (note that the
package manager for this distro needs to be installed on your host system).
After doing that, it is sufficient to type `mkosi` in the systemd project
directory to generate a disk image `image.raw` you can boot either in
`systemd-nspawn` or in an UEFI-capable VM:
```
# mkosi boot
@ -106,13 +106,34 @@ And after that, head over to your repo on GitHub and click "Compare & pull reque
Happy hacking!
## Templating engines in .in files
Some source files are generated during build. We use two templating engines:
* meson's `configure_file()` directive uses syntax with `@VARIABLE@`.
See the
[Meson docs for `configure_file()`](https://mesonbuild.com/Reference-manual.html#configure_file)
for details.
{% raw %}
* most files are rendered using jinja2, with `{{VARIABLE}}` and `{% if … %}`,
`{% elif … %}`, `{% else … %}`, `{% endif … %}` blocks. `{# … #}` is a
jinja2 comment, i.e. that block will not be visible in the rendered
output. `{% raw %} … `{% endraw %}`{{ '{' }}{{ '% endraw %' }}}` creates a block
where jinja2 syntax is not interpreted.
See the
[Jinja Template Designer Documentation](https://jinja2docs.readthedocs.io/en/stable/templates.html#synopsis)
for details.
Please note that files for both template engines use the `.in` extension.
## Developer and release modes
In the default meson configuration (`-Dmode=developer`), certain checks are
enabled that are suitable when hacking on systemd (such as internal
documentation consistency checks). Those are not useful when compiling for code
for distribution and can be disabled by setting `-Dmode=release`.
documentation consistency checks). Those are not useful when compiling for
distribution and can be disabled by setting `-Dmode=release`.
## Fuzzers

View File

@ -24,7 +24,7 @@ The systemd journal stores log data in a binary format with several features:
This document explains the basic structure of the file format on disk. We are
making this available primarily to allow review and provide documentation. Note
that the actual implementation in the [systemd
codebase](https://github.com/systemd/systemd/blob/master/src/journal/) is the
codebase](https://github.com/systemd/systemd/blob/main/src/libsystemd/sd-journal/) is the
only ultimately authoritative description of the format, so if this document
and the code disagree, the code is right. That said we'll of course try hard to
keep this document up-to-date and accurate.
@ -106,7 +106,7 @@ ignored on reading. They are currently not used but might be used later on.
## Structure
The file format's data structures are declared in
[journal-def.h](https://github.com/systemd/systemd/blob/master/src/journal/journal-def.h).
[journal-def.h](https://github.com/systemd/systemd/blob/main/src/libsystemd/sd-journal/journal-def.h).
The file format begins with a header structure. After the header structure
object structures follow. Objects are appended to the end as time

View File

@ -0,0 +1,190 @@
---
title: Native Journal Protocol
category: Interfaces
layout: default
---
# Native Journal Protocol
`systemd-journald.service` accepts log data via various protocols:
* Classic RFC3164 BSD syslog via the `/dev/log` socket
* STDOUT/STDERR of programs via `StandardOutput=journal` + `StandardError=journal` in service files (both of which are default settings)
* Kernel log messages via the `/dev/kmsg` device node
* Audit records via the kernel's audit subsystem
* Structured log messages via `journald`'s native protocol
The latter is what this document is about: if you are developing a program and
want to pass structured log data to `journald`, it's the Journal's native
protocol what you want to use. The systemd project provides the
[`sd_journal_print(3)`](https://www.freedesktop.org/software/systemd/man/sd_journal_print.html)
API that implements the client side of this protocol. This document explains
what this interface does behind the scenes, in case you'd like to implement a
client for it yourself, without linking to `libsystemd` — for example because
you work in a programming language other than C or otherwise want to avoid the
dependency.
## Basics
The native protocol of `journald` is spoken on the
`/run/systemd/journal/socket` `AF_UNIX`/`SOCK_DGRAM` socket on which
`systemd-journald.service` listens. Each datagram sent to this socket
encapsulates one journal entry that shall be written. Since datagrams are
subject to a size limit and we want to allow large journal entries, datagrams
sent over this socket may come in one of two formats:
* A datagram with the literal journal entry data as payload, without
any file descriptors attached.
* A datagram with an empty payload, but with a single
[`memfd`](https://man7.org/linux/man-pages/man2/memfd_create.2.html)
file descriptor that contains the literal journal entry data.
Other combinations are not permitted, i.e. datagrams with both payload and file
descriptors, or datagrams with neither, or more than one file descriptor. Such
datagrams are ignored. The `memfd` file descriptor should be fully sealed. The
binary format in the datagram payload and in the `memfd` memory is
identical. Typically a client would attempt to first send the data as datagram
payload, but if this fails with an `EMSGSIZE` error it would immediately retry
via the `memfd` logic.
A client probably should bump up the `SO_SNDBUF` socket option of its `AF_UNIX`
socket towards `journald` in order to delay blocking I/O as much as possible.
## Data Format
Each datagram should consist of a number of environment-like key/value
assignments. Unlike environment variable assignments the value may contain NUL
bytes however, as well as any other binary data. Keys may not include the `=`
or newline characters (or any other control characters or non-ASCII characters)
and may not be empty.
Serialization into the datagram payload or `memfd` is straight-forward: each
key/value pair is serialized via one of two methods:
* The first method inserts a `=` character between key and value, and suffixes
the result with `\n` (i.e. the newline character, ASCII code 10). Example: a
key `FOO` with a value `BAR` is serialized `F`, `O`, `O`, `=`, `B`, `A`, `R`,
`\n`.
* The second method should be used if the value of a field contains a `\n`
byte. In this case, the key name is serialized as is, followed by a `\n`
character, followed by a (non-aligned) little-endian unsigned 64bit integer
encoding the size of the value, followed by the literal value data, followed by
`\n`. Example: a key `FOO` with a value `BAR` may be serialized using this
second method as: `F`, `O`, `O`, `\n`, `\003`, `\000`, `\000`, `\000`, `\000`,
`\000`, `\000`, `\000`, `B`, `A`, `R`, `\n`.
If the value of a key/value pair contains a newline character (`\n`), it *must*
be serialized using the second method. If it does not, either method is
permitted. However, it is generally recommended to use the first method if
possible for all key/value pairs where applicable since the generated datagrams
are easily recognized and understood by the human eye this way, without any
manual binary decoding — which improves the debugging experience a lot, in
particular with tools such as `strace` that can show datagram content as text
dump. After all, log messages are highly relevant for debugging programs, hence
optimizing log traffic for readability without special tools is generally
desirable.
Note that keys that begin with `_` have special semantics in `journald`: they
are *trusted* and implicitly appended by `journald` on the receiving
side. Clients should not send them — if they do anyway, they will be ignored.
The most important key/value pair to send is `MESSAGE=`, as that contains the
actual log message text. Other relevant keys a client should send in most cases
are `PRIORITY=`, `CODE_FILE=`, `CODE_LINE=`, `CODE_FUNC=`, `ERRNO=`. It's
recommended to generate these fields implicitly on the client side. For further
information see the [relevant documentation of these
fields](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html).
The order in which the fields are serialized within one datagram is undefined
and may be freely chosen by the client. The server side might or might not
retain or reorder it when writing it to the Journal.
Some programs might generate multi-line log messages (e.g. a stack unwinder
generating log output about a stack trace, with one line for each stack
frame). It's highly recommended to send these as a single datagram, using a
single `MESSAGE=` field with embedded newline characters between the lines (the
second serialization method described above must hence be used for this
field). If possible do not split up individual events into multiple Journal
events that might then be processed and written into the Journal as separate
entries. The Journal toolchain is capable of handling multi-line log entries
just fine, and it's generally preferred to have a single set of metadata fields
associated with each multi-line message.
Note that the same keys may be used multiple times within the same datagram,
with different values. The Journal supports this and will write such entries to
disk without complaining. This is useful for associating a single log entry
with multiple suitable objects of the same type at once. This should only be
used for specific Journal fields however, where this is expected. Do not use
this for Journal fields where this is not expected and where code reasonably
assumes per-event uniqueness of the keys. In most cases code that consumes and
displays log entries is likely to ignore such non-unique fields or only
consider the first of the specified values. Specifically, if a Journal entry
contains multiple `MESSAGE=` fields, likely only the first one is
displayed. Note that a well-written logging client library thus will not use a
plain dictionary for accepting structured log metadata, but rather a data
structure that allows non-unique keys, for example an array, or a dictionary
that optionally maps to a set of values instead of a single value.
## Example Datagram
Here's an encoded message, with various common fields, all encoded according to
the first serialization method, with the exception of one, where the value
contains a newline character, and thus the second method is needed to be used.
```
PRIORITY=3\n
SYSLOG_FACILITY=3\n
CODE_FILE=src/foobar.c\n
CODE_LINE=77\n
BINARY_BLOB\n
\004\000\000\000\000\000\000\000xx\nx\n
CODE_FUNC=some_func\n
SYSLOG_IDENTIFIER=footool\n
MESSAGE=Something happened.\n
```
(Lines are broken here after each `\n` to make things more readable. C-style
backslash escaping is used.)
## Automatic Protocol Upgrading
It might be wise to automatically upgrade to logging via the Journal's native
protocol in clients that previously used the BSD syslog protocol. Behaviour in
this case should be pretty obvious: try connecting a socket to
`/run/systemd/journal/socket` first (on success use the native Journal
protocol), and if that fails fall back to `/dev/log` (and use the BSD syslog
protocol).
Programs normally logging to STDERR might also choose to upgrade to native
Journal logging in case they are invoked via systemd's service logic, where
STDOUT and STDERR are going to the Journal anyway. By preferring the native
protocol over STDERR-based logging, structured metadata can be passed along,
including priority information and more — which is not available on STDERR
based logging. If a program wants to detect automatically whether its STDERR is
connected to the Journal's stream transport, look for the `$JOURNAL_STREAM`
environment variable. The systemd service logic sets this variable to a
colon-separated pair of device and inode number (formatted in decimal ASCII) of
the STDERR file descriptor. If the `.st_dev` and `.st_ino` fields of the
`struct stat` data returned by `fstat(STDERR_FILENO, …)` match these values a
program can be sure its STDERR is connected to the Journal, and may then opt to
upgrade to the native Journal protocol via an `AF_UNIX` socket of its own, and
cease to use STDERR.
Why bother with this environment variable check? A service program invoked by
systemd might employ shell-style I/O redirection on invoked subprograms, and
those should likely not upgrade to the native Journal protocol, but instead
continue to use the redirected file descriptors passed to them. Thus, by
comparing the device and inode number of the actual STDERR file descriptor with
the one the service manager passed, one can make sure that no I/O redirection
took place for the current program.
## Alternative Implementations
If you are looking for alternative implementations of this protocol (besides
systemd's own in `sd_journal_print()`), consider
[GLib's](https://gitlab.gnome.org/GNOME/glib/-/blob/master/glib/gmessages.c) or
[`dbus-broker`'s](https://github.com/bus1/dbus-broker/blob/main/src/util/log.c).
And that's already all there is to it.

View File

@ -59,14 +59,14 @@ The "portable service" concept ultimately will not provide a fully isolated
environment to the payload, like containers mostly intend to. Instead they are
from the beginning more alike regular system services, can be controlled with
the same tools, are exposed the same way in all infrastructure and so on. Their
main difference is that the use a different root directory than the rest of the
main difference is that they use a different root directory than the rest of the
system. Hence, the intention is not to run code in a different, isolated world
from the host — like most containers would do it —, but to run it in the same
from the host — like most containers would do it — but to run it in the same
world, but with stricter access controls on what the service can see and do.
As one point of differentiation: as programs run as "portable services" are
pretty much regular system services, they won't run as PID 1 (like Docker would
do it), but as normal process. A corollary of that is that they aren't supposed
do it), but as normal processes. A corollary of that is that they aren't supposed
to manage anything in their own environment (such as the network) as the
execution environment is mostly shared with the rest of the system.
@ -77,12 +77,12 @@ focus includes system extensions otherwise sometimes called "super-privileged
containers".
Note that portable services are only available for system services, not for
user services. i.e. the functionality cannot be used for the stuff
bubblewrap/flatpak is focusing on.
user services (i.e. the functionality cannot be used for the stuff
bubblewrap/flatpak is focusing on).
## Mode of Operation
If you have portable service image, maybe in a raw disk image called
If you have a portable service image, maybe in a raw disk image called
`foobar_0.7.23.raw`, then attaching the services to the host is as easy as:
```
@ -135,7 +135,7 @@ This command does the following:
And that's already it.
Note that the images need to stay around (and the same location) as long as the
Note that the images need to stay around (and in the same location) as long as the
portable service is attached. If an image is moved, the `RootImage=` line
written to the unit drop-in would point to an non-existing place, and break the
logic.
@ -144,7 +144,7 @@ The `portablectl detach` command executes the reverse operation: it looks for
the drop-ins and the unit files associated with the image, and removes them
again.
Note that `portable attach` won't enable or start any of the units it copies
Note that `portablectl attach` won't enable or start any of the units it copies
out. This still has to take place in a second, separate step. (That said We
might add options to do this automatically later on.).
@ -223,7 +223,7 @@ read-only, immutable images (e.g. squashfs images) all files and directories to
over-mount must exist already.
Note that as no new image format or metadata is defined, it's very
straight-forward to define images than can be made use of it a number of
straightforward to define images than can be made use of in a number of
different ways. For example, by using `mkosi -b` you can trivially build a
single, unified image that:

View File

@ -68,6 +68,7 @@ Most generic unit settings are available for transient units.
✓ ConditionKernelCommandLine=
✓ ConditionKernelVersion=
✓ ConditionArchitecture=
✓ ConditionFirmware=
✓ ConditionVirtualization=
✓ ConditionSecurity=
✓ ConditionCapability=
@ -303,6 +304,7 @@ Most service unit settings are available for transient units.
✓ ExecStartPre=
✓ ExecStop=
✓ ExecStopPost=
✓ ExitType=
✓ FileDescriptorStoreMax=
✓ GuessMainPID=
✓ NonBlocking=

View File

@ -241,8 +241,9 @@ the artifacts the container manager persistently leaves in the system.
| 5 | `tty` group | `systemd` | `/etc/passwd` |
| 6…999 | System users | Distributions | `/etc/passwd` |
| 1000…60000 | Regular users | Distributions | `/etc/passwd` + LDAP/NIS/… |
| 60001…60513 | Human Users (homed) | `systemd` | `nss-systemd` |
| 60514…61183 | Unused | | |
| 60001…60513 | Human users (homed) | `systemd` | `nss-systemd` |
| 60514…60577 | Host users mapped into containers | `systemd` | `systemd-nspawn` |
| 60578…61183 | Unused | | |
| 61184…65519 | Dynamic service users | `systemd` | `nss-systemd` |
| 65520…65533 | Unused | | |
| 65534 | `nobody` user | Linux | `/etc/passwd` + `nss-systemd` |

View File

@ -19,6 +19,12 @@ expose. Or in other words, it both allows applications to efficiently query
user/group records from local services, and allows local subsystems to provide
user/group records efficiently to local applications.
The concepts described here define an IPC interface. Alternatively, user/group
records may be dropped in number of drop-in directories as files where they are
picked up in addition to the users/groups defined by this IPC logic. See
[`nss-systemd(8)`](https://www.freedesktop.org/software/systemd/man/nss-systemd.html)
for details.
This simple API only exposes only three method calls, and requires only a small
subset of the Varlink functionality.

View File

@ -75,7 +75,11 @@ Records](https://systemd.io/GROUP_RECORD) that encapsulate UNIX groups.
JSON User Records may be transferred or written to disk in various protocols
and formats. To inquire about such records defined on the local system use the
[User/Group Lookup API via Varlink](https://systemd.io/USER_GROUP_API).
[User/Group Lookup API via
Varlink](https://systemd.io/USER_GROUP_API). User/group records may also be
dropped in number of drop-in directories as files. See
[`nss-systemd(8)`](https://www.freedesktop.org/software/systemd/man/nss-systemd.html)
for details.
## Why JSON?
@ -624,18 +628,21 @@ user records.
`fido2HmacSalt` → An array of objects, implementing authentication support with
FIDO2 devices that implement the `hmac-secret` extension. Each element of the
array should be an object consisting of three string fields: `credential`,
`salt`, `hashedPassword`. The first two shall contain Base64-encoded binary
`salt`, `hashedPassword`, and three boolean fields: `up`, `uv` and
`clientPin`. The first two string fields shall contain Base64-encoded binary
data: the FIDO2 credential ID and the salt value to pass to the FIDO2
device. During authentication this salt along with the credential ID is sent to
the FIDO2 token, which will HMAC hash the salt with its internal secret key and
return the result. This resulting binary key should then be Base64-encoded and
used as string password for the further layers of the stack. The
`hashedPassword` field of the `fido2HmacSalt` field shall be a UNIX password
hash to test this derived secret key against for authentication. It is
generally recommended that for each entry in `fido2HmacSalt` there's also a
matching one in `fido2HmacCredential`, and vice versa, with the same credential
ID, appearing in the same order, but this should not be required by
applications processing user records.
hash to test this derived secret key against for authentication. The `up`, `uv`
and `clientPin` booleans map to the FIDO2 concepts of the same name and encode
whether the `uv`/`up` options are enabled during the authentication, and
whether a PIN shall be required. It is generally recommended that for each
entry in `fido2HmacSalt` there's also a matching one in `fido2HmacCredential`,
and vice versa, with the same credential ID, appearing in the same order, but
this should not be required by applications processing user records.
`recoveryKey`→ An array of objects, each defining a recovery key. The object
has two mandatory fields: `type` indicates the type of recovery key. The only
@ -923,8 +930,15 @@ user. If false or unset, authentication this way shall not be attempted.
`fido2UserPresencePermitted` → a boolean. If set to true allows the receiver to
use the FIDO2 "user presence" flag. This is similar to the concept of
`pkcs11ProtectedAuthenticationPathPermitted`, but exposes the FIDO2 concept
behind it. If false or unset authentication this way shall not be attempted.
`pkcs11ProtectedAuthenticationPathPermitted`, but exposes the FIDO2 "up"
concept behind it. If false or unset authentication this way shall not be
attempted.
`fido2UserVerificationPermitted` → a boolean. If set to true allows the
receiver to use the FIDO2 "user verification" flag. This is similar to the
concept of `pkcs11ProtectedAuthenticationPathPermitted`, but exposes the FIDO2
"uv" concept behind it. If false or unset authentication this way shall not be
attempted.
## Mapping to `struct passwd` and `struct spwd`

View File

@ -1,4 +1,4 @@
You are looking for the traditional init scripts in @SYSTEM_SYSVINIT_PATH@,
You are looking for the traditional init scripts in {{ SYSTEM_SYSVINIT_PATH }},
and they are gone?
Here's an explanation on what's going on:
@ -15,7 +15,7 @@ service, respectively. For further details, please refer to
systemctl(1).
Note that traditional init scripts continue to function on a systemd
system. An init script @SYSTEM_SYSVINIT_PATH@/foobar is implicitly mapped
system. An init script {{ SYSTEM_SYSVINIT_PATH }}/foobar is implicitly mapped
into a service unit foobar.service during system initialization.
Thank you!

View File

@ -1,11 +1,10 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
file = configure_file(
custom_target(
'README',
input : 'README.in',
output : 'README',
configuration : substs)
if conf.get('HAVE_SYSV_COMPAT') == 1
install_data(file,
install_dir : sysvinit_path)
endif
command : [meson_render_jinja2, config_h, '@INPUT@'],
capture : true,
install : conf.get('HAVE_SYSV_COMPAT') == 1,
install_dir : sysvinit_path)

View File

@ -2,7 +2,8 @@
passwd: compat systemd
group: compat [SUCCESS=merge] systemd
shadow: compat
shadow: compat systemd
gshadow: files systemd
hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns
networks: files

File diff suppressed because it is too large Load Diff

View File

@ -75,6 +75,9 @@ acpi:CPLM*:
acpi:DELL*:
ID_VENDOR_FROM_DATABASE=Dell, Inc.
acpi:DIOO*:
ID_VENDOR_FROM_DATABASE=Dioo Microcircuits Co., Ltd. Jiangsu
acpi:DLGS*:
ID_VENDOR_FROM_DATABASE=Dialog Semiconductor PLC
@ -84,6 +87,9 @@ acpi:DLLK*:
acpi:DMST*:
ID_VENDOR_FROM_DATABASE=DMIST RESEARCH LTD
acpi:DNBK*:
ID_VENDOR_FROM_DATABASE=Dynabook Inc.
acpi:DSUO*:
ID_VENDOR_FROM_DATABASE=Shenzhen DSO Microelectronics Co.,Ltd.
@ -240,6 +246,9 @@ acpi:PIXA*:
acpi:PNSO*:
ID_VENDOR_FROM_DATABASE=Pensando Systems, Inc.
acpi:PURI*:
ID_VENDOR_FROM_DATABASE=Purism SPC
acpi:QCOM*:
ID_VENDOR_FROM_DATABASE=Qualcomm Inc
@ -1995,6 +2004,9 @@ acpi:DLK*:
acpi:DLL*:
ID_VENDOR_FROM_DATABASE=Dell Inc
acpi:DLM*:
ID_VENDOR_FROM_DATABASE=DLOGIC Ltd.
acpi:DLO*:
ID_VENDOR_FROM_DATABASE=Shenzhen Dlodlo Technologies Co., Ltd.
@ -2007,6 +2019,9 @@ acpi:DMB*:
acpi:DMC*:
ID_VENDOR_FROM_DATABASE=Dune Microsystems Corporation
acpi:DMG*:
ID_VENDOR_FROM_DATABASE=Monoprice.Inc
acpi:DMM*:
ID_VENDOR_FROM_DATABASE=Dimond Multimedia Systems Inc
@ -2379,6 +2394,9 @@ acpi:EMK*:
acpi:EMO*:
ID_VENDOR_FROM_DATABASE=ELMO COMPANY, LIMITED
acpi:EMR*:
ID_VENDOR_FROM_DATABASE=ICC Intelligent Platforms GmbH
acpi:EMU*:
ID_VENDOR_FROM_DATABASE=Emulex Corporation
@ -2757,6 +2775,9 @@ acpi:FTW*:
acpi:FUJ*:
ID_VENDOR_FROM_DATABASE=Fujitsu Ltd
acpi:FUL*:
ID_VENDOR_FROM_DATABASE=Fun Technology Innovation INC.
acpi:FUN*:
ID_VENDOR_FROM_DATABASE=sisel muhendislik
@ -3063,6 +3084,9 @@ acpi:HHC*:
acpi:HHI*:
ID_VENDOR_FROM_DATABASE=Fraunhofer Heinrich-Hertz-Institute
acpi:HHT*:
ID_VENDOR_FROM_DATABASE=Hitevision Group
acpi:HIB*:
ID_VENDOR_FROM_DATABASE=Hibino Corporation
@ -3510,6 +3534,9 @@ acpi:INZ*:
acpi:IOA*:
ID_VENDOR_FROM_DATABASE=CRE Technology Corporation
acpi:IOC*:
ID_VENDOR_FROM_DATABASE=Guangxi Century Innovation Display Electronics Co., Ltd
acpi:IOD*:
ID_VENDOR_FROM_DATABASE=I-O Data Device Inc
@ -3993,6 +4020,9 @@ acpi:LCM*:
acpi:LCN*:
ID_VENDOR_FROM_DATABASE=LEXICON
acpi:LCP*:
ID_VENDOR_FROM_DATABASE=Silent Power Electronics GmbH
acpi:LCS*:
ID_VENDOR_FROM_DATABASE=Longshine Electronics Company
@ -4869,6 +4899,9 @@ acpi:NGC*:
acpi:NGS*:
ID_VENDOR_FROM_DATABASE=A D S Exports
acpi:NHC*:
ID_VENDOR_FROM_DATABASE=New H3C Technology Co., Ltd.
acpi:NHT*:
ID_VENDOR_FROM_DATABASE=Vinci Labs
@ -5979,6 +6012,9 @@ acpi:SCD*:
acpi:SCE*:
ID_VENDOR_FROM_DATABASE=Sun Corporation
acpi:SCG*:
ID_VENDOR_FROM_DATABASE=Seco S.p.A.
acpi:SCH*:
ID_VENDOR_FROM_DATABASE=Schlumberger Cards
@ -6192,6 +6228,9 @@ acpi:SJE*:
acpi:SKD*:
ID_VENDOR_FROM_DATABASE=Schneider & Koch
acpi:SKG*:
ID_VENDOR_FROM_DATABASE=Shenzhen KTC Technology Group
acpi:SKI*:
ID_VENDOR_FROM_DATABASE=LLC SKTB “SKIT”
@ -6834,6 +6873,9 @@ acpi:TLV*:
acpi:TLX*:
ID_VENDOR_FROM_DATABASE=Telxon Corporation
acpi:TLY*:
ID_VENDOR_FROM_DATABASE=Truly Semiconductors Ltd.
acpi:TMC*:
ID_VENDOR_FROM_DATABASE=Techmedia Computer Systems Corporation
@ -7251,6 +7293,9 @@ acpi:VAR*:
acpi:VAT*:
ID_VENDOR_FROM_DATABASE=VADATECH INC
acpi:VAV*:
ID_VENDOR_FROM_DATABASE=aviica
acpi:VBR*:
ID_VENDOR_FROM_DATABASE=VBrick Systems Inc.

View File

@ -1,5 +1,5 @@
--- 20-acpi-vendor.hwdb.base 2021-03-30 13:03:54.632421502 +0200
+++ 20-acpi-vendor.hwdb 2021-03-30 13:03:54.650421692 +0200
--- 20-acpi-vendor.hwdb.base 2021-06-15 21:57:03.178869619 +0200
+++ 20-acpi-vendor.hwdb 2021-06-15 21:57:03.185869634 +0200
@@ -3,6 +3,8 @@
# Data imported from:
# https://uefi.org/uefi-pnp-export
@ -19,7 +19,7 @@
acpi:AMDI*:
ID_VENDOR_FROM_DATABASE=AMD
@@ -310,6 +309,9 @@
@@ -319,6 +318,9 @@
acpi:AAA*:
ID_VENDOR_FROM_DATABASE=Avolites Ltd
@ -29,7 +29,7 @@
acpi:AAE*:
ID_VENDOR_FROM_DATABASE=Anatek Electronics Inc.
@@ -337,6 +339,9 @@
@@ -346,6 +348,9 @@
acpi:ABO*:
ID_VENDOR_FROM_DATABASE=D-Link Systems Inc
@ -39,7 +39,7 @@
acpi:ABS*:
ID_VENDOR_FROM_DATABASE=Abaco Systems, Inc.
@@ -382,7 +387,7 @@
@@ -391,7 +396,7 @@
acpi:ACO*:
ID_VENDOR_FROM_DATABASE=Allion Computer Inc.
@ -48,7 +48,7 @@
ID_VENDOR_FROM_DATABASE=Aspen Tech Inc
acpi:ACR*:
@@ -655,6 +660,9 @@
@@ -664,6 +669,9 @@
acpi:AMT*:
ID_VENDOR_FROM_DATABASE=AMT International Industry
@ -58,7 +58,7 @@
acpi:AMX*:
ID_VENDOR_FROM_DATABASE=AMX LLC
@@ -703,6 +711,9 @@
@@ -712,6 +720,9 @@
acpi:AOA*:
ID_VENDOR_FROM_DATABASE=AOpen Inc.
@ -68,7 +68,7 @@
acpi:AOE*:
ID_VENDOR_FROM_DATABASE=Advanced Optics Electronics, Inc.
@@ -712,6 +723,9 @@
@@ -721,6 +732,9 @@
acpi:AOT*:
ID_VENDOR_FROM_DATABASE=Alcatel
@ -78,7 +78,7 @@
acpi:APC*:
ID_VENDOR_FROM_DATABASE=American Power Conversion
@@ -887,7 +901,7 @@
@@ -896,7 +910,7 @@
ID_VENDOR_FROM_DATABASE=ALPS ALPINE CO., LTD.
acpi:AUO*:
@ -87,7 +87,7 @@
acpi:AUR*:
ID_VENDOR_FROM_DATABASE=Aureal Semiconductor
@@ -967,6 +981,9 @@
@@ -976,6 +990,9 @@
acpi:AXE*:
ID_VENDOR_FROM_DATABASE=Axell Corporation
@ -97,7 +97,7 @@
acpi:AXI*:
ID_VENDOR_FROM_DATABASE=American Magnetics
@@ -1117,6 +1134,9 @@
@@ -1126,6 +1143,9 @@
acpi:BML*:
ID_VENDOR_FROM_DATABASE=BIOMED Lab
@ -107,7 +107,7 @@
acpi:BMS*:
ID_VENDOR_FROM_DATABASE=BIOMEDISYS
@@ -1129,6 +1149,9 @@
@@ -1138,6 +1158,9 @@
acpi:BNO*:
ID_VENDOR_FROM_DATABASE=Bang & Olufsen
@ -117,7 +117,7 @@
acpi:BNS*:
ID_VENDOR_FROM_DATABASE=Boulder Nonlinear Systems
@@ -1372,6 +1395,9 @@
@@ -1381,6 +1404,9 @@
acpi:CHA*:
ID_VENDOR_FROM_DATABASE=Chase Research PLC
@ -127,7 +127,7 @@
acpi:CHD*:
ID_VENDOR_FROM_DATABASE=ChangHong Electric Co.,Ltd
@@ -1534,6 +1560,9 @@
@@ -1543,6 +1569,9 @@
acpi:COD*:
ID_VENDOR_FROM_DATABASE=CODAN Pty. Ltd.
@ -137,7 +137,7 @@
acpi:COI*:
ID_VENDOR_FROM_DATABASE=Codec Inc.
@@ -1943,7 +1972,7 @@
@@ -1952,7 +1981,7 @@
ID_VENDOR_FROM_DATABASE=Dragon Information Technology
acpi:DJE*:
@ -146,7 +146,7 @@
acpi:DJP*:
ID_VENDOR_FROM_DATABASE=Maygay Machines, Ltd
@@ -2275,6 +2304,9 @@
@@ -2290,6 +2319,9 @@
acpi:EIN*:
ID_VENDOR_FROM_DATABASE=Elegant Invention
@ -156,7 +156,7 @@
acpi:EKA*:
ID_VENDOR_FROM_DATABASE=MagTek Inc.
@@ -2536,6 +2568,9 @@
@@ -2554,6 +2586,9 @@
acpi:FCG*:
ID_VENDOR_FROM_DATABASE=First International Computer Ltd
@ -166,7 +166,7 @@
acpi:FCS*:
ID_VENDOR_FROM_DATABASE=Focus Enhancements, Inc.
@@ -2909,7 +2944,7 @@
@@ -2930,7 +2965,7 @@
ID_VENDOR_FROM_DATABASE=General Standards Corporation
acpi:GSM*:
@ -175,7 +175,7 @@
acpi:GSN*:
ID_VENDOR_FROM_DATABASE=Grandstream Networks, Inc.
@@ -3010,6 +3045,9 @@
@@ -3031,6 +3066,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
@@ -3139,6 +3177,9 @@
@@ -3163,6 +3201,9 @@
acpi:HSD*:
ID_VENDOR_FROM_DATABASE=HannStar Display Corp
@ -195,7 +195,7 @@
acpi:HSM*:
ID_VENDOR_FROM_DATABASE=AT&T Microelectronics
@@ -3262,6 +3303,9 @@
@@ -3286,6 +3327,9 @@
acpi:ICI*:
ID_VENDOR_FROM_DATABASE=Infotek Communication Inc
@ -205,7 +205,7 @@
acpi:ICM*:
ID_VENDOR_FROM_DATABASE=Intracom SA
@@ -3358,6 +3402,9 @@
@@ -3382,6 +3426,9 @@
acpi:IKE*:
ID_VENDOR_FROM_DATABASE=Ikegami Tsushinki Co. Ltd.
@ -215,7 +215,7 @@
acpi:IKS*:
ID_VENDOR_FROM_DATABASE=Ikos Systems Inc
@@ -3403,6 +3450,9 @@
@@ -3427,6 +3474,9 @@
acpi:IMT*:
ID_VENDOR_FROM_DATABASE=Inmax Technology Corporation
@ -225,7 +225,7 @@
acpi:INA*:
ID_VENDOR_FROM_DATABASE=Inventec Corporation
@@ -3913,6 +3963,9 @@
@@ -3940,6 +3990,9 @@
acpi:LAN*:
ID_VENDOR_FROM_DATABASE=Sodeman Lancom Inc
@ -235,7 +235,7 @@
acpi:LAS*:
ID_VENDOR_FROM_DATABASE=LASAT Comm. A/S
@@ -3958,6 +4011,9 @@
@@ -3988,6 +4041,9 @@
acpi:LED*:
ID_VENDOR_FROM_DATABASE=Long Engineering Design Inc
@ -245,7 +245,7 @@
acpi:LEG*:
ID_VENDOR_FROM_DATABASE=Legerity, Inc
@@ -3973,6 +4029,9 @@
@@ -4003,6 +4059,9 @@
acpi:LGC*:
ID_VENDOR_FROM_DATABASE=Logic Ltd
@ -255,7 +255,7 @@
acpi:LGI*:
ID_VENDOR_FROM_DATABASE=Logitech Inc
@@ -4027,6 +4086,9 @@
@@ -4057,6 +4116,9 @@
acpi:LND*:
ID_VENDOR_FROM_DATABASE=Land Computer Company Ltd
@ -265,7 +265,7 @@
acpi:LNK*:
ID_VENDOR_FROM_DATABASE=Link Tech Inc
@@ -4061,7 +4123,7 @@
@@ -4091,7 +4153,7 @@
ID_VENDOR_FROM_DATABASE=Design Technology
acpi:LPL*:
@ -274,7 +274,7 @@
acpi:LSC*:
ID_VENDOR_FROM_DATABASE=LifeSize Communications
@@ -4237,6 +4299,9 @@
@@ -4267,6 +4329,9 @@
acpi:MCX*:
ID_VENDOR_FROM_DATABASE=Millson Custom Solutions Inc.
@ -284,7 +284,7 @@
acpi:MDA*:
ID_VENDOR_FROM_DATABASE=Media4 Inc
@@ -4477,6 +4542,9 @@
@@ -4507,6 +4572,9 @@
acpi:MOM*:
ID_VENDOR_FROM_DATABASE=Momentum Data Systems
@ -294,7 +294,7 @@
acpi:MOS*:
ID_VENDOR_FROM_DATABASE=Moses Corporation
@@ -4705,6 +4773,9 @@
@@ -4735,6 +4803,9 @@
acpi:NAL*:
ID_VENDOR_FROM_DATABASE=Network Alchemy
@ -304,7 +304,7 @@
acpi:NAT*:
ID_VENDOR_FROM_DATABASE=NaturalPoint Inc.
@@ -5215,6 +5286,9 @@
@@ -5248,6 +5319,9 @@
acpi:PCX*:
ID_VENDOR_FROM_DATABASE=PC Xperten
@ -314,7 +314,7 @@
acpi:PDM*:
ID_VENDOR_FROM_DATABASE=Psion Dacom Plc.
@@ -5278,9 +5352,6 @@
@@ -5311,9 +5385,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
@@ -5368,9 +5439,6 @@
@@ -5401,9 +5472,6 @@
acpi:PNL*:
ID_VENDOR_FROM_DATABASE=Panelview, Inc.
@ -334,7 +334,7 @@
acpi:PNR*:
ID_VENDOR_FROM_DATABASE=Planar Systems, Inc.
@@ -5506,15 +5574,9 @@
@@ -5539,15 +5607,9 @@
acpi:PTS*:
ID_VENDOR_FROM_DATABASE=Plain Tree Systems Inc
@ -350,7 +350,7 @@
acpi:PVG*:
ID_VENDOR_FROM_DATABASE=Proview Global Co., Ltd
@@ -5830,9 +5892,6 @@
@@ -5863,9 +5925,6 @@
acpi:RTI*:
ID_VENDOR_FROM_DATABASE=Rancho Tech Inc
@ -360,7 +360,7 @@
acpi:RTL*:
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd
@@ -5998,9 +6057,6 @@
@@ -6034,9 +6093,6 @@
acpi:SEE*:
ID_VENDOR_FROM_DATABASE=SeeColor Corporation
@ -370,7 +370,7 @@
acpi:SEI*:
ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc
@@ -6460,6 +6516,9 @@
@@ -6499,6 +6555,9 @@
acpi:SVD*:
ID_VENDOR_FROM_DATABASE=SVD Computer
@ -380,7 +380,7 @@
acpi:SVI*:
ID_VENDOR_FROM_DATABASE=Sun Microsystems
@@ -6544,6 +6603,9 @@
@@ -6583,6 +6642,9 @@
acpi:SZM*:
ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd
@ -390,7 +390,7 @@
acpi:TAA*:
ID_VENDOR_FROM_DATABASE=Tandberg
@@ -6634,6 +6696,9 @@
@@ -6673,6 +6735,9 @@
acpi:TDG*:
ID_VENDOR_FROM_DATABASE=Six15 Technologies
@ -400,7 +400,7 @@
acpi:TDM*:
ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc
@@ -6676,6 +6741,9 @@
@@ -6715,6 +6780,9 @@
acpi:TEV*:
ID_VENDOR_FROM_DATABASE=Televés, S.A.
@ -410,7 +410,7 @@
acpi:TEZ*:
ID_VENDOR_FROM_DATABASE=Tech Source Inc.
@@ -6796,9 +6864,6 @@
@@ -6838,9 +6906,6 @@
acpi:TNC*:
ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd
@ -420,7 +420,7 @@
acpi:TNM*:
ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA
@@ -7105,14 +7170,14 @@
@@ -7147,14 +7212,14 @@
acpi:UNC*:
ID_VENDOR_FROM_DATABASE=Unisys Corporation
@ -441,7 +441,7 @@
acpi:UNI*:
ID_VENDOR_FROM_DATABASE=Uniform Industry Corp.
@@ -7147,6 +7212,9 @@
@@ -7189,6 +7254,9 @@
acpi:USA*:
ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG
@ -451,7 +451,7 @@
acpi:USD*:
ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
@@ -7393,9 +7461,6 @@
@@ -7438,9 +7506,6 @@
acpi:WAL*:
ID_VENDOR_FROM_DATABASE=Wave Access
@ -461,7 +461,7 @@
acpi:WAV*:
ID_VENDOR_FROM_DATABASE=Wavephore
@@ -7520,7 +7585,7 @@
@@ -7565,7 +7630,7 @@
ID_VENDOR_FROM_DATABASE=WyreStorm Technologies LLC
acpi:WYS*:
@ -470,7 +470,7 @@
acpi:WYT*:
ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
@@ -7534,9 +7599,6 @@
@@ -7579,9 +7644,6 @@
acpi:XDM*:
ID_VENDOR_FROM_DATABASE=XDM Ltd.
@ -480,7 +480,7 @@
acpi:XES*:
ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
@@ -7567,9 +7629,6 @@
@@ -7612,9 +7674,6 @@
acpi:XNT*:
ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
@ -490,7 +490,7 @@
acpi:XQU*:
ID_VENDOR_FROM_DATABASE=SHANGHAI SVA-DAV ELECTRONICS CO., LTD
@@ -7636,6 +7695,9 @@
@@ -7681,6 +7740,9 @@
acpi:ZBX*:
ID_VENDOR_FROM_DATABASE=Zebax Technologies

File diff suppressed because it is too large Load Diff

View File

@ -1721,6 +1721,9 @@ usb:v03F0p6302*
usb:v03F0p6317*
ID_MODEL_FROM_DATABASE=Color LaserJet 4730mfp
usb:v03F0p632A*
ID_MODEL_FROM_DATABASE=LaserJet M203-M206
usb:v03F0p6402*
ID_MODEL_FROM_DATABASE=PhotoSmart 715 (ptp)
@ -2285,6 +2288,9 @@ usb:v0402p5661*
usb:v0402p5667*
ID_MODEL_FROM_DATABASE=M5667 MP3 player
usb:v0402p8841*
ID_MODEL_FROM_DATABASE=Newmine Camera
usb:v0402p9665*
ID_MODEL_FROM_DATABASE=Gateway Webcam
@ -2336,6 +2342,9 @@ usb:v0403p6015*
usb:v0403p601F*
ID_MODEL_FROM_DATABASE=Myriad-RF LimeSDR-Mini
usb:v0403p6EE0*
ID_MODEL_FROM_DATABASE=EZO Carrier Board
usb:v0403p6F70*
ID_MODEL_FROM_DATABASE=HB-RF-USB
@ -2402,12 +2411,18 @@ usb:v0403p9132*
usb:v0403p9133*
ID_MODEL_FROM_DATABASE=CallerID
usb:v0403p9134*
ID_MODEL_FROM_DATABASE=Virtual keyboard
usb:v0403p9135*
ID_MODEL_FROM_DATABASE=Rotary Pub alarm
usb:v0403p9136*
ID_MODEL_FROM_DATABASE=Pulsecounter
usb:v0403p9137*
ID_MODEL_FROM_DATABASE=Ledbutton interface
usb:v0403p9E90*
ID_MODEL_FROM_DATABASE=Marvell OpenRD Base/Client
@ -2717,6 +2732,9 @@ usb:v0403pF850*
usb:v0403pF918*
ID_MODEL_FROM_DATABASE=Ant8 Logic Probe
usb:v0403pF9D9*
ID_MODEL_FROM_DATABASE=Wetterempfanger 147.3kHz
usb:v0403pFA00*
ID_MODEL_FROM_DATABASE=Matrix Orbital USB Serial
@ -2984,6 +3002,9 @@ usb:v0409p00F7*
usb:v0409p011D*
ID_MODEL_FROM_DATABASE=e228 Mobile Phone
usb:v0409p0193*
ID_MODEL_FROM_DATABASE=RVT-R Writer
usb:v0409p0203*
ID_MODEL_FROM_DATABASE=HID Audio Controls
@ -4064,6 +4085,9 @@ usb:v041Ep3232*
usb:v041Ep3237*
ID_MODEL_FROM_DATABASE=SB X-Fi Surround 5.1 Pro
usb:v041Ep3241*
ID_MODEL_FROM_DATABASE=Sound Blaster JAM
usb:v041Ep3263*
ID_MODEL_FROM_DATABASE=SB X-Fi Surround 5.1 Pro
@ -4265,6 +4289,9 @@ usb:v041Ep4095*
usb:v041Ep4097*
ID_MODEL_FROM_DATABASE=Live! Cam Chat HD [VF0700]
usb:v041Ep4099*
ID_MODEL_FROM_DATABASE=Creative VF0800 [RealSense Camera SR300]
usb:v041Ep4100*
ID_MODEL_FROM_DATABASE=Nomad Jukebox 2
@ -5954,6 +5981,9 @@ usb:v044FpB653*
usb:v044FpB654*
ID_MODEL_FROM_DATABASE=Ferrari GT Force Feedback Wheel
usb:v044FpB677*
ID_MODEL_FROM_DATABASE=T150 Racing Wheel
usb:v044FpB678*
ID_MODEL_FROM_DATABASE=T.Flight Rudder Pedals
@ -7538,6 +7568,9 @@ usb:v045Ep09C0*
usb:v045Ep0A00*
ID_MODEL_FROM_DATABASE=Lumia 950 Dual SIM (RM-1118)
usb:v045Ep0B12*
ID_MODEL_FROM_DATABASE=Xbox Wireless Controller (model 1914)
usb:v045Ep930A*
ID_MODEL_FROM_DATABASE=ISOUSB.SYS Intel 82930 Isochronous IO Test Board
@ -7991,20 +8024,41 @@ usb:v046Dp0840*
usb:v046Dp0843*
ID_MODEL_FROM_DATABASE=Webcam C930e
usb:v046Dp0845*
ID_MODEL_FROM_DATABASE=ConferenceCam CC3000e Camera
usb:v046Dp0846*
ID_MODEL_FROM_DATABASE=ConferenceCam CC3000e Speakerphone
usb:v046Dp084B*
ID_MODEL_FROM_DATABASE=ConferenceCam Connect Video
usb:v046Dp0850*
ID_MODEL_FROM_DATABASE=QuickCam Web
usb:v046Dp0857*
ID_MODEL_FROM_DATABASE=Logi Group Speakerphone
usb:v046Dp085C*
ID_MODEL_FROM_DATABASE=C922 Pro Stream Webcam
usb:v046Dp085E*
ID_MODEL_FROM_DATABASE=BRIO Ultra HD Webcam
usb:v046Dp0870*
ID_MODEL_FROM_DATABASE=QuickCam Express
usb:v046Dp0882*
ID_MODEL_FROM_DATABASE=Logi Group Speakerphone
usb:v046Dp0890*
ID_MODEL_FROM_DATABASE=QuickCam Traveler
usb:v046Dp0892*
ID_MODEL_FROM_DATABASE=OrbiCam
ID_MODEL_FROM_DATABASE=C920 HD Pro Webcam
usb:v046Dp0893*
ID_MODEL_FROM_DATABASE=StreamCam
usb:v046Dp0894*
ID_MODEL_FROM_DATABASE=CrystalCam
@ -8330,6 +8384,9 @@ usb:v046Dp0A5D*
usb:v046Dp0A66*
ID_MODEL_FROM_DATABASE=[G533 Wireless Headset Dongle]
usb:v046Dp0A8F*
ID_MODEL_FROM_DATABASE=H390 headset with microphone
usb:v046Dp0B02*
ID_MODEL_FROM_DATABASE=C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
@ -8567,6 +8624,9 @@ usb:v046DpC084*
usb:v046DpC08B*
ID_MODEL_FROM_DATABASE=G502 SE HERO Gaming Mouse
usb:v046DpC092*
ID_MODEL_FROM_DATABASE=G203 LIGHTSYNC Gaming Mouse
usb:v046DpC101*
ID_MODEL_FROM_DATABASE=UltraX Media Remote
@ -8744,6 +8804,9 @@ usb:v046DpC24F*
usb:v046DpC260*
ID_MODEL_FROM_DATABASE=G29 Driving Force Racing Wheel [PS4]
usb:v046DpC262*
ID_MODEL_FROM_DATABASE=G920 Driving Force Racing Wheel
usb:v046DpC281*
ID_MODEL_FROM_DATABASE=WingMan Force
@ -8885,6 +8948,9 @@ usb:v046DpC335*
usb:v046DpC33A*
ID_MODEL_FROM_DATABASE=G413 Gaming Keyboard
usb:v046DpC33F*
ID_MODEL_FROM_DATABASE=G815 Mechanical Keyboard
usb:v046DpC401*
ID_MODEL_FROM_DATABASE=TrackMan Marble Wheel
@ -9005,6 +9071,9 @@ usb:v046DpC537*
usb:v046DpC53A*
ID_MODEL_FROM_DATABASE=PowerPlay Wireless Charging System
usb:v046DpC53D*
ID_MODEL_FROM_DATABASE=G631 Keyboard
usb:v046DpC603*
ID_MODEL_FROM_DATABASE=3Dconnexion Spacemouse Plus XT
@ -9845,6 +9914,12 @@ usb:v047Dp5002*
usb:v047Dp5003*
ID_MODEL_FROM_DATABASE=VideoCam
usb:v047Dp8018*
ID_MODEL_FROM_DATABASE=Expert Wireless Trackball Mouse (K72359WW)
usb:v047Dp8068*
ID_MODEL_FROM_DATABASE=Pro Fit Ergo Vertical Wireless Trackball
usb:v047E*
ID_VENDOR_FROM_DATABASE=Agere Systems, Inc. (Lucent)
@ -9905,6 +9980,9 @@ usb:v047FpC00E*
usb:v047FpC03B*
ID_MODEL_FROM_DATABASE=HD1
usb:v047FpCA01*
ID_MODEL_FROM_DATABASE=Calisto 800 Series
usb:v047FpDA60*
ID_MODEL_FROM_DATABASE=DA60
@ -10028,6 +10106,9 @@ usb:v0482p0640*
usb:v0482p069B*
ID_MODEL_FROM_DATABASE=ECOSYS M2635dn
usb:v0482p06B4*
ID_MODEL_FROM_DATABASE=ECOSYS M5526cdw
usb:v0483*
ID_VENDOR_FROM_DATABASE=STMicroelectronics
@ -11042,6 +11123,9 @@ usb:v04A7p04BB*
usb:v04A7p04CD*
ID_MODEL_FROM_DATABASE=Xerox Travel Scanner 150
usb:v04A7p04EE*
ID_MODEL_FROM_DATABASE=Duplex Combo Scanner
usb:v04A8*
ID_VENDOR_FROM_DATABASE=Multivideo Labs, Inc.
@ -11660,6 +11744,9 @@ usb:v04A9p190E*
usb:v04A9p190F*
ID_MODEL_FROM_DATABASE=CanoScan LiDE 220
usb:v04A9p1913*
ID_MODEL_FROM_DATABASE=CanoScan LiDE 300
usb:v04A9p2200*
ID_MODEL_FROM_DATABASE=CanoScan LiDE 25
@ -13043,6 +13130,9 @@ usb:v04A9p32BB*
usb:v04A9p32BF*
ID_MODEL_FROM_DATABASE=PowerShot SX420 IS
usb:v04A9p32C0*
ID_MODEL_FROM_DATABASE=PowerShot ELPH 190IS
usb:v04A9p32C1*
ID_MODEL_FROM_DATABASE=PowerShot ELPH 180 / IXUS 175
@ -13271,6 +13361,12 @@ usb:v04B0p040F*
usb:v04B0p0410*
ID_MODEL_FROM_DATABASE=D200 (ptp)
usb:v04B0p0411*
ID_MODEL_FROM_DATABASE=D80 (mass storage mode)
usb:v04B0p0412*
ID_MODEL_FROM_DATABASE=D80 (MTP/PTP mode)
usb:v04B0p0413*
ID_MODEL_FROM_DATABASE=D40 (mass storage mode)
@ -13430,6 +13526,9 @@ usb:v04B4p0001*
usb:v04B4p0002*
ID_MODEL_FROM_DATABASE=CY7C63x0x Thermometer
usb:v04B4p0008*
ID_MODEL_FROM_DATABASE=CDC ACM serial port
usb:v04B4p0033*
ID_MODEL_FROM_DATABASE=Mouse
@ -13457,6 +13556,9 @@ usb:v04B4p0306*
usb:v04B4p0407*
ID_MODEL_FROM_DATABASE=Optical Skype Mouse
usb:v04B4p0818*
ID_MODEL_FROM_DATABASE=AE-SMKD92-* [Thumb Keyboard]
usb:v04B4p0BAD*
ID_MODEL_FROM_DATABASE=MetaGeek Wi-Spy
@ -14147,6 +14249,9 @@ usb:v04B8p1114*
usb:v04B8p1129*
ID_MODEL_FROM_DATABASE=ET-4750 [WorkForce ET-4750 EcoTank All-in-One]
usb:v04B8p1168*
ID_MODEL_FROM_DATABASE=Workforce WF-7820/7840 Series
usb:v04B9*
ID_VENDOR_FROM_DATABASE=Rainbow Technologies, Inc.
@ -14498,6 +14603,9 @@ usb:v04C5p125A*
usb:v04C5p132E*
ID_MODEL_FROM_DATABASE=fi-7160
usb:v04C5p159F*
ID_MODEL_FROM_DATABASE=ScanSnap iX1500
usb:v04C5p200F*
ID_MODEL_FROM_DATABASE=Sigma DP2 (Mass Storage)
@ -14855,6 +14963,9 @@ usb:v04CBp01D4*
usb:v04CBp01D5*
ID_MODEL_FROM_DATABASE=FinePix F47 (PTP)
usb:v04CBp01E7*
ID_MODEL_FROM_DATABASE=Fujifilm A850 Digital Camera
usb:v04CBp01F7*
ID_MODEL_FROM_DATABASE=FinePix J250 (PTP)
@ -14876,6 +14987,9 @@ usb:v04CBp0278*
usb:v04CBp02C5*
ID_MODEL_FROM_DATABASE=FinePix S9900W Digital Camera (PTP)
usb:v04CBp02E0*
ID_MODEL_FROM_DATABASE=X-T200 Digital Camera
usb:v04CBp5006*
ID_MODEL_FROM_DATABASE=ASK-300
@ -15143,6 +15257,9 @@ usb:v04D9p0022*
usb:v04D9p0348*
ID_MODEL_FROM_DATABASE=Keyboard
usb:v04D9p0407*
ID_MODEL_FROM_DATABASE=Keyboard [TEX Shinobi]
usb:v04D9p048E*
ID_MODEL_FROM_DATABASE=Optical Mouse
@ -15224,6 +15341,9 @@ usb:v04D9pA100*
usb:v04D9pA11B*
ID_MODEL_FROM_DATABASE=Mouse [MX-3200]
usb:v04D9pA153*
ID_MODEL_FROM_DATABASE=Optical Gaming Mouse
usb:v04D9pA29F*
ID_MODEL_FROM_DATABASE=Microarray fingerprint reader
@ -15233,6 +15353,21 @@ usb:v04D9pB534*
usb:v04D9pE002*
ID_MODEL_FROM_DATABASE=MCU
usb:v04D9pFC2A*
ID_MODEL_FROM_DATABASE=Gaming Mouse [Redragon M709]
usb:v04D9pFC30*
ID_MODEL_FROM_DATABASE=Gaming Mouse [Redragon M711]
usb:v04D9pFC38*
ID_MODEL_FROM_DATABASE=Gaming Mouse [Redragon M602-RGB]
usb:v04D9pFC4D*
ID_MODEL_FROM_DATABASE=Gaming Mouse [Redragon M908]
usb:v04D9pFC55*
ID_MODEL_FROM_DATABASE=Venus MMO Gaming Mouse
usb:v04DA*
ID_VENDOR_FROM_DATABASE=Panasonic (Matsushita)
@ -16748,6 +16883,9 @@ usb:v04F2pB1B4*
usb:v04F2pB1B9*
ID_MODEL_FROM_DATABASE=Asus Integrated Webcam
usb:v04F2pB1BB*
ID_MODEL_FROM_DATABASE=2.0M UVC WebCam
usb:v04F2pB1CF*
ID_MODEL_FROM_DATABASE=Lenovo Integrated Camera
@ -16832,6 +16970,12 @@ usb:v04F2pB49F*
usb:v04F2pB563*
ID_MODEL_FROM_DATABASE=Integrated Camera
usb:v04F2pB5AB*
ID_MODEL_FROM_DATABASE=Integrated Camera
usb:v04F2pB5AC*
ID_MODEL_FROM_DATABASE=Integrated IR Camera
usb:v04F2pB5CE*
ID_MODEL_FROM_DATABASE=Integrated Camera
@ -16895,6 +17039,9 @@ usb:v04F3p0381*
usb:v04F3p04A0*
ID_MODEL_FROM_DATABASE=Dream Cheeky Stress/Panic Button
usb:v04F3p0C28*
ID_MODEL_FROM_DATABASE=fingerprint sensor [FeinTech FPS00200]
usb:v04F3p2234*
ID_MODEL_FROM_DATABASE=Touchscreen
@ -17027,6 +17174,12 @@ usb:v04F9p002C*
usb:v04F9p002D*
ID_MODEL_FROM_DATABASE=Printer
usb:v04F9p0037*
ID_MODEL_FROM_DATABASE=HL-3040CN series
usb:v04F9p0038*
ID_MODEL_FROM_DATABASE=HL-3070CW series
usb:v04F9p0039*
ID_MODEL_FROM_DATABASE=HL-5340 series
@ -17567,6 +17720,9 @@ usb:v04F9p01EC*
usb:v04F9p01F4*
ID_MODEL_FROM_DATABASE=MFC-5890CN
usb:v04F9p0204*
ID_MODEL_FROM_DATABASE=DCP-165C
usb:v04F9p020A*
ID_MODEL_FROM_DATABASE=MFC-8670DN
@ -18401,6 +18557,45 @@ usb:v04F9p03BD*
usb:v04F9p03FD*
ID_MODEL_FROM_DATABASE=ADS-2700W
usb:v04F9p043F*
ID_MODEL_FROM_DATABASE=MFC-L3770CDW
usb:v04F9p0440*
ID_MODEL_FROM_DATABASE=MFC-9350CDW
usb:v04F9p0441*
ID_MODEL_FROM_DATABASE=MFC-L3750CDW
usb:v04F9p0442*
ID_MODEL_FROM_DATABASE=MFC-L3745CDW
usb:v04F9p0443*
ID_MODEL_FROM_DATABASE=MFC-L3735CDN
usb:v04F9p0444*
ID_MODEL_FROM_DATABASE=MFC-9150CDN
usb:v04F9p0445*
ID_MODEL_FROM_DATABASE=MFC-L3730CDN
usb:v04F9p0446*
ID_MODEL_FROM_DATABASE=MFC-L3710CW
usb:v04F9p0447*
ID_MODEL_FROM_DATABASE=DCP-9030CDN
usb:v04F9p0448*
ID_MODEL_FROM_DATABASE=DCP-L3550CDW
usb:v04F9p044A*
ID_MODEL_FROM_DATABASE=HL-L3290CDW
usb:v04F9p044B*
ID_MODEL_FROM_DATABASE=DCP-L3510CDW
usb:v04F9p044C*
ID_MODEL_FROM_DATABASE=DCP-L3551CDW
usb:v04F9p1000*
ID_MODEL_FROM_DATABASE=Printer
@ -18473,6 +18668,9 @@ usb:v04F9p2061*
usb:v04F9p2064*
ID_MODEL_FROM_DATABASE=PT-P700 P-touch Label Printer RemovableDisk
usb:v04F9p2074*
ID_MODEL_FROM_DATABASE=PT-D600 P-touch Label Printer
usb:v04F9p209B*
ID_MODEL_FROM_DATABASE=QL-800 Label Printer
@ -19254,7 +19452,7 @@ usb:v0525pA4A4*
ID_MODEL_FROM_DATABASE=Linux-USB user-mode bulk source/sink
usb:v0525pA4A5*
ID_MODEL_FROM_DATABASE=Pocketbook Pro 903 / Mobius 2 Action Cam / xDuoo X3 / PocketBook Pro 602
ID_MODEL_FROM_DATABASE=Linux-USB File-backed Storage Gadget
usb:v0525pA4A6*
ID_MODEL_FROM_DATABASE=Linux-USB Serial Gadget
@ -19271,6 +19469,12 @@ usb:v0525pA4A9*
usb:v0525pA4AA*
ID_MODEL_FROM_DATABASE=Linux-USB CDC Composite Gadge (Ethernet and ACM)
usb:v0525pA4AB*
ID_MODEL_FROM_DATABASE=Linux-USB Multifunction Composite Gadget
usb:v0525pA4AC*
ID_MODEL_FROM_DATABASE=Linux-USB HID Gadget
usb:v0526*
ID_VENDOR_FROM_DATABASE=Temic MHS S.A.
@ -20258,6 +20462,9 @@ usb:v054Cp06BB*
usb:v054Cp06C3*
ID_MODEL_FROM_DATABASE=RC-S380
usb:v054Cp07C3*
ID_MODEL_FROM_DATABASE=ILCE-6000 (aka Alpha-6000) in Mass Storage mode
usb:v054Cp07C4*
ID_MODEL_FROM_DATABASE=ILCE-6000 (aka Alpha-6000) in Mass Storage mode
@ -20267,6 +20474,9 @@ usb:v054Cp082F*
usb:v054Cp0847*
ID_MODEL_FROM_DATABASE=WG-C10 Portable Wireless Server
usb:v054Cp0877*
ID_MODEL_FROM_DATABASE=UP-D898/X898 series
usb:v054Cp0884*
ID_MODEL_FROM_DATABASE=MDR-ZX770BN [Wireless Noise Canceling Stereo Headset]
@ -20300,12 +20510,24 @@ usb:v054Cp0C03*
usb:v054Cp0C34*
ID_MODEL_FROM_DATABASE=ILCE-7M3 [A7III] in PC Remote mode
usb:v054Cp0C7F*
ID_MODEL_FROM_DATABASE=WH-CH700N [Wireless Noise-Canceling Headphones]
usb:v054Cp0CD3*
ID_MODEL_FROM_DATABASE=WH-1000XM3 [Wireless Noise-Canceling Headphones]
usb:v054Cp0CDA*
ID_MODEL_FROM_DATABASE=PlayStation Classic controller
usb:v054Cp0CE0*
ID_MODEL_FROM_DATABASE=WF-1000XM3 [Wireless Noise-Canceling Headphones]
usb:v054Cp0CF0*
ID_MODEL_FROM_DATABASE=MRW-G1
usb:v054Cp0D58*
ID_MODEL_FROM_DATABASE=WH-1000XM4 [Wireless Noise-Canceling Headphones]
usb:v054Cp1000*
ID_MODEL_FROM_DATABASE=Wireless Buzz! Receiver
@ -20438,6 +20660,9 @@ usb:v0557p2221*
usb:v0557p2404*
ID_MODEL_FROM_DATABASE=4-port switch
usb:v0557p2419*
ID_MODEL_FROM_DATABASE=Virtual mouse/keyboard device
usb:v0557p2600*
ID_MODEL_FROM_DATABASE=IDE Bridge
@ -21428,9 +21653,45 @@ usb:v056Dp0002*
usb:v056Dp0003*
ID_MODEL_FROM_DATABASE=Device Bay Controller
usb:v056Dp4000*
ID_MODEL_FROM_DATABASE=FlexScan EV3237
usb:v056Dp4001*
ID_MODEL_FROM_DATABASE=Monitor
usb:v056Dp4002*
ID_MODEL_FROM_DATABASE=USB HID Monitor
usb:v056Dp4014*
ID_MODEL_FROM_DATABASE=FlexScan EV2750
usb:v056Dp4026*
ID_MODEL_FROM_DATABASE=FlexScan EV2451
usb:v056Dp4027*
ID_MODEL_FROM_DATABASE=FlexScan EV2456
usb:v056Dp4036*
ID_MODEL_FROM_DATABASE=FlexScan EV2785
usb:v056Dp4037*
ID_MODEL_FROM_DATABASE=FlexScan EV3285
usb:v056Dp4044*
ID_MODEL_FROM_DATABASE=FlexScan EV2457
usb:v056Dp4059*
ID_MODEL_FROM_DATABASE=FlexScan EV2760
usb:v056Dp405B*
ID_MODEL_FROM_DATABASE=FlexScan EV2460
usb:v056Dp405F*
ID_MODEL_FROM_DATABASE=FlexScan EV2795
usb:v056Dp4065*
ID_MODEL_FROM_DATABASE=FlexScan EV3895
usb:v056E*
ID_VENDOR_FROM_DATABASE=Elecom Co., Ltd
@ -23732,6 +23993,9 @@ usb:v05A3p9320*
usb:v05A3p9331*
ID_MODEL_FROM_DATABASE=Camera
usb:v05A3p9332*
ID_MODEL_FROM_DATABASE=Camera - 1080p
usb:v05A3p9422*
ID_MODEL_FROM_DATABASE=Camera
@ -24392,6 +24656,9 @@ usb:v05ACp8205*
usb:v05ACp8206*
ID_MODEL_FROM_DATABASE=Bluetooth HCI
usb:v05ACp8207*
ID_MODEL_FROM_DATABASE=Built-in Bluetooth
usb:v05ACp820A*
ID_MODEL_FROM_DATABASE=Bluetooth HID Keyboard
@ -24422,6 +24689,9 @@ usb:v05ACp821A*
usb:v05ACp821F*
ID_MODEL_FROM_DATABASE=Built-in Bluetooth 2.0+EDR HCI
usb:v05ACp8233*
ID_MODEL_FROM_DATABASE=iBridge
usb:v05ACp8240*
ID_MODEL_FROM_DATABASE=Built-in IR Receiver
@ -26042,6 +26312,9 @@ usb:v05E3pF103*
usb:v05E3pF104*
ID_MODEL_FROM_DATABASE=VX7012 TV Box
usb:v05E3pF12A*
ID_MODEL_FROM_DATABASE=Digital Microscope
usb:v05E3pFD21*
ID_MODEL_FROM_DATABASE=3M TL20 Temperature Logger
@ -26315,6 +26588,9 @@ usb:v0603p00F1*
usb:v0603p00F2*
ID_MODEL_FROM_DATABASE=Keyboard (Labtec Ultra Flat Keyboard)
usb:v0603p1002*
ID_MODEL_FROM_DATABASE=Mobius actioncam (webcam mode)
usb:v0603p6871*
ID_MODEL_FROM_DATABASE=Mouse
@ -28415,6 +28691,24 @@ usb:v06BCp015E*
usb:v06BCp01C9*
ID_MODEL_FROM_DATABASE=OKI B430 Mono Printer
usb:v06BCp01DB*
ID_MODEL_FROM_DATABASE=MC860 Multifunction Printer
usb:v06BCp01DC*
ID_MODEL_FROM_DATABASE=MC860 Multifunction Printer
usb:v06BCp01DD*
ID_MODEL_FROM_DATABASE=MC860 Multifunction Printer
usb:v06BCp01DE*
ID_MODEL_FROM_DATABASE=MC860 Multifunction Printer
usb:v06BCp01DF*
ID_MODEL_FROM_DATABASE=CX2633 Multifunction Printer
usb:v06BCp01E0*
ID_MODEL_FROM_DATABASE=ES8460 Multifunction Printer
usb:v06BCp020B*
ID_MODEL_FROM_DATABASE=OKI ES4140 Mono Printer
@ -61010,6 +61304,24 @@ usb:v1DE1pC101*
usb:v1DE6*
ID_VENDOR_FROM_DATABASE=MICRORISC s.r.o.
usb:v1DF7*
ID_VENDOR_FROM_DATABASE=SDRplay
usb:v1DF7p2500*
ID_MODEL_FROM_DATABASE=RSP1
usb:v1DF7p3000*
ID_MODEL_FROM_DATABASE=RSP1a
usb:v1DF7p3010*
ID_MODEL_FROM_DATABASE=RSP2/RSP2pro
usb:v1DF7p3020*
ID_MODEL_FROM_DATABASE=RSPduo
usb:v1DF7p3030*
ID_MODEL_FROM_DATABASE=RSPdx
usb:v1E0E*
ID_VENDOR_FROM_DATABASE=Qualcomm / Option

View File

@ -122,8 +122,11 @@ usb:v04F3p0C30*
usb:v04F3p0C31*
usb:v04F3p0C32*
usb:v04F3p0C33*
usb:v04F3p0C3D*
usb:v04F3p0C42*
usb:v04F3p0C4D*
usb:v04F3p0C4F*
usb:v04F3p0C63*
ID_AUTOSUSPEND=1
# Supported by libfprint driver etes603
@ -137,6 +140,11 @@ usb:v27C6p60A2*
usb:v27C6p63AC*
usb:v27C6p639C*
usb:v27C6p6594*
usb:v27C6p6A94*
ID_AUTOSUSPEND=1
# Supported by libfprint driver nb1010
usb:v298Dp1010*
ID_AUTOSUSPEND=1
# Supported by libfprint driver synaptics
@ -148,6 +156,8 @@ usb:v06CBp00FC*
usb:v06CBp00C2*
usb:v06CBp00C9*
usb:v06CBp0100*
usb:v06CBp00F0*
usb:v06CBp0103*
ID_AUTOSUSPEND=1
# Supported by libfprint driver upeksonly
@ -208,7 +218,6 @@ usb:v04F3p036B*
usb:v04F3p0C00*
usb:v04F3p0C4B*
usb:v04F3p0C4C*
usb:v04F3p0C4F*
usb:v04F3p0C57*
usb:v04F3p0C5E*
usb:v04F3p2706*

View File

@ -55,6 +55,14 @@ usb:v0627p0001:*QEMU USB Mouse*
usb:v0627p0001:*QEMU USB Tablet*
ID_AUTOSUSPEND=1
#########################################
# Sierra Wireless
#########################################
# Sierra Wireless EM7345 4G LTE modem
usb:v1199pA001*
ID_AUTOSUSPEND=1
#########################################
# Wacom
#########################################

View File

@ -384,7 +384,7 @@ evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
# Dell Latitude privacy microphone mute
evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
KEYBOARD_KEY_12001=f20 # Mic mute toggle, should be micmute
KEYBOARD_KEY_120001=f20 # Mic mute toggle, should be micmute
###########################################################
# Everex
@ -625,9 +625,9 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPEliteBook*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBook*:*
# HP ProBook 440 G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP440G2:*
# several HP ProBooks 4xx
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*ProBook4*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHP*ProBook*4*:*
# HP ProBook
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*ProBook*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHP*ProBook*:*
# HP ZBook
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBook*:*
@ -684,6 +684,21 @@ evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*ProBook*645*G4*:*
KEYBOARD_KEY_73=slash # Slash key
KEYBOARD_KEY_f8=wlan # Wireless HW switch button
# HP ProBook 455 G5
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*ProBook*455*G5*:*
KEYBOARD_KEY_85=unknown # lid close; also reported via special evdev
KEYBOARD_KEY_f8=wlan # Wireless HW switch button
# HP mt44 Mobile Thin Client
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*mt44*Mobile*Thin*Client*:*
KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
KEYBOARD_KEY_6d=displaytoggle # Display icon
KEYBOARD_KEY_66=connect # Pickup phone button → connect → XF86Go
KEYBOARD_KEY_65=cancel # Hangup phone button → cancel → Cancel
KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
KEYBOARD_KEY_85=unknown # lid close; also reported via special evdev
KEYBOARD_KEY_f8=wlan # Wireless HW switch button
# HP Stream 7
# The ACPI tables contains a gpio-keys entry for a non connected GPIO
# causing spurious events, map this to unknown to disable it
@ -863,6 +878,10 @@ evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:*
KEYBOARD_KEY_ae=!volumedown
KEYBOARD_KEY_b0=!volumeup
evdev:atkbd:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
KEYBOARD_KEY_62=unknown # Touchpad on, also emitted by "Ideapad extra buttons", ignore
KEYBOARD_KEY_63=unknown # Touchpad off, also emitted by "Ideapad extra buttons", ignore
# Fix for volume keys on Lenovo Yoga S940
# For 10th gen it should be pn81Q8 instead of pn81Q7 but
# I don't have a device to test
@ -896,6 +915,10 @@ evdev:input:b0003v04B3p301B*
KEYBOARD_KEY_90007=mail
KEYBOARD_KEY_90008=www
# Lenovo Ideapad D330-10IGM
evdev:name:SIPODEV Lenovo HID Device:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
KEYBOARD_KEY_70073=f21 # Fn+Supr (Touchpad toggle)
###########################################################
# Logitech
@ -1236,7 +1259,7 @@ evdev:input:b0003v1532p0200*
KEYBOARD_KEY_c01cb=down # zoomout
###########################################################
# Micro Star
# MSI (aka "Micro Star")
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*:*
@ -1275,24 +1298,19 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*PR200*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnU90/U100:*
KEYBOARD_KEY_e4=reserved
# MSI Prestige15 A10SC specific keycodes. Needed for microphone and screen rotation
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*A10SC*:*
KEYBOARD_KEY_f1=f20
KEYBOARD_KEY_f2=f21
# MSI Modern series
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-StarInternational*:pnModern*:*
KEYBOARD_KEY_f1=f20 # Fn+F5 micmute
KEYBOARD_KEY_76=f21 # Fn+F4 touchpad, becomes meta+ctrl+toggle
# Keymaps MSI Prestige And MSI Modern FnKeys and Special keys
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Prestige*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
KEYBOARD_KEY_56=backslash # Secondary backslash key
KEYBOARD_KEY_f1=f20 # Fn+F5 Micmute
KEYBOARD_KEY_76=f21 # Fn+F4 Toggle touchpad, sends meta+ctrl+toggle
KEYBOARD_KEY_91=prog1 # Fn+F7 Creation Center, sometime F7
KEYBOARD_KEY_f2=prog2 # Fn+F12 screen rotation
KEYBOARD_KEY_97=unknown # lid close
KEYBOARD_KEY_98=unknown # lid open
#Fn+PrntScr sends meta+shif+s
###########################################################
# MSI
###########################################################
KEYBOARD_KEY_f2=prog2 # Fn+F12 Screen rotation
KEYBOARD_KEY_8d=prog3 # Fn+A Change True Color selections
KEYBOARD_KEY_8c=prog4 # Fn+Z Launch True Color
KEYBOARD_KEY_f5=fn_esc # Fn+esc Toggle the behaviour of Fn keys
KEYBOARD_KEY_97=unknown # Lid close
KEYBOARD_KEY_98=unknown # Lid open
evdev:name:MSI Laptop hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnM[iI][cC][rR][oO]-S[tT][aA][rR]*:*
KEYBOARD_KEY_0213=f22

View File

@ -150,6 +150,7 @@ sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LJ:*
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP500LAB:*
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP500LB:*
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP550LA:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LD:*
@ -344,6 +345,14 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnEVE*:pnEveV:*
sensor:modalias:acpi:KIOX010A*:dmi:*:svnGEO*:pnGeoFlex*:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, 1
#########################################
# Glavey
#########################################
# Glavey TM800A550L
sensor:modalias:acpi:KXCJ9000*:dmi:*:bvrZY-8-BI-PX4S70VTR400-X423B-005-D:*:rvnAMICorporation:rnAptioCRB:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################
# Google Chromebooks
#########################################
@ -468,6 +477,12 @@ sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:*:svnjumper:pnEZpad
sensor:modalias:acpi:KIOX000A*:dmi:bvnINSYDECorp.:bvrVISION.I22K*:svnKAZAM:pnVISION:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
# KD / Kurio
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*:svnKDInteractive:pnKurioSmart:*:rnKDM960BCP:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
#########################################
# Lamina
#########################################
@ -497,9 +512,8 @@ sensor:modalias:acpi:BMA250E*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-1030:*
sensor:modalias:acpi:SMO8500*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-830:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
# IdeaPad D330 and D330-10IGM
sensor:modalias:acpi:BOSC0200*:dmi:*:svnLENOVO:pn81H3:*
sensor:modalias:acpi:BOSC0200*:dmi:*:svnLENOVO:*:cvrLenovoideapadD330-10IGM:*
# IdeaPad D330-10IGM (both 81H3 and 81MD product names)
sensor:modalias:acpi:BOSC0200*:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
# IdeaPad Miix 300
@ -523,6 +537,16 @@ sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80XE:*
sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80U1:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# Yoga 300-11IBR, display sensor
sensor:modalias:acpi:DUAL250E*:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
ACCEL_LOCATION=display
# Yoga 300-11IBR, base sensor
sensor:modalias:i2c:bmc150_accel:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, -1
ACCEL_LOCATION=base
#########################################
# LINX
#########################################
@ -536,6 +560,13 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnLINX*:pnLINX12*64:*
sensor:modalias:acpi:KIOX000A*:dmi:*:svnLINX:pnVISION004:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
# Mediacom
#########################################
# Mediacom Winpad 7.0 W700
sensor:modalias:acpi:BMA250*:dmi:*svnMEDIACOM*:pnWinPad7W10-WPW700:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
# Medion
#########################################
@ -648,6 +679,11 @@ sensor:modalias:acpi:SMO8500*:dmi:bvnAmericanMegatrendsInc.:bvr5.6.5:bd07/25/201
sensor:modalias:acpi:BOSC0200*:dmi:*svnONE-NETBOOKTECHNOLOGYCO*:pnOne-Mix3Pro:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
# One-netbook OneMix 3s
# OneMix 3s has no product name filled, matching entire dmi-alias
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.12:bd07/17/2019:br5.12:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnDefaultstring:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################
# Peaq
#########################################
@ -735,6 +771,14 @@ sensor:modalias:acpi:KIOX020A*:dmi:*:svnTECLAST:pnF6Pro:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
ACCEL_LOCATION=base
# Teclast Tbook 11 (E5A6)
sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnTbooK11:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
# Teclast X4 2-in-1 (G4M6)
sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnX4:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
# Teclast X80 Plus (H5C5)
sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnDefaultstring:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
@ -767,6 +811,10 @@ sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr5.6.5:bd04/15/201
# Toshiba
#########################################
# Toshiba Encore WT8-B tablet
sensor:modalias:acpi:INVN6500*:dmi:*:svnTOSHIBA:pnTOSHIBAENCORE2WT8-B:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# Toshiba Encore WT10A tablet
sensor:modalias:acpi:INVN6500*:dmi:*:svnTOSHIBA:pnTOSHIBAWT10-A-103:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

View File

@ -666,6 +666,10 @@ mouse:bluetooth:v0000p0000:name:Surface Mouse:*
mouse:usb:v045ep0823:name:Microsoft Microsoft?? Classic IntelliMouse??:*
MOUSE_DPI=3200@1000
# Microsoft Pro Intellimouse
mouse:usb:v045ep082a:name:Microsoft Microsoft Pro Intellimouse Mouse:*
MOUSE_DPI=1600@1000
##########################################
# Mionix
##########################################

File diff suppressed because it is too large Load Diff

View File

@ -105,6 +105,9 @@
<tr class="odd"><td>Juniper Systems, Inc.</td><td>JSYS</td><td>03/18/2021</td> </tr>
<tr class="even"><td>Framework Computer LLC</td><td>FRMW</td><td>03/22/2021</td> </tr>
<tr class="odd"><td>Pensando Systems, Inc.</td><td>PNSO</td><td>03/24/2021</td> </tr>
<tr class="even"><td>Dynabook Inc.</td><td>DNBK</td><td>06/01/2021</td> </tr>
<tr class="odd"><td>Dioo Microcircuits Co., Ltd. Jiangsu</td><td>DIOO</td><td>06/04/2021</td> </tr>
<tr class="even"><td>Purism SPC</td><td>PURI</td><td>06/10/2021</td> </tr>
</tbody>
</table>
</body>

File diff suppressed because it is too large Load Diff

View File

@ -890,9 +890,6 @@ C00000-CFFFFF (base 16) Privacy Labs
Bellevue WA 98004
US
98-6D-35 (hex) Private
900000-9FFFFF (base 16) Private
3C-42-7E (hex) Starloop Tech Co., Ltd.
200000-2FFFFF (base 16) Starloop Tech Co., Ltd.
#643, Meinian Plaza A
@ -1583,12 +1580,6 @@ E00000-EFFFFF (base 16) Domotz Ltd
Gilching 82205
DE
04-71-4B (hex) uAvionix Corporation
100000-1FFFFF (base 16) uAvionix Corporation
380 Portage Ave.
Palo Alto CA 94306
US
04-71-4B (hex) Energport Inc
800000-8FFFFF (base 16) Energport Inc
48660 Kato Road
@ -4049,12 +4040,6 @@ FC-CD-2F (hex) Ningbo Bull Digital Technology Co., LTD
Cixi City Zhejiang 315314
CN
FC-CD-2F (hex) QCTEK CO.,LTD.
500000-5FFFFF (base 16) QCTEK CO.,LTD.
6F., No.496, Bannan Rd., Zhonghe Dist., New Taipei City 235, Taiwan (R.O.C.)
New Taipei City New Taipei City 235
TW
58-95-D8 (hex) Loftie
900000-9FFFFF (base 16) Loftie
26 Grove St, Apt. 5C
@ -4439,24 +4424,192 @@ C8-F5-D6 (hex) EVOTOR LLC
Moscow 119021
RU
C0-FB-F9 (hex) Dongguan Chuan OptoElectronics Limited
200000-2FFFFF (base 16) Dongguan Chuan OptoElectronics Limited
No.43 Songshui Road,Songmushan Village, Dalang Town
Dongguan Guangdong 523795
CN
C0-FB-F9 (hex) IVT corporation
600000-6FFFFF (base 16) IVT corporation
5/F, Zhongguancun Fazhan Building, No 12, Shangdi Xinxi Road, Haidian District, Beijing, 100085, P.R. CHINA
Beijing 100085
CN
C0-FB-F9 (hex) Dongguan Chuan OptoElectronics Limited
200000-2FFFFF (base 16) Dongguan Chuan OptoElectronics Limited
No.43 Songshui Road,Songmushan Village, Dalang Town
Dongguan Guangdong 523795
CN
18-74-E2 (hex) HANGZHOU ZHOUJU ELECTRONIC TECHNOLOGICAL CO.,LTD
500000-5FFFFF (base 16) HANGZHOU ZHOUJU ELECTRONIC TECHNOLOGICAL CO.,LTD
Floor 6,A Building, Xianxing Road NO.32,Xianlin Town,Yuhang District
Hangzhou Zhejiang 311122
CN
18-74-E2 (hex) Shenzhen Jooan Technology Co., Ltd
B00000-BFFFFF (base 16) Shenzhen Jooan Technology Co., Ltd
Area B, Floor 101-2, Floor 3, Floor 5 and Floor 6 of area B, Building No. 8, Guixiang Community Plaza Road, Guanlan Street, Longhua District, Shenzhen.
Shenzhen Guangdong 518000
CN
18-74-E2 (hex) Beijing Jrunion Technology Co., Ltd.
600000-6FFFFF (base 16) Beijing Jrunion Technology Co., Ltd.
Room 01, 2nd Floor, Building 8, Yuquanhuigu, No. 3, Minzhuang Road, Haidian District
Beijing Beijing 100195
CN
18-74-E2 (hex) SHENZHEN AORO COMMUNICATION EQUIPMENT CO., LTD
900000-9FFFFF (base 16) SHENZHEN AORO COMMUNICATION EQUIPMENT CO., LTD
ROOM 302, 3RD FLOOR BUILDING A9, NO.6 YUANCHUANGYUAN,FUHUA ROAD, JUTANG COMMUNITY, FUCHENG STREET, LONGHUA DISTRICT
SHENZHEN GUANGDONG 518110
CN
18-74-E2 (hex) Shenzhen WITSTECH Co.,Ltd.
200000-2FFFFF (base 16) Shenzhen WITSTECH Co.,Ltd.
5D4, Block CD, Tianji Building, Tian'an Digital City, Futian District, Shenzhen
Shenzhen Guangdong?China 518040
CN
FC-CD-2F (hex) QCTEK CO.,LTD.
500000-5FFFFF (base 16) QCTEK CO.,LTD.
6F-1., No.496, Bannan Rd., Zhonghe Dist.,
New Taipei City New Taipei City 235
TW
E8-78-29 (hex) FAIOT Co., LTD
700000-7FFFFF (base 16) FAIOT Co., LTD
Room 1101, Building 23, No.1999 Yishan Road, Minhang District
Shanghai 200233
CN
E8-78-29 (hex) JVISMall CO.,LTD
800000-8FFFFF (base 16) JVISMall CO.,LTD
Rm903, BY B/D, Seogang-ro133, Mapo Gu
Seoul 04058
KR
E8-78-29 (hex) Annapurna labs
400000-4FFFFF (base 16) Annapurna labs
Matam Scientific Industries Center, Building 8.2
Mail box 15123 Haifa 3508409
IL
78-13-05 (hex) LEAFF ENGINEERING SRL
200000-2FFFFF (base 16) LEAFF ENGINEERING SRL
Via Pastore 10
Osimo AN 60027
IT
78-13-05 (hex) Brigates Microelectronics Co., Ltd.
C00000-CFFFFF (base 16) Brigates Microelectronics Co., Ltd.
2007,Building 7, No. 1588 Chuangye Road
Kunshan Jiangsu 215300
CN
78-13-05 (hex) Shanghai Siminics Optoelectronic Technology Co., Ltd
D00000-DFFFFF (base 16) Shanghai Siminics Optoelectronic Technology Co., Ltd
Room 9, Building 15, Huatai Center Jinyun Rd
Shanghai 201803
CN
A8-5B-36 (hex) Shenzhen Dandelion Intelligent Cloud Technology Development Co., LTD
300000-3FFFFF (base 16) Shenzhen Dandelion Intelligent Cloud Technology Development Co., LTD
1101, 1102, 1103, 1108A, Building E, Phase II, Galaxy WORLD, Minle Community, Minzhi Street, Longhua District
Shenzhen Guangdong 518100
CN
98-6D-35 (hex) Advanced Diagnostics LTD
900000-9FFFFF (base 16) Advanced Diagnostics LTD
Diagnostics House, Eastboro Fields, Hemdale
Nuneaton Warwickshire CV116GL
GB
78-13-05 (hex) microtec Sicherheitstechnik GmbH
300000-3FFFFF (base 16) microtec Sicherheitstechnik GmbH
Auf der Langwies 20
Hünstetten 65510
DE
A8-5B-36 (hex) ATER Technologies Co Ltd
C00000-CFFFFF (base 16) ATER Technologies Co Ltd
Floor 5,Building 1,HongYe Industry Park,Baoan district
Shenzhen Guangdong 518100
CN
A8-5B-36 (hex) Loomanet Inc.
200000-2FFFFF (base 16) Loomanet Inc.
900 Lafayette St. Suite 704
Santa Clara CA 95050
US
F0-2A-2B (hex) Comexio GmbH
C00000-CFFFFF (base 16) Comexio GmbH
Eisenberger Straße 56a
Kerzenheim 67304
DE
A8-5B-36 (hex) JUGANU LTD
500000-5FFFFF (base 16) JUGANU LTD
Yehadut Canada St. 1
Or Yehuda Israel 6037501
IL
F0-2A-2B (hex) Frigotel SRL
300000-3FFFFF (base 16) Frigotel SRL
Via Trezza, 49
San Donà di Piave 30027
IT
44-A9-2C (hex) ZHEJIANG HISING TECHNOLOGY CO.,LTD
000000-0FFFFF (base 16) ZHEJIANG HISING TECHNOLOGY CO.,LTD
Room 201 and 202,Building 5,328 Pingjiang Road,Yuecheng District,Shaoxing
Shaoxing Zhejiang 312000
CN
44-A9-2C (hex) Anhui Zhongxin Electronic Technology Co., Ltd.
200000-2FFFFF (base 16) Anhui Zhongxin Electronic Technology Co., Ltd.
South Head, No.11, Building 2, Huayuan Commercial Building,6km, Changqing Township, Yuhui District, Bengbu City,Anhui Province
Bengbu Anhui 233010
CN
44-A9-2C (hex) Ningbo joyson new energy automotive technology Co.,Ltd
600000-6FFFFF (base 16) Ningbo joyson new energy automotive technology Co.,Ltd
No.1266 Juxian Road, Hi-Tech Park
Ningbo Zhejiang 315000
CN
44-A9-2C (hex) Amethystum Storage Technology Co., Ltd
B00000-BFFFFF (base 16) Amethystum Storage Technology Co., Ltd
Guangzhou(Meizhou) Industry Transfer Zone,
Meizhou Guangdong 514079
CN
44-A9-2C (hex) RT-Systemtechnik GmbH
800000-8FFFFF (base 16) RT-Systemtechnik GmbH
Jacksonring 4
Rheine 48429
DE
58-48-49 (hex) X-speed lnformation Technology Co.,Ltd
200000-2FFFFF (base 16) X-speed lnformation Technology Co.,Ltd
th Floor,Building 2,Xinyu Electronic Industrial Park,No.69, Zhaishan,Houshan Village, High-tech Zone,Fuzhou,Fujian ,China
Fuzhou 350000
CN
64-33-B5 (hex) Adesso, Inc
200000-2FFFFF (base 16) Adesso, Inc
20659 Valley Boulevard
Walnut CA 91789
US
64-33-B5 (hex) Geksacon
C00000-CFFFFF (base 16) Geksacon
revolutionary street
Ufa Republic of Bashkortostan 450005
RU
04-71-4B (hex) uAvionix Corporation
100000-1FFFFF (base 16) uAvionix Corporation
300 Pine Needle Lane
Bigfork MT 59911
US
4C-4B-F9 (hex) Shenzhen dingsheng technology co., LTD
400000-4FFFFF (base 16) Shenzhen dingsheng technology co., LTD
Floor 3, building 5, kaijeda industrial zone, no.97, huaxing road, langkou community, dalang street, longhua district
@ -8567,12 +8720,6 @@ D0-9F-D9 (hex) Raymax Technology Ltd.
Hangzhou China 310012
CN
D0-9F-D9 (hex) Queclink Wireless Solutions Co., Ltd.
800000-8FFFFF (base 16) Queclink Wireless Solutions Co., Ltd.
No.30, Lane 500, Xinlong Road, Minhang District
Shanghai 201101
CN
D0-9F-D9 (hex) Fujian Newland Auto-ID Tech. Co,.Ltd.
C00000-CFFFFF (base 16) Fujian Newland Auto-ID Tech. Co,.Ltd.
Newland Science & Technology Park, No.1 Rujiang West Rd,Mawei,Fuzhou, P.R.China
@ -8585,12 +8732,90 @@ D0-9F-D9 (hex) Lemei Intelligent IOT (Shenzhen) Co., Ltd
Shenzhen Guangdong 518000
CN
D0-9F-D9 (hex) Queclink Wireless Solutions Co., Ltd.
800000-8FFFFF (base 16) Queclink Wireless Solutions Co., Ltd.
No.30, Lane 500, Xinlong Road, Minhang District
Shanghai 201101
CN
18-74-E2 (hex) Kano Computing Limited
800000-8FFFFF (base 16) Kano Computing Limited
Unit 12.1 - 12.2, 11-29 Fashion Street
London E1 6PX
GB
78-13-05 (hex) Equipmentshare.com Inc
700000-7FFFFF (base 16) Equipmentshare.com Inc
5710 Bull Run Dr
Columbia MO 65201
US
A8-5B-36 (hex) TAIDEN INDUSTRIAL CO.,LTD
A00000-AFFFFF (base 16) TAIDEN INDUSTRIAL CO.,LTD
6/F, Block B, Future Plaza, 6060 Qiaoxiang Rd, Nanshan District
Shenzhen Guangdong 518053
CN
F0-2A-2B (hex) ZiGong Pengcheng Technology Co.,Ltd
900000-9FFFFF (base 16) ZiGong Pengcheng Technology Co.,Ltd
80?Longxiang Road?Yantan District
ZiGong SiChuan 643221
CN
A8-5B-36 (hex) Luoxian (Guandong) Technology Co., Ltd
400000-4FFFFF (base 16) Luoxian (Guandong) Technology Co., Ltd
4th floor,building 4,European Industrial Park,60 Longbao West Road,Zhangcha Town
FoShan Guandong 528051
CN
A8-5B-36 (hex) Avista Edge
900000-9FFFFF (base 16) Avista Edge
12 N Sheridan St
Spokane WA 99202
US
F0-2A-2B (hex) Protronix s.r.o.
700000-7FFFFF (base 16) Protronix s.r.o.
Pardubická 177
Chrudim 537 01
CZ
F0-2A-2B (hex) Tobi Tribe Inc.
100000-1FFFFF (base 16) Tobi Tribe Inc.
45945 Trefoil Ln #157
Sterling VA 20166
US
58-48-49 (hex) Shenzhen hongqifu Technology Co., Ltd
600000-6FFFFF (base 16) Shenzhen hongqifu Technology Co., Ltd
1003-1004, building B, Shenye century industrial center, NO743, Zhoushi Road, Hezhou community, Hangcheng street, Bao'an District
Shenzhen 518126
CN
58-48-49 (hex) Shandong Aotai Electric Co., LTD.
700000-7FFFFF (base 16) Shandong Aotai Electric Co., LTD.
282 Bole Avenue, High-tech Development Zone Shandong P.R. China
Jinan Shandong 250101
CN
58-48-49 (hex) Daatrics LTD
B00000-BFFFFF (base 16) Daatrics LTD
4th Floor, 86-90 Paul Street
LONDON EC2A 4NE
GB
64-33-B5 (hex) Duomondi International Development Co., Ltd.
000000-0FFFFF (base 16) Duomondi International Development Co., Ltd.
Unit D 19/F Roxy Industry Center 59-66 Tai Lin Pai
Kwai Chung NT 999077
HK
64-33-B5 (hex) University of Texas at Austin
E00000-EFFFFF (base 16) University of Texas at Austin
1 University Station C3800
Austin TX 78713-7407
US
20-85-93 (hex) UNILUMIN GROUP CO.,LTD
300000-3FFFFF (base 16) UNILUMIN GROUP CO.,LTD
No.112 Yongfu Rd.,BaoanDistrict,
@ -12866,6 +13091,12 @@ C0-FB-F9 (hex) SHENZHEN HEQIANG ELECTRONICS LIMITED
SHENZHEN GUANGDONG 518129
CN
D0-9F-D9 (hex) elecgator bvba
100000-1FFFFF (base 16) elecgator bvba
Heerbaan, 308
Beringen Limburg 3582
BE
D0-9F-D9 (hex) Carbon Mobile GmbH
500000-5FFFFF (base 16) Carbon Mobile GmbH
Winterfeldtstr. 21
@ -12878,12 +13109,6 @@ D0-9F-D9 (hex) ENTTEC Pty Ltd.
ringwood vic 3134
AU
D0-9F-D9 (hex) elecgator bvba
100000-1FFFFF (base 16) elecgator bvba
Heerbaan, 308
Beringen Limburg 3582
BE
D0-9F-D9 (hex) Minibems Ltd
E00000-EFFFFF (base 16) Minibems Ltd
Oxford Point, 19 Oxford Road
@ -12896,6 +13121,204 @@ D00000-DFFFFF (base 16) Merlyn Mind, Inc.
New York NY 10174
US
18-74-E2 (hex) G&O Audio Co.,LTD
E00000-EFFFFF (base 16) G&O Audio Co.,LTD
3005, No.15-3, Haitian Road, Building C, N23 Excellence Times Square, Haiwang Community, Xin 'an Street, Bao 'an District
Shenzhen 518000
CN
E8-78-29 (hex) Tanz Security Technology Ltd.
000000-0FFFFF (base 16) Tanz Security Technology Ltd.
11F., No. 203 Zhonghua 1st. road, Gushan District
Kaohsiung 80455
TW
E8-78-29 (hex) Electronic Controlled Systems, Inc.
300000-3FFFFF (base 16) Electronic Controlled Systems, Inc.
11200 Hampshire Ave South
Bloomington MN 55438
US
E8-78-29 (hex) AXING AG
600000-6FFFFF (base 16) AXING AG
Gewerbehaus Moskau
Ramsen 8262
CH
78-13-05 (hex) Leonardo SpA - Montevarchi
A00000-AFFFFF (base 16) Leonardo SpA - Montevarchi
via DELLA LAMA, 13
Montevarchi AREZZO 52025
IT
78-13-05 (hex) InnoSenT
000000-0FFFFF (base 16) InnoSenT
Am Roedertor 30
Donnersdorf Bavaria 97499
DE
78-13-05 (hex) Global Media Streaming LLC
100000-1FFFFF (base 16) Global Media Streaming LLC
251 Little Falls Drive
Wilmington DE 19808
US
78-13-05 (hex) ATS-CONVERS,LLC
500000-5FFFFF (base 16) ATS-CONVERS,LLC
Yana Fabrittsyusa str. 10
Pskov 180017
RU
78-13-05 (hex) Jiangxi Winsky Intelligence Technology Co., Ltd
400000-4FFFFF (base 16) Jiangxi Winsky Intelligence Technology Co., Ltd
Zhihang road Wutong Ave. Hight tech area Jingdezhen City Jiangxi province PRC.
Jingdezhen Jiangxi 333000
CN
A8-5B-36 (hex) ShangHai SnowLake Technology Co.,LTD.
800000-8FFFFF (base 16) ShangHai SnowLake Technology Co.,LTD.
30/F?Building#4,Si Chuang B?dg,No. 600Tianshan Rd, Changning District ,Shanghai
SHANGHAI SHANGHAI 200050
CN
F0-2A-2B (hex) Navigil Ltd
A00000-AFFFFF (base 16) Navigil Ltd
Karaportti 5
Espoo Uusimaa 02610
FI
A8-5B-36 (hex) Lampyris Plant LLC
B00000-BFFFFF (base 16) Lampyris Plant LLC
st.Arbuzova, 12, office. 201
Novosibirsk 630117
RU
F0-2A-2B (hex) Agile Sports Technologies, dba Hudl
500000-5FFFFF (base 16) Agile Sports Technologies, dba Hudl
600 P St, Suite 400
Lincoln NE 68508
US
F0-2A-2B (hex) Shanghai Armour Technology Co., Ltd.
200000-2FFFFF (base 16) Shanghai Armour Technology Co., Ltd.
Room 411, building 10, 471 Guiping Road, Xuhui District
Shanghai Shanghai 200233
CN
F0-2A-2B (hex) EL.MO. spa
B00000-BFFFFF (base 16) EL.MO. spa
Via Pontarola, 70
Campodarsego Padua I35011
IT
F0-2A-2B (hex) Onclave Networks
400000-4FFFFF (base 16) Onclave Networks
7950 Jones Branch Drive #805
McLean VA 22102
US
F0-2A-2B (hex) Definitely Win Corp.,Ltd.
D00000-DFFFFF (base 16) Definitely Win Corp.,Ltd.
2F., No. 48, Da'an St., Xizhi Dist.,
New Taipei City Taiwan (R.O.C.) 221041
TW
F0-2A-2B (hex) Merlin Security Inc.
000000-0FFFFF (base 16) Merlin Security Inc.
11836 Clark St
Arcadia CA 91006
US
44-A9-2C (hex) Shenzhen Lianfaxun Electronic Technology Co.,Ltd
500000-5FFFFF (base 16) Shenzhen Lianfaxun Electronic Technology Co.,Ltd
No. 25, Tianrong road, Tianliao second industrial park, Yutang street, Guangming new district
Shenzhen Guangdong 518132
CN
44-A9-2C (hex) Digiport OU
A00000-AFFFFF (base 16) Digiport OU
Sepapaja 6
Tallinn Tallinn 15551
EE
44-A9-2C (hex) Cubitech
C00000-CFFFFF (base 16) Cubitech
4-6 Kiprou str
Tavros Athens 17778
GR
58-48-49 (hex) Shenzhen Tongye Technology Co.,Ltd
900000-9FFFFF (base 16) Shenzhen Tongye Technology Co.,Ltd
Meitai Industry Zone, Guanguang Road, Guihua zone, Guanlan street, Longhua District, Shenzhen
Shenzhen 518000
CN
58-48-49 (hex) Hubei Shudi Communication Technology Co., Ltd
500000-5FFFFF (base 16) Hubei Shudi Communication Technology Co., Ltd
11 Lane 2, shuichan street, Huangmei County
Huanggang Hubei 435500
CN
44-A9-2C (hex) Annapurna labs
E00000-EFFFFF (base 16) Annapurna labs
Matam Scientific Industries Center, Building 8.2
Mail box 15123 Haifa 3508409
IL
44-A9-2C (hex) Luxonis Holding Corporation
300000-3FFFFF (base 16) Luxonis Holding Corporation
7901 Shaffer Parkway
Littleton CO 80127
US
58-48-49 (hex) Viper Design LLC
300000-3FFFFF (base 16) Viper Design LLC
154 Cude Ln
Madison TN 37115
US
58-48-49 (hex) SKAARHOJ ApS
100000-1FFFFF (base 16) SKAARHOJ ApS
Rosenkaeret 11C
Soeborg 2860
DK
64-33-B5 (hex) Hometek Eletronics Co., Ltd
A00000-AFFFFF (base 16) Hometek Eletronics Co., Ltd
7F-2 No. 16,Lane 609, Section 5 Chung Hsin Rd. Sanchong District. New Taipei City Taiwan R.O.C.
New Taipei City Taiwan 241
TW
58-48-49 (hex) Avadesign Technology Co. Ltd.
E00000-EFFFFF (base 16) Avadesign Technology Co. Ltd.
4F.-10, No.351, Sec. 2, Zhongshan Rd., Zhonghe Dist.
New Taipei City 23504
TW
58-48-49 (hex) Beijing Zhongyuanyishang Technology Co Ltd
000000-0FFFFF (base 16) Beijing Zhongyuanyishang Technology Co Ltd
Unit 404, 4th Floor, Building 12, Yard 69, Fushi Road, Haidian District, Beijing
Beijing 100000
CN
64-33-B5 (hex) Huaqin Telecom Technology Co.,Ltd.
100000-1FFFFF (base 16) Huaqin Telecom Technology Co.,Ltd.
Building 1,No.399, Keyuan Road, Pudong, Shanghai China
Shanghai 200120
CN
64-33-B5 (hex) Wingtech Mobile Communications Co.,Ltd
300000-3FFFFF (base 16) Wingtech Mobile Communications Co.,Ltd
No.777,Yazhong Road,Nanhu District
Jiaxing Zhejiang 314001
CN
64-33-B5 (hex) IIYAMA CORPORATION
D00000-DFFFFF (base 16) IIYAMA CORPORATION
Wijkermeerstraat 8
Hoofddorp 2131HA
NL
4C-4B-F9 (hex) Shandong Linkotech Electronic Co., Ltd.
600000-6FFFFF (base 16) Shandong Linkotech Electronic Co., Ltd.
22nd Floor, Building 2, Aosheng Building, No.1166 Xinyi Street, High-tech Zone
@ -17072,12 +17495,6 @@ D00000-DFFFFF (base 16) Origins Technology Limited
Beijing 100027
CN
C8-F5-D6 (hex) Shanghai Mo xiang Network Technology CO.,Ltd
900000-9FFFFF (base 16) Shanghai Mo xiang Network Technology CO.,Ltd
Room#418-421, ShaHeXiLi, 2-2 XiLi North Road, LiCheng Community, Xili Street, NanShan District
Shenzhen Guangdong 518071
CN
C8-F5-D6 (hex) United Barcode Systems
B00000-BFFFFF (base 16) United Barcode Systems
Av. Progres 56, Pol. Ind. els Garrofers
@ -17090,6 +17507,12 @@ C00000-CFFFFF (base 16) Eltako GmbH
Fellbach BW 70736
DE
C8-F5-D6 (hex) Shanghai Mo xiang Network Technology CO.,Ltd
900000-9FFFFF (base 16) Shanghai Mo xiang Network Technology CO.,Ltd
Room#418-421, ShaHeXiLi, 2-2 XiLi North Road, LiCheng Community, Xili Street, NanShan District
Shenzhen Guangdong 518071
CN
C0-FB-F9 (hex) SHENZHEN ELSKY TECHNOLOGY CO., LTD
C00000-CFFFFF (base 16) SHENZHEN ELSKY TECHNOLOGY CO., LTD
1F BUILDING 2# ASIA INDUSTIAL PARK BANTIAN STREET LONGGANG DISTRICT
@ -17102,12 +17525,6 @@ D00000-DFFFFF (base 16) Dropbeats Technology Co., Ltd.
Shanghai Shanghai 201203
CN
D0-9F-D9 (hex) Elevoc Technology Co., Ltd.
600000-6FFFFF (base 16) Elevoc Technology Co., Ltd.
5/F,Unit B,Block12,ShenZhenwan Science and Technology Ecological Garden,Nanshan Dist.
Shenzhen Guangdong 518000
CN
D0-9F-D9 (hex) Eurolan Ltd
A00000-AFFFFF (base 16) Eurolan Ltd
jk. Drujba 1, ul. 5028, do bl. 15
@ -17120,11 +17537,11 @@ E0-5A-9F (hex) Fujian Newland Auto-ID Tech. Co,.Ltd.
Fuzhou Fujian 350015
CN
18-74-E2 (hex) NextGen RF Design, Inc.
C00000-CFFFFF (base 16) NextGen RF Design, Inc.
2130 Howard Dr W
North Mankato MN 56003
US
D0-9F-D9 (hex) Elevoc Technology Co., Ltd.
600000-6FFFFF (base 16) Elevoc Technology Co., Ltd.
5/F,Unit B,Block12,ShenZhenwan Science and Technology Ecological Garden,Nanshan Dist.
Shenzhen Guangdong 518000
CN
18-74-E2 (hex) Sartorius Lab Instruments GmbH & Co. KG
100000-1FFFFF (base 16) Sartorius Lab Instruments GmbH & Co. KG
@ -17132,12 +17549,150 @@ C00000-CFFFFF (base 16) NextGen RF Design, Inc.
Goettingen 37079
DE
D0-9F-D9 (hex) Sanken-Densetsu Co.,LTD.
300000-3FFFFF (base 16) Sanken-Densetsu Co.,LTD.
18-74-E2 (hex) NextGen RF Design, Inc.
C00000-CFFFFF (base 16) NextGen RF Design, Inc.
2130 Howard Dr W
North Mankato MN 56003
US
18-74-E2 (hex) Linux Automation GmbH
A00000-AFFFFF (base 16) Linux Automation GmbH
Steuerwalder Str 21
Hildesheim 31137
DE
E8-78-29 (hex) METZ CONNECT GmbH
A00000-AFFFFF (base 16) METZ CONNECT GmbH
Im Tal 2
Blumberg 78176
DE
E8-78-29 (hex) Bernd Walter Computer Technology
D00000-DFFFFF (base 16) Bernd Walter Computer Technology
Fontanestr. 18
Moers NRW 47445
DE
18-74-E2 (hex) Samriddi Automations Pvt. Ltd.
D00000-DFFFFF (base 16) Samriddi Automations Pvt. Ltd.
F-365
Noida up 201307
IN
E8-78-29 (hex) Shenzhen Jointelli Technologies Co.,Ltd
100000-1FFFFF (base 16) Shenzhen Jointelli Technologies Co.,Ltd
Room A4-1203, Building A, Kexing Science Park, No. 15, Keyuan Road,Keyuan Community,Yuehai Street,Nanshan District
Shenzhen Guangdong 518000
CN
78-13-05 (hex) Shenzhen AV-Display Co.,Ltd
800000-8FFFFF (base 16) Shenzhen AV-Display Co.,Ltd
No.39,He Ao Jin Yuan Road, Yuanshan Subdistrict, Longgang District ,Shenzhen, China
SHENZHEN 518000
CN
E8-78-29 (hex) Solos Technology Limited
E00000-EFFFFF (base 16) Solos Technology Limited
Unit 211, 2/F., Photonics Centre, No 2 Science Park East Avenue, Shatin
Hong Kong Hong Kong 999077
HK
78-13-05 (hex) Bithouse Oy
B00000-BFFFFF (base 16) Bithouse Oy
Hepolamminkatu 32
Tampere FI-33720
FI
78-13-05 (hex) CRRC Nangjing Puzhen Haitai Brake Equipment Co., LTD
600000-6FFFFF (base 16) CRRC Nangjing Puzhen Haitai Brake Equipment Co., LTD
No.10 Xinglong Road Pukou Economic Development District
Nanjing Jiangsu 211800
CN
A8-5B-36 (hex) DAP B.V.
600000-6FFFFF (base 16) DAP B.V.
Tussendiepen 4a
Drachten 9206 AD
NL
A8-5B-36 (hex) Bluesoo Tech (HongKong) Co.,Limited
000000-0FFFFF (base 16) Bluesoo Tech (HongKong) Co.,Limited
Room 05, 28 / F, good view business centre, 2-16 Garden Street, Mong Kok, Kowloon, Hongkong.
HongKong 999077
HK
A8-5B-36 (hex) Louis Vuitton Malletier
700000-7FFFFF (base 16) Louis Vuitton Malletier
2 rue du Pont Neuf
Paris 75001
FR
A8-5B-36 (hex) ORBITVU Sp. z o. o.
E00000-EFFFFF (base 16) ORBITVU Sp. z o. o.
Sienkiewicza, 48
Tarnowskie Góry 42-600
PL
F0-2A-2B (hex) Shenzhen ORVIBO Technology Co., Ltd.
600000-6FFFFF (base 16) Shenzhen ORVIBO Technology Co., Ltd.
F7, Block A7, Nanshan I Park, No.1001 XueYuan Avenue , NanShan District, ShenZhen 518055 PRC.
shenzhen 518000
CN
44-A9-2C (hex) China Electronics Corporation Greatwall Shengfeifan information system Co.,ltd. Hu'nan computer R.&D. Center
900000-9FFFFF (base 16) China Electronics Corporation Greatwall Shengfeifan information system Co.,ltd. Hu'nan computer R.&D. Center
China Electronics Software Park,Yuelu District,Changsha City,Hunan Province
Changsha 410013
CN
44-A9-2C (hex) NPP KOMETEH JSC
D00000-DFFFFF (base 16) NPP KOMETEH JSC
Lomanaya 5
Sankt-Petersburg 196006
RU
58-48-49 (hex) Telegaertner Elektronik GmbH
D00000-DFFFFF (base 16) Telegaertner Elektronik GmbH
Hofaeckerstr. 18
Crailsheim Baden-Wuerttemberg 74564
DE
58-48-49 (hex) STACKFORCE GmbH
800000-8FFFFF (base 16) STACKFORCE GmbH
Biengener Str. 3
Eschbach 79427
DE
D0-9F-D9 (hex) GS Yuasa Infrastructure Systems Co.,Ltd.
300000-3FFFFF (base 16) GS Yuasa Infrastructure Systems Co.,Ltd.
677 Shimoakasaka-Ohnohara
Kawagoe-Shi Saitama 350-1155
JP
58-48-49 (hex) SERNET (SUZHOU) TECHNOLOGIES CORPORATION
400000-4FFFFF (base 16) SERNET (SUZHOU) TECHNOLOGIES CORPORATION
NO.8 Tangzhuang Road,Suzhou Industrial Park,Su ZhouCity,JiangSu Province,China
Suzhou 215021
CN
58-48-49 (hex) Haag-Streit AG
C00000-CFFFFF (base 16) Haag-Streit AG
Gartenstadtstrasse 10
Koeniz 3098
CH
64-33-B5 (hex) Revo Smart Technologies co.,limited
500000-5FFFFF (base 16) Revo Smart Technologies co.,limited
RM 1902 EASEY COMM BLDG 253-261 HENNESSY ROAD WANCHAI HK
Hong Kong 999077
CN
28-36-13 (hex) Shenzhen HQVT TECHNOLOGY Co.,LTD
200000-2FFFFF (base 16) Shenzhen HQVT TECHNOLOGY Co.,LTD
3/F,Building 8 ,Taihua Wutong Island,Xixiang,Bao'an District
China Guang Dong 518000
CN
20-85-93 (hex) Great Lite International
700000-7FFFFF (base 16) Great Lite International
11F., No.207-2, Sec. 3, Beixin Rd., Xindian Dist.,
@ -18008,12 +18563,6 @@ B4-4B-D6 (hex) ShenZhen Comstar Technology Company
Shenzhen Guangdong 518040
CN
B4-4B-D6 (hex) Shenzhen Cudy Technology Co., Ltd.
200000-2FFFFF (base 16) Shenzhen Cudy Technology Co., Ltd.
The Great Wall Building,No3 Kefa Road
Shenzhen Guangdong 518000
CN
B4-4B-D6 (hex) ELLETA SOLUTIONS LTD
D00000-DFFFFF (base 16) ELLETA SOLUTIONS LTD
Yetsi'at Eropa Street 20
@ -21443,12 +21992,6 @@ C8-F5-D6 (hex) MEIRYO TECHNICA CORPORATION
Owariasahi-city Aichi 488-0052
JP
C0-FB-F9 (hex) Minato Advanced Technologies inc
400000-4FFFFF (base 16) Minato Advanced Technologies inc
4105, Minami Yamata-cho, Tsuzuki-ku,
YOKOHAMA Kanagawa 224-0026
JP
C0-FB-F9 (hex) LongSung Technology (Shanghai) Co.,Ltd.
700000-7FFFFF (base 16) LongSung Technology (Shanghai) Co.,Ltd.
Room 606, Block B, Bldg. 1, No. 3000 Longdong Avenue., Zhangjiang Hi-Tech Park, Pudong District
@ -21467,6 +22010,12 @@ C8-F5-D6 (hex) BBPOS International Limited
Hong Kong China 00000
HK
C0-FB-F9 (hex) Minato Advanced Technologies inc
400000-4FFFFF (base 16) Minato Advanced Technologies inc
4105, Minami Yamata-cho, Tsuzuki-ku,
YOKOHAMA Kanagawa 224-0026
JP
88-C9-B3 (hex) Fortive Setra-ICG(Tianjin)Co.,Ltd
300000-3FFFFF (base 16) Fortive Setra-ICG(Tianjin)Co.,Ltd
28 weiwu Road,Micro-electronics Industrial Park,Xiqing District Tianjin,P,R,China
@ -21485,12 +22034,6 @@ C0-FB-F9 (hex) zxsolution
shenzhen 518000
CN
D0-9F-D9 (hex) Westar Display Technologies
200000-2FFFFF (base 16) Westar Display Technologies
4 Research Park Dr
St Charles MO 63304
US
18-74-E2 (hex) Sansec Technology Co.,Ltd
700000-7FFFFF (base 16) Sansec Technology Co.,Ltd
Bejing Chaoyang District Guangshun North Street Hostpital No.16 No.2 building 14 room 1406
@ -21502,3 +22045,153 @@ B00000-BFFFFF (base 16) Cablewireless Laboratory Co., Ltd
Room 218, Block E1, Yuanchenxin Building, 12 Yumin Road, Chaoyang District
Beijing 100029
CN
D0-9F-D9 (hex) Westar Display Technologies
200000-2FFFFF (base 16) Westar Display Technologies
4 Research Park Dr
St Charles MO 63304
US
18-74-E2 (hex) CT Company
300000-3FFFFF (base 16) CT Company
Godovikova , 9, Moscow
Moscow RUSSIA 129085
RU
18-74-E2 (hex) Ensor AG
000000-0FFFFF (base 16) Ensor AG
Riedstrasse 11
Cham Zug CH - 6330
CH
E8-78-29 (hex) Ryu Tech. LTD
900000-9FFFFF (base 16) Ryu Tech. LTD
No.10 Lane 369,Yuan Taung Rd.JhoneHe City
Taipei Taiwan,R.O.C 235
TW
E8-78-29 (hex) Galcon
200000-2FFFFF (base 16) Galcon
Kfar Blum israel
Kfar Blum Israel 121500
IL
18-74-E2 (hex) Private
400000-4FFFFF (base 16) Private
E8-78-29 (hex) SHEN ZHEN SKYSI WISDOM TECHNOLOGY CO.,LTD.
500000-5FFFFF (base 16) SHEN ZHEN SKYSI WISDOM TECHNOLOGY CO.,LTD.
Room 1106,11th floor, National Technology Building, no. 109, Baoshen Road, Songpingshan community, Xili Street, Nanshan district, Shenzhen City
SHENZHEN GUANGDONG 518000
CN
E8-78-29 (hex) FairPhone B.V.
C00000-CFFFFF (base 16) FairPhone B.V.
VanDiemenstraat 200
Amsterdam 1013 CP
NL
E8-78-29 (hex) Private
B00000-BFFFFF (base 16) Private
B4-4B-D6 (hex) Shenzhen Cudy Technology Co., Ltd.
200000-2FFFFF (base 16) Shenzhen Cudy Technology Co., Ltd.
Room A606, Gaoxinqi Industrial Park, Baoan 67 Dist
Baoan 67 District, Shenzhen 518101
CN
A8-5B-36 (hex) PARMA LLC
100000-1FFFFF (base 16) PARMA LLC
Leninsky Prospekt, 140, lit A, room 15N
Saint Petersburg Saint Petersburg 198216
RU
78-13-05 (hex) Shenzhen C & D Electronics Co., Ltd.
900000-9FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
ShenZhen GuangDong 518000
CN
78-13-05 (hex) Dongguan zhenxing electronic technology co.,limited
E00000-EFFFFF (base 16) Dongguan zhenxing electronic technology co.,limited
GuangMingGang JinJun road 8#
DonggUAN 523768
CN
A8-5B-36 (hex) Adam Hall GmbH
D00000-DFFFFF (base 16) Adam Hall GmbH
Adam-Hall-Str. 1
Neu-Anspach Hessen 61267
DE
F0-2A-2B (hex) Tenways Engineering Service Ltd
800000-8FFFFF (base 16) Tenways Engineering Service Ltd
85 Kenilworth Road
Edgware Middlesex HA8 8XA
GB
44-A9-2C (hex) uimcom
100000-1FFFFF (base 16) uimcom
Yingying building, 99 Tuanjie Road, Pukou District, Nanjing
nanjing 211800
CN
F0-2A-2B (hex) Shenzhen CUCO Technology Co., Ltd
E00000-EFFFFF (base 16) Shenzhen CUCO Technology Co., Ltd
Room 201, 301, Building A, No.12, Difu Road, Guxing Community, Xixiang Street, Baoan District
Shenzhen Guangdong 418000
CN
44-A9-2C (hex) NetX Networks a.s.
400000-4FFFFF (base 16) NetX Networks a.s.
Palackeho trida 811/112
Brno Czech Republic 62100
CZ
44-A9-2C (hex) Efficient Building Automation Corp.
700000-7FFFFF (base 16) Efficient Building Automation Corp.
Unit 1004 - 7495 132nd Street
Surrey British Columbia V3W1J8
CA
58-48-49 (hex) Waoo
A00000-AFFFFF (base 16) Waoo
True Møllevej 9
Tilst Aarhus Municipallity 8381
DK
64-33-B5 (hex) ABB Electrification Smart Power (ELSP)
700000-7FFFFF (base 16) ABB Electrification Smart Power (ELSP)
PVT. BAG 92609, SYMONDS STREET
Auckland 1150
NZ
64-33-B5 (hex) LACO Technologies
800000-8FFFFF (base 16) LACO Technologies
3085 W Directors Row
Salt Lake City UT 84104
US
64-33-B5 (hex) electroCore Inc.
B00000-BFFFFF (base 16) electroCore Inc.
205 Forge Way
Rockaway NJ 07866
US
64-33-B5 (hex) Eagle Eye Networks, Inc
400000-4FFFFF (base 16) Eagle Eye Networks, Inc
4611 Bee Cave Rd Suite 200
austin TX 78746
US
64-33-B5 (hex) MICROIT SRL
600000-6FFFFF (base 16) MICROIT SRL
Via Galileo Galilei 1
Medolla MODENA 41036
IT
64-33-B5 (hex) Annapurna labs
900000-9FFFFF (base 16) Annapurna labs
Matam Scientific Industries Center, Building 8.2
Mail box 15123 Haifa 3508409
IL

View File

@ -5147,6 +5147,132 @@ A14000-A14FFF (base 16) aelettronica group srl
Gothenburg Västra Götaland 41250
SE
70-B3-D5 (hex) Vendanor AS
D0B000-D0BFFF (base 16) Vendanor AS
Grandevegen 13
Stryn 6783
NO
70-B3-D5 (hex) Tinkerforge GmbH
509000-509FFF (base 16) Tinkerforge GmbH
Zur Brinke 7
Schloss Holte-Stukenbrock NRW 33758
DE
70-B3-D5 (hex) 4neXt S.r.l.s.
E41000-E41FFF (base 16) 4neXt S.r.l.s.
Via Leonardo da Vinci 15/4
Vigonovo Veneto 30030
IT
8C-1F-64 (hex) Solace Systems Inc.
460000-460FFF (base 16) Solace Systems Inc.
535 Legget Drive,
Kanata Ontario K2K3B8
CA
8C-1F-64 (hex) AUTOMATIZACION Y CONECTIVIDAD SA DE CV
F41000-F41FFF (base 16) AUTOMATIZACION Y CONECTIVIDAD SA DE CV
LA GARITA ANDADOR 6 DUPLEX 1 CASA 2
CDMX TLALPAN 14390
MX
8C-1F-64 (hex) AEM Singapore Pte Ltd
7F1000-7F1FFF (base 16) AEM Singapore Pte Ltd
52 Serangoon North Ave 4
Singapore Singapore 555853
SG
8C-1F-64 (hex) DAVE SRL
726000-726FFF (base 16) DAVE SRL
VIA TALPONEDO 29/A
PORCIA PORDENONE 330850
IT
8C-1F-64 (hex) LLC EMS-Expert
21C000-21CFFF (base 16) LLC EMS-Expert
Gorodskoy, st., d.39,1
Tula Tula region 300012
RU
8C-1F-64 (hex) Gamber Johnson-LLC
42B000-42BFFF (base 16) Gamber Johnson-LLC
3001 Borham Ave
Stevens Point WI 54481
US
8C-1F-64 (hex) Green Access Ltd
878000-878FFF (base 16) Green Access Ltd
Unit 1 Kensworthgate 200-204 High Street South
Dunstable Bedfordshire LU6 3HS
GB
8C-1F-64 (hex) QUERCUS TECHNOLOGIES, S.L.
B9A000-B9AFFF (base 16) QUERCUS TECHNOLOGIES, S.L.
Av. Onze de Setembre 19
Reus Tarragona 43203
ES
8C-1F-64 (hex) Siemens Industry Software Inc.
611000-611FFF (base 16) Siemens Industry Software Inc.
46871 Bayside Parkway
Fremont CA 94538
US
8C-1F-64 (hex) ZMBIZI APP LLC
572000-572FFF (base 16) ZMBIZI APP LLC
10000 Santa Monica Blvd, Suite 503
LOS ANGELES CA 90067
US
8C-1F-64 (hex) Arcopie
28A000-28AFFF (base 16) Arcopie
Office 438, YTC, 847, Buheung-ro, Gwangjeok-myeon
Yangju-si Alabama 11416
KR
8C-1F-64 (hex) Prosys
A5C000-A5CFFF (base 16) Prosys
280 route de serry
fillinges 74250
FR
8C-1F-64 (hex) Pixel Design & Manufacturing Sdn. Bhd.
CE3000-CE3FFF (base 16) Pixel Design & Manufacturing Sdn. Bhd.
87, Jalan 20/7, Paramount Garden
Petaling Jaya Selangor 46300
MY
8C-1F-64 (hex) Antai technology Co.,Ltd
72C000-72CFFF (base 16) Antai technology Co.,Ltd
T2-704, No.159 Shenwu Road, Minhang District
Shanghai Shanghai 201100
CN
8C-1F-64 (hex) mapna group
768000-768FFF (base 16) mapna group
mirdamad
Tehran 0512258788
IR
8C-1F-64 (hex) Esys Srl
C1F000-C1FFFF (base 16) Esys Srl
via Spagna 240/242
Rende Calabria 87036
IT
8C-1F-64 (hex) Sicon srl
193000-193FFF (base 16) Sicon srl
Via Sila 1/3
Isola Vicentina Vicenza 36033
IT
8C-1F-64 (hex) YULISTA INTEGRATED SOLUTION
128000-128FFF (base 16) YULISTA INTEGRATED SOLUTION
7600 ADVANCED GATEWAY
HUNTSVILLE AL 35808
US
70-B3-D5 (hex) EVCO SPA
A80000-A80FFF (base 16) EVCO SPA
VIA FELTRE N. 81
@ -10247,6 +10373,144 @@ A8F000-A8FFFF (base 16) VK Integrated Systems
Clarksville TN 37040
US
70-B3-D5 (hex) Wisebox.,Co.Ltd
AC2000-AC2FFF (base 16) Wisebox.,Co.Ltd
23, Geoje-daero 108beon-gil, Yeonje-gu
Busan 47547
KR
8C-1F-64 (hex) DB Systel GmbH
991000-991FFF (base 16) DB Systel GmbH
Jürgen-Ponto-Platz1
Frankfurt Hessen 60329
DE
8C-1F-64 (hex) Katronic AG & Co. KG
C41000-C41FFF (base 16) Katronic AG & Co. KG
Gießerweg 5
Wernigerode 38855
DE
8C-1F-64 (hex) NAGTECH LLC
29F000-29FFFF (base 16) NAGTECH LLC
12A, Krasnolesya Str., off 507
Ekaterinburg Sverdlovskaya oblast 620110
RU
8C-1F-64 (hex) ROBOfiber, Inc.
CF1000-CF1FFF (base 16) ROBOfiber, Inc.
3000F Danville Blvd, #300
Alamo CA 94507
US
8C-1F-64 (hex) QLM Technology Ltd
3A4000-3A4FFF (base 16) QLM Technology Ltd
Unit DX, Albert Road
Bristol BS20XJ
GB
8C-1F-64 (hex) Abiman Engineering
C03000-C03FFF (base 16) Abiman Engineering
34, Pureundeulpan-ro 567 Beon-gil, Paltan-myeon
Hwaseong-si Gyeonggi-do 18529
KR
8C-1F-64 (hex) Integer.pl S.A.
438000-438FFF (base 16) Integer.pl S.A.
Wielicka 28
Krakow 30-552
PL
8C-1F-64 (hex) LLC TC Vympel
947000-947FFF (base 16) LLC TC Vympel
Bolshaya Serpukhovskaya street 25, bld. 2, 1 st floor, room III
Moscow 115093
RU
8C-1F-64 (hex) castcore
204000-204FFF (base 16) castcore
D1210, 947 Hanam-daero
Hanam-si, Gyeonggi-do 12982
KR
8C-1F-64 (hex) Zhejiang Laolan Information Technology Co., Ltd
801000-801FFF (base 16) Zhejiang Laolan Information Technology Co., Ltd
Zhejiang Laolan Information Technology Co., Ltd
Hangzhou Zhejiang 311700
CN
8C-1F-64 (hex) BlueSword Intelligent Technology Co., Ltd.
AAB000-AABFFF (base 16) BlueSword Intelligent Technology Co., Ltd.
No. 909, Longaobei Road,Jinan,Shandong
Jinan Shandong 250101
CN
8C-1F-64 (hex) Aton srl
19C000-19CFFF (base 16) Aton srl
Via Guido Rossa 5
Spilamberto MO 41057
IT
8C-1F-64 (hex) MB connect line GmbH Fernwartungssysteme
AED000-AEDFFF (base 16) MB connect line GmbH Fernwartungssysteme
Winnettener Straße 6
Dinkelsbuehl Bavaria 91550
DE
8C-1F-64 (hex) RealWear
9C1000-9C1FFF (base 16) RealWear
600 Hathaway Rd, Ste 105
Vancouver WA 98661
US
8C-1F-64 (hex) Jacquet Dechaume
7C8000-7C8FFF (base 16) Jacquet Dechaume
1 Rue Louis Armand
Le Plessis Bouchard 95130
FR
8C-1F-64 (hex) Jemac Sweden AB
304000-304FFF (base 16) Jemac Sweden AB
Trångsundsvägen 20A
Kalmar 39356
SE
8C-1F-64 (hex) HEINEN ELEKTRONIK GmbH
AA4000-AA4FFF (base 16) HEINEN ELEKTRONIK GmbH
Hunsrückstraße 7
HAAN NRW 42781
DE
8C-1F-64 (hex) Sanskruti
4FA000-4FAFFF (base 16) Sanskruti
76/121, Mohit House, 2nd cross, Dasarahali Main Road, buvaneswari Nagar
bangalore karnataka 560024
IN
8C-1F-64 (hex) Figment Design Laboratories
445000-445FFF (base 16) Figment Design Laboratories
113 11th Avenue
Johannesburg Guateng 2170
ZA
8C-1F-64 (hex) SVMS
3B5000-3B5FFF (base 16) SVMS
ZA de Berroueta
Urrugne 64122
FR
8C-1F-64 (hex) JUSTMORPH PTE. LTD.
AB5000-AB5FFF (base 16) JUSTMORPH PTE. LTD.
29A Mosque Street
Singapore 059507
SG
8C-1F-64 (hex) INFOSTECH Co., Ltd.
F86000-F86FFF (base 16) INFOSTECH Co., Ltd.
26, Namsan-ro 39beon-gil, Uichang-gu
Changwon-si Gyeongsangnam-do 51368
KR
70-B3-D5 (hex) System West dba ICS Electronics
E06000-E06FFF (base 16) System West dba ICS Electronics
7034 Commerce Circle Suite A
@ -12935,12 +13199,6 @@ CC1000-CC1FFF (base 16) BEEcube Inc.
Ellicott City MD 21042
US
70-B3-D5 (hex) ATS-CONVERS
901000-901FFF (base 16) ATS-CONVERS
Yana Fabrittsyusa str., 10
Pskov 180017
RU
70-B3-D5 (hex) EMAC, Inc.
654000-654FFF (base 16) EMAC, Inc.
2390 EMAC Way
@ -15284,6 +15542,144 @@ AFD000-AFDFFF (base 16) dongsheng
Soest 59494
DE
70-B3-D5 (hex) Apantac LLC
450000-450FFF (base 16) Apantac LLC
7556 SW Bridgeport Road
Durham OR 97224
US
8C-1F-64 (hex) GIORDANO CONTROLS SPA
DBD000-DBDFFF (base 16) GIORDANO CONTROLS SPA
VIA PARALLELA 2/4
VILLA BARTOLOMEA IT 37049
IT
70-B3-D5 (hex) i2Systems
FFD000-FFDFFF (base 16) i2Systems
355 Bantam Lake Road
Morris CT 06763
US
8C-1F-64 (hex) Abbott Diagnostics Technologies AS
918000-918FFF (base 16) Abbott Diagnostics Technologies AS
P. O. Box 6863 Rodeløkka
Oslo Oslo 0504
NO
8C-1F-64 (hex) Ruichuangte
3E8000-3E8FFF (base 16) Ruichuangte
Zijinlianhelifang, No.155, LongPan Road
Nanjing Jiangsu 210037
CN
8C-1F-64 (hex) Vishay Nobel AB
9FD000-9FDFFF (base 16) Vishay Nobel AB
Box 423
Karlskoga SE-691 27
SE
8C-1F-64 (hex) Shenzhen Pisoftware Technology Co.,Ltd.
B03000-B03FFF (base 16) Shenzhen Pisoftware Technology Co.,Ltd.
Room 1221, 12F,Shenzhen Newspaper Group and Periodicals Building, Qinghu Community,Longhua Street, Longhua District, Shenzhen, China
Shenzhen GUANGDONG 518103
CN
70-B3-D5 (hex) ATS-CONVERS,LLC
901000-901FFF (base 16) ATS-CONVERS,LLC
Yana Fabrittsyusa str., 10
Pskov 180017
RU
8C-1F-64 (hex) Langfang ENN lntelligent Technology Co.,Ltd.
144000-144FFF (base 16) Langfang ENN lntelligent Technology Co.,Ltd.
HuaxiangRoad,No.106,Langfang Economic&Technical Devevlopment Zone,Hebei P.R.China
Langfang 065000
CN
8C-1F-64 (hex) ABB S.p.A.
CF3000-CF3FFF (base 16) ABB S.p.A.
Via Pisani 16
Milano MI 20124
IT
8C-1F-64 (hex) ASW-ATI Srl
101000-101FFF (base 16) ASW-ATI Srl
Via Volontari della Libertà 54/56
Empoli 50053
IT
8C-1F-64 (hex) R2Sonic, LLC
25E000-25EFFF (base 16) R2Sonic, LLC
5307 Industrial Oaks Blvd
Austin TX 78735
US
8C-1F-64 (hex) Secure Bits
D29000-D29FFF (base 16) Secure Bits
2 Taubman St
Symonston ACT 2609
AU
8C-1F-64 (hex) Autopharma
0E0000-0E0FFF (base 16) Autopharma
Orionweg 49
Leeuwarden 8938 AG
NL
8C-1F-64 (hex) Potter Electric Signal Company
FE0000-FE0FFF (base 16) Potter Electric Signal Company
1609 Park 370 Place
Hazelwood MO 63042
US
8C-1F-64 (hex) Invisense AB
2EF000-2EFFFF (base 16) Invisense AB
Nygatan 56
Linköping 582 27
SE
8C-1F-64 (hex) NewAgeMicro
73D000-73DFFF (base 16) NewAgeMicro
171 Forbes Blvd, Suite 5000
Mansfield MA 02048
US
8C-1F-64 (hex) DEUTA-WERKE GmbH
BA3000-BA3FFF (base 16) DEUTA-WERKE GmbH
Paffrather Str. 140
Bergisch Gladbach North Rhine-Westphalia 51465
DE
8C-1F-64 (hex) INSEVIS GmbH
414000-414FFF (base 16) INSEVIS GmbH
Am Weichselgarten 7
Erlangen D-91058
DE
8C-1F-64 (hex) Shenzhen Longyun Lighting Electric Appliances Co., Ltd
95A000-95AFFF (base 16) Shenzhen Longyun Lighting Electric Appliances Co., Ltd
Building A5 , Silicon Valley Power Industrial Park, No.334, Guiyue Road, Guanlan
Shenzhen Guangdong 518110
CN
8C-1F-64 (hex) Peter Huber Kaeltemaschinenbau AG
DC9000-DC9FFF (base 16) Peter Huber Kaeltemaschinenbau AG
Werner-von-Siemens-Str. 1
Offenburg Ba-Wue 77656
DE
8C-1F-64 (hex) Guangzhou Desam Audio Co.,Ltd
219000-219FFF (base 16) Guangzhou Desam Audio Co.,Ltd
101,Building 1,No.28,Wenqiao Rd,Wenbian Village,Shiji Town,Panyu District,Duangzhou
Duangzhou 511400
CN
8C-1F-64 (hex) Xacti Corporation
90E000-90EFFF (base 16) Xacti Corporation
Tower East 28F,Umeda Sky Building,1-1-88,Oyodonaka,Kita-ku
Osaka Osaka 531-6048
JP
70-B3-D5 (hex) YUYAMA MFG Co.,Ltd
BBB000-BBBFFF (base 16) YUYAMA MFG Co.,Ltd
3-3-1
@ -16805,12 +17201,6 @@ FBC000-FBCFFF (base 16) Twoway Communications, Inc.
Anif Salzburg 5081
AT
70-B3-D5 (hex) Green Access Ltd
B2E000-B2EFFF (base 16) Green Access Ltd
Hearle Way
Hatfield Hertfordshire AL10 9EW
GB
70-B3-D5 (hex) Intra Corporation
DDB000-DDBFFF (base 16) Intra Corporation
885 Manufacturers Dr.
@ -20522,6 +20912,150 @@ E0E000-E0EFFF (base 16) VulcanForms
Burlington MA 01803
US
8C-1F-64 (hex) Xian Hangguang Satellite and Control Technology Co.,Ltd
270000-270FFF (base 16) Xian Hangguang Satellite and Control Technology Co.,Ltd
Hi-tech Industrial Park Zaozitai Road No.10,Changan, Xian, Shaanxi China
Xian 710075
CN
8C-1F-64 (hex) Thales Belgium
D7E000-D7EFFF (base 16) Thales Belgium
Rue Des Frères Taymans 28
Tubize Brussels 1480
BE
8C-1F-64 (hex) GSP Sprachtechnologie GmbH
B64000-B64FFF (base 16) GSP Sprachtechnologie GmbH
Teltowkanalstraße 1
Berlin 12247
DE
8C-1F-64 (hex) Brad Technology
549000-549FFF (base 16) Brad Technology
20 Avenue des Erables
Avignon 84000
FR
8C-1F-64 (hex) Yuval Fichman
135000-135FFF (base 16) Yuval Fichman
37 Mishmar Hayarden St.
Tel Aviv 6986519
IL
8C-1F-64 (hex) EkspertStroyProekt
A57000-A57FFF (base 16) EkspertStroyProekt
office 422, str.1, d.1, ul. Eniseyskaya
Moscow 129344
RU
8C-1F-64 (hex) GS Elektromedizinsiche Geräte G. Stemple GmbH
BC0000-BC0FFF (base 16) GS Elektromedizinsiche Geräte G. Stemple GmbH
Hauswiesenstr. 26
Kaufering Bayern 86916
DE
8C-1F-64 (hex) BR. Voss Ingenjörsfirma AB
264000-264FFF (base 16) BR. Voss Ingenjörsfirma AB
Getängsvägen 4
Borås 50468
SE
8C-1F-64 (hex) Garten Automation
856000-856FFF (base 16) Garten Automation
Av. Herbert Hadler, 1367
Pelotas Rio Grande do Sul 96050460
BR
8C-1F-64 (hex) Portrait Displays, Inc.
903000-903FFF (base 16) Portrait Displays, Inc.
6663 OWENS DR
PLEASANTON CA 94588
US
70-B3-D5 (hex) Green Access Ltd
B2E000-B2EFFF (base 16) Green Access Ltd
Unit 1 Kensworthgate 200-204 High Street South
Dunstable Bedfordshire LU6 3HS
GB
8C-1F-64 (hex) Scientific Lightning Solutions
E5C000-E5CFFF (base 16) Scientific Lightning Solutions
1419 Chaffee Drive, Suite 1
Titusville FL 32780
US
8C-1F-64 (hex) WOLF Advanced Technology
370000-370FFF (base 16) WOLF Advanced Technology
175 Mostar Street, Suite 200
Stouffville Ontario L4A 0Y2
CA
8C-1F-64 (hex) YUYAMA MFG Co.,Ltd
AE1000-AE1FFF (base 16) YUYAMA MFG Co.,Ltd
3-3-1
TOYONAKASHI OSAKA 561-0841
JP
8C-1F-64 (hex) Roog zhi tong Technology(Beijing) Co.,Ltd
296000-296FFF (base 16) Roog zhi tong Technology(Beijing) Co.,Ltd
Room 806, Huizhong building, building 2, Yard 1, Shangdi Seventh Street, Haidian District, Beijing
Beijing 100089
CN
8C-1F-64 (hex) SBS SpA
4C7000-4C7FFF (base 16) SBS SpA
via Circonvallazione s/n
Miasino NO 28010
IT
8C-1F-64 (hex) Grossenbacher Systeme AG
83A000-83AFFF (base 16) Grossenbacher Systeme AG
Spinnereistrasse 10
St. Gallen 9008
CH
8C-1F-64 (hex) Murata Manufacturing Co., Ltd.
79D000-79DFFF (base 16) Murata Manufacturing Co., Ltd.
2288, Oaza-Ohshinohara, Yasu-cho,
Yasu-gun Shiga 520-2393
JP
8C-1F-64 (hex) Gogo Business Aviation
151000-151FFF (base 16) Gogo Business Aviation
105 Edgeview Dr., Suite 300
Broomfield CO 80021
US
8C-1F-64 (hex) Cirrus Systems, Inc.
8C2000-8C2FFF (base 16) Cirrus Systems, Inc.
200 West Road
Portsmouth NH 03801
US
8C-1F-64 (hex) Florida R&D Associates LLC
2F5000-2F5FFF (base 16) Florida R&D Associates LLC
76 Spring Vista Drive
DeBary FL 32713
US
8C-1F-64 (hex) Sonora Network Solutions
2E8000-2E8FFF (base 16) Sonora Network Solutions
8 The Green Suite A
Dover DE 19901
US
8C-1F-64 (hex) Global Organ Group B.V.
EE8000-EE8FFF (base 16) Global Organ Group B.V.
Keplerlaan 2
EDE The Netherlands 6716BS
NL
8C-1F-64 (hex) UBISCALE
73F000-73FFFF (base 16) UBISCALE
1 Avenue de Bellefontaine
Cesson-Sevigne 35510
FR
70-B3-D5 (hex) DISMUNTEL SAL
92C000-92CFFF (base 16) DISMUNTEL SAL
Pol ind cotes
@ -22127,12 +22661,6 @@ A9A000-A9AFFF (base 16) Amphenol Advanced Sensors
HYDERABAD Telangana 500081
IN
70-B3-D5 (hex) Mentor Graphics
3FE000-3FEFFF (base 16) Mentor Graphics
46871 Bayside Parkway
Fremont CA 94538
US
70-B3-D5 (hex) DWQ Informatikai Tanacsado es Vezerlestechnikai KFT
B48000-B48FFF (base 16) DWQ Informatikai Tanacsado es Vezerlestechnikai KFT
Bathoty Istvan str 14
@ -24677,12 +25205,6 @@ EFC000-EFCFFF (base 16) Absolent AB
Lidköping 53140
SE
70-B3-D5 (hex) Barracuda Measurement Solutions
FFA000-FFAFFF (base 16) Barracuda Measurement Solutions
33434 FM 529
brookshire TX 77423
US
70-B3-D5 (hex) Booz Allen Hamilton
A24000-A24FFF (base 16) Booz Allen Hamilton
1900 West Park Drive, Suite 205
@ -25055,12 +25577,6 @@ AAB000-AABFFF (base 16) QUISS GmbH
Melbourne FL 32940
US
70-B3-D5 (hex) Tobi Tribe Inc
D68000-D68FFF (base 16) Tobi Tribe Inc
13263 MIDDLETON FARM LN,
HERNDON, VA 20171
US
70-B3-D5 (hex) Antek Technology
9E5000-9E5FFF (base 16) Antek Technology
11F, No. 51 Heng Yang Road
@ -25555,3 +26071,147 @@ A0C000-A0CFFF (base 16) Lumiplan Duhamel
2 rue de l'industrie
Domène Isère 38420
FR
8C-1F-64 (hex) Griffyn Robotech Private Limited
4DD000-4DDFFF (base 16) Griffyn Robotech Private Limited
Shewale Center B MIDC Pimpri Colony
Pimpri Chinchwad Maharashtra 411019
IN
8C-1F-64 (hex) Suzhou Xingxiangyi Precision Manufacturing Co.,Ltd.
000000-000FFF (base 16) Suzhou Xingxiangyi Precision Manufacturing Co.,Ltd.
Building 2, no.6, Lane 1, Wupu Road, Suzhou Industrial Park
Suzhou Jiangsu 215000
CN
8C-1F-64 (hex) CPC (UK)
391000-391FFF (base 16) CPC (UK)
Unit 3 Beta Way
Egham Surrey TW208RE
GB
8C-1F-64 (hex) NavSys Technology Inc.
3C4000-3C4FFF (base 16) NavSys Technology Inc.
IT Mirea Tower #2003-1, 33, Digital-ro 9-gil
Geumcheon-gu Seoul, Republic of Korea 08511
KR
8C-1F-64 (hex) SamabaNova Systems
0A8000-0A8FFF (base 16) SamabaNova Systems
2100 Geng Rd #103
Palo Alto CA 94303
US
8C-1F-64 (hex) Edgeware AB
FD1000-FD1FFF (base 16) Edgeware AB
Master Samuelsgatan 42
Stockholm 11157
SE
8C-1F-64 (hex) Intamsys Technology Co.Ltd
466000-466FFF (base 16) Intamsys Technology Co.Ltd
3/F, Building C9, No.3188 Xiupu Road Pudong New District,Shanghai
Shanghai 201315
CN
8C-1F-64 (hex) Power Electronics Espana, S.L.
C2F000-C2FFFF (base 16) Power Electronics Espana, S.L.
C/ Leonardo Da Vinci, 24-26
Paterna Valencia 46980
ES
8C-1F-64 (hex) Hikari Alphax Inc.
166000-166FFF (base 16) Hikari Alphax Inc.
2-2-2, Nakanoshima, Kita-ku
Osaka Osaka 530-0005
JP
8C-1F-64 (hex) Miracle Healthcare, Inc.
EAC000-EACFFF (base 16) Miracle Healthcare, Inc.
130-2, Donghwagongdan-ro, Munmak-eup
Wonju-si Gangwon-do 26365
KR
8C-1F-64 (hex) Ringtail Security
A29000-A29FFF (base 16) Ringtail Security
Grand-Rue 75
Gland VD 1196
CH
70-B3-D5 (hex) Tobi Tribe Inc.
D68000-D68FFF (base 16) Tobi Tribe Inc.
45945 Trefoil Ln #157
Sterling VA 20166
US
70-B3-D5 (hex) Barracuda Measurement Solutions
FFA000-FFAFFF (base 16) Barracuda Measurement Solutions
10701 Corporate Dr Suite 360
Stafford TX 77477
US
8C-1F-64 (hex) ASAP Electronics GmbH
9CF000-9CFFFF (base 16) ASAP Electronics GmbH
Sachsstraße 1A
Gaimersheim Bayern 85080
DE
8C-1F-64 (hex) WINK Streaming
372000-372FFF (base 16) WINK Streaming
3 Prados Del Convento
Escazu SJ 10201
CR
8C-1F-64 (hex) Yu-Heng Electric Co., LTD
575000-575FFF (base 16) Yu-Heng Electric Co., LTD
No 8 , Gongye 2nd Rd., Renwu Industry Park
Kaohsiung Kaohsiung City 814
TW
70-B3-D5 (hex) Siemens Industry Software Inc.
3FE000-3FEFFF (base 16) Siemens Industry Software Inc.
46871 Bayside Parkway
Fremont CA 94538
US
8C-1F-64 (hex) OTMetric
7A6000-7A6FFF (base 16) OTMetric
1 rue de La Haye
Tremblay en France 93290
FR
8C-1F-64 (hex) BRS Sistemas Eletrônicos
2C8000-2C8FFF (base 16) BRS Sistemas Eletrônicos
Rua Gomes de Freitas, 491 / 204
Porto Alegre RS 91380-000
BR
8C-1F-64 (hex) Syscom Instruments SA
A4E000-A4EFFF (base 16) Syscom Instruments SA
industrie 21
Sainte-Croix 1450
CH
8C-1F-64 (hex) Caproc Oy
D4A000-D4AFFF (base 16) Caproc Oy
Vintilänkatu 20
Lahti 15680
FI
8C-1F-64 (hex) KIB Energo LLC
D3C000-D3CFFF (base 16) KIB Energo LLC
Moskovskoe ave. 9
Saint-Petersburg 196158
RU
8C-1F-64 (hex) Nonet Inc
2A5000-2A5FFF (base 16) Nonet Inc
Daan Dist, Xinhai Road Section 1, No. 79, 5F
Taipei Taipei 10647
TW
8C-1F-64 (hex) WBNet
1E3000-1E3FFF (base 16) WBNet
Drielse Wetering 17
Kerkdriel Gelderland 5331RK
NL

View File

@ -30,6 +30,7 @@ hwdb_files_test = files('''
70-mouse.hwdb
70-pointingstick.hwdb
70-touchpad.hwdb
80-ieee1394-unit-function.hwdb
'''.split())
if conf.get('ENABLE_HWDB') == 1

View File

@ -72,6 +72,7 @@ TYPES = {'mouse': ('usb', 'bluetooth', 'ps2', '*'),
'joystick': ('i8042', 'rmi', 'bluetooth', 'usb'),
'keyboard': ('name', ),
'sensor': ('modalias', ),
'ieee1394-unit-function' : ('node', ),
}
# Patterns that are used to set general properties on a device
@ -82,6 +83,7 @@ GENERAL_MATCHES = {'acpi',
'sdio',
'vmbus',
'OUI',
'ieee1394',
}
def upperhex_word(length):
@ -99,7 +101,7 @@ def hwdb_grammar():
matchline = (matchline_typed | matchline_general) + EOL
propertyline = (White(' ', exact=1).suppress() +
Combine(UDEV_TAG - '=' - Optional(Word(alphanums + '_=:@*.!-;, "'))
Combine(UDEV_TAG - '=' - Optional(Word(alphanums + '_=:@*.!-;, "/'))
- Optional(pythonStyleComment)) +
EOL)
propertycomment = White(' ', exact=1) + pythonStyleComment + EOL
@ -122,6 +124,9 @@ def property_grammar():
mount_matrix = Group(mount_matrix_row + ';' + mount_matrix_row + ';' + mount_matrix_row)('MOUNT_MATRIX')
xkb_setting = Optional(Word(alphanums + '+-/@._'))
# Although this set doesn't cover all of characters in database entries, it's enough for test targets.
name_literal = Word(printables + ' ')
props = (('MOUSE_DPI', Group(OneOrMore(dpi_setting))),
('MOUSE_WHEEL_CLICK_ANGLE', INTEGER),
('MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL', INTEGER),
@ -153,6 +158,11 @@ def property_grammar():
('ACCEL_MOUNT_MATRIX', mount_matrix),
('ACCEL_LOCATION', Or(('display', 'base'))),
('PROXIMITY_NEAR_LEVEL', INTEGER),
('IEEE1394_UNIT_FUNCTION_MIDI', Or((Literal('0'), Literal('1')))),
('IEEE1394_UNIT_FUNCTION_AUDIO', Or((Literal('0'), Literal('1')))),
('IEEE1394_UNIT_FUNCTION_VIDEO', Or((Literal('0'), Literal('1')))),
('ID_VENDOR_FROM_DATABASE', name_literal),
('ID_MODEL_FROM_DATABASE', name_literal),
)
fixed_props = [Literal(name)('NAME') - Suppress('=') - val('VALUE')
for name, val in props]
@ -291,7 +301,7 @@ def print_summary(fname, groups):
error('{}: no matches or props'.format(fname))
if __name__ == '__main__':
args = sys.argv[1:] or sorted(glob.glob(os.path.dirname(sys.argv[0]) + '/[67][0-9]-*.hwdb'))
args = sys.argv[1:] or sorted(glob.glob(os.path.dirname(sys.argv[0]) + '/[678][0-9]-*.hwdb'))
for fname in args:
groups = parse(fname)

View File

@ -1,8 +1,8 @@
#
# List of PCI ID's
#
# Version: 2021.03.22
# Date: 2021-03-22 03:15:01
# Version: 2021.05.16
# Date: 2021-05-16 03:15:02
#
# Maintained by Albert Pool, Martin Mares, and other volunteers from
# the PCI ID Project at https://pci-ids.ucw.cz/.
@ -916,6 +916,7 @@
8086 0523 MegaRAID RAID Controller SRCS16
3050 SAS2008 PCI-Express Fusion-MPT SAS-2
6001 DX1 Multiformat Broadcast HD/SD Encoder/Decoder
c010 PEX88048 50 lane, 50 port, PCI Express Gen 4.0 ExpressFabric Platform
c012 PEX880xx PCIe Gen 4 Switch
1d49 0003 ThinkSystem 1611-8P PCIe Gen4 NVMe Switch Adapter
1001 Kolter Electronic
@ -990,6 +991,7 @@
1638 Cezanne
163f VanGogh
164c Lucienne
164d Rembrandt
1714 BeaverCreek HDMI Audio [Radeon HD 6500D and 6400G-6600G series]
103c 168b ProBook 4535s
3150 RV380/M24 [Mobility Radeon X600]
@ -2671,6 +2673,7 @@
# https://www.techpowerup.com/vgabios/?manufacturer=Powercolor&model=RX+580
148c 2378 Radeon RX 580
148c 2379 Radeon RX 570 4G [Red Dragon]
148c 2391 Radeon RX 590 [Red Devil]
1682 9470 Radeon RX 470
1682 9480 Radeon RX 480
1682 9587 Radeon RX 590 FATBOY 8GB
@ -3484,6 +3487,7 @@
6985 Lexa XT [Radeon PRO WX 3100]
6986 Polaris12
6987 Lexa [Radeon 540X/550X/630 / RX 640 / E9171 MCM]
698f Lexa XT [Radeon PRO WX 3100 / Barco MXRT 4700]
6995 Lexa XT [Radeon PRO WX 2100]
699f Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X]
1028 1720 Radeon RX 550X
@ -3644,6 +3648,7 @@
731f Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT]
1458 2313 Radeon RX 5700 XT Gaming OC
1682 5701 RX 5700 XT RAW II
1849 5120 Radeon RX 5600 XT
1da2 e411 Radeon RX 5600 XT
7340 Navi 14 [Radeon RX 5500/5500M / Pro 5500M]
7341 Navi 14 [Radeon Pro W5500]
@ -3654,6 +3659,7 @@
7388 Arcturus GL-XL
738c Arcturus GL-XL [AMD Instinct MI100]
738e Arcturus GL-XL
73a3 Navi 21 [Radeon PRO W6800]
73a4 Navi 21 USB
73af Navi 21 [Radeon RX 6900 XT]
73bf Navi 21 [Radeon RX 6800/6800 XT / 6900 XT]
@ -3664,7 +3670,10 @@
73e0 Navi 23
73e1 Navi 23
73e4 Navi 23 USB
73ff Navi 23 [Radeon RX 6600/6600 XT]
73ff Navi 23 [Radeon RX 6600/6600 XT/6600M]
7408 Aldebaran
740c Aldebaran
740f Aldebaran
7833 RS350 Host Bridge
7834 RS350 [Radeon 9100 PRO/XT IGP]
7835 RS350M [Mobility Radeon 9000 IGP]
@ -4067,6 +4076,7 @@
ab10 Lexa HDMI Audio
ab18 Vega 12 HDMI Audio
ab20 Vega 20 HDMI Audio [Radeon VII]
ab28 Navi 21 HDMI Audio [Radeon RX 6800/6800 XT / 6900 XT]
ab38 Navi 10 HDMI Audio
ac00 Theater 506 World-Wide Analog Decoder
ac01 Theater 506 World-Wide Analog Decoder
@ -7169,7 +7179,8 @@
103c 12dd 4Gb Fibre Channel [AB429A]
2432 ISP2432-based 4Gb Fibre Channel to PCI Express HBA
103c 7040 FC1142SR 4Gb 1-port PCIe Fibre Channel Host Bus Adapter [HPAE311A]
1077 0137 QLE2460 4 GB PCI-X Host-Bus-Adapter
1077 0137 QLE2460 Single-Port 4Gbps FC-to-PCI-X/PCIe Host Bus Adapter
1077 0138 QLE2462 Dual-Port 4Gbps FC-to-PCI-X/PCIe Host Bus Adapter
2532 ISP2532-based 8Gb Fibre Channel to PCI Express HBA
1014 041e FC EN0Y/EN12 PCIe2 LP 8 Gb 4-port Fibre Channel Adapter for POWER
103c 3262 StorageWorks 81Q
@ -11712,6 +11723,7 @@
1184 GK104 [GeForce GTX 770]
1185 GK104 [GeForce GTX 660 OEM]
10de 106f GK104 [GeForce GTX 760 OEM]
1186 GK104 [GeForce GTX 660 Ti]
1187 GK104 [GeForce GTX 760]
1188 GK104 [GeForce GTX 690]
1189 GK104 [GeForce GTX 670]
@ -12135,6 +12147,7 @@
1e04 TU102 [GeForce RTX 2080 Ti]
1e07 TU102 [GeForce RTX 2080 Ti Rev. A]
1462 3715 RTX 2080 Ti GAMING X TRIO
1e09 TU102 [CMP 50HX]
1e2d TU102 [GeForce RTX 2080 Ti Engineering Sample]
1e2e TU102 [GeForce RTX 2080 Ti 12GB Engineering Sample]
1e30 TU102GL [Quadro RTX 6000/8000]
@ -12211,15 +12224,21 @@
1f9c TU117M [GeForce MX450]
1f9d TU117M [GeForce GTX 1650 Mobile / Max-Q]
1fae TU117GL
1fb0 TU117GLM [Quadro T1000 Mobile]
1fb1 TU117GLM [Quadro T600 Mobile]
1fb2 TU117GLM [Quadro T400 Mobile]
1fb8 TU117GLM [Quadro T2000 Mobile / Max-Q]
1fb9 TU117GLM [Quadro T1000 Mobile]
1fbb TU117GLM [Quadro T500 Mobile]
1fbf TU117GL
1fd9 TU117BM [GeForce GTX 1650 Mobile Refresh]
1fdd TU117BM [GeForce GTX 1650 Mobile Refresh]
1ff9 TU117GLM [Quadro T1000 Mobile]
20b0 GA100 [A100 SXM4 40GB]
20b1 GA100 [A100 PCIe 40GB]
20b2 GA100 [A100 SXM4 80GB]
20b6 GA100GL [PG506-232]
20b7 GA100GL [A30 PCIe]
20be GA100 [GRID A100A]
20bf GA100 [GRID A100B]
20f1 GA100 [A100 PCIe 40GB]
@ -12244,18 +12263,20 @@
10de 146d GA102 [GeForce RTX 3080 20GB]
1462 3892 RTX 3080 10GB GAMING X TRIO
2208 GA102 [GeForce RTX 3080 Ti]
220d GA102 [GeForce RTX 3080 Lite Hash Rate]
222b GA102 [GeForce RTX 3090 Engineering Sample]
222f GA102 [GeForce RTX 3080 11GB / 12GB Engineering Sample]
2230 GA102GL [RTX A6000]
2231 GA102GL
2235 GA102GL [RTX A40]
2236 GA102GL
2237 GA102GL
2231 GA102GL [RTX A5000]
2235 GA102GL [A40]
2236 GA102GL [A10]
2237 GA102GL [A10G]
223f GA102GL
228b GA104 High Definition Audio Controller
2302 GA103
2321 GA103
2482 GA104 [GeForce RTX 3070 Ti]
2483 GA104
2484 GA104 [GeForce RTX 3070]
10de 146b GA104 [GeForce RTX 3070]
10de 14ae GA104 [GeForce RTX 3070 16GB]
@ -12266,22 +12287,33 @@
24ac GA104 [GeForce RTX 30x0 Engineering Sample]
24ad GA104 [GeForce RTX 3060 Engineering Sample]
24af GA104 [GeForce RTX 3070 Engineering Sample]
24b6 GA104
24b8 GA104
24b0 GA104GL [RTX A4000]
24b6 GA104GLM [RTX A5000 Mobile]
24b7 GA104GLM [RTX A4000 Mobile]
24b8 GA104GLM [RTX A3000 Mobile]
24bf GA104 [GeForce RTX 3070 Engineering Sample]
24dc GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB]
24dd GA104M [GeForce RTX 3070 Mobile / Max-Q]
2501 GA106 [GeForce RTX 3060]
2503 GA106 [GeForce RTX 3060]
2504 GA106 [GeForce RTX 3060 Lite Hash Rate]
2505 GA106
2520 GA106M [GeForce RTX 3060 Mobile / Max-Q]
2523 GA106M [GeForce RTX 3050 Ti Mobile / Max-Q]
252f GA106 [GeForce RTX 3060 Engineering Sample]
2560 GA106M [GeForce RTX 3060 Mobile / Max-Q]
2563 GA106M [GeForce RTX 3050 Ti Mobile / Max-Q]
2583 GA107 [GeForce RTX 3050]
25a0 GA107M [GeForce RTX 3050 Ti Mobile]
25a2 GA107M [GeForce RTX 3050 Mobile]
25a4 GA107
25a5 GA107M [GeForce RTX 3050 Mobile]
25af GA107 [GeForce RTX 3050 Engineering Sample]
25b5 GA107GLM [RTX A4 Mobile]
25b8 GA107GLM [RTX A2000 Mobile]
25e0 GA107BM [GeForce RTX 3050 Ti Mobile]
25e2 GA107BM [GeForce RTX 3050 Mobile]
25e5 GA107BM [GeForce RTX 3050 Mobile]
10df Emulex Corporation
0720 OneConnect NIC (Skyhawk)
103c 1934 FlexFabric 20Gb 2-port 650M Adapter
@ -12966,6 +12998,7 @@
3220 RocketRAID 3220
3320 RocketRAID 3320
4310 RocketRaid 4310
7505 SSD7505 PCIe Gen4 x16 4-Port M.2 NVMe RAID Controller
1104 RasterOps Corp.
1105 Sigma Designs, Inc.
1105 REALmagic Xcard MPEG 1/2/3/4 DVD Decoder
@ -17696,9 +17729,50 @@
9513 OX16PCI954 (Quad 16950 UART) function 1 (parallel port)
9521 OX16PCI952 (Dual 16950 UART)
9523 OX16PCI952 Integrated Parallel Port
c158 OXPCIe952 Dual 16C950 UART
# The OXPCIe952 PCI Express Bridge to Dual Serial & Parallel Port chip is a multifunction device that encodes five reset straps and 1:0 function bits in bits 6:0 of the device ID. Hence it consumes a whole 128-entry block, which is however sparsely populated as obviously disabled functions do not appear in the configuration space.
c100 OXPCIe952 Parallel Port
c101 OXPCIe952 Legacy 950 UART
c104 OXPCIe952 Parallel Port
c105 OXPCIe952 Legacy 950 UART
c106 OXPCIe952 GPIO
c108 OXPCIe952 Parallel Port
c109 OXPCIe952 Legacy 950 UART
c10c OXPCIe952 Parallel Port
c10d OXPCIe952 Legacy 950 UART
c10e OXPCIe952 GPIO
c110 OXPCIe952 Parallel Port
c114 OXPCIe952 Parallel Port
c118 OXPCIe952 Parallel Port
c11b OXPCIe952 Native 950 UART
c11c OXPCIe952 Parallel Port
c11e OXPCIe952 GPIO
c11f OXPCIe952 Native 950 UART
c120 OXPCIe952 Legacy 950 UART
c124 OXPCIe952 Legacy 950 UART
c126 OXPCIe952 GPIO
c128 OXPCIe952 Legacy 950 UART
c12c OXPCIe952 Legacy 950 UART
c12e OXPCIe952 GPIO
c134 OXPCIe952 GPIO
c138 OXPCIe952 Native 950 UART
c13c OXPCIe952 GPIO
c13d OXPCIe952 Native 950 UART
c140 OXPCIe952 Legacy 950 UART #1
c141 OXPCIe952 Legacy 950 UART #2
c144 OXPCIe952 Legacy 950 UART #1
c145 OXPCIe952 Legacy 950 UART #2
c146 OXPCIe952 GPIO
c148 OXPCIe952 Legacy 950 UART #1
c149 OXPCIe952 Legacy 950 UART #2
c14c OXPCIe952 Legacy 950 UART #1
c14d OXPCIe952 Legacy 950 UART #2
c14e OXPCIe952 GPIO
c154 OXPCIe952 GPIO
c158 OXPCIe952 Dual Native 950 UART
e4bf c504 CP4-SCAT Wireless Technologies Carrier Board
e4bf d551 DU1-MUSTANG Dual-Port RS-485 Interface
c15c OXPCIe952 GPIO
c15d OXPCIe952 Dual Native 950 UART
c308 EX-44016 16-port serial
1416 Multiwave Innovation pte Ltd
1417 Convergenet Technologies Inc
@ -18461,7 +18535,7 @@
144d a801 SM963 2.5" NVMe PCIe SSD
a808 NVMe SSD Controller SM981/PM981/PM983
1d49 403b Thinksystem U.2 PM983 NVMe SSD
a80a NVMe SSD Controller PM9A1/980PRO
a80a NVMe SSD Controller PM9A1/PM9A3/980PRO
a820 NVMe SSD Controller 171X
1028 1f95 Express Flash NVMe XS1715 SSD 400GB
1028 1f96 Express Flash NVMe XS1715 SSD 800GB
@ -18620,6 +18694,7 @@
148a OPTO
148b INNOMEDIALOGIC Inc.
148c Tul Corporation / PowerColor
2391 Radeon RX 590 [Red Devil]
148d DIGICOM Systems, Inc.
1003 HCF 56k Data/Fax Modem
148e OSI Plus Corporation
@ -18721,9 +18796,11 @@
103c 1240 Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM)
14c2 DTK Computer
14c3 MEDIATEK Corp.
7612 MT7612E 802.11acbgn PCI Express Wireless Network Adapter
7630 MT7630e 802.11bgn Wireless Network Adapter
# MT7612E too?
7662 MT7662E 802.11ac PCI Express Wireless Network Adapter
7915 MT7915E 802.11ax PCI Express Wireless Network Adapter
14c4 IWASAKI Information Systems Co Ltd
14c5 Automation Products AB
14c6 Data Race Inc
@ -18997,6 +19074,8 @@
1028 08fd PowerEdge R6515/R7515 LOM
1028 08ff PowerEdge Rx5xx LOM Board
1028 0900 PowerEdge C6525 LOM
# Dell 5720 LOM
1028 0917 PowerEdge C6520 LOM
103c 1786 NC332T Adapter
103c 193d NC332i Adapter
103c 2133 NC332i Adapter
@ -19296,8 +19375,12 @@
1750 BCM57508 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb/200Gb Ethernet
14e4 2100 NetXtreme-E Dual-port 100G QSFP56 Ethernet PCIe4.0 x16 Adapter (BCM957508-P2100G)
14e4 5208 NetXtreme-E Dual-port 100G QSFP56 Ethernet OCP 3.0 Adapter (BCM957508-N2100G)
14e4 d124 NetXtreme-E P2100D BCM57508 2x100G QSFP PCIE
14e4 df24 BCM57508 NetXtreme-E NGM2100D 2x100G KR Mezz Ethernet
1751 BCM57504 NetXtreme-E 10Gb/25Gb/40Gb/50Gb/100Gb/200Gb Ethernet
14e4 5045 NetXtreme-E BCM57504 4x25G OCP3.0
14e4 5250 NetXtreme-E BCM57504 4x25G KR Mezz
14e4 d142 NetXtreme-E P425D BCM57504 4x25G SFP28 PCIE
1752 BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet
1800 BCM57502 NetXtreme-E Ethernet Partition
1801 BCM57504 NetXtreme-E Ethernet Partition
@ -19517,6 +19600,7 @@
4410 BCM4413 iLine32 HomePNA 2.0
4411 BCM4413 V.90 56k modem
4412 BCM4412 10/100BaseT
4415 BCM4359 802.11ac Dual-Band Wireless Network Controller
441f BCM4361 802.11ac Dual-Band Wireless Network Controller
4420 BCM4361 802.11ac 2.4 GHz Wireless Network Controller
4421 BCM4361 802.11ac 5 GHz Wireless Network Controller
@ -20404,6 +20488,10 @@
1979 MT2910 Family [ConnectX-7 PCIe Bridge]
197a MT43162 Family [BlueField-3 Lx SoC PCIe Bridge]
197b MT43244 Family [BlueField-3 SoC PCIe Bridge]
2020 MT2892 Family [ConnectX-6 Dx Emulated PCIe Bridge]
2021 MT42822 Family [BlueField-2 SoC Emulated PCIe Bridge]
2023 MT2910 Family [ConnectX-7 Emulated PCIe Bridge]
2024 MT43244 Family [BlueField-3 SoC Emulated PCIe Bridge]
4117 MT27712A0-FDCF-AE
1bd4 0039 SN10XMP2P25
1bd4 003a 25G SFP28 SP EO251FM9 Adapter
@ -21330,7 +21418,9 @@
0004 Octeon (and older) FIPS
0005 Octeon CN38XX Network Processor Pass 3.x
0006 RoHS
0010 Nitrox XL NPX
0010 CN15XX/CN16XX [Nitrox PX]
0011 CNN35XX [Nitrox III]
0012 CNN55XX [Nitrox V]
0020 Octeon CN31XX Network Processor
0030 Octeon CN30XX Network Processor
0040 Octeon CN58XX Network Processor
@ -21497,6 +21587,7 @@
8083 GL880 USB 1.1 UHCI controller
8084 GL880 USB 2.0 EHCI controller
9750 GL9750 SD Host Controller
9755 GL9755 SD Host Controller
e763 GL9763E eMMC Controller
17aa Lenovo
3181 ThinkCentre M75n IoT
@ -21522,10 +21613,11 @@
1385 6d00 WPNT511 RangeMax 240 Mbps Wireless CardBus Adapter
1737 0054 WPC54GX4 v1 802.11g Wireless-G Notebook Adapter with SRX400
0105 MSM8998 PCIe Root Complex
0108 SM8150/SA8195P PCIe Root Complex
0300 MDM9x35 LTE Modem
0301 MDM9640 PCIe Root Complex
0302 MDM9x55 LTE Modem [Snapdragon X12]
0108 SM8150 PCIe Root Complex
0109 SA8195P PCIe Root Complex
0300 MDM9x35 LTE Modem [Snapdragon X7]
0301 MDM9x45 LTE Modem [Snapdragon X12]
0302 MDM9x55 LTE Modem [Snapdragon X16]
0400 Datacenter Technologies QDF2432 PCI Express Root Port
0401 Datacenter Technologies QDF2400 PCI Express Root Port
1000 QCS405 PCIe Root Complex
@ -22869,6 +22961,7 @@
1052 Virtio input
# virtio 1.0
1053 Virtio socket
105a Virtio file system
1110 Inter-VM shared memory
1af4 1100 QEMU Virtual Machine
1af5 Netezza Corp.
@ -22894,8 +22987,10 @@
1080 ASM1083/1085 PCIe to PCI Bridge
1849 1080 Motherboard
1142 ASM1042A USB 3.0 Host Controller
1184 ASM1184e PCIe Switch Port
1849 1184 ASM1184e PCIe Switch
1182 ASM1182e 2-Port PCIe x1 Gen2 Packet Switch
1b21 118f ASM1182e 2-Port PCIe x1 Gen2 Packet Switch
1184 ASM1184e 4-Port PCIe x1 Gen2 Packet Switch
1849 1184 ASM1184e 4-Port PCIe x1 Gen2 Packet Switch
1242 ASM1142 USB 3.1 Host Controller
1343 ASM1143 USB 3.1 Host Controller
2142 ASM2142 USB 3.1 Host Controller
@ -23111,6 +23206,8 @@
# Kersey 2.5" TCG
1bb1 0152 Nytro 5520 TCG
1bb1 01a1 Nytro XP7102
5012 FireCuda 510 SSD
5016 FireCuda 520 SSD
1bb3 Bluecherry
4304 BC-04120A MPEG4 4 port video encoder / decoder
4309 BC-08240A MPEG4 4 port video encoder / decoder
@ -23125,6 +23222,16 @@
1bbf Maxeler Technologies Ltd.
0003 MAX3
0004 MAX4
1bc0 Innodisk Corporation
1001 PCIe 3TG6-P Controller
1002 PCIe 3TE6 Controller
1160 PCIe 3TE2 Controller
1321 PCIe 4TG-P Controller
1322 PCIe 4TE Controller
2262 PCIe 3TG3-P Controller
5208 PCIe 3TE7 Controller
5216 PCIe 3TE8 Controller
5236 PCIe 4TG2-P Controller
1bcf NEC Corporation
001c Vector Engine 1.0
1bd0 Astronics Corporation
@ -23196,6 +23303,8 @@
00e1 PacketMover 2x100Gb [Tivoli]
00e3 PacketMover 2x10Gb [Tivoli]
00e5 PacketMover 2x10Gb [Corfu]
1000 SmartNIC N5010 4x100Gb
1001 SmartNIC N5011 w/2xE810 4x100Gb
a000 FBC2CGG3 Capture 2x40Gb [Mango_02]
a001 FBC2CGG3 Capture 2x100Gb [Mango_02]
a003 FBC2CGG3 Capture 16x10Gb [Mango]
@ -23267,6 +23376,10 @@
0001 Hunter PCI Express
1c8c Mobiveil, Inc.
1cb0 Shannon Systems
8266 Andalusia Series SSD
1cb0 2021 Andalusia Series OCS U.2 SSD
1cb0 2121 Andalusia Series ZNS U.2 SSD
1cb0 2f21 Andalusia Series NVMe U.2 SSD
d000 Venice NVMe SSD
1cb0 2010 Venice-E Series OCS U.2
1cb0 2011 Venice Series OCS U.2
@ -23469,6 +23582,9 @@
1017 AR-ARK-FX1 [Arkville 64B Multi-Homed Primary Endpoint]
1018 AR-ARK-FX1 [Arkville 64B Multi-Homed Secondary Endpoint]
1019 AR-ARK-FX1 [Arkville 64B Multi-Homed Tertiary Endpoint]
101a AR-ARK-SRIOV-FX0 [Arkville 32B Primary Physical Function]
101b AR-ARK-SRIOV-FX1 [Arkville 64B Primary Physical Function]
101c AR-ARK-SRIOV-VF [Arkville Virtual Function]
4200 A5PL-E1-10GETI [10 GbE Ethernet Traffic Instrument]
1d72 Xiaomi
1d78 DERA Storage
@ -23533,6 +23649,7 @@
0001 Colossus GC2 [C2]
0002 Colossus GC1 [S1]
1d97 Shenzhen Longsys Electronics Co., Ltd.
2263 SM2263EN/SM2263XT-based OEM SSD
1d9b Facebook, Inc.
0010 Networking DOM Engine
0011 IO Bridge
@ -23543,6 +23660,8 @@
0001 HL-1000 AI Inference Accelerator [Goya]
# PCIe accelerator card for Deep Learning training tasks
1000 HL-2000 AI Training Accelerator [Gaudi]
# PCIe accelerator card for Deep Learning training tasks with secured firmware
1010 HL-2000 AI Training Accelerator [Gaudi secured]
1db2 ATP ELECTRONICS INC
1dbb NGD Systems, Inc.
1dbf Guizhou Huaxintong Semiconductor Technology Co., Ltd
@ -23692,7 +23811,11 @@
1df3 0000 Maintenance Mode
1df3 0001 ENA2200F
0207 ACE-NIC50RN Programmable Network Accelerator
1df3 0000 Maintenance Mode
1df3 0001 ENA2050RN
0208 ACE-NIC100RN Programmable Network Accelerator
1df3 0000 Maintenance Mode
1df3 0001 ENA2100RN
1df7 opencpi.org
0001 ml605
0002 alst4
@ -23739,7 +23862,7 @@
1e36 Shanghai Enflame Technology Co. Ltd
0001 T10 [CloudBlazer]
0002 T11 [CloudBlazer]
0003 T10s [CloudBlazer]
0003 T10(QSFP-DD) [CloudBlazer]
8011 I10 [CloudBlazer]
8012 I10L [CloudBlazer]
# nee Thinci, Inc
@ -23808,6 +23931,8 @@
1eae XFX Limited
1eb1 VeriSilicon Inc
1001 Video Accelerator
1ebd EMERGETECH Company Ltd.
0101 Seirios 2063 Video Codec
1ed3 Yeston
1ed8 Digiteq Automotive
0101 FG4 PCIe Frame Grabber
@ -24754,6 +24879,7 @@
8086 0034 Wireless-AC 9560 160MHz
8086 0070 Wi-Fi 6 AX201 160MHz
8086 0074 Wi-Fi 6 AX201 160MHz
8086 4070 Wireless-AC 9462 80MHz
02f5 Comet Lake PCH-LP SCS3
02f9 Comet Lake Thermal Subsytem
02fc Comet Lake Integrated Sensor Solution
@ -25354,6 +25480,7 @@
8086 8008 NVMe Datacenter SSD [3DNAND] SE 2.5" U.2 (P5510)
8086 8d08 NVMe Datacenter SSD [3DNAND] VE 2.5" U.2 (P5316)
8086 8d1d NVMe Datacenter SSD [3DNAND] VE E1.L 9.5/18mm (P5316)
0bd0 Ponte Vecchio 2T
0be0 Atom Processor D2xxx/N2xxx Integrated Graphics Controller
0be1 Atom Processor D2xxx/N2xxx Integrated Graphics Controller
105b 0d7c D270S/D250S Motherboard
@ -26134,7 +26261,7 @@
103c 2159 Ethernet 10Gb 2-port 562i Adapter
108e 7b11 Ethernet Server Adapter X520-2
1170 004c 82599 DP 10G Mezzanine Adapter
15d9 0611 AOC-STGN-I2S [REV 1.01]
15d9 0611 AOC-STGN-i2S
1734 11a9 10 Gigabit Dual Port Network Connection
17aa 1071 ThinkServer X520-2 AnyFabric
17aa 4007 82599ES 10-Gigabit SFI/SFP+ Network Connection
@ -26469,6 +26596,7 @@
1093 775b PCIe-8237 Ethernet Adapter
10a9 802a UV2-BaseIO dual-port GbE
1137 023e 1GigE I350 LOM
15d9 0000 AOC-SGP-i4
15d9 0652 Dual Port i350 GbE MicroLP [AOC-CGP-i2]
17aa 1074 ThinkServer I350-T4 AnyFabric
17aa 4005 I350 Gigabit Network Connection
@ -26784,6 +26912,7 @@
1591 Ethernet Controller E810-C for backplane
1592 Ethernet Controller E810-C for QSFP
1137 02bf E810CQDA2 2x100 GbE QSFP28 PCIe NIC
193d 1050 NIC-ETH1060F-LP-2P 2x100GbE Ethernet PCIe Card
8086 0001 Ethernet Network Adapter E810-C-Q1
8086 0002 Ethernet Network Adapter E810-C-Q2
8086 0004 Ethernet Network Adapter E810-C-Q2
@ -27318,6 +27447,7 @@
15d9 066b X9SRL-F
1d2d C600/X79 series chipset USB2 Enhanced Host Controller #2
1028 04f7 C602J on PowerEdge R320 server
103c 18a9 HP DL360e G8
15d9 066b X9SRL-F
1d33 C600/X79 series chipset LAN Controller
1d35 C600/X79 series chipset VECI Controller
@ -28900,7 +29030,22 @@
8086 3904 NVMe Datacenter SSD [Optane] x4 AIC (P4800X)
8086 3905 NVMe Datacenter SSD [Optane] 15mm 2.5" U.2 (P4800X)
2723 Wi-Fi 6 AX200
8086 2723 Wireless AX200
1a56 1654 Killer™ Wi-Fi 6 AX1650x (AX200NGW)
8086 0084 Wi-Fi 6 AX200NGW
2725 Wi-Fi 6 AX210/AX211/AX411 160MHz
8086 0020 Wi-Fi 6 AX210 160MHz
8086 0024 Wi-Fi 6 AX210 160MHz
8086 0090 Wi-Fi 6 AX211 160MHz
8086 00b0 Wi-Fi 6 AX411 160MHz
8086 0310 Wi-Fi 6 AX210 160MHz
8086 0510 Wi-Fi 6 AX210 160MHz
8086 0a10 Wi-Fi 6 AX210 160MHz
8086 2020 Wi-Fi 6 AX210 160MHz
8086 4020 Wi-Fi 6 AX210 160MHz
8086 6020 Wi-Fi 6 AX210 160MHz
8086 6024 Wi-Fi 6 AX210 160MHz
8086 e020 Wi-Fi 6 AX210 160MHz
8086 e024 Wi-Fi 6 AX210 160MHz
2770 82945G/GZ/P/PL Memory Controller Hub
1028 01ad OptiPlex GX620
103c 2a3b Pavilion A1512X
@ -30390,7 +30535,9 @@
31d9 Gemini Lake PCI Express Root Port
31da Gemini Lake PCI Express Root Port
31db Gemini Lake PCI Express Root Port
31dc AC 1550i Wireless
31dc Gemini Lake PCH CNVi WiFi
1a56 1552 Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
8086 0034 Wireless-AC 9560
31e3 Celeron/Pentium Silver Processor SATA Controller
31e8 Celeron/Pentium Silver Processor LPC Controller
31ee Celeron/Pentium Silver Processor Serial IO UART Host Controller
@ -30491,7 +30638,10 @@
34eb Ice Lake-LP Serial IO I2C Controller #3
34ed Ice Lake-LP USB 3.1 xHCI Host Controller
34ef Ice Lake-LP DRAM Controller
34f0 Killer Wi-Fi 6 AX1650i 160MHz Wireless Network Adapter (201NGW)
34f0 Ice Lake-LP PCH CNVi WiFi
1a56 1552 Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
8086 0074 Wi-Fi 6 AX201
8086 0264 Wireless-AC 9461
34f8 Ice Lake-LP SD Controller
34fc Ice Lake-LP Integrated Sensor Solution
3500 6311ESB/6321ESB PCI Express Upstream Port
@ -31162,7 +31312,7 @@
4140 NVMe Datacenter SSD [Optane]
1028 2134 NVMe Datacenter SSD [Optane] SED 400GB 2.5" U.2 (P5800X)
1028 2135 NVMe Datacenter SSD [Optane] SED 800GB 2.5" U.2 (P5800X)
1028 2136 NVMe Datacenter SSD [Optane] SED 1.6GB 2.5" U.2 (P5800X)
1028 2136 NVMe Datacenter SSD [Optane] SED 1.6TB 2.5" U.2 (P5800X)
1028 2137 NVMe Datacenter SSD [Optane] 400GB 2.5" U.2 (P5800X)
1028 2138 NVMe Datacenter SSD [Optane] 800GB 2.5" U.2 (P5800X)
1028 2139 NVMe Datacenter SSD [Optane] 1.6TB 2.5" U.2 (P5800X)
@ -31265,16 +31415,36 @@
43e8 Tiger Lake-H Serial IO I2C Controller #0
43ed Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller
43ef Tiger Lake-H Shared SRAM
43f0 Wi-Fi 6 AX201
43f0 Tiger Lake PCH CNVi WiFi
8086 0034 Wireless-AC 9560
8086 0074 Wi-Fi 6 AX201 160MHz
8086 0264 Wireless-AC 9461
8086 02a4 Wireless-AC 9462
444e Turbo Memory Controller
467f Volume Management Device NVMe RAID Controller
4680 AlderLake-S GT1
46a0 AlderLake-P GT2
46c0 AlderLake-M GT1
4905 DG1 [Iris Xe MAX Graphics]
4906 DG1 [Iris Xe Pod]
4907 SG1 [Server GPU SG-18M]
4908 DG1 [Iris Xe Graphics]
4c3d Volume Management Device NVMe RAID Controller
4c8a RocketLake-S GT1 [UHD Graphics 750]
4c8b RocketLake-S GT1 [UHD Graphics 730]
4c90 RocketLake-S GT1 [UHD Graphics P750]
4c9a RocketLake-S [UHD Graphics]
4da3 JaserLake SMBus
4da4 JaserLake SPI (flash) Controller
4de0 Management Engine Interface
4de8 Serial IO I2C Host Controller
4de9 Serial IO I2C Host Controller
4df0 Wi-Fi 6 AX201 160MHz
4e03 Dynamic Tuning service
4e19 JasperLake IPU
4e55 JasperLake [UHD Graphics]
4e61 JasperLake [UHD Graphics]
4e71 JasperLake [UHD Graphics]
4f80 DG2
4f81 DG2
4f82 DG2
@ -32022,7 +32192,7 @@
9a03 TigerLake-LP Dynamic Tuning Processor Participant
9a09 11th Gen Core Processor PCIe Controller
9a0b Volume Management Device NVMe RAID Controller
9a0d Tiger Lake-LP Telemetry Aggregator
9a0d Tigerlake Telemetry Aggregator Driver
9a0f 11th Gen Core Processor PCIe Controller #0
9a11 GNA Scoring Accelerator module
9a13 Tiger Lake-LP Thunderbolt 4 USB Controller
@ -32043,10 +32213,11 @@
9a31 Tiger Lake-H Thunderbolt 4 PCI Express Root Port #3
9a33 Tiger Lake Trace Hub
9a36 11th Gen Core Processor Host Bridge/DRAM Registers
9a49 TigerLake GT2 [Iris Xe Graphics]
9a60 TigerLake GT2 [Iris Xe Graphics]
9a68 Tiger Lake-H UHD Graphics
9a49 TigerLake-LP GT2 [Iris Xe Graphics]
9a60 TigerLake-H GT1 [UHD Graphics]
9a68 TigerLake-H GT1 [UHD Graphics]
9b41 CometLake-U GT2 [UHD Graphics]
1028 09bd Latitude 7310
9b44 10th Gen Core Processor Host Bridge/DRAM Registers
9b53 Comet Lake-S 6c Host Bridge/DRAM Controller
9b54 10th Gen Core Processor Host Bridge/DRAM Registers
@ -32056,6 +32227,7 @@
9bc4 CometLake-H GT2 [UHD Graphics]
9bc5 CometLake-S GT2 [UHD Graphics 630]
9bc8 CometLake-S GT2 [UHD Graphics 630]
9bca Comet Lake UHD Graphics
9c00 8 Series SATA Controller 1 [IDE mode]
9c01 8 Series SATA Controller 1 [IDE mode]
9c02 8 Series SATA Controller 1 [AHCI mode]
@ -32667,8 +32839,9 @@
a36d Cannon Lake PCH USB 3.1 xHCI Host Controller
1028 0869 Vostro 3470
a36f Cannon Lake PCH Shared SRAM
a370 Wireless-AC 9560 [Jefferson Peak]
a370 Cannon Lake PCH CNVi WiFi
1a56 1552 Killer(R) Wireless-AC 1550i Wireless Network Adapter (9560NGW)
8086 0034 Wireless-AC 9560
a379 Cannon Lake PCH Thermal Controller
1028 0869 Vostro 3470
a382 400 Series Chipset Family SATA AHCI Controller
@ -32782,6 +32955,8 @@
1011 vSMP Foundation MEX/FLX controller [vSMP CTL]
8800 Trigem Computer Inc.
2008 Video assistant component
8820 Stryker Corporation
2724 Mako Front Side Motor Controller [cPCI]
8866 T-Square Design Inc.
8888 Silicon Magic
8912 TRX
@ -33388,6 +33563,7 @@ bdbd Blackmagic Design
c001 TSI Telsys
c0a9 Micron/Crucial Technology
2263 P1 NVMe PCIe SSD
540a P2 NVMe PCIe SSD
c0de Motorola
c0fe Motion Engineering, Inc.
ca3b Cambrionix Ltd.

View File

@ -2472,6 +2472,18 @@
<tr class="even"><td>Micro-Star Int&#039;l Co., Ltd.</td><td>CND</td><td>02/17/2021</td> </tr>
<tr class="odd"><td>Newline Interactive Inc.</td><td>NWL</td><td>12/03/2020</td> </tr>
<tr class="even"><td>CORSAIR MEMORY Inc.</td><td>CRM</td><td>02/05/2021</td> </tr>
<tr class="odd"><td>aviica</td><td>VAV</td><td>06/01/2021</td> </tr>
<tr class="even"><td>Monoprice.Inc</td><td>DMG</td><td>06/04/2021</td> </tr>
<tr class="odd"><td>Shenzhen KTC Technology Group</td><td>SKG</td><td>06/01/2021</td> </tr>
<tr class="even"><td>Truly Semiconductors Ltd.</td><td>TLY</td><td>06/01/2021</td> </tr>
<tr class="odd"><td>Hitevision Group</td><td>HHT</td><td>03/08/2021</td> </tr>
<tr class="even"><td>DLOGIC Ltd.</td><td>DLM</td><td>06/10/2021</td> </tr>
<tr class="odd"><td>Fun Technology Innovation INC.</td><td>FUL</td><td>06/10/2021</td> </tr>
<tr class="even"><td>Guangxi Century Innovation Display Electronics Co., Ltd</td><td>IOC</td><td>06/10/2021</td> </tr>
<tr class="odd"><td>ICC Intelligent Platforms GmbH</td><td>EMR</td><td>06/10/2021</td> </tr>
<tr class="even"><td>New H3C Technology Co., Ltd.</td><td>NHC</td><td>06/10/2021</td> </tr>
<tr class="odd"><td>Seco S.p.A.</td><td>SCG</td><td>06/10/2021</td> </tr>
<tr class="even"><td>Silent Power Electronics GmbH</td><td>LCP</td><td>06/10/2021</td> </tr>
</tbody>
</table>
</body>

View File

@ -9,8 +9,8 @@
# The latest version can be obtained from
# http://www.linux-usb.org/usb.ids
#
# Version: 2021.02.19
# Date: 2021-02-19 20:34:10
# Version: 2021.06.06
# Date: 2021-06-06 20:34:10
#
# Vendors, devices and interfaces. Please keep sorted.
@ -593,6 +593,7 @@
6217 Color LaserJet 4700
6302 PhotoSmart 318/612
6317 Color LaserJet 4730mfp
632a LaserJet M203-M206
6402 PhotoSmart 715 (ptp)
6411 PhotoSmart C8100 series
6417 LaserJet 5200
@ -781,6 +782,7 @@
5642 Storage Device
5661 M5661 MP3 player
5667 M5667 MP3 player
8841 Newmine Camera
9665 Gateway Webcam
0403 Future Technology Devices International, Ltd
0000 H4SMK 7 Port Hub / Bricked Counterfeit FT232 Serial (UART) IC
@ -798,6 +800,7 @@
6014 FT232H Single HS USB-UART/FIFO IC
6015 Bridge(I2C/SPI/UART/FIFO)
601f Myriad-RF LimeSDR-Mini
6ee0 EZO Carrier Board
6f70 HB-RF-USB
8028 Dev board JTAG (FT232H based)
8040 4 Port Hub
@ -820,8 +823,10 @@
9090 SNAP Stick 200
9132 LCD and Temperature Interface
9133 CallerID
9134 Virtual keyboard
9135 Rotary Pub alarm
9136 Pulsecounter
9137 Ledbutton interface
9e90 Marvell OpenRD Base/Client
9f08 CIB-1894 Conclusion SmartLink Box:
9f80 Ewert Energy Systems CANdapter
@ -925,6 +930,7 @@
f7c0 ZeitControl Cardsystems TagTracer MIFARE
f850 USB-UIRT (Universal Infrared Receiver+Transmitter)
f918 Ant8 Logic Probe
f9d9 Wetterempfanger 147.3kHz
fa00 Matrix Orbital USB Serial
fa01 Matrix Orbital MX2 or MX3
fa02 Matrix Orbital MX4 or MX5
@ -1014,6 +1020,7 @@
00c0 Wireless Remocon
00f7 Smart Display PK-SD10
011d e228 Mobile Phone
0193 RVT-R Writer
0203 HID Audio Controls
021d Aterm WL54SU2 802.11g Wireless Adapter [Atheros AR5523]
0248 Aterm PA-WL54GU
@ -1374,6 +1381,7 @@
3220 Sound Blaster Tactic(3D) Sigma sound card
3232 Sound Blaster Premium HD [SBX]
3237 SB X-Fi Surround 5.1 Pro
3241 Sound Blaster JAM
3263 SB X-Fi Surround 5.1 Pro
3f00 E-Mu Xboard 25 MIDI Controller
3f02 E-Mu 0202
@ -1441,6 +1449,7 @@
4088 Live! Cam Chat HD [VF0700]
4095 Live! Cam Sync HD [VF0770]
4097 Live! Cam Chat HD [VF0700]
4099 Creative VF0800 [RealSense Camera SR300]
4100 Nomad Jukebox 2
4101 Nomad Jukebox 3
4102 NOMAD MuVo^2
@ -2004,6 +2013,7 @@
b651 Ferrari GT Rumble Force Wheel
b653 RGT Force Feedback Clutch Racing Wheel
b654 Ferrari GT Force Feedback Wheel
b677 T150 Racing Wheel
b678 T.Flight Rudder Pedals
b679 T-Rudder
b687 TWCS Throttle
@ -2532,6 +2542,7 @@
09a0 RTL8153B GigE [Surface Ethernet Adapter]
09c0 Surface Type Cover
0a00 Lumia 950 Dual SIM (RM-1118)
0b12 Xbox Wireless Controller (model 1914)
930a ISOUSB.SYS Intel 82930 Isochronous IO Test Board
ffca Catalina
fff8 Keyboard
@ -2683,11 +2694,18 @@
0837 BCC950 ConferenceCam
0840 QuickCam Express
0843 Webcam C930e
0845 ConferenceCam CC3000e Camera
0846 ConferenceCam CC3000e Speakerphone
084b ConferenceCam Connect Video
0850 QuickCam Web
0857 Logi Group Speakerphone
085c C922 Pro Stream Webcam
085e BRIO Ultra HD Webcam
0870 QuickCam Express
0882 Logi Group Speakerphone
0890 QuickCam Traveler
0892 OrbiCam
0892 C920 HD Pro Webcam
0893 StreamCam
0894 CrystalCam
0895 QuickCam for Dell Notebooks
0896 OrbiCam
@ -2796,6 +2814,7 @@
0a5b G933 Wireless Headset Dongle
0a5d G933 Headset Battery Charger
0a66 [G533 Wireless Headset Dongle]
0a8f H390 headset with microphone
0b02 C-UV35 [Bluetooth Mini-Receiver] (HID proxy mode)
8801 Video Camera
b014 Bluetooth Mouse M336/M337/M535
@ -2875,6 +2894,7 @@
c083 G403 Prodigy Gaming Mouse
c084 G203 Gaming Mouse
c08b G502 SE HERO Gaming Mouse
c092 G203 LIGHTSYNC Gaming Mouse
c101 UltraX Media Remote
c110 Harmony 785/880/885 Remote
c111 Harmony 525 Remote
@ -2934,6 +2954,7 @@
c24e G500s Laser Gaming Mouse
c24f G29 Driving Force Racing Wheel [PS3]
c260 G29 Driving Force Racing Wheel [PS4]
c262 G920 Driving Force Racing Wheel
c281 WingMan Force
c283 WingMan Force 3D
c285 WingMan Strike Force 3D
@ -2981,6 +3002,7 @@
c332 G502 Proteus Spectrum Optical Mouse
c335 G910 Orion Spectrum Mechanical Keyboard
c33a G413 Gaming Keyboard
c33f G815 Mechanical Keyboard
c401 TrackMan Marble Wheel
c402 Marble Mouse (2-button)
c403 Turbo TrackMan Marble FX
@ -3021,6 +3043,7 @@
c534 Unifying Receiver
c537 Cordless Mouse Receiver
c53a PowerPlay Wireless Charging System
c53d G631 Keyboard
c603 3Dconnexion Spacemouse Plus XT
c605 3Dconnexion CADman
c606 3Dconnexion Spacemouse Classic
@ -3301,6 +3324,8 @@
5001 Cabo I Camera
5002 VideoCam CABO II
5003 VideoCam
8018 Expert Wireless Trackball Mouse (K72359WW)
8068 Pro Fit Ergo Vertical Wireless Trackball
047e Agere Systems, Inc. (Lucent)
0300 ORiNOCO Card
1001 USS720 Parallel Port
@ -3321,6 +3346,7 @@
c008 Audio 655 DSP
c00e Blackwire C310 headset
c03b HD1
ca01 Calisto 800 Series
da60 DA60
0480 Toshiba America Inc
0001 InTouch Module
@ -3362,6 +3388,7 @@
0408 FS-1320D Printer
0640 ECOSYS M6026cdn
069b ECOSYS M2635dn
06b4 ECOSYS M5526cdw
0483 STMicroelectronics
0137 BeWAN ADSL USB ST (blue or green)
0138 Unicorn II (ST70138B + MTC-20174TQ chipset)
@ -3700,6 +3727,7 @@
04ac Xerox Travel Scanner 100
04bb strobe 400 scanner
04cd Xerox Travel Scanner 150
04ee Duplex Combo Scanner
04a8 Multivideo Labs, Inc.
0101 Hub
0303 Peripheral Switch
@ -3906,6 +3934,7 @@
190d CanoScan 9000F Mark II
190e CanoScan LiDE 120
190f CanoScan LiDE 220
1913 CanoScan LiDE 300
2200 CanoScan LiDE 25
2201 CanoScan FB320U
2202 CanoScan FB620U
@ -4367,6 +4396,7 @@
32b4 EOS Rebel T6
32bb EOS M5
32bf PowerShot SX420 IS
32c0 PowerShot ELPH 190IS
32c1 PowerShot ELPH 180 / IXUS 175
32c2 PowerShot SX720 HS
32c5 EOS M6
@ -4443,6 +4473,8 @@
040e DSC D70s (ptp)
040f D200 (mass storage mode)
0410 D200 (ptp)
0411 D80 (mass storage mode)
0412 D80 (MTP/PTP mode)
0413 D40 (mass storage mode)
041e D60 digital camera (mass storage mode)
0422 D700 (ptp)
@ -4496,6 +4528,7 @@
04b4 Cypress Semiconductor Corp.
0001 Mouse
0002 CY7C63x0x Thermometer
0008 CDC ACM serial port
0033 Mouse
0060 Wireless optical mouse
00f3 FX3 micro-controller (DFU mode)
@ -4505,6 +4538,7 @@
0130 MyIRC Remote Receiver
0306 Telephone Receiver
0407 Optical Skype Mouse
0818 AE-SMKD92-* [Thumb Keyboard]
0bad MetaGeek Wi-Spy
1002 CY7C63001 R100 FM Radio
1006 Human Interface Device
@ -4735,6 +4769,7 @@
0e03 Thermal Receipt Printer [TM-T20]
1114 XP-440 [Expression Home Small-in-One Printer]
1129 ET-4750 [WorkForce ET-4750 EcoTank All-in-One]
1168 Workforce WF-7820/7840 Series
04b9 Rainbow Technologies, Inc.
0300 SafeNet USB SuperPro/UltraPro
1000 iKey 1000 Token
@ -4852,6 +4887,7 @@
11f3 fi-6130Z
125a PalmSecure Sensor Device - MP
132e fi-7160
159f ScanSnap iX1500
200f Sigma DP2 (Mass Storage)
2010 Sigma DP2 (PictBridge)
201d SATA 3.0 6Gbit/s Adaptor [GROOVY]
@ -4971,6 +5007,7 @@
01d3 FinePix A920 (PTP)
01d4 FinePix F50fd (PTP)
01d5 FinePix F47 (PTP)
01e7 Fujifilm A850 Digital Camera
01f7 FinePix J250 (PTP)
01fd A160
023e FinePix AX300
@ -4978,6 +5015,7 @@
0241 FinePix S3200 Digital Camera
0278 FinePix JV300
02c5 FinePix S9900W Digital Camera (PTP)
02e0 X-T200 Digital Camera
5006 ASK-300
04cc ST-Ericsson
1122 Hub
@ -5067,6 +5105,7 @@
0006 Wired Keyboard (78/79 key) [RPI Wired Keyboard 5]
0022 Portable Keyboard
0348 Keyboard
0407 Keyboard [TEX Shinobi]
048e Optical Mouse
0499 Optical Mouse
1135 Mouse [MGK-15BU/MLK-15BU]
@ -5094,9 +5133,15 @@
a09f E-Signal LUOM G10 Mechanical Gaming Mouse
a100 Mouse [HV-MS735]
a11b Mouse [MX-3200]
a153 Optical Gaming Mouse
a29f Microarray fingerprint reader
b534 LGT8F328P Microprocessor
e002 MCU
fc2a Gaming Mouse [Redragon M709]
fc30 Gaming Mouse [Redragon M711]
fc38 Gaming Mouse [Redragon M602-RGB]
fc4d Gaming Mouse [Redragon M908]
fc55 Venus MMO Gaming Mouse
04da Panasonic (Matsushita)
0901 LS-120 Camera
0912 SDR-S10
@ -5602,6 +5647,7 @@
b1ac HP Laptop Integrated Webcam [2 MP Fixed]
b1b4 Lenovo Integrated Camera
b1b9 Asus Integrated Webcam
b1bb 2.0M UVC WebCam
b1cf Lenovo Integrated Camera
b1d6 CNF9055 Toshiba Webcam
b1d8 1.3M Webcam
@ -5630,6 +5676,8 @@
b444 Lenovo Integrated Webcam
b49f Bluetooth (RTL8723BE)
b563 Integrated Camera
b5ab Integrated Camera
b5ac Integrated IR Camera
b5ce Integrated Camera
b5cf Integrated IR Camera
b5db HP Webcam
@ -5651,6 +5699,7 @@
02f4 2.4G Cordless Mouse
0381 Touchscreen
04a0 Dream Cheeky Stress/Panic Button
0c28 fingerprint sensor [FeinTech FPS00200]
2234 Touchscreen
04f4 Harting Elektronik, Inc.
04f5 Fujitsu-ICL Systems, Inc.
@ -5695,6 +5744,8 @@
002b HL-5250DN Printer
002c Printer
002d Printer
0037 HL-3040CN series
0038 HL-3070CW series
0039 HL-5340 series
0041 HL-2250DN Laser Printer
0042 HL-2270DW Laser Printer
@ -5875,6 +5926,7 @@
01eb MFC-7320
01ec MFC-9640CW
01f4 MFC-5890CN
0204 DCP-165C
020a MFC-8670DN
020c DCP-9042CDN
020d MFC-9450CDN
@ -6153,6 +6205,19 @@
03bc MFC-L2700DN
03bd DCP-J762N
03fd ADS-2700W
043f MFC-L3770CDW
0440 MFC-9350CDW
0441 MFC-L3750CDW
0442 MFC-L3745CDW
0443 MFC-L3735CDN
0444 MFC-9150CDN
0445 MFC-L3730CDN
0446 MFC-L3710CW
0447 DCP-9030CDN
0448 DCP-L3550CDW
044a HL-L3290CDW
044b DCP-L3510CDW
044c DCP-L3551CDW
1000 Printer
1002 Printer
2002 PTUSB Printing
@ -6177,6 +6242,7 @@
204d QL-720NW Label Printer (mass storage mode)
2061 PT-P700 P-touch Label Printer
2064 PT-P700 P-touch Label Printer RemovableDisk
2074 PT-D600 P-touch Label Printer
209b QL-800 Label Printer
209c QL-810W Label Printer
209d QL-820NWB Label Printer
@ -6437,12 +6503,14 @@
a4a2 Linux-USB Ethernet/RNDIS Gadget
a4a3 Linux-USB user-mode isochronous source/sink
a4a4 Linux-USB user-mode bulk source/sink
a4a5 Pocketbook Pro 903 / Mobius 2 Action Cam / xDuoo X3 / PocketBook Pro 602
a4a5 Linux-USB File-backed Storage Gadget
a4a6 Linux-USB Serial Gadget
a4a7 Linux-USB Serial Gadget (CDC ACM mode)
a4a8 Linux-USB Printer Gadget
a4a9 Linux-USB OBEX Gadget
a4aa Linux-USB CDC Composite Gadge (Ethernet and ACM)
a4ab Linux-USB Multifunction Composite Gadget
a4ac Linux-USB HID Gadget
0526 Temic MHS S.A.
0527 ALTRA
0528 ATI Technologies, Inc.
@ -6772,9 +6840,11 @@
0689 Walkman NWZ-B173F
06bb WALKMAN NWZ-F805
06c3 RC-S380
07c3 ILCE-6000 (aka Alpha-6000) in Mass Storage mode
07c4 ILCE-6000 (aka Alpha-6000) in Mass Storage mode
082f Walkman NWZW Series
0847 WG-C10 Portable Wireless Server
0877 UP-D898/X898 series
0884 MDR-ZX770BN [Wireless Noise Canceling Stereo Headset]
088c Portable Headphone Amplifier
08b7 ILCE-6000 (aka Alpha-6000) in MTP mode
@ -6786,8 +6856,12 @@
0c02 ILCE-7M3 [A7III] in Mass Storage mode
0c03 ILCE-7M3 [A7III] in MTP mode
0c34 ILCE-7M3 [A7III] in PC Remote mode
0c7f WH-CH700N [Wireless Noise-Canceling Headphones]
0cd3 WH-1000XM3 [Wireless Noise-Canceling Headphones]
0cda PlayStation Classic controller
0ce0 WF-1000XM3 [Wireless Noise-Canceling Headphones]
0cf0 MRW-G1
0d58 WH-1000XM4 [Wireless Noise-Canceling Headphones]
1000 Wireless Buzz! Receiver
054d Try Corp.
054e Proside Corp.
@ -6832,6 +6906,7 @@
2213 CS682 2-Port USB 2.0 DVI KVM Switch
2221 Winbond Hermon
2404 4-port switch
2419 Virtual mouse/keyboard device
2600 IDE Bridge
2701 CE700A KVM Extender
4000 DSB-650 10Mbps Ethernet [klsi]
@ -7162,7 +7237,19 @@
0001 Monitor
0002 HID Monitor Controls
0003 Device Bay Controller
4000 FlexScan EV3237
4001 Monitor
4002 USB HID Monitor
4014 FlexScan EV2750
4026 FlexScan EV2451
4027 FlexScan EV2456
4036 FlexScan EV2785
4037 FlexScan EV3285
4044 FlexScan EV2457
4059 FlexScan EV2760
405b FlexScan EV2460
405f FlexScan EV2795
4065 FlexScan EV3895
056e Elecom Co., Ltd
0002 29UO Mouse
0057 Micro Grast Pop M-PGDL
@ -7930,6 +8017,7 @@
9230 Camera
9320 Camera
9331 Camera
9332 Camera - 1080p
9422 Camera
9520 Camera
05a4 Ortek Technology, Inc.
@ -8150,6 +8238,7 @@
8204 Built-in Bluetooth 2.0+EDR HCI
8205 Bluetooth HCI
8206 Bluetooth HCI
8207 Built-in Bluetooth
820a Bluetooth HID Keyboard
820b Bluetooth HID Mouse
820f Bluetooth HCI
@ -8160,6 +8249,7 @@
8218 Bluetooth Host Controller
821a Bluetooth Host Controller
821f Built-in Bluetooth 2.0+EDR HCI
8233 iBridge
8240 Built-in IR Receiver
8241 Built-in IR Receiver
8242 Built-in IR Receiver
@ -8700,6 +8790,7 @@
f102 VX7012 TV Box
f103 VX7012 TV Box
f104 VX7012 TV Box
f12a Digital Microscope
fd21 3M TL20 Temperature Logger
fe00 Razer Mouse
05e4 Red Wing Corp.
@ -8791,6 +8882,7 @@
0002 Sino Wealth keyboard/mouse 2.4 GHz receiver
00f1 Keyboard (Labtec Ultra Flat Keyboard)
00f2 Keyboard (Labtec Ultra Flat Keyboard)
1002 Mobius actioncam (webcam mode)
6871 Mouse
8611 NTK96550 based camera
0604 Jean Co., Ltd
@ -9492,6 +9584,12 @@
00f7 OKI B4600 Mono Printer
015e OKIPOS 411/412 POS Printer
01c9 OKI B430 Mono Printer
01db MC860 Multifunction Printer
01dc MC860 Multifunction Printer
01dd MC860 Multifunction Printer
01de MC860 Multifunction Printer
01df CX2633 Multifunction Printer
01e0 ES8460 Multifunction Printer
020b OKI ES4140 Mono Printer
02bb OKI PT390 POS Printer
0383 MC563 Multifunction Printer
@ -20357,6 +20455,12 @@
1101 Generic Display Device (Mass storage mode)
c101 Generic Display Device
1de6 MICRORISC s.r.o.
1df7 SDRplay
2500 RSP1
3000 RSP1a
3010 RSP2/RSP2pro
3020 RSPduo
3030 RSPdx
1e0e Qualcomm / Option
f000 iCON 210 UMTS Surfstick
1e10 Point Grey Research, Inc.

View File

@ -34,7 +34,7 @@ def rearrange_bin_sbin(path):
if __name__ == '__main__':
path = os.environ['PATH'] # This should be always set.
# If it's not, we'll just crash, we is OK too.
# If it's not, we'll just crash, which is OK too.
new = rearrange_bin_sbin(path)
if new != path:
print('PATH={}'.format(new))

View File

@ -237,6 +237,29 @@
cannot be written. Currently only applies to random seed operations.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--make-machine-id-directory=yes|no|auto</option></term>
<listitem><para>Control creation and deletion of the top-level machine ID directory on the file
system containing boot loader entries (i.e. beneath the file system returned by
<option>--print-boot-path</option> above) during <option>install</option> and
<option>remove</option>, respectively. <literal>auto</literal> is equivalent to
<literal>yes</literal> if <filename>/etc/machine-id</filename> resides on a filesystem other than
tmpfs and <literal>no</literal> otherwise (in the latter case the machine ID is likely transient and
hence should not be used persistently in the ESP). Defaults to <literal>auto</literal>. See
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
details about the machine ID concept and file.</para>
<para>Overriding this may be desirable to hide the machine ID from the (unencrypted) ESP, configure a
<citerefentry><refentrytitle>kernel-install</refentrytitle><manvolnum>8</manvolnum></citerefentry>
script, or, conversely, commit a transient machine ID.</para>
<para>The top-level machine ID directory is useful to allow smooth multi-boot installations: each
installed OS instance will have a different machine ID and thus a separate directory to place its
boot-time resources in. If this feature is turned off with this option, care needs to be taken that
multiple OS instances do not place conflicting files on the shared ESP and Extended Boot Loader
Partitions, or that multiple OS instances are not possible.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="no-pager"/>
<xi:include href="standard-options.xml" xpointer="help"/>
<xi:include href="standard-options.xml" xpointer="version"/>

35
man/check-os-release.py Normal file
View File

@ -0,0 +1,35 @@
#!/usr/bin/python
import ast
import re
import sys
def read_os_release():
try:
filename = '/etc/os-release'
f = open(filename)
except FileNotFoundError:
filename = '/usr/lib/os-release'
f = open(filename)
for line_number, line in enumerate(f):
line = line.rstrip()
if not line or line.startswith('#'):
continue
if m := re.match(r'([A-Z][A-Z_0-9]+)=(.*)', line):
name, val = m.groups()
if val and val[0] in '"\'':
val = ast.literal_eval(val)
yield name, val
else:
print(f'{filename}:{line_number + 1}: bad line {line!r}',
file=sys.stderr)
os_release = dict(read_os_release())
pretty_name = os_release.get('PRETTY_NAME', 'Linux')
print(f'Running on {pretty_name}')
if 'debian' in [os_release.get('ID', 'linux'),
*os_release.get('ID_LIKE', '').split()]:
print('Looks like Debian!')

10
man/check-os-release.sh Normal file
View File

@ -0,0 +1,10 @@
#!/bin/sh -eu
test -e /etc/os-release && os_release='/etc/os-release' || os_release='/usr/lib/os-release'
. "${os_release}"
echo "Running on ${PRETTY_NAME:-Linux}"
if [ "${ID:-linux}" = "debian" ] || [ "${ID_LIKE#*debian*}" != "${ID_LIKE}" ]; then
echo "Looks like Debian!"
fi

View File

@ -35,7 +35,7 @@
<varlistentry id='log-time'>
<term><varname>$SYSTEMD_LOG_TIME</varname></term>
<listitem><para id='log-time-body'>A boolean. If true, log messages will be prefixed with a
<listitem><para id='log-time-body'>A boolean. If true, console log messages will be prefixed with a
timestamp.</para>
<para>This setting is only useful when messages are written directly to the terminal or a file, because

View File

@ -87,7 +87,7 @@
which will be processed. Core dumps exceeding this size
may be stored, but the backtrace will not be generated.
Like other sizes in this same config file, the usual
suffixes to the base of 1024 are allowed (B, K, M,
suffixes to the base of 1024 are allowed (B, K, M,
G, T, P, and E.)</para>
<para>Setting <varname>Storage=none</varname> and <varname>ProcessSizeMax=0</varname>
@ -99,8 +99,8 @@
<term><varname>ExternalSizeMax=</varname></term>
<term><varname>JournalSizeMax=</varname></term>
<listitem><para>The maximum (uncompressed) size in bytes of a
core to be saved. Unit suffixes are allowed just as in
<listitem><para>The maximum (compressed or uncompressed) size in bytes of a
core to be saved. Unit suffixes are allowed just as in
<option>ProcessSizeMax=</option></para></listitem>.
</varlistentry>

View File

@ -354,10 +354,40 @@ Fri … 552351 1000 1000 SIGSEGV present /usr/lib64/firefox/firefox 28.7M
</example>
<example>
<title>Show information about a process that dumped core,
matching by its PID 6654</title>
<title>Show information about a core dump matched by PID</title>
<programlisting>$ coredumpctl info 6654</programlisting>
<programlisting>$ coredumpctl info 6654
PID: 6654 (bash)
UID: 1000 (user)
GID: 1000 (user)
Signal: 11 (SEGV)
Timestamp: Mon 2021-01-01 00:00:01 CET (20s ago)
Command Line: bash -c $'kill -SEGV $$'
Executable: /usr/bin/bash
Control Group: /user.slice/user-1000.slice/…
Unit: user@1000.service
User Unit: vte-spawn-….scope
Slice: user-1000.slice
Owner UID: 1000 (user)
Boot ID: …
Machine ID: …
Hostname: …
Storage: /var/lib/systemd/coredump/core.bash.1000.….zst (present)
Disk Size: 51.7K
Message: Process 130414 (bash) of user 1000 dumped core.
Stack trace of thread 130414:
#0 0x00007f398142358b kill (libc.so.6 + 0x3d58b)
#1 0x0000558c2c7fda09 kill_builtin (bash + 0xb1a09)
#2 0x0000558c2c79dc59 execute_builtin.lto_priv.0 (bash + 0x51c59)
#3 0x0000558c2c79709c execute_simple_command (bash + 0x4b09c)
#4 0x0000558c2c798408 execute_command_internal (bash + 0x4c408)
#5 0x0000558c2c7f6bdc parse_and_execute (bash + 0xaabdc)
#6 0x0000558c2c85415c run_one_command.isra.0 (bash + 0x10815c)
#7 0x0000558c2c77d040 main (bash + 0x31040)
#8 0x00007f398140db75 __libc_start_main (libc.so.6 + 0x27b75)
#9 0x0000558c2c77dd1e _start (bash + 0x31d1e)
</programlisting>
</example>
<example>

View File

@ -514,6 +514,13 @@
user is queried for a password indefinitely.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>headless=</option></term>
<listitem><para>Takes a boolean argument, defaults to false. If true, never query interactively
for the password/PIN. Useful for headless systems.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>verify</option></term>
@ -521,6 +528,22 @@
prevent typos.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>password-echo=yes|no|masked</option></term>
<listitem><para>Controls whether to echo passwords or security token PINs
that are read from console. Takes a boolean or the special string <literal>masked</literal>.
The default is <option>password-echo=masked</option>.</para>
<para>If enabled, the typed characters are echoed literally. If disabled,
the typed characters are not echoed in any form, the user will not get
feedback on their input. If set to <literal>masked</literal>, an asterisk
(<literal>*</literal>) is echoed for each character typed. Regardless of
which mode is chosen, if the user hits the tabulator key (<literal></literal>)
at any time, or the backspace key (<literal></literal>) before any other
data has been entered, then echo is turned off.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>pkcs11-uri=</option></term>
@ -645,9 +668,9 @@
<varlistentry>
<term><option>tpm2-pcrs=</option></term>
<listitem><para>Takes a comma separated list of numeric TPM2 PCR (i.e. "Platform Configuration
Register") indexes to bind the TPM2 volume unlocking to. This option is only useful when TPM2
enrollment metadata is not available in the LUKS2 JSON token header already, the way
<listitem><para>Takes a <literal>+</literal> separated list of numeric TPM2 PCR (i.e. "Platform
Configuration Register") indexes to bind the TPM2 volume unlocking to. This option is only useful
when TPM2 enrollment metadata is not available in the LUKS2 JSON token header already, the way
<command>systemd-cryptenroll</command> writes it there. If not used (and no metadata in the LUKS2
JSON token header defines it), defaults to a list of a single entry: PCR 7. Assign an empty string to
encode a policy that binds the key to no PCRs, making the key accessible to local programs regardless

View File

@ -1,15 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?>
<!ENTITY MOUNT_PATH @MOUNT_PATH@>
<!ENTITY UMOUNT_PATH @UMOUNT_PATH@>
<!ENTITY systemgeneratordir @SYSTEM_GENERATOR_DIR@>
<!ENTITY usergeneratordir @USER_GENERATOR_DIR@>
<!ENTITY systemenvgeneratordir @SYSTEM_ENV_GENERATOR_DIR@>
<!ENTITY userenvgeneratordir @USER_ENV_GENERATOR_DIR@>
<!ENTITY CERTIFICATE_ROOT @CERTIFICATE_ROOT@>
<!ENTITY FALLBACK_HOSTNAME @FALLBACK_HOSTNAME@>
<!ENTITY MEMORY_ACCOUNTING_DEFAULT @MEMORY_ACCOUNTING_DEFAULT_YES_NO@>
<!ENTITY KILL_USER_PROCESSES @KILL_USER_PROCESSES_YES_NO@>
<!ENTITY DEBUGTTY @DEBUGTTY@>
<!ENTITY RC_LOCAL_PATH @RC_LOCAL_PATH@>
<!ENTITY fedora_latest_version "33">
<!ENTITY MOUNT_PATH "{{MOUNT_PATH}}">
<!ENTITY UMOUNT_PATH "{{UMOUNT_PATH}}">
<!ENTITY SYSTEM_GENERATOR_DIR "{{SYSTEM_GENERATOR_DIR}}">
<!ENTITY USER_GENERATOR_DIR "{{USER_GENERATOR_DIR}}">
<!ENTITY SYSTEM_ENV_GENERATOR_DIR "{{SYSTEM_ENV_GENERATOR_DIR}}">
<!ENTITY USER_ENV_GENERATOR_DIR "{{USER_ENV_GENERATOR_DIR}}">
<!ENTITY CERTIFICATE_ROOT "{{CERTIFICATE_ROOT}}">
<!ENTITY FALLBACK_HOSTNAME "{{FALLBACK_HOSTNAME}}">
<!ENTITY MEMORY_ACCOUNTING_DEFAULT "{{ 'yes' if MEMORY_ACCOUNTING_DEFAULT else 'no' }}">
<!ENTITY KILL_USER_PROCESSES "{{ 'yes' if KILL_USER_PROCESSES else 'no' }}">
<!ENTITY DEBUGTTY "{{DEBUGTTY}}">
<!ENTITY RC_LOCAL_PATH "{{RC_LOCAL_PATH}}">
<!ENTITY HIGH_RLIMIT_NOFILE "{{HIGH_RLIMIT_NOFILE}}">
<!ENTITY fedora_latest_version "34">
<!ENTITY fedora_cloud_release "1.2">

View File

@ -378,6 +378,35 @@
discussion see above.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--fido2-with-client-pin=</option><replaceable>BOOL</replaceable></term>
<listitem><para>When enrolling a FIDO2 security token, controls whether to require the user to enter
a PIN when unlocking the account (the FIDO2 <literal>clientPin</literal> feature). Defaults to
<literal>yes</literal>. (Note: this setting is without effect if the security token does not support
the <literal>clientPin</literal> feature at all, or does not allow enabling or disabling
it.)</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--fido2-with-user-presence=</option><replaceable>BOOL</replaceable></term>
<listitem><para>When enrolling a FIDO2 security token, controls whether to require the user to
verify presence (tap the token, the FIDO2 <literal>up</literal> feature) when unlocking the account.
Defaults to <literal>yes</literal>. (Note: this setting is without effect if the security token does not support
the <literal>up</literal> feature at all, or does not allow enabling or disabling it.)
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--fido2-with-user-verification=</option><replaceable>BOOL</replaceable></term>
<listitem><para>When enrolling a FIDO2 security token, controls whether to require user verification
when unlocking the account (the FIDO2 <literal>uv</literal> feature). Defaults to
<literal>no</literal>. (Note: this setting is without effect if the security token does not support
the <literal>uv</literal> feature at all, or does not allow enabling or disabling it.)</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--recovery-key=</option><replaceable>BOOL</replaceable></term>

View File

@ -63,14 +63,16 @@
<varlistentry>
<term><command>status</command></term>
<listitem><para>Show current system hostname and related information. If no command is specified,
<listitem><para>Show system hostname and related information. If no command is specified,
this is the implied default.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>set-hostname <replaceable>NAME</replaceable></command></term>
<term><command>hostname</command> [<replaceable>NAME</replaceable>]</term>
<listitem><para>Set the system hostname to <replaceable>NAME</replaceable>. By default, this will alter the
<listitem><para>If no argument is given, print the system hostname. If an
optional argument <replaceable>NAME</replaceable> is provided then the command changes the
system hostname to <replaceable>NAME</replaceable>. By default, this will alter the
pretty, the static, and the transient hostname alike; however, if one or more of <option>--static</option>,
<option>--transient</option>, <option>--pretty</option> are used, only the selected hostnames are changed. If
the pretty hostname is being set, and static or transient are being set as well, the specified hostname will be
@ -82,35 +84,29 @@
<para>The static and transient hostnames must each be either a single DNS label (a string composed of
7-bit ASCII lower-case characters and no spaces or dots, limited to the format allowed for DNS domain
name labels), or a sequence of such labels separated by single dots that forms a valid DNS FQDN. The
hostname must be at most 64 characters, which is a Linux limitation (DNS allows longer names).</para>
<para>Pass the empty string <literal></literal> as the hostname to reset the selected hostnames to
their default (usually <literal>&FALLBACK_HOSTNAME;</literal>).</para></listitem>
hostname must be at most 64 characters, which is a Linux limitation (DNS allows longer names).</para></listitem>
</varlistentry>
<varlistentry>
<term><command>set-icon-name <replaceable>NAME</replaceable></command></term>
<term><command>icon-name</command> [<replaceable>NAME</replaceable>]</term>
<listitem><para>Set the system icon name to
<replaceable>NAME</replaceable>. The icon name is used by some
<listitem><para>If no argument is given, print the icon name of the system. If an
optional argument <replaceable>NAME</replaceable> is provided then the command changes the
icon name to <replaceable>NAME</replaceable>. The icon name is used by some
graphical applications to visualize this host. The icon name
should follow the <ulink
url="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">Icon
Naming Specification</ulink>.</para>
<para>Pass an empty string to reset the icon name to the
default value, which is determined from chassis type (see
below) and possibly other parameters.</para></listitem>
Naming Specification</ulink>.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>set-chassis <replaceable>TYPE</replaceable></command></term>
<term><command>chassis</command> [<replaceable>TYPE</replaceable>]</term>
<listitem><para>Set the chassis type to
<replaceable>TYPE</replaceable>. The chassis type is used by
some graphical applications to visualize the host or alter
user interaction. Currently, the following chassis types are
defined:
<listitem><para>If no argument is given, print the chassis type. If an
optional argument <replaceable>TYPE</replaceable> is provided then the command changes the
chassis type to <replaceable>TYPE</replaceable>. The chassis type is used by
some graphical applications to visualize the host or alter user interaction.
Currently, the following chassis types are defined:
<literal>desktop</literal>,
<literal>laptop</literal>,
<literal>convertible</literal>,
@ -123,43 +119,36 @@
<literal>vm</literal> and
<literal>container</literal> for virtualized systems that lack
an immediate physical chassis.</para>
<para>Pass an empty string to reset the chassis type to the
default value which is determined from the firmware and
possibly other parameters.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set-deployment <replaceable>ENVIRONMENT</replaceable></command></term>
<term><command>deployment</command> [<replaceable>ENVIRONMENT</replaceable>]</term>
<listitem><para>Set the deployment environment description.
<replaceable>ENVIRONMENT</replaceable> must be a single word
without any control characters. One of the following is
suggested:
<listitem><para>If no argument is given, print the deployment environment. If an
optional argument <replaceable>ENVIRONMENT</replaceable> is provided then the command changes the
deployment environment to <replaceable>ENVIRONMENT</replaceable>.
Argument <replaceable>ENVIRONMENT</replaceable>
must be a single word without any control characters. One of the following is suggested:
<literal>development</literal>,
<literal>integration</literal>,
<literal>staging</literal>,
<literal>production</literal>.
</para>
<para>Pass an empty string to reset to the default empty
value.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set-location <replaceable>LOCATION</replaceable></command></term>
<term><command>location</command> [<replaceable>LOCATION</replaceable>]</term>
<listitem><para>Set the location string for the system, if it
is known. <replaceable>LOCATION</replaceable> should be a
<listitem><para>If no argument is given, print the location string for the system. If an
optional argument <replaceable>LOCATION</replaceable> is provided then the command changes the
location string for the system to <replaceable>LOCATION</replaceable>.
Argument <replaceable>LOCATION</replaceable> should be a
human-friendly, free-form string describing the physical
location of the system, if it is known and applicable. This
may be as generic as <literal>Berlin, Germany</literal> or as
specific as <literal>Left Rack, 2nd Shelf</literal>.</para>
<para>Pass an empty string to reset to the default empty
value.</para>
</listitem>
</varlistentry>
</variablelist>
@ -195,6 +184,7 @@
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="json" />
</variablelist>
</refsect1>

View File

@ -74,6 +74,17 @@
<listitem><para>SSL CA certificate.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>NetworkTimeoutSec=</varname></term>
<listitem><para>When network connectivity to the server is lost, this option
configures the time to wait for the connectivity to get restored. If the server is
not reachable over the network for the configured time, <command>systemd-journal-upload</command>
exits. Takes a value in seconds (or in other time units if suffixed with "ms", "min", "h", etc).
For details, see <citerefentry><refentrytitle>systemd.time</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>

View File

@ -78,6 +78,11 @@
the kernel log buffer, or a syslog socket will still work). Defaults to <literal>auto</literal> in
the default journal namespace, and <literal>persistent</literal> in all others.</para>
<para>Note that journald will initially use volatile storage, until a call to
<command>journalctl --flush</command> (or sending <constant>SIGUSR1</constant> to journald) will cause
it to switch to persistent logging (under the conditions mentioned above). This is done automatically
on boot via <literal>systemd-journal-flush.service</literal>.</para>
<para>Note that when this option is changed to <literal>volatile</literal>, existing persistent data
is not removed. In the other direction,
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry> with

View File

@ -113,18 +113,18 @@
<varlistentry>
<term><command>terminate-session</command> <replaceable>ID</replaceable></term>
<listitem><para>Terminates a session. This kills all processes
of the session and deallocates all resources attached to the
session. </para></listitem>
<listitem><para>Terminates a session. This kills all processes of the session and deallocates all
resources attached to the session. If the argument is specified as empty string the session invoking
the command is terminated.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>kill-session</command> <replaceable>ID</replaceable></term>
<listitem><para>Send a signal to one or more processes of the
session. Use <option>--kill-who=</option> to select which
process to kill. Use <option>--signal=</option> to select the
signal to send.</para></listitem>
<listitem><para>Send a signal to one or more processes of the session. Use
<option>--kill-who=</option> to select which process to kill. Use <option>--signal=</option> to
select the signal to send. If the argument is specified as empty string the signal is sent to the
session invoking the command.</para></listitem>
</varlistentry>
</variablelist></refsect2>
@ -184,17 +184,17 @@
<varlistentry>
<term><command>terminate-user</command> <replaceable>USER</replaceable></term>
<listitem><para>Terminates all sessions of a user. This kills
all processes of all sessions of the user and deallocates all
runtime resources attached to the user.</para></listitem>
<listitem><para>Terminates all sessions of a user. This kills all processes of all sessions of the
user and deallocates all runtime resources attached to the user. If the argument is specified as
empty string the sessions of the user invoking the command are terminated.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>kill-user</command> <replaceable>USER</replaceable></term>
<listitem><para>Send a signal to all processes of a user. Use
<option>--signal=</option> to select the signal to send.
</para></listitem>
<listitem><para>Send a signal to all processes of a user. Use <option>--signal=</option> to select
the signal to send. If the argument is specified as empty string the signal is sent to the sessions
of the user invoking the command.</para></listitem>
</varlistentry>
</variablelist></refsect2>

View File

@ -147,15 +147,13 @@
<refsect1>
<title>Relation to OSF UUIDs</title>
<para>Note that the machine ID historically is not an OSF UUID as
defined by <ulink url="https://tools.ietf.org/html/rfc4122">RFC
4122</ulink>, nor a Microsoft GUID; however, starting with systemd
v30, newly generated machine IDs do qualify as v4 UUIDs.</para>
<para>Note that the machine ID historically is not an OSF UUID as defined by <ulink
url="https://tools.ietf.org/html/rfc4122">RFC 4122</ulink>, nor a Microsoft GUID; however, starting with
systemd v30, newly generated machine IDs do qualify as Variant 1 Version 4 UUIDs, as per RFC 4122.</para>
<para>In order to maintain compatibility with existing
installations, an application requiring a UUID should decode the
machine ID, and then apply the following operations to turn it
into a valid OSF v4 UUID. With <literal>id</literal> being an
<para>In order to maintain compatibility with existing installations, an application requiring a strictly
RFC 4122 compliant UUID should decode the machine ID, and then (non-reversibly) apply the following
operations to turn it into a valid RFC 4122 Variant 1 Version 4 UUID. With <literal>id</literal> being an
unsigned character array:</para>
<programlisting>/* Set UUID version to 4 --- truly random generation */

View File

@ -26,10 +26,12 @@ custom_man_xsl = files('custom-man.xsl')
custom_html_xsl = files('custom-html.xsl')
xslt_cmd = [xsltproc, '-o', '@OUTPUT0@'] + xsltproc_flags
custom_entities_ent = configure_file(
custom_entities_ent = custom_target(
'custom-entities.ent',
input : 'custom-entities.ent.in',
output : 'custom-entities.ent',
configuration : conf)
command : [meson_render_jinja2, config_h, '@INPUT@'],
capture : true)
man_pages = []
html_pages = []
@ -60,7 +62,7 @@ foreach tuple : xsltproc.found() ? manpages : []
input : xml,
output : [man] + manaliases,
command : xslt_cmd + [custom_man_xsl, '@INPUT@'],
depend_files : custom_entities_ent,
depends : custom_entities_ent,
install : want_man,
install_dir : mandirn)
man_pages += p1
@ -85,8 +87,7 @@ foreach tuple : xsltproc.found() ? manpages : []
input : xml,
output : html,
command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
depend_files : custom_entities_ent,
depends : p2,
depends : [custom_entities_ent, p2],
install : want_html,
install_dir : join_paths(docdir, 'html'))
html_pages += p3
@ -112,6 +113,7 @@ systemd_directives_xml = custom_target(
'systemd.directives.xml',
input : ['directives-template.xml', source_xml_files],
output : 'systemd.directives.xml',
depends : custom_entities_ent,
command : [make_directive_index_py, '@OUTPUT@', '@INPUT@'])
nonindex_xml_files = source_xml_files + [systemd_directives_xml]
@ -163,8 +165,7 @@ foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directiv
input : xml,
output : html,
command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
depend_files : custom_entities_ent,
depends : p2,
depends : [custom_entities_ent, p2],
install : want_html and have_lxml,
install_dir : join_paths(docdir, 'html'))
html_pages += p3
@ -200,12 +201,15 @@ endif
############################################################
buildroot_substs = configuration_data()
buildroot_substs.set_quoted('BUILD_ROOT', project_build_root)
configure_file(
input : 'man.in',
output : 'man',
configuration : substs)
configuration : buildroot_substs)
configure_file(
input : 'html.in',
output : 'html',
configuration : substs)
configuration : buildroot_substs)

View File

@ -187,14 +187,46 @@
<para>Produces output similar to:
<programlisting>
● State: routable
Address: 10.193.76.5 on eth0
192.168.122.1 on virbr0
169.254.190.105 on eth0
fe80::5054:aa:bbbb:cccc on eth0
Gateway: 10.193.11.1 (CISCO SYSTEMS, INC.) on eth0
DNS: 8.8.8.8
8.8.4.4</programlisting></para>
● State: routable
Online state: online
Address: 10.193.76.5 on eth0
192.168.122.1 on virbr0
169.254.190.105 on eth0
fe80::5054:aa:bbbb:cccc on eth0
Gateway: 10.193.11.1 (CISCO SYSTEMS, INC.) on eth0
DNS: 8.8.8.8
8.8.4.4</programlisting></para>
<para>In the overall network status, the online state depends on the individual online state of all
required links. Managed links are required for online by default. In this case, the online state is
one of the following:
<variablelist>
<varlistentry>
<term>unknown</term>
<listitem>
<para>all links have unknown online status (i.e. there are no required links)</para>
</listitem>
</varlistentry>
<varlistentry>
<term>offline</term>
<listitem>
<para>all required links are offline</para>
</listitem>
</varlistentry>
<varlistentry>
<term>partial</term>
<listitem>
<para>some, but not all, required links are online</para>
</listitem>
</varlistentry>
<varlistentry>
<term>online</term>
<listitem>
<para>all required links are online</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</listitem>
</varlistentry>
@ -367,6 +399,7 @@ s - Service VLAN, m - Two-port MAC Relay (TPMR)
</listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="json" />
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="no-legend" />

View File

@ -62,12 +62,24 @@
If <varname>SpeedMeter=no</varname>, the value is ignored. Defaults to 10sec.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ManageForeignRoutingPolicyRules=</varname></term>
<listitem><para>A boolean. When true, <command>systemd-networkd</command> will remove rules
that are not configured in .network files (except for rules with protocol
<literal>kernel</literal>). When false, it will not remove any foreign rules, keeping them even
if they are not configured in a .network file. Defaults to yes.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ManageForeignRoutes=</varname></term>
<listitem><para>A boolean. When true, <command>systemd-networkd</command> will store any routes
configured by other tools in its memory. When false, <command>systemd-networkd</command> will
not manage the foreign routes, thus they are kept even if <varname>KeepConfiguration=</varname>
is false. Defaults to yes.</para></listitem>
<listitem><para>A boolean. When true, <command>systemd-networkd</command> will remove routes
that are not configured in .network files (except for routes with protocol
<literal>kernel</literal>, <literal>dhcp</literal> when <varname>KeepConfiguration=</varname>
is true or <literal>dhcp</literal>, and <literal>static</literal> when
<varname>KeepConfiguration=</varname> is true or <literal>static</literal>). When false, it will
not remove any foreign routes, keeping them even if they are not configured in a .network file.
Defaults to yes.</para></listitem>
</varlistentry>
<varlistentry>
@ -86,15 +98,12 @@
</refsect1>
<refsect1>
<title>[DHCP] Section Options</title>
<title>[DHCPv4] Section Options</title>
<para>This section configures the DHCP Unique Identifier (DUID) value used by DHCP
protocol. DHCPv6 client protocol sends the DHCP Unique Identifier and the interface
Identity Association Identifier (IAID) to a DHCP server when acquiring a dynamic IPv6
address. DHCPv4 client protocol sends IAID and DUID to the DHCP server when acquiring
a dynamic IPv4 address if <option>ClientIdentifier=duid</option>. IAID and DUID allows
a DHCP server to uniquely identify the machine and the interface requesting a DHCP IP.
To configure IAID and ClientIdentifier, see
<para>This section configures the DHCP Unique Identifier (DUID) value used by DHCP protocol. DHCPv4
client protocol sends IAID and DUID to the DHCP server when acquiring a dynamic IPv4 address if
<option>ClientIdentifier=duid</option>. IAID and DUID allows a DHCP server to uniquely identify the
machine and the interface requesting a DHCP IP address. To configure IAID and ClientIdentifier, see
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
@ -176,6 +185,28 @@ DUIDRawData=00:00:ab:11:f9:2a:c2:77:29:f9:5c:00</programlisting>
</variablelist>
</refsect1>
<refsect1>
<title>[DHCPv6] Section Options</title>
<para>This section configures the DHCP Unique Identifier (DUID) value used by DHCPv6 protocol.
DHCPv6 client protocol sends the DHCP Unique Identifier and the interface Identity Association
Identifier (IAID) to a DHCPv6 server when acquiring a dynamic IPv6 address. IAID and DUID allows a
DHCPv6 server to uniquely identify the machine and the interface requesting a DHCP IP address. To
configure IAID, see
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
<para>The following options are understood:</para>
<variablelist class='network-directives'>
<varlistentry>
<term><varname>DUIDType=</varname></term>
<term><varname>DUIDRawData=</varname></term>
<listitem><para>As in the [DHCPv4] section.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>

View File

@ -51,6 +51,13 @@
ordered by their metric. This assigns a stable hostname to the
current gateway, useful for referencing it independently of the
current network configuration state.</para></listitem>
<listitem><para>The hostname <literal>_outbound</literal> is resolved to the local IPv4 and IPv6
addresses that are most likely used for communication with other hosts. This is determined by
requesting a routing decision to the configured default gateways from the kernel and then using the
local IP addresses selected by this decision. This hostname is only available if there is at least one
local default gateway configured. This assigns a stable hostname to the local outbound IP addresses,
useful for referencing them independently of the current network configuration state.</para></listitem>
</itemizedlist>
<para>Various software relies on an always-resolvable local
@ -84,7 +91,9 @@
<!-- synchronize with other nss-* man pages and factory/etc/nsswitch.conf -->
<programlisting>passwd: compat systemd
group: compat [SUCCESS=merge] systemd
shadow: compat
shadow: compat systemd
gshadow: files systemd
# Either (untrusted network, see above):
hosts: mymachines resolve [!UNAVAIL=return] files <command>myhostname</command> dns

View File

@ -39,6 +39,15 @@
Note that the name that is resolved is the one registered with <command>systemd-machined</command>, which
may be different than the hostname configured inside of the container.</para>
<para>Note that this NSS module only makes available names of the containers running immediately below
the current system context. It does not provide host name resolution for containers running side-by-side
with the invoking system context, or containers further up or down the container hierarchy. Or in other
words, on the host system it provides host name resolution for the containers running immediately below
the host environment. When used inside a container environment however, it will not be able to provide
name resolution for containers running on the host (as those are siblings and not children of the current
container environment), but instead only for nested containers running immediately below its own
container environment.</para>
<para>To activate the NSS module, add <literal>mymachines</literal> to the line starting with
<literal>hosts:</literal> in <filename>/etc/nsswitch.conf</filename>.</para>
@ -57,7 +66,8 @@
<!-- synchronize with other nss-* man pages and factory/etc/nsswitch.conf -->
<programlisting>passwd: compat systemd
group: compat [SUCCESS=merge] systemd
shadow: compat
shadow: compat systemd
gshadow: files systemd
hosts: <command>mymachines</command> resolve [!UNAVAIL=return] files myhostname dns
networks: files

View File

@ -63,7 +63,8 @@
<!-- synchronize with other nss-* man pages and factory/etc/nsswitch.conf -->
<programlisting>passwd: compat systemd
group: compat [SUCCESS=merge] systemd
shadow: compat
shadow: compat systemd
gshadow: files systemd
hosts: mymachines <command>resolve [!UNAVAIL=return]</command> files myhostname dns
networks: files

View File

@ -47,11 +47,56 @@
for resolving users and groups, but also works without the service running.</para>
<para>To activate the NSS module, add <literal>systemd</literal> to the lines starting with
<literal>passwd:</literal> and <literal>group:</literal> in <filename>/etc/nsswitch.conf</filename>.</para>
<literal>passwd:</literal>, <literal>group:</literal>, <literal>shadow:</literal> and
<literal>gshadow:</literal> in <filename>/etc/nsswitch.conf</filename>.</para>
<para>It is recommended to place <literal>systemd</literal> after the <literal>files</literal> or
<literal>compat</literal> entry of the <filename>/etc/nsswitch.conf</filename> lines so that
<filename>/etc/passwd</filename> and <filename>/etc/group</filename> based mappings take precedence.</para>
<filename>/etc/passwd</filename>, <filename>/etc/group</filename>, <filename>/etc/shadow</filename> and
<filename>/etc/gshadow</filename> based mappings take precedence.</para>
</refsect1>
<refsect1>
<title>Static Drop-In JSON User/Group Records</title>
<para>Besides user/group records acquired via the aforementioned Varlink IPC interfaces and the
synthesized root and nobody accounts, this module also makes user and group accounts available to the
system that are defined in static drop-in files in the <filename>/etc/userdb/</filename>,
<filename>/run/userdb/</filename>, <filename>/run/host/userdb/</filename> and
<filename>/usr/lib/userdb/</filename> directories.</para>
<para>This is a simple mechanism to provide static user and group records via JSON drop-in files. Such
user records should be defined in the format described by the <ulink
url="https://systemd.io/USER_RECORD">JSON User Record</ulink> specification and be placed in one of the
aforementioned directories under a file name composed of the user name suffixed with
<filename>.user</filename>, with a world-readable access mode. A symlink named after the user record's
UID formatted in decimal and suffixed with <filename>.user</filename> pointing to the primary record file
should be created as well, in order to allow both lookups by username and by UID. Privileged user record
data (e.g. hashed UNIX passwords) may optionally be provided as well, in a pair of separate companion
files with the <filename>.user-privileged</filename> suffix. The data should be stored in a regular file
named after the user name, suffixed with <filename>.user-privileged</filename>, and a symlink pointing to
it, named after the used numeric UID formatted in decimal with the same suffix. These companion files
should not be readable to anyone but root. Example:</para>
<programlisting>-rw-r--r--. 1 root root 723 May 10 foobar.user
-rw-------. 1 root root 123 May 10 foobar.user-privileged
lrwxrwxrwx. 1 root root 19 May 10 4711.user -> foobar.user
lrwxrwxrwx. 1 root root 19 May 10 4711.user-privileged -> foobar.user-privileged</programlisting>
<para>Similarly, group records following the format described in <ulink
url="https://systemd.io/GROUP_RECORD">JSON Group Record</ulink> may be defined, using the file suffixes
<filename>.group</filename> and <filename>.group-privileged</filename>.</para>
<para>The primary user/group record files (i.e. those with the <filename>.user</filename> and
<filename>.group</filename> suffixes) should not contain the <literal>privileged</literal> section as
described in the specifications. The privileged user/group record files (i.e. those with the
<filename>.user-privileged</filename> and <filename>.group-privileged</filename> suffixes) should
contain this section, exclusively.</para>
<para>Note that static user/group records generally do not override conflicting records in
<filename>/etc/passwd</filename> or <filename>/etc/group</filename> or other account databases. In fact,
before dropping in these files a reasonable level of care should be taken to avoid user/group name and
UID/GID conflicts.</para>
</refsect1>
<refsect1>
@ -63,7 +108,8 @@
<!-- synchronize with other nss-* man pages and factory/etc/nsswitch.conf -->
<programlisting>passwd: compat <command>systemd</command>
group: compat [SUCCESS=merge] <command>systemd</command>
shadow: compat
shadow: compat <command>systemd</command>
gshadow: files <command>systemd</command>
hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns
networks: files

View File

@ -58,6 +58,7 @@ node /org/freedesktop/hostname1 {
in b interactive);
GetProductUUID(in b interactive,
out ay uuid);
Describe(out s json);
properties:
readonly s Hostname = '...';
readonly s StaticHostname = '...';
@ -118,6 +119,8 @@ node /org/freedesktop/hostname1 {
<variablelist class="dbus-method" generated="True" extra-ref="GetProductUUID()"/>
<variablelist class="dbus-method" generated="True" extra-ref="Describe()"/>
<variablelist class="dbus-property" generated="True" extra-ref="Hostname"/>
<variablelist class="dbus-property" generated="True" extra-ref="StaticHostname"/>
@ -232,6 +235,17 @@ node /org/freedesktop/hostname1 {
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for that. For more information on these files and syscalls see the respective man pages.</para>
<para><varname>KernelName</varname>, <varname>KernelRelease</varname>, and
<varname>KernelVersion</varname> expose the kernel name (e.g. <literal>Linux</literal>), release
(e.g. <literal>5.0.0-11</literal>), and version (i.e. the build number, e.g. <literal>#11</literal>) as
reported by <citerefentry project="man-pages"><refentrytitle>uname</refentrytitle><manvolnum>2</manvolnum></citerefentry>.
<varname>OperatingSystemPrettyName</varname>, <varname>OperatingSystemCPEName</varname>, and
<varname>HomeURL</varname> expose the <varname>PRETTY_NAME=</varname>, <varname>CPE_NAME=</varname> and
<varname>HOME_URL=</varname> fields from
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>. The
purpose of those properties is to allow remote clients to access this information over D-Bus. Local
clients can access the information directly.</para>
<refsect2>
<title>Methods</title>
@ -261,22 +275,12 @@ node /org/freedesktop/hostname1 {
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
the semantics of those settings.</para>
<para><function>GetProductUUID()</function> returns the "product uuid" as exposed by the kernel based
<para><function>GetProductUUID()</function> returns the "product UUID" as exposed by the kernel based
on DMI information in <filename>/sys/class/dmi/id/product_uuid</filename>. Reading the file directly
requires root privileges, and this method allows access to unprivileged clients through the polkit
framework.</para>
<para><varname>KernelName</varname>, <varname>KernelRelease</varname>, and
<varname>KernelVersion</varname> expose the kernel name (e.g. <literal>Linux</literal>), release
(e.g. <literal>5.0.0-11</literal>), and version (i.e. the build number, e.g. <literal>#11</literal>) as
reported by
<citerefentry project="man-pages"><refentrytitle>uname</refentrytitle><manvolnum>2</manvolnum></citerefentry>.
<varname>OperatingSystemPrettyName</varname>, <varname>OperatingSystemCPEName</varname>, and
<varname>HomeURL</varname> expose the <varname>PRETTY_NAME=</varname>, <varname>CPE_NAME=</varname> and
<varname>HOME_URL=</varname> fields from
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>. The
purpose of those properties is to allow remote clients to access this information over D-Bus. Local
clients can access the information directly.</para>
<para><function>Describe()</function> returns a JSON representation of all properties in one.</para>
</refsect2>
<refsect2>

View File

@ -555,10 +555,13 @@ node /org/freedesktop/login1 {
extendability, defined as follows:</para>
<programlisting>
#define SD_LOGIND_ROOT_CHECK_INHIBITORS (UINT64_C(1) &lt;&lt; 0)
#define SD_LOGIND_KEXEC_REBOOT (UINT64_C(1) &lt;&lt; 1)
</programlisting>
<para> When the <varname>flags</varname> is 0 then these methods behave just like the versions
without flags. When <constant>SD_LOGIND_ROOT_CHECK_INHIBITORS</constant> (0x01) is set, active
inhibitors are honoured for privileged users too.</para>
inhibitors are honoured for privileged users too. When <constant>SD_LOGIND_KEXEC_REBOOT</constant>
(0x02) is set, then <function>RebootWithFlags()</function> perform kexec reboot if kexec
kernel is loaded.</para>
<para><function>SetRebootParameter()</function> sets a parameter for a subsequent reboot operation.
See the description of <command>reboot</command> in

View File

@ -48,6 +48,13 @@ node /org/freedesktop/portable1 {
out s image,
out ay os_release,
out a{say} units);
GetImageMetadataWithExtensions(in s image,
in as extensions,
in as matches,
in t flags,
out s image,
out ay os_release,
out a{say} units);
GetImageState(in s image,
out s state);
AttachImage(in s image,
@ -56,9 +63,20 @@ node /org/freedesktop/portable1 {
in b runtime,
in s copy_mode,
out a(sss) changes);
AttachImageWithExtensions(in s image,
in as extensions,
in as matches,
in s profile,
in s copy_mode,
in t flags,
out a(sss) changes);
DetachImage(in s image,
in b runtime,
out a(sss) changes);
DetachImageWithExtensions(in s image,
in as extensions,
in t flags,
out a(sss) changes);
ReattachImage(in s image,
in as matches,
in s profile,
@ -66,6 +84,14 @@ node /org/freedesktop/portable1 {
in s copy_mode,
out a(sss) changes_removed,
out a(sss) changes_updated);
ReattachImageWithExtensions(in s image,
in as extensions,
in as matches,
in s profile,
in s copy_mode,
in t flags,
out a(sss) changes_removed,
out a(sss) changes_updated);
RemoveImage(in s image);
MarkImageReadOnly(in s image,
in b read_only);
@ -102,14 +128,22 @@ node /org/freedesktop/portable1 {
<variablelist class="dbus-method" generated="True" extra-ref="GetImageMetadata()"/>
<variablelist class="dbus-method" generated="True" extra-ref="GetImageMetadataWithExtensions()"/>
<variablelist class="dbus-method" generated="True" extra-ref="GetImageState()"/>
<variablelist class="dbus-method" generated="True" extra-ref="AttachImage()"/>
<variablelist class="dbus-method" generated="True" extra-ref="AttachImageWithExtensions()"/>
<variablelist class="dbus-method" generated="True" extra-ref="DetachImage()"/>
<variablelist class="dbus-method" generated="True" extra-ref="DetachImageWithExtensions()"/>
<variablelist class="dbus-method" generated="True" extra-ref="ReattachImage()"/>
<variablelist class="dbus-method" generated="True" extra-ref="ReattachImageWithExtensions()"/>
<variablelist class="dbus-method" generated="True" extra-ref="RemoveImage()"/>
<variablelist class="dbus-method" generated="True" extra-ref="MarkImageReadOnly()"/>
@ -149,6 +183,12 @@ node /org/freedesktop/portable1 {
and a list of portable units contained in the image, in the form of a string (unit name) and
an array of bytes with the content.</para>
<para><function>GetImageMetadataWithExtensions()</function> retrieves metadata associated with an image.
This method is a superset of <function>GetImageMetadata()</function> with the addition of
a list of extensions as input parameter, which were overlaid on top of the main
image via <function>AttachImageWithExtensions()</function>.
The <varname>flag</varname> parameter is currently unused and reserved for future purposes.</para>
<para><function>GetImageState()</function> retrieves the image state as one of the following
strings:
<itemizedlist>
@ -197,6 +237,16 @@ node /org/freedesktop/portable1 {
Note that an image cannot be attached if a unit that it contains is already present
on the system.</para>
<para><function>AttachImageWithExtensions()</function> attaches a portable image to the system.
This method is a superset of <function>AttachImage()</function> with the addition of
a list of extensions as input parameter, which will be overlaid on top of the main
image. When this method is used, detaching must be done by passing the same arguments via the
<function>DetachImageWithExtensions()</function> method. For more details on this functionality,
see the <varname>MountImages=</varname> entry on
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
and <citerefentry><refentrytitle>systemd-sysext</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
The <varname>flag</varname> parameter is currently unused and reserved for future purposes.</para>
<para><function>DetachImage()</function> detaches a portable image from the system.
This method takes an image path or name, and a boolean indicating whether the image to
detach was attached only for the current boot session or persistently. This method
@ -209,6 +259,12 @@ node /org/freedesktop/portable1 {
</itemizedlist>
Note that an image cannot be detached if a unit that it contains is running.</para>
<para><function>DetachImageWithExtensions()</function> detaches a portable image from the system.
This method is a superset of <function>DetachImage()</function> with the addition of
a list of extensions as input parameter, which were overlaid on top of the main
image via <function>AttachImageWithExtensions()</function>.
The <varname>flag</varname> parameter is currently unused and reserved for future purposes.</para>
<para><function>ReattachImage()</function> combines the effects of the
<function>AttachImage()</function> method and the <function>DetachImage()</function> method.
The difference is that it is allowed to reattach an image while one or more of its units
@ -218,6 +274,14 @@ node /org/freedesktop/portable1 {
<function>DetachImage()</function> method (first array, units that were removed) and the
<function>AttachImage()</function> method (second array, units that were updated or added).</para>
<para><function>ReattachImageWithExtensions()</function> reattaches a portable image to the system.
This method is a superset of <function>ReattachImage()</function> with the addition of
a list of extensions as input parameter, which will be overlaid on top of the main
image. For more details on this functionality, see the <varname>MountImages=</varname> entry on
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
and <citerefentry><refentrytitle>systemd-sysext</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
The <varname>flag</varname> parameter is currently unused and reserved for future purposes</para>
<para><function>RemoveImage()</function> removes the image with the specified name.</para>
<para><function>MarkImageReadOnly()</function> toggles the read-only flag of an image.</para>
@ -225,6 +289,15 @@ node /org/freedesktop/portable1 {
<para><function>SetPoolLimit()</function> sets an overall quota limit on the pool of images.</para>
<para><function>SetImageLimit()</function> sets a per-image quota limit.</para>
<para>The <function>AttachImageWithExtensions()</function>,
<function>DetachImageWithExtensions()</function> and
<function>ReattachImageWithExtensions()</function> methods take in options as flags instead of
booleans to allow for extendability, defined as follows:</para>
<programlisting>
#define SD_SYSTEMD_PORTABLE_RUNTIME (UINT64_C(1) &lt;&lt; 0)
</programlisting>
</refsect2>
<refsect2>
@ -254,20 +327,42 @@ node /org/freedesktop/portable1 {
out s image,
out ay os_release,
out a{say} units);
GetMetadataWithExtensions(in as extensions,
in as matches,
in t flags,
out s image,
out ay os_release,
out a{say} units);
GetState(out s state);
Attach(in as matches,
in s profile,
in b runtime,
in s copy_mode,
out a(sss) changes);
AttachWithExtensions(in as extensions,
in as matches,
in s profile,
in s copy_mode,
in t flags,
out a(sss) changes);
Detach(in b runtime,
out a(sss) changes);
DetachWithExtensions(in as extensions,
in t flags,
out a(sss) changes);
Reattach(in as matches,
in s profile,
in b runtime,
in s copy_mode,
out a(sss) changes_removed,
out a(sss) changes_updated);
ReattacheWithExtensions(in as extensions,
in as matches,
in s profile,
in s copy_mode,
in t flags,
out a(sss) changes_removed,
out a(sss) changes_updated);
Remove();
MarkReadOnly(in b read_only);
SetLimit(in t limit);
@ -303,14 +398,22 @@ node /org/freedesktop/portable1 {
<!--method GetMetadata is not documented!-->
<!--method GetMetadataWithExtensions is not documented!-->
<!--method GetState is not documented!-->
<!--method Attach is not documented!-->
<!--method AttachWithExtensions is not documented!-->
<!--method Detach is not documented!-->
<!--method DetachWithExtensions is not documented!-->
<!--method Reattach is not documented!-->
<!--method ReattacheWithExtensions is not documented!-->
<!--method Remove is not documented!-->
<!--method MarkReadOnly is not documented!-->
@ -327,14 +430,22 @@ node /org/freedesktop/portable1 {
<variablelist class="dbus-method" generated="True" extra-ref="GetMetadata()"/>
<variablelist class="dbus-method" generated="True" extra-ref="GetMetadataWithExtensions()"/>
<variablelist class="dbus-method" generated="True" extra-ref="GetState()"/>
<variablelist class="dbus-method" generated="True" extra-ref="Attach()"/>
<variablelist class="dbus-method" generated="True" extra-ref="AttachWithExtensions()"/>
<variablelist class="dbus-method" generated="True" extra-ref="Detach()"/>
<variablelist class="dbus-method" generated="True" extra-ref="DetachWithExtensions()"/>
<variablelist class="dbus-method" generated="True" extra-ref="Reattach()"/>
<variablelist class="dbus-method" generated="True" extra-ref="ReattacheWithExtensions()"/>
<variablelist class="dbus-method" generated="True" extra-ref="Remove()"/>
<variablelist class="dbus-method" generated="True" extra-ref="MarkReadOnly()"/>
@ -377,14 +488,22 @@ node /org/freedesktop/portable1 {
<listitem><para>GetMetadata()</para></listitem>
<listitem><para>GetMetadataWithExtensions()</para></listitem>
<listitem><para>GetState()</para></listitem>
<listitem><para>Attach()</para></listitem>
<listitem><para>AttachWithExtensions()</para></listitem>
<listitem><para>Detach()</para></listitem>
<listitem><para>DetachWithExtensions()</para></listitem>
<listitem><para>Reattach()</para></listitem>
<listitem><para>ReattacheWithExtensions()</para></listitem>
<listitem><para>Remove()</para></listitem>
<listitem><para>MarkReadOnly()</para></listitem>

View File

@ -492,6 +492,8 @@ node /org/freedesktop/systemd1 {
readonly t TimerSlackNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s DefaultOOMPolicy = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s CtrlAltDelBurstAction = '...';
};
interface org.freedesktop.DBus.Peer { ... };
interface org.freedesktop.DBus.Introspectable { ... };
@ -733,6 +735,8 @@ node /org/freedesktop/systemd1 {
<!--property DefaultOOMPolicy is not documented!-->
<!--property CtrlAltDelBurstAction is not documented!-->
<!--Autogenerated cross-references for systemd.directives, do not edit-->
<variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Manager"/>
@ -1127,6 +1131,8 @@ node /org/freedesktop/systemd1 {
<variablelist class="dbus-property" generated="True" extra-ref="DefaultOOMPolicy"/>
<variablelist class="dbus-property" generated="True" extra-ref="CtrlAltDelBurstAction"/>
<!--End of Autogenerated section-->
<refsect2>
@ -1624,6 +1630,12 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as OnFailure = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as OnFailureOf = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as OnSuccess = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as OnSuccessOf = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as Triggers = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as TriggeredBy = ['...', ...];
@ -1632,8 +1644,14 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as ReloadPropagatedFrom = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as PropagatesStopTo = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as StopPropagatedFrom = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as JoinsNamespaceOf = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as SliceOf = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as RequiresMountsFor = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as Documentation = ['...', ...];
@ -1688,6 +1706,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly b DefaultDependencies = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s OnSuccesJobMode = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s OnFailureJobMode = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly b IgnoreOnIsolate = ...;
@ -1765,10 +1785,22 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<!--property ConsistsOf is not documented!-->
<!--property OnFailureOf is not documented!-->
<!--property OnSuccess is not documented!-->
<!--property OnSuccessOf is not documented!-->
<!--property ReloadPropagatedFrom is not documented!-->
<!--property PropagatesStopTo is not documented!-->
<!--property StopPropagatedFrom is not documented!-->
<!--property JoinsNamespaceOf is not documented!-->
<!--property SliceOf is not documented!-->
<!--property FreezerState is not documented!-->
<!--property DropInPaths is not documented!-->
@ -1783,6 +1815,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<!--property CanFreeze is not documented!-->
<!--property OnSuccesJobMode is not documented!-->
<!--property OnFailureJobMode is not documented!-->
<!--property JobRunningTimeoutUSec is not documented!-->
@ -1895,6 +1929,12 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<variablelist class="dbus-property" generated="True" extra-ref="OnFailure"/>
<variablelist class="dbus-property" generated="True" extra-ref="OnFailureOf"/>
<variablelist class="dbus-property" generated="True" extra-ref="OnSuccess"/>
<variablelist class="dbus-property" generated="True" extra-ref="OnSuccessOf"/>
<variablelist class="dbus-property" generated="True" extra-ref="Triggers"/>
<variablelist class="dbus-property" generated="True" extra-ref="TriggeredBy"/>
@ -1903,8 +1943,14 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<variablelist class="dbus-property" generated="True" extra-ref="ReloadPropagatedFrom"/>
<variablelist class="dbus-property" generated="True" extra-ref="PropagatesStopTo"/>
<variablelist class="dbus-property" generated="True" extra-ref="StopPropagatedFrom"/>
<variablelist class="dbus-property" generated="True" extra-ref="JoinsNamespaceOf"/>
<variablelist class="dbus-property" generated="True" extra-ref="SliceOf"/>
<variablelist class="dbus-property" generated="True" extra-ref="RequiresMountsFor"/>
<variablelist class="dbus-property" generated="True" extra-ref="Documentation"/>
@ -1973,6 +2019,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<variablelist class="dbus-property" generated="True" extra-ref="DefaultDependencies"/>
<variablelist class="dbus-property" generated="True" extra-ref="OnSuccesJobMode"/>
<variablelist class="dbus-property" generated="True" extra-ref="OnFailureJobMode"/>
<variablelist class="dbus-property" generated="True" extra-ref="IgnoreOnIsolate"/>
@ -2250,6 +2298,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s Type = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s ExitType = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s Restart = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s PIDFile = '...';
@ -2351,6 +2401,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@ -2472,6 +2524,12 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
readonly u ManagedOOMMemoryPressureLimit = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly s ManagedOOMPreference = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindDeny = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as Environment = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
@ -2808,6 +2866,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<!--property Type is not documented!-->
<!--property ExitType is not documented!-->
<!--property Restart is not documented!-->
<!--property PIDFile is not documented!-->
@ -3004,6 +3064,12 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<!--property ManagedOOMPreference is not documented!-->
<!--property BPFProgram is not documented!-->
<!--property SocketBindAllow is not documented!-->
<!--property SocketBindDeny is not documented!-->
<!--property EnvironmentFiles is not documented!-->
<!--property PassEnvironment is not documented!-->
@ -3320,6 +3386,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<variablelist class="dbus-property" generated="True" extra-ref="Type"/>
<variablelist class="dbus-property" generated="True" extra-ref="ExitType"/>
<variablelist class="dbus-property" generated="True" extra-ref="Restart"/>
<variablelist class="dbus-property" generated="True" extra-ref="PIDFile"/>
@ -3438,6 +3506,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@ -3560,6 +3630,12 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>
<variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>
<variablelist class="dbus-property" generated="True" extra-ref="Environment"/>
<variablelist class="dbus-property" generated="True" extra-ref="EnvironmentFiles"/>
@ -3991,6 +4067,11 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<varname>MountImages</varname>
<varname>ExtensionImages</varname>
see systemd.exec(5) for their meaning.</para>
<para><varname>MemoryAvailable</varname> indicates how much unused memory is available to the unit before
the <literal>MemoryMax</literal> or <literal>MemoryHigh</literal> (whichever is lower) limit set by the cgroup
memory controller is reached. It will take into consideration limits on all parent slices, other than the
limits set on the unit itself.</para>
</refsect2>
</refsect1>
@ -4124,6 +4205,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@ -4245,6 +4328,12 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
readonly u ManagedOOMMemoryPressureLimit = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly s ManagedOOMPreference = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindDeny = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as Environment = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
@ -4805,6 +4894,12 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
<!--property ManagedOOMPreference is not documented!-->
<!--property BPFProgram is not documented!-->
<!--property SocketBindAllow is not documented!-->
<!--property SocketBindDeny is not documented!-->
<!--property EnvironmentFiles is not documented!-->
<!--property PassEnvironment is not documented!-->
@ -5237,6 +5332,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@ -5359,6 +5456,12 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
<variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>
<variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>
<variablelist class="dbus-property" generated="True" extra-ref="Environment"/>
<variablelist class="dbus-property" generated="True" extra-ref="EnvironmentFiles"/>
@ -5825,6 +5928,8 @@ node /org/freedesktop/systemd1/unit/home_2emount {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@ -5946,6 +6051,12 @@ node /org/freedesktop/systemd1/unit/home_2emount {
readonly u ManagedOOMMemoryPressureLimit = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly s ManagedOOMPreference = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindDeny = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as Environment = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
@ -6434,6 +6545,12 @@ node /org/freedesktop/systemd1/unit/home_2emount {
<!--property ManagedOOMPreference is not documented!-->
<!--property BPFProgram is not documented!-->
<!--property SocketBindAllow is not documented!-->
<!--property SocketBindDeny is not documented!-->
<!--property EnvironmentFiles is not documented!-->
<!--property PassEnvironment is not documented!-->
@ -6784,6 +6901,8 @@ node /org/freedesktop/systemd1/unit/home_2emount {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@ -6906,6 +7025,12 @@ node /org/freedesktop/systemd1/unit/home_2emount {
<variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>
<variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>
<variablelist class="dbus-property" generated="True" extra-ref="Environment"/>
<variablelist class="dbus-property" generated="True" extra-ref="EnvironmentFiles"/>
@ -7493,6 +7618,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@ -7614,6 +7741,12 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
readonly u ManagedOOMMemoryPressureLimit = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly s ManagedOOMPreference = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindDeny = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly as Environment = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
@ -8088,6 +8221,12 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
<!--property ManagedOOMPreference is not documented!-->
<!--property BPFProgram is not documented!-->
<!--property SocketBindAllow is not documented!-->
<!--property SocketBindDeny is not documented!-->
<!--property EnvironmentFiles is not documented!-->
<!--property PassEnvironment is not documented!-->
@ -8424,6 +8563,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@ -8546,6 +8687,12 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
<variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>
<variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>
<variablelist class="dbus-property" generated="True" extra-ref="Environment"/>
<variablelist class="dbus-property" generated="True" extra-ref="EnvironmentFiles"/>
@ -8986,6 +9133,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@ -9107,6 +9256,12 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
readonly u ManagedOOMMemoryPressureLimit = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly s ManagedOOMPreference = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindDeny = [...];
};
interface org.freedesktop.DBus.Peer { ... };
interface org.freedesktop.DBus.Introspectable { ... };
@ -9245,6 +9400,12 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
<!--property ManagedOOMPreference is not documented!-->
<!--property BPFProgram is not documented!-->
<!--property SocketBindAllow is not documented!-->
<!--property SocketBindDeny is not documented!-->
<!--Autogenerated cross-references for systemd.directives, do not edit-->
<variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.systemd1.Unit"/>
@ -9265,6 +9426,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@ -9387,6 +9550,12 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
<variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>
<variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>
<!--End of Autogenerated section-->
<refsect2>
@ -9427,6 +9596,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly ay EffectiveCPUs = [...];
@ -9548,6 +9719,12 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
readonly u ManagedOOMMemoryPressureLimit = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly s ManagedOOMPreference = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(ss) BPFProgram = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindAllow = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly a(iiqq) SocketBindDeny = [...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly s KillMode = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
@ -9702,6 +9879,12 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
<!--property ManagedOOMPreference is not documented!-->
<!--property BPFProgram is not documented!-->
<!--property SocketBindAllow is not documented!-->
<!--property SocketBindDeny is not documented!-->
<!--property KillMode is not documented!-->
<!--property KillSignal is not documented!-->
@ -9748,6 +9931,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="EffectiveCPUs"/>
@ -9870,6 +10055,12 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
<variablelist class="dbus-property" generated="True" extra-ref="ManagedOOMPreference"/>
<variablelist class="dbus-property" generated="True" extra-ref="BPFProgram"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindAllow"/>
<variablelist class="dbus-property" generated="True" extra-ref="SocketBindDeny"/>
<variablelist class="dbus-property" generated="True" extra-ref="KillMode"/>
<variablelist class="dbus-property" generated="True" extra-ref="KillSignal"/>

View File

@ -3,7 +3,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="os-release">
<refentry id="os-release" xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>os-release</title>
<productname>systemd</productname>
@ -16,12 +16,14 @@
<refnamediv>
<refname>os-release</refname>
<refname>initrd-release</refname>
<refpurpose>Operating system identification</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/os-release</filename></para>
<para><filename>/usr/lib/os-release</filename></para>
<para><filename>/etc/initrd-release</filename></para>
</refsynopsisdiv>
<refsect1>
@ -79,6 +81,19 @@
<para>For a longer rationale for <filename>os-release</filename>
please refer to the <ulink
url="http://0pointer.de/blog/projects/os-release">Announcement of <filename>/etc/os-release</filename></ulink>.</para>
<refsect2>
<title><filename>/etc/initrd-release</filename></title>
<para>In the <ulink
url="https://www.kernel.org/doc/html/latest/admin-guide/initrd.html">initrd</ulink>,
<filename>/etc/initrd-release</filename> plays the same role as <filename>os-release</filename> in the
main system. Additionally, the presence of that file means that the system is in the initrd phase.
<filename>/etc/os-release</filename> should be symlinked to <filename>/etc/initrd-release</filename>
(or vice versa), so programs that only look for <filename>/etc/os-release</filename> (as described
above) work correctly. The rest of this document that talks about <filename>os-release</filename>
should be understood to apply to <filename>initrd-release</filename> too.</para>
</refsect2>
</refsect1>
<refsect1>
@ -87,299 +102,320 @@
<para>The following OS identifications parameters may be set using
<filename>os-release</filename>:</para>
<variablelist class='environment-variables'>
<refsect2>
<title>General information identifying the operating system</title>
<varlistentry>
<term><varname>NAME=</varname></term>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>NAME=</varname></term>
<listitem><para>A string identifying the operating system,
without a version component, and suitable for presentation to
the user. If not set, defaults to
<literal>NAME=Linux</literal>. Example:
<literal>NAME=Fedora</literal> or <literal>NAME="Debian
GNU/Linux"</literal>.</para></listitem>
</varlistentry>
<listitem><para>A string identifying the operating system, without a version component, and
suitable for presentation to the user. If not set, a default of <literal>NAME=Linux</literal> may
be used.</para>
<varlistentry>
<term><varname>VERSION=</varname></term>
<para>Examples: <literal>NAME=Fedora</literal>, <literal>NAME="Debian GNU/Linux"</literal>.
</para></listitem>
</varlistentry>
<listitem><para>A string identifying the operating system
version, excluding any OS name information, possibly including
a release code name, and suitable for presentation to the
user. This field is optional. Example:
<literal>VERSION=17</literal> or <literal>VERSION="17 (Beefy
Miracle)"</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ID=</varname></term>
<varlistentry>
<term><varname>ID=</varname></term>
<listitem><para>A lower-case string (no spaces or other characters outside of 09, az, ".", "_"
and "-") identifying the operating system, excluding any version information and suitable for
processing by scripts or usage in generated filenames. If not set, a default of
<literal>ID=linux</literal> may be used.</para>
<listitem><para>A lower-case string (no spaces or other
characters outside of 09, az, ".", "_" and "-") identifying
the operating system, excluding any version information and
suitable for processing by scripts or usage in generated
filenames. If not set, defaults to
<literal>ID=linux</literal>. Example:
<literal>ID=fedora</literal> or
<literal>ID=debian</literal>.</para></listitem>
</varlistentry>
<para>Examples: <literal>ID=fedora</literal>, <literal>ID=debian</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ID_LIKE=</varname></term>
<varlistentry>
<term><varname>ID_LIKE=</varname></term>
<listitem><para>A space-separated list of operating system
identifiers in the same syntax as the <varname>ID=</varname>
setting. It should list identifiers of operating systems that
are closely related to the local operating system in regards
to packaging and programming interfaces, for example listing
one or more OS identifiers the local OS is a derivative from.
An OS should generally only list other OS identifiers it
itself is a derivative of, and not any OSes that are derived
from it, though symmetric relationships are possible. Build
scripts and similar should check this variable if they need to
identify the local operating system and the value of
<varname>ID=</varname> is not recognized. Operating systems
should be listed in order of how closely the local operating
system relates to the listed ones, starting with the closest.
This field is optional. Example: for an operating system with
<literal>ID=centos</literal>, an assignment of
<literal>ID_LIKE="rhel fedora"</literal> would be appropriate.
For an operating system with <literal>ID=ubuntu</literal>, an
assignment of <literal>ID_LIKE=debian</literal> is
appropriate.</para></listitem>
</varlistentry>
<listitem><para>A space-separated list of operating system identifiers in the same syntax as the
<varname>ID=</varname> setting. It should list identifiers of operating systems that are closely
related to the local operating system in regards to packaging and programming interfaces, for
example listing one or more OS identifiers the local OS is a derivative from. An OS should
generally only list other OS identifiers it itself is a derivative of, and not any OSes that are
derived from it, though symmetric relationships are possible. Build scripts and similar should
check this variable if they need to identify the local operating system and the value of
<varname>ID=</varname> is not recognized. Operating systems should be listed in order of how
closely the local operating system relates to the listed ones, starting with the closest. This
field is optional.</para>
<varlistentry>
<term><varname>VERSION_CODENAME=</varname></term>
<para>Examples: for an operating system with <literal>ID=centos</literal>, an assignment of
<literal>ID_LIKE="rhel fedora"</literal> would be appropriate. For an operating system with
<literal>ID=ubuntu</literal>, an assignment of <literal>ID_LIKE=debian</literal> is appropriate.
</para></listitem>
</varlistentry>
<listitem><para>
A lower-case string (no spaces or other characters outside of
09, az, ".", "_" and "-") identifying the operating system
release code name, excluding any OS name information or
release version, and suitable for processing by scripts or
usage in generated filenames. This field is optional and may
not be implemented on all systems.
Examples:
<literal>VERSION_CODENAME=buster</literal>,
<literal>VERSION_CODENAME=xenial</literal>
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>PRETTY_NAME=</varname></term>
<varlistentry>
<term><varname>VERSION_ID=</varname></term>
<listitem><para>A pretty operating system name in a format suitable for presentation to the
user. May or may not contain a release code name or OS version of some kind, as suitable. If not
set, a default of <literal>PRETTY_NAME="Linux"</literal> may be used</para>
<listitem><para>A lower-case string (mostly numeric, no spaces
or other characters outside of 09, az, ".", "_" and "-")
identifying the operating system version, excluding any OS
name information or release code name, and suitable for
processing by scripts or usage in generated filenames. This
field is optional. Example: <literal>VERSION_ID=17</literal>
or <literal>VERSION_ID=11.04</literal>.</para></listitem>
</varlistentry>
<para>Example: <literal>PRETTY_NAME="Fedora 17 (Beefy Miracle)"</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>PRETTY_NAME=</varname></term>
<varlistentry>
<term><varname>CPE_NAME=</varname></term>
<listitem><para>A pretty operating system name in a format
suitable for presentation to the user. May or may not contain
a release code name or OS version of some kind, as suitable.
If not set, defaults to
<literal>PRETTY_NAME="Linux"</literal>. Example:
<literal>PRETTY_NAME="Fedora 17 (Beefy
Miracle)"</literal>.</para></listitem>
</varlistentry>
<listitem><para>A CPE name for the operating system, in URI binding syntax, following the <ulink
url="http://scap.nist.gov/specifications/cpe/">Common Platform Enumeration Specification</ulink> as
proposed by the NIST. This field is optional.</para>
<varlistentry>
<term><varname>ANSI_COLOR=</varname></term>
<para>Example: <literal>CPE_NAME="cpe:/o:fedoraproject:fedora:17"</literal></para></listitem>
</varlistentry>
<listitem><para>A suggested presentation color when showing the OS name on the console. This should
be specified as string suitable for inclusion in the ESC [ m ANSI/ECMA-48 escape code for setting
graphical rendition. This field is optional. Example: <literal>ANSI_COLOR="0;31"</literal> for red,
<literal>ANSI_COLOR="1;34"</literal> for light blue, or
<literal>ANSI_COLOR="0;38;2;60;110;180"</literal> for Fedora blue.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>VARIANT=</varname></term>
<varlistentry>
<term><varname>CPE_NAME=</varname></term>
<listitem><para>A string identifying a specific variant or edition of the operating system suitable
for presentation to the user. This field may be used to inform the user that the configuration of
this system is subject to a specific divergent set of rules or default configuration settings. This
field is optional and may not be implemented on all systems.</para>
<listitem><para>A CPE name for the operating system, in URI
binding syntax, following the
<ulink url="http://scap.nist.gov/specifications/cpe/">Common
Platform Enumeration Specification</ulink> as proposed by the
NIST. This field is optional. Example:
<literal>CPE_NAME="cpe:/o:fedoraproject:fedora:17"</literal>
</para></listitem>
</varlistentry>
<para>Examples: <literal>VARIANT="Server Edition"</literal>, <literal>VARIANT="Smart Refrigerator
Edition"</literal>.</para>
<varlistentry>
<term><varname>HOME_URL=</varname></term>
<term><varname>DOCUMENTATION_URL=</varname></term>
<term><varname>SUPPORT_URL=</varname></term>
<term><varname>BUG_REPORT_URL=</varname></term>
<term><varname>PRIVACY_POLICY_URL=</varname></term>
<para>Note: this field is for display purposes only. The <varname>VARIANT_ID</varname> field should
be used for making programmatic decisions.</para></listitem>
</varlistentry>
<listitem><para>Links to resources on the Internet related to
the operating system.
<varname>HOME_URL=</varname> should refer to the homepage of
the operating system, or alternatively some homepage of the
specific version of the operating system.
<varname>DOCUMENTATION_URL=</varname> should refer to the main
documentation page for this operating system.
<varname>SUPPORT_URL=</varname> should refer to the main
support page for the operating system, if there is any. This
is primarily intended for operating systems which vendors
provide support for. <varname>BUG_REPORT_URL=</varname> should
refer to the main bug reporting page for the operating system,
if there is any. This is primarily intended for operating
systems that rely on community QA.
<varname>PRIVACY_POLICY_URL=</varname> should refer to the
main privacy policy page for the operating system, if there is
any. These settings are optional, and providing only some of
these settings is common. These URLs are intended to be
exposed in "About this system" UIs behind links with captions
such as "About this Operating System", "Obtain Support",
"Report a Bug", or "Privacy Policy". The values should be in
<ulink url="https://tools.ietf.org/html/rfc3986">RFC3986
format</ulink>, and should be <literal>http:</literal> or
<literal>https:</literal> URLs, and possibly
<literal>mailto:</literal> or <literal>tel:</literal>. Only
one URL shall be listed in each setting. If multiple resources
need to be referenced, it is recommended to provide an online
landing page linking all available resources. Examples:
<literal>HOME_URL="https://fedoraproject.org/"</literal> and
<literal>BUG_REPORT_URL="https://bugzilla.redhat.com/"</literal></para></listitem>
</varlistentry>
<varlistentry>
<term><varname>VARIANT_ID=</varname></term>
<varlistentry>
<term><varname>BUILD_ID=</varname></term>
<listitem><para>A lower-case string (no spaces or other characters outside of 09, az, ".", "_" and
"-"), identifying a specific variant or edition of the operating system. This may be interpreted by
other packages in order to determine a divergent default configuration. This field is optional and
may not be implemented on all systems.</para>
<listitem><para>A string uniquely identifying the system image
used as the origin for a distribution (it is not updated with
system updates). The field can be identical between different
VERSION_IDs as BUILD_ID is an only a unique identifier to a
specific version. Distributions that release each update as a
new version would only need to use VERSION_ID as each build is
already distinct based on the VERSION_ID. This field is
optional. Example: <literal>BUILD_ID="2013-03-20.3"</literal>
or <literal>BUILD_ID=201303203</literal>.
<para>Examples: <literal>VARIANT_ID=server</literal>, <literal>VARIANT_ID=embedded</literal>.
</para></listitem>
</varlistentry>
</variablelist>
</refsect2>
</para></listitem>
</varlistentry>
<refsect2>
<title>Information about the version of the operating system</title>
<varlistentry>
<term><varname>VARIANT=</varname></term>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>VERSION=</varname></term>
<listitem><para>
A string identifying a specific variant or edition of the
operating system suitable for presentation to the user. This
field may be used to inform the user that the configuration of
this system is subject to a specific divergent set of rules or
default configuration settings. This field is optional and may
not be implemented on all systems.
Examples:
<literal>VARIANT="Server Edition"</literal>,
<literal>VARIANT="Smart Refrigerator Edition"</literal>
Note: this field is for display purposes only. The
<varname>VARIANT_ID</varname> field should be used for making
programmatic decisions.
</para></listitem>
</varlistentry>
<listitem><para>A string identifying the operating system version, excluding any OS name
information, possibly including a release code name, and suitable for presentation to the
user. This field is optional.</para>
<varlistentry>
<term><varname>VARIANT_ID=</varname></term>
<para>Examples: <literal>VERSION=17</literal>, <literal>VERSION="17 (Beefy Miracle)"</literal>.
</para></listitem>
</varlistentry>
<listitem><para>
A lower-case string (no spaces or other characters outside of
09, az, ".", "_" and "-"), identifying a specific variant or
edition of the operating system. This may be interpreted by
other packages in order to determine a divergent default
configuration. This field is optional and may not be
implemented on all systems.
Examples:
<literal>VARIANT_ID=server</literal>,
<literal>VARIANT_ID=embedded</literal>
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>VERSION_ID=</varname></term>
<varlistentry>
<term><varname>LOGO=</varname></term>
<listitem><para>A lower-case string (mostly numeric, no spaces or other characters outside of 09,
az, ".", "_" and "-") identifying the operating system version, excluding any OS name information
or release code name, and suitable for processing by scripts or usage in generated filenames. This
field is optional.</para>
<listitem><para>
A string, specifying the name of an icon as defined by <ulink
url="http://standards.freedesktop.org/icon-theme-spec/latest">
freedesktop.org Icon Theme Specification</ulink>. This can be
used by graphical applications to display an operating
system's or distributor's logo. This field is optional and
may not necessarily be implemented on all systems.
Examples:
<literal>LOGO=fedora-logo</literal>,
<literal>LOGO=distributor-logo-opensuse</literal>
</para></listitem>
</varlistentry>
<para>Examples: <literal>VERSION_ID=17</literal>, <literal>VERSION_ID=11.04</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>DEFAULT_HOSTNAME=</varname></term>
<varlistentry>
<term><varname>VERSION_CODENAME=</varname></term>
<listitem><para>A string specifying the hostname if
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry> is not
present and no other configuration source specifies the hostname. Must be either a single DNS label
(a string composed of 7-bit ASCII lower-case characters and no spaces or dots, limited to the format
allowed for DNS domain name labels), or a sequence of such labels separated by single dots that forms
a valid DNS FQDN. The hostname must be at most 64 characters, which is a Linux limitation (DNS allows
longer names).</para>
<listitem><para>A lower-case string (no spaces or other characters outside of 09, az, ".", "_"
and "-") identifying the operating system release code name, excluding any OS name information or
release version, and suitable for processing by scripts or usage in generated filenames. This field
is optional and may not be implemented on all systems.</para>
<para>See
<citerefentry><refentrytitle>org.freedesktop.hostname1</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for a description of how
<citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
determines the fallback hostname.</para></listitem>
</varlistentry>
<para>Examples: <literal>VERSION_CODENAME=buster</literal>,
<literal>VERSION_CODENAME=xenial</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>SYSEXT_LEVEL=</varname></term>
<varlistentry>
<term><varname>BUILD_ID=</varname></term>
<listitem><para>A lower-case string (mostly numeric, no spaces or other characters outside of 09,
az, ".", "_" and "-") identifying the operating system extensions support level, to indicate which
extension images are supported (See:
<citerefentry><refentrytitle>systemd-sysext</refentrytitle><manvolnum>8</manvolnum></citerefentry>).
Example: <literal>SYSEXT_LEVEL=2</literal> or
<literal>SYSEXT_LEVEL=15.14</literal>.</para></listitem>
</varlistentry>
<listitem><para>A string uniquely identifying the system image originally used as the installation
base. In most cases, <varname>VERSION_ID</varname> or
<varname>IMAGE_ID</varname>+<varname>IMAGE_VERSION</varname> are updated when the entire system
image is replaced during an update. <varname>BUILD_ID</varname> may be used in distributions where
the original installation image version is important: <varname>VERSION_ID</varname> would change
during incremental system updates, but <varname>BUILD_ID</varname> would not. This field is
optional.</para>
</variablelist>
<para>Examples: <literal>BUILD_ID="2013-03-20.3"</literal>, <literal>BUILD_ID=201303203</literal>.
</para></listitem>
</varlistentry>
<para>If you are reading this file from C code or a shell script
to determine the OS or a specific version of it, use the
<varname>ID</varname> and <varname>VERSION_ID</varname> fields,
possibly with <varname>ID_LIKE</varname> as fallback for
<varname>ID</varname>. When looking for an OS identification
string for presentation to the user use the
<varname>PRETTY_NAME</varname> field.</para>
<varlistentry>
<term><varname>IMAGE_ID=</varname></term>
<para>Note that operating system vendors may choose not to provide
version information, for example to accommodate for rolling
releases. In this case, <varname>VERSION</varname> and
<varname>VERSION_ID</varname> may be unset. Applications should
not rely on these fields to be set.</para>
<listitem><para> A lower-case string (no spaces or other characters outside of 09, az, ".", "_"
and "-"), identifying a specific image of the operating system. This is supposed to be used for
environments where OS images are prepared, built, shipped and updated as comprehensive, consistent
OS images. This field is optional and may not be implemented on all systems, in particularly not on
those that are not managed via images but put together and updated from individual packages and on
the local system.</para>
<para>Operating system vendors may extend the file
format and introduce new fields. It is highly
recommended to prefix new fields with an OS specific
name in order to avoid name clashes. Applications
reading this file must ignore unknown fields. Example:
<literal>DEBIAN_BTS="debbugs://bugs.debian.org/"</literal></para>
<para>Examples: <literal>IMAGE_ID=vendorx-cashier-system</literal>,
<literal>IMAGE_ID=netbook-image</literal>.</para></listitem>
</varlistentry>
<para>Container and sandbox runtime managers may make the host's
identification data available to applications by providing the host's
<filename>/etc/os-release</filename> (if available, otherwise
<filename>/usr/lib/os-release</filename> as a fallback) as
<filename>/run/host/os-release</filename>.</para>
<varlistentry>
<term><varname>IMAGE_VERSION=</varname></term>
<listitem><para>A lower-case string (mostly numeric, no spaces or other characters outside of 09,
az, ".", "_" and "-") identifying the OS image version. This is supposed to be used together with
<varname>IMAGE_ID</varname> described above, to discern different versions of the same image.
</para>
<para>Examples: <literal>IMAGE_VERSION=33</literal>, <literal>IMAGE_VERSION=47.1rc1</literal>.
</para></listitem>
</varlistentry>
</variablelist>
<para>To summarize: if the image updates are built and shipped as comprehensive units,
<varname>IMAGE_ID</varname>+<varname>IMAGE_VERSION</varname> is the best fit. Otherwise, if updates
eventually completely replace previously installed contents, as in a typical binary distribution,
<varname>VERSION_ID</varname> should be used to identify major releases of the operating system.
<varname>BUILD_ID</varname> may be used instead or in addition to <varname>VERSION_ID</varname> when
the original system image version is important.</para>
</refsect2>
<refsect2>
<title>Presentation information and links</title>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>HOME_URL=</varname></term>
<term><varname>DOCUMENTATION_URL=</varname></term>
<term><varname>SUPPORT_URL=</varname></term>
<term><varname>BUG_REPORT_URL=</varname></term>
<term><varname>PRIVACY_POLICY_URL=</varname></term>
<listitem><para>Links to resources on the Internet related to the operating system.
<varname>HOME_URL=</varname> should refer to the homepage of the operating system, or alternatively
some homepage of the specific version of the operating system.
<varname>DOCUMENTATION_URL=</varname> should refer to the main documentation page for this
operating system. <varname>SUPPORT_URL=</varname> should refer to the main support page for the
operating system, if there is any. This is primarily intended for operating systems which vendors
provide support for. <varname>BUG_REPORT_URL=</varname> should refer to the main bug reporting page
for the operating system, if there is any. This is primarily intended for operating systems that
rely on community QA. <varname>PRIVACY_POLICY_URL=</varname> should refer to the main privacy
policy page for the operating system, if there is any. These settings are optional, and providing
only some of these settings is common. These URLs are intended to be exposed in "About this system"
UIs behind links with captions such as "About this Operating System", "Obtain Support", "Report a
Bug", or "Privacy Policy". The values should be in <ulink
url="https://tools.ietf.org/html/rfc3986">RFC3986 format</ulink>, and should be
<literal>http:</literal> or <literal>https:</literal> URLs, and possibly <literal>mailto:</literal>
or <literal>tel:</literal>. Only one URL shall be listed in each setting. If multiple resources
need to be referenced, it is recommended to provide an online landing page linking all available
resources.</para>
<para>Examples: <literal>HOME_URL="https://fedoraproject.org/"</literal>,
<literal>BUG_REPORT_URL="https://bugzilla.redhat.com/"</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>LOGO=</varname></term>
<listitem><para>A string, specifying the name of an icon as defined by <ulink
url="http://standards.freedesktop.org/icon-theme-spec/latest">freedesktop.org Icon Theme
Specification</ulink>. This can be used by graphical applications to display an operating system's
or distributor's logo. This field is optional and may not necessarily be implemented on all
systems.</para>
<para>Examples: <literal>LOGO=fedora-logo</literal>, <literal>LOGO=distributor-logo-opensuse</literal>
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ANSI_COLOR=</varname></term>
<listitem><para>A suggested presentation color when showing the OS name on the console. This should
be specified as string suitable for inclusion in the ESC [ m ANSI/ECMA-48 escape code for setting
graphical rendition. This field is optional.</para>
<para>Examples: <literal>ANSI_COLOR="0;31"</literal> for red, <literal>ANSI_COLOR="1;34"</literal>
for light blue, or <literal>ANSI_COLOR="0;38;2;60;110;180"</literal> for Fedora blue.
</para></listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2>
<title>Distribution-level defaults and metadata</title>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>DEFAULT_HOSTNAME=</varname></term>
<listitem><para>A string specifying the hostname if
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry> is not
present and no other configuration source specifies the hostname. Must be either a single DNS label
(a string composed of 7-bit ASCII lower-case characters and no spaces or dots, limited to the
format allowed for DNS domain name labels), or a sequence of such labels separated by single dots
that forms a valid DNS FQDN. The hostname must be at most 64 characters, which is a Linux
limitation (DNS allows longer names).</para>
<para>See <citerefentry><refentrytitle>org.freedesktop.hostname1</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for a description of how
<citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
determines the fallback hostname.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>SYSEXT_LEVEL=</varname></term>
<listitem><para>A lower-case string (mostly numeric, no spaces or other characters outside of 09,
az, ".", "_" and "-") identifying the operating system extensions support level, to indicate which
extension images are supported. See:
<citerefentry><refentrytitle>systemd-sysext</refentrytitle><manvolnum>8</manvolnum></citerefentry>)
for more information.</para>
<para>Examples: <literal>SYSEXT_LEVEL=2</literal>, <literal>SYSEXT_LEVEL=15.14</literal>.
</para></listitem>
</varlistentry>
</variablelist>
</refsect2>
<refsect2>
<title>Notes</title>
<para>If you are using this file to determine the OS or a specific version of it, use the
<varname>ID</varname> and <varname>VERSION_ID</varname> fields, possibly with
<varname>ID_LIKE</varname> as fallback for <varname>ID</varname>. When looking for an OS identification
string for presentation to the user use the <varname>PRETTY_NAME</varname> field.</para>
<para>Note that operating system vendors may choose not to provide version information, for example to
accommodate for rolling releases. In this case, <varname>VERSION</varname> and
<varname>VERSION_ID</varname> may be unset. Applications should not rely on these fields to be
set.</para>
<para>Operating system vendors may extend the file format and introduce new fields. It is highly
recommended to prefix new fields with an OS specific name in order to avoid name clashes. Applications
reading this file must ignore unknown fields.</para>
<para>Example: <literal>DEBIAN_BTS="debbugs://bugs.debian.org/"</literal>.</para>
<para>Container and sandbox runtime managers may make the host's identification data available to
applications by providing the host's <filename>/etc/os-release</filename> (if available, otherwise
<filename>/usr/lib/os-release</filename> as a fallback) as
<filename>/run/host/os-release</filename>.</para>
</refsect2>
</refsect1>
<refsect1>
<title>Example</title>
<title>Examples</title>
<programlisting>NAME=Fedora
<example>
<title><filename>os-release</filename> file for Fedora Workstation</title>
<programlisting>NAME=Fedora
VERSION="32 (Workstation Edition)"
ID=fedora
VERSION_ID=32
@ -398,6 +434,22 @@ REDHAT_SUPPORT_PRODUCT_VERSION=32
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
VARIANT="Workstation Edition"
VARIANT_ID=workstation</programlisting>
</example>
<example>
<title>Reading <filename>os-release</filename> in
<citerefentry><refentrytitle>sh</refentrytitle><manvolnum>1</manvolnum></citerefentry></title>
<programlisting><xi:include href="check-os-release.sh" parse="text" /></programlisting>
</example>
<example>
<title>Reading <filename>os-release</filename> in
<citerefentry><refentrytitle>python</refentrytitle><manvolnum>1</manvolnum></citerefentry></title>
<programlisting><xi:include href="check-os-release.py" parse="text" /></programlisting>
</example>
</refsect1>
<refsect1>

View File

@ -352,6 +352,19 @@
<listitem><para>Don't block waiting for attach --now to complete.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--extension=</option><replaceable>PATH</replaceable></term>
<listitem><para>Add an additional image <replaceable>PATH</replaceable> as an overlay on
top of <replaceable>IMAGE</replaceable> when attaching/detaching. This argument can be specified
multiple times, in which case the order in which images are laid down follows the rules specified in
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for the <varname>ExtensionImages=</varname> directive.</para>
<para>Note that the same extensions have to be specified, in the same order, when attaching
and detaching.</para></listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="machine" />

View File

@ -55,11 +55,13 @@
partition slot greater than the highest slot number currently in use. Any existing partitions that have
no matching partition file are left as they are.</para>
<para>Note that these definitions may only be used to created and initialize new partitions or grow
<para>Note that these definitions may only be used to create and initialize new partitions or to grow
existing ones. In the latter case it will not grow the contained files systems however; separate
mechanisms, such as
<citerefentry><refentrytitle>systemd-growfs</refentrytitle><manvolnum>8</manvolnum></citerefentry> may be
used to grow the file systems inside of these partitions.</para>
used to grow the file systems inside of these partitions. Partitions may also be marked for automatic
growing via the <varname>GrowFileSystem=</varname> setting, in which case the file system is grown on
first mount by tools that respect this flag. See below for details.</para>
</refsect1>
<refsect1>
@ -422,12 +424,25 @@
<varlistentry>
<term><varname>CopyBlocks=</varname></term>
<listitem><para>Takes a path to a regular file, block device node or directory. If specified and the
partition is newly created the data from the specified path is written to the newly created
partition, on the block level. If a directory is specified the backing block device of the file
system the directory is on is determined and the data read directly from that. This option is useful
to efficiently replicate existing file systems on the block level on a new partition, for example to
build a simple OS installer or OS image builder.</para>
<listitem><para>Takes a path to a regular file, block device node or directory, or the special value
<literal>auto</literal>. If specified and the partition is newly created, the data from the specified
path is written to the newly created partition, on the block level. If a directory is specified, the
backing block device of the file system the directory is on is determined, and the data read directly
from that. This option is useful to efficiently replicate existing file systems onto new partitions
on the block level — for example to build a simple OS installer or an OS image builder.</para>
<para>If the special value <literal>auto</literal> is specified, the source to copy from is
automatically picked up from the running system (or the image specified with
<option>--image=</option> — if used). A partition that matches both the configured partition type (as
declared with <varname>Type=</varname> above), and the currently mounted directory appropriate for
that partition type is determined. For example, if the partition type is set to
<literal>root</literal> the partition backing the root directory (<filename>/</filename>) is used as
source to copy from — if its partition type is set to <literal>root</literal> as well. If the
declared type is <literal>usr</literal> the partition backing <filename>/usr/</filename> is used as
source to copy blocks from — if its partition type is set to <literal>usr</literal> too. The logic is
capable of automatically tracking down the the backing partitions for encrypted and Verity-enabled
volumes. <literal>CopyBlocks=auto</literal> is useful for implementing "self-replicating" systems,
i.e. systems that are their own installer.</para>
<para>The file specified here must have a size that is a multiple of the basic block size 512 and not
be empty. If this option is used, the size allocation algorithm is slightly altered: the partition is
@ -486,7 +501,38 @@
<para>The copy operation is executed before the file system is registered in the partition table,
thus ensuring that a file system populated this way only ever exists fully initialized.</para>
<para>This option cannot be combined with <varname>CopyBlocks=</varname>.</para></listitem>
<para>This option cannot be combined with <varname>CopyBlocks=</varname>.</para>
<para>When <command>systemd-repart</command> is invoked with the <option>--image=</option> or
<option>--root=</option> command line switches the source paths specified are taken relative to the
specified root directory or disk image root.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>MakeDirectories=</varname></term>
<listitem><para>akes one or more absolute paths, separated by whitespace, each declaring a directory
to create within the new file system. Behaviour is similar to <varname>CopyFiles=</varname>, but
instead of copying in a set of files this just creates the specified directories with the default
mode of 0755 owned by the root user and group, plus all their parent directories (with the same
ownership and access mode). To configure directories with different ownership or access mode, use
<varname>CopyFiles=</varname> and specify a source tree to copy containing appropriately
owned/configured directories. This option may be used more than once to create multiple
directories. When <varname>CopyFiles=</varname> and <varname>MakeDirectories=</varname> are used
together the former is applied first. If a directory listed already exists no operation is executed
(in particular, the ownership/access mode of the directories is left as is).</para>
<para>The primary usecase for this option is to create a minimal set of directories that may be
mounted over by other partitions contained in the same disk image. For example, a disk image where
the root file system is formatted at first boot might want to automatically pre-create
<filename>/usr/</filename> in it this way, so that the <literal>usr</literal> partition may
over-mount it.</para>
<para>Consider using
<citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>
with its <option>--image=</option> option to pre-create other, more complex directory hierarchies (as
well as other inodes) with fine-grained control of ownership, access modes and other file
attributes.</para></listitem>
</varlistentry>
<varlistentry>
@ -521,13 +567,64 @@
factory reset operation. This functionality is useful to implement schemes where images can be reset
into their original state by removing partitions and creating them anew. Defaults to off.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Flags=</varname></term>
<listitem><para>Configures the 64bit GPT partition flags to set for the partition when creating
it. This option has no effect if the partition already exists. If not specified the flags values is
set to all zeroes, except if the partition type (as configured with <varname>Type=</varname> above)
refers to a Verity partition, in which case bit 60 is set (i.e. the read-only bit). This bit may also
be configured separately via <varname>ReadOnly=</varname>, see below. Specify the flags value in
hexadecimal (by prefixing it with <literal>0x</literal>), binary (prefix <literal>0b</literal>) or
decimal (no prefix).</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ReadOnly=</varname></term>
<term><varname>GrowFileSystem=</varname></term>
<listitem><para>Configures the Read-Only and Grow-File-System partition flags (bit 60 and 59) of the
partition table entry, as defined by the <ulink
url="https://systemd.io/DISCOVERABLE_PARTITIONS">Discoverable Partitions Specification</ulink>. Only
available for partition types supported by the specification. This option is a friendly way to set bit
60 and 59 of the partition flags value without setting any of the other bits, and may be set via
<varname>Flags=</varname> too, see above.</para>
<para>If <varname>Flags=</varname> is used in conjunction with one or both of
<varname>ReadOnly=</varname>/<varname>GrowFileSystem=</varname> the latter control the value of the
relevant flags, i.e. the high-level settings
<varname>ReadOnly=</varname>/<varname>GrowFileSystem=</varname> override the low-level setting
<varname>Flags=</varname>.</para>
<para>Note that the two flags affect only automatic partition mounting, as implemented by
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
or the <option>--image=</option> option of various commands (such as
<citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>). It
has no effect on explicit mounts, such as those done via <citerefentry
project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry> or
<citerefentry
project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry></para>
<para>If both bit 50 and 59 are set for a partition (i.e. the partition is marked both read-only and
marked for file system growing) the latter is typically without effect: the read-only flag takes
precedence in most tools reading these flags, and since growing the file system involves writing to
the partition it is consequently ignored.</para>
<para><varname>ReadOnly=</varname> defaults to on for Verity partition
types. <varname>GrowFileSystem=</varname> defaults to on for all partition types that support it,
except if the partition is marked read-only (and thus effectively, defaults to off for Verity
partitions).</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Specifiers</title>
<para>Specifiers may be used in the <varname>Label=</varname> setting. The following expansions are understood:</para>
<para>Specifiers may be used in the <varname>Label=</varname>, <varname>CopyBlocks=</varname>,
<varname>CopyFiles=</varname>, <varname>MakeDirectories=</varname> settings. The following expansions are
understood:</para>
<table class='specifiers'>
<title>Specifiers available</title>
<tgroup cols='3' align='left' colsep='1' rowsep='1'>
@ -543,15 +640,19 @@
</thead>
<tbody>
<xi:include href="standard-specifiers.xml" xpointer="a"/>
<xi:include href="standard-specifiers.xml" xpointer="A"/>
<xi:include href="standard-specifiers.xml" xpointer="b"/>
<xi:include href="standard-specifiers.xml" xpointer="B"/>
<xi:include href="standard-specifiers.xml" xpointer="H"/>
<xi:include href="standard-specifiers.xml" xpointer="l"/>
<xi:include href="standard-specifiers.xml" xpointer="m"/>
<xi:include href="standard-specifiers.xml" xpointer="M"/>
<xi:include href="standard-specifiers.xml" xpointer="o"/>
<xi:include href="standard-specifiers.xml" xpointer="v"/>
<xi:include href="standard-specifiers.xml" xpointer="w"/>
<xi:include href="standard-specifiers.xml" xpointer="W"/>
<xi:include href="standard-specifiers.xml" xpointer="T"/>
<xi:include href="standard-specifiers.xml" xpointer="V"/>
<xi:include href="standard-specifiers.xml" xpointer="percent"/>
</tbody>
</tgroup>

View File

@ -299,11 +299,11 @@
<listitem><para>Takes a boolean parameter; used in conjunction with <command>query</command>. If true
(the default), select domains are resolved on the local system, among them
<literal>localhost</literal> and <literal>_gateway</literal> or entries from
<filename>/etc/hosts</filename>. If false these domains are not resolved locally, and either fail (in
case of <literal>localhost</literal> or <literal>_gateway</literal> and suchlike) or go to the
network via regular DNS/mDNS/LLMNR lookups (in case of <filename>/etc/hosts</filename>
entries).</para></listitem>
<literal>localhost</literal>, <literal>_gateway</literal> and <literal>_outbound</literal>, or
entries from <filename>/etc/hosts</filename>. If false these domains are not resolved locally, and
either fail (in case of <literal>localhost</literal>, <literal>_gateway</literal> or
<literal>_outbound</literal> and suchlike) or go to the network via regular DNS/mDNS/LLMNR lookups
(in case of <filename>/etc/hosts</filename> entries).</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -61,7 +61,7 @@ manpages = [
['org.freedesktop.resolve1', '5', [], 'ENABLE_RESOLVE'],
['org.freedesktop.systemd1', '5', [], ''],
['org.freedesktop.timedate1', '5', [], 'ENABLE_TIMEDATED'],
['os-release', '5', [], ''],
['os-release', '5', ['initrd-release'], ''],
['pam_systemd', '8', [], 'HAVE_PAM'],
['pam_systemd_home', '8', [], 'ENABLE_PAM_HOME'],
['portablectl', '1', [], 'ENABLE_PORTABLED'],
@ -119,14 +119,20 @@ manpages = [
['sd-hwdb', '3', [], ''],
['sd-id128',
'3',
['SD_ID128_CONST_STR',
['SD_ID128_ALLF',
'SD_ID128_CONST_STR',
'SD_ID128_FORMAT_STR',
'SD_ID128_FORMAT_VAL',
'SD_ID128_MAKE',
'SD_ID128_MAKE_STR',
'SD_ID128_MAKE_UUID_STR',
'SD_ID128_NULL',
'SD_ID128_UUID_FORMAT_STR',
'sd_id128_equal',
'sd_id128_in_set',
'sd_id128_in_set_sentinel',
'sd_id128_in_setv',
'sd_id128_is_allf',
'sd_id128_is_null',
'sd_id128_t'],
''],

View File

@ -18,16 +18,22 @@
<refnamediv>
<refname>sd-id128</refname>
<refname>sd_id128_t</refname>
<refname>SD_ID128_MAKE</refname>
<refname>SD_ID128_MAKE_STR</refname>
<refname>SD_ID128_NULL</refname>
<refname>SD_ID128_ALLF</refname>
<refname>SD_ID128_CONST_STR</refname>
<refname>SD_ID128_FORMAT_STR</refname>
<refname>SD_ID128_UUID_FORMAT_STR</refname>
<refname>SD_ID128_FORMAT_VAL</refname>
<refname>SD_ID128_MAKE</refname>
<refname>SD_ID128_MAKE_STR</refname>
<refname>SD_ID128_MAKE_UUID_STR</refname>
<refname>SD_ID128_NULL</refname>
<refname>SD_ID128_UUID_FORMAT_STR</refname>
<refname>sd_id128_equal</refname>
<refname>sd_id128_in_set</refname>
<refname>sd_id128_in_set_sentinel</refname>
<refname>sd_id128_in_setv</refname>
<refname>sd_id128_is_allf</refname>
<refname>sd_id128_is_null</refname>
<refname>sd_id128_t</refname>
<refpurpose>APIs for processing 128-bit IDs</refpurpose>
</refnamediv>
@ -45,13 +51,11 @@
<refsect1>
<title>Description</title>
<para><filename>sd-id128.h</filename> provides APIs to process and
generate 128-bit ID values. The 128-bit ID values processed and
generated by these APIs are a generalization of OSF UUIDs as
defined by <ulink url="https://tools.ietf.org/html/rfc4122">RFC
4122</ulink> but use a simpler string format. These functions
impose no structure on the used IDs, much unlike OSF UUIDs or
Microsoft GUIDs, but are fully compatible with those types of IDs.
<para><filename>sd-id128.h</filename> provides APIs to process and generate 128-bit ID values. The
128-bit ID values processed and generated by these APIs are a generalization of OSF UUIDs as defined by
<ulink url="https://tools.ietf.org/html/rfc4122">RFC 4122</ulink> but use a simpler string format. These
functions impose no structure on the used IDs, much unlike OSF UUIDs or Microsoft GUIDs, but are mostly
compatible with those types of IDs.
</para>
<para>See
@ -85,7 +89,7 @@
<programlisting>#define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1)</programlisting>
<para><constant>SD_ID128_NULL</constant> may be used to refer to the 128bit ID consisting of only
<para><constant>SD_ID128_NULL</constant> may be used to refer to the 128-bit ID consisting of only
<constant>NUL</constant> bytes.</para>
<para><function>SD_ID128_MAKE_STR()</function> is similar to <function>SD_ID128_MAKE()</function>, but creates a
@ -96,8 +100,7 @@
int main(int argc, char **argv) {
puts("Match for coredumps: MESSAGE_ID=" SD_MESSAGE_COREDUMP_STR);
}
</programlisting>
}</programlisting>
<para><function>SD_ID128_CONST_STR()</function> may be used to
convert constant 128-bit IDs into constant strings for output. The
@ -119,10 +122,16 @@ int main(int argc, char **argv) {
return 0;
}</programlisting>
<para><constant>SD_ID128_UUID_FORMAT_STR</constant> is similar to
<constant>SD_ID128_FORMAT_STR</constant> but includes separating hyphens to conform to the
<para><constant>SD_ID128_UUID_FORMAT_STR</constant> and <function>SD_ID128_MAKE_UUID_STR()</function>
are similar to
<constant>SD_ID128_FORMAT_STR</constant> and <function>SD_ID128_MAKE_STR()</function>,
but include separating hyphens to conform to the
"<ulink url="https://en.wikipedia.org/wiki/Universally_unique_identifier#Format">canonical representation</ulink>".
</para>
They format the string based on <ulink
url="https://tools.ietf.org/html/rfc4122">RFC4122</ulink> Variant 1 rules, i.e. converting from Big
Endian byte order. This matches behaviour of most other Linux userspace infrastructure. It's probably
best to avoid UUIDs of other variants, in order to avoid unnecessary ambiguities. All 128-bit IDs
generated by the sd-id128 APIs strictly conform to Variant 1 Version 4 UUIDs, as per RFC 4122.</para>
<para>Use <function>sd_id128_equal()</function> to compare two 128-bit IDs:</para>
@ -136,12 +145,41 @@ int main(int argc, char **argv) {
return 0;
}</programlisting>
<para>Use <function>sd_id128_is_null()</function> to check if an 128bit ID consists of only
<para>Use <function>sd_id128_is_null()</function> to check if an 128-bit ID consists of only
<constant>NUL</constant> bytes:</para>
<programlisting>assert(sd_id128_is_null(SD_ID128_NULL));</programlisting>
<para>Similarly, use <function>sd_id128_is_allf()</function> to check if an 128-bit ID consists of only
<constant>0xFF</constant> bytes (all bits on):</para>
<programlisting>assert(sd_id128_is_allf(SD_ID128_ALLF));</programlisting>
<para>For convenience, <function>sd_id128_in_set()</function> takes a list of IDs and
returns true if any are equal to the first argument:</para>
<programlisting>int main(int argc, char *argv[]) {
assert(sd_id128_is_null(SD_ID128_NULL));
}</programlisting>
sd_id12_t a = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07);
assert(sd_id128_in_set(a, a));
assert(sd_id128_in_set(a, a, a));
assert(!sd_id128_in_set(a));
assert(!sd_id128_in_set(a,
SD_ID128_MAKE(f2,28,88,9c,5f,09,44,15,9d,d7,04,77,58,cb,e7,3e)
SD_ID128_MAKE(2f,88,28,5f,9c,44,09,9d,d7,15,77,04,bc,85,7e,e3)
SD_ID128_ALLF));
return 0;
}
</programlisting>
<para><function>sd_id128_in_set()</function> is defined as a macro over
<function>sd_id128_in_set_sentinel()</function>, adding the <constant>SD_ID128_NULL</constant>
sentinel. Since <function>sd_id128_in_set_sentinel()</function> uses <constant>SD_ID128_NULL</constant>
as the sentinel, <constant>SD_ID128_NULL</constant> cannot be otherwise placed in the argument list.
</para>
<para><function>sd_id128_in_setv()</function> is similar to
<function>sd_id128_in_set_sentinel()</function>, but takes a <structname>struct varargs</structname>
argument.</para>
<para>Note that new, randomized IDs may be generated with
<citerefentry><refentrytitle>systemd-id128</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s

View File

@ -58,8 +58,9 @@
<para><parameter>callback</parameter> is called with the path and userdata pointer registered
with <function>sd_bus_add_node_enumerator()</function>. When called, it should store all the
child object paths of the given path prefix in <parameter>ret_nodes</parameter> and return the
number of child objects under the given prefix. If an error occurs, it can either return a
child object paths of the given path prefix in <parameter>ret_nodes</parameter> with a NULL
terminator item. The callback should return a non-negative value on success.
If an error occurs, it can either return a
negative integer, set <parameter>ret_error</parameter> to a non-empty error or do both. Any
errors returned by the callback are encoded as D-Bus errors and sent back to the caller. Errors
in <parameter>ret_error</parameter> take priority over negative return values.</para>

View File

@ -147,55 +147,54 @@
<refsect1>
<title>Description</title>
<para>The <structname>sd_bus_error</structname> structure carries
information about a D-Bus error condition. The functions described
below may be used to set and query fields in this structure. The
<structfield>name</structfield> field contains a short identifier
of an error. It should follow the rules for error names described
in the D-Bus specification, subsection <ulink
url="http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names">Valid
Names</ulink>. A number of common, standardized error names are
described in
<citerefentry><refentrytitle>sd-bus-errors</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
but additional domain-specific errors may be defined by
applications. The <structfield>message</structfield> field usually
contains a human-readable string describing the details, but might
be <constant>NULL</constant>. An unset <structname>sd_bus_error</structname> structure
should have both fields initialized to <constant>NULL</constant>. Set an error
structure to <constant>SD_BUS_ERROR_NULL</constant> in order to
reset both fields to <constant>NULL</constant>. When no longer necessary, resources
held by the <structname>sd_bus_error</structname> structure should
be destroyed with <function>sd_bus_error_free()</function>.</para>
<para>The <structname>sd_bus_error</structname> structure carries information about a D-Bus error
condition, or lack thereof. The functions described below may be used to set and query fields in this
structure.
<itemizedlist>
<listitem><para>The <structfield>name</structfield> field contains a short identifier of an error. It
should follow the rules for error names described in the D-Bus specification, subsection <ulink
url="http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names">Valid
Names</ulink>. A number of common, standardized error names are described in
<citerefentry><refentrytitle>sd-bus-errors</refentrytitle><manvolnum>3</manvolnum></citerefentry>, but
additional domain-specific errors may be defined by applications.</para></listitem>
<para><function>sd_bus_error_set()</function> sets an error
structure to the specified name and message strings. The strings
will be copied into internal, newly allocated memory. It is
essential to free the error structure again when it is not
required anymore (see above). The function will return an
<varname>errno</varname>-like negative value (see <citerefentry
<listitem><para>The <structfield>message</structfield> field usually contains a human-readable string
describing the details, but might be <constant>NULL</constant>.</para></listitem>
</itemizedlist>
An unset <structname>sd_bus_error</structname> structure should have both fields initialized to
<constant>NULL</constant>, and signifies lack of an error, i.e. success. Assign
<constant>SD_BUS_ERROR_NULL</constant> to the structure in order to initialize both fields to
<constant>NULL</constant>. When no longer necessary, resources held by the
<structname>sd_bus_error</structname> structure should be destroyed with
<function>sd_bus_error_free()</function>.</para>
<para><function>sd_bus_error_set()</function> sets an error structure to the specified name and message
strings. The strings will be copied into internal, newly allocated memory. It is essential to free the
contents again when they are not required anymore (see above). Do not use this call on error structures
that have already been set. If you intend to reuse an error structure, free the old data stored in it
with <function>sd_bus_error_free()</function> first.</para>
<para><function>sd_bus_error_set()</function> will return an <varname>errno</varname>-like value (see
<citerefentry
project='man-pages'><refentrytitle>errno</refentrytitle><manvolnum>3</manvolnum></citerefentry>)
determined from the specified error name. Various well-known
D-Bus errors are converted to well-known <varname>errno</varname>
counterparts, and the other ones to <constant>-EIO</constant>. See
<citerefentry><refentrytitle>sd-bus-errors</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for a list of well-known error names. Additional error mappings
may be defined with
<citerefentry><refentrytitle>sd_bus_error_add_map</refentrytitle><manvolnum>3</manvolnum></citerefentry>. If
<parameter>e</parameter> is <constant>NULL</constant>, no error structure is initialized,
but the error is still converted into an
<varname>errno</varname>-style error. If
<parameter>name</parameter> is <constant>NULL</constant>, it is
assumed that no error occurred, and 0 is returned. This means that
this function may be conveniently used in a
<function>return</function> statement. If
<parameter>message</parameter> is <constant>NULL</constant>, no message is set. This
call can fail if no memory may be allocated for the name and
message strings, in which case an
<constant>SD_BUS_ERROR_NO_MEMORY</constant> error might be set
instead and -ENOMEM be returned. Do not use this call on error
structures that are already initialized. If you intend to reuse an
error structure, free the old data stored in it with
<function>sd_bus_error_free()</function> first.</para>
determined from the specified error name <parameter>name</parameter>. If <parameter>name</parameter> is
<constant>NULL</constant>, it is assumed that no error occurred, and <constant>0</constant> is returned.
If <parameter>name</parameter> is nonnull, a negative value is always returned. If
<parameter>e</parameter> is <constant>NULL</constant>, no error structure is initialized, but
<parameter>name</parameter> is still converted into an <varname>errno</varname>-style value.</para>
<para>Various well-known D-Bus errors are converted to well-known <varname>errno</varname> counterparts,
and the other ones to <constant>-EIO</constant>. See
<citerefentry><refentrytitle>sd-bus-errors</refentrytitle><manvolnum>3</manvolnum></citerefentry> for a
list of well-known error names. Additional error mappings may be defined with
<citerefentry><refentrytitle>sd_bus_error_add_map</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
</para>
<para><function>sd_bus_error_set()</function> is designed to be conveniently used in a
<function>return</function> statement. If <parameter>message</parameter> is <constant>NULL</constant>, no
message is set. This call can fail if no memory may be allocated for the name and message strings, in
which case an <constant>SD_BUS_ERROR_NO_MEMORY</constant> error will be set instead and
<constant>-ENOMEM</constant> returned. </para>
<para><function>sd_bus_error_setf()</function> is similar to
<function>sd_bus_error_set()</function>, but takes a <citerefentry
@ -204,33 +203,25 @@
<structfield>message</structfield> field.</para>
<para><function>sd_bus_error_set_const()</function> is similar to
<function>sd_bus_error_set()</function>, but the string parameters
are not copied internally, and must hence remain constant and
valid for the lifetime of <parameter>e</parameter>. Use this call
to avoid memory allocations when setting error structures. Since
this call does not allocate memory, it will not fail with an
out-of-memory condition as
<function>sd_bus_error_set()</function> can, as described
above. Alternatively, the
<constant>SD_BUS_ERROR_MAKE_CONST()</constant> macro may be used
to generate a literal, constant bus error structure
on-the-fly.</para>
<function>sd_bus_error_set()</function>, but the string parameters are not copied internally, and must
hence remain constant and valid for the lifetime of <parameter>e</parameter>. Use this call to avoid
memory allocations when setting error structures. Since this call does not allocate memory, it will not
fail with an out-of-memory condition as <function>sd_bus_error_set()</function> may, as described
above. Alternatively, the <constant>SD_BUS_ERROR_MAKE_CONST()</constant> macro may be used to generate a
literal, constant bus error structure on-the-fly.</para>
<para><function>sd_bus_error_set_errno()</function> will set
<structfield>name</structfield> from an
<varname>errno</varname>-like value that is converted to a D-Bus
<para><function>sd_bus_error_set_errno()</function> will immediately return <constant>0</constant> if the
specified error parameter <parameter>error</parameter> is <constant>0</constant>. Otherwise, it will set
<structfield>name</structfield> from an <varname>errno</varname>-like value that is converted to a D-Bus
error. <citerefentry
project='die-net'><refentrytitle>strerror_r</refentrytitle><manvolnum>3</manvolnum></citerefentry>
will be used to set <structfield>message</structfield>. Well-known
D-Bus error names will be used for <structfield>name</structfield>
if applicable, otherwise a name in the
<literal>System.Error.</literal> namespace will be generated. The
sign of the specified error number is ignored. The absolute value
is used implicitly. The call always returns a negative value, for
convenient usage in <function>return</function> statements. This
call might fail due to lack of memory, in which case an
<constant>SD_BUS_ERROR_NO_MEMORY</constant> error is set instead,
and -ENOMEM is returned.</para>
project='die-net'><refentrytitle>strerror_r</refentrytitle><manvolnum>3</manvolnum></citerefentry> will
be used to set <structfield>message</structfield>. Well-known D-Bus error names will be used for
<structfield>name</structfield> if applicable, otherwise a name in the <literal>System.Error.</literal>
namespace will be generated. The sign of the specified error number is ignored and the absolute value is
used implicitly. If the specified error <parameter>error</parameter> is non-zero, the call always returns
a negative value, for convenient usage in <function>return</function> statements. This call might fail
due to lack of memory, in which case an <constant>SD_BUS_ERROR_NO_MEMORY</constant> error is set instead,
and <constant>-ENOMEM</constant> is returned.</para>
<para><function>sd_bus_error_set_errnof()</function> is similar to
<function>sd_bus_error_set_errno()</function>, but in addition to
@ -246,28 +237,26 @@
project='man-pages'><refentrytitle>va_arg</refentrytitle><manvolnum>3</manvolnum></citerefentry>
parameter list.</para>
<para><function>sd_bus_error_get_errno()</function> converts the
<structfield>name</structfield> field of an error structure to an
<varname>errno</varname>-like (positive) value using the same
rules as <function>sd_bus_error_set()</function>. If
<parameter>e</parameter> is <constant>NULL</constant>, 0 will be
returned.</para>
<para><function>sd_bus_error_get_errno()</function> converts the <structfield>name</structfield> field of
an error structure to an <varname>errno</varname>-like (positive) value using the same rules as
<function>sd_bus_error_set()</function>. If <parameter>e</parameter> is <constant>NULL</constant>,
<constant>0</constant> will be returned.</para>
<para><function>sd_bus_error_copy()</function> will initialize
<parameter>dst</parameter> using the values in
<parameter>e</parameter>. If the strings in
<parameter>e</parameter> were set using
<function>sd_bus_error_set_const()</function>, they will be shared.
Otherwise, they will be copied. Returns a converted
<varname>errno</varname>-like, negative error code.</para>
<para><function>sd_bus_error_copy()</function> will initialize <parameter>dst</parameter> using the
values in <parameter>e</parameter>, if <parameter>e</parameter> has been set with an error value before.
Otherwise, it will return immediately. If the strings in <parameter>e</parameter> were set using
<function>sd_bus_error_set_const()</function>, they will be shared. Otherwise, they will be
copied. Returns a converted <varname>errno</varname>-like, negative error code or <constant>0</constant>.
Before this call, <parameter>dst</parameter> must be unset, i.e. either freshly initialized with
<constant>NULL</constant> or reset using <function>sd_bus_error_free()</function>.</para>
<para><function>sd_bus_error_move()</function> is similar to <function>sd_bus_error_copy()</function>, but will
move any error information from <parameter>e</parameter> into <parameter>dst</parameter>, resetting the
former. This function cannot fail, as no new memory is allocated. Note that if <parameter>e</parameter> is not set
(or <constant>NULL</constant>) <parameter>dst</parameter> is initializated to
<constant>SD_BUS_ERROR_NULL</constant>. Moreover, if <parameter>dst</parameter> is <constant>NULL</constant> no
operation is executed on it and resources held by <parameter>e</parameter> are freed and reset. Returns a
converted <varname>errno</varname>-like, negative error code.</para>
<para><function>sd_bus_error_move()</function> is similar to <function>sd_bus_error_copy()</function>,
but will move any error information from <parameter>e</parameter> into <parameter>dst</parameter>,
resetting the former. This function cannot fail, as no new memory is allocated. Note that if
<parameter>e</parameter> is not set, <parameter>dst</parameter> is initialized to
<constant>SD_BUS_ERROR_NULL</constant>. Moreover, if <parameter>dst</parameter> is
<constant>NULL</constant> no operation is executed on it and resources held by <parameter>e</parameter>
are freed and reset. Returns a converted <varname>errno</varname>-like, non-positive error value.</para>
<para><function>sd_bus_error_is_set()</function> will return a
non-zero value if <parameter>e</parameter> is
@ -300,25 +289,23 @@
<refsect1>
<title>Return Value</title>
<para>The functions <function>sd_bus_error_set()</function>,
<function>sd_bus_error_setf()</function>, and
<function>sd_bus_error_set_const()</function>, when successful,
return the negative errno value corresponding to the
<parameter>name</parameter> parameter. The functions
<function>sd_bus_error_set_errno()</function>,
<function>sd_bus_error_set_errnof()</function> and
<function>sd_bus_error_set_errnofv()</function>, when successful,
return the negative value of the <parameter>error</parameter>
parameter. If an error occurs, one of the negative error values
listed below will be returned.</para>
<para>The functions <function>sd_bus_error_set()</function>, <function>sd_bus_error_setf()</function>,
and <function>sd_bus_error_set_const()</function> always return <constant>0</constant> when the specified
error value is <constant>NULL</constant>, and a negative errno-like value corresponding to the
<parameter>name</parameter> parameter otherwise. The functions
<function>sd_bus_error_set_errno()</function>, <function>sd_bus_error_set_errnof()</function> and
<function>sd_bus_error_set_errnofv()</function>, return <constant>0</constant> when the specified error
value is <constant>0</constant>, and a a negative errno-like value corresponding to the
<parameter>error</parameter> parameter otherwise. If an error occurs internally, one of the negative
error values listed below will be returned.</para>
<para><function>sd_bus_error_get_errno()</function> returns
<constant>false</constant> when <parameter>e</parameter> is
<constant>NULL</constant>, and a positive errno value mapped from
<parameter>e-&gt;name</parameter> otherwise.</para>
<para><function>sd_bus_error_copy()</function> and <function>sd_bus_error_move()</function> return 0 or a positive
integer on success, and a negative error value converted from the error name otherwise.</para>
<para><function>sd_bus_error_copy()</function> and <function>sd_bus_error_move()</function> return a
negative error value converted from the source error, and zero if the error has not been set.</para>
<para><function>sd_bus_error_is_set()</function> returns a
non-zero value when <parameter>e</parameter> and the

View File

@ -57,6 +57,9 @@
zero outside of this state, and positive otherwise. Effectively, this function returns positive while regular
messages can be sent or received on the connection.</para>
<para>The <parameter>bus</parameter> argument may be <constant>NULL</constant>, zero is also returned in
that case.</para>
<para>To be notified when the connection is fully established, use
<citerefentry><refentrytitle>sd_bus_set_connected_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
install a match for the <function>Connected()</function> signal on the
@ -68,8 +71,8 @@
<refsect1>
<title>Return Value</title>
<para>On success, these functions return 0 or a positive integer. On failure, they return a negative errno-style
error code.</para>
<para>Those functions return 0 if the bus is <emphasis>not</emphasis> in the given state, and a positive
integer when it is. On failure, a negative errno-style error code is returned.</para>
<refsect2>
<title>Errors</title>

View File

@ -99,12 +99,16 @@
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details. The
ID is cached internally. In future a different mechanism to determine the invocation ID may be added.</para>
<para>Note that <function>sd_id128_get_machine_app_specific()</function>, <function>sd_id128_get_boot()</function>,
<function>sd_id128_get_boot_app_specific()</function>, and <function>sd_id128_get_invocation()</function> always
return UUID v4 compatible IDs. <function>sd_id128_get_machine()</function> will also return a UUID v4-compatible
ID on new installations but might not on older. It is possible to convert the machine ID into a UUID v4-compatible
one. For more information, see
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
<para>Note that <function>sd_id128_get_machine_app_specific()</function>,
<function>sd_id128_get_boot()</function>, <function>sd_id128_get_boot_app_specific()</function>, and
<function>sd_id128_get_invocation()</function> always return UUID Variant 1 Version 4 compatible IDs.
<function>sd_id128_get_machine()</function> will also return a UUID Variant 1 Version 4 compatible ID on
new installations but might not on older. It is possible to convert the machine ID non-reversibly into a
UUID Variant 1 Version 4 compatible one. For more information, see
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>. It is
hence guaranteed that these functions will never return the ID consisting of all zero or all one bits
(<constant>SD_ID128_NULL</constant>, <constant>SD_ID128_ALLF</constant>) — with the possible exception of
<function>sd_id128_get_machine()</function>, as mentioned.</para>
<para>For more information about the <literal>sd_id128_t</literal>
type see

View File

@ -42,8 +42,9 @@
<filename>/dev/urandom</filename> kernel random number
generator.</para>
<para>Note that <function>sd_id128_randomize()</function> always
returns a UUID v4-compatible ID.</para>
<para>Note that <function>sd_id128_randomize()</function> always returns a UUID Variant 1 Version 4
compatible ID. It is hence guaranteed that this function will never return the ID consisting of all zero
or all one bits (<constant>SD_ID128_NULL</constant>, <constant>SD_ID128_ALLF</constant>).</para>
<para>For more information about the <literal>sd_id128_t</literal>
type, see

View File

@ -54,6 +54,11 @@
<constant>NULL</constant> the function will validate the passed ID string, but not actually return it in parsed
form.</para>
<para>Note that when parsing 37 character UUIDs this is done strictly in Big Endian byte order,
i.e. according to <ulink url="https://tools.ietf.org/html/rfc4122">RFC4122</ulink> Variant 1
rules, even if the UUID encodes a different variant. This matches behaviour in various other Linux
userspace tools. It's probably wise to avoid UUIDs of other variant types.</para>
<para>For more information about the <literal>sd_id128_t</literal>
type see
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.

View File

@ -218,6 +218,9 @@ sd_journal_send("MESSAGE=Hello World, this is PID %lu!", (unsigned long) getpid(
<function>sd_journal_send()</function>. Using
<function>syslog()</function> has the benefit of being
more portable.</para>
<para>These functions implement a client to the <ulink
url="https://systemd.io/JOURNAL_NATIVE_PROTOCOL">Native Journal Protocol</ulink>.</para>
</refsect1>
<refsect1>

View File

@ -4,16 +4,21 @@
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<tbody>
<row id='b'>
<entry><literal>%b</literal></entry>
<entry>Boot ID</entry>
<entry>The boot ID of the running system, formatted as string. See <citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry> for more information.</entry>
</row>
<row id='a'>
<entry><literal>%a</literal></entry>
<entry>Architecture</entry>
<entry>A short string identifying the architecture of the local system. A string such as <constant>x86</constant>, <constant>x86-64</constant> or <constant>arm64</constant>. See the architectures defined for <varname>ConditionArchitecture=</varname> in <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for a full list.</entry>
</row>
<row id='A'>
<entry><literal>%A</literal></entry>
<entry>Operating system image version</entry>
<entry>The operating system image version identifier of the running system, as read from the <varname>IMAGE_VERSION=</varname> field of <filename>/etc/os-release</filename>. If not set, resolves to an empty string. See <citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information.</entry>
</row>
<row id='b'>
<entry><literal>%b</literal></entry>
<entry>Boot ID</entry>
<entry>The boot ID of the running system, formatted as string. See <citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry> for more information.</entry>
</row>
<row id='B'>
<entry><literal>%B</literal></entry>
<entry>Operating system build ID</entry>
@ -34,6 +39,11 @@
<entry>Machine ID</entry>
<entry>The machine ID of the running system, formatted as string. See <citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information.</entry>
</row>
<row id='M'>
<entry><literal>%M</literal></entry>
<entry>Operating system image identifier</entry>
<entry>The operating system image identifier of the running system, as read from the <varname>IMAGE_ID=</varname> field of <filename>/etc/os-release</filename>. If not set, resolves to an empty string. See <citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry> for more information.</entry>
</row>
<row id='o'>
<entry><literal>%o</literal></entry>
<entry>Operating system ID</entry>

View File

@ -138,6 +138,17 @@
directly. Example: <literal>--keyname=cryptsetup</literal></para></listitem>
</varlistentry>
<varlistentry>
<term><option>--credential=</option></term>
<listitem><para>Configure a credential to read the password from if it exists. This may be used in
conjunction with the <varname>LoadCredential=</varname> and <varname>SetCredential=</varname>
settings in unit files. See
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
details. If not specified, defaults to <literal>password</literal>. This option has no effect if no
credentials directory is passed to the program (i.e. <varname>$CREDENTIALS_DIRECTORY</varname> is not
set) or if the no credential of the specified name exists.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--timeout=</option></term>
@ -146,12 +157,32 @@
</varlistentry>
<varlistentry>
<term><option>--echo</option></term>
<term><option>--echo=yes|no|masked</option></term>
<listitem><para>Echo the user input instead of masking it.
This is useful when using
<filename>systemd-ask-password</filename> to query for
usernames. </para></listitem>
<listitem><para>Controls whether to echo user input. Takes a boolean or the special string
<literal>masked</literal>, the default being the latter. If enabled the typed characters are echoed
literally, which is useful for prompting for usernames and other non-protected data. If disabled the
typed characters are not echoed in any form, the user will not get feedback on their input. If set to
<literal>masked</literal>, an asterisk (<literal>*</literal>) is echoed for each character
typed. In this mode, if the user hits the tabulator key (<literal></literal>), echo is turned
off. (Alternatively, if the user hits the backspace key (<literal></literal>) while no data has
been entered otherwise, echo is turned off, too).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--echo</option></term>
<term><option>-e</option></term>
<listitem><para>Equivalent to <option>--echo=yes</option>, see above.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--emoji=yes|no|auto</option></term>
<listitem><para>Controls whether or not to prefix the query with a
lock and key emoji (🔐), if the TTY settings permit this. The default
is <literal>auto</literal>, which defaults to <literal>yes</literal>,
unless <option>--echo=yes</option> is given.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -352,6 +352,20 @@ flags: ...
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>COREDUMP_PACKAGE_NAME=</varname></term>
<term><varname>COREDUMP_PACKAGE_VERSION=</varname></term>
<term><varname>COREDUMP_PACKAGE_JSON=</varname></term>
<listitem><para>If the executable contained .package metadata ELF notes, they will be
parsed and attached. The <varname>package</varname> and <varname>packageVersion</varname>
of the 'main' ELF module (ie: the executable) will be appended individually. The
JSON-formatted content of all modules will be appended as a single JSON object, each with
the module name as the key. For more information about this metadata format and content, see
<ulink url="https://systemd.io/COREDUMP_PACKAGE_METADATA/">the coredump metadata spec</ulink>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>MESSAGE=</varname></term>

View File

@ -125,6 +125,35 @@
<filename>/etc/crypttab</filename> line.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--fido2-with-client-pin=</option><replaceable>BOOL</replaceable></term>
<listitem><para>When enrolling a FIDO2 security token, controls whether to require the user to enter
a PIN when unlocking the volume (the FIDO2 <literal>clientPin</literal> feature). Defaults to
<literal>yes</literal>. (Note: this setting is without effect if the security token does not support
the <literal>clientPin</literal> feature at all, or does not allow enabling or disabling
it.)</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--fido2-with-user-presence=</option><replaceable>BOOL</replaceable></term>
<listitem><para>When enrolling a FIDO2 security token, controls whether to require the user to
verify presence (tap the token, the FIDO2 <literal>up</literal> feature) when unlocking the volume.
Defaults to <literal>yes</literal>. (Note: this setting is without effect if the security token does not support
the <literal>up</literal> feature at all, or does not allow enabling or disabling it.)
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--fido2-with-user-verification=</option><replaceable>BOOL</replaceable></term>
<listitem><para>When enrolling a FIDO2 security token, controls whether to require user verification
when unlocking the volume (the FIDO2 <literal>uv</literal> feature). Defaults to
<literal>no</literal>. (Note: this setting is without effect if the security token does not support
the <literal>uv</literal> feature at all, or does not allow enabling or disabling it.)</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--tpm2-device=</option><replaceable>PATH</replaceable></term>
@ -152,11 +181,11 @@
<term><option>--tpm2-pcrs=</option><arg rep="repeat">PCR</arg></term>
<listitem><para>Configures the TPM2 PCRs (Platform Configuration Registers) to bind the enrollment
requested via <option>--tpm2-device=</option> to. Takes a comma separated list of numeric PCR indexes
in the range 0…23. If not used, defaults to PCR 7 only. If an empty string is specified, binds the
enrollment to no PCRs at all. PCRs allow binding the enrollment to specific software versions and
system state, so that the enrolled unlocking key is only accessible (may be "unsealed") if specific
trusted software and/or configuration is used.</para></listitem>
requested via <option>--tpm2-device=</option> to. Takes a <literal>+</literal> separated list of
numeric PCR indexes in the range 0…23. If not used, defaults to PCR 7 only. If an empty string is
specified, binds the enrollment to no PCRs at all. PCRs allow binding the enrollment to specific
software versions and system state, so that the enrolled unlocking key is only accessible (may be
"unsealed") if specific trusted software and/or configuration is used.</para></listitem>
<table>
<title>Well-known PCR Definitions</title>

View File

@ -73,7 +73,8 @@
<listitem><para>The kernel keyring is then checked for a suitable cached password from previous
attempts.</para></listitem>
<listitem><para>Finally, the user is queried for a password, possibly multiple times.</para></listitem>
<listitem><para>Finally, the user is queried for a password, possibly multiple times, unless
the <varname>headless</varname> option is set.</para></listitem>
</orderedlist>
<para>If no suitable key may be acquired via any of the mechanisms describes above, volume activation fails.</para>

View File

@ -69,7 +69,12 @@
<row>
<entry><varname>kvm</varname></entry>
<entry>Linux KVM kernel virtual machine, with whatever software, except Oracle Virtualbox</entry>
<entry>Linux KVM kernel virtual machine, in combination with QEMU. Not used for other virtualizers using the KVM interfaces, such as Oracle VirtualBox or Amazon EC2 Nitro, see below.</entry>
</row>
<row>
<entry><varname>amazon</varname></entry>
<entry>Amazon EC2 Nitro using Linux KVM</entry>
</row>
<row>

Some files were not shown because too many files have changed in this diff Show More