New upstream version 247~rc2

This commit is contained in:
Michael Biebl 2020-11-12 13:11:39 +01:00
parent 883b242a8a
commit a032b68d06
2896 changed files with 84582 additions and 39904 deletions

View File

@ -74,9 +74,6 @@ ForEachMacros:
- FOREACH_INOTIFY_EVENT
- FOREACH_STRING
- FOREACH_SUBSYSTEM
- _FOREACH_WORD
- FOREACH_WORD
- FOREACH_WORD_SEPARATOR
- HASHMAP_FOREACH
- HASHMAP_FOREACH_IDX
- HASHMAP_FOREACH_KEY

View File

@ -5,7 +5,7 @@ about: A report of an error in a recent systemd version
---
**systemd version the issue has been seen with**
> ...
> …
<!-- **NOTE:** Do not submit bug reports about anything but the two most recently released (non-rc) systemd versions upstream! -->
<!-- See https://github.com/systemd/systemd/releases for the list of most recent releases. -->
@ -14,6 +14,12 @@ about: A report of an error in a recent systemd version
**Used distribution**
> …
**Linux kernel version used** (`uname -a`)
> …
**CPU architecture issue was seen on**
> …
**Expected behaviour you didn't see**
> …
@ -21,3 +27,4 @@ about: A report of an error in a recent systemd version
> …
**Steps to reproduce the problem**
> …

View File

@ -13,13 +13,14 @@ on:
jobs:
build:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
env:
- { COMPILER: "gcc", COMPILER_VERSION: "10" }
- { COMPILER: "clang", COMPILER_VERSION: "10" }
- { COMPILER: "clang", COMPILER_VERSION: "11" }
env: ${{ matrix.env }}
steps:
- name: Repository checkout

View File

@ -19,7 +19,6 @@ PACKAGES=(
expect
fdisk
gettext
iptables-dev
iputils-ping
isc-dhcp-client
itstool
@ -28,6 +27,7 @@ PACKAGES=(
libcap-dev
libcurl4-gnutls-dev
libfdisk-dev
libfido2-dev
libgpg-error-dev
liblz4-dev
liblzma-dev
@ -38,6 +38,7 @@ PACKAGES=(
libqrencode-dev
libssl-dev
libxkbcommon-dev
libxtables-dev
libzstd-dev
mount
net-tools

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2016 Zeal Jagannatha
@ -39,7 +39,6 @@ BuildPackages=
libidn2
libmicrohttpd
libseccomp
libtool
libutil-linux
libxkbcommon
libxslt

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
# Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
@ -48,7 +48,6 @@ BuildPackages=
libqrencode-dev
libseccomp-dev
libsmartcols-dev
libtool
libxkbcommon-dev
libzstd-dev
m4

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
# Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
@ -38,6 +38,7 @@ BuildPackages=
libcap-devel
libcurl-devel
libfdisk-devel
libfido2-devel
libgcrypt-devel
libidn2-devel
libmicrohttpd-devel
@ -52,6 +53,7 @@ BuildPackages=
lz4-devel
m4
meson
ninja-build
openssl-devel
p11-kit-devel
pam-devel
@ -66,7 +68,8 @@ BuildPackages=
zstd
Packages=
# libzstd can be dropped once the Fedora RPM gets a dependency on it
# libfido2 + libzstd can be dropped once the Fedora RPM gets a dependency on them
libfido2
libzstd
# procps-ng provides a set of useful utilies (ps, free, etc)
procps-ng

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
# Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
# This is a settings file for OS image generation using mkosi (https://github.com/systemd/mkosi).
# Symlink this file to mkosi.default in the project root directory and invoke "mkosi" to build an OS image.
@ -50,7 +50,6 @@ BuildPackages=
libqrencode-dev
libseccomp-dev
libsmartcols-dev
libtool
libxkbcommon-dev
libxtables-dev
libzstd-dev

636
NEWS
View File

@ -1,5 +1,637 @@
systemd System and Service Manager
CHANGES WITH 247 in spe:
* KERNEL API INCOMPATIBILITY: Linux 4.12 introduced two new uevents
"bind" and "unbind" to the Linux device model. When this kernel
change was made, systemd-udevd was only minimally updated to handle
and propagate these new event types. The introduction of these new
uevents (which are typically generated for USB devices and devices
needing a firmware upload before being functional) resulted in a
number of issues which we so far didn't address. We hoped the kernel
maintainers would themselves address these issues in some form, but
that did not happen. To handle them properly, many (if not most) udev
rules files shipped in various packages need updating, and so do many
programs that monitor or enumerate devices with libudev or sd-device,
or otherwise process uevents. Please note that this incompatibility
is not fault of systemd or udev, but caused by an incompatible kernel
change that happened back in Linux 4.12, but is becoming more and
more visible as the new uevents are generated by more kernel drivers.
To minimize issues resulting from this kernel change (but not avoid
them entirely) starting with systemd-udevd 247 the udev "tags"
concept (which is a concept for marking and filtering devices during
enumeration and monitoring) has been reworked: udev tags are now
"sticky", meaning that once a tag is assigned to a device it will not
be removed from the device again until the device itself is removed
(i.e. unplugged). This makes sure that any application monitoring
devices that match a specific tag is guaranteed to both see uevents
where the device starts being relevant, and those where it stops
being relevant (the latter now regularly happening due to the new
"unbind" uevent type). The udev tags concept is hence now a concept
tied to a *device* instead of a device *event* — unlike for example
udev properties whose lifecycle (as before) is generally tied to a
device event, meaning that the previously determined properties are
forgotten whenever a new uevent is processed.
With the newly redefined udev tags concept, sometimes it's necessary
to determine which tags are the ones applied by the most recent
uevent/database update, in order to discern them from those
originating from earlier uevents/database updates of the same
device. To accommodate for this a new automatic property CURRENT_TAGS
has been added that works similar to the existing TAGS property but
only lists tags set by the most recent uevent/database
update. Similarly, the libudev/sd-device API has been updated with
new functions to enumerate these 'current' tags, in addition to the
existing APIs that now enumerate the 'sticky' ones.
To properly handle "bind"/"unbind" on Linux 4.12 and newer it is
essential that all udev rules files and applications are updated to
handle the new events. Specifically:
• All rule files that currently use a header guard similar to
ACTION!="add|change",GOTO="xyz_end" should be updated to use
ACTION=="remove",GOTO="xyz_end" instead, so that the
properties/tags they add are also applied whenever "bind" (or
"unbind") is seen. (This is most important for all physical device
types — those for which "bind" and "unbind" are currently
generated, for all other device types this change is still
recommended but not as important — but certainly prepares for
future kernel uevent type additions).
• Similarly, all code monitoring devices that contains an 'if' branch
discerning the "add" + "change" uevent actions from all other
uevents actions (i.e. considering devices only relevant after "add"
or "change", and irrelevant on all other events) should be reworked
to instead negatively check for "remove" only (i.e. considering
devices relevant after all event types, except for "remove", which
invalidates the device). Note that this also means that devices
should be considered relevant on "unbind", even though conceptually
this — in some form — invalidates the device. Since the precise
effect of "unbind" is not generically defined, devices should be
considered relevant even after "unbind", however I/O errors
accessing the device should then be handled gracefully.
• Any code that uses device tags for deciding whether a device is
relevant or not most likely needs to be updated to use the new
udev_device_has_current_tag() API (or sd_device_has_current_tag()
in case sd-device is used), to check whether the tag is set at the
moment an uevent is seen (as opposed to the existing
udev_device_has_tag() API which checks if the tag ever existed on
the device, following the API concept redefinition explained
above).
We are very sorry for this breakage and the requirement to update
packages using these interfaces. We'd again like to underline that
this is not caused by systemd/udev changes, but result of a kernel
behaviour change.
* The MountAPIVFS= service file setting now defaults to on if
RootImage= and RootDirectory= are used, which means that with those
two settings /proc/, /sys/ and /dev/ are automatically properly set
up for services. Previous behaviour may be restored by explicitly
setting MountAPIVFS=off.
* Since PAM 1.2.0 (2015) configuration snippets may be placed in
/usr/lib/pam.d/ in addition to /etc/pam.d/. If a file exists in the
latter it takes precedence over the former, similar to how most of
systemd's own configuration is handled. Given that PAM stack
definitions are primarily put together by OS vendors/distributions
(though possibly overridden by users), this systemd release moves its
own PAM stack configuration for the "systemd-user" PAM service (i.e.
for the PAM session invoked by the per-user user@.service instance)
from /etc/pam.d/ to /usr/lib/pam.d/. We recommend moving all
packages' vendor versions of their PAM stack definitions from
/etc/pam.d/ to /usr/lib/pam.d/, but if such OS-wide migration is not
desired the location to which systemd installs its PAM stack
configuration may be changed via the -Dpamconfdir Meson option.
* The runtime dependencies on libqrencode, libpcre2, libidn/libidn2,
libpwquality and libcryptsetup have been changed to be based on
dlopen(): instead of regular dynamic library dependencies declared in
the binary ELF headers, these libraries are now loaded on demand
only, if they are available. If the libraries cannot be found the
relevant operations will fail gracefully, or a suitable fallback
logic is chosen. This is supposed to be useful for general purpose
distributions, as it allows minimizing the list of dependencies the
systemd packages pull in, permitting building of more minimal OS
images, while still making use of these "weak" dependencies should
they be installed. Since many package managers automatically
synthesize package dependencies from ELF shared library dependencies,
some additional manual packaging work has to be done now to replace
those (slightly downgraded from "required" to "recommended" or
whatever is conceptually suitable for the package manager). Note that
this change does not alter build-time behaviour: as before the
build-time dependencies have to be installed during build, even if
they now are optional during runtime.
* sd-event.h gained a new call sd_event_add_time_relative() for
installing timers relative to the current time. This is mostly a
convenience wrapper around the pre-existing sd_event_add_time() call
which installs absolute timers.
* sd-event event sources may now be placed in a new "exit-on-failure"
mode, which may be controlled via the new
sd_event_source_get_exit_on_failure() and
sd_event_source_set_exit_on_failure() functions. If enabled, any
failure returned by the event source handler functions will result in
exiting the event loop (unlike the default behaviour of just
disabling the event source but continuing with the event loop). This
feature is useful to set for all event sources that define "primary"
program behaviour (where failure should be fatal) in contrast to
"auxiliary" behaviour (where failure should remain local).
* Most event source types sd-event supports now accept a NULL handler
function, in which case the event loop is exited once the event
source is to be dispatched, using the userdata pointer — converted to
a signed integer — as exit code of the event loop. Previously this
was supported for IO and signal event sources already. Exit event
sources still do not support this (simply because it makes little
sense there, as the event loop is already exiting when they are
dispatched).
* A new per-unit setting RootImageOptions= has been added which allows
tweaking the mount options for any file system mounted as effect of
the RootImage= setting.
* Another new per-unit setting MountImages= has been added, that allows
mounting additional disk images into the file system tree accessible
to the service.
* Timer units gained a new FixedRandomDelay= boolean setting. If
enabled, the random delay configured with RandomizedDelaySec= is
selected in a way that is stable on a given system (though still
different for different units).
* Socket units gained a new setting Timestamping= that takes "us", "ns"
or "off". This controls the SO_TIMESTAMP/SO_TIMESTAMPNS socket
options.
* systemd-repart now generates JSON output when requested with the new
--json= switch.
* systemd-machined's OpenMachineShell() bus call will now pass
additional policy metadata data fields to the PolicyKit
authentication request.
* systemd-tmpfiles gained a new -E switch, which is equivalent to
--exclude-prefix=/dev --exclude-prefix=/proc --exclude=/run
--exclude=/sys. It's particularly useful in combination with --root=,
when operating on OS trees that do not have any of these four runtime
directories mounted, as this means no files below these subtrees are
created or modified, since those mount points should probably remain
empty.
* systemd-tmpfiles gained a new --image= switch which is like --root=,
but takes a disk image instead of a directory as argument. The
specified disk image is mounted inside a temporary mount namespace
and the tmpfiles.d/ drop-ins stored in the image are executed and
applied to the image. systemd-sysusers similarly gained a new
--image= switch, that allows the sysusers.d/ drop-ins stored in the
image to be applied onto the image.
* Similarly, the journalctl command also gained an --image= switch,
which is a quick one-step solution to look at the log data included
in OS disk images.
* journalctl's --output=cat option (which outputs the log content
without any metadata, just the pure text messages) will now make use
of terminal colors when run on a suitable terminal, similarly to the
other output modes.
* JSON group records now support a "description" string that may be
used to add a human-readable textual description to such groups. This
is supposed to match the user's GECOS field which traditionally
didn't have a counterpart for group records.
* The "systemd-dissect" tool that may be used to inspect OS disk images
and that was previously installed to /usr/lib/systemd/ has now been
moved to /usr/bin/, reflecting its updated status of an officially
supported tool with a stable interface. It gained support for a new
--mkdir switch which when combined with --mount has the effect of
creating the directory to mount the image to if it is missing
first. It also gained two new commands --copy-from and --copy-to for
copying files and directories in and out of an OS image without the
need to manually mount it. It also acquired support for a new option
--json= to generate JSON output when inspecting an OS image.
* The cgroup2 file system is now mounted with the
"memory_recursiveprot" mount option, supported since kernel 5.7. This
means that the MemoryLow= and MemoryMin= unit file settings now apply
recursively to whole subtrees.
* systemd-homed now defaults to using the btrfs file system — if
available — when creating home directories in LUKS volumes. This may
be changed with the DefaultFileSystemType= setting in homed.conf.
It's now the default file system in various major distributions and
has the major benefit for homed that it can be grown and shrunk while
mounted, unlike the other contenders ext4 and xfs, which can both be
grown online, but not shrunk (in fact xfs is the technically most
limited option here, as it cannot be shrunk at all).
* JSON user records managed by systemd-homed gained support for
"recovery keys". These are basically secondary passphrases that can
unlock user accounts/home directories. They are computer-generated
rather than user-chosen, and typically have greater entropy.
homectl's --recovery-key= option may be used to add a recovery key to
a user account. The generated recovery key is displayed as a QR code,
so that it can be scanned to be kept in a safe place. This feature is
particularly useful in combination with systemd-homed's support for
FIDO2 or PKCS#11 authentication, as a secure fallback in case the
security tokens are lost. Recovery keys may be entered wherever the
system asks for a password.
* systemd-homed now maintains a "dirty" flag for each LUKS encrypted
home directory which indicates that a home directory has not been
deactivated cleanly when offline. This flag is useful to identify
home directories for which the offline discard logic did not run when
offlining, and where it would be a good idea to log in again to catch
up.
* systemctl gained a new parameter --timestamp= which may be used to
change the style in which timestamps are output, i.e. whether to show
them in local timezone or UTC, or whether to show µs granularity.
* Alibaba's "pouch" container manager is now detected by
systemd-detect-virt, ConditionVirtualization= and similar
constructs. Similar, they now also recognize IBM PowerVM machine
virtualization.
* systemd-nspawn has been reworked to use the /run/host/incoming/ as
place to use for propagating external mounts into the
container. Similarly /run/host/notify is now used as the socket path
for container payloads to communicate with the container manager
using sd_notify(). The container manager now uses the
/run/host/inaccessible/ directory to place "inaccessible" file nodes
of all relevant types which may be used by the container payload as
bind mount source to over-mount inodes to make them inaccessible.
/run/host/container-manager will now be initialized with the same
string as the $container environment variable passed to the
container's PID 1. /run/host/container-uuid will be initialized with
the same string as $container_uuid. This means the /run/host/
hierarchy is now the primary way to make host resources available to
the container. The Container Interface documents these new files and
directories:
https://systemd.io/CONTAINER_INTERFACE
* Support for the "ConditionNull=" unit file condition has been
deprecated and undocumented for 6 years. systemd started to warn
about its use 1.5 years ago. It has now been removed entirely.
* sd-bus.h gained a new API call sd_bus_error_has_names(), which takes
a sd_bus_error struct and a list of error names, and checks if the
error matches one of these names. It's a convenience wrapper that is
useful in cases where multiple errors shall be handled the same way.
* A new system call filter list "@known" has been added, that contains
all system calls known at the time systemd was built.
* Behaviour of system call filter allow lists has changed slightly:
system calls that are contained in @known will result in a EPERM by
default, while those not contained in it result in ENOSYS. This
should improve compatibility because known system calls will thus be
communicated as prohibited, while unknown (and thus newer ones) will
be communicated as not implemented, which hopefully has the greatest
chance of triggering the right fallback code paths in client
applications.
* "systemd-analyze syscall-filter" will now show two separate sections
at the bottom of the output: system calls known during systemd build
time but not included in any of the filter groups shown above, and
system calls defined on the local kernel but known during systemd
build time.
* If the $SYSTEMD_LOG_SECCOMP=1 environment variable is set for
systemd-nspawn all system call filter violations will be logged by
the kernel (audit). This is useful for tracking down system calls
invoked by container payloads that are prohibited by the container's
system call filter policy.
* If the $SYSTEMD_SECCOMP=0 environment variable is set for
systemd-nspawn (and other programs that use seccomp) all seccomp
filtering is turned off.
* Two new unit file settings ProtectProc= and ProcSubset= have been
added that expose the hidepid= and subset= mount options of procfs.
All processes of the unit will only see processes in /proc that are
are owned by the unit's user. This is an important new sandboxing
option that is recommended to be set on all system services. All
long-running system services that are included in systemd itself set
this option now. This option is only supported on kernel 5.8 and
above, since the hidepid= option supported on older kernels was not a
per-mount option but actually applied to the whole PID namespace.
* Socket units gained a new boolean setting FlushPending=. If enabled
all pending socket data/connections are flushed whenever the socket
unit enters the "listening" state, i.e. after the associated service
exited.
* The unit file setting NUMAMask= gained a new "all" value: when used,
all existing NUMA nodes are added to the NUMA mask.
* A new "credentials" logic has been added to system services. This is
a simple mechanism to pass privileged data to services in a safe and
secure way. It's supposed to be used to pass per-service secret data
such as passwords or cryptographic keys but also associated less
private information such as user names, certificates, and similar to
system services. Each credential is identified by a short user-chosen
name and may contain arbitrary binary data. Two new unit file
settings have been added: SetCredential= and LoadCredential=. The
former allows setting a credential to a literal string, the latter
sets a credential to the contents of a file (or data read from a
user-chosen AF_UNIX stream socket). Credentials are passed to the
service via a special credentials directory, one file for each
credential. The path to the credentials directory is passed in a new
$CREDENTIALS_DIRECTORY environment variable. Since the credentials
are passed in the file system they may be easily referenced in
ExecStart= command lines too, thus no explicit support for the
credentials logic in daemons is required (though ideally daemons
would look for the bits they need in $CREDENTIALS_DIRECTORY
themselves automatically, if set). The $CREDENTIALS_DIRECTORY is
backed by unswappable memory if privileges allow it, immutable if
privileges allow it, is accessible only to the service's UID, and is
automatically destroyed when the service stops.
* systemd-nspawn supports the same credentials logic. It can both
consume credentials passed to it via the aforementioned
$CREDENTIALS_DIRECTORY protocol as well as pass these credentials on
to its payload. The service manager/PID 1 has been updated to match
this: it can also accept credentials from the container manager that
invokes it (in fact: any process that invokes it), and passes them on
to its services. Thus, credentials can be propagated recursively down
the tree: from a system's service manager to a systemd-nspawn
service, to the service manager that runs as container payload and to
the service it runs below. Credentials may also be added on the
systemd-nspawn command line, using new --set-credential= and
--load-credential= command line switches that match the
aforementioned service settings.
* systemd-repart gained new settings Format=, Encrypt=, CopyFiles= in
the partition drop-ins which may be used to format/LUKS
encrypt/populate any created partitions. The partitions are
encrypted/formatted/populated before they are registered in the
partition table, so that they appear atomically: either the
partitions do not exist yet or they exist fully encrypted, formatted,
and populated — there is no time window where they are
"half-initialized". Thus the system is robust to abrupt shutdown: if
the tool is terminated half-way during its operations on next boot it
will start from the beginning.
* systemd-repart's --size= operation gained a new "auto" value. If
specified, and operating on a loopback file it is automatically sized
to the minimal size the size constraints permit. This is useful to
use "systemd-repart" as an image builder for minimally sized images.
* systemd-resolved now gained a third IPC interface for requesting name
resolution: besides D-Bus and local DNS to 127.0.0.53 a Varlink
interface is now supported. The nss-resolve NSS module has been
modified to use this new interface instead of D-Bus. Using Varlink
has a major benefit over D-Bus: it works without a broker service,
and thus already during earliest boot, before the dbus daemon has
been started. This means name resolution via systemd-resolved now
works at the same time systemd-networkd operates: from earliest boot
on, including in the initrd.
* systemd-resolved gained support for a new DNSStubListenerExtra=
configuration file setting which may be used to specify additional IP
addresses the built-in DNS stub shall listen on, in addition to the
main one on 127.0.0.53:53.
* Name lookups issued via systemd-resolved's D-Bus and Varlink
interfaces (and thus also via glibc NSS if nss-resolve is used) will
now honour a trailing dot in the hostname: if specified the search
path logic is turned off. Thus "resolvectl query foo." is now
equivalent to "resolvectl query --search=off foo.".
* systemd-resolved gained a new D-Bus property "ResolvConfMode" that
exposes how /etc/resolv.conf is currently managed: by resolved (and
in which mode if so) or another subsystem. "resolvctl" will display
this property in its status output.
* The resolv.conf snippets systemd-resolved provides will now set "."
as the search domain if no other search domain is known. This turns
off the derivation of an implicit search domain by nss-dns for the
hostname, when the hostname is set to an FQDN. This change is done to
make nss-dns using resolv.conf provided by systemd-resolved behave
more similarly to nss-resolve.
* systemd-tmpfiles' file "aging" logic (i.e. the automatic clean-up of
/tmp/ and /var/tmp/ based on file timestamps) now looks at the
"birth" time (btime) of a file in addition to the atime, mtime, and
ctime.
* systemd-analyze gained a new verb "capability" that lists all known
capabilities by the systemd build and by the kernel.
* If a file /usr/lib/clock-epoch exists, PID 1 will read its mtime and
advance the system clock to it at boot if it is noticed to be before
that time. Previously, PID 1 would only advance the time to an epoch
time that is set during build-time. With this new file OS builders
can change this epoch timestamp on individual OS images without
having to rebuild systemd.
* systemd-logind will now listen to the KEY_RESTART key from the Linux
input layer and reboot the system if it is pressed, similarly to how
it already handles KEY_POWER, KEY_SUSPEND or KEY_SLEEP. KEY_RESTART
was originally defined in the Multimedia context (to restart playback
of a song or film), but is now primarily used in various embedded
devices for "Reboot" buttons. Accordingly, systemd-logind will now
honour it as such. This may configured in more detail via the new
HandleRebootKey= and RebootKeyIgnoreInhibited=.
* systemd-nspawn/systemd-machined will now reconstruct hardlinks when
copying OS trees, for example in "systemd-nspawn --ephemeral",
"systemd-nspawn --template=", "machinectl clone" and similar. This is
useful when operating with OSTree images, which use hardlinks heavily
throughout, and where such copies previously resulting in "exploding"
hardlinks.
* systemd-nspawn's --console= setting gained support for a new
"autopipe" value, which is identical to "interactive" when invoked on
a TTY, and "pipe" otherwise.
* systemd-networkd's .network files gained support for explicitly
configuring the multicast membership entries of bridge devices in the
[BridgeMDB] section. It also gained support for the PIE queuing
discipline in the [FlowQueuePIE] sections.
* systemd-networkd's .netdev files may now be used to create "BareUDP"
tunnels, configured in the new [BareUDP] setting. VXLAN tunnels may
now be marked to be independent of any underlying network interface
via the new Independent= boolean setting.
* systemd-networkd's Gateway= setting in .network files now accepts the
special values _dhcp4 and _ipv6ra to configure additional, locally
defined, explicit routes to the gateway acquired via DHCP or IPv6
Router Advertisements.
* systemd-networkd's [IPv6PrefixDelegation] section and
IPv6PrefixDelegation= options have been renamed as [IPv6SendRA] and
IPv6SendRA= (the old names are still accepted for backwards
compatibility).
* systemctl gained support for two new verbs: "service-log-level" and
"service-log-target" may be used on services that implement the
generic org.freedesktop.LogControl1 D-Bus interface to dynamically
adjust the log level and target. All of systemd's long-running
services support this now, but ideally all system services would
implement this interface to make the system more uniformly
debuggable.
* The SystemCallErrorNumber= unit file setting now accepts the new
"kill" and "log" actions, in addition to arbitrary error number
specifications as before. If "kill" the the processes are killed on
the event, if "log" the offending system call is audit logged.
* A new SystemCallLog= unit file setting has been added that accepts a
list of system calls that shall be logged about (audit).
* The OS image dissection logic (as used by RootImage= in unit files or
systemd-nspawn's --image= switch) has gained support for identifying
and mounting explicit /usr/ partitions, which are now defined in the
discoverable partition specification. This should be useful for
environments where the root file system is
generated/formatted/populated dynamically on first boot and combined
with an immutable /usr/ tree that is supplied by the vendor.
* In the final phase of shutdown, within the systemd-shutdown binary
we'll now try to detach MD devices (i.e software RAID) in addition to
loopback block devices and DM devices as before. This is supposed to
be a safety net only, in order to increase robustness if things go
wrong. Storage subsystems are expected to properly detach their
storage volumes during regular shutdown already (or in case of
storage backing the root file system: in the initrd hook we return to
later).
* If the SYSTEMD_LOG_TID environment variable is set all systemd tools
will now log the thread ID in their log output. This is useful when
working with heavily threaded programs.
* If the SYSTEMD_RDRAND environment variable is set to "0", systemd will
not use the RDRAND CPU instruction. This is useful in environments
such as replay debuggers where non-deterministic behaviour is not
desirable.
* The autopaging logic in systemd's various tools (such as systemctl)
has been updated to turn on "secure" mode in "less"
(i.e. $LESSECURE=1) if execution in a "sudo" environment is
detected. This disables invoking external programs from the pager,
via the pipe logic. This behaviour may be overridden via the new
$SYSTEMD_PAGERSECURE environment variable.
* Units which have resource limits (.service, .mount, .swap, .slice,
.socket, and .slice) gained new configuration settings
ManagedOOMSwap=, ManagedOOMMemoryPressure=, and
ManagedOOMMemoryPressureLimitPercent= that specify resource pressure
limits and optional action taken by systemd-oomd.
* A new service systemd-oomd has been added. It monitors resource
contention for selected parts of the unit hierarchy using the PSI
information reported by the kernel, and kills processes when memory
or swap pressure is above configured limits. This service is only
enabled in developer mode (see below) and should be considered a
preview in this release. Behaviour details and option names are
subject to change without the usual backwards-compatibility promises.
* A new helper oomctl has been added to introspect systemd-oomd state.
If also is only available in developer mode and should be considered
a preview without the usual backwards-compatibility promises.
* New meson option -Dcompat-mutable-uid-boundaries= has been added. If
enabled, systemd reads the system UID boundaries from /etc/login.defs
at runtime, instead of using the built-in values selected during
build. This is an option to improve compatibility for upgrades from
old systems. It's strongly recommended not to make use of this
functionality on new systems (or even enable it during build), as it
makes something runtime-configurable that is mostly an implementation
detail of the OS, and permits avoidable differences in deployments
that create all kinds of problems in the long run.
* New meson option '-Dmode=developer|release' has been added. When
'developer', additional checks and features are enabled that are
relevant during upstream development, e.g. verification that
semi-automatically-generated documentation has been properly updated
following API changes. Those checks are considered hints for
developers and are not actionable in downstream builds. In addition,
extra features that are not ready for general consumption may be
enabled in developer mode. It is thus recommended to set
'-Dmode=release' in end-user and distro builds.
* systemd-cryptsetup gained support for processing detached LUKS
headers specified on the kernel command line via the header=
parameter of the luks.options= kernel command line option. The same
device/path syntax as for key files is supported for header files
like this.
* The "net_id" built-in of udev has been updated to ignore ACPI _SUN
slot index data for devices that are connected through a PCI bridge
where the _SUN index is associated with the bridge instead of the
network device itself. Previously this would create ambiguous device
naming if multiple network interfaces were connected to the same PCI
bridge. Since this is a naming scheme incompatibility on systems that
possess hardware like this it has been introduced as new naming
scheme "v247". The previous scheme can be selected via the
"net.naming-scheme=v245" kernel command line parameter.
* ConditionFirstBoot= semantics have been modified to be safe towards
abnormal system power-off during first boot. Specifically, the
"systemd-machine-id-commit.service" service now acts as boot
milestone indicating when the first boot process is sufficiently
complete in order to not consider the next following boot also a
first boot. If the system is reset before this unit is reached the
first time, the next boot will still be considered a first boot; once
it has been reached, no further boots will be considered a first
boot. The "first-boot-complete.target" unit now acts as official hook
point to order against this. If a service shall be run on every boot
until the first boot fully succeeds it may thus be ordered before
this target unit (and pull it in) and carry ConditionFirstBoot=
appropriately.
* bootctl's set-default and set-oneshot commands now accept the three
special strings "@default", "@oneshot", "@current" in place of a boot
entry id. These strings are resolved to the current default and
oneshot boot loader entry, as well as the currently booted one. Thus
a command "bootctl set-default @current" may be used to make the
currently boot menu item the new default for all subsequent boots.
* "systemctl edit" has been updated to show the original effective unit
contents in commented form in the text editor.
Contributions from: Adolfo Jayme Barrientos, afg, Alec Moskvin, Alyssa
Ross, Amitanand Chikorde, Andrew Hangsleben, Anita Zhang, Ansgar
Burchardt, Arian van Putten, Aurelien Jarno, Axel Rasmussen, bauen1,
Beniamino Galvani, Benjamin Berg, Bjørn Mork, brainrom, Chandradeep
Dey, Charles Lee, Chris Down, Christian Göttsche, Clemens Gruber, Daan
De Meyer, Daniele Medri, Daniel Mack, Daniel Rusek, Dan Streetman,
David Tardon, Dimitri John Ledkov, Dmitry Borodaenko, Elias Probst,
Elisei Roca, ErrantSpore, Etienne Doms, Fabrice Fontaine, fangxiuning,
Felix Riemann, Florian Klink, Franck Bui, Frantisek Sumsal, fwSmit,
George Rawlinson, germanztz, Gibeom Gwon, Glen Whitney, Gogo Gogsi,
Göran Uddeborg, Grant Mathews, Hans de Goede, Hans Ulrich Niedermann,
Haochen Tong, Harald Seiler, huangyong, Hubert Kario, Ikey Doherty, Jan
Chren, Jan Schlüter, Jérémy Nouhaud, Jian-Hong Pan, Joerg Behrmann,
Jonathan Lebon, Josh Brobst, Juergen Hoetzel, Julien Humbert, Kai-Chuan
Hsieh, Kairui Song, Kamil Dudka, Kir Kolyshkin, Kristijan Gjoshev, Kyle
Huey, Kyle Russell, Lennart Poettering, lichangze, Luca Boccassi, Lucas
Werkmeister, Luca Weiss, Marc Kleine-Budde, Marco Wang, Martin Wilck,
Marti Raudsepp, masmullin2000, Máté Pozsgay, Matt Fenwick, Michael
Biebl, Michael Scherer, Michal Koutný, Michal Sekletár, Michal
Suchanek, Mikael Szreder, Milo Casagrande, mirabilos, Mitsuha_QuQ,
mog422, Muhammet Kara, Nazar Vinnichuk, Nicholas Narsing, Nicolas
Fella, Njibhu, nl6720, Oğuz Ersen, Olivier Le Moal, Ondrej Kozina,
onlybugreports, Pass Automated Testing Suite, Pat Coulthard, Pedro
Ruiz, Peter Hutterer, Phaedrus Leeds, PhoenixDiscord, Piotr Drąg, Plan
C, Purushottam choudhary, Rasmus Villemoes, Renaud Métrich, Robert
Marko, Ronan Pigott, Roy Chen (陳彥廷), RussianNeuroMancer, Samanta
Navarro, Samuel BF, scootergrisen, Sorin Ionescu, Steve Dodd, Susant
Sahani, Timo Rothenpieler, Tobias Hunger, Tobias Kaufmann, Topi
Miettinen, Vito Caputo, Weblate, Wen Yang, williamvds, Yu, Li-Yu, Yuri
Chornoivan, Yu Watanabe, Zbigniew Jędrzejewski-Szmek, Zmicer Turok,
Дамјан Георгиевски
Warsaw, 2020-11-10
CHANGES WITH 246:
* The service manager gained basic support for cgroup v2 freezer. Units
@ -159,7 +791,7 @@ CHANGES WITH 246:
generation for collection with systemd-pstore.
* We provide a set of udev rules to enable auto-suspend on PCI and USB
devices that were tested to currectly support it. Previously, this
devices that were tested to correctly support it. Previously, this
was distributed as a set of udev rules, but has now been replaced by
by a set of hwdb entries (and a much shorter udev rule to take action
if the device modalias matches one of the new hwdb entries).
@ -636,7 +1268,7 @@ CHANGES WITH 245:
configuration drop-ins are present, no action is taken.
* A new component "userdb" has been added, along with a small daemon
"systemd-userdb.service" and a client tool "userdbctl". The framework
"systemd-userdbd.service" and a client tool "userdbctl". The framework
allows defining rich user and group records in a JSON format,
extending on the classic "struct passwd" and "struct group"
structures. Various components in systemd have been updated to

14
README
View File

@ -325,14 +325,14 @@ WARNINGS:
we don't execve() systemd-shutdown.
STABLE BRANCHES AND BACKPORTS:
Stable branches with backported patches are available in the
systemd-stable repo at https://github.com/systemd/systemd-stable.
Stable branches with backported patches are available in the
systemd-stable repo at https://github.com/systemd/systemd-stable.
Stable branches are started for certain releases of systemd and named
after them, e.g. v238-stable. Stable branches are managed by
distribution maintainers on an as needed basis. See
https://www.freedesktop.org/wiki/Software/systemd/Backports/ for some
more information and examples.
Stable branches are started for certain releases of systemd and named
after them, e.g. v238-stable. Stable branches are managed by
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

View File

@ -11,7 +11,9 @@ System and Service Manager
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1369/badge)](https://bestpractices.coreinfrastructure.org/projects/1369)<br/>
[![Travis CI Build Status](https://travis-ci.org/systemd/systemd.svg?branch=master)](https://travis-ci.org/systemd/systemd)<br/>
[![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/systemd/systemd.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/systemd/systemd/context:cpp)<br/>
[![CentOS CI Build Status](https://ci.centos.org/buildStatus/icon?job=systemd-pr-build)](https://ci.centos.org/job/systemd-pr-build/)<br/>
[![CentOS CI - CentOS 7](https://jenkins-systemd.apps.ocp.ci.centos.org/buildStatus/icon?subject=CentOS%20CI%20-%20CentOS%207&job=upstream-centos7)](https://jenkins-systemd.apps.ocp.ci.centos.org/job/upstream-centos7/)<br/>
[![CentOS CI - Arch](https://jenkins-systemd.apps.ocp.ci.centos.org/buildStatus/icon?subject=CentOS%20CI%20-%20Arch&job=upstream-vagrant-archlinux)](https://jenkins-systemd.apps.ocp.ci.centos.org/job/upstream-vagrant-archlinux/)<br/>
[![CentOS CI - Arch (sanitizers)](https://jenkins-systemd.apps.ocp.ci.centos.org/buildStatus/icon?subject=CentOS%20CI%20-%20Arch%20(sanitizers)&job=upstream-vagrant-archlinux-sanitizers)](https://jenkins-systemd.apps.ocp.ci.centos.org/job/upstream-vagrant-archlinux-sanitizers/)<br/>
[![Build Status](https://dev.azure.com/evvers/systemd-systemd/_apis/build/status/systemd.systemd?branchName=master)](https://dev.azure.com/evvers/systemd-systemd/_build/latest?definitionId=1&branchName=master)<br/>
[![Fossies codespell report](https://fossies.org/linux/test/systemd-master.tar.gz/codespell.svg)](https://fossies.org/linux/test/systemd-master.tar.gz/codespell.html)</br>
[![Packaging status](https://repology.org/badge/tiny-repos/systemd.svg)](https://repology.org/project/systemd/versions)

152
TODO
View File

@ -4,6 +4,9 @@ Bugfixes:
manager or system manager can be always set. It would be better to reject
them when parsing config.
* userdbctl: "Password OK: yes" is shown even when there are no passwords
or the password is locked.
External:
* Fedora: add an rpmlint check that verifies that all unit files in the RPM are listed in %systemd_post macros.
@ -17,13 +20,56 @@ Janitorial Clean-ups:
Features:
* nspawn: move "incoming mount" directory to /run/host, move "inaccessible"
nodes to /run/host, move notify socket (for sd_notify() between payload and
container manager)
* homed: try to unmount in regular intervals when home dir was busy when we
tried because idle.
* sd-bus: when connecting to some dbus server socker, set originating AF_UNIX
socket name in abstract namespace to include "description" string, and pick
it up from there in sd_bus_creds logic. i.e. we can use the socket peer
address as conduit for some minimal connection metainfo, and use it to
restore the "description" logic that kdbus used to have.
* teach LoadCredential= the ability to load all files from a specified dir as
individual creds
* 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.
* special case some calls of chase_symlinks() to use openat2() internally, so
that the kernel does what we otherwise do.
* 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().
* cryptsetup: if keyfile specified in crypttab is AF_UNIX socket, connect to it
and read from it (like we do elsewhere with READ_FULL_FILE_CONNECT_SOCKET)
* 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
@ -34,11 +80,6 @@ Features:
mounting a subdir of the root fs as actual root. This can be used as
fstype-agnostic version of btrfs' rootflags=subvol=foobar.
* add --copy-from and --copy-to command to systemd-dissect which copies stuff
in and out of a disk image
* Support ProtectProc= or so, using: https://patchwork.kernel.org/cover/11310197/
* if /usr/bin/swapoff fails due to OOM, log a friendly explanatory message about it
* build short web pages out of each catalog entry, build them along with man
@ -58,9 +99,6 @@ Features:
often for one, let's turn it off entirely for a while. Use that for the
/proc/self/mountinfo logic.
* move our systemd-user PAM snippet to /usr/, which PAM appears to support
these days
* nspawn: support time namespaces
* systemd-firstboot: make sure to always use chase_symlinks() before
@ -80,15 +118,10 @@ Features:
* make us use dynamically fewer deps for containers in general purpose distros:
o turn into dlopen() deps:
- pcre2 (always) — irrelevant on Fedora, since dep by
libselinux, but should benefit Debian
- libpwquality (always) - only relevant for homed, and maybe soon
firstboot
- elfutils (always)
- p11-kit-trust (always)
- kmod-libs (only when called from PID 1)
- cryptsetup-libs (only in RootImage= handling in PID 1, but not in systemd-cryptsetup)
- similar: libblkid
- libblkid (only in RootImage= handling in PID 1, but not elsewhere)
- libpam (only when called from PID 1)
- bzip2, xz, lz4 (always — gzip and zstd should probably stay static deps the way they are,
since they are so basic and our defaults)
@ -106,14 +139,10 @@ Features:
* systemd-path: add ESP and XBOOTLDR path. Add "private" runtime/state/cache dir enum,
mapping to $RUNTIME_DIRECTORY, $STATE_DIRECTORY and such
* make "systemd-dissect" an official supported tool, i.e. move to /usr/bin/ and
provide man page. Given that we now have a tool that can generate images like
this, it's useful to have one that can dump contents of them, too.
* All tools that support --root= should also learn --image= so that they can
operate on disk images directly. Specifically: bootctl, tmpfiles, sysusers,
systemctl, repart, journalctl, coredumpctl. (Already done: systemd-nspawn,
systemd-firstboot)
operate on disk images directly. Specifically: bootctl, systemctl,
coredumpctl. (Already done: systemd-nspawn, systemd-firstboot,
systemd-repart, systemd-tmpfiles, systemd-sysusers, journalctl)
* seccomp: by default mask x32 ABI system wide on x86-64. it's on its way out
@ -122,20 +151,18 @@ Features:
* seccomp: maybe merge all filters we install into one with that libseccomp API that allows merging.
* per-service credential system. Specifically: add LoadCredential= (for loading
cred from file), AcquireCredential= (for asking user for cred, via
ask-password), PassCredential= (for passing on credential systemd itself
got). Then, place credentials in a per-service, immutable ramfs instance (so
that it cannot be swapped out), destroy after use. Also pass via keyring
(with graceful fallback to cover for containers). Define CredentialPath= for
defining subdir of /run/credentials/ where to place it. Set $CREDENTIAL_PATH
env var for services to the result. Also pass via fd passing (optionally).
* homed: add native recovery key support. use 48 lowercase modhex characters
(192bit), show qr code of it, include pattern expression in user record.
* homed: introduce "degraded" state for home directories that weren't cleanly
unmounted (use xattr we add and remove on the loop back file)
* credentials system:
- maybe add AcquireCredential= for querying a cred via ask-password
- maybe try to acquire creds via keyring?
- maybe try to pass creds via keyring?
- maybe optionally pass creds via memfd
- maybe add support for decrypting creds via TPM
- maybe add support for decrypting/importing creds via pkcs11
- make systemd-cryptsetup acquire pw via creds logic
- make PAMName= acquire pw via creds logic
- make macsec/wireguard code in networkd read key via creds logic
- make gatwayd/remote read key via creds logic
- add sd_notify() command for flushing out creds not needed anymore
* homed: during login resize fs automatically towards size goal. Specifically,
resize to diskSize if possible, but leave a certain amount (configured by a
@ -174,11 +201,6 @@ Features:
* systemd-gpt-auto should probably set x-systemd.growfs on the mounts it
creates
* homed/userdb: distinguish passwords and recovery keys in the records, since
we probably want to use different PBKDF algorithms/settings for them:
passwords have low entropy but recovery keys should have good entropy key
hence we can make them quicker to work.
* 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
@ -209,8 +231,6 @@ Features:
- when that's done: kill khash.c
- when that's done: kill gnutls support in resolved
* kill zenata, all hail weblate?
* when we resize disks (homed?) always round up to 4K sectors, not 512K
* add growvol and makevol options for /etc/crypttab, similar to
@ -237,9 +257,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 running mkfs before making partitions pop up +
encryption via LUKS to allow booting into an empty root with only /usr mounted in
* systemd-repart: allow managing the gpt read-only partition flag + auto-mount flag
* systemd-repart: allow boolean option that ensures that if existing partition
@ -255,10 +272,6 @@ Features:
* systemd-repart: add per-partition option to fail if partition already exist,
i.e. is not added new. Similar, add option to fail if partition does not exist yet.
* systemd-repart: add --size=auto for generating/resizing images of minimal
size, i.e. where the image file is sized exactly as large as necessary taking
SizeMin= into account, but not a single byte larger.
* systemd-repart: allow disabling growing of specific partitions, or making
them (think ESP: we don't ever want to grow it, since we cannot resize vfat)
@ -328,9 +341,6 @@ Features:
right) become genuine first class citizens, and we gain automatic, sane JSON
output for them.
* systemd-firstboot: teach it dissector magic, so that you can point it to some
disk image and it will just set everything in it all behind the scenes.
* We should probably replace /var/log/README, /etc/rc.d/README with symlinks
that are linked to these places instead of copied. After all they are
constant vendor data.
@ -366,9 +376,7 @@ Features:
- in systemd's PAMName= logic: query passwords with ssh-askpassword, so that we can make "loginctl set-linger" mode work
- fingerprint authentication, pattern authentication, …
- make sure "classic" user records can also be managed by homed
- description field for groups
- make size of $XDG_RUNTIME_DIR configurable in user record
- reuse pwquality magic in firstboot
- query password from kernel keyring first
- update even if record is "absent"
- add a "access mode" + "fstype" field to the "status" section of json identity records reflecting the actually used access mode and fstype, even on non-luks backends
@ -549,7 +557,7 @@ Features:
directory trees from the host to the services RootImage= and RootDirectory=
environment. Which we can use for /etc/machine-id and in particular
/etc/resolv.conf. Should be smart and do something useful on read-only
images, for example fallback to read-only bind mounting the file instead.
images, for example fall back to read-only bind mounting the file instead.
* show invocation ID in systemd-run output
@ -664,11 +672,6 @@ Features:
yogas can be recognized as "convertible" too, even if they predate the DMI
"convertible" form factor
* Maybe add PrivatePIDs= as new unit setting, and do minimal PID namespacing
after all. Be strict however, only support the equivalent of nspawn's
--as-pid2 switch, and sanely proxy sd_notify() messages dropping stuff such
as MAINPID.
* Add ExecMonitor= setting. May be used multiple times. Forks off a process in
the service cgroup, which is supposed to monitor the service, and when it
exits the service is considered failed by its monitor.
@ -822,9 +825,6 @@ Features:
* systemctl: if some operation fails, show log output?
* systemctl edit: use equivalent of cat() to insert existing config as a comment, prepended with #.
Upon editor exit, lines with one # are removed, lines with two # are left with one #, etc.
* exponential backoff in timesyncd when we cannot reach a server
* timesyncd: add ugly bus calls to set NTP servers per-interface, for usage by NM
@ -852,9 +852,6 @@ Features:
* add new gpt type for btrfs volumes
* support empty /etc boots nicely:
- nspawn/gpt-generator: introduce new gpt partition type for /usr
* generator that automatically discovers btrfs subvolumes, identifies their purpose based on some xattr on them.
* a way for container managers to turn off getty starting via $container_headless= or so...
@ -880,13 +877,6 @@ Features:
service instances processing the listening socket, and open this up
for ReusePort=
* introduce bus call FreezeUnit(s, b), as well as "systemctl freeze
$UNIT" and "systemctl thaw $UNIT" as wrappers around this. The calls
should SIGSTOP all unit processes in a loop until all processes of
it are fully stopped. This can later be used for app management by
desktop UIs such as gnome-shell to freeze apps that are not visible
on screen, not unlike how job control works on the shell
* cgroups:
- implement per-slice CPUFairScheduling=1 switch
- introduce high-level settings for RT budget, swappiness
@ -936,6 +926,10 @@ Features:
- allow multiple signal handlers per signal?
- document chaining of signal handler for SIGCHLD and child handlers
- define more intervals where we will shift wakeup intervals around in, 1h, 6h, 24h, ...
- maybe support iouring as backend, so that we allow hooking read and write
operations instead of IO ready events into event loops. See considerations
here:
http://blog.vmsplice.net/2020/07/rethinking-event-loop-integration-for.html
* investigate endianness issues of UUID vs. GUID
@ -1025,7 +1019,7 @@ Features:
- journald: also get thread ID from client, plus thread name
- journal: when waiting for journal additions in the client always sleep at least 1s or so, in order to minimize wakeups
- add API to close/reopen/get fd for journal client fd in libsystemd-journal.
- fallback to /dev/log based logging in libsystemd-journal, if we cannot log natively?
- fall back to /dev/log based logging in libsystemd-journal, if we cannot log natively?
- declare the local journal protocol stable in the wiki interface chart
- sd-journal: speed up sd_journal_get_data() with transparent hash table in bg
- journald: when dropping msgs due to ratelimit make sure to write
@ -1150,10 +1144,6 @@ Features:
- optionally automatically add FORWARD rules to iptables whenever nspawn is
running, remove them when shut down.
* dissect
- refuse mounting over a mount point
- automatically discover .roothash files in dissect, similarly to nspawn
* machined:
- add an API so that libvirt-lxc can inform us about network interfaces being
removed or added to an existing machine

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
in_files = '''
systemd.bg.catalog

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Message catalog for systemd's own messages
# Belarusian translation
@ -78,7 +78,7 @@ Documentation: man:core(5)
Subject: Новая сесія № @SESSION_ID@ створана для карыстальніка @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Новая сесія з № @SESSION_ID@ створана для карыстальніка @USER_ID@.
@ -88,7 +88,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Сесія № @SESSION_ID@ спынена
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Сесія № @SESSION_ID@ спынена.
@ -96,7 +96,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Даступна новае працоўнае месца № @SEAT_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Новае працоўнае месца № @SEAT_ID@ наладжана і даступна для выкарыстання.
@ -104,7 +104,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Працоўнае месца № @SEAT_ID@ выдалена
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Працоўнае месца № @SEAT_ID@ выдалена і больш не даступна.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Message catalog for systemd's own messages
# Belarusian Latin translation
@ -79,7 +79,7 @@ Rekamiendujecca paviedamić ab hetym raspracoŭnikam.
Subject: Novaja siesija № @SESSION_ID@ stvorana dlia karystaĺnika @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Novaja siesija z № @SESSION_ID@ stvorana dlia karystaĺnika @USER_ID@.
@ -89,7 +89,7 @@ Lidar hetaj siesii pad № @LEADER@.
Subject: Siesija № @SESSION_ID@ spyniena
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Siesija № @SESSION_ID@ spyniena.
@ -97,7 +97,7 @@ Siesija № @SESSION_ID@ spyniena.
Subject: Dastupna novaje pracoŭnaje miesca № @SEAT_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Novaje pracoŭnaje miesca № @SEAT_ID@ naladžana i dastupna dlia
vykarystannia.
@ -106,7 +106,7 @@ vykarystannia.
Subject: Pracoŭnaje miesca № @SEAT_ID@ vydaliena
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Pracoŭnaje miesca № @SEAT_ID@ vydaliena i boĺš nie dastupna.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2016 Alexander Shopov <ash@kambanaria.org>
@ -81,7 +81,7 @@ Documentation: man:core(5)
Subject: Създадена е нова сесия № @SESSION_ID@ за потребителя „@USER_ID@“
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
За потребителя „@USER_ID@“ е създадена нова сесия № @SESSION_ID@.
@ -91,7 +91,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Сесия № @SESSION_ID@ приключи
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Сесия № @SESSION_ID@ приключи работа.
@ -99,7 +99,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Налично е ново работно място № @SEAT_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Новото работно място № @SEAT_ID@ е настроено и готово за работа.
@ -107,7 +107,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Работното място № @SEAT_ID@ е премахнато
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Работното място № @SEAT_ID@ вече не е налично.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
@ -89,7 +89,7 @@ about the file being truncated.
Subject: A new session @SESSION_ID@ has been created for user @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
A new session with the ID @SESSION_ID@ has been created for the user @USER_ID@.
@ -99,7 +99,7 @@ The leading process of the session is @LEADER@.
Subject: Session @SESSION_ID@ has been terminated
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
A session with the ID @SESSION_ID@ has been terminated.
@ -107,7 +107,7 @@ A session with the ID @SESSION_ID@ has been terminated.
Subject: A new seat @SEAT_ID@ is now available
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
A new seat @SEAT_ID@ has been configured and is now available.
@ -115,7 +115,7 @@ A new seat @SEAT_ID@ has been configured and is now available.
Subject: Seat @SEAT_ID@ has now been removed
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
A seat @SEAT_ID@ has been removed and is no longer available.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
# Danish translation
@ -64,7 +64,7 @@ og burde blive reporteret som en bug til folkene bag
Subject: En ny session @SESSION_ID@ er blevet lavet for bruger @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
En ny session med ID @SESSION_ID@ er blevet lavet for brugeren @USER_ID@.
@ -74,7 +74,7 @@ Den ledende process for sessionen er @LEADER@.
Subject: Session @SESSION_ID@ er blevet lukket ned
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
En session med ID @SESSION_ID@ er blevet lukket ned.
@ -82,7 +82,7 @@ En session med ID @SESSION_ID@ er blevet lukket ned.
Subject: En ny arbejdsstation $SEAT_ID@ er nu tilgængelig
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
En ny arbejdsstation @SEAT_ID@ er blevet konfigureret og er nu tilgængelig.
@ -90,7 +90,7 @@ En ny arbejdsstation @SEAT_ID@ er blevet konfigureret og er nu tilgængelig.
Subject: Arbejdsstation @SEAT_ID@ er nu blevet fjernet
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
En arbejdsstation @SEAT_ID@ er blevet fjernet og er ikke længere tilgængelig.

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
-- fc2e22bc6ee647b6b90729ab34a250b1
Subject: Speicherabbild für Prozess @COREDUMP_PID@ (@COREDUMP_COMM) generiert
Subject: Speicherabbild für Prozess @COREDUMP_PID@ (@COREDUMP_COMM@) generiert
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:core(5)

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2013-2016 Sylvain Plantefève
@ -82,7 +82,7 @@ incriminé, et cela devrait être notifié à son concepteur comme un défaut (b
Subject: Une nouvelle session @SESSION_ID@ a été créée pour l'utilisateur @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Une nouvelle session a été créée pour l'utilisateur @USER_ID@ avec
l'identifiant (ID) @SESSION_ID@.
@ -93,7 +93,7 @@ Le processus maître de la session est @LEADER@.
Subject: La session @SESSION_ID@ s'est terminée
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
La session d'identifiant (ID) @SESSION_ID@ s'est terminée.
@ -101,7 +101,7 @@ La session d'identifiant (ID) @SESSION_ID@ s'est terminée.
Subject: Un nouveau poste (seat) @SEAT_ID@ est disponible
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Un nouveau poste (seat) @SEAT_ID@ a été configuré et est maintenant
disponible.
@ -110,7 +110,7 @@ disponible.
Subject: Le poste (seat) @SEAT_ID@ a été retiré
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Le poste (seat) @SEAT_ID@ a été retiré et n'est plus disponible.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
# Croatian translation
@ -78,7 +78,7 @@ trebalo bi se prijaviti razvijatelju kao greška.
Subject: Nova sesija @SESSION_ID@ je stvorena za korisnika @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Nova sesija sa ID @SESSION_ID@ je stvorena za korisnika @USER_ID@.
@ -88,7 +88,7 @@ Glavni proces sesije je @LEADER@.
Subject: Sesija @SESSION_ID@ je prekinuta
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Sesija sa ID @SESSION_ID@ je prekinuta.
@ -96,7 +96,7 @@ Sesija sa ID @SESSION_ID@ je prekinuta.
Subject: Novo sjedište @SEAT_ID@ je sada dostupno
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Novo sjedište @SEAT_ID@ je podešeno i sada je dostupno.
@ -104,7 +104,7 @@ Novo sjedište @SEAT_ID@ je podešeno i sada je dostupno.
Subject: Sjedište @SEAT_ID@ je sada uklonjeno
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Sjedište @SEAT_ID@ je uklonjeno i više nije dostupno.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2016 Gabor Kelemen
@ -64,7 +64,7 @@ a szállítója felé kell bejelenteni.
Subject: Új munkamenet (@SESSION_ID@) létrehozva, felhasználója: @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Létrejött egy új munkamenet @SESSION_ID@ azonosítóval ezen felhasználóhoz:
@USER_ID@.
@ -75,7 +75,7 @@ A munkamenet vezető folyamata: @LEADER@.
Subject: Munkamenet (@SESSION_ID@) befejezve
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
A következő azonosítójú munkamenet befejeződött: @SESSION_ID@.
@ -83,7 +83,7 @@ A következő azonosítójú munkamenet befejeződött: @SESSION_ID@.
Subject: Elérhető egy új munkaállomás: @SEAT_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Beállításra kerül és használható egy új munkaállomás: @SEAT_ID@.
@ -91,7 +91,7 @@ Beállításra kerül és használható egy új munkaállomás: @SEAT_ID@.
Subject: A munkaállomás eltávolítva: @SEAT_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
A munkaállomás el lett távolítva, és már nem érhető el: @SEAT_ID@

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2013-2019 Daniele Medri
@ -97,7 +97,7 @@ segnalare la troncatura.
Subject: La nuova sessione @SESSION_ID@ è stata creata per l'utente @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Una nuova sessione con ID @SESSION_ID@ è stata creata per l'utente @USER_ID@.
@ -108,7 +108,7 @@ Il processo primario della sessione è @LEADER@.
Subject: La sessione @SESSION_ID@ è terminata
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
La sessione con ID @SESSION_ID@ è terminata.
@ -117,7 +117,7 @@ La sessione con ID @SESSION_ID@ è terminata.
Subject: La nuova postazione @SEAT_ID@ è ora disponibile
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
La nuova postazione @SEAT_ID@ è stata configurata ed è ora disponibile.
@ -126,7 +126,7 @@ La nuova postazione @SEAT_ID@ è stata configurata ed è ora disponibile.
Subject: La postazione @SEAT_ID@ è stata rimossa
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
La postazione @SEAT_ID@ è stata rimossa e non è più disponibile.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
# Korean translation
@ -86,7 +86,7 @@ Documentation: man:core(5)
Subject: @USER_ID@ 사용자의 새 @SESSION_ID@ 세션 만듦
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
@USER_ID@ 사용자의 새 @SESSION_ID@ 세션을 만들었습니다.
@ -96,7 +96,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: @SESSION_ID@ 세션 마침
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
@SESSION_ID@ 세션을 끝냈습니다.
@ -104,7 +104,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: 새 @SEAT_ID@ 시트 사용할 수 있음
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
새 @SEAT_ID@ 시트를 설정했고 사용할 수 있습니다.
@ -112,7 +112,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: @SEAT_ID@ 시트 제거함
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
@SEAT_ID@ 시트를 제거했으며 더이상 사용할 수 없습니다.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
# Polish translation
@ -92,7 +92,7 @@ gdb(1) będą ostrzegały o skróceniu pliku.
Subject: Utworzono nową sesję @SESSION_ID@ dla użytkownika @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Nowa sesja o identyfikatorze @SESSION_ID@ została utworzona dla użytkownika
@USER_ID@.
@ -103,7 +103,7 @@ Proces prowadzący sesji: @LEADER@.
Subject: Zakończono sesję @SESSION_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Sesja o identyfikatorze @SESSION_ID@ została zakończona.
@ -111,7 +111,7 @@ Sesja o identyfikatorze @SESSION_ID@ została zakończona.
Subject: Dostępne jest nowe stanowisko @SEAT_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Nowe stanowisko @SEAT_ID@ zostało skonfigurowane i jest teraz dostępne.
@ -119,7 +119,7 @@ Nowe stanowisko @SEAT_ID@ zostało skonfigurowane i jest teraz dostępne.
Subject: Usunięto stanowisko @SEAT_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Stanowisko @SEAT_ID@ zostało usunięte i nie jest już dostępne.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2015 Rafael Ferreira (translation)
@ -65,7 +65,7 @@ deveria ser relatado para seu fabricante como um erro.
Subject: A nova sessão @SESSION_ID@ foi criada para usuário o @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Uma nova sessão com o ID @SESSION_ID@ foi criada para o usuário @USER_ID@.
@ -75,7 +75,7 @@ O processo originador da sessão é @LEADER@.
Subject: Sessão @SESSION_ID@ foi terminada
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Um sessão com o ID @SESSION_ID@ foi terminada.
@ -83,7 +83,7 @@ Um sessão com o ID @SESSION_ID@ foi terminada.
Subject: Um novo seat @SEAT_ID@ está disponível
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Um novo seat @SEAT_ID@ foi configurado e está disponível.
@ -91,7 +91,7 @@ Um novo seat @SEAT_ID@ foi configurado e está disponível.
Subject: Seat @SEAT_ID@ foi removido agora
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Um seat @SEAT_ID@ foi removido e não está mais disponível.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2013-2017 Sergey Ptashnick
@ -105,7 +105,7 @@ Documentation: man:coredump.conf(5)
Subject: Для пользователя @USER_ID@ создан новый сеанс @SESSION_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Для пользователя @USER_ID@ создан новый сеанс с идентификатором @SESSION_ID@.
@ -116,7 +116,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Сеанс @SESSION_ID@ завершен
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Сеанс с идентификатором @SESSION_ID@ завершился.
@ -125,7 +125,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Добавлено новое рабочее место @SEAT_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Новое рабочее место (seat) @SEAT_ID@ полностью настроено и готово к
использованию.
@ -135,7 +135,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Рабочее место @SEAT_ID@ отключено
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Рабочее место (seat) @SEAT_ID@ было отключено.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
# Message catalog for systemd's own messages
# Serbian translation
@ -63,7 +63,7 @@ Documentation: man:core(5)
Subject: Нова сесија @SESSION_ID@ је направљена за корисника @USER_ID@
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Нова сесија са ИБ-ом @SESSION_ID@ је направљена за корисника @USER_ID@.
@ -73,7 +73,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Сесија @SESSION_ID@ је окончана
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Сесија са ИБ-ом @SESSION_ID@ је окончана.
@ -81,7 +81,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Ново седиште @SEAT_ID@ је сада доступно
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Ново седиште @SEAT_ID@ је исподешавано и сада је доступно.
@ -89,7 +89,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: Седиште @SEAT_ID@ је сада уклоњено
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
Седиште @SEAT_ID@ је сада уклоњено и више није доступно.

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2015 Boyuan Yang
@ -62,7 +62,7 @@ Documentation: man:core(5)
Subject: 一个新会话 @SESSION_ID@ 已为用户 @USER_ID@ 建立
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
一个 ID 为 @SESSION_ID@ 的新会话已为用户 @USER_ID@ 建立。
@ -72,7 +72,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: 会话 @SESSION_ID@ 已终止
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
一个 ID 为 @SESSION_ID@ 的会话已终止。
@ -80,7 +80,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: 一个新的座位 @SEAT_ID@ 可用
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
一个新的座位 @SEAT_ID@ 已被配置并已可用。
@ -88,7 +88,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: 座位 @SEAT_ID@ 已被移除
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
座位 @SEAT_ID@ 已被移除并不再可用。

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright © 2015 Jeff Huang
@ -65,7 +65,7 @@ Documentation: man:core(5)
Subject: 新的工作階段 @SESSION_ID@ 已為使用者 @USER_ID@ 建立
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
一個新的工作階段ID @SESSION_ID@ 已為使用者 @USER_ID@ 建立。
@ -75,7 +75,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: 工作階段 @SESSION_ID@ 已結束
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
一個工作階段ID @SESSION_ID@ 已結束。
@ -83,7 +83,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: 新的座位 @SEAT_ID@ 可用
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
一個新的座位 @SEAT_ID@ 已被設定且現在可用。
@ -91,7 +91,7 @@ Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Subject: 座位 @SEAT_ID@ 已被移除
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: https://www.freedesktop.org/wiki/Software/systemd/multiseat
Documentation: sd-login(3)
座位 @SEAT_ID@ 已被移除且不再可用。

View File

@ -9,3 +9,8 @@ expression s;
@@
- (empty_or_root(s) ? "/" : s)
+ empty_to_root(s)
@@
expression s;
@@
- (s ? s : "/")
+ empty_to_root(s)

View File

@ -2,13 +2,28 @@
expression e;
statement s;
@@
- if (e == NULL)
+ if (!e)
s
if (
(
!e
|
- e == NULL
+ !e
)
)
{...}
else s
@@
expression e;
statement s;
@@
- if (e != NULL)
+ if (e)
s
if (
(
e
|
- e != NULL
+ e
)
)
{...}
else s

View File

@ -0,0 +1,10 @@
@@
constant c;
@@
(
- errno == -c
+ errno == c
|
- errno != -c
+ errno != c
)

View File

@ -1,7 +1,13 @@
@@
/* Disable this transformation for the securebits-util.h, as it makes
* the expression there confusing. */
position p : script:python() { p[0].file != "src/shared/securebits-util.h" };
/* Disable this transformation in cases where it doesn't make sense or
* where it makes the resulting expression more confusing
*/
position p : script:python() {
not (p[0].file == "src/shared/securebits-util.h" or
p[0].file == "src/core/manager.h" or
p[0].current_element == "log_set_max_level_realm" or
p[0].current_element == "unichar_is_valid")
};
expression x, y;
@@
(

View File

@ -1,25 +1,13 @@
/* Limit the number of expressions to 6 for performance reasons */
@@
expression e;
/* Exclude JsonVariant * from the transformation, as it can't work with the
* current version of the IN_SET macro */
typedef JsonVariant;
type T != JsonVariant*;
constant T n0, n1, n2, n3, n4, n5, n6, n7, n8, n9;
constant T n0, n1, n2, n3, n4, n5;
@@
(
- e == n0 || e == n1 || e == n2 || e == n3 || e == n4 || e == n5 || e == n6 || e == n7 || e == n8 || e == n9
+ IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9)
|
- e == n0 || e == n1 || e == n2 || e == n3 || e == n4 || e == n5 || e == n6 || e == n7 || e == n8
+ IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8)
|
- e == n0 || e == n1 || e == n2 || e == n3 || e == n4 || e == n5 || e == n6 || e == n7
+ IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7)
|
- e == n0 || e == n1 || e == n2 || e == n3 || e == n4 || e == n5 || e == n6
+ IN_SET(e, n0, n1, n2, n3, n4, n5, n6)
|
- e == n0 || e == n1 || e == n2 || e == n3 || e == n4 || e == n5
+ IN_SET(e, n0, n1, n2, n3, n4, n5)
|

231
coccinelle/macros.h Normal file
View File

@ -0,0 +1,231 @@
/* Collected macros from our systemd codebase to make the cocci semantic
* parser happy. Inspired by the original cocci macros file
* /usr/lib64/coccinelle/standard.h (including the YACFE_* symbols)
*/
// General
#define PTR_TO_PID(x)
// src/basic/macro.h
#define _printf_(a, b) __attribute__((__format__(printf, a, b)))
#define _alloc_(...) __attribute__((__alloc_size__(__VA_ARGS__)))
#define _sentinel_ __attribute__((__sentinel__))
#define _section_(x) __attribute__((__section__(x)))
#define _used_ __attribute__((__used__))
#define _unused_ __attribute__((__unused__))
#define _destructor_ __attribute__((__destructor__))
#define _pure_ __attribute__((__pure__))
#define _const_ __attribute__((__const__))
#define _deprecated_ __attribute__((__deprecated__))
#define _packed_ __attribute__((__packed__))
#define _malloc_ __attribute__((__malloc__))
#define _weak_ __attribute__((__weak__))
#define _likely_(x) (__builtin_expect(!!(x), 1))
#define _unlikely_(x) (__builtin_expect(!!(x), 0))
#define _public_ __attribute__((__visibility__("default")))
#define _hidden_ __attribute__((__visibility__("hidden")))
#define _weakref_(x) __attribute__((__weakref__(#x)))
#define _align_(x) __attribute__((__aligned__(x)))
#define _alignas_(x) __attribute__((__aligned__(__alignof(x))))
#define _alignptr_ __attribute__((__aligned__(sizeof(void*))))
#define _cleanup_(x) __attribute__((__cleanup__(x)))
#define _fallthrough_
#define _noreturn_ __attribute__((__noreturn__))
#define thread_local __thread
#define ELEMENTSOF(x) \
(__builtin_choose_expr( \
!__builtin_types_compatible_p(typeof(x), typeof(&*(x))), \
sizeof(x)/sizeof((x)[0]), \
VOID_0))
// src/basic/umask-util.h
#define _cleanup_umask_
#define RUN_WITH_UMASK(mask) \
for (_cleanup_umask_ mode_t _saved_umask_ = umask(mask) | S_IFMT; \
FLAGS_SET(_saved_umask_, S_IFMT); \
_saved_umask_ &= 0777)
// src/basic/hashmap.h
#define _IDX_ITERATOR_FIRST (UINT_MAX - 1)
#define HASHMAP_FOREACH(e, h) YACFE_ITERATOR
#define ORDERED_HASHMAP_FOREACH(e, h) YACFE_ITERATOR
#define HASHMAP_FOREACH_KEY(e, k, h) YACFE_ITERATOR
#define ORDERED_HASHMAP_FOREACH_KEY(e, k, h) YACFE_ITERATOR
// src/basic/list.h
#define LIST_HEAD(t,name) \
t *name
#define LIST_FIELDS(t,name) \
t *name##_next, *name##_prev
#define LIST_HEAD_INIT(head) \
do { \
(head) = NULL; \
} while (false)
#define LIST_INIT(name,item) \
do { \
typeof(*(item)) *_item = (item); \
assert(_item); \
_item->name##_prev = _item->name##_next = NULL; \
} while (false)
#define LIST_PREPEND(name,head,item) \
do { \
typeof(*(head)) **_head = &(head), *_item = (item); \
assert(_item); \
if ((_item->name##_next = *_head)) \
_item->name##_next->name##_prev = _item; \
_item->name##_prev = NULL; \
*_head = _item; \
} while (false)
#define LIST_APPEND(name,head,item) \
do { \
typeof(*(head)) **_hhead = &(head), *_tail; \
LIST_FIND_TAIL(name, *_hhead, _tail); \
LIST_INSERT_AFTER(name, *_hhead, _tail, item); \
} while (false)
#define LIST_REMOVE(name,head,item) \
do { \
typeof(*(head)) **_head = &(head), *_item = (item); \
assert(_item); \
if (_item->name##_next) \
_item->name##_next->name##_prev = _item->name##_prev; \
if (_item->name##_prev) \
_item->name##_prev->name##_next = _item->name##_next; \
else { \
assert(*_head == _item); \
*_head = _item->name##_next; \
} \
_item->name##_next = _item->name##_prev = NULL; \
} while (false)
#define LIST_FIND_HEAD(name,item,head) \
do { \
typeof(*(item)) *_item = (item); \
if (!_item) \
(head) = NULL; \
else { \
while (_item->name##_prev) \
_item = _item->name##_prev; \
(head) = _item; \
} \
} while (false)
#define LIST_FIND_TAIL(name,item,tail) \
do { \
typeof(*(item)) *_item = (item); \
if (!_item) \
(tail) = NULL; \
else { \
while (_item->name##_next) \
_item = _item->name##_next; \
(tail) = _item; \
} \
} while (false)
#define LIST_INSERT_AFTER(name,head,a,b) \
do { \
typeof(*(head)) **_head = &(head), *_a = (a), *_b = (b); \
assert(_b); \
if (!_a) { \
if ((_b->name##_next = *_head)) \
_b->name##_next->name##_prev = _b; \
_b->name##_prev = NULL; \
*_head = _b; \
} else { \
if ((_b->name##_next = _a->name##_next)) \
_b->name##_next->name##_prev = _b; \
_b->name##_prev = _a; \
_a->name##_next = _b; \
} \
} while (false)
#define LIST_INSERT_BEFORE(name,head,a,b) \
do { \
typeof(*(head)) **_head = &(head), *_a = (a), *_b = (b); \
assert(_b); \
if (!_a) { \
if (!*_head) { \
_b->name##_next = NULL; \
_b->name##_prev = NULL; \
*_head = _b; \
} else { \
typeof(*(head)) *_tail = (head); \
while (_tail->name##_next) \
_tail = _tail->name##_next; \
_b->name##_next = NULL; \
_b->name##_prev = _tail; \
_tail->name##_next = _b; \
} \
} else { \
if ((_b->name##_prev = _a->name##_prev)) \
_b->name##_prev->name##_next = _b; \
else \
*_head = _b; \
_b->name##_next = _a; \
_a->name##_prev = _b; \
} \
} while (false)
#define LIST_JUST_US(name,item) \
(!(item)->name##_prev && !(item)->name##_next) \
#define LIST_FOREACH(name,i,head) \
for ((i) = (head); (i); (i) = (i)->name##_next)
#define LIST_FOREACH_SAFE(name,i,n,head) \
for ((i) = (head); (i) && (((n) = (i)->name##_next), 1); (i) = (n))
#define LIST_FOREACH_BEFORE(name,i,p) \
for ((i) = (p)->name##_prev; (i); (i) = (i)->name##_prev)
#define LIST_FOREACH_AFTER(name,i,p) \
for ((i) = (p)->name##_next; (i); (i) = (i)->name##_next)
#define LIST_FOREACH_OTHERS(name,i,p) \
for (({ \
(i) = (p); \
while ((i) && (i)->name##_prev) \
(i) = (i)->name##_prev; \
if ((i) == (p)) \
(i) = (p)->name##_next; \
}); \
(i); \
(i) = (i)->name##_next == (p) ? (p)->name##_next : (i)->name##_next)
#define LIST_LOOP_BUT_ONE(name,i,head,p) \
for ((i) = (p)->name##_next ? (p)->name##_next : (head); \
(i) != (p); \
(i) = (i)->name##_next ? (i)->name##_next : (head))
#define LIST_IS_EMPTY(head) \
(!(head))
#define LIST_JOIN(name,a,b) \
do { \
assert(b); \
if (!(a)) \
(a) = (b); \
else { \
typeof(*(a)) *_head = (b), *_tail; \
LIST_FIND_TAIL(name, (a), _tail); \
_tail->name##_next = _head; \
_head->name##_prev = _tail; \
} \
(b) = NULL; \
} while (false)
// src/basic/strv.h
#define STRV_FOREACH(s, l) YACFE_ITERATOR
#define STRV_FOREACH_BACKWARDS(s, l) YACFE_ITERATOR
#define STRV_FOREACH_PAIR(x, y, l) YACFE_ITERATOR
// src/basic/socket-util.h
#define CMSG_BUFFER_TYPE(size) \
union { \
struct cmsghdr cmsghdr; \
uint8_t buf[size]; \
uint8_t align_check[(size) >= CMSG_SPACE(0) && \
(size) == CMSG_ALIGN(size) ? 1 : -1]; \
}
// src/libsystemd/sd-device/device-util.h
#define FOREACH_DEVICE_PROPERTY(device, key, value) YACFE_ITERATOR
#define FOREACH_DEVICE_TAG(device, tag) YACFE_ITERATOR
#define FOREACH_DEVICE_CURRENT_TAG(device, tag) YACFE_ITERATOR
#define FOREACH_DEVICE_SYSATTR(device, attr) YACFE_ITERATOR
#define FOREACH_DEVICE_DEVLINK(device, devlink) YACFE_ITERATOR
#define FOREACH_DEVICE(enumerator, device) YACFE_ITERATOR
#define FOREACH_SUBSYSTEM(enumerator, device) YACFE_ITERATOR
// src/basic/dirent-util.h
#define FOREACH_DIRENT(de, d, on_error) YACFE_ITERATOR
#define FOREACH_DIRENT_ALL(de, d, on_error) YACFE_ITERATOR

View File

@ -1,22 +1,11 @@
/* Limit the number of expressions to 6 for performance reasons */
@@
expression e;
typedef JsonVariant;
type T != JsonVariant*;
constant T n0, n1, n2, n3, n4, n5, n6, n7, n8, n9;
constant T n0, n1, n2, n3, n4, n5;
@@
(
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9)
|
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8)
|
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7)
|
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6)
|
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5
+ !IN_SET(e, n0, n1, n2, n3, n4, n5)
|

View File

@ -10,7 +10,6 @@ EXCLUDED_PATHS=(
)
top="$(git rev-parse --show-toplevel)"
iso_defs="$top/coccinelle/systemd-definitions.iso"
args=
# Create an array from files tracked by git...
@ -32,12 +31,12 @@ if ! parallel -h >/dev/null; then
exit 1
fi
for SCRIPT in ${@-$top/coccinelle/*.cocci} ; do
for SCRIPT in ${@-$top/coccinelle/*.cocci}; do
echo "--x-- Processing $SCRIPT --x--"
TMPFILE=`mktemp`
echo "+ spatch --sp-file $SCRIPT $args ..."
parallel --halt now,fail=1 --keep-order --noswap --max-args=20 \
spatch --iso-file $iso_defs --sp-file $SCRIPT $args ::: "${files[@]}" \
spatch --macro-file="$top/coccinelle/macros.h" --sp-file $SCRIPT $args ::: "${files[@]}" \
2>"$TMPFILE" || cat "$TMPFILE"
echo -e "--x-- Processed $SCRIPT --x--\n"
done

View File

@ -1,16 +1,15 @@
@@
expression list args;
@@
- strjoin(args, NULL);
+ strjoin(args);
@@
position p : script:python() { p[0].current_element != "test_strjoin" };
expression t;
expression list args;
@@
- t = strjoin(args, NULL);
(
- strjoin@p(args, NULL);
+ strjoin(args);
|
- t = strjoin@p(args, NULL);
+ t = strjoin(args);
@@
expression list args;
@@
- return strjoin(args, NULL);
|
- return strjoin@p(args, NULL);
+ return strjoin(args);
)

View File

@ -1,20 +0,0 @@
/* Statement isomorphisms - replace explicit checks against NULL with a
* shorter variant, which relies on C's downgrade-to-bool feature.
* The expression metavariables should be declared as pointers, however,
* that doesn't work well with complex expressions like:
* if (UNIT(p)->default_dependencies != NULL)
*/
Statement
@@
expression X;
statement S;
@@
if (X == NULL) S => if (!X) S
Statement
@@
expression X;
statement S;
@@
if (X != NULL) S => if (X) S

View File

@ -1,6 +1,7 @@
@@
position p : script:python() { not p[0].file.startswith("man/") };
expression e, fmt;
expression list vaargs;
@@
- snprintf(e, sizeof(e), fmt, vaargs);
- snprintf@p(e, sizeof(e), fmt, vaargs);
+ xsprintf(e, fmt, vaargs);

View File

@ -0,0 +1,27 @@
@@
position p : script:python() { p[0].file != "src/journal/lookup3.c" };
identifier id;
expression e;
@@
if (...)
- {
(
id@p(...);
|
e@p;
)
- }
@@
position p : script:python() { p[0].file != "src/journal/lookup3.c" };
identifier id;
expression e;
@@
if (...)
- {
(
return id@p(...);
|
return e@p;
)
- }

View File

@ -10,12 +10,11 @@ systemd provides support for automatically reverting back to the previous
version of the OS or kernel in case the system consistently fails to boot. This
support is built into various of its components. When used together these
components provide a complete solution on UEFI systems, built as add-on to the
[Boot Loader
Specification](https://systemd.io/BOOT_LOADER_SPECIFICATION). However, the
different components may also be used independently, and in combination with
other software, to implement similar schemes, for example with other boot
loaders or for non-UEFI systems. Here's a brief overview of the complete set of
components:
[Boot Loader Specification](https://systemd.io/BOOT_LOADER_SPECIFICATION).
However, the different components may also be used independently, and in
combination with other software, to implement similar schemes, for example with
other boot loaders or for non-UEFI systems. Here's a brief overview of the
complete set of components:
* The
[`systemd-boot(7)`](https://www.freedesktop.org/software/systemd/man/systemd-boot.html)
@ -45,11 +44,10 @@ components:
* The `boot-complete.target` target unit (see
[`systemd.special(7)`](https://www.freedesktop.org/software/systemd/man/systemd.special.html))
serves as a generic extension point both for units that shall be considered
necessary to consider a boot successful on one side (example:
`systemd-boot-check-no-failures.service` as described above), and units that
want to act only if the boot is successful on the other (example:
`systemd-bless-boot.service` as described above).
serves as a generic extension point both for units that are necessary to
consider a boot successful (example: `systemd-boot-check-no-failures.service`
as described above), and units that want to act only if the boot is
successful (example: `systemd-bless-boot.service` as described above).
* The
[`kernel-install(8)`](https://www.freedesktop.org/software/systemd/man/kernel-install.html)

View File

@ -28,23 +28,34 @@ returns `EBUSY`), it refrains from processing the device. If it manages to take
the lock it is kept for the entire time the device is processed.
Note that `systemd-udevd` also watches all block device nodes it manages for
`inotify()` `IN_CLOSE` events: whenever such an event is seen, this is used as
trigger to re-run the rule-set for the device.
`inotify()` `IN_CLOSE_WRITE` events: whenever such an event is seen, this is
used as trigger to re-run the rule-set for the device.
These two concepts allow tools such as disk partitioners or file system
formatting tools to safely and easily take exclusive ownership of a block
device while operating: before starting work on the block device, they should
take an `LOCK_EX` lock on it. This has two effects: first of all, in case
`systemd-udevd` is still processing the device the tool will wait for it to
finish. Second, after the lock is taken, it can be sure that
`systemd-udevd` will refrain from processing the block device, and thus all
other client applications subscribed to it won't get device notifications from
potentially half-written data either. After the operation is complete the
finish. Second, after the lock is taken, it can be sure that `systemd-udevd`
will refrain from processing the block device, and thus all other client
applications subscribed to it won't get device notifications from potentially
half-written data either. After the operation is complete the
partitioner/formatter can simply close the device node. This has two effects:
it implicitly releases the lock, so that `systemd-udevd` can process events on
the device node again. Secondly, it results an `IN_CLOSE` event, which causes
`systemd-udevd` to immediately re-process the device — seeing all changes the
tool made — and notify subscribed clients about it.
the device node again. Secondly, it results an `IN_CLOSE_WRITE` event, which
causes `systemd-udevd` to immediately re-process the device — seeing all
changes the tool made — and notify subscribed clients about it.
Ideally, `systemd-udevd` would explicitly watch block devices for `LOCK_EX`
locks being released. Such monitoring is not supported on Linux however, which
is why it watches for `IN_CLOSE_WRITE` instead, i.e. for `close()` calls to
writable file descriptors referring to the block device. In almost all cases,
the difference between these two events does not matter much, as any locks
taken are implicitly released by `close()`. However, it should be noted that if
an application unlocks a device after completing its work without closing it,
i.e. while keeping the file descriptor open for further, longer time, then
`systemd-udevd` will not notice this and not retrigger and thus reprobe the
device.
Besides synchronizing block device access between `systemd-udevd` and such
tools this scheme may also be used to synchronize access between those tools

View File

@ -114,7 +114,23 @@ We define two directories below `$BOOT`:
**Note:** _In all cases the `/loader/` directory should be located directly in the root of the file system. Specifically, if `$BOOT` is the ESP, then `/loader/` directory should be located directly in the root directory of the ESP, and not in the `/EFI/` subdirectory._
Inside the `$BOOT/loader/entries/` directory each OS vendor may drop one or more configuration snippets with the suffix ".conf", one for each boot menu item. The file name of the file is used for identification of the boot item but shall never be presented to the user in the UI. The file name may be chosen freely but should be unique enough to avoid clashes between OS installations. More specifically it is suggested to include the machine ID (`/etc/machine-id` or the D-Bus machine ID for OSes that lack `/etc/machine-id`), the kernel version (as returned by `uname -r`) and an OS identifier (The ID field of `/etc/os-release`). Example: `$BOOT/loader/entries/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf`.
Inside the `$BOOT/loader/entries/` directory each OS vendor may drop one or
more configuration snippets with the suffix ".conf", one for each boot menu
item. The file name of the file is used for identification of the boot item but
shall never be presented to the user in the UI. The file name may be chosen
freely but should be unique enough to avoid clashes between OS
installations. More specifically it is suggested to include the machine ID
(`/etc/machine-id` or the D-Bus machine ID for OSes that lack
`/etc/machine-id`), the kernel version (as returned by `uname -r`) and an OS
identifier (The ID field of `/etc/os-release`). Example:
`$BOOT/loader/entries/6a9857a393724b7a981ebb5b8495b9ea-3.8.0-2.fc19.x86_64.conf`.
In order to maximize compatibility with file system implementations and
restricted boot loader environments, and to minimize conflicting character use
with other programs, file names shall be chosen from a restricted character set:
ASCII upper and lower case characters, digits, "+", "-", "_" and ".". Also, the
file names should have a length of at least one and at most 255 characters
(including file name suffix).
These configuration snippets shall be Unix-style text files (i.e. line separation with a single newline character), in the UTF-8 encoding. The configuration snippets are loosely inspired on Grub1's configuration syntax. Lines beginning with '#' shall be ignored and used for commenting. The first word of a line is used as key and shall be separated by one or more spaces from its value. The following keys are known:
@ -171,6 +187,10 @@ extension `.efi`. Support for images of this type is of course specific to
systems with EFI firmware. Ignore this section if you work on systems not
supporting EFI.
Type #2 file names should be chosen from the same restricted character set as
Type #1 described above (but use a different file name suffix of `.efi` instead
of `.conf`).
Images of this type have the advantage that all metadata and payload that makes
up the boot entry is monopolized in a single PE file that can be signed
cryptographically as one for the purpose of EFI SecureBoot.

View File

@ -25,6 +25,19 @@ layout: default
note that emacs loads `.dir-locals.el` automatically, but vim needs to be
configured to load `.vimrc`, see that file for instructions.
- If you break a function declaration over multiple lines, do it like this:
```c
void some_function(
int foo,
bool bar,
char baz) {
int a, b, c;
```
(i.e. use double indentation — 16 spaces — for the parameter list.)
- Try to write this:
```c
@ -73,7 +86,27 @@ layout: default
- Do not write functions that clobber call-by-reference variables on
failure. Use temporary variables for these cases and change the passed in
variables only on success.
variables only on success. The rule is: never clobber return parameters on
failure, always initialize return parameters on success.
- Typically, function parameters fit into three categories: input parameters,
mutable objects, and call-by-reference return parameters. Input parameters
should always carry suitable "const" declarators if they are pointers, to
indicate they are input-only and not changed by the function. Return
parameters are best prefixed with "ret_", to clarify they are return
parameters. (Conversely, please do not prefix parameters that aren't
output-only with "ret_", in particular not mutable parameters that are both
input as well as output). Example:
```c
static int foobar_frobnicate(
Foobar* object, /* the associated mutable object */
const char *input, /* immutable input parameter */
char **ret_frobnicated) { /* return parameter */
return 0;
}
```
- The order in which header files are included doesn't matter too
much. systemd-internal headers must not rely on an include order, so it is
@ -285,6 +318,14 @@ layout: default
unlink("/foo/bar/baz");
```
When returning from a `void` function, you may also want to shorten the error
path boilerplate by returning a function invocation cast to `(void)` like so:
```c
if (condition_not_met)
return (void) log_tests_skipped("Cannot run ...");
```
Don't cast function calls to `(void)` that return no error
conditions. Specifically, the various `xyz_unref()` calls that return a
`NULL` object shouldn't be cast to `(void)`, since not using the return value
@ -296,13 +337,16 @@ layout: default
## Logging
- For every function you add, think about whether it is a "logging" function or
a "non-logging" function. "Logging" functions do logging on their own,
"non-logging" function never log on their own and expect their callers to
log. All functions in "library" code, i.e. in `src/shared/` and suchlike must
be "non-logging". Every time a "logging" function calls a "non-logging"
function, it should log about the resulting errors. If a "logging" function
calls another "logging" function, then it should not generate log messages,
so that log messages are not generated twice for the same errors.
a "non-logging" function. "Logging" functions do (non-debug) logging on their
own, "non-logging" function never log on their own (except at debug level)
and expect their callers to log. All functions in "library" code, i.e. in
`src/shared/` and suchlike must be "non-logging". Every time a "logging"
function calls a "non-logging" function, it should log about the resulting
errors. If a "logging" function calls another "logging" function, then it
should not generate log messages, so that log messages are not generated
twice for the same errors. (Note that debug level logging — at syslog level
`LOG_DEBUG` — is not considered logging in this context, debug logging is
generally always fine and welcome.)
- If possible, do a combined log & return operation:
@ -372,7 +416,7 @@ layout: default
broken on Linux).
- When applying C-style unescaping as well as specifier expansion on the same
string, always apply the C-style unescaping fist, followed by the specifier
string, always apply the C-style unescaping first, followed by the specifier
expansion. When doing the reverse, make sure to escape `%` in specifier-style
first (i.e. `%``%%`), and then do C-style escaping where necessary.
@ -529,7 +573,7 @@ layout: default
- Don't use `fgets()`, it's too hard to properly handle errors such as overly
long lines. Use `read_line()` instead, which is our own function that handles
this much nicer.
this much more nicely.
- Don't invoke `exit()`, ever. It is not replacement for proper error
handling. Please escalate errors up your call chain, and use normal `return`

View File

@ -131,6 +131,17 @@ manager, please consider supporting the following interfaces.
`$container_host_variant_id=server`
`$container_host_version_id=10`
5. systemd supports passing immutable binary data blobs with limited size and
restricted access to services via the `LoadCredential=` and `SetCredential=`
settings. The same protocol may be used to pass credentials from the
container manager to systemd itself. The credential data should be placed in
some location (ideally a read-only and non-swappable file system, like
'ramfs'), and the absolute path to this directory exported in the
`$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."
## Advanced Integration
1. Consider syncing `/etc/localtime` from the host file system into the
@ -172,6 +183,13 @@ manager, please consider supporting the following interfaces.
unit they created for their container. That's private property of systemd,
and no other code should modify it.
6. systemd running inside the container can report when boot-up is complete
using the usual `sd_notify()` protocol that is also used when a service
wants to tell the service manager about readiness. A container manager can
set the `$NOTIFY_SOCKET` environment variable to a suitable socket path to
make use of this functionality. (Also see information about
`/run/host/notify` below.)
## Networking
1. Inside of a container, if a `veth` link is named `host0`, `systemd-networkd`
@ -189,6 +207,65 @@ manager, please consider supporting the following interfaces.
devices, for example hashed out of the container names. That way it is more
likely that DHCP and IPv4LL will acquire stable addresses.
## The `/run/host/` Hierarchy
Container managers may place certain resources the manager wants to provide to
the container payload below the `/run/host/` hierarchy. This hierarchy should
be mostly immutable (possibly some subdirs might be writable, but the top-level
hierarchy — and probably most subdirs should be read-only to the
container). Note that this hierarchy is used by various container managers, and
care should be taken to avoid naming conflicts. `systemd` (and in particular
`systemd-nspawn`) use the hierarchy for the following resources:
1. The `/run/host/incoming/` directory mount point is configured for `MS_SLAVE`
mount propagation with the host, and is used as intermediary location for
mounts to establish in the container, for the implementation of `machinectl
bind`. Container payload should usually not directly interact with this
directory: it's used by code outside the container to insert mounts inside
it only, and is mostly an internal vehicle to achieve this. Other container
managers that want to implement similar functionality might consider using
the same directory.
2. The `/run/host/inaccessible/` directory may be set up by the container
manager to include six file nodes: `reg`, `dir`, `fifo`, `sock`, `chr`,
`blk`. These nodes correspond with the six types of file nodes Linux knows
(with the exceptions of symlinks). Each node should be of the specific type
and have an all zero access mode, i.e. be inaccessible. The two device node
types should have major and minor of zero (which are unallocated devices on
Linux). These nodes are used as mount source for implementing the
`InaccessiblePath=` setting of unit files, i.e. file nodes to mask this way
are overmounted with these "inaccessible" inodes, guaranteeing that the file
node type does not change this way but the nodes still become
inaccessible. Note that systemd when run as PID 1 in the container payload
will create these nodes on its own if not passed in by the container
manager. However, in that case it likely lacks the privileges to create the
character and block devices nodes (there are fallbacks for this case).
3. The `/run/host/notify` path is a good choice to place the `sd_notify()`
socket in, that may be used for the container's PID 1 to report to the
container manager when boot-up is complete. The path used for this doesn't
matter much as it is communicated via the `$NOTIFY_SOCKET` environment
variable, following the usual protocol for this, however it's suitable, and
recommended place for this socket in case ready notification is desired.
4. The `/run/host/os-release` file contains the `/etc/os-release` file of the
host, i.e. may be used by the container payload to gather limited
information about the host environment, on top of what `uname -a` reports.
5. The `/run/host/container-manager` file may be used to pass the same
information as the `$container` environment variable (see above), i.e. a
short string identifying the container manager implementation. This file
should be newline terminated. Passing this information via this file has the
benefit that payload code can easily access it, even when running
unprivileged without access to the container PID1's environment block.
6. The `/run/host/container-uuid` file may be used to pass the same information
as the `$container_uuid` environment variable (see above). This file should
be newline terminated.
7. The `/run/host/credentials/` directory is a good place to pass credentials
into the container, using the `$CREDENTIALS_DIRECTORY` protocol, see above.
## What You Shouldn't Do
1. Do not drop `CAP_MKNOD` from the container. `PrivateDevices=` is a commonly

View File

@ -10,8 +10,9 @@ We welcome contributions from everyone. However, please follow the following gui
## Filing Issues
* We use [GitHub Issues](https://github.com/systemd/systemd/issues) **exclusively** for tracking **bugs** and **feature** **requests** of systemd. If you are looking for help, please contact [systemd-devel mailing list](https://lists.freedesktop.org/mailman/listinfo/systemd-devel) instead.
* We use [GitHub Issues](https://github.com/systemd/systemd/issues) **exclusively** for tracking **bugs** and **feature** **requests** (RFEs) of systemd. If you are looking for help, please contact [systemd-devel mailing list](https://lists.freedesktop.org/mailman/listinfo/systemd-devel) instead.
* We only track bugs in the **two** **most** **recently** **released** (non-rc) **versions** of systemd in the GitHub Issue tracker. If you are using an older version of systemd, please contact your distribution's bug tracker instead (see below). See [GitHub Release Page](https://github.com/systemd/systemd/releases) for the list of most recent releases.
* When filing a feature request issue (RFE), please always check first if the newest upstream version of systemd already implements the feature, and whether there's already an issue filed for your feature by someone else.
* When filing an issue, specify the **systemd** **version** you are experiencing the issue with. Also, indicate which **distribution** you are using.
* Please include an explanation how to reproduce the issue you are pointing out.

View File

@ -9,21 +9,21 @@ _TL;DR: Let's automatically discover, mount and enable the root partition,
`/home/`, `/srv/`, `/var/` and `/var/tmp/` and the swap partitions based on
GUID Partition Tables (GPT)!_
The GUID Partition Table (GPT) is mandatory on EFI systems. It allows
identification of partition types with UUIDs. So far Linux has made little use
of this, and mostly just defined one UUID for file system/data partitions and
another one for swap partitions. With this specification, we introduce
additional partition types to enable automatic discovery of partitions and
their intended mountpoint. This has many benefits:
This specification describes the use of GUID Partition Table (GPT) UUIDs to
enable automatic discovery of partitions and their intended mountpoints.
Traditionally Linux has made little use of partition types, mostly just
defining one UUID for file system/data partitions and another one for swap
partitions. With this specification, we introduce additional partition types
for specific uses. This has many benefits:
* OS installers can automatically discover and make sense of partitions of
existing Linux installations.
* The OS can discover and mount the necessary file systems with a non-existing
* The OS can discover and mount the necessary file systems with a non-existent
or incomplete `/etc/fstab` file and without the `root=` kernel command line
option.
* Container managers (such as nspawn and libvirt-lxc) can decode and set up
* Container managers (such as nspawn and libvirt-lxc) can introspect and set up
file systems contained in GPT disk images automatically and mount them to the
right places, thus allowing booting the same, identical images on bare-metal
right places, thus allowing booting the same, identical images on bare metal
and in Linux containers. This enables true, natural portability of disk
images between physical machines and Linux containers.
* As a help to administrators and users partition manager tools can show more
@ -31,7 +31,7 @@ their intended mountpoint. This has many benefits:
Note that the OS side of this specification is currently implemented in
[systemd](http://systemd.io/) 211 and newer in the
[systemd-auto-gpt-generator(8)](http://www.freedesktop.org/software/systemd/man/systemd-gpt-auto-generator.html)
[systemd-gpt-auto-generator(8)](http://www.freedesktop.org/software/systemd/man/systemd-gpt-auto-generator.html)
generator tool. Note that automatic discovery of the root only works if the
boot loader communicates this information to the OS, by implementing the [Boot
Loader
@ -51,6 +51,16 @@ Interface](https://systemd.io/BOOT_LOADER_INTERFACE).
| `7386cdf2-203c-47a9-a498-f2ecce45a2d6` | _Root Verity Partition (32-bit ARM)_ | ditto | ditto |
| `df3300ce-d69f-4c92-978c-9bfb0f38d820` | _Root Verity Partition (64-bit ARM/AArch64)_ | ditto | ditto |
| `86ed10d5-b607-45bb-8957-d350f23d0571` | _Root Verity Partition (Itanium/IA-64)_ | ditto | ditto |
| `75250d76-8cc6-458e-bd66-bd47cc81a812` | _`/usr/` Partition (x86)_ | Any native, optionally in LUKS | Similar semantics to root partition, but just the `/usr/` partition. |
| `8484680c-9521-48c6-9c11-b0720656f69e` | _`/usr/` Partition (x86-64)_ | ditto | ditto |
| `7d0359a3-02b3-4f0a-865c-654403e70625` | _`/usr/` Partition (32-bit ARM)_ | ditto | ditto |
| `b0e01050-ee5f-4390-949a-9101b17104e9` | _`/usr/` Partition (64-bit ARM/AArch64)_ | ditto | ditto |
| `4301d2a6-4e3b-4b2a-bb94-9e0b2c4225ea` | _`/usr/` Partition (Itanium/IA-64)_ | 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. |
| `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 |
| `6a491e03-3be7-4545-8e38-83320e0ea880` | _`/usr/` Verity Partition (Itanium/IA-64)_ | ditto | ditto |
| `933ac7e1-2eb4-4f13-b844-0e14e2aef915` | _Home Partition_ | Any native, optionally in LUKS | The first partition with this type UUID on the disk containing the root partition is automatically mounted to `/home/`. If the partition is encrypted with LUKS, the device mapper file will be named `/dev/mapper/home`. |
| `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`. |
@ -64,7 +74,7 @@ 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
this specification.
[systemd-id128(1)](http://www.freedesktop.org/software/systemd/man/systemd-i128.html)
[systemd-id128(1)](http://www.freedesktop.org/software/systemd/man/systemd-id128.html)
may be used to list those UUIDs.
## Partition Names
@ -76,21 +86,21 @@ localized.
## Partition Flags
For the root, server data, home, variable data, temporary data and swap
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.
For the root, 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.
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.
Note that these two flag definitions happen to map nicely to the ones used by
Microsoft Basic Data Partitions.
@ -104,8 +114,8 @@ An *installer* which supports a "manual partitioning" interface _may_ choose to
pre-populate the interface with swap, `/home/`, `/srv/`, `/var/tmp/` partitions
of pre-existing Linux installations, identified with the GPT type UUIDs
above. The installer should not pre-populate such an interface with any
identified root or `/var/` partition unless the intention is to overwrite an
existing operating system that might be installed.
identified root, `/usr` or `/var/` partition unless the intention is to
overwrite an existing operating system that might be installed.
An *installer* _may_ omit creating entries in `/etc/fstab` for root, `/home/`,
`/srv/`, `/var/`, `/var/tmp` and for the swap partitions if they use these UUID
@ -119,17 +129,17 @@ in `/etc/fstab`. The `root=` parameter passed to the kernel by the boot loader
may be omitted if the root partition is the first one on the disk of its type.
If the root partition is not the first one on the disk, the `root=` parameter
_must_ be passed to the kernel by the boot loader. An installer that mounts a
root, `/home/`, `/srv/`, `/var/`, or `/var/tmp/` file system with the partition
types defined as above which contains a LUKS header _must_ call the device
mapper device "root", "home", "srv", "var" or "tmp", respectively. This is
necessary to ensure that the automatic discovery will never result in different
device mapper names than any static configuration by the installer, thus
eliminating possible naming conflicts and ambiguities.
root, `/usr/`, `/home/`, `/srv/`, `/var/`, or `/var/tmp/` file system with the
partition types defined as above which contains a LUKS header _must_ call the
device mapper device "root", "usr", "home", "srv", "var" or "tmp",
respectively. This is necessary to ensure that the automatic discovery will
never result in different device mapper names than any static configuration by
the installer, thus eliminating possible naming conflicts and ambiguities.
An *operating* *system* _should_ automatically discover and mount the first
root partition that does not have the no-auto flag set (as described above) by
scanning the disk containing the currently used EFI ESP. It _should_
automatically discover and mount the first `/home/`, `/srv/`, `/var/`,
automatically discover and mount the first `/usr/`, `/home/`, `/srv/`, `/var/`,
`/var/tmp/` and swap partitions that do not have the no-auto flag set by
scanning the disk containing the discovered root partition. It should
automatically discover and mount the partition containing the currently used
@ -138,19 +148,19 @@ and mount the partition containing the currently used Extended Boot Loader
Partition to `/boot/`. It _should not_ discover or automatically mount
partitions with other UUID partition types, or partitions located on other
disks, or partitions with the no-auto flag set. User configuration shall
always override automatic discovery and mounting. If a root, `/home/`,
`/srv/`, `/boot/`, `/var/`, `/var/tmp/`, `/efi/`, `/boot/` or swap 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/`,
`/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.
always override automatic discovery and mounting. If a root, `/usr/`,
`/home/`, `/srv/`, `/boot/`, `/var/`, `/var/tmp/`, `/efi/`, `/boot/` or swap
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.
A *container* *manager* should automatically discover and mount the root,
`/home/`, `/srv/`, `/var/`, `/var/tmp/` partitions inside a container disk
image. It may choose to mount any discovered ESP and/or XBOOOTLDR partition to
`/efi/` or `/boot/`. It should ignore any swap should they be included in a
container disk image.
`/usr/`, `/home/`, `/srv/`, `/var/`, `/var/tmp/` partitions inside a container
disk image. It may choose to mount any discovered ESP and/or XBOOOTLDR
partition to `/efi/` or `/boot/`. It should ignore any swap should they be
included in a container disk image.
If a btrfs file system is automatically discovered and mounted by the operating
system/container manager it will be mounted with its *default* subvolume. The
@ -161,8 +171,8 @@ subvolume set-default".
If two Linux-based operating systems are installed on the same disk, the scheme
above suggests that they may share the swap, `/home/`, `/srv/`, `/var/tmp/`,
ESP, XBOOTLDR. However, they should each have their own root and `/var/`
partition.
ESP, XBOOTLDR. However, they should each have their own root, `/usr/` and
`/var/` partition.
## Frequently Asked Questions

View File

@ -80,6 +80,16 @@ All tools:
honoured on systems built with libxcrypt and is ignored on systems using
glibc's original, internal crypt() implementation.)
* `$SYSTEMD_RDRAND=0` — if set, the RDRAND instruction will never be used,
even if the CPU supports it.
* `$SYSTEMD_SECCOMP=0` if set, seccomp filters will not be enforced, even if
support for it is compiled in and available in the kernel.
* `$SYSTEMD_LOG_SECCOMP=1` — if set, system calls blocked by seccomp filtering,
for example in systemd-nspawn, will be logged to the audit log, if the current
kernel version supports this.
systemctl:
* `$SYSTEMCTL_FORCE_BUS=1` — if set, do not connect to PID1's private D-Bus

View File

@ -22,6 +22,10 @@ UNIX/glibc NSS `struct group`, or the shadow structure `struct sgrp`'s
`realm` → The "realm" the group belongs to, conceptually identical to the same
field of user records. A string in DNS domain name syntax.
`description` → A descriptive string for the group. This is similar to the
`realName` field of user records, and accepts arbitrary strings, as long as
they follow the same GECOS syntax requirements as `realName`.
`disposition` → The disposition of the group, conceptually identical to the
same field of user records. A string.

View File

@ -99,6 +99,13 @@ And after that, head over to your repo on GitHub and click "Compare & pull reque
Happy hacking!
## 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`.
## Fuzzers
systemd includes fuzzers in `src/fuzz/` that use libFuzzer and are automatically

View File

@ -196,8 +196,8 @@ The currently used part of the file is the **header_size** plus the
**arena_size** field of the header. If a writer needs to write to a file where
the actual file size on disk is smaller than the reported value it shall
immediately rotate the file and start a new one. If a writer is asked to write
to a file with a header that is shorter than his own definition of the struct
Header, he shall immediately rotate the file and start a new one.
to a file with a header that is shorter than its own definition of the struct
Header, it shall immediately rotate the file and start a new one.
The **n_objects** field contains a counter for objects currently available in
this file. As objects are appended to the end of the file this counter is

View File

@ -82,7 +82,7 @@ And now, here's the list of (hopefully) all APIs that we have introduced with sy
| [hostnamed](https://www.freedesktop.org/wiki/Software/systemd/hostnamed) | D-Bus | yes | yes | GNOME | yes | [Ubuntu](https://launchpad.net/ubuntu/+source/ubuntu-system-service), [Gentoo](http://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially |
| [localed](https://www.freedesktop.org/wiki/Software/systemd/localed) | D-Bus | yes | yes | GNOME | yes | [Ubuntu](https://launchpad.net/ubuntu/+source/ubuntu-system-service), [Gentoo](http://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially |
| [timedated](https://www.freedesktop.org/wiki/Software/systemd/timedated) | D-Bus | yes | yes | GNOME | yes | [Gentoo](http://www.gentoo.org/proj/en/desktop/gnome/openrc-settingsd.xml), [BSD](http://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git;a=summary) | partially |
| [initrd interface](https://www.freedesktop.org/wiki/Software/systemd/InitrdInterface) | Environment, flag files | yes | yes | dracut, ArchLinux | yes | ArchLinux | no |
| [initrd interface](https://systemd.io/INITRD_INTERFACE/) | Environment, flag files | yes | yes | dracut, ArchLinux | yes | ArchLinux | no |
| [Container interface](https://systemd.io/CONTAINER_INTERFACE) | Environment, Mounts | yes | yes | libvirt/LXC | yes | - | no |
| [Boot Loader interface](https://systemd.io/BOOT_LOADER_INTERFACE) | EFI variables | yes | yes | gummiboot | yes | - | no |
| [Service bus API](https://www.freedesktop.org/wiki/Software/systemd/dbus) | D-Bus | yes | yes | system-config-services | no | - | no |
@ -94,15 +94,15 @@ And now, here's the list of (hopefully) all APIs that we have introduced with sy
| [$XDG_RUNTIME_DIR](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) | Environment | yes | yes | glib, GNOME | yes | - | no |
| [$LISTEN_FDS $LISTEN_PID FD Passing](https://www.freedesktop.org/software/systemd/man/sd_listen_fds.html) | Environment | yes | yes | numerous (via sd-daemon.h) | yes | - | no |
| [$NOTIFY_SOCKET Daemon Notifications](https://www.freedesktop.org/software/systemd/man/sd_notify.html) | Environment | yes | yes | a few, including udev | yes | - | no |
| [argv&#91;0&#93;&#91;0&#93;='@' Logic](https://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons) | `/proc` marking | yes | yes | mdadm | yes | - | no |
| [argv&#91;0&#93;&#91;0&#93;='@' Logic](https://systemd.io/ROOT_STORAGE_DAEMONS/) | `/proc` marking | yes | yes | mdadm | yes | - | no |
| [Unit file format](https://www.freedesktop.org/software/systemd/man/systemd.unit.html) | File format | yes | yes | numerous | no | - | no |
| [Network](https://www.freedesktop.org/software/systemd/man/systemd.network.html) & [Netdev file format](https://www.freedesktop.org/software/systemd/man/systemd.netdev.html) | File format | yes | yes | no | no | - | no |
| [Link file format](https://www.freedesktop.org/software/systemd/man/systemd.link.html) | File format | yes | yes | no | no | - | no |
| [Journal File Format](https://systemd.io/JOURNAL_FILE_FORMAT) | File format | yes | yes | - | maybe | - | no |
| [Journal Export Format](https://www.freedesktop.org/wiki/Software/systemd/export) | File format | yes | yes | - | yes | - | no |
| [Cooperation in cgroup tree](https://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups) | Treaty | yes | yes | libvirt | yes | libvirt | no |
| [Password Agents](https://www.freedesktop.org/wiki/Software/systemd/PasswordAgents) | Socket+Files | yes | yes | - | yes | - | no |
| [udev multi-seat properties](https://www.freedesktop.org/wiki/Software/systemd/multiseat) | udev Property | yes | yes | X11, gdm | no | - | no |
| [Password Agents](https://systemd.io/PASSWORD_AGENTS/) | Socket+Files | yes | yes | - | yes | - | no |
| [udev multi-seat properties](https://www.freedesktop.org/software/systemd/man/sd-login.html) | udev Property | yes | yes | X11, gdm | no | - | no |
| udev session switch ACL properties | udev Property | no | no | - | no | - | no |
| [CLI of systemctl,...](https://www.freedesktop.org/software/systemd/man/systemctl.html) | CLI | yes | yes | numerous | no | - | no |
| [tmpfiles.d](https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html) | File format | yes | yes | numerous | yes | ArchLinux | partially |

View File

@ -10,12 +10,13 @@ layout: default
2. Update the contributors list in NEWS (`ninja -C build git-contrib`)
3. Update the time and place in NEWS
4. Update version and library numbers in `meson.build`
5. Tag the release: `version=vXXX-rcY && git tag -s "${version}" -m "systemd ${version}"`
6. Do `ninja -C build`
7. Make sure that the version string and package string match: `build/systemctl --version`
8. Upload the documentation: `ninja -C build doc-sync`
9. [After final release] Close the github milestone and open a new one (https://github.com/systemd/systemd/milestones)
10. "Draft" a new release on github (https://github.com/systemd/systemd/releases/new), mark "This is a pre-release" if appropriate.
11. Check that announcement to systemd-devel, with a copy&paste from NEWS, was sent. This should happen automatically.
12. Update IRC topic (`/msg chanserv TOPIC #systemd Version NNN released`)
13. [After final release] Also push commits to stable, create an empty -stable branch: `git push systemd-stable origin/master:master origin/master:refs/heads/${version}-stable`, and change the default branch to latest release (https://github.com/systemd/systemd-stable/settings/branches).
5. Check dbus docs with `ninja -C build man/update-dbus-docs`
6. Tag the release: `version=vXXX-rcY && git tag -s "${version}" -m "systemd ${version}"`
7. Do `ninja -C build`
8. Make sure that the version string and package string match: `build/systemctl --version`
9. Upload the documentation: `ninja -C build doc-sync`
10. [After final release] Close the github milestone and open a new one (https://github.com/systemd/systemd/milestones)
11. "Draft" a new release on github (https://github.com/systemd/systemd/releases/new), mark "This is a pre-release" if appropriate.
12. Check that announcement to systemd-devel, with a copy&paste from NEWS, was sent. This should happen automatically.
13. Update IRC topic (`/msg chanserv TOPIC #systemd Version NNN released`)
14. [After final release] Also push commits to stable, create an empty -stable branch: `git push systemd-stable origin/master:master origin/master:refs/heads/${version}-stable`, and change the default branch to latest release (https://github.com/systemd/systemd-stable/settings/branches).

View File

@ -108,9 +108,9 @@ to find a different solution to your problem._
The recommended way to distinguish between run-from-initrd and run-from-rootfs
for a daemon is to check for `/etc/initrd-release` (which exists on all modern
initrd implementations, see the [initrd
Interface](http://www.freedesktop.org/wiki/Software/systemd/InitrdInterface)
for details) which when exists results in `argv[0][0]` being set to `@`, and
otherwise doesn't. Something like this:
Interface](https://systemd.io/INITRD_INTERFACE/) for details) which when exists
results in `argv[0][0]` being set to `@`, and otherwise doesn't. Something like
this:
```c
#include <unistd.h>

View File

@ -1,10 +1,10 @@
---
title: Using /tmp/ And /var/tmp/ Safely
title: Using /tmp/ and /var/tmp/ Safely
category: Interfaces
layout: default
---
# Using `/tmp/` And `/var/tmp/` Safely
# Using `/tmp/` and `/var/tmp/` Safely
`/tmp/` and `/var/tmp/` are two world-writable directories Linux systems
provide for temporary files. The former is typically on `tmpfs` and thus

View File

@ -151,9 +151,12 @@ All execution-related settings are available for transient units.
✓ TimerSlackNSec=
✓ NoNewPrivileges=
✓ KeyringMode=
✓ ProtectProc=
✓ ProcSubset=
✓ SystemCallFilter=
✓ SystemCallArchitectures=
✓ SystemCallErrorNumber=
✓ SystemCallLog=
✓ MemoryDenyWriteExecute=
✓ RestrictNamespaces=
✓ RestrictRealtime=
@ -267,6 +270,9 @@ All cgroup/resource control settings are available for transient units
✓ IPAccounting=
✓ IPAddressAllow=
✓ IPAddressDeny=
✓ ManagedOOMSwap=
✓ ManagedOOMMemoryPressure=
✓ ManagedOOMMemoryPressureLimitPercent=
```
## Process Killing Settings
@ -368,6 +374,7 @@ Most timer unit settings are available to transient units.
✓ RemainAfterElapse=
✓ AccuracySec=
✓ RandomizedDelaySec=
✓ FixedRandomDelay=
Unit=
```
@ -413,6 +420,7 @@ Most socket unit settings are available to transient units.
✓ SocketMode=
✓ DirectoryMode=
✓ Accept=
✓ FlushPending=
✓ Writable=
✓ MaxConnections=
✓ MaxConnectionsPerSource=

View File

@ -171,10 +171,11 @@ pick — given that 64K UIDs are assigned to each container according to this
allocation logic, the maximum UID used for this range is hence
1878982656+65535=1879048191.)
Note that systemd does not make any of these values runtime-configurable. All
these boundaries are chosen during build time. That said, the system UID/GID
boundary is traditionally configured in /etc/login.defs, though systemd won't
look there during runtime.
Systemd has compile-time default for these boundaries. Using those defaults is
recommended. It will nevertheless query `/etc/login.defs` at runtime, when
compiled with `-Dcompat-mutable-uid-boundaries=true` and that file is present.
Support for this is considered only a compatibility feature and should not be
used except when upgrading systems which were creating with different defaults.
## Considerations for container managers

View File

@ -221,12 +221,14 @@ optional, when unset the user should not be considered part of any realm. A
user record with a realm set is never compatible (for the purpose of updates,
see above) with a user record without one set, even if the `userName` field matches.
`realName` → The real name of the user, a string. This should contain the user's
real ("human") name, and corresponds loosely to the GECOS field of classic UNIX
user records. When converting a `struct passwd` to a JSON user record this
field is initialized from GECOS (i.e. the `pw_gecos` field), and vice versa
when converting back. That said, unlike GECOS this field is supposed to contain
only the real name and no other information.
`realName` → The real name of the user, a string. This should contain the
user's real ("human") name, and corresponds loosely to the GECOS field of
classic UNIX user records. When converting a `struct passwd` to a JSON user
record this field is initialized from GECOS (i.e. the `pw_gecos` field), and
vice versa when converting back. That said, unlike GECOS this field is supposed
to contain only the real name and no other information. This field must not
contain control characters (such as `\n`) or colons (`:`), since those are used
as record separators in classic `/etc/passwd` files and similar formats.
`emailAddress` → The email address of the user, formatted as
string. [`pam_systemd`](https://www.freedesktop.org/software/systemd/man/pam_systemd.html)
@ -551,6 +553,11 @@ credential ID that shell be used for authentication with FIDO2 devices that
implement the `hmac-secret` extension. The salt to pass to the FIDO2 device is
found in `fido2HmacSalt`.
`recoveryKeyType` → An array of strings, each indicating the type of one
recovery key. The only supported recovery key type at the moment is `modhex64`,
for details see the description of `recoveryKey` below. An account may have any
number of recovery keys defined, and the array should have one entry for each.
`privileged` → An object, which contains the fields of the `privileged` section
of the user record, see below.
@ -630,6 +637,25 @@ 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
currently permitted value is the string `modhex64`. The `hashedPassword` field
contains a UNIX password hash of the normalized recovery key. Recovery keys are
in most ways similar to regular passwords, except that they are generated by
the computer, not chosen by the user, and are longer. Currently, the only
supported recovery key format is `modhex64`, which consists of 64
[modhex](https://developers.yubico.com/yubico-c/Manuals/modhex.1.html)
characters (i.e. 256bit of information), in groups of 8 chars separated by
dashes,
e.g. `lhkbicdj-trbuftjv-tviijfck-dfvbknrh-uiulbhui-higltier-kecfhkbk-egrirkui`. Recovery
keys should be accepted wherever regular passwords are. The `recoveryKey` field
should always be accompanied by a `recoveryKeyType` field (see above), and each
entry in either should map 1:1 to an entry in the other, in the same order and
matching the type. When accepting a recovery key it should be brought
automatically into normalized form, i.e. the dashes inserted when missing, and
converted into lowercase before tested against the UNIX password hash, so that
recovery keys are effectively case-insensitive.
## Fields in the `perMachine` section
As mentioned, the `perMachine` section contains settings that shall apply to

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
file = configure_file(
input : 'README.in',

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
if conf.get('HAVE_SYSV_COMPAT') == 1 and get_option('create-log-dirs')
install_data('README',

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -177,6 +177,9 @@ acpi:LNRO*:
acpi:LNUX*:
ID_VENDOR_FROM_DATABASE=The Linux Foundation
acpi:LOON*:
ID_VENDOR_FROM_DATABASE=Loongson Technology Corporation Limited
acpi:MCHP*:
ID_VENDOR_FROM_DATABASE=Microchip Technology Inc
@ -222,6 +225,9 @@ acpi:PEGA*:
acpi:PHYT*:
ID_VENDOR_FROM_DATABASE=Phytium Technology Co. Ltd.
acpi:PIXA*:
ID_VENDOR_FROM_DATABASE=PixArt imaging inc.
acpi:QCOM*:
ID_VENDOR_FROM_DATABASE=Qualcomm Inc
@ -259,7 +265,7 @@ acpi:TCAG*:
ID_VENDOR_FROM_DATABASE=Teracue AG
acpi:TOSB*:
ID_VENDOR_FROM_DATABASE=Toshiba Corporation
ID_VENDOR_FROM_DATABASE=Dynabook Inc.
acpi:TXNW*:
ID_VENDOR_FROM_DATABASE=Texas Instruments
@ -1359,6 +1365,9 @@ acpi:CET*:
acpi:CFG*:
ID_VENDOR_FROM_DATABASE=Atlantis
acpi:CFR*:
ID_VENDOR_FROM_DATABASE=Meta View, Inc.
acpi:CGA*:
ID_VENDOR_FROM_DATABASE=Chunghwa Picture Tubes, LTD
@ -1485,6 +1494,9 @@ acpi:CMG*:
acpi:CMI*:
ID_VENDOR_FROM_DATABASE=C-Media Electronics
acpi:CMK*:
ID_VENDOR_FROM_DATABASE=Comark LLC
acpi:CMM*:
ID_VENDOR_FROM_DATABASE=Comtime GmbH
@ -4425,6 +4437,9 @@ acpi:MKT*:
acpi:MKV*:
ID_VENDOR_FROM_DATABASE=Trtheim Technology
acpi:MLC*:
ID_VENDOR_FROM_DATABASE=MILCOTS
acpi:MLD*:
ID_VENDOR_FROM_DATABASE=Deep Video Imaging Ltd
@ -4527,6 +4542,9 @@ acpi:MPN*:
acpi:MPS*:
ID_VENDOR_FROM_DATABASE=mps Software GmbH
acpi:MPV*:
ID_VENDOR_FROM_DATABASE=Megapixel Visual Realty
acpi:MPX*:
ID_VENDOR_FROM_DATABASE=Micropix Technologies, Ltd.
@ -4989,6 +5007,9 @@ acpi:NXQ*:
acpi:NXS*:
ID_VENDOR_FROM_DATABASE=Technology Nexus Secure Open Systems AB
acpi:NXT*:
ID_VENDOR_FROM_DATABASE=NZXT (PNP same EDID)_
acpi:NYC*:
ID_VENDOR_FROM_DATABASE=Nakayo Relecommunications, Inc.
@ -6150,6 +6171,9 @@ acpi:SKM*:
acpi:SKT*:
ID_VENDOR_FROM_DATABASE=Samsung Electro-Mechanics Company Ltd
acpi:SKW*:
ID_VENDOR_FROM_DATABASE=Skyworth
acpi:SKY*:
ID_VENDOR_FROM_DATABASE=SKYDATA S.P.A.
@ -6829,7 +6853,7 @@ acpi:TOP*:
ID_VENDOR_FROM_DATABASE=Orion Communications Co., Ltd.
acpi:TOS*:
ID_VENDOR_FROM_DATABASE=Toshiba Corporation
ID_VENDOR_FROM_DATABASE=Dynabook Inc.
acpi:TOU*:
ID_VENDOR_FROM_DATABASE=Touchstone Technology
@ -7167,6 +7191,9 @@ acpi:USI*:
acpi:USR*:
ID_VENDOR_FROM_DATABASE=U.S. Robotics Inc
acpi:UTC*:
ID_VENDOR_FROM_DATABASE=Unicompute Technology Co., Ltd.
acpi:UTD*:
ID_VENDOR_FROM_DATABASE=Up to Date Tech

View File

@ -1,5 +1,5 @@
--- 20-acpi-vendor.hwdb.base 2020-07-23 17:21:29.955652649 +0200
+++ 20-acpi-vendor.hwdb 2020-07-23 17:21:29.974652774 +0200
--- 20-acpi-vendor.hwdb.base 2020-11-10 14:13:39.257693009 +0100
+++ 20-acpi-vendor.hwdb 2020-11-10 14:13:39.264693047 +0100
@@ -3,6 +3,8 @@
# Data imported from:
# https://uefi.org/uefi-pnp-export
@ -19,7 +19,7 @@
acpi:AMDI*:
ID_VENDOR_FROM_DATABASE=AMD
@@ -289,6 +288,9 @@
@@ -295,6 +294,9 @@
acpi:AAA*:
ID_VENDOR_FROM_DATABASE=Avolites Ltd
@ -29,7 +29,7 @@
acpi:AAE*:
ID_VENDOR_FROM_DATABASE=Anatek Electronics Inc.
@@ -316,6 +318,9 @@
@@ -322,6 +324,9 @@
acpi:ABO*:
ID_VENDOR_FROM_DATABASE=D-Link Systems Inc
@ -39,7 +39,7 @@
acpi:ABS*:
ID_VENDOR_FROM_DATABASE=Abaco Systems, Inc.
@@ -361,7 +366,7 @@
@@ -367,7 +372,7 @@
acpi:ACO*:
ID_VENDOR_FROM_DATABASE=Allion Computer Inc.
@ -48,7 +48,7 @@
ID_VENDOR_FROM_DATABASE=Aspen Tech Inc
acpi:ACR*:
@@ -634,6 +639,9 @@
@@ -640,6 +645,9 @@
acpi:AMT*:
ID_VENDOR_FROM_DATABASE=AMT International Industry
@ -58,7 +58,7 @@
acpi:AMX*:
ID_VENDOR_FROM_DATABASE=AMX LLC
@@ -682,6 +690,9 @@
@@ -688,6 +696,9 @@
acpi:AOA*:
ID_VENDOR_FROM_DATABASE=AOpen Inc.
@ -68,7 +68,7 @@
acpi:AOE*:
ID_VENDOR_FROM_DATABASE=Advanced Optics Electronics, Inc.
@@ -691,6 +702,9 @@
@@ -697,6 +708,9 @@
acpi:AOT*:
ID_VENDOR_FROM_DATABASE=Alcatel
@ -78,7 +78,7 @@
acpi:APC*:
ID_VENDOR_FROM_DATABASE=American Power Conversion
@@ -866,7 +880,7 @@
@@ -872,7 +886,7 @@
ID_VENDOR_FROM_DATABASE=Alps Electric Inc
acpi:AUO*:
@ -87,7 +87,7 @@
acpi:AUR*:
ID_VENDOR_FROM_DATABASE=Aureal Semiconductor
@@ -946,6 +960,9 @@
@@ -952,6 +966,9 @@
acpi:AXE*:
ID_VENDOR_FROM_DATABASE=Axell Corporation
@ -97,7 +97,7 @@
acpi:AXI*:
ID_VENDOR_FROM_DATABASE=American Magnetics
@@ -1096,6 +1113,9 @@
@@ -1102,6 +1119,9 @@
acpi:BML*:
ID_VENDOR_FROM_DATABASE=BIOMED Lab
@ -107,7 +107,7 @@
acpi:BMS*:
ID_VENDOR_FROM_DATABASE=BIOMEDISYS
@@ -1108,6 +1128,9 @@
@@ -1114,6 +1134,9 @@
acpi:BNO*:
ID_VENDOR_FROM_DATABASE=Bang & Olufsen
@ -117,7 +117,7 @@
acpi:BNS*:
ID_VENDOR_FROM_DATABASE=Boulder Nonlinear Systems
@@ -1348,6 +1371,9 @@
@@ -1357,6 +1380,9 @@
acpi:CHA*:
ID_VENDOR_FROM_DATABASE=Chase Research PLC
@ -127,7 +127,7 @@
acpi:CHD*:
ID_VENDOR_FROM_DATABASE=ChangHong Electric Co.,Ltd
@@ -1501,6 +1527,9 @@
@@ -1513,6 +1539,9 @@
acpi:COD*:
ID_VENDOR_FROM_DATABASE=CODAN Pty. Ltd.
@ -137,7 +137,7 @@
acpi:COI*:
ID_VENDOR_FROM_DATABASE=Codec Inc.
@@ -1907,7 +1936,7 @@
@@ -1919,7 +1948,7 @@
ID_VENDOR_FROM_DATABASE=Dragon Information Technology
acpi:DJE*:
@ -146,7 +146,7 @@
acpi:DJP*:
ID_VENDOR_FROM_DATABASE=Maygay Machines, Ltd
@@ -2239,6 +2268,9 @@
@@ -2251,6 +2280,9 @@
acpi:EIN*:
ID_VENDOR_FROM_DATABASE=Elegant Invention
@ -156,7 +156,7 @@
acpi:EKA*:
ID_VENDOR_FROM_DATABASE=MagTek Inc.
@@ -2500,6 +2532,9 @@
@@ -2512,6 +2544,9 @@
acpi:FCG*:
ID_VENDOR_FROM_DATABASE=First International Computer Ltd
@ -166,7 +166,7 @@
acpi:FCS*:
ID_VENDOR_FROM_DATABASE=Focus Enhancements, Inc.
@@ -2873,7 +2908,7 @@
@@ -2885,7 +2920,7 @@
ID_VENDOR_FROM_DATABASE=General Standards Corporation
acpi:GSM*:
@ -175,7 +175,7 @@
acpi:GSN*:
ID_VENDOR_FROM_DATABASE=Grandstream Networks, Inc.
@@ -2974,6 +3009,9 @@
@@ -2986,6 +3021,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
@@ -3103,6 +3141,9 @@
@@ -3115,6 +3153,9 @@
acpi:HSD*:
ID_VENDOR_FROM_DATABASE=HannStar Display Corp
@ -195,7 +195,7 @@
acpi:HSM*:
ID_VENDOR_FROM_DATABASE=AT&T Microelectronics
@@ -3226,6 +3267,9 @@
@@ -3238,6 +3279,9 @@
acpi:ICI*:
ID_VENDOR_FROM_DATABASE=Infotek Communication Inc
@ -205,7 +205,7 @@
acpi:ICM*:
ID_VENDOR_FROM_DATABASE=Intracom SA
@@ -3322,6 +3366,9 @@
@@ -3334,6 +3378,9 @@
acpi:IKE*:
ID_VENDOR_FROM_DATABASE=Ikegami Tsushinki Co. Ltd.
@ -215,7 +215,7 @@
acpi:IKS*:
ID_VENDOR_FROM_DATABASE=Ikos Systems Inc
@@ -3367,6 +3414,9 @@
@@ -3379,6 +3426,9 @@
acpi:IMT*:
ID_VENDOR_FROM_DATABASE=Inmax Technology Corporation
@ -225,7 +225,7 @@
acpi:INA*:
ID_VENDOR_FROM_DATABASE=Inventec Corporation
@@ -3874,6 +3924,9 @@
@@ -3886,6 +3936,9 @@
acpi:LAN*:
ID_VENDOR_FROM_DATABASE=Sodeman Lancom Inc
@ -235,7 +235,7 @@
acpi:LAS*:
ID_VENDOR_FROM_DATABASE=LASAT Comm. A/S
@@ -3919,6 +3972,9 @@
@@ -3931,6 +3984,9 @@
acpi:LED*:
ID_VENDOR_FROM_DATABASE=Long Engineering Design Inc
@ -245,7 +245,7 @@
acpi:LEG*:
ID_VENDOR_FROM_DATABASE=Legerity, Inc
@@ -3934,6 +3990,9 @@
@@ -3946,6 +4002,9 @@
acpi:LGC*:
ID_VENDOR_FROM_DATABASE=Logic Ltd
@ -255,7 +255,7 @@
acpi:LGI*:
ID_VENDOR_FROM_DATABASE=Logitech Inc
@@ -3988,6 +4047,9 @@
@@ -4000,6 +4059,9 @@
acpi:LND*:
ID_VENDOR_FROM_DATABASE=Land Computer Company Ltd
@ -265,7 +265,7 @@
acpi:LNK*:
ID_VENDOR_FROM_DATABASE=Link Tech Inc
@@ -4022,7 +4084,7 @@
@@ -4034,7 +4096,7 @@
ID_VENDOR_FROM_DATABASE=Design Technology
acpi:LPL*:
@ -274,7 +274,7 @@
acpi:LSC*:
ID_VENDOR_FROM_DATABASE=LifeSize Communications
@@ -4198,6 +4260,9 @@
@@ -4210,6 +4272,9 @@
acpi:MCX*:
ID_VENDOR_FROM_DATABASE=Millson Custom Solutions Inc.
@ -284,7 +284,7 @@
acpi:MDA*:
ID_VENDOR_FROM_DATABASE=Media4 Inc
@@ -4435,6 +4500,9 @@
@@ -4450,6 +4515,9 @@
acpi:MOM*:
ID_VENDOR_FROM_DATABASE=Momentum Data Systems
@ -294,7 +294,7 @@
acpi:MOS*:
ID_VENDOR_FROM_DATABASE=Moses Corporation
@@ -4660,6 +4728,9 @@
@@ -4678,6 +4746,9 @@
acpi:NAL*:
ID_VENDOR_FROM_DATABASE=Network Alchemy
@ -304,7 +304,7 @@
acpi:NAT*:
ID_VENDOR_FROM_DATABASE=NaturalPoint Inc.
@@ -5164,6 +5235,9 @@
@@ -5185,6 +5256,9 @@
acpi:PCX*:
ID_VENDOR_FROM_DATABASE=PC Xperten
@ -314,7 +314,7 @@
acpi:PDM*:
ID_VENDOR_FROM_DATABASE=Psion Dacom Plc.
@@ -5227,9 +5301,6 @@
@@ -5248,9 +5322,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
@@ -5317,9 +5388,6 @@
@@ -5338,9 +5409,6 @@
acpi:PNL*:
ID_VENDOR_FROM_DATABASE=Panelview, Inc.
@ -334,7 +334,7 @@
acpi:PNR*:
ID_VENDOR_FROM_DATABASE=Planar Systems, Inc.
@@ -5455,15 +5523,9 @@
@@ -5476,15 +5544,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
@@ -5779,9 +5841,6 @@
@@ -5800,9 +5862,6 @@
acpi:RTI*:
ID_VENDOR_FROM_DATABASE=Rancho Tech Inc
@ -360,7 +360,7 @@
acpi:RTL*:
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd
@@ -5947,9 +6006,6 @@
@@ -5968,9 +6027,6 @@
acpi:SEE*:
ID_VENDOR_FROM_DATABASE=SeeColor Corporation
@ -370,7 +370,7 @@
acpi:SEI*:
ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc
@@ -6406,6 +6462,9 @@
@@ -6430,6 +6486,9 @@
acpi:SVD*:
ID_VENDOR_FROM_DATABASE=SVD Computer
@ -380,7 +380,7 @@
acpi:SVI*:
ID_VENDOR_FROM_DATABASE=Sun Microsystems
@@ -6490,6 +6549,9 @@
@@ -6514,6 +6573,9 @@
acpi:SZM*:
ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd
@ -390,7 +390,7 @@
acpi:TAA*:
ID_VENDOR_FROM_DATABASE=Tandberg
@@ -6580,6 +6642,9 @@
@@ -6604,6 +6666,9 @@
acpi:TDG*:
ID_VENDOR_FROM_DATABASE=Six15 Technologies
@ -400,7 +400,7 @@
acpi:TDM*:
ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc
@@ -6622,6 +6687,9 @@
@@ -6646,6 +6711,9 @@
acpi:TEV*:
ID_VENDOR_FROM_DATABASE=Televés, S.A.
@ -410,7 +410,7 @@
acpi:TEZ*:
ID_VENDOR_FROM_DATABASE=Tech Source Inc.
@@ -6736,9 +6804,6 @@
@@ -6760,9 +6828,6 @@
acpi:TNC*:
ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd
@ -420,7 +420,7 @@
acpi:TNM*:
ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA
@@ -7045,14 +7110,14 @@
@@ -7069,14 +7134,14 @@
acpi:UNC*:
ID_VENDOR_FROM_DATABASE=Unisys Corporation
@ -441,7 +441,7 @@
acpi:UNI*:
ID_VENDOR_FROM_DATABASE=Uniform Industry Corp.
@@ -7087,6 +7152,9 @@
@@ -7111,6 +7176,9 @@
acpi:USA*:
ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG
@ -451,7 +451,7 @@
acpi:USD*:
ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
@@ -7330,9 +7398,6 @@
@@ -7357,9 +7425,6 @@
acpi:WAL*:
ID_VENDOR_FROM_DATABASE=Wave Access
@ -461,7 +461,7 @@
acpi:WAV*:
ID_VENDOR_FROM_DATABASE=Wavephore
@@ -7457,7 +7522,7 @@
@@ -7484,7 +7549,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.
@@ -7471,9 +7536,6 @@
@@ -7498,9 +7563,6 @@
acpi:XDM*:
ID_VENDOR_FROM_DATABASE=XDM Ltd.
@ -480,7 +480,7 @@
acpi:XES*:
ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
@@ -7504,9 +7566,6 @@
@@ -7531,9 +7593,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
@@ -7573,6 +7632,9 @@
@@ -7600,6 +7659,9 @@
acpi:ZBX*:
ID_VENDOR_FROM_DATABASE=Zebax Technologies

View File

@ -11,6 +11,9 @@ pci:v*d*sv*sd*bc00sc00*
pci:v*d*sv*sd*bc00sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible unclassified device
pci:v*d*sv*sd*bc00sc05*
ID_PCI_SUBCLASS_FROM_DATABASE=Image coprocessor
pci:v*d*sv*sd*bc01*
ID_PCI_CLASS_FROM_DATABASE=Mass storage controller

File diff suppressed because it is too large Load Diff

View File

@ -1349,6 +1349,9 @@ usb:v03F0p3117*
usb:v03F0p311D*
ID_MODEL_FROM_DATABASE=Atheros AR9285 Malbec Bluetooth Adapter
usb:v03F0p312A*
ID_MODEL_FROM_DATABASE=LaserJet Pro M701n
usb:v03F0p3202*
ID_MODEL_FROM_DATABASE=PhotoSmart 1215
@ -4061,6 +4064,9 @@ usb:v041Ep3232*
usb:v041Ep3237*
ID_MODEL_FROM_DATABASE=SB X-Fi Surround 5.1 Pro
usb:v041Ep3263*
ID_MODEL_FROM_DATABASE=SB X-Fi Surround 5.1 Pro
usb:v041Ep3F00*
ID_MODEL_FROM_DATABASE=E-Mu Xboard 25 MIDI Controller
@ -8693,6 +8699,9 @@ usb:v046DpC22E*
usb:v046DpC231*
ID_MODEL_FROM_DATABASE=G13 Virtual Mouse
usb:v046DpC232*
ID_MODEL_FROM_DATABASE=Gaming Virtual Keyboard
usb:v046DpC245*
ID_MODEL_FROM_DATABASE=G400 Optical Mouse
@ -9884,6 +9893,9 @@ usb:v047FpC00E*
usb:v047FpC03B*
ID_MODEL_FROM_DATABASE=HD1
usb:v047FpDA60*
ID_MODEL_FROM_DATABASE=DA60
usb:v0480*
ID_VENDOR_FROM_DATABASE=Toshiba America Inc
@ -10212,7 +10224,7 @@ usb:v048Dp1172*
ID_MODEL_FROM_DATABASE=Flash Drive
usb:v048Dp1234*
ID_MODEL_FROM_DATABASE=Mass storage
ID_MODEL_FROM_DATABASE=Chipsbank CBM2199 Flash Drive
usb:v048Dp1336*
ID_MODEL_FROM_DATABASE=SD/MMC Cardreader
@ -15185,6 +15197,9 @@ usb:v04D9pA052*
usb:v04D9pA055*
ID_MODEL_FROM_DATABASE=Keyboard
usb:v04D9pA075*
ID_MODEL_FROM_DATABASE=Optical Gaming Mouse
usb:v04D9pA096*
ID_MODEL_FROM_DATABASE=Keyboard
@ -16359,7 +16374,7 @@ usb:v04E8p685E*
ID_MODEL_FROM_DATABASE=GT-I9100 / GT-C3350 Phones (USB Debugging mode)
usb:v04E8p6860*
ID_MODEL_FROM_DATABASE=Galaxy series, misc. (MTP mode)
ID_MODEL_FROM_DATABASE=Galaxy A5 (MTP)
usb:v04E8p6863*
ID_MODEL_FROM_DATABASE=Galaxy series, misc. (tethering mode)
@ -19197,7 +19212,7 @@ usb:v0525p1265*
ID_MODEL_FROM_DATABASE=File-backed Storage Gadget
usb:v0525p3424*
ID_MODEL_FROM_DATABASE=Lumidigm Venus fingerprint sensor
ID_MODEL_FROM_DATABASE=V30x/V4xx fingerprint sensor [Lumidigm]
usb:v0525pA0F0*
ID_MODEL_FROM_DATABASE=Cambridge Electronic Devices Power1401 mk 2
@ -19227,7 +19242,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
ID_MODEL_FROM_DATABASE=Pocketbook Pro 903 / Mobius 2 Action Cam / xDuoo X3 / PocketBook Pro 602
usb:v0525pA4A6*
ID_MODEL_FROM_DATABASE=Linux-USB Serial Gadget
@ -20162,6 +20177,9 @@ usb:v054Cp035C*
usb:v054Cp035F*
ID_MODEL_FROM_DATABASE=UP-DR200 Photo Printer
usb:v054Cp0360*
ID_MODEL_FROM_DATABASE=M2 Card Reader
usb:v054Cp0382*
ID_MODEL_FROM_DATABASE=Memory Stick PRO-HG Duo Adaptor (MSAC-UAH1)
@ -23669,6 +23687,9 @@ usb:v059Fp106E*
usb:v059Fp1094*
ID_MODEL_FROM_DATABASE=Rugged THB
usb:v059Fp1095*
ID_MODEL_FROM_DATABASE=Rugged
usb:v059FpA601*
ID_MODEL_FROM_DATABASE=HardDrive
@ -23783,6 +23804,12 @@ usb:v05A7p4002*
usb:v05A7p4003*
ID_MODEL_FROM_DATABASE=Bluetooth Headset Series 2 in DFU mode
usb:v05A7p400D*
ID_MODEL_FROM_DATABASE=SoundLink Color II speaker in DFU mode
usb:v05A7p40FE*
ID_MODEL_FROM_DATABASE=SoundLink Color II speaker
usb:v05A7pBC50*
ID_MODEL_FROM_DATABASE=SoundLink Wireless Mobile speaker
@ -24797,6 +24824,9 @@ usb:v05C8p036E*
usb:v05C8p0374*
ID_MODEL_FROM_DATABASE=HP EliteBook integrated HD Webcam
usb:v05C8p038E*
ID_MODEL_FROM_DATABASE=HP Wide Vision HD integrated webcam
usb:v05C8p03A1*
ID_MODEL_FROM_DATABASE=XiaoMi Webcam
@ -27480,7 +27510,7 @@ usb:v067Bp1231*
ID_MODEL_FROM_DATABASE=Orico SATA External Hard Disk Drive Lay-Flat Docking Station with USB 3.0 & eSATA interfaces.
usb:v067Bp2303*
ID_MODEL_FROM_DATABASE=PL2303 Serial Port
ID_MODEL_FROM_DATABASE=PL2303 Serial Port / Mobile Action MA-8910P
usb:v067Bp2305*
ID_MODEL_FROM_DATABASE=PL2305 Parallel Port
@ -28376,6 +28406,9 @@ usb:v06BCp020B*
usb:v06BCp02BB*
ID_MODEL_FROM_DATABASE=OKI PT390 POS Printer
usb:v06BCp0383*
ID_MODEL_FROM_DATABASE=MC563 Multifunction Printer
usb:v06BCp0A91*
ID_MODEL_FROM_DATABASE=B2500MFP (printer+scanner)
@ -30902,6 +30935,9 @@ usb:v0781pB6B7*
usb:v0781pB6BA*
ID_MODEL_FROM_DATABASE=CF SDDR-289
usb:v0781pCFC9*
ID_MODEL_FROM_DATABASE=SDDR-489 ImageMate Pro Reader
usb:v0782*
ID_VENDOR_FROM_DATABASE=Trackerball
@ -35930,6 +35966,9 @@ usb:v096E*
usb:v096Ep0005*
ID_MODEL_FROM_DATABASE=ePass2000
usb:v096Ep0006*
ID_MODEL_FROM_DATABASE=HID Dongle (for OEMs - manufacturer string is "OEM")
usb:v096Ep0120*
ID_MODEL_FROM_DATABASE=Microcosm Ltd Dinkey
@ -37316,6 +37355,9 @@ usb:v0A5Fp0009*
usb:v0A5Fp0050*
ID_MODEL_FROM_DATABASE=P120i / WM120i
usb:v0A5Fp0080*
ID_MODEL_FROM_DATABASE=GK420d Label Printer
usb:v0A5Fp0081*
ID_MODEL_FROM_DATABASE=GK420t Label Printer
@ -37433,6 +37475,9 @@ usb:v0A82*
usb:v0A82p4600*
ID_MODEL_FROM_DATABASE=TravelScan 460/464
usb:v0A82p6605*
ID_MODEL_FROM_DATABASE=ScanShell 800N
usb:v0A83*
ID_VENDOR_FROM_DATABASE=NextComm, Inc.
@ -40406,6 +40451,9 @@ usb:v0BDApB72A*
usb:v0BDApB812*
ID_MODEL_FROM_DATABASE=RTL88x2bu [AC1200 Techkey]
usb:v0BDApF179*
ID_MODEL_FROM_DATABASE=RTL8188FTV 802.11b/g/n 1T1R 2.4G WLAN Adapter
usb:v0BDB*
ID_VENDOR_FROM_DATABASE=Ericsson Business Mobile Networks BV
@ -40868,6 +40916,12 @@ usb:v0C3D*
usb:v0C3E*
ID_VENDOR_FROM_DATABASE=Nextcell, Inc.
usb:v0C40*
ID_VENDOR_FROM_DATABASE=ELMCU
usb:v0C40p8000*
ID_MODEL_FROM_DATABASE=2.4GHz receiver
usb:v0C44*
ID_VENDOR_FROM_DATABASE=Motorola iDEN
@ -40964,6 +41018,9 @@ usb:v0C45p184C*
usb:v0C45p1A90*
ID_MODEL_FROM_DATABASE=2M pixel Microscope Camera (with capture button) [Andonstar V160]
usb:v0C45p5004*
ID_MODEL_FROM_DATABASE=Redragon Mitra RGB Keyboard
usb:v0C45p5101*
ID_MODEL_FROM_DATABASE=2.4G Wireless Device [Rii MX3]
@ -45360,31 +45417,37 @@ usb:v0F6E*
ID_VENDOR_FROM_DATABASE=INTELLIGENT SYSTEMS
usb:v0F6Ep0100*
ID_MODEL_FROM_DATABASE=GameBoy Color Emulator
ID_MODEL_FROM_DATABASE=IS-CGB-EMULATOR
usb:v0F6Ep0201*
ID_MODEL_FROM_DATABASE=GameBoy Advance Flash Gang Writer
usb:v0F6Ep0202*
ID_MODEL_FROM_DATABASE=GameBoy Advance Capture
ID_MODEL_FROM_DATABASE=IS-AGB-CAPTURE
usb:v0F6Ep0300*
ID_MODEL_FROM_DATABASE=Gamecube DOL Viewer
ID_MODEL_FROM_DATABASE=IS-DOL-VIEWER
usb:v0F6Ep0400*
ID_MODEL_FROM_DATABASE=NDS Emulator
ID_MODEL_FROM_DATABASE=IS-NITRO-EMULATOR
usb:v0F6Ep0401*
ID_MODEL_FROM_DATABASE=NDS UIC
ID_MODEL_FROM_DATABASE=IS-NITRO-UIC
usb:v0F6Ep0402*
ID_MODEL_FROM_DATABASE=NDS Writer
ID_MODEL_FROM_DATABASE=IS-NITRO-WRITER
usb:v0F6Ep0403*
ID_MODEL_FROM_DATABASE=NDS Capture
ID_MODEL_FROM_DATABASE=IS-NITRO-CAPTURE
usb:v0F6Ep0404*
ID_MODEL_FROM_DATABASE=NDS Emulator (Lite)
ID_MODEL_FROM_DATABASE=IS-NITRO-EMULATOR (DS Lite)
usb:v0F6Ep0500*
ID_MODEL_FROM_DATABASE=IS-TWL-DEBUGGER
usb:v0F6Ep0501*
ID_MODEL_FROM_DATABASE=IS-TWL-CAPTURE
usb:v0F73*
ID_VENDOR_FROM_DATABASE=DFI
@ -52736,6 +52799,9 @@ usb:v1504*
usb:v1504p001F*
ID_MODEL_FROM_DATABASE=SRP-350II Thermal Receipt Printer
usb:v1508*
ID_VENDOR_FROM_DATABASE=Fibocom
usb:v1509*
ID_VENDOR_FROM_DATABASE=First International Computer, Inc.
@ -53255,6 +53321,9 @@ usb:v1532p004C*
usb:v1532p004D*
ID_MODEL_FROM_DATABASE=DeathAdder 2000 (Cynosa Pro Bundle)
usb:v1532p004F*
ID_MODEL_FROM_DATABASE=RZ01-0145, Gaming Mouse [DeathAdder 2000 (Alternate)]
usb:v1532p0050*
ID_MODEL_FROM_DATABASE=Naga Hex V2
@ -53345,14 +53414,23 @@ usb:v1532p007B*
usb:v1532p007E*
ID_MODEL_FROM_DATABASE=RC30-030502 Mouse Dock
usb:v1532p0083*
ID_MODEL_FROM_DATABASE=RC30-0315, Gaming Mouse [Basilisk X HyperSpeed]
usb:v1532p0084*
ID_MODEL_FROM_DATABASE=RZ01-0321 Gaming Mouse [DeathAdder V2]
usb:v1532p0085*
ID_MODEL_FROM_DATABASE=RZ01-0316 Gaming Mouse [Basilisk V2]
usb:v1532p0086*
ID_MODEL_FROM_DATABASE=Gaming Mouse [Basilisk Ultimate, Wired]
usb:v1532p0088*
ID_MODEL_FROM_DATABASE=Razer Basilisk Ultimate Dongle
ID_MODEL_FROM_DATABASE=Gaming Mouse [Basilisk Ultimate, Wireless, Receiver]
usb:v1532p008A*
ID_MODEL_FROM_DATABASE=RZ01-0325, Gaming Mouse [Viper Mini]
usb:v1532p0101*
ID_MODEL_FROM_DATABASE=Copperhead Mouse
@ -53585,6 +53663,12 @@ usb:v1532p0253*
usb:v1532p0255*
ID_MODEL_FROM_DATABASE=RZ09-0328, Gaming Laptop [Blade 15 Base Model (2020)]
usb:v1532p0256*
ID_MODEL_FROM_DATABASE=RZ09--0329, Gaming Laptop [Blade Pro 17 Full HD (2020)]
usb:v1532p025D*
ID_MODEL_FROM_DATABASE=RZ03-0338, Gaming Keyboard [Ornata V2]
usb:v1532p0300*
ID_MODEL_FROM_DATABASE=RZ06-0063 Motion Sensing Controllers [Hydra]
@ -53627,6 +53711,12 @@ usb:v1532p051C*
usb:v1532p051D*
ID_MODEL_FROM_DATABASE=Nari (Wired)
usb:v1532p051E*
ID_MODEL_FROM_DATABASE=RC30-026902, Gaming Headset [Nari Essential, Wireless, Receiver]
usb:v1532p051F*
ID_MODEL_FROM_DATABASE=RC30-026901, Gaming Headset [Nari Essential, Wired]
usb:v1532p0520*
ID_MODEL_FROM_DATABASE=Kraken Tournament Edition
@ -53648,6 +53738,9 @@ usb:v1532p0A02*
usb:v1532p0A03*
ID_MODEL_FROM_DATABASE=Wildcat
usb:v1532p0A15*
ID_MODEL_FROM_DATABASE=RZ06-0199, Gaming Controller [Wolverine Tournament Edition]
usb:v1532p0C00*
ID_MODEL_FROM_DATABASE=RZ02-0135 Hard Gaming Mouse Mat [Firefly]
@ -54254,6 +54347,21 @@ usb:v1605*
usb:v1605p0001*
ID_MODEL_FROM_DATABASE=DIO-32 (No Firmware Yet)
usb:v1605p0002*
ID_MODEL_FROM_DATABASE=USB-DIO-48 (No Firmware Yet)
usb:v1605p0003*
ID_MODEL_FROM_DATABASE=USB-DIO-96 (No Firmware Yet)
usb:v1605p0004*
ID_MODEL_FROM_DATABASE=USB-DIO-32I (No Firmware Yet)
usb:v1605p0005*
ID_MODEL_FROM_DATABASE=USB-DIO24 (based on -CTR6) (No Firmware Yet)
usb:v1605p0006*
ID_MODEL_FROM_DATABASE=USB-DIO24-CTR6 (No Firmware Yet)
usb:v1606*
ID_VENDOR_FROM_DATABASE=Umax

View File

@ -25,7 +25,6 @@
# Allowed properties are:
# ID_AUTOSUSPEND=1
#
# Sort by brand, model
#########################################
@ -36,6 +35,16 @@
usb:v058Fp9540*
ID_AUTOSUSPEND=1
#########################################
# Lenovo
#########################################
# X1C8 Touchscreen
usb:v04F3p2B7C*
# T14 Gen 1 Touchscreen
usb:v04F3p2ACC*
ID_AUTOSUSPEND=1
#########################################
# QEMU
#########################################

View File

@ -3,10 +3,10 @@
# The lookup keys are composed in:
# 60-evdev.rules
#
# Note: The format of the "evdev:" prefix match key is a
# contract between the rules file and the hardware data, it might
# change in later revisions to support more or better matches, it
# is not necessarily expected to be a stable ABI.
# Note: The format of the "evdev:" prefix match key is a contract between the
# rules file and the hardware data, it might change in later revisions to
# support more or better matches, it is not necessarily expected to be a stable
# ABI.
#
# Match string formats:
# evdev:<modalias>
@ -17,8 +17,8 @@
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
# udevadm trigger /dev/input/eventXX
# where /dev/input/eventXX is the device in question. If in
# doubt, simply use /dev/input/event* to reload all input rules.
# where /dev/input/eventXX is the device in question. If in doubt, simply use
# /dev/input/event* to reload all input rules.
#
# If your changes are generally applicable, preferably send them as a pull
# request to
@ -30,13 +30,12 @@
# Allowed properties are:
# EVDEV_ABS_<axis>=<min>:<max>:<res>:<fuzz>:<flat>
#
# where <axis> is the hexadecimal EV_ABS code as listed in linux/input.h
# and min, max, res, fuzz, flat are the decimal values to the respective
# fields of the struct input_absinfo as listed in linux/input.h.
# If a field is missing the field will be left as-is. Not all fields need to
# be present. e.g. ::45 sets the resolution to 45 units/mm.
# where <axis> is the hexadecimal EV_ABS code as listed in linux/input.h and
# min, max, res, fuzz, flat are the decimal values to the respective fields of
# the struct input_absinfo as listed in linux/input.h. If a field is missing
# the field will be left as-is. Not all fields need to be present. e.g. ::45
# sets the resolution to 45 units/mm.
#
# Sort by brand, model
#########################################
@ -45,6 +44,8 @@
# Hyperpen 12000U
evdev:input:b0003v08CAp0010*
# Hyperpen 6000U
evdev:input:b0003v08CAp0020*
EVDEV_ABS_00=::20
EVDEV_ABS_01=::20
@ -131,7 +132,7 @@ evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBookPro14,3:*
#########################################
# Asus N53SV
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnASUSTeKComputerInc.:pnN53SV*
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnASUSTeKComputerInc.:pnN53SV:*
EVDEV_ABS_00=0:1152:14
EVDEV_ABS_01=0:576:10
EVDEV_ABS_35=0:1152:14
@ -143,7 +144,7 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnASUSTeKComputerInc.:pnF3Sg:*
EVDEV_ABS_01=1103:5856:61
# Asus VivoBook E402SA
evdev:name:Elan Touchpad:dmi:*svnASUSTeKCOMPUTERINC.:pnE402SA*
evdev:name:Elan Touchpad:dmi:*svnASUSTeKCOMPUTERINC.:pnE402SA:*
EVDEV_ABS_00=::29
EVDEV_ABS_01=::29
EVDEV_ABS_35=::29
@ -195,26 +196,26 @@ evdev:name:SYNA3602:00 0911:5288 Touchpad:dmi:*svnBANGHO:pnCLOUDPRO:*
#########################################
# Dell Vostro 1510
evdev:name:AlpsPS/2 ALPS GlidePoint*:dmi:bvn*:bvr*:bd*:svnDellInc.:pnVostro1510*
evdev:name:AlpsPS/2 ALPS GlidePoint*:dmi:bvn*:bvr*:bd*:svnDellInc.:pnVostro1510:*
EVDEV_ABS_00=::14
EVDEV_ABS_01=::18
# Dell Inspiron 3537 - PS/2
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnDellInc.:pnInspiron3537*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnDellInc.:pnInspiron3537:*
EVDEV_ABS_00=1268:5675:41
EVDEV_ABS_01=1101:4792:61
EVDEV_ABS_35=1268:5675:41
EVDEV_ABS_36=1101:4792:61
# Dell Inspiron 3537 - RMI4
evdev:name:Synaptics TM2382-001:dmi:*svnDellInc.:pnInspiron3537*
evdev:name:Synaptics TM2382-001:dmi:*svnDellInc.:pnInspiron3537:*
EVDEV_ABS_00=::24
EVDEV_ABS_01=::34
EVDEV_ABS_35=::24
EVDEV_ABS_36=::34
# Dell Inspiron N5040
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnInspironN5040*
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnInspironN5040:*
EVDEV_ABS_00=25:2000:22
EVDEV_ABS_01=0:1351:28
EVDEV_ABS_35=25:2000:22
@ -226,42 +227,42 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*bvn*:bvr*:bd*:svnDellInc.:pnMM061:*
EVDEV_ABS_01=687:5176:107
# Dell Latitude E6220
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6220*
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6220:*
EVDEV_ABS_00=76:1815:22
EVDEV_ABS_01=131:1330:30
EVDEV_ABS_35=76:1815:22
EVDEV_ABS_36=131:1330:30
# Dell Latitude E6320
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6320*
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6320:*
EVDEV_ABS_00=79:1841:22
EVDEV_ABS_01=140:1325:29
EVDEV_ABS_35=79:1841:22
EVDEV_ABS_36=140:1325:29
# Dell Latitude E7250
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE7250*
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE7250:*
EVDEV_ABS_00=179:3903:38
EVDEV_ABS_01=277:1916:32
EVDEV_ABS_35=179:3903:38
EVDEV_ABS_36=277:1916:32
# Dell Latitude E7470
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE7470*
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE7470:*
EVDEV_ABS_00=29:2930:30
EVDEV_ABS_01=26:1533:29
EVDEV_ABS_35=29:2930:30
EVDEV_ABS_36=26:1533:29
# Dell Precision 5510
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnPrecision5510*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnPrecision5510:*
EVDEV_ABS_00=::42
EVDEV_ABS_01=::43
EVDEV_ABS_35=::42
EVDEV_ABS_36=::43
# Dell Precision M4700
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnDellInc.:pnPrecisionM4700*
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnDellInc.:pnPrecisionM4700:*
EVDEV_ABS_00=0:1960:24
EVDEV_ABS_01=113:1436:30
EVDEV_ABS_35=0:1960:24
@ -275,14 +276,14 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnDellInc.:pnXPS139360:cvr:*
EVDEV_ABS_36=::60
# Dell XPS15 9550
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnXPS159550*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnXPS159550:*
EVDEV_ABS_00=::41
EVDEV_ABS_01=::43
EVDEV_ABS_35=::41
EVDEV_ABS_36=::43
# Dell XPS M1530
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:bvn*:bvr*:bd*:svnDellInc.:pnXPSM1530*
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:bvn*:bvr*:bd*:svnDellInc.:pnXPSM1530:*
EVDEV_ABS_00=85:947:15
EVDEV_ABS_01=154:726:18
@ -300,7 +301,7 @@ evdev:input:b0003v0430p0530*
#########################################
# Chromebook Pixel (2015) - Samus
evdev:name:Atmel maXTouch Touch*:dmi:bvn*:bvr*:bd*:svnGOOGLE:pnSamus*
evdev:name:Atmel maXTouch Touch*:dmi:bvn*:bvr*:bd*:svnGOOGLE:pnSamus:*
EVDEV_ABS_00=::10
EVDEV_ABS_01=::10
EVDEV_ABS_35=::10
@ -311,28 +312,28 @@ evdev:name:Atmel maXTouch Touch*:dmi:bvn*:bvr*:bd*:svnGOOGLE:pnSamus*
#########################################
# HP Chromebook 14 (Falco)
evdev:name:Cypress APA Trackpad ?cyapa?:dmi:*:svnHewlett-Packard*:pnFalco*:
evdev:name:Cypress APA Trackpad ?cyapa?:dmi:*:svnHewlett-Packard*:pnFalco*:*
EVDEV_ABS_00=:::8
EVDEV_ABS_01=:::8
EVDEV_ABS_35=:::8
EVDEV_ABS_36=:::8
# HP Pavilion dm4
evdev:name:SynPS/2 Synaptics TouchPad*:dmi:*svnHewlett-Packard:pnHPPaviliondm4*
evdev:name:SynPS/2 Synaptics TouchPad*:dmi:*svnHewlett-Packard:pnHPPaviliondm4:*
EVDEV_ABS_00=1360:5563:47
EVDEV_ABS_01=1269:4618:61
EVDEV_ABS_35=1360:5563:47
EVDEV_ABS_36=1269:4618:61
# HP Pavilion g6
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvnHewlett-Packard:*svnHewlett-Packard:pnHPPaviliong6*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvnHewlett-Packard:*svnHewlett-Packard:pnHPPaviliong6:*
EVDEV_ABS_00=1255:5728:50
EVDEV_ABS_01=1215:4761:71
EVDEV_ABS_35=1255:5728:50
EVDEV_ABS_36=1215:4761:71
# HP Pavilion dv7
evdev:name:SynPS/2 Synaptics TouchPad*:dmi:*svnHewlett-Packard:pnHPPaviliondv7*
evdev:name:SynPS/2 Synaptics TouchPad*:dmi:*svnHewlett-Packard:pnHPPaviliondv7:*
EVDEV_ABS_00=1068:5805:44
EVDEV_ABS_01=1197:4890:57
EVDEV_ABS_35=1068:5805:44
@ -346,14 +347,14 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnHP:pnHPLaptop15-bs0xx:*
EVDEV_ABS_36=1029:4916:78
# HP Spectre
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnHP:pnHPSpectreNotebook*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnHP:pnHPSpectreNotebook:*
EVDEV_ABS_00=1205:5691:47
EVDEV_ABS_01=1083:4808:65
EVDEV_ABS_35=1205:5691:47
EVDEV_ABS_36=1083:4808:65
# HP Envy x360
evdev:name:SynPS/2 Synaptics TouchPad:*svnHP:pnHPENVYx360Convertible15m-cn0xxx*
evdev:name:SynPS/2 Synaptics TouchPad:*svnHP:pnHPENVYx360Convertible15m-cn0xxx:*
EVDEV_ABS_00=1302:5640:36
EVDEV_ABS_01=1119:4741:61
EVDEV_ABS_35=1302:5640:36
@ -364,28 +365,28 @@ evdev:name:SynPS/2 Synaptics TouchPad:*svnHP:pnHPENVYx360Convertible15m-cn0xxx*
#########################################
# Lenovo B590
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrLenovoB590*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrLenovoB590:*
EVDEV_ABS_00=1243:5759:48
EVDEV_ABS_01=1130:4832:65
EVDEV_ABS_35=1243:5759:48
EVDEV_ABS_36=1130:4832:65
# Lenovo E530
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:pn*ThinkPadEdgeE530*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:pn*ThinkPadEdgeE530:*
EVDEV_ABS_00=1241:5703:49
EVDEV_ABS_01=1105:4820:68
EVDEV_ABS_35=1241:5703:49
EVDEV_ABS_36=1105:4820:68
# Lenovo L430
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnLENOVO*:pvrThinkPadL430*
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnLENOVO*:pvrThinkPadL430:*
EVDEV_ABS_00=19:2197:29
EVDEV_ABS_01=12:1151:25
EVDEV_ABS_35=19:2197:29
EVDEV_ABS_36=12:1151:25
# Lenovo P50
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*P50*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*P50:*
EVDEV_ABS_00=::44
EVDEV_ABS_01=::67
EVDEV_ABS_35=::44
@ -399,36 +400,44 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPad??40?:*
EVDEV_ABS_35=::41
EVDEV_ABS_36=::37
# Lenovo X240 series
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadX240:*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadX240?:*
EVDEV_ABS_00=1232:5711:51
EVDEV_ABS_01=1159:4700:53
EVDEV_ABS_35=1232:5711:51
EVDEV_ABS_36=1159:4700:53
# Lenovo ThinkPad X140e
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadX140e*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadX140e:*
EVDEV_ABS_00=1176:5767:62
EVDEV_ABS_01=416:5534:160
EVDEV_ABS_35=1176:5767:62
EVDEV_ABS_36=416:5534:160
# Lenovo ThinkPad T430
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadT430*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadT430:*
EVDEV_ABS_00=1250:5631:58
EVDEV_ABS_01=1309:4826:78
EVDEV_ABS_35=1250:5631:58
EVDEV_ABS_36=1309:4826:78
# Lenovo Thinkpad Carbon X1 4th gen. and X1 Yoga 1st gen.
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadX1Carbon4th*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadX1Carbon4th:*
EVDEV_ABS_00=1262:5679:44
EVDEV_ABS_01=1101:4824:65
EVDEV_ABS_35=1262:5679:44
EVDEV_ABS_36=1101:4824:65
# Lenovo Thinkpad Carbon X1 5th gen.
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadX1Carbon5th*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadX1Carbon5th:*
EVDEV_ABS_00=::44
EVDEV_ABS_01=::65
EVDEV_ABS_35=::44
EVDEV_ABS_36=::65
# Lenovo Thinkpad Carbon X1 5th gen. (rmi4)
evdev:name:Synaptics TM3289-002:dmi:*svnLENOVO*:pvrThinkPadX1Carbon5th*
evdev:name:Synaptics TM3289-002:dmi:*svnLENOVO*:pvrThinkPadX1Carbon5th:*
EVDEV_ABS_00=::19
EVDEV_ABS_01=::19
EVDEV_ABS_35=::19
@ -442,87 +451,87 @@ evdev:input:b0003v17EFp60B5*
EVDEV_ABS_36=::11
# Lenovo T460
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*T460*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*T460:*
EVDEV_ABS_00=1266:5677:44
EVDEV_ABS_01=1093:4832:65
EVDEV_ABS_35=1266:5677:44
EVDEV_ABS_36=1093:4832:65
# Lenovo T510
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*T510*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*T510:*
EVDEV_ABS_00=778:6239:72
EVDEV_ABS_01=841:5330:100
EVDEV_ABS_35=778:6239:72
EVDEV_ABS_36=841:5330:100
# Lenovo V360
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*pvrLenovoV360*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*pvrLenovoV360:*
EVDEV_ABS_00=1243:5927:60
EVDEV_ABS_01=902:5330:108
# Lenovo W530
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*pvrThinkPadW530*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*pvrThinkPadW530:*
EVDEV_ABS_00=1250:5631:59
EVDEV_ABS_01=1205:4834:81
EVDEV_ABS_35=1250:5631:59
EVDEV_ABS_36=1205:4834:81
# Lenovo X220 series
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*pvrThinkPadX220*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*pvrThinkPadX220:*
EVDEV_ABS_00=1316:5627:58
EVDEV_ABS_01=1355:4826:81
EVDEV_ABS_35=1316:5627:58
EVDEV_ABS_36=1355:4826:81
# Lenovo X230 series
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*X230*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*ThinkPad*X230:*
EVDEV_ABS_01=::100
EVDEV_ABS_36=::100
# Lenovo Y700-14ISK
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapadY700-14ISK*
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapadY700-14ISK:*
EVDEV_ABS_00=::27
EVDEV_ABS_01=::29
EVDEV_ABS_35=::27
EVDEV_ABS_36=::29
# Lenovo Ideapad 310S-14ISK
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapad310S-14ISK*
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapad310S-14ISK:*
EVDEV_ABS_00=113:3960:37
EVDEV_ABS_01=100:1959:27
EVDEV_ABS_35=113:3960:37
EVDEV_ABS_36=100:1959:27
# Lenovo Ideapad 500S-13ISK
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapad500S-13ISK*
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapad500S-13ISK:*
EVDEV_ABS_00=125:3955:37
EVDEV_ABS_01=104:1959:27
EVDEV_ABS_35=125:3954:37
EVDEV_ABS_36=104:1959:27
# Lenovo Yoga 500-14ISK
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoYoga500-14ISK*
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoYoga500-14ISK:*
EVDEV_ABS_00=124:3955:36
EVDEV_ABS_01=103:1959:26
EVDEV_ABS_35=124:3955:36
EVDEV_ABS_36=103:1959:26
# Lenovo Flex 3 15-inch
evdev:name:AlpsPS/2 ALPS GlidePoint*:dmi:bvn*:bvr*:bd*:svnLENOVO*:pvrFlex3-15*
evdev:name:AlpsPS/2 ALPS GlidePoint*:dmi:bvn*:bvr*:bd*:svnLENOVO*:pvrFlex3-15:*
EVDEV_ABS_00=::38
EVDEV_ABS_01=::28
EVDEV_ABS_35=::38
EVDEV_ABS_36=::28
# Lenovo ThinkPad Edge 13 (02173BG)
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*02173BG*:*pvrThinkPadEdge*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*02173BG*:*pvrThinkPadEdge:*
EVDEV_ABS_00=916:6077:55
EVDEV_ABS_01=653:5395:116
EVDEV_ABS_35=916:6077:55
EVDEV_ABS_36=653:5395:116
# Lenovo Yoga 500-14IBD, 80N4
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoYoga500-14IBD*
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoYoga500-14IBD:*
EVDEV_ABS_00=117:3952:36
EVDEV_ABS_01=105:1960:26
EVDEV_ABS_35=117:3952:36
@ -536,7 +545,7 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT490:*
EVDEV_ABS_36=::52
# Lenovo Legion Y9000X2020
evdev:name:MSFT0001:02 04F3:304B Touchpad:dmi:*svnLENOVO:*pvrLenovoLegionY9000X2020*
evdev:name:MSFT0001:02 04F3:304B Touchpad:dmi:*svnLENOVO:*pvrLenovoLegionY9000X2020:*
EVDEV_ABS_00=::31
EVDEV_ABS_01=::30
EVDEV_ABS_35=::31
@ -554,7 +563,7 @@ evdev:name:1A58675*:00 06CB:8323 Touchpad:dmi:*svnRazer:pnBladeStealth:*
EVDEV_ABS_36=::11:8
# Razer Blade Stealth (2016)
evdev:name:Synaptics TM2438-005:dmi:*svnRazer:pnBladeStealth*
evdev:name:Synaptics TM2438-005:dmi:*svnRazer:pnBladeStealth:*
EVDEV_ABS_00=0:4064:29
EVDEV_ABS_01=0:2405:37
EVDEV_ABS_35=0:4064:29
@ -565,14 +574,14 @@ evdev:name:Synaptics TM2438-005:dmi:*svnRazer:pnBladeStealth*
#########################################
# Samsung 305V4
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnSAMSUNGELECTRONICSCO.,LTD.:pn305V4A/305V5A*
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnSAMSUNGELECTRONICSCO.,LTD.:pn305V4A/305V5A:*
EVDEV_ABS_00=0:2480:28
EVDEV_ABS_01=0:1116:24
EVDEV_ABS_35=0:2480:28
EVDEV_ABS_36=0:1116:24
# Samsung 880Z5E
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnSAMSUNGELECTRONICSCO.,LTD.:pn870Z5E/880Z5E/680Z5E*
evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnSAMSUNGELECTRONICSCO.,LTD.:pn870Z5E/880Z5E/680Z5E:*
EVDEV_ABS_00=::30
EVDEV_ABS_01=::29
EVDEV_ABS_35=::30
@ -583,7 +592,7 @@ evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnSAMSUNGELECTRONICSCO.,LTD.:pn870Z5E/
#########################################
# Star LabTop Mk III
evdev:name:ALPS0001:00 0911:5288 Touchpad:dmi:*svnStarLabs:pnLabTop*
evdev:name:ALPS0001:00 0911:5288 Touchpad:dmi:*svnStarLabs:pnLabTop:*
EVDEV_ABS_00=0:2627:25
EVDEV_ABS_01=0:1331:20
EVDEV_ABS_35=0:2627:25
@ -612,12 +621,12 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnSystem76:pnGalagoPro:pvrgalp2:*
#########################################
# Toshiba Tecra M11
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnTOSHIBA:pnTECRAM11*
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnTOSHIBA:pnTECRAM11:*
EVDEV_ABS_00=90:962:11
EVDEV_ABS_01=51:681:14
# Toshiba Satellite R830
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnTOSHIBA:pnSATELLITER830*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnTOSHIBA:pnSATELLITER830:*
EVDEV_ABS_00=1238:5785:53
EVDEV_ABS_01=1045:4826:76
EVDEV_ABS_35=1238:5785:53

View File

@ -3,10 +3,10 @@
# The lookup keys are composed in:
# 60-input-id.rules
#
# Note: The format of the "input-id:" prefix match key is a
# contract between the rules file and the hardware data, it might
# change in later revisions to support more or better matches, it
# is not necessarily expected to be a stable ABI.
# Note: The format of the "input-id:" prefix match key is a contract between
# the rules file and the hardware data, it might change in later revisions to
# support more or better matches, it is not necessarily expected to be a stable
# ABI.
#
# Match string formats:
# id-input:modalias:<modalias>
@ -27,16 +27,14 @@
# udevadm info /dev/input/eventXX.
#
# This file must only be used where the input_id builtin assigns the wrong
# properties or lacks the assignment of some properties. This is almost
# always caused by a device not adhering to the standard of the device's
# type.
# properties or lacks the assignment of some properties. This is almost always
# caused by a device not adhering to the standard of the device's type.
#
# Allowed properties are:
# ID_INPUT
# ID_INPUT_ACCELEROMETER, ID_INPUT_MOUSE,
# ID_INPUT_POINTINGSTICK, ID_INPUT_TOUCHSCREEN, ID_INPUT_TOUCHPAD,
# ID_INPUT_TABLET, ID_INPUT_TABLET_PAD, ID_INPUT_JOYSTICK, ID_INPUT_KEY,
# ID_INPUT_KEYBOARD, ID_INPUT_SWITCH, ID_INPUT_TRACKBALL
# ID_INPUT, ID_INPUT_ACCELEROMETER, ID_INPUT_MOUSE, ID_INPUT_POINTINGSTICK,
# ID_INPUT_TOUCHSCREEN, ID_INPUT_TOUCHPAD, ID_INPUT_TABLET,
# ID_INPUT_TABLET_PAD, ID_INPUT_JOYSTICK, ID_INPUT_KEY, ID_INPUT_KEYBOARD,
# ID_INPUT_SWITCH, ID_INPUT_TRACKBALL
#
# ID_INPUT
# * MUST be set when ANY of ID_INPUT_* is set
@ -45,7 +43,7 @@
# ID_INPUT_TABLET
# * MUST be set when setting ID_INPUT_TABLET_PAD
#
# Allowed values are 1 and 0 to set or unset, repsectively.
# Allowed values are 1 and 0 to set or unset, respectively.
#
# NOT allowed in this file are:
# ID_INPUT_WIDTH_MM, ID_INPUT_HEIGHT_MM, ID_INPUT_TOUCHPAD_INTEGRATION

File diff suppressed because it is too large Load Diff

View File

@ -3,17 +3,17 @@
# The lookup keys are composed in:
# 60-sensor.rules
#
# Note: The format of the "sensor:" prefix match key is a
# contract between the rules file and the hardware data, it might
# change in later revisions to support more or better matches, it
# is not necessarily expected to be a stable ABI.
# Note: The format of the "sensor:" prefix match key is a contract between the
# rules file and the hardware data, it might change in later revisions to
# support more or better matches, it is not necessarily expected to be a stable
# ABI.
#
# Match string formats:
# sensor:modalias:<parent device modalias>:dmi:<dmi string>
# sensor:modalias:<parent modalias pattern>:dmi:<dmi pattern>
#
# The device modalias can be seen in the `modalias` file
# of the sensor parent, for example:
# cat /sys/`udevadm info -q path -n /dev/iio:device0`/../modalias
# The device modalias can be seen in the `modalias` file of the sensor parent,
# for example:
# cat /sys/`udevadm info -q path -n /dev/iio:device0`/../modalias
#
# The full DMI string of the running machine can be read from
# /sys/class/dmi/id/modalias
@ -46,7 +46,7 @@
# where <matrix> is a mount-matrix in the format specified in the IIO
# subsystem[1]. The default, when unset, is equivalent to:
# ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, 1
# eg. the identity matrix.
# eg. the identity matrix,
# and <value> is an integer value above which an object is considered
# close by a proximity sensor:
# PROXIMITY_NEAR_LEVEL=100
@ -72,16 +72,19 @@
#########################################
# Acer
#########################################
sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-011*
sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-011:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-012*
sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-012:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
sensor:modalias:acpi:BOSC0200*:dmi:*svnAcer*:*TP-SW5-017-17BU:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, -1
sensor:modalias:acpi:BMA250E*:dmi:*:svnAcer:pnIconiaW1-810:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
sensor:modalias:acpi:SMO8500:*:dmi:*Acer*:pnOneS1002*
sensor:modalias:acpi:SMO8500:*:dmi:*Acer*:pnOneS1002:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, -1
sensor:modalias:acpi:KIOX0009*:dmi:*:svnAcer:pnOneS1003:*
@ -90,10 +93,9 @@ sensor:modalias:acpi:KIOX0009*:dmi:*:svnAcer:pnOneS1003:*
sensor:modalias:acpi:BOSC0200*:dmi:*:svnAcer*:pnSwitchSW312-31:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
sensor:modalias:acpi:BOSC0200*:dmi:*svn*Acer*:*pn*Spin*SP111-33*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
sensor:modalias:acpi:BOSC0200*:dmi:*svnAcer*:*pnSpinSP111-34*
sensor:modalias:acpi:BOSC0200*:dmi:*svn*Acer*:*pn*Spin*SP111-32:*
sensor:modalias:acpi:BOSC0200*:dmi:*svn*Acer*:*pn*Spin*SP111-33:*
sensor:modalias:acpi:BOSC0200*:dmi:*svnAcer*:*pnSpinSP111-34:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
@ -105,47 +107,49 @@ sensor:modalias:acpi:SMO8500*:dmi:*:svnARCHOS:pnARCHOS80Cesium:*
#########################################
# AsusTek
#########################################
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100CHI*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100CHI:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT300CHI*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT300CHI:*
ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TA*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT200TA*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnM80TA:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TA:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT200TA:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnTP201SA*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pn*E205SA*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnTP201SA:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pn*E205SA:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LA*
sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LD*
sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LA:*
sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LD:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pn*Q551LN*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pn*Q551LN:*
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
sensor:modalias:acpi:KXJ2109*:dmi:*:svnASUSTeK*:pnME176C*
sensor:modalias:acpi:KXJ2109*:dmi:*:svnASUSTeK*:pnME176C:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LJ*
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LJ:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
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*TP500LAB:*
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP500LB:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LD*
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LD:*
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LAB:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
sensor:modalias:acpi:BOSC0200*:dmi:*svn*ASUSTeK*:*pn*TP412UA*
sensor:modalias:acpi:BOSC0200*:dmi:*svn*ASUSTeK*:*pn*TP412UA:*
ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1
#########################################
# Axxo
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*:svnStandard:pnWCBT1011:*
sensor:modalias:acpi:SMO8500*:dmi:*:svnStandard:pnWCBT1011::*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################
@ -164,6 +168,10 @@ sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnD2D3_Vi8A1:*
sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrG1D_S165*:svnilife:pnS165:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
# Chuwi Hi8 (CWI509)
sensor:modalias:acpi:BMA250E*:dmi:*svnilife*:pnS806:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
# Chuwi Hi8 Pro (CWI513)
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnX1D3_C806N:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
@ -186,6 +194,8 @@ sensor:modalias:acpi:MXC6655*:dmi:*:svnCHUWIInnovationAndTechnology*:pnHi10X:*
# Chuwi Hi12
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnP02BD6_HI-122LP:*
sensor:modalias:acpi:BOSC0200*:dmi:*:svnDefaultstring:pnDefaultstring:*
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnE4D6_HI-122LP:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
# Chuwi Hi13
@ -196,8 +206,8 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnChuwi*:pnHi13:*
# Chuwi HiBook does not have its product name filled, so we
# match the entire dmi-alias, assuming that the use of a BOSC0200 +
# bios-version + bios-date combo is unique
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/07/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnHampoo:rnCherryTrailCR:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/28/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnHampoo:rnCherryTrailCR:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/07/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnHampoo:rnCherryTrailCR:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/28/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnHampoo:rnCherryTrailCR:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
# Chuwi HiBook Pro (CWI526)
@ -207,7 +217,7 @@ sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo*:pnP1D6_C109K:*
# Chuwi CoreBook
# Chuwi CoreBook does not have its product name filled, so we
# match the entire dmi-alias
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvrY13D_KB133.103:bd06/01/2018:svnHampoo:pnDefaultstring:pvrV100:rvnHampoo:rnY13D_KB133:rvrV100:cvnDefaultstring:ct9:cvrDefaultstring:
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvrY13D_KB133.103:bd06/01/2018:svnHampoo:pnDefaultstring:pvrV100:rvnHampoo:rnY13D_KB133:rvrV100:cvnDefaultstring:ct9:cvrDefaultstring:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################
@ -248,10 +258,14 @@ sensor:modalias:acpi:BOSC0200*:dmi:*:svnCube:pnI15-TC:*
sensor:modalias:acpi:KIOX000A*:dmi:*:svncube:pni8-T:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
# Cube KNote 5
sensor:modalias:acpi:KIOX000A*:dmi:*:svnALLDOCUBE:pni1102:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################
# Cytrix (Mytrix)
#########################################
sensor:modalias:acpi:*KIOX000A*:dmi:*svn*CytrixTechnology:*pn*Complex11t*
sensor:modalias:acpi:*KIOX000A*:dmi:*svn*CytrixTechnology:*pn*Complex11t:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################
@ -260,18 +274,24 @@ sensor:modalias:acpi:*KIOX000A*:dmi:*svn*CytrixTechnology:*pn*Complex11t*
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:pnVostro5581:*
ACCEL_LOCATION=base
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:pnLatitude9520:*:ct10:*
ACCEL_LOCATION=base
sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:pnLatitude7420:*
ACCEL_LOCATION=base
# Dell Venue 8 Pro 3845
sensor:modalias:acpi:INVN6500*:dmi:*svnDellInc.*:pnVenue8Pro3845*
sensor:modalias:acpi:INVN6500*:dmi:*svnDellInc.*:pnVenue8Pro3845:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# Dell Venue 10 Pro 5055
sensor:modalias:acpi:INVN6500*:dmi:*svnDell*:pnVenue10Pro5055*
sensor:modalias:acpi:INVN6500*:dmi:*svnDell*:pnVenue10Pro5055:*
ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1
#########################################
# DEXP
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*svn*DEXP*:*pn*DEXPOEM*
sensor:modalias:acpi:SMO8500*:dmi:*svn*DEXP*:*pn*DEXPOEM:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
#########################################
@ -285,7 +305,7 @@ sensor:modalias:acpi:BOSC0200*:dmi:*:svnDigma:pnCITIE203ES2010EW:*
#########################################
# Endless
#########################################
sensor:modalias:acpi:ACCE0001*:dmi:*svnEndless*:*pnELT-NL3*
sensor:modalias:acpi:ACCE0001*:dmi:*svnEndless*:*pnELT-NL3:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 0, 0, -1; -1, 0, 0
#########################################
@ -305,19 +325,19 @@ sensor:modalias:acpi:KIOX010A*:dmi:*:svnGEO*:pnGeoFlex*:*
#########################################
# Google Chromebooks
#########################################
sensor:modalias:platform:cros-ec-accel:dmi:*:svnGOOGLE*
sensor:modalias:platform:cros-ec-accel:dmi:*:svnGOOGLE:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
# caroline board (Samsung Chromebook Pro) reports itself as svnGoogle
sensor:modalias:platform:cros-ec-accel:dmi:*:svnGoogle:pnCaroline*
sensor:modalias:platform:cros-ec-accel:dmi:*:svnGoogle:pnCaroline*:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
# Dell Inspiron Chromebook 14 2-in-1
sensor:modalias:platform:cros-ec-accel:dmi:*svnGoogle:pnVayne*
sensor:modalias:platform:cros-ec-accel:dmi:*svnGoogle:pnVayne*:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
# nocturne board (Google Pixel Slate)
sensor:modalias:platform:cros-ec-accel:dmi:*Google_Nocturne*
sensor:modalias:platform:cros-ec-accel:dmi:*Google_Nocturne*:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
#########################################
@ -337,13 +357,13 @@ sensor:modalias:acpi:KIOX000A*:dmi:bvnINSYDECorp.:bvrBYT70A.YNCHENG.WIN.007:*:sv
# and no other devices have both board_name *and* product_name set to
# "Default string". So combined with the sensor modalias and BIOS date this
# should be unique enough to identify the GPDwin
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd10/25/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd11/18/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd12/23/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd12/26/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd02/21/2017:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd03/20/2017:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/25/2017:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd10/25/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd11/18/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd12/23/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd12/26/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd02/21/2017:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd03/20/2017:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/25/2017:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
ACCEL_LOCATION=base
#########################################
@ -371,7 +391,7 @@ sensor:modalias:i2c:bmc150_accel:dmi:*:svnHewlett-Packard:pnHPPavilionx2Detachab
# The I.T.Works TW891 2-in-1's DMI has the product-name field set, but not
# the sys-vendor field. This makes the DMI data a bit generic, so we match
# the whole dmi modalias, except for the BIOS version/date
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:*:svnTobefilledbyO.E.M.:pnTW891:pvrTobefilledbyO.E.M.:rvnTobefilledbyO.E.M.:rnTW891:rvr1.0:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:*:svnTobefilledbyO.E.M.:pnTW891:pvrTobefilledbyO.E.M.:rvnTobefilledbyO.E.M.:rnTW891:rvr1.0:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
# I.T.Works TW701 7" windows tablet, same hw as Trekstor ST70416-6
@ -379,15 +399,25 @@ sensor:modalias:acpi:BMA250*:dmi:*:bvritWORKS.G.WI71C.JGBMRB*:*:svnInsyde:pni71c
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
# Irbis TW90
# Irbis
#########################################
#TW90
sensor:modalias:acpi:BOSC0200*:dmi:*:svnIRBIS:pnTW90:*
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
# NB111
sensor:modalias:acpi:KIOX010A*:dmi:*svn*IRBIS*:*pn*NB111:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#TW118
sensor:modalias:acpi:BOSC0200*:dmi:*:svnIRBIS:pnTW118:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
#########################################
# iOTA 360
#########################################
sensor:modalias:acpi:KIOX000A*:dmi:*svn*iOTA*:*pn*IOTA2210*
sensor:modalias:acpi:KIOX000A*:dmi:*svn*iOTA*:*pn*IOTA2210:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
#########################################
@ -395,7 +425,7 @@ sensor:modalias:acpi:KIOX000A*:dmi:*svn*iOTA*:*pn*IOTA2210*
#########################################
# EZpad mini 3
sensor:modalias:acpi:BOSC0200*:dmi:bvnINSYDECorp.:bvrjumperx.T87.KFBNEE*
sensor:modalias:acpi:BOSC0200*:dmi:bvnINSYDECorp.:bvrjumperx.T87.KFBNEE:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# EZpad 6 Pro
@ -415,10 +445,10 @@ sensor:modalias:acpi:KIOX000A*:dmi:bvnINSYDECorp.:bvrVISION.I22K*:svnKAZAM:pnVIS
#########################################
# Lamina
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*svnLamina*:*pnT701BR.SE*
sensor:modalias:acpi:SMO8500*:dmi:*svnLamina*:*pnT701BR.SE:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
sensor:modalias:acpi:KIOX000A*:dmi:*svnLAMINA:pnT-1016BNORD*
sensor:modalias:acpi:KIOX000A*:dmi:*svnLAMINA:pnT-1016BNORD:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
@ -427,7 +457,7 @@ sensor:modalias:acpi:KIOX000A*:dmi:*svnLAMINA:pnT-1016BNORD*
sensor:modalias:acpi:NCPE0388*:dmi:*:rnLenovoYOGA510-14IKB:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, 1
sensor:modalias:acpi:BOSC0200*:dmi:*ThinkPadYoga11e3rdGen*
sensor:modalias:acpi:BOSC0200*:dmi:*ThinkPadYoga11e3rdGen:*
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
# Miix3-1030
@ -443,7 +473,7 @@ sensor:modalias:acpi:BOSC0200*:dmi:*:svnLENOVO:pn81H3:*
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
# IdeaPad Miix 300
sensor:modalias:acpi:SMO8500*:dmi:bvnLENOVO:*:pvrMIIX300-*
sensor:modalias:acpi:SMO8500*:dmi:bvnLENOVO:*:pvrMIIX300-*:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# IdeaPad Miix 310 note this only is for BIOS version (bvr) 1HCN4?WW and 1HCN2?WW, which has
@ -454,7 +484,7 @@ sensor:modalias:acpi:KIOX000A*:dmi:bvnLENOVO:bvr1HCN2?WW:*:svnLENOVO:pn80SG:*
# IdeaPad Miix 320, different batches use a different sensor
sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80XF:*
sensor:modalias:acpi:SMO8840*:dmi:*:svnLENOVO:pn80XF:pvrLenovoMIIX320*
sensor:modalias:acpi:SMO8840*:dmi:*:svnLENOVO:pn80XF:pvrLenovoMIIX320:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# IdeaPad Miix 510, multiple expressions match different internal names
@ -501,9 +531,20 @@ sensor:modalias:acpi:KIOX010A*:dmi:*:svnMEDION:pnE*:*
sensor:modalias:acpi:KIOX010A*:dmi:*:svnMEDION:pnMEDION*:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# Medion Akoya E2221T MD60691
sensor:modalias:acpi:KIOX020A*:dmi:*:pnE2221TMD60691*:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, 1
ACCEL_LOCATION=base
#########################################
# MPMAN
#########################################
# MPMAN Converter 9, same hw as the I.T.Works TW891 2-in-1
sensor:modalias:acpi:SMO8500*:dmi:*:svnMPMAN:pnConverter9:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
# MPMAN MPWIN895C
sensor:modalias:acpi:BMA250E*:dmi:*:svnMPMAN:pnMPWIN8900CL:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
@ -555,9 +596,17 @@ sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrONDA.W89*:svnInsyde:pnONDATa
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# Onda v975w, generic DMI strings, match entire dmi modalias inc. bios-date
sensor:modalias:acpi:SMO8500*:dmi:bvnAmericanMegatrendsInc.:bvr5.6.5:bd07/25/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
sensor:modalias:acpi:SMO8500*:dmi:bvnAmericanMegatrendsInc.:bvr5.6.5:bd07/25/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
#########################################
# One-netbook
#########################################
# One-netbook OneMix 3 Pro
sensor:modalias:acpi:BOSC0200*:dmi:*svnONE-NETBOOKTECHNOLOGYCO*:pnOne-Mix3Pro:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################
# Peaq
#########################################
@ -587,8 +636,8 @@ sensor:modalias:acpi:BMA250E*:dmi:*:svnShenzhenPLOYER*:pnMOMO7W:*
# The Point of View TAB-P800W does not have its product name filled, so we
# match the entire dmi-alias, assuming that the use of a BMA250E +
# bios-version + bios-date combo is unique
sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr3BAIR1013:bd08/22/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr3BAIR1014:bd10/24/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr3BAIR1013:bd08/22/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:*
sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr3BAIR1014:bd10/24/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
# Point of View TAB-P1005W-232 (v2.0)
@ -599,6 +648,14 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:rvnPOV:rnI102A:*
sensor:modalias:i2c:bmc150_accel:dmi:bvnINSYDECorp.:*:svnInsyde:pnBayTrail:*:rvn105B:rn0E57:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
#########################################
# Predia
#########################################
# Predia Basic tablet, most DMI strings are generic, match on BIOS version
sensor:modalias:acpi:BOSC0200*:dmi:bvnINSYDECorp.:bvrMx.WT107.KUBNGEA*svnInsyde:pnCherryTrail:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
#########################################
# Prowise
#########################################
@ -610,7 +667,7 @@ sensor:modalias:acpi:SMO8500*:dmi:*:svnProwise:pnPT301:*
#########################################
# SCT101CTM
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvrSCH12i.WJ210Z.KtBJRCA03*
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvrSCH12i.WJ210Z.KtBJRCA03:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################
@ -642,7 +699,7 @@ sensor:modalias:acpi:SMO8500*:dmi:*bd12/19/2014:*:rvnTECLAST:rntPAD:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
# Teclast X98 Plus I (A5C6), generic DMI strings, match entire dmi modalias inc. bios-date
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.011:bd11/03/2015:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnCherryTrailCR:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.011:bd11/03/2015:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnCherryTrailCR:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
# Teclast X98 Plus II
@ -654,7 +711,7 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnX98PlusII:*
#########################################
# Thundersoft TST168 tablet, generic DMI strings, match entire dmi modalias inc. bios-date
sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr5.6.5:bd04/15/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr5.6.5:bd04/15/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################

View File

@ -6,35 +6,37 @@
# The lookup keys are composed in:
# 70-mouse.rules
#
# Note: The format of the "mouse:" prefix match key is a
# contract between the rules file and the hardware data, it might
# change in later revisions to support more or better matches, it
# is not necessarily expected to be a stable ABI.
# Note: The format of the "mouse:" prefix match key is a contract between the
# rules file and the hardware data, it might change in later revisions to
# support more or better matches, it is not necessarily expected to be a stable
# ABI.
#
# Match string format:
# Match key format:
# mouse:<subsystem>:v<vid>p<pid>:name:<name>:
#
# Supported subsystems: usb, bluetooth
# vid/pid as 4-digit hex lowercase vendor/product
#
# if vid/pid is unavailable, use
# mouse:*:name:<name>:
# mouse:*:name:<name>:*
# if name is unavailable, use
# mouse:<subsystem>:v<vid>p<pid>:*
# mouse:<subsystem>:v<vid>p<pid>:*
#
# For example, the following 5 matches all match the same mouse:
# mouse:usb:v17efp6019:name:Lenovo Optical USB Mouse:
# mouse:usb:*:name:Lenovo Optical USB Mouse:
# mouse:usb:v17efp6019:*
# mouse:*:name:Lenovo Optical USB Mouse:
# mouse:usb:v17efp6019:name:Lenovo Optical USB Mouse:*
# mouse:usb:*:name:Lenovo Optical USB Mouse:*
# mouse:usb:v17efp6019:*
# mouse:*:name:Lenovo Optical USB Mouse:*
#
# All matches should end in ':*' to allow future expansions of the match key.
#
# To add local entries, create a new file
# /etc/udev/hwdb.d/71-mouse-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
# udevadm trigger /dev/input/eventXX
# where /dev/input/eventXX is the mouse in question. If in
# doubt, simply use /dev/input/event* to reload all input rules.
# where /dev/input/eventXX is the mouse in question. If in doubt, simply use
# /dev/input/event* to reload all input rules.
#
# If your changes are generally applicable, preferably send them as a pull
# request to
@ -44,12 +46,12 @@
# udevadm info /dev/input/eventXX.
#
# Allowed properties are:
# ID_INPUT_TRACKBALL
# MOUSE_DPI
# MOUSE_WHEEL_CLICK_ANGLE
# MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL
# MOUSE_WHEEL_CLICK_COUNT
# MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL
# ID_INPUT_TRACKBALL
# MOUSE_DPI
# MOUSE_WHEEL_CLICK_ANGLE
# MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL
# MOUSE_WHEEL_CLICK_COUNT
# MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL
#
#########################################
# ID_INPUT_TRACKBALL #
@ -63,7 +65,7 @@
#########################################
#
# DPI settings are specified as
# MOUSE_DPI=<dpi>[@<frequency>]
# MOUSE_DPI=<dpi>[@<frequency>]
#
# Where <dpi> is the resolution in dots per inch, and <frequency> the
# sampling frequency in Hz (optional). If a device supports dynamic
@ -141,9 +143,9 @@
##########################################
# Generic
##########################################
mouse:*:name:*Trackball*:
mouse:*:name:*trackball*:
mouse:*:name:*TrackBall*:
mouse:*:name:*Trackball*:*
mouse:*:name:*trackball*:*
mouse:*:name:*TrackBall*:*
ID_INPUT_TRACKBALL=1
##########################################
@ -153,7 +155,7 @@ mouse:*:name:*TrackBall*:
# Apple MagicMouse
# Note: this device changes name once connected to a mac, the name ends up
# as $username`s mouse
mouse:bluetooth:v05acp030d:name:*:
mouse:bluetooth:v05acp030d:name:*:*
MOUSE_DPI=1300@1000
##########################################
@ -161,7 +163,7 @@ mouse:bluetooth:v05acp030d:name:*:
##########################################
# Chicony 2.4G Multimedia Wireless Kit MG-0919
mouse:usb:v04f2p0963:name:Chicony 2.4G Multimedia Wireless Kit:
mouse:usb:v04f2p0963:name:Chicony 2.4G Multimedia Wireless Kit:*
MOUSE_DPI=1000@142
##########################################
@ -169,15 +171,15 @@ mouse:usb:v04f2p0963:name:Chicony 2.4G Multimedia Wireless Kit:
##########################################
# Dell MUAR DEL7
mouse:usb:v413cp3012:name:Dell Dell USB Optical Mouse:
mouse:usb:v413cp3012:name:Dell Dell USB Optical Mouse:*
MOUSE_DPI=400@166
# Dell USB Laser Mouse
mouse:usb:v046dpc063:name:DELL DELL USB Laser Mouse:
mouse:usb:v046dpc063:name:DELL DELL USB Laser Mouse:*
MOUSE_DPI=1000@125
# Dell MS116t
mouse:usb:v413cp301a:name:PixArt Dell MS116 USB Optical Mouse:
mouse:usb:v413cp301a:name:PixArt Dell MS116 USB Optical Mouse:*
MOUSE_DPI=1000@125
##########################################
@ -185,14 +187,14 @@ mouse:usb:v413cp301a:name:PixArt Dell MS116 USB Optical Mouse:
#########################################
# Dynex Wired Optical Mouse (DX-WMSE2)
mouse:usb:v0461p4d46:name:USB Optical Mouse:
mouse:usb:v0461p4d46:name:USB Optical Mouse:*
MOUSE_DPI=1000@125
##########################################
# Fujitsu Siemens
##########################################
mouse:usb:v0461p4d16:name:USB Optical Mouse:
mouse:usb:v0461p4d16:name:USB Optical Mouse:*
MOUSE_DPI=500@125
##########################################
@ -200,7 +202,7 @@ mouse:usb:v0461p4d16:name:USB Optical Mouse:
##########################################
# SNES Mouse plugged into a Retrode 2
mouse:usb:v0403p97c1:name:Retrode SNES Mouse:
mouse:usb:v0403p97c1:name:Retrode SNES Mouse:*
MOUSE_DPI=235@126
##########################################
@ -208,11 +210,11 @@ mouse:usb:v0403p97c1:name:Retrode SNES Mouse:
##########################################
# FM-901 Wireless Mouse
mouse:usb:v1ea7p000b:name:2.4G RF Mouse:
mouse:usb:v1ea7p000b:name:2.4G RF Mouse:*
MOUSE_DPI=*800@125 1600@125
# WK-727
mouse:usb:v04d9p0499:name:*
mouse:usb:v04d9p0499:name:*:*
MOUSE_DPI=800@125
##########################################
@ -220,7 +222,7 @@ mouse:usb:v04d9p0499:name:*
##########################################
# HandShoe Mouse
mouse:usb:v192fp0916:name:USB Optical Mouse:
mouse:usb:v192fp0916:name:USB Optical Mouse:*
MOUSE_DPI=1000@128
##########################################
@ -228,7 +230,7 @@ mouse:usb:v192fp0916:name:USB Optical Mouse:
##########################################
# Hoverstop active ergonomic mouse
mouse:usb:v088dp1234:name:HoverStop NL Hoverstop active ergonomic mouse:
mouse:usb:v088dp1234:name:HoverStop NL Hoverstop active ergonomic mouse:*
MOUSE_DPI=400@129
##########################################
@ -236,18 +238,18 @@ mouse:usb:v088dp1234:name:HoverStop NL Hoverstop active ergonomic mouse:
##########################################
# HP USB 1000dpi Laser Mouse
mouse:usb:v0458p0133:name:Mouse Laser Mouse:
mouse:usb:v0458p0133:name:Mouse Laser Mouse:*
MOUSE_DPI=1000@125
MOUSE_WHEEL_CLICK_ANGLE=15
# HP X1000
# Dell MS111-T
mouse:usb:v093ap2510:name:PixArt USB Optical Mouse:
mouse:usb:v093ap2510:name:PIXART USB OPTICAL MOUSE:
mouse:usb:v093ap2510:name:PixArt USB Optical Mouse:*
mouse:usb:v093ap2510:name:PIXART USB OPTICAL MOUSE:*
MOUSE_DPI=1000@125
# HP X1200 Optical Mouse
mouse:usb:v03f0p0641:name:PixArt HP X1200 USB Optical Mouse:
mouse:usb:v03f0p0641:name:PixArt HP X1200 USB Optical Mouse:*
MOUSE_DPI=1100@125
##########################################
@ -263,7 +265,7 @@ mouse:usb:v04b3p3107:name:*
##########################################
# Kensington Expert Mouse trackball
mouse:usb:v047dp1020:*Kensington Expert Mouse*
mouse:usb:v047dp1020:*Kensington Expert Mouse*:*
ID_INPUT_TRACKBALL=1
##########################################
@ -271,31 +273,31 @@ mouse:usb:v047dp1020:*Kensington Expert Mouse*
##########################################
# Lenovo Optical USB Mouse
mouse:usb:v17efp6019:name:Lenovo Optical USB Mouse:
mouse:usb:v17efp6019:name:Lenovo Optical USB Mouse:*
MOUSE_DPI=1000@125
# Lenovo M-U0025-O
mouse:usb:v17efp6019:name:Logitech Lenovo USB Optical Mouse:
mouse:usb:v17efp6019:name:Logitech Lenovo USB Optical Mouse:*
MOUSE_DPI=1000@166
# Lenovo USB mouse model MO28UOL
mouse:usb:v04b3p310c:name:USB Optical Mouse:
mouse:usb:v04b3p310c:name:USB Optical Mouse:*
MOUSE_DPI=400@142
# Lenovo Precision USB Mouse
mouse:usb:v17efp6050:name:Lenovo Precision USB Mouse:
mouse:usb:v17efp6050:name:Lenovo Precision USB Mouse:*
MOUSE_DPI=1200@127
# Lenovo MOBGUL
mouse:usb:v17efp601d:name:Primax Lenovo Laser Mouse:
mouse:usb:v17efp601d:name:Primax Lenovo Laser Mouse:*
MOUSE_DPI=1600@125
# Lenovo MOBGULA
mouse:usb:v17efp6045:name:Lenovo USB Laser Mouse:
mouse:usb:v17efp6045:name:Lenovo USB Laser Mouse:*
MOUSE_DPI=1600@125
# ThinkPad USB Laser Mouse
mouse:usb:v17efp6044:name:ThinkPad USB Laser Mouse:
mouse:usb:v17efp6044:name:ThinkPad USB Laser Mouse:*
MOUSE_DPI=1200@125
##########################################
@ -310,135 +312,139 @@ mouse:usb:v17efp6044:name:ThinkPad USB Laser Mouse:
## G Series ##
# Logitech G5 Laser Mouse
mouse:usb:v046dpc049:name:Logitech USB Gaming Mouse:
mouse:usb:v046dpc049:name:Logitech USB Gaming Mouse:*
MOUSE_DPI=400@500 *800@500 2000@500
# Logitech G500s Laser Gaming Mouse
mouse:usb:v046dpc24e:name:Logitech G500s Laser Gaming Mouse:
mouse:usb:v046dpc24e:name:Logitech G500s Laser Gaming Mouse:*
MOUSE_DPI=400@500 *800@500 2000@500
# Logitech G9
mouse:usb:v046dpc048:name:Logitech G9 Laser Mouse:
mouse:usb:v046dpc048:name:Logitech G9 Laser Mouse:*
MOUSE_DPI=400@1000 800@1000 *1600@1000
# Logitech G9x [Call of Duty MW3 Edition]
mouse:usb:v046dpc249:name:Logitech G9x Laser Mouse:
mouse:usb:v046dpc249:name:Logitech G9x Laser Mouse:*
MOUSE_DPI=400@1000 800@1000 *1600@1000 3200@1000
# Logitech G100s Optical Gaming Mouse
mouse:usb:v046dpc247:name:Logitech G100s Optical Gaming Mouse:
mouse:usb:v046dpc247:name:Logitech G100s Optical Gaming Mouse:*
MOUSE_DPI=*1000@500 1750@500 2500@500
# Logitech G400 (Wired)
mouse:usb:v046dpc245:name:Logitech Gaming Mouse G400:
mouse:usb:v046dpc245:name:Logitech Gaming Mouse G400:*
MOUSE_DPI=400@1000 *800@1000 1800@1000 3600@1000
# Logitech G400s (Wired)
mouse:usb:v046dpc24c:name:Logitech G400s Optical Gaming Mouse:
mouse:usb:v046dpc24c:name:Logitech G400s Optical Gaming Mouse:*
MOUSE_DPI=400@1000 *800@1000 2000@1000 4000@1000
# Logitech G402 Hyperion Fury
mouse:usb:v046dpc07e:name:Logitech Gaming Mouse G402:
mouse:usb:v046dpc07e:name:Logitech Gaming Mouse G402:*
MOUSE_DPI=400@1000 *800@1000 1600@1000 3200@1000
# Logitech G403 Prodigy (Wired)
mouse:usb:v046dpc083:name:Logitech G403 Prodigy Gaming Mouse:*
MOUSE_DPI=400@1000 *800@1000 1600@1000 3200@1000
# Logitech G500 Mouse
mouse:usb:v046dpc068:name:Logitech G500:
mouse:usb:v046dpc068:name:Logitech G500:*
MOUSE_DPI=*1600@500 2600@500 3600@500
# Logitech G502 Proteus Spectrum
mouse:usb:v046dpc332:name:Logitech Gaming Mouse G502:
mouse:usb:v046dpc332:name:Logitech Gaming Mouse G502:*
# Logitech G502 HERO SE
mouse:usb:v046dpc08b:name:Logitech G502 HERO SE:
mouse:usb:v046dpc08b:name:Logitech G502 HERO SE:*
# Logitech G502 Hero
mouse:usb:v046dpc08b:name:Logitech G502 HERO Gaming Mouse:
mouse:usb:v046dpc08b:name:Logitech G502 HERO Gaming Mouse:*
MOUSE_DPI=1200@1000 *2400@1000 3200@1000 6400@1000
# Logitech G700 Laser Mouse (Wired)
mouse:usb:v046dpc06b:name:Logitech G700 Laser Mouse:
mouse:usb:v046dpc06b:name:Logitech G700 Laser Mouse:*
# Logitech G700 Laser Mouse (Wireless)
mouse:usb:v046dpc531:name:Logitech USB Receiver:
mouse:usb:v046dpc531:name:Logitech USB Receiver:*
MOUSE_DPI=*1000@500 3800@500 500@1000 1500@1000 2000@1000
# Logitech G703 (Wired)
mouse:usb:v046dpc087:name:Logitech G703 Wired/Wireless Gaming Mouse:
mouse:usb:v046dpc087:name:Logitech G703 Wired/Wireless Gaming Mouse:*
# Logitech G703 (Wireless)
mouse:usb:v046dpc539:name:Logitech USB Receiver Mouse:
mouse:usb:v046dpc539:name:Logitech USB Receiver Mouse:*
MOUSE_DPI=400@1000 800@1000 *1600@1000 3200@1000
## M Series ##
# Logitech Wireless Mouse M185
mouse:usb:v046dp4008:name:Logitech M185:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4008:
mouse:usb:v046dp4008:name:Logitech M185:*
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4008:*
MOUSE_DPI=1000@125
# Logitech Wireless Mouse M510
mouse:usb:v046dp1025:name:Logitech M510:
mouse:usb:v046dp1025:name:Logitech M510:*
MOUSE_DPI=1000@125
# Logitech M705 (marathon mouse)
mouse:usb:v046dp101b:name:Logitech M705:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:101b:
mouse:usb:v046dp101b:name:Logitech M705:*
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:101b:*
MOUSE_DPI=1000@125
# Logitech M705 (newer version?)
mouse:usb:v046dp406d:name:Logitech M705:
mouse:usb:v046dp406d:name:Logitech M705:*
MOUSE_DPI=1000@167
# Logitech M305 Wireless Optical Mouse
mouse:usb:v046dpc52f:name:Logitech USB Receiver:
mouse:usb:v046dpc52f:name:Logitech USB Receiver:*
MOUSE_DPI=1000@170
# Logitech Wireless Mouse M310
mouse:usb:v046dp1024:name:Logitech M310:
mouse:usb:v046dp1024:name:Logitech M310:*
MOUSE_DPI=1100@168
# Logitech Wireless Mouse M325
mouse:usb:v046dp400a:name:Logitech M325:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:400a:
mouse:usb:v046dp400a:name:Logitech M325:*
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:400a:*
MOUSE_DPI=600@166
MOUSE_WHEEL_CLICK_ANGLE=20
# Logitech M570 trackball
mouse:usb:v046dp1028:name:Logitech M570:
mouse:usb:v046dp1028:name:Logitech M570:*
MOUSE_DPI=540@167
ID_INPUT_TRACKBALL=1
## MX Series ##
# Logitech Performance MX
mouse:usb:v046dp101a:name:Logitech Performance MX:
mouse:usb:v046dp101a:name:Logitech Performance MX:*
MOUSE_DPI=1000@166
# Logitech MX Revolution
mouse:usb:v046dpc51a:name:Logitech USB Receiver:
mouse:usb:v046dpc51a:name:Logitech USB Receiver:*
MOUSE_DPI=800@200
# Logitech MX 518
mouse:usb:v046dpc01e:name:Logitech USB-PS/2 Optical Mouse:
mouse:usb:v046dpc01e:name:Logitech USB-PS/2 Optical Mouse:*
MOUSE_DPI=400@125 *800@125 1600@125
# Logitech MX1000 Laser Cordless Mouse
mouse:bluetooth:v046dpb003:name:Logitech MX1000 mouse:
mouse:bluetooth:v046dpb003:name:Logitech MX1000 mouse:*
MOUSE_DPI=800@80
# Logitech Anywhere MX
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:1017:
mouse:usb:v046dp1017:name:Logitech Anywhere MX:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:1017:*
mouse:usb:v046dp1017:name:Logitech Anywhere MX:*
MOUSE_WHEEL_CLICK_ANGLE=20
# Logitech Anywhere MX 2S (via Logitech Unifying Receiver)
mouse:usb:v046dp406a:name:Logitech MX Anywhere 2S:
mouse:usb:v046dp406a:name:Logitech MX Anywhere 2S:*
MOUSE_WHEEL_CLICK_ANGLE=20
# Logitech Anywhere MX 2S (via Bluetooth)
mouse:bluetooth:v046dpb01a:name:MX Anywhere 2S Mouse:
mouse:bluetooth:v046dpb01a:name:MX Anywhere 2S Mouse:*
MOUSE_WHEEL_CLICK_ANGLE=20
# Logitech MX Master (via Logitech Unifying Receiver)
# Horiz wheel has 14 stops, angle is rounded up
mouse:usb:v046dp4060:name:Logitech MX Master:
mouse:usb:v046dp4041:name:Logitech MX Master:
mouse:usb:v046dp4060:name:Logitech MX Master:*
mouse:usb:v046dp4041:name:Logitech MX Master:*
MOUSE_DPI=1000@166
MOUSE_WHEEL_CLICK_ANGLE=15
MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL=26
@ -447,7 +453,7 @@ mouse:usb:v046dp4041:name:Logitech MX Master:
# Logitech MX Master (via Bluetooth)
# Horiz wheel has 14 stops, angle is rounded up
mouse:bluetooth:v046dpb012:name:MX Master Mouse:
mouse:bluetooth:v046dpb012:name:MX Master Mouse:*
MOUSE_DPI=1000@2000
MOUSE_WHEEL_CLICK_ANGLE=15
MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL=26
@ -456,7 +462,7 @@ mouse:bluetooth:v046dpb012:name:MX Master Mouse:
# Logitech MX Master 2S (via Logitech Unifying Receiver)
# Horiz wheel has 14 stops, angle is rounded up
mouse:usb:v046dp4069:name:Logitech MX Master 2s:
mouse:usb:v046dp4069:name:Logitech MX Master 2s:*
MOUSE_DPI=1000@125
MOUSE_WHEEL_CLICK_ANGLE=15
MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL=26
@ -465,7 +471,7 @@ mouse:usb:v046dp4069:name:Logitech MX Master 2s:
# Logitech MX Master 2S (via Bluetooth)
# Horiz wheel has 14 stops, angle is rounded up
mouse:bluetooth:v046dpb019:name:MX Master 2S Mouse:
mouse:bluetooth:v046dpb019:name:MX Master 2S Mouse:*
MOUSE_DPI=1000@2000
MOUSE_WHEEL_CLICK_ANGLE=15
MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL=26
@ -473,176 +479,176 @@ mouse:bluetooth:v046dpb019:name:MX Master 2S Mouse:
MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL=14
# Logitech MX Ergo (via Bluetooth)
mouse:bluetooth:v046dpb01d:name:MX Ergo Mouse:
mouse:bluetooth:v046dpb01d:name:MX Ergo Mouse:*
ID_INPUT_TRACKBALL=1
## Other ##
# Logitech M-BJ58 Optical Mouse
mouse:usb:v046dpc00e:name:Logitech USB-PS/2 Optical Mouse:
mouse:usb:v046dpc00e:name:Logitech USB-PS/2 Optical Mouse:*
MOUSE_DPI=400@125
# Logitech Mini Optical Mouse
mouse:usb:v046dpc016:name:Logitech Optical USB Mouse:
mouse:usb:v046dpc016:name:Logitech Optical USB Mouse:*
MOUSE_DPI=400@125
# Logitech MX310 Optical Mouse
mouse:usb:v046dpc01b:name:Logitech USB-PS/2 Optical Mouse:
mouse:usb:v046dpc01b:name:Logitech USB-PS/2 Optical Mouse:*
MOUSE_DPI=400@125
# Logitech USB-PS/2 M-BT58
mouse:usb:v046dpc03e:name:Logitech USB-PS/2 Optical Mouse:
mouse:usb:v046dpc03e:name:Logitech USB-PS/2 Optical Mouse:*
MOUSE_DPI=400@125
# Logitech TrackMan Marble Wheel USB
mouse:usb:v046dpc401:name:Logitech USB-PS/2 Trackball:
mouse:usb:v046dpc401:name:Logitech USB-PS/2 Trackball:*
MOUSE_DPI=400@125
# Logitech Cordless MouseMan Optical M-RM63
mouse:usb:v046dpc501:name:Logitech USB Receiver:
mouse:usb:v046dpc501:name:Logitech USB Receiver:*
MOUSE_DPI=800@63
# Logitech USB-PS/2 M-BZ96C
mouse:usb:v046dpc045:name:Logitech USB-PS/2 Optical Mouse:
mouse:usb:v046dpc045:name:Logitech USB-PS/2 Optical Mouse:*
MOUSE_DPI=600@125
# Logitech MX400 Performance Laser Mouse
mouse:usb:v046dpc043:name:Logitech USB-PS/2 Optical Mouse:
mouse:usb:v046dpc043:name:Logitech USB-PS/2 Optical Mouse:*
MOUSE_DPI=800@125
# Logitech MX1000 Laser Cordless Mouse
mouse:usb:v046dpc50e:name:Logitech USB RECEIVER:
mouse:usb:v046dpc50e:name:Logitech USB RECEIVER:*
MOUSE_DPI=800@125
# Logitech Cordless Click! Plus
mouse:usb:v046dpc50e:name:Logitech USB Receiver:
mouse:usb:v046dpc50e:name:Logitech USB Receiver:*
MOUSE_DPI=800@125
# Logitech, Inc. RX 300 Optical Mouse
mouse:usb:v046dpc040:name:Logitech USB-PS/2 Optical Mouse:
mouse:usb:v046dpc040:name:Logitech USB-PS/2 Optical Mouse:*
MOUSE_DPI=800@125
# Logitech, Inc. RX 250 Optical Mouse
mouse:usb:v046dpc050:name:Logitech USB-PS/2 Optical Mouse:
mouse:usb:v046dpc050:name:Logitech USB-PS/2 Optical Mouse:*
MOUSE_DPI=1000@142
# Logitech B605 Wireless Mouse (also M505)
mouse:usb:v046dp101d:name:Logitech B605:
mouse:usb:v046dp101d:name:Logitech M505:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:101d:
mouse:usb:v046dp101d:name:Logitech B605:*
mouse:usb:v046dp101d:name:Logitech M505:*
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:101d:*
MOUSE_DPI=900@166
# Logitech Cordless Desktop Wave Mouse
mouse:usb:v046dpc517:name:Logitech USB Receiver:
mouse:usb:v046dpc517:name:Logitech USB Receiver:*
MOUSE_DPI=950@125
# Logitech RX1000 Laser Mouse
mouse:usb:v046dpc046:name:Logitech USB Optical Mouse:
mouse:usb:v046dpc046:name:Logitech USB Optical Mouse:*
MOUSE_DPI=1000@125
# Logitech M100 Optical Mouse
mouse:usb:v046dpc05a:name:Logitech USB Optical Mouse:
mouse:usb:v046dpc05a:name:Logitech USB Optical Mouse:*
MOUSE_DPI=1000@125
# Logitech USB Laser Mouse M-U0011-O rebranded as "terra Laser"
mouse:usb:v046dpc065:name:Logitech USB Laser Mouse:
mouse:usb:v046dpc065:name:Logitech USB Laser Mouse:*
MOUSE_DPI=1000@125
# Logitech USB Laser Mouse M-U0007 [M500]
mouse:usb:v046dpc069:name:Logitech USB Laser Mouse:
mouse:usb:v046dpc069:name:Logitech USB Laser Mouse:*
MOUSE_DPI=1000@125
# Logitech V500 Cordless Notebook Mouse
mouse:usb:v046dpc510:name:Logitech USB Receiver:
mouse:usb:v046dpc510:name:Logitech USB Receiver:*
MOUSE_DPI=1000@125
# Logitech M560 Wireless Mouse
mouse:usb:v046dp402d:name:Logitech M560:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:402d:
mouse:usb:v046dp402d:name:Logitech M560:*
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:402d:*
MOUSE_DPI=1000@125
# Logitech MK260 Wireless Combo Receiver aka M-R0011
mouse:usb:v046dpc52e:name:Logitech USB Receiver:
mouse:usb:v046dpc52e:name:Logitech USB Receiver:*
MOUSE_DPI=1000@200
# Logitech USB Laser Mouse M-UAS144 [LS1 Laser Mouse]
mouse:usb:v046dpc062:name:Logitech USB Laser Mouse:
mouse:usb:v046dpc062:name:Logitech USB Laser Mouse:*
MOUSE_DPI=1200@125
# Logitech T620 (or, the soap)
mouse:usb:v046dp4027:name:Logitech T620:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4027:
mouse:usb:v046dp4027:name:Logitech T620:*
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4027:*
MOUSE_DPI=1200@250
# Logitech ZoneTouch Mouse T400
mouse:usb:v046dp4026:name:Logitech T400:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4026:
mouse:usb:v046dp4026:name:Logitech T400:*
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:4026:*
MOUSE_DPI=1300@166
# Logitech TrackMan Wheel (USB)
mouse:usb:v046dpc404:name:Logitech Trackball:
mouse:usb:v046dpc404:name:Logitech Trackball:*
MOUSE_DPI=300@125
# Logitech Ultrathin Touch Mouse
mouse:bluetooth:v046dpb00d:name:Ultrathin Touch Mouse:
mouse:bluetooth:v046dpb00d:name:Ultrathin Touch Mouse:*
MOUSE_DPI=1000@1000
# ImPS/2 Logitech Wheel Mouse
mouse:ps2:*:name:ImPS/2 Logitech Wheel Mouse:
mouse:ps2:*:name:ImPS/2 Logitech Wheel Mouse:*
MOUSE_DPI=400@100
# ImExPS/2 Logitech Wheel Mouse
mouse:ps2:*:name:ImExPS/2 Logitech Wheel Mouse:
mouse:ps2:*:name:ImExPS/2 Logitech Wheel Mouse:*
MOUSE_DPI=400@250
##########################################
# Microsoft
##########################################
mouse:usb:v045ep0040:name:Microsoft Microsoft 3-Button Mouse with IntelliEye(TM):
mouse:usb:v045ep0040:name:Microsoft Microsoft 3-Button Mouse with IntelliEye(TM):*
MOUSE_DPI=400@125
# Note: unsure that these work, it's likely that all devices on these
# receivers show up with the same vid/pid/name
# Microsoft Wireless Mouse 5000
mouse:usb:v045ep0745:name:Microsoft Microsoft® 2.4GHz Transceiver v6.0:
mouse:usb:v045ep0745:name:Microsoft Microsoft® 2.4GHz Transceiver v6.0:*
MOUSE_DPI=800@142
# Microsoft Comfort Mouse 4500
mouse:usb:v045ep076c:name:Microsoft Microsoft® Comfort Mouse 4500:
mouse:usb:v045ep076c:name:Microsoft Microsoft® Comfort Mouse 4500:*
MOUSE_DPI=1000@125
# Microsoft Wireless Mobile Mouse 4000
mouse:usb:v045ep0745:name:Microsoft Microsoft® Nano Transceiver v2.0:
mouse:usb:v045ep0745:name:Microsoft Microsoft® Nano Transceiver v2.0:*
MOUSE_DPI=1000@142
# Microsoft Sculpt Ergonomic Mouse
mouse:usb:v045ep07a5:name:Microsoft Microsoft® 2.4GHz Transceiver v9.0:
mouse:usb:v045ep07a5:name:Microsoft Microsoft® 2.4GHz Transceiver v9.0:*
MOUSE_DPI=1000@142
# Microsoft Arc Touch Mouse USB
mouse:usb:v045ep07b1:name:Microsoft Microsoft® Nano Transceiver v1.0:
mouse:usb:v045ep07b1:name:Microsoft Microsoft® Nano Transceiver v1.0:*
MOUSE_DPI=1400@142
# Microsoft Wireless Laser Mouse 8000
mouse:bluetooth:v045ep0702:name:Microsoft Wireless Laser Mouse 8000:
mouse:bluetooth:v045ep0702:name:Microsoft Wireless Laser Mouse 8000:*
MOUSE_DPI=1000@1000
# Microsoft Sculpt Comfort Mouse
mouse:bluetooth:v045ep07a2:name:Microsoft Sculpt Comfort Mouse:
mouse:bluetooth:v045ep07a2:name:Microsoft Sculpt Comfort Mouse:*
MOUSE_DPI=1000@2000
# Microsoft Arc Touch Mouse SE:
mouse:bluetooth:v045ep07f3:name:Arc Touch Mouse SE:
mouse:bluetooth:v045ep07f3:name:Arc Touch Mouse SE:*
MOUSE_DPI=1000@2000
# Microsoft Surface Mouse
mouse:bluetooth:v0000p0000:name:Surface Mouse:
mouse:bluetooth:v0000p0000:name:Surface Mouse:*
MOUSE_DPI=2000@2000
# Microsoft Classic IntelliMouse
mouse:usb:v045ep0823:name:Microsoft Microsoft?? Classic IntelliMouse??:
mouse:usb:v045ep0823:name:Microsoft Microsoft?? Classic IntelliMouse??:*
MOUSE_DPI=3200@1000
##########################################
@ -650,7 +656,7 @@ mouse:usb:v045ep0823:name:Microsoft Microsoft?? Classic IntelliMouse??:
##########################################
#Mionix Avior 7000
mouse:usb:v22d4p1308:name:Laview Technology Mionix Avior 7000:
mouse:usb:v22d4p1308:name:Laview Technology Mionix Avior 7000:*
MOUSE_DPI=400@1000 *1600@1000 7000@1000
MOUSE_WHEEL_CLICK_ANGLE=15
@ -659,7 +665,7 @@ mouse:usb:v22d4p1308:name:Laview Technology Mionix Avior 7000:
##########################################
# MODECOM MC-WM4 Wireless Optical Mouse
mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:
mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:*
MOUSE_DPI=*800@126 1600@126
##########################################
@ -667,7 +673,7 @@ mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:
##########################################
# Oklick 406S Bluetooth Laser Mouse
mouse:bluetooth:v056ep0061:name:Laser BTmouse:
mouse:bluetooth:v056ep0061:name:Laser BTmouse:*
MOUSE_DPI=*800@333 1600@333
##########################################
@ -675,7 +681,7 @@ mouse:bluetooth:v056ep0061:name:Laser BTmouse:
##########################################
# P-Active Wireless Mouse PA-27K2
mouse:usb:v0425p0101:name:G-Tech CHINA USB Wireless Mouse & KeyBoard V1.01 :
mouse:usb:v0425p0101:name:G-Tech CHINA USB Wireless Mouse & KeyBoard V1.01 :*
MOUSE_DPI=800@125
##########################################
@ -683,11 +689,11 @@ mouse:usb:v0425p0101:name:G-Tech CHINA USB Wireless Mouse & KeyBoard V1.01 :
##########################################
# Razer Abyssus
mouse:usb:v1532p0042:name:Razer Razer Abyssus:
mouse:usb:v1532p0042:name:Razer Razer Abyssus:*
MOUSE_DPI=1600@1000
# Razer DeathAdder Black Edition
mouse:usb:v1532p0029:name:Razer Razer DeathAdder:
mouse:usb:v1532p0029:name:Razer Razer DeathAdder:*
MOUSE_DPI=3500@1000
##########################################
@ -695,7 +701,7 @@ mouse:usb:v1532p0029:name:Razer Razer DeathAdder:
##########################################
# Roccat Lua (ROC-11-310)
mouse:usb:v1e7dp2c2e:name:ROCCAT ROCCAT Lua:
mouse:usb:v1e7dp2c2e:name:ROCCAT ROCCAT Lua:*
MOUSE_DPI=250@125 500@125 1000@125 1250@125 1500@125 1750@125 2000@125 250@250 500@250 1000@250 1250@250 1500@250 1750@250 2000@250 250@500 500@500 1000@500 1250@500 1500@500 1750@500 2000@500 250@1000 500@1000 *1000@1000 1250@1000 1500@1000 1750@1000 2000@1000
MOUSE_WHEEL_CLICK_ANGLE=15
@ -704,7 +710,7 @@ mouse:usb:v1e7dp2c2e:name:ROCCAT ROCCAT Lua:
##########################################
# Sharkoon Shark Force Gaming Mouse
mouse:usb:v093ap2521:name:USB OPTICAL MOUSE:
mouse:usb:v093ap2521:name:USB OPTICAL MOUSE:*
MOUSE_DPI=*1000@125 1600@125 600@125
##########################################
@ -712,7 +718,7 @@ mouse:usb:v093ap2521:name:USB OPTICAL MOUSE:
##########################################
# SteelSeries Sensei Raw
mouse:usb:v1038p1369:name:SteelSeries Sensei Raw Gaming Mouse:
mouse:usb:v1038p1369:name:SteelSeries Sensei Raw Gaming Mouse:*
MOUSE_DPI=1000@1022
##########################################
@ -720,7 +726,7 @@ mouse:usb:v1038p1369:name:SteelSeries Sensei Raw Gaming Mouse:
##########################################
# Trust illuminated mouse gxt 152
mouse:usb:v145fp01ac:name:HID-compliant Mouse Trust Gaming Mouse:
mouse:usb:v145fp01ac:name:HID-compliant Mouse Trust Gaming Mouse:*
MOUSE_DPI=*800@528 1200@537 1600@536 2400@521
##########################################
@ -742,7 +748,7 @@ mouse:usb:v3057p0001:*
MOUSE_WHEEL_CLICK_ANGLE=23
# Zowie ZA12
mouse:usb:v1af3p0001:name:Kingsis Peripherals ZOWIE Gaming mouse:
mouse:usb:v1af3p0001:name:Kingsis Peripherals ZOWIE Gaming mouse:*
MOUSE_DPI=400@125 *800@125 1600@125 3200@125 400@500 800@500 1600@500 3200@500 400@1000 800@1000 1600@1000 3200@1000
MOUSE_WHEEL_CLICK_COUNT=16
MOUSE_WHEEL_CLICK_ANGLE=23

View File

@ -22,7 +22,7 @@
# in /sys/class/input/eventX/device/id.
#
# - Input driver device name and DMI data match:
# evdev:name:<input device name>:dmi:bvn*:bvr*:bd*:svn<vendor>:pn*
# evdev:name:<input device name>:dmi:bvn*:bvr*:bd*:svn<vendor>:pn*:*
# <input device name> is the name device specified by the driver,
# <vendor> is the firmware-provided string from the kernel DMI modalias,
# see /sys/class/dmi/id/modalias
@ -76,7 +76,6 @@
# drivers/input/mouse/trackpoint.c in the Linux kernel sources.
#
#
# Sort by brand, model
#########################################
@ -84,23 +83,23 @@
#########################################
# Latitude D620
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeD620*:pvr*
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeD620*:*
POINTINGSTICK_CONST_ACCEL=0.5
# Latitude E5570
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE5570*:pvr*
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE5570*:*
POINTINGSTICK_CONST_ACCEL=0.1
# Latitude E6320
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6320*:pvr*
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6320*:*
POINTINGSTICK_CONST_ACCEL=2.0
# Latitude E6400
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6400*:pvr*
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6400*:*
POINTINGSTICK_CONST_ACCEL=1.5
# Latitude E7470
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE7470*:pvr*
evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE7470*:*
POINTINGSTICK_CONST_ACCEL=0.6
#########################################

View File

@ -63,7 +63,7 @@
<tr class="odd"><td>Teracue AG</td><td>TCAG</td><td>12/07/2012</td> </tr>
<tr class="even"><td>Texas Instruments</td><td>TXNW</td><td>01/01/2010</td> </tr>
<tr class="odd"><td>The Linux Foundation</td><td>LNUX</td><td>04/04/2014</td> </tr>
<tr class="even"><td>Toshiba Corporation</td><td>TOSB</td><td>07/07/2015</td> </tr>
<tr class="even"><td>Dynabook Inc.</td><td>TOSB</td><td>07/07/2015</td> </tr>
<tr class="odd"><td>VAIO Corporation</td><td>VAIO</td><td>04/18/2014</td> </tr>
<tr class="even"><td>Validity Sensors, Inc</td><td>VFSI</td><td>06/17/2013</td> </tr>
<tr class="odd"><td>Wacom</td><td>WCOM</td><td>11/17/2011</td> </tr>
@ -98,6 +98,8 @@
<tr class="even"><td>Fujitsu Limited</td><td>FUJI</td><td>06/18/2019</td> </tr>
<tr class="odd"><td>Phytium Technology Co. Ltd.</td><td>PHYT</td><td>02/14/2020</td> </tr>
<tr class="even"><td>CHENGDU HAIGUANG IC DESIGN CO., LTD</td><td>HYGO</td><td>07/15/2020</td> </tr>
<tr class="odd"><td>PixArt imaging inc.</td><td>PIXA</td><td>07/15/2020</td> </tr>
<tr class="even"><td>Loongson Technology Corporation Limited</td><td>LOON</td><td>09/10/2020</td> </tr>
</tbody>
</table>
</body>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1+
# SPDX-License-Identifier: LGPL-2.1-or-later
# Those files right now are not supported by the grammar. Also,
# they are very long but quite repetitive and the parser is not very fast.
@ -42,12 +42,14 @@ if conf.get('ENABLE_HWDB') == 1
hwdb_files_test,
install_dir : udevhwdbdir)
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'udev/hwdb.d')))
if install_sysconfdir
meson.add_install_script('sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'udev/hwdb.d')))
meson.add_install_script('sh', '-c',
'test -n "$DESTDIR" || @0@/systemd-hwdb update'
.format(rootbindir))
meson.add_install_script('sh', '-c',
'test -n "$DESTDIR" || @0@/systemd-hwdb update'
.format(rootbindir))
endif
if want_tests != 'false'
parse_hwdb_py = find_program('parse_hwdb.py')

View File

@ -32,7 +32,7 @@ try:
from pyparsing import (Word, White, Literal, ParserElement, Regex, LineEnd,
OneOrMore, Combine, Or, Optional, Suppress, Group,
nums, alphanums, printables,
stringEnd, pythonStyleComment, QuotedString,
stringEnd, pythonStyleComment,
ParseBaseException)
except ImportError:
print('pyparsing is not available')
@ -54,7 +54,6 @@ EOL = LineEnd().suppress()
EMPTYLINE = LineEnd()
COMMENTLINE = pythonStyleComment + EOL
INTEGER = Word(nums)
STRING = QuotedString('"')
REAL = Combine((INTEGER + Optional('.' + Optional(INTEGER))) ^ ('.' + INTEGER))
SIGNED_REAL = Combine(Optional(Word('-+')) + REAL)
UDEV_TAG = Word(string.ascii_uppercase, alphanums + '_')
@ -94,7 +93,8 @@ def hwdb_grammar():
matchline = (matchline_typed | matchline_general) + EOL
propertyline = (White(' ', exact=1).suppress() +
Combine(UDEV_TAG - '=' - Word(alphanums + '_=:@*.!-;, "') - Optional(pythonStyleComment)) +
Combine(UDEV_TAG - '=' - Optional(Word(alphanums + '_=:@*.!-;, "'))
- Optional(pythonStyleComment)) +
EOL)
propertycomment = White(' ', exact=1) + pythonStyleComment + EOL
@ -114,6 +114,7 @@ def property_grammar():
dpi_setting = (Optional('*')('DEFAULT') + INTEGER('DPI') + Suppress('@') + INTEGER('HZ'))('SETTINGS*')
mount_matrix_row = SIGNED_REAL + ',' + SIGNED_REAL + ',' + SIGNED_REAL
mount_matrix = (mount_matrix_row + ';' + mount_matrix_row + ';' + mount_matrix_row)('MOUNT_MATRIX')
xkb_setting = Optional(Word(alphanums + '+-/@._'))
props = (('MOUSE_DPI', Group(OneOrMore(dpi_setting))),
('MOUSE_WHEEL_CLICK_ANGLE', INTEGER),
@ -138,9 +139,9 @@ def property_grammar():
('POINTINGSTICK_CONST_ACCEL', REAL),
('ID_INPUT_JOYSTICK_INTEGRATION', Or(('internal', 'external'))),
('ID_INPUT_TOUCHPAD_INTEGRATION', Or(('internal', 'external'))),
('XKB_FIXED_LAYOUT', STRING),
('XKB_FIXED_VARIANT', STRING),
('XKB_FIXED_MODEL', STRING),
('XKB_FIXED_LAYOUT', xkb_setting),
('XKB_FIXED_VARIANT', xkb_setting),
('XKB_FIXED_MODEL', xkb_setting),
('KEYBOARD_LED_NUMLOCK', Literal('0')),
('KEYBOARD_LED_CAPSLOCK', Literal('0')),
('ACCEL_MOUNT_MATRIX', mount_matrix),

File diff suppressed because it is too large Load Diff

View File

@ -2084,7 +2084,7 @@
<tr class="even"><td>Torus Systems Ltd</td><td>TRS</td><td>11/29/1996</td> </tr>
<tr class="odd"><td>Toshiba America Info Systems Inc</td><td>TAI</td><td>11/29/1996</td> </tr>
<tr class="even"><td>Toshiba America Info Systems Inc</td><td>TSB</td><td>11/29/1996</td> </tr>
<tr class="odd"><td>Toshiba Corporation</td><td>TOS</td><td>11/29/1996</td> </tr>
<tr class="odd"><td>Dynabook Inc.</td><td>TOS</td><td>11/29/1996</td> </tr>
<tr class="even"><td>Toshiba Corporation</td><td>TTP</td><td>07/07/2015</td> </tr>
<tr class="odd"><td>Toshiba Global Commerce Solutions, Inc.</td><td>TGC</td><td>06/26/2012</td> </tr>
<tr class="even"><td>Toshiba Matsushita Display Technology Co., Ltd</td><td>LCD</td><td>05/24/2000</td> </tr>
@ -2458,6 +2458,13 @@
<tr class="even"><td>TECNART CO.,LTD.</td><td>PIS</td><td>10/22/2019</td> </tr>
<tr class="odd"><td>Moxa Inc.</td><td>MHQ</td><td>10/22/2019</td> </tr>
<tr class="even"><td>Disguise Technologies</td><td>DSG</td><td>10/22/2019</td> </tr>
<tr class="odd"><td>Comark LLC</td><td>CMK</td><td>07/15/2020</td> </tr>
<tr class="even"><td>Megapixel Visual Realty</td><td>MPV</td><td>07/15/2020</td> </tr>
<tr class="odd"><td>Skyworth</td><td>SKW</td><td>07/15/2020</td> </tr>
<tr class="even"><td>Meta View, Inc.</td><td>CFR</td><td>07/15/2020</td> </tr>
<tr class="odd"><td>MILCOTS</td><td>MLC</td><td>07/15/2020</td> </tr>
<tr class="even"><td>NZXT (PNP same EDID)_</td><td>NXT</td><td>07/15/2020</td> </tr>
<tr class="odd"><td>Unicompute Technology Co., Ltd.</td><td>UTC</td><td>10/19/2020</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: 2020.07.06
# Date: 2020-07-06 20:34:08
# Version: 2020.08.26
# Date: 2020-08-26 20:34:09
#
# Vendors, devices and interfaces. Please keep sorted.
@ -469,6 +469,7 @@
3111 OfficeJet 4100 series
3117 EWS 2605dtn
311d Atheros AR9285 Malbec Bluetooth Adapter
312a LaserJet Pro M701n
3202 PhotoSmart 1215
3207 4 GB flash drive
3211 OfficeJet 4105 series
@ -1373,6 +1374,7 @@
3220 Sound Blaster Tactic(3D) Sigma sound card
3232 Sound Blaster Premium HD [SBX]
3237 SB X-Fi Surround 5.1 Pro
3263 SB X-Fi Surround 5.1 Pro
3f00 E-Mu Xboard 25 MIDI Controller
3f02 E-Mu 0202
3f04 E-Mu 0404
@ -2917,6 +2919,7 @@
c22d G510 Gaming Keyboard
c22e G510 Gaming Keyboard onboard audio
c231 G13 Virtual Mouse
c232 Gaming Virtual Keyboard
c245 G400 Optical Mouse
c246 Gaming Mouse G300
c247 G100S Optical Gaming Mouse
@ -3314,6 +3317,7 @@
c008 Audio 655 DSP
c00e Blackwire C310 headset
c03b HD1
da60 DA60
0480 Toshiba America Inc
0001 InTouch Module
0004 InTouch Module
@ -3423,7 +3427,7 @@
048d Integrated Technology Express, Inc.
1165 IT1165 Flash Controller
1172 Flash Drive
1234 Mass storage
1234 Chipsbank CBM2199 Flash Drive
1336 SD/MMC Cardreader
1345 Multi Cardreader
8297 IT8297 RGB LED Controller
@ -5081,6 +5085,7 @@
a050 Chatman V1
a052 USB-zyTemp
a055 Keyboard
a075 Optical Gaming Mouse
a096 Keyboard
a09f E-Signal LUOM G10 Mechanical Gaming Mouse
a100 Mouse [HV-MS735]
@ -5472,7 +5477,7 @@
685c GT-I9250 Phone [Galaxy Nexus] (Mass storage mode)
685d GT-I9100 Phone [Galaxy S II] (Download mode)
685e GT-I9100 / GT-C3350 Phones (USB Debugging mode)
6860 Galaxy series, misc. (MTP mode)
6860 Galaxy A5 (MTP)
6863 Galaxy series, misc. (tethering mode)
6864 GT-I9070 (network tethering, USB debugging enabled)
6865 Galaxy (PTP mode)
@ -6418,7 +6423,7 @@
1080 NET1080 USB-USB Bridge
1200 SSDC Adapter II
1265 File-backed Storage Gadget
3424 Lumidigm Venus fingerprint sensor
3424 V30x/V4xx fingerprint sensor [Lumidigm]
a0f0 Cambridge Electronic Devices Power1401 mk 2
a140 USB Clik! 40
a141 (OME) PocketZip 40 MP3 Player Driver
@ -6428,7 +6433,7 @@
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
a4a5 Pocketbook Pro 903 / Mobius 2 Action Cam / xDuoo X3 / PocketBook Pro 602
a4a6 Linux-USB Serial Gadget
a4a7 Linux-USB Serial Gadget (CDC ACM mode)
a4a8 Linux-USB Printer Gadget
@ -6740,6 +6745,7 @@
035b Walkman NWZ-A828
035c NWZ-A726/A728/A729
035f UP-DR200 Photo Printer
0360 M2 Card Reader
0382 Memory Stick PRO-HG Duo Adaptor (MSAC-UAH1)
0385 Walkman NWZ-E436F
0387 IC Recorder (P)
@ -7909,6 +7915,7 @@
106d Porsche Design Mobile Drive
106e Porsche Design Desktop Drive
1094 Rugged THB
1095 Rugged
a601 HardDrive
a602 CD R/W
05a0 Vetronix Corp.
@ -7947,6 +7954,8 @@
4001 Bluetooth Headset in DFU mode
4002 Bluetooth Headset Series 2
4003 Bluetooth Headset Series 2 in DFU mode
400d SoundLink Color II speaker in DFU mode
40fe SoundLink Color II speaker
bc50 SoundLink Wireless Mobile speaker
bc51 SoundLink Wireless Mobile speaker in DFU mode
05a8 Spacetec IMC Corp.
@ -8285,6 +8294,7 @@
0361 SunplusIT INC. HP Truevision HD Webcam
036e Webcam
0374 HP EliteBook integrated HD Webcam
038e HP Wide Vision HD integrated webcam
03a1 XiaoMi Webcam
03b1 Webcam
03bc HP Wide Vision HD Integrated Webcam
@ -9180,7 +9190,7 @@
0610 Onext EG210U MODEM
0611 AlDiga AL-11U Quad-band GSM/GPRS/EDGE modem
1231 Orico SATA External Hard Disk Drive Lay-Flat Docking Station with USB 3.0 & eSATA interfaces.
2303 PL2303 Serial Port
2303 PL2303 Serial Port / Mobile Action MA-8910P
2305 PL2305 Parallel Port
2306 Raylink Bridge Controller
2307 PL2307 USB-ATAPI4 Bridge
@ -9479,6 +9489,7 @@
01c9 OKI B430 Mono Printer
020b OKI ES4140 Mono Printer
02bb OKI PT390 POS Printer
0383 MC563 Multifunction Printer
0a91 B2500MFP (printer+scanner)
3801 B6100 Laser Printer
06bd AGFA-Gevaert NV
@ -10321,6 +10332,7 @@
b4b5 SDDR-89 V4 ImageMate 12-in-1 Reader
b6b7 SDDR-99 V4 ImageMate 5-in-1 Reader
b6ba CF SDDR-289
cfc9 SDDR-489 ImageMate Pro Reader
0782 Trackerball
0783 C3PO
0003 LTC31 SmartCard Reader
@ -11997,6 +12009,7 @@
0968 Catalyst Enterprises, Inc.
096e Feitian Technologies, Inc.
0005 ePass2000
0006 HID Dongle (for OEMs - manufacturer string is "OEM")
0120 Microcosm Ltd Dinkey
0305 ePass2000Auto
0309 ePass3000GM
@ -12459,6 +12472,7 @@
0a5f Zebra
0009 LP2844 Printer
0050 P120i / WM120i
0080 GK420d Label Printer
0081 GK420t Label Printer
0084 GX420d Desktop Label Printer
008b HC100 wristbands Printer
@ -12498,6 +12512,7 @@
ff01 Wireless Missile Launcher
0a82 Syscan
4600 TravelScan 460/464
6605 ScanShell 800N
0a83 NextComm, Inc.
0a84 Maui Innovative Peripherals
0a85 Idexx Labs
@ -13489,6 +13504,7 @@
b728 RTL8723B Bluetooth
b72a RTL8723B Bluetooth
b812 RTL88x2bu [AC1200 Techkey]
f179 RTL8188FTV 802.11b/g/n 1T1R 2.4G WLAN Adapter
0bdb Ericsson Business Mobile Networks BV
1000 BV Bluetooth Device
1002 Bluetooth Device 1.2
@ -13643,6 +13659,8 @@
0c3c Radius Co., Ltd
0c3d Innocom, Inc.
0c3e Nextcell, Inc.
0c40 ELMCU
8000 2.4GHz receiver
0c44 Motorola iDEN
0021 iDEN P2k0 Device
0022 iDEN P2k1 Device
@ -13675,6 +13693,7 @@
1158 A56AK
184c VoIP Phone
1a90 2M pixel Microscope Camera (with capture button) [Andonstar V160]
5004 Redragon Mitra RGB Keyboard
5101 2.4G Wireless Device [Rii MX3]
6001 Genius VideoCAM NB
6005 Sweex Mini Webcam
@ -15140,15 +15159,17 @@
0f69 Dionex Corp.
0f6a Vibren Technologies, Inc.
0f6e INTELLIGENT SYSTEMS
0100 GameBoy Color Emulator
0100 IS-CGB-EMULATOR
0201 GameBoy Advance Flash Gang Writer
0202 GameBoy Advance Capture
0300 Gamecube DOL Viewer
0400 NDS Emulator
0401 NDS UIC
0402 NDS Writer
0403 NDS Capture
0404 NDS Emulator (Lite)
0202 IS-AGB-CAPTURE
0300 IS-DOL-VIEWER
0400 IS-NITRO-EMULATOR
0401 IS-NITRO-UIC
0402 IS-NITRO-WRITER
0403 IS-NITRO-CAPTURE
0404 IS-NITRO-EMULATOR (DS Lite)
0500 IS-TWL-DEBUGGER
0501 IS-TWL-CAPTURE
0f73 DFI
0f78 Guntermann & Drunck GmbH
0f7c DQ Technology, Inc.
@ -17599,6 +17620,7 @@
1501 Pine-Tum Enterprise Co., Ltd.
1504 Bixolon CO LTD
001f SRP-350II Thermal Receipt Printer
1508 Fibocom
1509 First International Computer, Inc.
0a01 LI-3100 Area Meter
0a02 LI-7000 CO2/H2O Gas Analyzer
@ -17772,6 +17794,7 @@
004a RZ03-0133 Gaming Lapboard, Keyboard Mouse Combo, Dongle [Turret Dongle]
004c Diamondback Chroma
004d DeathAdder 2000 (Cynosa Pro Bundle)
004f RZ01-0145, Gaming Mouse [DeathAdder 2000 (Alternate)]
0050 Naga Hex V2
0053 Naga Chroma
0054 DeathAdder 3500
@ -17802,9 +17825,12 @@
007a RC30-0305 Gaming Mouse [Viper Ultimate (Wired)]
007b RC30-0305 Gaming Mouse Dongle [Viper Ultimate (Wireless)]
007e RC30-030502 Mouse Dock
0083 RC30-0315, Gaming Mouse [Basilisk X HyperSpeed]
0084 RZ01-0321 Gaming Mouse [DeathAdder V2]
0085 RZ01-0316 Gaming Mouse [Basilisk V2]
0088 Razer Basilisk Ultimate Dongle
0086 Gaming Mouse [Basilisk Ultimate, Wired]
0088 Gaming Mouse [Basilisk Ultimate, Wireless, Receiver]
008a RZ01-0325, Gaming Mouse [Viper Mini]
0101 Copperhead Mouse
0102 Tarantula Keyboard
0103 Gaming Keyboard [Reclusa]
@ -17882,6 +17908,8 @@
024d Blade 15 Studio Edition (2019)
0253 RZ09-0330, Gaming Laptop [Blade 15 Advanced (Early 2020)]
0255 RZ09-0328, Gaming Laptop [Blade 15 Base Model (2020)]
0256 RZ09--0329, Gaming Laptop [Blade Pro 17 Full HD (2020)]
025d RZ03-0338, Gaming Keyboard [Ornata V2]
0300 RZ06-0063 Motion Sensing Controllers [Hydra]
0401 Gaming Arcade Stick [Panthera]
0501 Kraken 7.1
@ -17896,6 +17924,8 @@
051a Nari Ultimate
051c Nari (Wireless)
051d Nari (Wired)
051e RC30-026902, Gaming Headset [Nari Essential, Wireless, Receiver]
051f RC30-026901, Gaming Headset [Nari Essential, Wired]
0520 Kraken Tournament Edition
0521 Kraken Kitty Edition
0527 RZ04-0318 Gaming Headset [Kraken Ultimate]
@ -17903,6 +17933,7 @@
0a00 Atrox Arcade Stick for Xbox One
0a02 ManO'War
0a03 Wildcat
0a15 RZ06-0199, Gaming Controller [Wolverine Tournament Edition]
0c00 RZ02-0135 Hard Gaming Mouse Mat [Firefly]
0c01 Goliathus
0c02 Goliathus Extended
@ -18105,6 +18136,11 @@
8007 US-122 Audio/Midi Interface
1605 ACCES I/O Products, Inc.
0001 DIO-32 (No Firmware Yet)
0002 USB-DIO-48 (No Firmware Yet)
0003 USB-DIO-96 (No Firmware Yet)
0004 USB-DIO-32I (No Firmware Yet)
0005 USB-DIO24 (based on -CTR6) (No Firmware Yet)
0006 USB-DIO24-CTR6 (No Firmware Yet)
1606 Umax
0002 Astra 1236U Scanner
0010 Astra 1220U

View File

@ -2,7 +2,7 @@
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="binfmt.d" conditional='ENABLE_BINFMT'
xmlns:xi="http://www.w3.org/2001/XInclude">

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="bootctl" conditional='ENABLE_EFI'
xmlns:xi="http://www.w3.org/2001/XInclude">
@ -17,7 +17,7 @@
<refnamediv>
<refname>bootctl</refname>
<refpurpose>Control the firmware and boot manager settings</refpurpose>
<refpurpose>Control EFI firmware boot settings and manage boot loader</refpurpose>
</refnamediv>
<refsynopsisdiv>
@ -31,16 +31,18 @@
<refsect1>
<title>Description</title>
<para><command>bootctl</command> can check the EFI boot loader status, list available boot loaders and boot loader
entries, and install, update, or remove the
<citerefentry><refentrytitle>systemd-boot</refentrytitle><manvolnum>7</manvolnum></citerefentry> boot loader on the
current system.</para>
<para><command>bootctl</command> can check the EFI firmware and boot loader status, list and manage
available boot loaders and boot loader entries, and install, update, or remove the
<citerefentry><refentrytitle>systemd-boot</refentrytitle><manvolnum>7</manvolnum></citerefentry> boot
loader on the current system.</para>
</refsect1>
<refsect1>
<title>Commands</title>
<variablelist>
<title>Generic EFI Firmware/Boot Loader Commands</title>
<para>These commands are available on any EFI system, regardless of the boot loader used.</para>
<variablelist>
<varlistentry>
<term><option>status</option></term>
@ -49,7 +51,80 @@
loaders and the current default boot loader entry. If no command is specified, this is the implied
default.</para></listitem>
</varlistentry>
</variablelist>
<varlistentry>
<term><option>reboot-to-firmware</option> <optional><replaceable>BOOL</replaceable></optional></term>
<listitem><para>Query or set the "Reboot-Into-Firmware-Setup" flag of the EFI firmware. Takes a
boolean argument which controls whether to show the firmware setup on next system reboot. If the
argument is omitted shows the current status of the flag, or whether the flag is supported. This
controls the same flag as <command>systemctl reboot --firmware-setup</command>, but is more
low-level and allows setting the flag independently from actually requesting a
reboot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>systemd-efi-options</option> <optional><replaceable>STRING</replaceable></optional></term>
<listitem><para>When called without the optional argument, prints the current value of the
<literal>SystemdOptions</literal> EFI variable. When called with an argument, sets the
variable to that value. See
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
for the meaning of that variable.</para></listitem>
</varlistentry>
</refsect1>
<refsect1>
<title>Boot Loader Specification Commands</title>
<para>These commands are available for all boot loaders that implement the <ulink
url="https://systemd.io/BOOT_LOADER_SPECIFICATION">Boot Loader Specification</ulink> and/or the <ulink
url="https://systemd.io/BOOT_LOADER_INTERFACE">Boot Loader Interface</ulink>, such as
<command>systemd-boot</command>.</para>
<variablelist>
<varlistentry>
<term><option>list</option></term>
<listitem><para>Shows all available boot loader entries implementing the <ulink
url="https://systemd.io/BOOT_LOADER_SPECIFICATION">Boot Loader Specification</ulink>, as well as any
other entries discovered or automatically generated by a boot loader implementing the <ulink
url="https://systemd.io/BOOT_LOADER_INTERFACE">Boot Loader
Interface</ulink>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>set-default</option> <replaceable>ID</replaceable></term>
<term><option>set-oneshot</option> <replaceable>ID</replaceable></term>
<listitem><para>Sets the default boot loader entry. Takes a single boot loader entry ID string as
argument. The <option>set-oneshot</option> command will set the default entry only for the next boot,
the <option>set-default</option> will set it persistently for all future boots.</para></listitem>
<listitem><para>Optionally, the boot loader entry ID may be specified as one of: <option>@default</option>,
<option>@oneshot</option> or <option>@current</option>, which correspond to the current default boot loader
entry for all future boots, the current default boot loader entry for the next boot, and the currently booted
boot loader entry. These special IDs are resolved to the current values of the EFI variables
<varname>LoaderEntryDefault</varname>, <varname>LoaderEntryOneShot</varname> and <varname>LoaderEntrySelected</varname>,
see <ulink url="https://systemd.io/BOOT_LOADER_SPECIFICATION">Boot Loader Specification</ulink> for details.
These special IDs are primarily useful as a quick way to persistently make the currently booted boot loader
entry the default choice, or to upgrade the default boot loader entry for the next boot to the default boot
loader entry for all future boots, but may be used for other operations too.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title><command>systemd-boot</command> Commands</title>
<para>These commands manage the <command>systemd-boot</command> EFI boot loader, and do not work in
conjunction with other boot loaders.</para>
<variablelist>
<varlistentry>
<term><option>install</option></term>
@ -101,45 +176,6 @@
information.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>systemd-efi-options</option> <optional><replaceable>STRING</replaceable></optional></term>
<listitem><para>When called without the optional argument, prints the current value of the
<literal>SystemdOptions</literal> EFI variable. When called with an argument, sets the
variable to that value. See
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
for the meaning of that variable.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>reboot-to-firmware</option> <optional><replaceable>BOOL</replaceable></optional></term>
<listitem><para>Query or set the "Reboot-Into-Firmware-Setup" flag of the EFI firmware. Takes a
boolean argument which controls whether to show the firmware setup on next system reboot. If the
argument is omitted shows the current status of the flag, or whether the flag is supported. This
controls the same flag as <command>systemctl reboot --firmware-setup</command>, but is more
low-level and allows setting the flag independently from actually requesting a
reboot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>list</option></term>
<listitem><para>Shows all available boot loader entries implementing the <ulink
url="https://systemd.io/BOOT_LOADER_SPECIFICATION">Boot Loader
Specification</ulink>, as well as any other entries discovered or automatically generated by the boot
loader.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>set-default</option> <replaceable>ID</replaceable></term>
<term><option>set-oneshot</option> <replaceable>ID</replaceable></term>
<listitem><para>Sets the default boot loader entry. Takes a single boot loader entry ID string as argument. The
<option>set-oneshot</option> command will set the default entry only for the next boot, the
<option>set-default</option> will set it persistently for all future boots.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="bootup">
@ -227,7 +227,7 @@ emergency.service | | |
<filename>initrd-root-fs.target</filename> is reached. The service
<filename>initrd-parse-etc.service</filename> scans
<filename>/sysroot/etc/fstab</filename> for a possible
<filename>/usr</filename> mount point and additional entries
<filename>/usr/</filename> mount point and additional entries
marked with the <emphasis>x-initrd.mount</emphasis> option. All
entries found are mounted below <filename>/sysroot</filename>, and
<filename>initrd-fs.target</filename> is reached. The service

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="busctl"
xmlns:xi="http://www.w3.org/2001/XInclude">
@ -357,9 +357,9 @@
<para>Controls whether credential data reported by
<command>list</command> or <command>status</command> shall
be augmented with data from
<filename>/proc</filename>. When this is turned on, the data
<filename>/proc/</filename>. When this is turned on, the data
shown is possibly inconsistent, as the data read from
<filename>/proc</filename> might be more recent than the rest of
<filename>/proc/</filename> might be more recent than the rest of
the credential information. Defaults to <literal>yes</literal>.</para>
</listitem>
</varlistentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="coredump.conf" conditional="ENABLE_COREDUMP"
xmlns:xi="http://www.w3.org/2001/XInclude">

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="coredumpctl" conditional='ENABLE_COREDUMP'
xmlns:xi="http://www.w3.org/2001/XInclude">

View File

@ -3,7 +3,7 @@
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
SPDX-License-Identifier: LGPL-2.1+
SPDX-License-Identifier: LGPL-2.1-or-later
This is based on crypttab(5) from Fedora's initscripts package, which in
turn is based on Debian's version.
@ -60,10 +60,10 @@
device or file, or a specification of a block device via
<literal>UUID=</literal> followed by the UUID.</para>
<para>The third field specifies an absolute path to a file to read the encryption key from. Optionally,
<para>The third field specifies an absolute path to a file with the encryption key. Optionally,
the path may be followed by <literal>:</literal> and an fstab device specification (e.g. starting with
<literal>LABEL=</literal> or similar); in which case, the path is relative to the device file system
root. If the field is not present or set to <literal>none</literal> or <literal>-</literal>, a key file
<literal>LABEL=</literal> or similar); in which case the path is taken relative to the device file system
root. If the field is not present or is <literal>none</literal> or <literal>-</literal>, a key file
named after the volume to unlock (i.e. the first column of the line), suffixed with
<filename>.key</filename> is automatically loaded from the <filename>/etc/cryptsetup-keys.d/</filename>
and <filename>/run/cryptsetup-keys.d/</filename> directories, if present. Otherwise, the password has to
@ -78,12 +78,12 @@
<varlistentry>
<term><option>cipher=</option></term>
<listitem><para>Specifies the cipher to use. See
<citerefentry project='die-net'><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of this option. A
cipher with unpredictable IV values, such as
<literal>aes-cbc-essiv:sha256</literal>, is
recommended.</para></listitem>
<listitem><para>Specifies the cipher to use. See <citerefentry
project='die-net'><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of this option. A cipher with unpredictable IV values, such
as <literal>aes-cbc-essiv:sha256</literal>, is recommended. Embedded commas in the cipher
specification need to be escaped by preceding them with a backslash, see example below.</para>
</listitem>
</varlistentry>
<varlistentry>
@ -112,7 +112,12 @@
relevant for LUKS devices. See
<citerefentry project='die-net'><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of this
option.</para></listitem>
option.</para>
<para>Optionally, the path may be followed by <literal>:</literal> and an fstab device specification
(e.g. starting with <literal>UUID=</literal> or similar); in which case, the path is relative to the
device file system root. The device gets mounted automatically for LUKS device activation duration only.
</para></listitem>
</varlistentry>
<varlistentry>
@ -498,15 +503,17 @@
<title>Examples</title>
<example>
<title>/etc/crypttab example</title>
<para>Set up four encrypted block devices. One using LUKS for
normal storage, another one for usage as a swap device and two
TrueCrypt volumes.</para>
<para>Set up four encrypted block devices. One using LUKS for normal storage, another one for usage as
a swap device and two TrueCrypt volumes. For the fourth device, the option string is interpreted as two
options <literal>cipher=xchacha12,aes-adiantum-plain64</literal>,
<literal>keyfile-timeout=10s</literal>.</para>
<programlisting>luks UUID=2505567a-9e27-4efe-a4d5-15ad146c258b
swap /dev/sda7 /dev/urandom swap
truecrypt /dev/sda2 /etc/container_password tcrypt
hidden /mnt/tc_hidden /dev/null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile
external /dev/sda3 keyfile:LABEL=keydev keyfile-timeout=10s</programlisting>
external /dev/sda3 keyfile:LABEL=keydev keyfile-timeout=10s,cipher=xchacha12\,aes-adiantum-plain64
</programlisting>
</example>
<example>

View File

@ -11,3 +11,5 @@
<!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 fedora_cloud_release "1.2">

View File

@ -1,5 +1,5 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!--
SPDX-License-Identifier: LGPL-2.1+
SPDX-License-Identifier: LGPL-2.1-or-later
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="daemon">
@ -448,37 +448,27 @@
<refsect2>
<title>Other Forms of Activation</title>
<para>Other forms of activation have been suggested and
implemented in some systems. However, there are often simpler or
better alternatives, or they can be put together of combinations
of the schemes above. Example: Sometimes, it appears useful to
start daemons or <filename>.socket</filename> units when a
specific IP address is configured on a network interface,
because network sockets shall be bound to the address. However,
an alternative to implement this is by utilizing the Linux
<constant>IP_FREEBIND</constant> socket option, as accessible
via <varname>FreeBind=yes</varname> in systemd socket files (see
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details). This option, when enabled, allows sockets to be
bound to a non-local, not configured IP address, and hence
allows bindings to a particular IP address before it actually
becomes available, making such an explicit dependency to the
configured address redundant. Another often suggested trigger
for service activation is low system load. However, here too, a
more convincing approach might be to make proper use of features
of the operating system, in particular, the CPU or I/O scheduler
of Linux. Instead of scheduling jobs from userspace based on
monitoring the OS scheduler, it is advisable to leave the
scheduling of processes to the OS scheduler itself. systemd
provides fine-grained access to the CPU and I/O schedulers. If a
process executed by the init system shall not negatively impact
the amount of CPU or I/O bandwidth available to other processes,
it should be configured with
<para>Other forms of activation have been suggested and implemented in some systems. However, there are
often simpler or better alternatives, or they can be put together of combinations of the schemes
above. Example: Sometimes, it appears useful to start daemons or <filename>.socket</filename> units
when a specific IP address is configured on a network interface, because network sockets shall be bound
to the address. However, an alternative to implement this is by utilizing the Linux
<constant>IP_FREEBIND</constant>/<constant>IPV6_FREEBIND</constant> socket option, as accessible via
<varname>FreeBind=yes</varname> in systemd socket files (see
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
details). This option, when enabled, allows sockets to be bound to a non-local, not configured IP
address, and hence allows bindings to a particular IP address before it actually becomes available,
making such an explicit dependency to the configured address redundant. Another often suggested trigger
for service activation is low system load. However, here too, a more convincing approach might be to
make proper use of features of the operating system, in particular, the CPU or I/O scheduler of
Linux. Instead of scheduling jobs from userspace based on monitoring the OS scheduler, it is advisable
to leave the scheduling of processes to the OS scheduler itself. systemd provides fine-grained access
to the CPU and I/O schedulers. If a process executed by the init system shall not negatively impact the
amount of CPU or I/O bandwidth available to other processes, it should be configured with
<varname>CPUSchedulingPolicy=idle</varname> and/or
<varname>IOSchedulingClass=idle</varname>. Optionally, this may
be combined with timer-based activation to schedule background
jobs during runtime and with minimal impact on the system, and
remove it from the boot phase itself.</para>
<varname>IOSchedulingClass=idle</varname>. Optionally, this may be combined with timer-based activation
to schedule background jobs during runtime and with minimal impact on the system, and remove it from
the boot phase itself.</para>
</refsect2>
</refsect1>

View File

@ -1,4 +1,4 @@
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="systemd.directives">
<refentryinfo>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="dnssec-trust-anchors.d" conditional='ENABLE_RESOLVE'
xmlns:xi="http://www.w3.org/2001/XInclude">
@ -138,7 +138,17 @@
and follow the same overriding rules. They are text files with the
<filename>.negative</filename> suffix. Empty lines and lines whose first character is
<literal>;</literal> are ignored. Each line specifies one domain name which is the root of a DNS
subtree where validation shall be disabled.</para>
subtree where validation shall be disabled. For example:</para>
<programlisting># Reverse IPv4 mappings
10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
...
# Some custom domains
prod
stag
</programlisting>
<para>Negative trust anchors are useful to support private DNS
subtrees that are not referenced from the Internet DNS hierarchy,

View File

@ -3,7 +3,7 @@
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
SPDX-License-Identifier: LGPL-2.1+
SPDX-License-Identifier: LGPL-2.1-or-later
Copyright © 2016 Red Hat, Inc.
-->
@ -76,7 +76,7 @@
<title>Setup environment to allow access to a program installed in
<filename index="false">/opt/foo</filename></title>
<para><filename>/etc/environment.d/60-foo.conf</filename>:
<para><filename index="false">/etc/environment.d/60-foo.conf</filename>:
</para>
<programlisting>
FOO_DEBUG=force-software-gl,log-verbose

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