New upstream version 235

This commit is contained in:
Michael Biebl 2017-10-10 00:22:57 +02:00
parent 81c583552e
commit f5e6527918
927 changed files with 326936 additions and 107829 deletions

View File

@ -18,3 +18,7 @@ charset = utf-8
[*.{c,h}]
indent_style = space
indent_size = 8
[meson.build]
indent_style = space
indent_size = 8

View File

@ -26,7 +26,7 @@ If you discover a security vulnerability, we'd appreciate a non-public disclosur
* Make sure to post PRs only relative to a very recent git master.
* Follow our [Coding Style](https://raw.githubusercontent.com/systemd/systemd/master/CODING_STYLE) when contributing code. This is a requirement for all code we merge.
* Please make sure to test your change before submitting the PR. See [HACKING](https://raw.githubusercontent.com/systemd/systemd/master/HACKING) for details how to do this.
* Make sure to run "make check" locally, before posting your PR. We use a CI system, meaning we don't even look at your PR, if the build and tests don't pass.
* Make sure to run the test suite locally, before posting your PR. We use a CI system, meaning we don't even look at your PR, if the build and tests don't pass.
* If you need to update the code in an existing PR, force-push into the same branch, overriding old commits with new versions.
* After you have pushed a new version, add a comment about the new version (no notification is sent just for the commits, so it's easy to miss the update without an explicit comment). If you are a member of the systemd project on github, remove the `reviewed/needs-rework` label.

302
.gitignore vendored
View File

@ -1,326 +1,32 @@
*.a
*.cache
*.gch
*.la
*.lo
*.log
*.o
*.plist
*.py[co]
*.stamp
*.swp
*.trs
*~
.config.args
.deps/
.dirstamp
.libs/
/*.gcda
/*.gcno
/*.tar.bz2
/*.tar.gz
/*.tar.xz
/30-systemd-environment-d-generator
/GPATH
/GRTAGS
/GSYMS
/GTAGS
/Makefile
/TAGS
/ata_id
/bootctl
/build*
/busctl
/cdrom_id
/collect
/coredumpctl
/coverage/
/defined
/exported
/exported-*
/hostnamectl
/image.raw
/image.raw.cache-pre-dev
/image.raw.cache-pre-inst
/install-tree
/journalctl
/libtool
/linuxx64.efi.stub
/localectl
/loginctl
/machinectl
/mtd_probe
/networkctl
/scsi_id
/systemctl
/systemd
/systemd-ac-power
/systemd-analyze
/systemd-ask-password
/systemd-backlight
/systemd-binfmt
/systemd-bootx64.efi
/systemd-cat
/systemd-cgls
/systemd-cgroups-agent
/systemd-cgtop
/systemd-coredump
/systemd-cryptsetup
/systemd-cryptsetup-generator
/systemd-dbus1-generator
/systemd-debug-generator
/systemd-delta
/systemd-detect-virt
/systemd-dissect
/systemd-escape
/systemd-export
/systemd-firstboot
/systemd-fsck
/systemd-fstab-generator
/systemd-getty-generator
/systemd-gpt-auto-generator
/systemd-hibernate-resume
/systemd-hibernate-resume-generator
/systemd-hostnamed
/systemd-hwdb
/systemd-import
/systemd-importd
/systemd-inhibit
/systemd-initctl
/systemd-journal-gatewayd
/systemd-journal-remote
/systemd-journal-upload
/systemd-journald
/systemd-localed
/systemd-logind
/systemd-machine-id-setup
/systemd-machined
/systemd-modules-load
/systemd-mount
/systemd-networkd
/systemd-networkd-wait-online
/systemd-notify
/systemd-nspawn
/systemd-path
/systemd-pull
/systemd-quotacheck
/systemd-random-seed
/systemd-rc-local-generator
/systemd-remount-fs
/systemd-reply-password
/systemd-resolve
/systemd-resolved
/systemd-rfkill
/systemd-run
/systemd-shutdown
/systemd-sleep
/systemd-socket-activate
/systemd-socket-proxyd
/systemd-stdio-bridge
/systemd-sysctl
/systemd-system-update-generator
/systemd-sysusers
/systemd-sysv-generator
/systemd-timedated
/systemd-timesyncd
/systemd-tmpfiles
/systemd-tty-ask-password-agent
/systemd-udevd
/systemd-update-done
/systemd-update-utmp
/systemd-user-sessions
/systemd-vconsole-setup
/systemd-veritysetup
/systemd-veritysetup-generator
/systemd-volatile-root
/mkosi.builddir/
/tags
/test-acd
/test-acl-util
/test-af-list
/test-alloc-util
/test-architecture
/test-arphrd-list
/test-ask-password-api
/test-async
/test-audit-type
/test-barrier
/test-bitmap
/test-boot-timestamps
/test-btrfs
/test-bus-benchmark
/test-bus-chat
/test-bus-cleanup
/test-bus-creds
/test-bus-error
/test-bus-gvariant
/test-bus-introspect
/test-bus-kernel
/test-bus-kernel-bloom
/test-bus-marshal
/test-bus-match
/test-bus-objects
/test-bus-policy
/test-bus-server
/test-bus-signature
/test-bus-track
/test-bus-vtable
/test-bus-vtable-cc
/test-bus-zero-copy
/test-calendarspec
/test-cap-list
/test-capability
/test-catalog
/test-cgroup
/test-cgroup-mask
/test-cgroup-util
/test-clock
/test-compress
/test-compress-benchmark
/test-condition
/test-conf-files
/test-conf-parser
/test-copy
/test-coredump-vacuum
/test-cpu-set-util
/test-daemon
/test-date
/test-device-nodes
/test-dnssec-complex
/test-dhcp-client
/test-dhcp-option
/test-dhcp-server
/test-dhcp6-client
/test-dissect-image
/test-dns-domain
/test-dns-packet
/test-dnssec
/test-efi-disk.img
/test-ellipsize
/test-engine
/test-env-util
/test-escape
/test-event
/test-exec-util
/test-execute
/test-extract-word
/test-fd-util
/test-fdset
/test-fileio
/test-firewall-util
/test-fs-util
/test-fstab-util
/test-glob-util
/test-hash
/test-hashmap
/test-hexdecoct
/test-hostname
/test-hostname-util
/test-id128
/test-inhibit
/test-install
/test-install-root
/test-io-util
/test-ipcrm
/test-ipv4ll
/test-ipv4ll-manual
/test-job-type
/test-journal
/test-journal-enum
/test-journal-flush
/test-journal-importer
/test-journal-init
/test-journal-interleaving
/test-journal-match
/test-journal-send
/test-journal-stream
/test-journal-syslog
/test-journal-verify
/test-keymap-util
/test-libsystemd-sym*
/test-libudev
/test-libudev-sym*
/test-list
/test-lldp
/test-local-addresses
/test-locale-util
/test-log
/test-login
/test-login-shared
/test-login-tables
/test-loopback
/test-machine-tables
/test-mmap-cache
/test-mount-util
/test-namespace
/test-ndisc-rs
/test-netlink
/test-netlink-manual
/test-networkd-conf
/test-network
/test-network-tables
/test-ns
/test-nss
/test-parse-util
/test-patch-uid
/test-path
/test-path-lookup
/test-path-util
/test-prioq
/test-proc-cmdline
/test-process-util
/test-pty
/test-qcow2
/test-random-util
/test-ratelimit
/test-replace-var
/test-resolve
/test-resolve-tables
/test-resolved-packet
/test-ring
/test-rlimit-util
/test-sched-prio
/test-sd-dhcp-lease
/test-seccomp
/test-selinux
/test-set
/test-sizeof
/test-sigbus
/test-signal-util
/test-siphash24
/test-sleep
/test-socket-util
/test-stat-util
/test-strbuf
/test-string-util
/test-strip-tab-ansi
/test-strv
/test-strxcpyx
/test-tables
/test-terminal-util
/test-time
/test-timesync
/test-tmpfiles
/test-udev
/test-uid-range
/test-unaligned
/test-unit-file
/test-unit-name
/test-user-util
/test-utf8
/test-util
/test-verbs
/test-watchdog
/test-web-util
/test-xattr-util
/test-xml
/timedatectl
/udevadm
/undefined
/v4l_id
Makefile.in
__pycache__/
*.py[co]
aclocal.m4
config.h
config.h.in
config.log
config.status
configure
stamp-*

View File

@ -123,3 +123,12 @@ Federico Di Pierro <nierro92@gmail.com>
Josef Andersson <josef.andersson@fripost.org>
Josef Andersson <l10nl18nsweja@gmail.com>
Hendrik Westerberg <hendrik@gestorf.com>
Stefan Pietsch <mail.ipv4v6@gmail.com>
Jérémy Rosen <jeremy.rosen@enst-bretagne.fr>
Vasilis Liaskovitis <vliaskov@gmail.com>
Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Tomasz Pala <gotar@polanet.pl>
Dmitriy Geels <dmitriy.geels@gmail.com>
Beniamino Galvani <bgalvani@redhat.com> <bengal@users.noreply.github.com>
Justin Capella <justincapella@gmail.com> <b1tninja@users.noreply.github.com>
Daniel Șerbănescu <dasj19@users.noreply.github.com>

View File

@ -1 +0,0 @@
../src/Makefile

View File

@ -48,7 +48,7 @@ BuildPackages=
kmod
libcap
libgcrypt
libidn2
libidn
libmicrohttpd
libseccomp
libtool
@ -56,6 +56,7 @@ BuildPackages=
libxkbcommon
libxslt
lz4
m4
meson
pam
pkgconfig
@ -63,6 +64,7 @@ BuildPackages=
python-lxml
qrencode
xz
# TODO use libidn2 once it's available in official repositories
Packages=
libidn2
libidn

View File

@ -65,6 +65,7 @@ BuildPackages=
libsmartcols-dev
libtool
libxkbcommon-dev
m4
meson
pkg-config
python3

View File

@ -62,6 +62,7 @@ BuildPackages=
libxslt
lz4
lz4-devel
m4
meson
pam-devel
pkgconfig

View File

@ -6,29 +6,29 @@ HOWTO:
1) Find the right configure parameters for:
--with-rootprefix=
--with-sysvinit-path=
--with-sysvrcnd-path=
--with-rc-local-script-path-start=
--with-rc-local-script-path-stop=
--with-kbd-loadkeys=
--with-kbd-setfont=
--with-tty-gid=
--with-ntp-servers=
--with-support-url=
-D rootprefix=
-D sysvinit-path=
-D sysvrcnd-path=
-D rc-local=
-D halt-local=
-D loadkeys-path=
-D setfont-path=
-D tty-gid=
-D ntp-servers=
-D dns-servers=
-D support-url=
2) Try it out. Play around (as an ordinary user) with
'/usr/lib/systemd/systemd --test --system' for a test run
of systemd without booting. This will read the unit files and
print the initial transaction it would execute during boot-up.
This will also inform you about ordering loops and suchlike
This will also inform you about ordering loops and suchlike.
NTP POOL:
By default, timesyncd uses the Google Public NTP servers
time[1-4].google.com. They serve time that uses a leap second
smear, and can be up to .5s off from servers that use stepped
leap seconds.
By default, systemd-timesyncd uses the Google Public NTP servers
time[1-4].google.com, if no other NTP configuration is available. They
serve time that uses a leap second smear, and can be up to .5s off from
servers that use stepped leap seconds.
https://developers.google.com/time/smear
@ -39,6 +39,17 @@ NTP POOL:
http://www.pool.ntp.org/en/vendors.html
Use -D ntp-servers= to direct systemd-timesyncd to different fallback
NTP servers.
DNS SERVERS:
By default, systemd-resolved uses the Google Public DNS servers
8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844 as
fallback, if no other DNS configuration is available.
Use -D dns-servers= to direct systemd-resolved to different fallback
DNS servers.
PAM:
The default PAM config shipped by systemd is really bare bones.
It does not include many modules your distro might want to enable
@ -46,17 +57,15 @@ PAM:
/etc/security/limits.conf will not be read unless you load pam_limits.
Make sure you add modules your distro expects from user services.
Pass --with-pamconfdir=no to ./configure to avoid installing this file
and instead install your own.
Pass -D pamconfdir=no to meson to avoid installing this file and
instead install your own.
CONTRIBUTING UPSTREAM:
We generally do no longer accept distribution-specific
patches to systemd upstream. If you have to make changes to
systemd's source code to make it work on your distribution,
unless your code is generic enough to be generally useful, we
are unlikely to merge it. Please always consider adopting the
upstream defaults. If that is not possible, please maintain
the relevant patches downstream.
We generally do no longer accept distribution-specific patches to
systemd upstream. If you have to make changes to systemd's source code
to make it work on your distribution, unless your code is generic
enough to be generally useful, we are unlikely to merge it. Please
always consider adopting the upstream defaults. If that is not
possible, please maintain the relevant patches downstream.
Thank you for understanding.

View File

@ -64,3 +64,17 @@ installed systemd tests:
* `$SYSTEMD_TEST_DATA` — override the location of test data. This is useful if
a test executable is moved to an arbitrary location.
nss-systemd:
* `$SYSTEMD_NSS_BYPASS_SYNTHETIC=1` — if set, `nss-systemd` won't synthesize
user/group records for the `root` and `nobody` users if they are missing from
`/etc/passwd`.
* `$SYSTEMD_NSS_DYNAMIC_BYPASS=1` — if set, `nss-systemd` won't return
user/group records for dynamically registered service users (i.e. users
registered through `DynamicUser=1`).
* `$SYSTEMD_NSS_BYPASS_BUS=1` — if set, `nss-systemd` won't use D-Bus to do
dynamic user lookups. This is primarily useful to make `nss-systemd` work
safely from within `dbus-daemon`.

12
HACKING
View File

@ -56,15 +56,17 @@ for systemd (this example is for Fedora):
$ git clone https://github.com/systemd/systemd.git
$ cd systemd
$ vim src/core/main.c # or wherever you'd like to make your changes
$ ./autogen.sh c # configure the source tree
$ make -j `nproc` # build it locally, see if everything compiles fine
$ make -j `nproc` check # run some simple regression tests
$ meson build # configure the build
$ ninja -C build # build it locally, see if everything compiles fine
$ ninja -C build test # run some simple regression tests
$ sudo mkosi # build a test image
$ sudo systemd-nspawn -bi image.raw # boot up the test image
$ git add -p # interactively put together your patch
$ git commit # commit it
$ ...
$ git push REMOTE HEAD:refs/heads/BRANCH
# where REMOTE is your "fork" on github
# and BRANCH is a branch name.
And after that, please submit your branch as PR to systemd via github.
And after that, head over to your repo on github and click "Compare & pull request"
Happy hacking!

5
Makefile Normal file
View File

@ -0,0 +1,5 @@
all:
ninja -C build
install:
DESTDIR=$(DESTDIR) ninja -C build install

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

249
NEWS
View File

@ -1,5 +1,251 @@
systemd System and Service Manager
CHANGES WITH 235:
* A new modprobe.d drop-in is now shipped by default that sets the
bonding module option max_bonds=0. This overrides the kernel default,
to avoid conflicts and ambiguity as to whether or not bond0 should be
managed by systemd-networkd or not. This resolves multiple issues
with bond0 properties not being applied, when bond0 is configured
with systemd-networkd. Distributors may choose to not package this,
however in that case users will be prevented from correctly managing
bond0 interface using systemd-networkd.
* systemd-analyze gained new verbs "get-log-level" and "get-log-target"
which print the logging level and target of the system manager. They
complement the existing "set-log-level" and "set-log-target" verbs
used to change those values.
* journald.conf gained a new boolean setting ReadKMsg= which defaults
to on. If turned off kernel log messages will not be read by
systemd-journald or included in the logs. It also gained a new
setting LineMax= for configuring the maximum line length in
STDOUT/STDERR log streams. The new default for this value is 48K, up
from the previous hardcoded 2048.
* A new unit setting RuntimeDirectoryPreserve= has been added, which
allows more detailed control of what to do with a runtime directory
configured with RuntimeDirectory= (i.e. a directory below /run or
$XDG_RUNTIME_DIR) after a unit is stopped.
* The RuntimeDirectory= setting for units gained support for creating
deeper subdirectories below /run or $XDG_RUNTIME_DIR, instead of just
one top-level directory.
* Units gained new options StateDirectory=, CacheDirectory=,
LogsDirectory= and ConfigurationDirectory= which are closely related
to RuntimeDirectory= but manage per-service directories below
/var/lib, /var/cache, /var/log and /etc. By making use of them it is
possible to write unit files which when activated automatically gain
properly owned service specific directories in these locations, thus
making unit files self-contained and increasing compatibility with
stateless systems and factory reset where /etc or /var are
unpopulated at boot. Matching these new settings there's also
StateDirectoryMode=, CacheDirectoryMode=, LogsDirectoryMode=,
ConfigurationDirectoryMode= for configuring the access mode of these
directories. These settings are particularly useful in combination
with DynamicUser=yes as they provide secure, properly-owned,
writable, and stateful locations for storage, excluded from the
sandbox that such services live in otherwise.
* Automake support has been removed from this release. systemd is now
Meson-only.
* systemd-journald will now aggressively cache client metadata during
runtime, speeding up log write performance under pressure. This comes
at a small price though: as much of the metadata is read
asynchronously from /proc/ (and isn't implicitly attached to log
datagrams by the kernel, like UID/GID/PID/SELinux are) this means the
metadata stored alongside a log entry might be slightly
out-of-date. Previously it could only be slightly newer than the log
message. The time window is small however, and given that the kernel
is unlikely to be improved anytime soon in this regard, this appears
acceptable to us.
* nss-myhostname/systemd-resolved will now by default synthesize an
A/AAAA resource record for the "_gateway" hostname, pointing to the
current default IP gateway. Previously it did that for the "gateway"
name, hampering adoption, as some distributions wanted to leave that
host name open for local use. The old behaviour may still be
requested at build time.
* systemd-networkd's [Address] section in .network files gained a new
Scope= setting for configuring the IP address scope. The [Network]
section gained a new boolean setting ConfigureWithoutCarrier= that
tells systemd-networkd to ignore link sensing when configuring the
device. The [DHCP] section gained a new Anonymize= boolean option for
turning on a number of options suggested in RFC 7844. A new
[RoutingPolicyRule] section has been added for configuring the IP
routing policy. The [Route] section has gained support for a new
Type= setting which permits configuring
blackhole/unreachable/prohibit routes.
* The [VRF] section in .netdev files gained a new Table= setting for
configuring the routing table to use. The [Tunnel] section gained a
new Independent= boolean field for configuring tunnels independent of
an underlying network interface. The [Bridge] section gained a new
GroupForwardMask= option for configuration of propagation of link
local frames between bridge ports.
* The WakeOnLan= setting in .link files gained support for a number of
new modes. A new TCP6SegmentationOffload= setting has been added for
configuring TCP/IPv6 hardware segmentation offload.
* The IPv6 RA sender implementation may now optionally send out RDNSS
and RDNSSL records to supply DNS configuration to peers.
* systemd-nspawn gained support for a new --system-call-filter= command
line option for adding and removing entries in the default system
call filter it applies. Moreover systemd-nspawn has been changed to
implement a system call whitelist instead of a blacklist.
* systemd-run gained support for a new --pipe command line option. If
used the STDIN/STDOUT/STDERR file descriptors passed to systemd-run
are directly passed on to the activated transient service
executable. This allows invoking arbitrary processes as systemd
services (for example to take benefit of dependency management,
accounting management, resource management or log management that is
done automatically for services) — while still allowing them to be
integrated in a classic UNIX shell pipeline.
* When a service sends RELOAD=1 via sd_notify() and reload propagation
using ReloadPropagationTo= is configured, a reload is now propagated
to configured units. (Previously this was only done on explicitly
requested reloads, using "systemctl reload" or an equivalent
command.)
* For each service unit a restart counter is now kept: it is increased
each time the service is restarted due to Restart=, and may be
queried using "systemctl show -p NRestarts …".
* New system call filter groups @aio, @sync, @chown, @setuid, @memlock,
@signal and @timer have been added, for usage with SystemCallFilter=
in unit files and the new --system-call-filter= command line option
of systemd-nspawn (see above).
* ExecStart= lines in unit files gained two new modifiers: when a
command line is prefixed with "!" the command will be executed as
configured, except for the credentials applied by
setuid()/setgid()/setgroups(). It is very similar to the pre-existing
"+", but does still apply namespacing options unlike "+". There's
also "!!" now, which is mostly identical, but becomes a NOP on
systems that support ambient capabilities. This is useful to write
unit files that work with ambient capabilities where possible but
automatically fall back to traditional privilege dropping mechanisms
on systems where this is not supported.
* ListenNetlink= settings in socket units now support RDMA netlink
sockets.
* A new unit file setting LockPersonality= has been added which permits
locking down the chosen execution domain ("personality") of a service
during runtime.
* A new special target "getty-pre.target" has been added, which is
ordered before all text logins, and may be used to order services
before textual logins acquire access to the console.
* systemd will now attempt to load the virtio-rng.ko kernel module very
early on if a VM environment supporting this is detected. This should
improve entropy during early boot in virtualized environments.
* A _netdev option is now supported in /etc/crypttab that operates in a
similar way as the same option in /etc/fstab: it permits configuring
encrypted devices that need to be ordered after the network is up.
Following this logic, two new special targets
remote-cryptsetup-pre.target and remote-cryptsetup.target have been
added that are to cryptsetup.target what remote-fs.target and
remote-fs-pre.target are to local-fs.target.
* Service units gained a new UnsetEnvironment= setting which permits
unsetting specific environment variables for services that are
normally passed to it (for example in order to mask out locale
settings for specific services that can't deal with it).
* Units acquired a new boolean option IPAccounting=. When turned on, IP
traffic accounting (packet count as well as byte count) is done for
the service, and shown as part of "systemctl status" or "systemd-run
--wait".
* Service units acquired two new options IPAddressAllow= and
IPAddressDeny=, taking a list of IPv4 or IPv6 addresses and masks,
for configuring a simple IP access control list for all sockets of
the unit. These options are available also on .slice and .socket
units, permitting flexible access list configuration for individual
services as well as groups of services (as defined by a slice unit),
including system-wide. Note that IP ACLs configured this way are
enforced on every single IPv4 and IPv6 socket created by any process
of the service unit, and apply to ingress as well as egress traffic.
* If CPUAccounting= or IPAccounting= is turned on for a unit a new
structured log message is generated each time the unit is stopped,
containing information about the consumed resources of this
invocation.
* A new setting KeyringMode= has been added to unit files, which may be
used to control how the kernel keyring is set up for executed
processes.
* "systemctl poweroff", "systemctl reboot", "systemctl halt",
"systemctl kexec" and "systemctl exit" are now always asynchronous in
behaviour (that is: these commands return immediately after the
operation was enqueued instead of waiting for the operation to
complete). Previously, "systemctl poweroff" and "systemctl reboot"
were asynchronous on systems using systemd-logind (i.e. almost
always, and like they were on sysvinit), and the other three commands
were unconditionally synchronous. With this release this is cleaned
up, and callers will see the same asynchronous behaviour on all
systems for all five operations.
* systemd-logind gained new Halt() and CanHalt() bus calls for halting
the system.
* .timer units now accept calendar specifications in other timezones
than UTC or the local timezone.
* The tmpfiles snippet var.conf has been changed to create
/var/log/btmp with access mode 0660 instead of 0600. It was owned by
the "utmp" group already, and it appears to be generally understood
that members of "utmp" can modify/flush the utmp/wtmp/lastlog/btmp
databases. Previously this was implemented correctly for all these
databases excepts btmp, which has been opened up like this now
too. Note that while the other databases are world-readable
(i.e. 0644), btmp is not and remains more restrictive.
* The systemd-resolve tool gained a new --reset-server-features
switch. When invoked like this systemd-resolved will forget
everything it learnt about the features supported by the configured
upstream DNS servers, and restarts the feature probing logic on the
next resolver look-up for them at the highest feature level
again.
* The status dump systemd-resolved sends to the logs upon receiving
SIGUSR1 now also includes information about all DNS servers it is
configured to use, and the features levels it probed for them.
Contributions from: Abdó Roig-Maranges, Alan Jenkins, Alexander
Kuleshov, Andreas Rammhold, Andrew Jeddeloh, Andrew Soutar, Ansgar
Burchardt, Beniamino Galvani, Benjamin Berg, Benjamin Robin, Charles
Huber, Christian Hesse, Daniel Berrange, Daniel Kahn Gillmor, Daniel
Mack, Daniel Rusek, Daniel Șerbănescu, Davide Cavalca, Dimitri John
Ledkov, Diogo Pereira, Djalal Harouni, Dmitriy Geels, Dmitry Torokhov,
ettavolt, Evgeny Vereshchagin, Fabio Kung, Felipe Sateler, Franck Bui,
Hans de Goede, Harald Hoyer, Insun Pyo, Ivan Kurnosov, Ivan Shapovalov,
Jakub Wilk, Jan Synacek, Jason Gunthorpe, Jeremy Bicha, Jérémy Rosen,
John Lin, jonasBoss, Jonathan Lebon, Jonathan Teh, Jon Ringle, Jörg
Thalheim, Jouke Witteveen, juga0, Justin Capella, Justin Michaud,
Kai-Heng Feng, Lennart Poettering, Lion Yang, Luca Bruno, Lucas
Werkmeister, Lukáš Nykrýn, Marcel Hollerbach, Marcus Lundblad, Martin
Pitt, Michael Biebl, Michael Grzeschik, Michal Sekletar, Mike Gilbert,
Neil Brown, Nicolas Iooss, Patrik Flykt, pEJipE, Piotr Drąg, Russell
Stuart, S. Fan, Shengyao Xue, Stefan Pietsch, Susant Sahani, Tejun Heo,
Thomas Miller, Thomas Sailer, Tobias Hunger, Tomasz Pala, Tom
Gundersen, Tommi Rantala, Topi Miettinen, Torstein Husebø, userwithuid,
Vasilis Liaskovitis, Vito Caputo, WaLyong Cho, William Douglas, Xiang
Fan, Yu Watanabe, Zbigniew Jędrzejewski-Szmek
— Berlin, 2017-10-06
CHANGES WITH 234:
* Meson is now supported as build system in addition to Automake. It is
@ -132,9 +378,6 @@ CHANGES WITH 234:
CHANGES WITH 233:
* This version requires at least gperf 3.1 for building, 3.0 is not
sufficient.
* The "hybrid" control group mode has been modified to improve
compatibility with "legacy" cgroups-v1 setups. Specifically, the
"hybrid" setup of /sys/fs/cgroup is now pretty much identical to

59
README
View File

@ -8,9 +8,6 @@ WEB SITE:
GIT:
git@github.com:systemd/systemd.git
https://github.com/systemd/systemd.git
GITWEB:
https://github.com/systemd/systemd
MAILING LIST:
@ -110,6 +107,14 @@ REQUIREMENTS:
fixed, and it's best to disable group scheduling hence.
CONFIG_RT_GROUP_SCHED=n
It's a good idea to disable the implicit creation of networking bonding
devices by the kernel networking bonding module, so that the
automatically created "bond0" interface doesn't conflict with any such
device created by systemd-networkd (or other tools). Ideally there
would be a kernel compile-time option for this, but there currently
isn't. The next best thing is to make this change through a modprobe.d
drop-in. This is shipped by default, see modprobe.d/systemd.conf.
Note that kernel auditing is broken when used with systemd's
container code. When using systemd in conjunction with
containers, please make sure to either turn off auditing at
@ -126,9 +131,8 @@ REQUIREMENTS:
glibc >= 2.16
libcap
libmount >= 2.27.1 (from util-linux)
(util-linux < 2.29 *must* be built with --enable-libmount-force-mountinfo,
and later versions without --enable-libmount-support-mtab.)
libmount >= 2.30 (from util-linux)
(util-linux *must* be built without --enable-libmount-support-mtab)
libseccomp >= 2.3.1 (optional)
libblkid >= 2.24 (from util-linux) (optional)
libkmod >= 15 (optional)
@ -145,7 +149,13 @@ REQUIREMENTS:
libpython (optional)
libidn2 or libidn (optional)
elfutils >= 158 (optional)
make, gcc, and similar tools
pkg-config
gperf
docbook-xsl (optional, required for documentation)
xsltproc (optional, required for documentation)
python-lxml (optional, required to build the indices)
python, meson, ninja
gcc, awk, sed, grep, m4, and similar tools
During runtime, you need the following additional
dependencies:
@ -157,18 +167,6 @@ REQUIREMENTS:
dracut (optional)
PolicyKit (optional)
Two build systems are supported: meson + ninja-build and autools + make.
The following tools are needed with both systems:
pkg-config
gperf >= 3.1
docbook-xsl (optional, required for documentation)
xsltproc (optional, required for documentation)
python-lxml (optional, required to build the indices)
When building with meson, python and ninja-build are required.
To build in directory build/:
meson build/ && ninja -C build
@ -185,19 +183,7 @@ REQUIREMENTS:
sudo ninja install
DESTDIR=... ninja install
When building with autotools, the following tools are needed:
automake
autoconf
libtool
intltool
python (optional)
The build system is initialized with ./autogen.sh and the usual
./configure && make
should be used.
A tar ball can be created with:
A tarball can be created with:
git archive --format=tar --prefix=systemd-222/ v222 | xz > systemd-222.tar.xz
When systemd-hostnamed is used, it is strongly recommended to
@ -304,9 +290,12 @@ WARNINGS:
https://www.freedesktop.org/wiki/Software/systemd/separate-usr-is-broken
To run systemd under valgrind, compile with VALGRIND defined
(e.g. ./configure CPPFLAGS='... -DVALGRIND=1'). Otherwise,
false positives will be triggered by code which violates
some rules but is actually safe.
(e.g. CPPFLAGS='... -DVALGRIND=1' meson <options>) and have valgrind
development headers installed (i.e. valgrind-devel or
equivalent). Otherwise, false positives will be triggered by code which
violates some rules but is actually safe. Note that valgrind generates
nice output only on exit(), hence on shutdown we don't execve()
systemd-shutdown.
ENGINEERING AND CONSULTING SERVICES:
Kinvolk (https://kinvolk.io) offers professional engineering

70
TODO
View File

@ -24,6 +24,36 @@ Janitorial Clean-ups:
Features:
* maybe set a new set of env vars for services, based on RuntimeDirectory=,
StateDirectory=, LogsDirectory=, CacheDirectory= and ConfigurationDirectory=
automatically. For example, there could be $RUNTIME_DIRECTORY,
$STATE_DIRECTORY, $LOGS_DIRECTORY=, $CACHE_DIRECTORY and
$CONFIGURATION_DIRECTORY or so. This could be useful to write services that
can adapt to varying directories for these purposes. Special care has to be
taken if multiple dirs are configured. Maybe avoid setting the env vars in
that case?
* In a similar vein, consider adding unit specifiers that resolve to the root
directory used for state, logs, cache and configuration
directory. i.e. similar to %t, but for the root of the other special dirs.
* expose IO accounting data on the bus, show it in systemd-run --wait and log
about it in the resource log message
* add "systemctl purge" for flushing out configuration, state, logs, ... of a
unit when it is stopped
* show whether a service has out-of-date configuration in "systemctl status" by
using mtime data of ConfigurationDirectory=.
* replace all uses of fgets() + LINE_MAX by read_line()
* set IPAddressDeny=any on all services that shouldn't do networking (possibly
combined with IPAddressAllow=localhost).
* dissect: when we discover squashfs, don't claim we had a "writable" partition
in systemd-dissect
* Add AddUser= setting to unit files, similar to DynamicUser=1 which however
creates a static, persistent user rather than a dynamic, transient user. We
can leverage code from sysusers.d for this.
@ -37,8 +67,6 @@ Features:
diffs remain minimal (in particular: the OUI databases we import are not
sorted, and not stable)
* set SystemCallArchitectures=native on all our services
* maybe add call sd_journal_set_block_timeout() or so to set SO_SNDTIMEO for
the sd-journal logging socket, and, if the timeout is set to 0, sets
O_NONBLOCK on it. That way people can control if and when to block for
@ -47,13 +75,6 @@ Features:
* tighten sd_notify() MAINPID= checks a bit: don't accept foreign PIDs (i.e.
PIDs not managed by the service manager)
* journald: when we recv a log datagram via the native or syslog transports,
search for the PID in the active stream connections, and let's make sure to
always process the datagrams before the streams. Then, cache client metadata
per stream in the stream object. This way we can somewhat fix the race with
quickly exiting processes which log as long as they had their own stream
connection...
* hostnamed: populate form factor data from a new hwdb database, so that old
yogas can be recognized as "convertible" too, even if they predate the DMI
"convertible" form factor
@ -94,8 +115,6 @@ Features:
* maybe introduce gpt auto discovery for /var/tmp?
* set ProtectSystem=strict for all our usual services.
* fix PrivateNetwork= so that we fall back gracefully on kernels lacking
namespacing support (similar for the other namespacing options)
@ -140,8 +159,6 @@ Features:
* enable LockMLOCK to take a percentage value relative to physical memory
* switch to ProtectSystem=strict for all our long-running services where that's possible
* Permit masking specific netlink APIs with RestrictAddressFamily=
* nspawn: start UID allocation loop from hash of container name
@ -168,9 +185,6 @@ Features:
* DeviceAllow= should also generate seccomp filters for mknod()
* Add DataDirectory=, CacheDirectory= and LogDirectory= to match
RuntimeDirectory=, and create it as necessary when starting a service, owned by the right user.
* make sure the ratelimit object can deal with USEC_INFINITY as way to turn off things
* journalctl: make sure -f ends when the container indicated by -M terminates
@ -435,25 +449,18 @@ Features:
* sd-bus:
- EBADSLT handling
- GetAllProperties() on a non-existing object does not result in a failure currently
- kdbus: process fd=-1 for incoming msgs
- port to sd-resolve for connecting to TCP dbus servers
- kdbus: maybe add controlling tty metadata fields
- see if we can introduce a new sd_bus_get_owner_machine_id() call to retrieve the machine ID of the machine of the bus itself
- when kdbus does not take our message without memfds, try again with memfds
- see if we can drop more message validation on the sending side
- add API to clone sd_bus_message objects
- make AddMatch calls on dbus1 transports async?
- kdbus: matches against source or destination pids for an "strace -p"-like feel. Problem: The PID info needs to be available in userspace too...
- longer term: priority inheritance
- dbus spec updates:
- kdbus mapping
- NameLost/NameAcquired obsolete
- GVariant
- path escaping
- update systemd.special(7) to mention that dbus.socket is only about the compatibility socket now
- test bloom filter generation indexes
- kdbus: introduce a concept of "send-only" connections
- kdbus: add counter for refused unicast messages that is passed out via the RECV ioctl. SImilar to the counter for dropped multicast messages we already have.
* sd-event
- allow multiple signal handlers per signal?
@ -473,8 +480,6 @@ Features:
* maybe add a generator that looks for "systemd.run=" on the kernel cmdline for container usercases...
* cgtop: make cgtop useful in a container
* test/:
- add 'set -e' to scripts in test/
- make stuff in test/ work with separate output dir
@ -724,8 +729,6 @@ Features:
* cryptsetup:
- cryptsetup-generator: allow specification of passwords in crypttab itself
- move cryptsetup key caching into kernel keyctl?
https://bugs.freedesktop.org/show_bug.cgi?id=54982
- support rd.luks.allow-discards= kernel cmdline params in cryptsetup generator
* hw watchdog: optionally try to use the preset watchdog timeout instead of always overriding it
@ -733,6 +736,8 @@ Features:
* create /sbin/init symlinks from the build system
* add a dependency on standard-conf.xml and other included files to man pages
* MountFlags=shared acts as MountFlags=slave right now.
* properly handle loop back mounts via fstab, especially regards to fsck/passno
@ -745,8 +750,6 @@ Features:
- add trigger --subsystem-match=usb/usb_device device
- reimport udev db after MOVE events for devices without dev_t
* when a service has the same env var set twice we actually store it twice and return that in systemctl show -p... We should only show the last setting
* There's currently no way to cancel fsck (used to be possible via C-c or c on the console)
* add option to sockets to avoid activation. Instead just drop packets/connections, see http://cyberelk.net/tim/2012/02/15/portreserve-systemd-solution/
@ -805,10 +808,7 @@ Features:
* dot output for --test showing the 'initial transaction'
* fingerprint.target, wireless.target, gps.target, netdevice.target
* pid1:
- .timer units should optionally support CLOCK_BOOTTIME in addition to CLOCK_MONOTONIC
- When logging about multiple units (stopping BoundTo units, conflicts, etc.),
log both units as UNIT=, so that journalctl -u triggers on both.
- generate better errors when people try to set transient properties
@ -844,12 +844,9 @@ Features:
- load-fragment: when loading a unit file via a chain of symlinks
verify that it is not masked via any of the names traversed.
- introduce Type=pid-file
- ExecOnFailure=/usr/bin/foo
- introduce mix of BindTo and Requisite
- add a concept of RemainAfterExit= to scope units
- Set NoNewPrivileges= on all of our own services, where that makes sense
- Allow multiple ExecStart= for all Type= settings, so that we can cover rescue.service nicely
- consider adding RuntimeDirectoryUser= + RuntimeDirectoryGroup=
* udev-link-config:
- Make sure ID_PATH is always exported and complete for
@ -891,7 +888,6 @@ Features:
* dhcp:
- figure out how much we can increase Maximum Message Size
- support RFC4702 (pass FQDN)
* dhcp6:
- add functions to set previously stored IPv6 addresses on startup and get
@ -923,8 +919,6 @@ External:
* drop accountsservice's StandardOutput=syslog and Type=dbus fields
* dbus: in fedora, make /var/lib/dbus/machine-id a symlink to /etc/machine-id
* /usr/bin/service should actually show the new command line
* fedora: suggest auto-restart on failure, but not on success and not on coredump. also, ask people to think about changing the start limit logic. Also point people to RestartPreventExitStatus=, SuccessExitStatus=

View File

@ -1,94 +0,0 @@
#!/bin/sh
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# systemd is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
set -e
verb="$1"
case "$verb" in
"") ;;
[cgals]) shift ;;
*) echo "Unexpected argument: $verb" >&2; exit 1 ;;
esac
oldpwd=$(pwd)
topdir=$(dirname $0)
cd $topdir
if [ -f .git/hooks/pre-commit.sample ] && [ ! -f .git/hooks/pre-commit ]; then
# This part is allowed to fail
cp -p .git/hooks/pre-commit.sample .git/hooks/pre-commit && \
chmod +x .git/hooks/pre-commit && \
echo "Activated pre-commit hook." || :
fi
intltoolize --force --automake
autoreconf --force --install --symlink
libdir() {
echo $(cd "$1/$(gcc -print-multi-os-directory)"; pwd)
}
args="\
--sysconfdir=/etc \
--localstatedir=/var \
--libdir=$(libdir /usr/lib) \
"
if [ -f "$topdir/.config.args" ]; then
args="$args $(cat $topdir/.config.args)"
fi
if [ ! -L /bin ]; then
args="$args \
--with-rootprefix=/ \
--with-rootlibdir=$(libdir /lib) \
"
fi
args="$args $@"
cd $oldpwd
if [ "$verb" = "c" ]; then
set -x
$topdir/configure CFLAGS='-g -O0 -ftrapv' $args
make clean >/dev/null
elif [ "$verb" = "g" ]; then
set -x
$topdir/configure CFLAGS='-g -Og -ftrapv' $args
make clean >/dev/null
elif [ "$verb" = "a" ]; then
set -x
$topdir/configure CFLAGS='-g -O0 -Wsuggest-attribute=pure -Wsuggest-attribute=const -ftrapv' $args
make clean >/dev/null
elif [ "$verb" = "l" ]; then
set -x
$topdir/configure CC=clang CFLAGS='-g -O0 -ftrapv' $args
make clean >/dev/null
elif [ "$verb" = "s" ]; then
set -x
scan-build $topdir/configure CFLAGS='-std=gnu99 -g -O0 -ftrapv' $args
scan-build make
else
echo
echo "----------------------------------------------------------------"
echo "Initialized build system. For a common configuration please run:"
echo "----------------------------------------------------------------"
echo
echo "$topdir/configure CFLAGS='-g -O0 -ftrapv' $args"
echo
fi

1
catalog/.gitignore vendored
View File

@ -1 +0,0 @@
*.catalog

View File

@ -1 +0,0 @@
../src/Makefile

View File

@ -2,6 +2,7 @@ in_files = '''
systemd.bg.catalog
systemd.be.catalog
systemd.be@latin.catalog
systemd.de.catalog
systemd.fr.catalog
systemd.it.catalog
systemd.pl.catalog

View File

@ -99,18 +99,6 @@ and storage by systemd-coredump(8). Only the first @SIZE_LIMIT@ bytes were
saved. This core might still be usable, but various tools like gdb(1) will warn
about the file being truncated.
-- fc2e22bc6ee647b6b90729ab34a250b1 de
Subject: Speicherabbild für Prozess @COREDUMP_PID@ (@COREDUMP_COMM) generiert
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:core(5)
Prozess @COREDUMP_PID@ (@COREDUMP_COMM@) ist abgebrochen worden und
ein Speicherabbild wurde generiert.
Üblicherweise ist dies ein Hinweis auf einen Programmfehler und sollte
als Fehler dem jeweiligen Hersteller gemeldet werden.
-- 8d45620c1a4348dbb17410da57c60c66
Subject: A new session @SESSION_ID@ has been created for user @USER_ID@
Defined-By: systemd
@ -354,3 +342,18 @@ Documentation: man:systemd-resolved.service(8)
A DNSSEC trust anchor has been revoked. A new trust anchor has to be
configured, or the operating system needs to be updated, to provide an updated
DNSSEC trust anchor.
-- 5eb03494b6584870a536b337290809b3
Subject: Automatic restarting of a unit has been scheduled
Defined-By: systemd
Support: %SUPPORT_URL%
Automatic restarting of the unit @UNIT@ has been scheduled, as the result for
the configured Restart= setting for the unit.
-- ae8f7b866b0347b9af31fe1c80b127c0
Subject: Resources consumed by unit runtime
Defined-By: systemd
Support: %SUPPORT_URL%
The unit @UNIT@ completed and consumed the indicated resources.

View File

@ -1,6 +1,6 @@
# This file is part of systemd.
#
# Copyright 2010 Lennart Poettering
# Copyright 2012 Lennart Poettering
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
@ -15,14 +15,14 @@
# You should have received a copy of the GNU Lesser General Public License
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
# This file is a dirty trick to simplify compilation from within
# emacs. This file is not intended to be distributed. So, don't touch
# it, even better ignore it!
-- fc2e22bc6ee647b6b90729ab34a250b1
Subject: Speicherabbild für Prozess @COREDUMP_PID@ (@COREDUMP_COMM) generiert
Defined-By: systemd
Support: %SUPPORT_URL%
Documentation: man:core(5)
all:
$(MAKE) -C ..
Prozess @COREDUMP_PID@ (@COREDUMP_COMM@) ist abgebrochen worden und
ein Speicherabbild wurde generiert.
clean:
$(MAKE) -C .. clean
.PHONY: all clean
Üblicherweise ist dies ein Hinweis auf einen Programmfehler und sollte
als Fehler dem jeweiligen Hersteller gemeldet werden.

View File

@ -1,7 +1,7 @@
# This file is part of systemd.
#
# Copyright 2012 Lennart Poettering
# Copyright 2014-2016 Piotr Drąg
# Copyright 2014-2017 Piotr Drąg
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
@ -336,3 +336,18 @@ Documentation: man:systemd-resolved.service(8)
Kotwica zaufania DNSSEC została unieważniona. Należy skonfigurować nową, albo
system operacyjny musi zostać zaktualizowany, aby dostarczyć zaktualizowaną
kotwicę zaufania DNSSEC.
-- 5eb03494b6584870a536b337290809b3
Subject: Zaplanowano automatyczne ponowne uruchamianie jednostki
Defined-By: systemd
Support: %SUPPORT_URL%
W wyniki skonfigurowania ustawienia Restart= zaplanowano automatyczne ponowne
uruchamianie jednostki @UNIT@.
-- ae8f7b866b0347b9af31fe1c80b127c0
Subject: Zasoby zużyte przez uruchomienie jednostki
Defined-By: systemd
Support: %SUPPORT_URL%
Jednostka @UNIT@ została ukończona, zużywając wskazane zasoby.

35
coccinelle/in_set.cocci Normal file
View File

@ -0,0 +1,35 @@
@@
expression e;
identifier n1, n2, n3, n4, n5, n6;
statement s;
@@
- e == n1 || e == n2 || e == n3 || e == n4 || e == n5 || e == n6
+ IN_SET(e, n1, n2, n3, n4, n5, n6)
@@
expression e;
identifier n1, n2, n3, n4, n5;
statement s;
@@
- e == n1 || e == n2 || e == n3 || e == n4 || e == n5
+ IN_SET(e, n1, n2, n3, n4, n5)
@@
expression e;
identifier n1, n2, n3, n4;
statement s;
@@
- e == n1 || e == n2 || e == n3 || e == n4
+ IN_SET(e, n1, n2, n3, n4)
@@
expression e;
identifier n1, n2, n3;
statement s;
@@
- e == n1 || e == n2 || e == n3
+ IN_SET(e, n1, n2, n3)
@@
expression e;
identifier n, p;
statement s;
@@
- e == n || e == p
+ IN_SET(e, n, p)

147
coccinelle/not_in_set.cocci Normal file
View File

@ -0,0 +1,147 @@
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9 && e != n10 && e != n11 && e != n12 && e != n13 && e != n14 && e != n15 && e != n16 && e != n17 && e != n18 && e != n19 && e != n20
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19, n20)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9 && e != n10 && e != n11 && e != n12 && e != n13 && e != n14 && e != n15 && e != n16 && e != n17 && e != n18 && e != n19
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18, n19)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9 && e != n10 && e != n11 && e != n12 && e != n13 && e != n14 && e != n15 && e != n16 && e != n17 && e != n18
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17, n18)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9 && e != n10 && e != n11 && e != n12 && e != n13 && e != n14 && e != n15 && e != n16 && e != n17
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16, n17)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9 && e != n10 && e != n11 && e != n12 && e != n13 && e != n14 && e != n15 && e != n16
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9 && e != n10 && e != n11 && e != n12 && e != n13 && e != n14 && e != n15
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9 && e != n10 && e != n11 && e != n12 && e != n13 && e != n14
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9 && e != n10 && e != n11 && e != n12 && e != n13
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9 && e != n10 && e != n11 && e != n12
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9 && e != n10 && e != n11
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6 && e != n7 && e != n8 && e != n9 && e != n10
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8, n9;
statement s;
@@
- 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)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7, n8;
statement s;
@@
- 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)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6, n7;
statement s;
@@
- 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)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5, n6;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5 && e != n6
+ !IN_SET(e, n0, n1, n2, n3, n4, n5, n6)
@@
expression e;
identifier n0, n1, n2, n3, n4, n5;
statement s;
@@
- e != n0 && e != n1 && e != n2 && e != n3 && e != n4 && e != n5
+ !IN_SET(e, n0, n1, n2, n3, n4, n5)
@@
expression e;
identifier n1, n2, n3, n4, n5;
statement s;
@@
- e != n1 && e != n2 && e != n3 && e != n4 && e != n5
+ !IN_SET(e, n1, n2, n3, n4, n5)
@@
expression e;
identifier n1, n2, n3, n4;
statement s;
@@
- e != n1 && e != n2 && e != n3 && e != n4
+ !IN_SET(e, n1, n2, n3, n4)
@@
expression e;
identifier n1, n2, n3, n4;
statement s;
@@
- e != n1 && e != n2 && e != n3 && e != n4
+ !IN_SET(e, n1, n2, n3, n4)
@@
expression e;
identifier n1, n2, n3;
statement s;
@@
- e != n1 && e != n2 && e != n3
+ !IN_SET(e, n1, n2, n3)
@@
expression e;
identifier n, p;
statement s;
@@
- e != n && e != p
+ !IN_SET(e, n, p)

21
configure vendored Executable file
View File

@ -0,0 +1,21 @@
#!/bin/bash -e
cflags=CFLAGS="$CFLAGS"
cxxflags=CXXFLAGS="$CXXFLAGS"
declare -a args
j=0
for i in "$@"; do
case "$i" in
CFLAGS=*)
cflags="$i";;
CXXFLAGS=*)
cxxflags="$i";;
*)
args[$j]="$i"
j=$((j+1))
esac
done
export "$cflags" "$cxxflags"
set -x
exec meson build "${args[@]}"

File diff suppressed because it is too large Load Diff

1
docs/.gitignore vendored
View File

@ -1 +0,0 @@
/html

View File

@ -1 +0,0 @@
../src/Makefile

View File

@ -1 +0,0 @@
/README

View File

@ -1 +0,0 @@
../../src/Makefile

View File

@ -3,7 +3,7 @@ file = configure_file(
output : 'README',
configuration : substs)
if conf.get('HAVE_SYSV_COMPAT', false)
if conf.get('HAVE_SYSV_COMPAT') == 1
install_data(file,
install_dir : sysvinit_path)
endif

View File

@ -1 +0,0 @@
/README

View File

@ -1 +0,0 @@
../../src/Makefile

View File

@ -3,7 +3,7 @@ file = configure_file(
output : 'README',
configuration : substs)
if conf.get('HAVE_SYSV_COMPAT', false)
if conf.get('HAVE_SYSV_COMPAT') == 1
install_data(file,
install_dir : varlogdir)
endif

7
hwdb/.gitignore vendored
View File

@ -1,8 +1 @@
/20-acpi-vendor.hwdb.base
/acpi_id_registry.html
/ma-large.txt
/ma-medium.txt
/ma-small.txt
/pci.ids
/pnp_id_registry.html
/usb.ids

File diff suppressed because it is too large Load Diff

View File

@ -114,6 +114,9 @@ acpi:IBMX*:
acpi:IDEA*:
ID_VENDOR_FROM_DATABASE=Lenovo Beijing Co. Ltd.
acpi:IHSE*:
ID_VENDOR_FROM_DATABASE=IHSE GmbH
acpi:IMPJ*:
ID_VENDOR_FROM_DATABASE=Impinj
@ -1338,9 +1341,6 @@ acpi:CHO*:
acpi:CHP*:
ID_VENDOR_FROM_DATABASE=CH Products
acpi:CHR*:
ID_VENDOR_FROM_DATABASE=christmann informationstechnik + medien GmbH & Co. KG
acpi:CHS*:
ID_VENDOR_FROM_DATABASE=Agentur Chairos
@ -2736,9 +2736,6 @@ acpi:GFN*:
acpi:GGL*:
ID_VENDOR_FROM_DATABASE=Google Inc.
acpi:GGT*:
ID_VENDOR_FROM_DATABASE=G2TOUCH KOREA
acpi:GIC*:
ID_VENDOR_FROM_DATABASE=General Inst. Corporation
@ -4551,9 +4548,6 @@ acpi:MVM*:
acpi:MVN*:
ID_VENDOR_FROM_DATABASE=Meta Company
acpi:MVR*:
ID_VENDOR_FROM_DATABASE=MediCapture, Inc.
acpi:MVS*:
ID_VENDOR_FROM_DATABASE=Microvision
@ -5265,9 +5259,6 @@ acpi:PNR*:
acpi:PNS*:
ID_VENDOR_FROM_DATABASE=PanaScope
acpi:PNT*:
ID_VENDOR_FROM_DATABASE=HOYA Corporation PENTAX Lifecare Division
acpi:PNX*:
ID_VENDOR_FROM_DATABASE=Phoenix Technologies, Ltd.
@ -6522,9 +6513,6 @@ acpi:TEK*:
acpi:TEL*:
ID_VENDOR_FROM_DATABASE=Promotion and Display Technology Ltd.
acpi:TEN*:
ID_VENDOR_FROM_DATABASE=Tencent
acpi:TER*:
ID_VENDOR_FROM_DATABASE=TerraTec Electronic GmbH

View File

@ -1,5 +1,5 @@
--- 20-acpi-vendor.hwdb.base 2016-06-10 12:40:38.143970821 +0200
+++ 20-acpi-vendor.hwdb 2016-06-10 12:43:40.557054147 +0200
--- 20-acpi-vendor.hwdb.base 2017-09-28 13:48:25.370636463 +0200
+++ 20-acpi-vendor.hwdb 2017-09-28 13:48:25.375636571 +0200
@@ -3,6 +3,8 @@
# Data imported from:
# http://www.uefi.org/uefi-pnp-export
@ -7,9 +7,9 @@
+#
+# With various additions from other sources
acpi:3NOD*:
ID_VENDOR_FROM_DATABASE=Shenzhen three Connaught Information Technology Co., Ltd. (3nod Group)
@@ -10,9 +12,6 @@
acpi:3GVR*:
ID_VENDOR_FROM_DATABASE=VR Technology Holdings Limited
@@ -16,9 +18,6 @@
acpi:AAVA*:
ID_VENDOR_FROM_DATABASE=Aava Mobile Oy
@ -19,7 +19,7 @@
acpi:AMDI*:
ID_VENDOR_FROM_DATABASE=AMD
@@ -217,6 +216,9 @@
@@ -244,6 +243,9 @@
acpi:AAA*:
ID_VENDOR_FROM_DATABASE=Avolites Ltd
@ -29,7 +29,7 @@
acpi:AAE*:
ID_VENDOR_FROM_DATABASE=Anatek Electronics Inc.
@@ -241,6 +243,9 @@
@@ -271,6 +273,9 @@
acpi:ABO*:
ID_VENDOR_FROM_DATABASE=D-Link Systems Inc
@ -39,7 +39,7 @@
acpi:ABS*:
ID_VENDOR_FROM_DATABASE=Abaco Systems, Inc.
@@ -286,7 +291,7 @@
@@ -316,7 +321,7 @@
acpi:ACO*:
ID_VENDOR_FROM_DATABASE=Allion Computer Inc.
@ -48,7 +48,7 @@
ID_VENDOR_FROM_DATABASE=Aspen Tech Inc
acpi:ACR*:
@@ -556,6 +561,9 @@
@@ -586,6 +591,9 @@
acpi:AMT*:
ID_VENDOR_FROM_DATABASE=AMT International Industry
@ -58,7 +58,7 @@
acpi:AMX*:
ID_VENDOR_FROM_DATABASE=AMX LLC
@@ -604,6 +612,9 @@
@@ -634,6 +642,9 @@
acpi:AOA*:
ID_VENDOR_FROM_DATABASE=AOpen Inc.
@ -68,7 +68,7 @@
acpi:AOE*:
ID_VENDOR_FROM_DATABASE=Advanced Optics Electronics, Inc.
@@ -613,6 +624,9 @@
@@ -643,6 +654,9 @@
acpi:AOT*:
ID_VENDOR_FROM_DATABASE=Alcatel
@ -78,7 +78,7 @@
acpi:APC*:
ID_VENDOR_FROM_DATABASE=American Power Conversion
@@ -788,7 +802,7 @@
@@ -818,7 +832,7 @@
ID_VENDOR_FROM_DATABASE=Alps Electric Inc
acpi:AUO*:
@ -87,9 +87,9 @@
acpi:AUR*:
ID_VENDOR_FROM_DATABASE=Aureal Semiconductor
@@ -862,6 +876,9 @@
acpi:AXC*:
ID_VENDOR_FROM_DATABASE=AXIOMTEK CO., LTD.
@@ -895,6 +909,9 @@
acpi:AXE*:
ID_VENDOR_FROM_DATABASE=Axell Corporation
+acpi:AXE*:
+ ID_VENDOR_FROM_DATABASE=D-Link Systems Inc
@ -97,7 +97,7 @@
acpi:AXI*:
ID_VENDOR_FROM_DATABASE=American Magnetics
@@ -1003,6 +1020,9 @@
@@ -1039,6 +1056,9 @@
acpi:BML*:
ID_VENDOR_FROM_DATABASE=BIOMED Lab
@ -107,7 +107,7 @@
acpi:BMS*:
ID_VENDOR_FROM_DATABASE=BIOMEDISYS
@@ -1015,6 +1035,9 @@
@@ -1051,6 +1071,9 @@
acpi:BNO*:
ID_VENDOR_FROM_DATABASE=Bang & Olufsen
@ -117,7 +117,7 @@
acpi:BNS*:
ID_VENDOR_FROM_DATABASE=Boulder Nonlinear Systems
@@ -1255,6 +1278,9 @@
@@ -1291,6 +1314,9 @@
acpi:CHA*:
ID_VENDOR_FROM_DATABASE=Chase Research PLC
@ -127,7 +127,7 @@
acpi:CHD*:
ID_VENDOR_FROM_DATABASE=ChangHong Electric Co.,Ltd
@@ -1402,6 +1428,9 @@
@@ -1438,6 +1464,9 @@
acpi:COD*:
ID_VENDOR_FROM_DATABASE=CODAN Pty. Ltd.
@ -137,7 +137,7 @@
acpi:COI*:
ID_VENDOR_FROM_DATABASE=Codec Inc.
@@ -1805,7 +1834,7 @@
@@ -1841,7 +1870,7 @@
ID_VENDOR_FROM_DATABASE=Dragon Information Technology
acpi:DJE*:
@ -146,7 +146,7 @@
acpi:DJP*:
ID_VENDOR_FROM_DATABASE=Maygay Machines, Ltd
@@ -2119,6 +2148,9 @@
@@ -2161,6 +2190,9 @@
acpi:EIC*:
ID_VENDOR_FROM_DATABASE=Eicon Technology Corporation
@ -156,7 +156,7 @@
acpi:EKA*:
ID_VENDOR_FROM_DATABASE=MagTek Inc.
@@ -2377,6 +2409,9 @@
@@ -2419,6 +2451,9 @@
acpi:FCG*:
ID_VENDOR_FROM_DATABASE=First International Computer Ltd
@ -166,7 +166,7 @@
acpi:FCS*:
ID_VENDOR_FROM_DATABASE=Focus Enhancements, Inc.
@@ -2839,6 +2874,9 @@
@@ -2884,6 +2919,9 @@
acpi:HEC*:
ID_VENDOR_FROM_DATABASE=Hisense Electric Co., Ltd.
@ -176,7 +176,7 @@
acpi:HEL*:
ID_VENDOR_FROM_DATABASE=Hitachi Micro Systems Europe Ltd
@@ -2968,6 +3006,9 @@
@@ -3013,6 +3051,9 @@
acpi:HSD*:
ID_VENDOR_FROM_DATABASE=HannStar Display Corp
@ -186,7 +186,7 @@
acpi:HSM*:
ID_VENDOR_FROM_DATABASE=AT&T Microelectronics
@@ -3082,6 +3123,9 @@
@@ -3133,6 +3174,9 @@
acpi:ICI*:
ID_VENDOR_FROM_DATABASE=Infotek Communication Inc
@ -196,7 +196,7 @@
acpi:ICM*:
ID_VENDOR_FROM_DATABASE=Intracom SA
@@ -3175,6 +3219,9 @@
@@ -3226,6 +3270,9 @@
acpi:IKE*:
ID_VENDOR_FROM_DATABASE=Ikegami Tsushinki Co. Ltd.
@ -206,7 +206,7 @@
acpi:IKS*:
ID_VENDOR_FROM_DATABASE=Ikos Systems Inc
@@ -3217,6 +3264,9 @@
@@ -3268,6 +3315,9 @@
acpi:IMT*:
ID_VENDOR_FROM_DATABASE=Inmax Technology Corporation
@ -216,7 +216,7 @@
acpi:INA*:
ID_VENDOR_FROM_DATABASE=Inventec Corporation
@@ -3712,6 +3762,9 @@
@@ -3769,6 +3819,9 @@
acpi:LAN*:
ID_VENDOR_FROM_DATABASE=Sodeman Lancom Inc
@ -226,7 +226,7 @@
acpi:LAS*:
ID_VENDOR_FROM_DATABASE=LASAT Comm. A/S
@@ -3757,6 +3810,9 @@
@@ -3814,6 +3867,9 @@
acpi:LED*:
ID_VENDOR_FROM_DATABASE=Long Engineering Design Inc
@ -236,7 +236,7 @@
acpi:LEG*:
ID_VENDOR_FROM_DATABASE=Legerity, Inc
@@ -3772,6 +3828,9 @@
@@ -3829,6 +3885,9 @@
acpi:LGC*:
ID_VENDOR_FROM_DATABASE=Logic Ltd
@ -246,7 +246,7 @@
acpi:LGI*:
ID_VENDOR_FROM_DATABASE=Logitech Inc
@@ -3823,6 +3882,9 @@
@@ -3880,6 +3939,9 @@
acpi:LND*:
ID_VENDOR_FROM_DATABASE=Land Computer Company Ltd
@ -256,7 +256,7 @@
acpi:LNK*:
ID_VENDOR_FROM_DATABASE=Link Tech Inc
@@ -3857,7 +3919,7 @@
@@ -3914,7 +3976,7 @@
ID_VENDOR_FROM_DATABASE=Design Technology
acpi:LPL*:
@ -265,7 +265,7 @@
acpi:LSC*:
ID_VENDOR_FROM_DATABASE=LifeSize Communications
@@ -4027,6 +4089,9 @@
@@ -4084,6 +4146,9 @@
acpi:MCX*:
ID_VENDOR_FROM_DATABASE=Millson Custom Solutions Inc.
@ -275,7 +275,7 @@
acpi:MDA*:
ID_VENDOR_FROM_DATABASE=Media4 Inc
@@ -4252,6 +4317,9 @@
@@ -4312,6 +4377,9 @@
acpi:MOM*:
ID_VENDOR_FROM_DATABASE=Momentum Data Systems
@ -285,7 +285,7 @@
acpi:MOS*:
ID_VENDOR_FROM_DATABASE=Moses Corporation
@@ -4474,6 +4542,9 @@
@@ -4534,6 +4602,9 @@
acpi:NAL*:
ID_VENDOR_FROM_DATABASE=Network Alchemy
@ -295,7 +295,7 @@
acpi:NAT*:
ID_VENDOR_FROM_DATABASE=NaturalPoint Inc.
@@ -4969,6 +5040,9 @@
@@ -5032,6 +5103,9 @@
acpi:PCX*:
ID_VENDOR_FROM_DATABASE=PC Xperten
@ -305,7 +305,7 @@
acpi:PDM*:
ID_VENDOR_FROM_DATABASE=Psion Dacom Plc.
@@ -5032,9 +5106,6 @@
@@ -5095,9 +5169,6 @@
acpi:PHE*:
ID_VENDOR_FROM_DATABASE=Philips Medical Systems Boeblingen GmbH
@ -315,7 +315,7 @@
acpi:PHL*:
ID_VENDOR_FROM_DATABASE=Philips Consumer Electronics Company
@@ -5116,9 +5187,6 @@
@@ -5182,9 +5253,6 @@
acpi:PNL*:
ID_VENDOR_FROM_DATABASE=Panelview, Inc.
@ -325,7 +325,7 @@
acpi:PNR*:
ID_VENDOR_FROM_DATABASE=Planar Systems, Inc.
@@ -5248,15 +5316,9 @@
@@ -5314,15 +5382,9 @@
acpi:PTS*:
ID_VENDOR_FROM_DATABASE=Plain Tree Systems Inc
@ -341,7 +341,7 @@
acpi:PVG*:
ID_VENDOR_FROM_DATABASE=Proview Global Co., Ltd
@@ -5560,9 +5622,6 @@
@@ -5629,9 +5691,6 @@
acpi:RTI*:
ID_VENDOR_FROM_DATABASE=Rancho Tech Inc
@ -351,7 +351,7 @@
acpi:RTL*:
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd
@@ -5725,9 +5784,6 @@
@@ -5794,9 +5853,6 @@
acpi:SEE*:
ID_VENDOR_FROM_DATABASE=SeeColor Corporation
@ -361,7 +361,7 @@
acpi:SEI*:
ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc
@@ -6178,6 +6234,9 @@
@@ -6247,6 +6303,9 @@
acpi:SVD*:
ID_VENDOR_FROM_DATABASE=SVD Computer
@ -371,7 +371,7 @@
acpi:SVI*:
ID_VENDOR_FROM_DATABASE=Sun Microsystems
@@ -6259,6 +6318,9 @@
@@ -6328,6 +6387,9 @@
acpi:SZM*:
ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd
@ -381,9 +381,9 @@
acpi:TAA*:
ID_VENDOR_FROM_DATABASE=Tandberg
@@ -6343,6 +6405,9 @@
acpi:TDD*:
ID_VENDOR_FROM_DATABASE=Tandberg Data Display AS
@@ -6418,6 +6480,9 @@
acpi:TDG*:
ID_VENDOR_FROM_DATABASE=Six15 Technologies
+acpi:TDK*:
+ ID_VENDOR_FROM_DATABASE=TDK USA Corporation
@ -391,7 +391,7 @@
acpi:TDM*:
ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc
@@ -6379,6 +6444,9 @@
@@ -6454,6 +6519,9 @@
acpi:TET*:
ID_VENDOR_FROM_DATABASE=TETRADYNE CO., LTD.
@ -401,7 +401,7 @@
acpi:TEZ*:
ID_VENDOR_FROM_DATABASE=Tech Source Inc.
@@ -6490,9 +6558,6 @@
@@ -6568,9 +6636,6 @@
acpi:TNC*:
ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd
@ -411,7 +411,7 @@
acpi:TNM*:
ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA
@@ -6787,14 +6852,14 @@
@@ -6874,14 +6939,14 @@
acpi:UNC*:
ID_VENDOR_FROM_DATABASE=Unisys Corporation
@ -432,7 +432,7 @@
acpi:UNI*:
ID_VENDOR_FROM_DATABASE=Uniform Industry Corp.
@@ -6829,6 +6894,9 @@
@@ -6916,6 +6981,9 @@
acpi:USA*:
ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG
@ -442,7 +442,7 @@
acpi:USD*:
ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
@@ -7057,9 +7125,6 @@
@@ -7144,9 +7212,6 @@
acpi:WAL*:
ID_VENDOR_FROM_DATABASE=Wave Access
@ -452,7 +452,7 @@
acpi:WAV*:
ID_VENDOR_FROM_DATABASE=Wavephore
@@ -7178,7 +7243,7 @@
@@ -7265,7 +7330,7 @@
ID_VENDOR_FROM_DATABASE=Woxter Technology Co. Ltd
acpi:WYS*:
@ -461,7 +461,7 @@
acpi:WYT*:
ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
@@ -7192,9 +7257,6 @@
@@ -7279,9 +7344,6 @@
acpi:XDM*:
ID_VENDOR_FROM_DATABASE=XDM Ltd.
@ -471,7 +471,7 @@
acpi:XFG*:
ID_VENDOR_FROM_DATABASE=Jan Strapko - FOTO
@@ -7222,9 +7284,6 @@
@@ -7309,9 +7371,6 @@
acpi:XNT*:
ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
@ -481,7 +481,7 @@
acpi:XQU*:
ID_VENDOR_FROM_DATABASE=SHANGHAI SVA-DAV ELECTRONICS CO., LTD
@@ -7291,6 +7350,9 @@
@@ -7378,6 +7437,9 @@
acpi:ZBX*:
ID_VENDOR_FROM_DATABASE=Zebax Technologies
@ -490,3 +490,4 @@
+
acpi:ZCT*:
ID_VENDOR_FROM_DATABASE=ZeitControl cardsystems GmbH

File diff suppressed because it is too large Load Diff

View File

@ -80,9 +80,6 @@ sdio:c*v02D0*
sdio:c*v02D0d044B*
ID_MODEL_FROM_DATABASE=Nintendo Wii WLAN daughter card
sdio:c*v02D0dA887*
ID_MODEL_FROM_DATABASE=BCM43143 WLAN card
sdio:c*v02D0d4324*
ID_MODEL_FROM_DATABASE=BCM43241 WLAN card
@ -95,21 +92,24 @@ sdio:c*v02D0d4330*
sdio:c*v02D0d4334*
ID_MODEL_FROM_DATABASE=BCM4334 WLAN card
sdio:c*v02D0d4335*
ID_MODEL_FROM_DATABASE=BCM4335/BCM4339 WLAN card
sdio:c*v02D0d4354*
ID_MODEL_FROM_DATABASE=BCM4354 WLAN card
sdio:c*v02D0dA887*
ID_MODEL_FROM_DATABASE=BCM43143 WLAN card
sdio:c*v02D0dA94C*
ID_MODEL_FROM_DATABASE=BCM43340 WLAN card
sdio:c*v02D0dA94D*
ID_MODEL_FROM_DATABASE=BCM43341 WLAN card
sdio:c*v02D0d4335*
ID_MODEL_FROM_DATABASE=BCM4335/BCM4339 WLAN card
sdio:c*v02D0dA962*
ID_MODEL_FROM_DATABASE=BCM43362 WLAN card
sdio:c*v02D0d4354*
ID_MODEL_FROM_DATABASE=BCM4354 WLAN card
sdio:c*v02DB*
ID_VENDOR_FROM_DATABASE=SyChip Inc.
@ -146,12 +146,12 @@ sdio:c*v02DFd9129*
sdio:c*v02DFd912A*
ID_MODEL_FROM_DATABASE=SD8797 BT
sdio:c*v02DFd912E*
ID_MODEL_FROM_DATABASE=SD8897 BT
sdio:c*v02DFd912D*
ID_MODEL_FROM_DATABASE=SD8897 WLAN
sdio:c*v02DFd912E*
ID_MODEL_FROM_DATABASE=SD8897 BT
sdio:c*v02FE*
ID_VENDOR_FROM_DATABASE=Spectec Computer Co., Ltd

View File

@ -92,9 +92,6 @@ usb:v02AD*
usb:v02ADp138C*
ID_MODEL_FROM_DATABASE=PVR Mass Storage
usb:v0300*
ID_VENDOR_FROM_DATABASE=MM300 eBook Reader
usb:v0324*
ID_VENDOR_FROM_DATABASE=OCZ Technology Inc
@ -410,6 +407,9 @@ usb:v03EBp7617*
usb:v03EBp7800*
ID_MODEL_FROM_DATABASE=Mini Album
usb:v03EBp800C*
ID_MODEL_FROM_DATABASE=Airspy HF+
usb:v03EBpFF07*
ID_MODEL_FROM_DATABASE=Tux Droid fish dongle
@ -4667,6 +4667,9 @@ usb:v0424p2640*
usb:v0424p2660*
ID_MODEL_FROM_DATABASE=Hub
usb:v0424p4041*
ID_MODEL_FROM_DATABASE=Hub and media card controller
usb:v0424p4060*
ID_MODEL_FROM_DATABASE=Ultra Fast Media Reader
@ -5537,6 +5540,9 @@ usb:v044FpB653*
usb:v044FpB654*
ID_MODEL_FROM_DATABASE=Ferrari GT Force Feedback Wheel
usb:v044FpB678*
ID_MODEL_FROM_DATABASE=T.Flight Rudder Pedals
usb:v044FpB687*
ID_MODEL_FROM_DATABASE=TWCS Throttle
@ -6947,6 +6953,9 @@ usb:v045Ep07F8*
usb:v045Ep07FD*
ID_MODEL_FROM_DATABASE=Nano Transceiver 1.1
usb:v045Ep0A00*
ID_MODEL_FROM_DATABASE=Lumia 950 Dual SIM (RM-1118)
usb:v045Ep930A*
ID_MODEL_FROM_DATABASE=ISOUSB.SYS Intel 82930 Isochronous IO Test Board
@ -7364,6 +7373,9 @@ usb:v046Dp0843*
usb:v046Dp0850*
ID_MODEL_FROM_DATABASE=QuickCam Web
usb:v046Dp085C*
ID_MODEL_FROM_DATABASE=C922 Pro Stream Webcam
usb:v046Dp0870*
ID_MODEL_FROM_DATABASE=QuickCam Express
@ -14165,6 +14177,9 @@ usb:v04D9pA050*
usb:v04D9pA055*
ID_MODEL_FROM_DATABASE=Keyboard
usb:v04D9pA09F*
ID_MODEL_FROM_DATABASE=E-Signal LUOM G10 Mechanical Gaming Mouse
usb:v04D9pA100*
ID_MODEL_FROM_DATABASE=Mouse [HV-MS735]
@ -15704,6 +15719,9 @@ usb:v04F2pB3EB*
usb:v04F2pB3F6*
ID_MODEL_FROM_DATABASE=HD WebCam (Acer)
usb:v04F2pB3FD*
ID_MODEL_FROM_DATABASE=HD WebCam (Asus N-series)
usb:v04F2pB40E*
ID_MODEL_FROM_DATABASE=HP Truevision HD camera
@ -17243,6 +17261,9 @@ usb:v04F9p2002*
usb:v04F9p2004*
ID_MODEL_FROM_DATABASE=PT-2300/2310 p-Touch Laber Printer
usb:v04F9p2007*
ID_MODEL_FROM_DATABASE=PT-2420PC P-touch Label Printer
usb:v04F9p2015*
ID_MODEL_FROM_DATABASE=QL-500 P-touch label printer
@ -19481,6 +19502,9 @@ usb:v0566p3004*
usb:v0566p3107*
ID_MODEL_FROM_DATABASE=Keyboard
usb:v0566p4006*
ID_MODEL_FROM_DATABASE=FID 638 Mouse (Sun Microsystems)
usb:v0567*
ID_VENDOR_FROM_DATABASE=Xyratex International, Ltd
@ -20441,6 +20465,9 @@ usb:v057Ep0305*
usb:v057Ep0306*
ID_MODEL_FROM_DATABASE=Wii Remote Controller RVL-003
usb:v057Ep0337*
ID_MODEL_FROM_DATABASE=Wii U GameCube Controller Adapter
usb:v057Ep2006*
ID_MODEL_FROM_DATABASE=Joy-Con L
@ -21821,6 +21848,9 @@ usb:v059Fp1061*
usb:v059Fp1064*
ID_MODEL_FROM_DATABASE=Rugged 16 and 32 GB
usb:v059Fp106B*
ID_MODEL_FROM_DATABASE=Rugged Mini HDD
usb:v059Fp106D*
ID_MODEL_FROM_DATABASE=Porsche Design Mobile Drive
@ -21848,6 +21878,21 @@ usb:v05A3*
usb:v05A3p8388*
ID_MODEL_FROM_DATABASE=Marvell 88W8388 802.11a/b/g WLAN
usb:v05A3p9230*
ID_MODEL_FROM_DATABASE=Camera
usb:v05A3p9320*
ID_MODEL_FROM_DATABASE=Camera
usb:v05A3p9331*
ID_MODEL_FROM_DATABASE=Camera
usb:v05A3p9422*
ID_MODEL_FROM_DATABASE=Camera
usb:v05A3p9520*
ID_MODEL_FROM_DATABASE=Camera
usb:v05A4*
ID_VENDOR_FROM_DATABASE=Ortek Technology, Inc.
@ -23351,6 +23396,9 @@ usb:v05DAp3022*
usb:v05DAp3023*
ID_MODEL_FROM_DATABASE=USB1200II Scanner
usb:v05DAp3025*
ID_MODEL_FROM_DATABASE=ScanMaker S460
usb:v05DAp30C1*
ID_MODEL_FROM_DATABASE=USB600 Scanner
@ -23693,6 +23741,9 @@ usb:v05DCpA81D*
usb:v05DCpA833*
ID_MODEL_FROM_DATABASE=JumpDrive S23 64GB
usb:v05DCpA838*
ID_MODEL_FROM_DATABASE=JumpDrive Tough
usb:v05DCpB002*
ID_MODEL_FROM_DATABASE=USB CF Reader
@ -24275,6 +24326,9 @@ usb:v0603p00F2*
usb:v0603p6871*
ID_MODEL_FROM_DATABASE=Mouse
usb:v0603p8611*
ID_MODEL_FROM_DATABASE=NTK96550 based camera
usb:v0604*
ID_VENDOR_FROM_DATABASE=Jean Co., Ltd
@ -29285,6 +29339,9 @@ usb:v07B4p0118*
usb:v07B4p0125*
ID_MODEL_FROM_DATABASE=Tough TG-1 Camera
usb:v07B4p0126*
ID_MODEL_FROM_DATABASE=VR340/D750 Digital Camera
usb:v07B4p0184*
ID_MODEL_FROM_DATABASE=P-S100 port
@ -33401,6 +33458,9 @@ usb:v0951p168A*
usb:v0951p168C*
ID_MODEL_FROM_DATABASE=DT Elite 3.0
usb:v0951p16B3*
ID_MODEL_FROM_DATABASE=HyperX Savage
usb:v0954*
ID_VENDOR_FROM_DATABASE=RPM Systems Corp.
@ -35531,6 +35591,9 @@ usb:v0ACDp0810*
usb:v0ACDp2030*
ID_MODEL_FROM_DATABASE=ValueMag Magnetic Stripe Reader
usb:v0ACDp3710*
ID_MODEL_FROM_DATABASE=ViVOpay Kiosk III
usb:v0ACE*
ID_VENDOR_FROM_DATABASE=ZyDAS
@ -38618,6 +38681,9 @@ usb:v0C45p7402*
usb:v0C45p7403*
ID_MODEL_FROM_DATABASE=Foot Switch
usb:v0C45p7404*
ID_MODEL_FROM_DATABASE=Foot switch FS1-P
usb:v0C45p8000*
ID_MODEL_FROM_DATABASE=DC31VC
@ -40226,6 +40292,9 @@ usb:v0D8Cp000D*
usb:v0D8Cp000E*
ID_MODEL_FROM_DATABASE=Audio Adapter (Planet UP-100, Genius G-Talk)
usb:v0D8Cp0014*
ID_MODEL_FROM_DATABASE=Audio Adapter (Unitek Y-247A)
usb:v0D8Cp001F*
ID_MODEL_FROM_DATABASE=CM108 Audio Controller
@ -41204,6 +41273,15 @@ usb:v0E0Fp0005*
usb:v0E0Fp0006*
ID_MODEL_FROM_DATABASE=Virtual Keyboard
usb:v0E0Fp8001*
ID_MODEL_FROM_DATABASE=Root Hub
usb:v0E0Fp8002*
ID_MODEL_FROM_DATABASE=Root Hub
usb:v0E0Fp8003*
ID_MODEL_FROM_DATABASE=Root Hub
usb:v0E0FpF80A*
ID_MODEL_FROM_DATABASE=Smoker FX2
@ -46157,6 +46235,9 @@ usb:v12D1p14D1*
usb:v12D1p14DB*
ID_MODEL_FROM_DATABASE=E353/E3131
usb:v12D1p14DC*
ID_MODEL_FROM_DATABASE=E33372 LTE/UMTS/GSM HiLink Modem/Networkcard
usb:v12D1p14F1*
ID_MODEL_FROM_DATABASE=Gobi 3000 HSPA+ Modem
@ -46187,6 +46268,12 @@ usb:v12D1p155A*
usb:v12D1p1575*
ID_MODEL_FROM_DATABASE=K5150 LTE modem
usb:v12D1p15BB*
ID_MODEL_FROM_DATABASE=ME936 LTE/HSDPA+ 4G modem
usb:v12D1p15C1*
ID_MODEL_FROM_DATABASE=ME906s LTE M.2 Module
usb:v12D1p15CA*
ID_MODEL_FROM_DATABASE=E3131 3G/UMTS/HSPA+ Modem (Mass Storage Mode)
@ -46397,6 +46484,9 @@ usb:v131Dp0158*
usb:v1325*
ID_VENDOR_FROM_DATABASE=ams AG
usb:v1325p4002*
ID_MODEL_FROM_DATABASE=I2C Dongle
usb:v132A*
ID_VENDOR_FROM_DATABASE=Envara Inc.
@ -46523,14 +46613,26 @@ usb:v1342p0304*
usb:v1343*
ID_VENDOR_FROM_DATABASE=Citizen Systems
usb:v1343p0002*
ID_MODEL_FROM_DATABASE=CW-01
usb:v1343p0003*
ID_MODEL_FROM_DATABASE=CX / DNP DS40
usb:v1343p0004*
ID_MODEL_FROM_DATABASE=CX-W / DNP DS80
ID_MODEL_FROM_DATABASE=CX-W / DNP DS80 / Mitsubishi CP3800
usb:v1343p0005*
ID_MODEL_FROM_DATABASE=CY / DNP DSRX
ID_MODEL_FROM_DATABASE=CY / DNP DSRX1
usb:v1343p0006*
ID_MODEL_FROM_DATABASE=CW-02
usb:v1343p0007*
ID_MODEL_FROM_DATABASE=DNP DS80DX
usb:v1343p0008*
ID_MODEL_FROM_DATABASE=CX2 / DNP DS620
usb:v1345*
ID_VENDOR_FROM_DATABASE=Sino Lite Technology Corp.
@ -46580,6 +46682,15 @@ usb:v1347p0413*
usb:v1347p0414*
ID_MODEL_FROM_DATABASE=G1-1400 CCD
usb:v1347p0415*
ID_MODEL_FROM_DATABASE=G1-1200 CCD
usb:v1347p04B0*
ID_MODEL_FROM_DATABASE=Gx CCD-B CCD
usb:v1347p04B1*
ID_MODEL_FROM_DATABASE=Gx CCD-BI CCD
usb:v1348*
ID_VENDOR_FROM_DATABASE=Katsuragawa Electric Co., Ltd.
@ -46643,6 +46754,9 @@ usb:v136B*
usb:v136E*
ID_VENDOR_FROM_DATABASE=Andor Technology Ltd.
usb:v136Ep0012*
ID_MODEL_FROM_DATABASE=iXon Ultra CCD
usb:v136Ep0014*
ID_MODEL_FROM_DATABASE=Zyla 5.5 sCMOS camera
@ -46685,6 +46799,12 @@ usb:v1371p9401*
usb:v1376*
ID_VENDOR_FROM_DATABASE=Vimtron Electronics Co., Ltd.
usb:v1377*
ID_VENDOR_FROM_DATABASE=Sennheiser electronic GmbH & Co. KG
usb:v1377p4000*
ID_MODEL_FROM_DATABASE=HDVD800
usb:v137B*
ID_VENDOR_FROM_DATABASE=SCAPS GmbH
@ -46733,8 +46853,11 @@ usb:v138Ap0010*
usb:v138Ap0011*
ID_MODEL_FROM_DATABASE=VFS5011 Fingerprint Reader
usb:v138Ap0015*
ID_MODEL_FROM_DATABASE=VFS 5011 fingerprint sensor
usb:v138Ap0017*
ID_MODEL_FROM_DATABASE=Fingerprint Reader
ID_MODEL_FROM_DATABASE=VFS 5011 fingerprint sensor
usb:v138Ap0018*
ID_MODEL_FROM_DATABASE=Fingerprint scanner
@ -46751,11 +46874,17 @@ usb:v138Ap003F*
usb:v138Ap0050*
ID_MODEL_FROM_DATABASE=Swipe Fingerprint Sensor
usb:v138Ap0090*
ID_MODEL_FROM_DATABASE=VFS7500 Touch Fingerprint Sensor
usb:v138Ap0091*
ID_MODEL_FROM_DATABASE=VFS7552 Touch Fingerprint Sensor
usb:v138E*
ID_VENDOR_FROM_DATABASE=Jungo LTD
usb:v138Ep9000*
ID_MODEL_FROM_DATABASE=Raisonance S.A. STM32 ARM evaluation board
ID_MODEL_FROM_DATABASE=Raisonance S.A. STM32 ARM evaluation board / RLink dongle
usb:v1390*
ID_VENDOR_FROM_DATABASE=TOMTOM B.V.
@ -46769,6 +46898,9 @@ usb:v1390p5454*
usb:v1390p7474*
ID_MODEL_FROM_DATABASE=GPS Sport Watch [Runner, Multi-Sport]
usb:v1390pA001*
ID_MODEL_FROM_DATABASE=Bandit Action Camera Batt-Stick
usb:v1391*
ID_VENDOR_FROM_DATABASE=IdealTEK, Inc.
@ -46778,6 +46910,12 @@ usb:v1391p1000*
usb:v1395*
ID_VENDOR_FROM_DATABASE=Sennheiser Communications
usb:v1395p0025*
ID_MODEL_FROM_DATABASE=Headset [PC 8]
usb:v1395p0046*
ID_MODEL_FROM_DATABASE=PXC 550
usb:v1395p3556*
ID_MODEL_FROM_DATABASE=USB Headset
@ -46880,6 +47018,12 @@ usb:v13B1p003E*
usb:v13B1p003F*
ID_MODEL_FROM_DATABASE=WUSB6300 802.11a/b/g/n/ac Wireless Adapter [Realtek RTL8812AU]
usb:v13B1p0041*
ID_MODEL_FROM_DATABASE=Gigabit Ethernet Adapter
usb:v13B1p0042*
ID_MODEL_FROM_DATABASE=WUSB6100M 802.11a/b/g/n/ac Wireless Adapter
usb:v13B1p13B1*
ID_MODEL_FROM_DATABASE=WUSB200: Wireless-G Business Network Adapter with Rangebooster
@ -47031,11 +47175,14 @@ usb:v13D3p3244*
ID_MODEL_FROM_DATABASE=DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver
usb:v13D3p3247*
ID_MODEL_FROM_DATABASE=802.11 n/g/b Wireless LAN Adapter
ID_MODEL_FROM_DATABASE=AW-NU222 802.11bgn Wireless Module [Ralink RT2770+RT2720]
usb:v13D3p3249*
ID_MODEL_FROM_DATABASE=Internal Bluetooth
usb:v13D3p3250*
ID_MODEL_FROM_DATABASE=Broadcom Bluetooth 2.1
usb:v13D3p3262*
ID_MODEL_FROM_DATABASE=802.11 n/g/b Wireless LAN USB Adapter
@ -47060,6 +47207,9 @@ usb:v13D3p3306*
usb:v13D3p3315*
ID_MODEL_FROM_DATABASE=Bluetooth module
usb:v13D3p3327*
ID_MODEL_FROM_DATABASE=AW-NU137 802.11bgn Wireless Module [Atheros AR9271]
usb:v13D3p3362*
ID_MODEL_FROM_DATABASE=Atheros AR3012 Bluetooth 4.0 Adapter
@ -47096,6 +47246,9 @@ usb:v13D3p5126*
usb:v13D3p5130*
ID_MODEL_FROM_DATABASE=Integrated Webcam
usb:v13D3p5134*
ID_MODEL_FROM_DATABASE=Integrated Webcam
usb:v13D3p5702*
ID_MODEL_FROM_DATABASE=UVC VGA Webcam
@ -47117,6 +47270,9 @@ usb:v13D7*
usb:v13D7p0001*
ID_MODEL_FROM_DATABASE=T5 PATA forensic bridge
usb:v13D7p000C*
ID_MODEL_FROM_DATABASE=T8-R2 forensic bridge
usb:v13DC*
ID_VENDOR_FROM_DATABASE=ALEREON, INC.
@ -47168,6 +47324,9 @@ usb:v13FDp0840*
usb:v13FDp0841*
ID_MODEL_FROM_DATABASE=Samsung SE-T084M DVD-RW
usb:v13FDp0940*
ID_MODEL_FROM_DATABASE=ASUS SBW-06D2X-U
usb:v13FDp1040*
ID_MODEL_FROM_DATABASE=INIC-1511L PATA Bridge
@ -47189,6 +47348,15 @@ usb:v13FDp1840*
usb:v13FDp1E40*
ID_MODEL_FROM_DATABASE=INIC-1610P SATA bridge
usb:v13FDp2040*
ID_MODEL_FROM_DATABASE=Samsung Writemaster external DVD writer
usb:v13FDp3940*
ID_MODEL_FROM_DATABASE=external DVD burner ECD819-SU3
usb:v13FDp3E40*
ID_MODEL_FROM_DATABASE=ZALMAN ZM-VE350
usb:v13FE*
ID_VENDOR_FROM_DATABASE=Kingston Technology Company Inc.
@ -47240,6 +47408,9 @@ usb:v13FEp5000*
usb:v13FEp5100*
ID_MODEL_FROM_DATABASE=Flash Drive
usb:v13FEp5200*
ID_MODEL_FROM_DATABASE=DataTraveler R3.0
usb:v1400*
ID_VENDOR_FROM_DATABASE=Axxion Group Corp.
@ -47252,6 +47423,9 @@ usb:v1403*
usb:v1403p0001*
ID_MODEL_FROM_DATABASE=Digital Photo Frame
usb:v1403p0003*
ID_MODEL_FROM_DATABASE=Digital Photo Frame (DPF-1104)
usb:v1409*
ID_VENDOR_FROM_DATABASE=IDS Imaging Development Systems GmbH
@ -47342,6 +47516,78 @@ usb:v1421*
usb:v1421p0605*
ID_MODEL_FROM_DATABASE=Sentech Camera
usb:v1424*
ID_VENDOR_FROM_DATABASE=Posnet Polska S.A.
usb:v1424p1001*
ID_MODEL_FROM_DATABASE=Temo
usb:v1424p1002*
ID_MODEL_FROM_DATABASE=Thermal
usb:v1424p1003*
ID_MODEL_FROM_DATABASE=Neo
usb:v1424p1004*
ID_MODEL_FROM_DATABASE=Combo DF
usb:v1424p1005*
ID_MODEL_FROM_DATABASE=Thermal-A
usb:v1424p1006*
ID_MODEL_FROM_DATABASE=Thermal FV
usb:v1424p1007*
ID_MODEL_FROM_DATABASE=Bingo HS
usb:v1424p1008*
ID_MODEL_FROM_DATABASE=Thermal HS FV
usb:v1424p1009*
ID_MODEL_FROM_DATABASE=Thermal FV EJ
usb:v1424p100A*
ID_MODEL_FROM_DATABASE=Thermal HD
usb:v1424p100B*
ID_MODEL_FROM_DATABASE=Thermal
usb:v1424p100C*
ID_MODEL_FROM_DATABASE=Neo
usb:v1424p100D*
ID_MODEL_FROM_DATABASE=Ergo
usb:v1424p100E*
ID_MODEL_FROM_DATABASE=Trio
usb:v1424p1010*
ID_MODEL_FROM_DATABASE=Thermal HS FV EJ
usb:v1424p1011*
ID_MODEL_FROM_DATABASE=Neo EJ
usb:v1424p1012*
ID_MODEL_FROM_DATABASE=Thermal-A
usb:v1424p1013*
ID_MODEL_FROM_DATABASE=Thermal-A EJ
usb:v1424p1014*
ID_MODEL_FROM_DATABASE=Mobile
usb:v1424p1015*
ID_MODEL_FROM_DATABASE=Temo HS
usb:v1424p1016*
ID_MODEL_FROM_DATABASE=Mobile HS
usb:v1424p1017*
ID_MODEL_FROM_DATABASE=TH230+ FV EJ
usb:v1424p1018*
ID_MODEL_FROM_DATABASE=4610-1NR FV EJ
usb:v1429*
ID_VENDOR_FROM_DATABASE=Vega Technologies Industrial (Austria) Co.
@ -47423,6 +47669,48 @@ usb:v1446p6A73*
usb:v1446p6A78*
ID_MODEL_FROM_DATABASE=DYMO Endicia 75lb Digital Scale
usb:v1451*
ID_VENDOR_FROM_DATABASE=Force Dimension
usb:v1451p0301*
ID_MODEL_FROM_DATABASE=haptic device
usb:v1451p0302*
ID_MODEL_FROM_DATABASE=haptic device
usb:v1451p0400*
ID_MODEL_FROM_DATABASE=haptic device
usb:v1451p0401*
ID_MODEL_FROM_DATABASE=delta.x haptic device
usb:v1451p0402*
ID_MODEL_FROM_DATABASE=omega.x haptic device
usb:v1451p0403*
ID_MODEL_FROM_DATABASE=sigma.x haptic device
usb:v1451p0404*
ID_MODEL_FROM_DATABASE=haptic controller
usb:v1451p0405*
ID_MODEL_FROM_DATABASE=dedicated haptic device
usb:v1451p0406*
ID_MODEL_FROM_DATABASE=dedicated haptic device
usb:v1451p0407*
ID_MODEL_FROM_DATABASE=dedicated haptic device
usb:v1451p0408*
ID_MODEL_FROM_DATABASE=dedicated haptic device
usb:v1452*
ID_VENDOR_FROM_DATABASE=Dai Nippon Printing, Inc
usb:v1452p8B01*
ID_MODEL_FROM_DATABASE=DS620
usb:v1453*
ID_VENDOR_FROM_DATABASE=Radio Shack
@ -47475,7 +47763,7 @@ usb:v145F*
ID_VENDOR_FROM_DATABASE=Trust
usb:v145Fp0106*
ID_MODEL_FROM_DATABASE=Trust K56 V92 USB Modem
ID_MODEL_FROM_DATABASE=K56 V92 Modem
usb:v145Fp013D*
ID_MODEL_FROM_DATABASE=PC Camera (SN9C201 + OV7660)
@ -47672,6 +47960,9 @@ usb:v148Fp7601*
usb:v148Fp760B*
ID_MODEL_FROM_DATABASE=MT7601U Wireless Adapter
usb:v148Fp761A*
ID_MODEL_FROM_DATABASE=MT7610U ("Archer T2U" 2.4G+5G WLAN Adapter
usb:v148Fp9020*
ID_MODEL_FROM_DATABASE=RT2500USB Wireless Adapter
@ -47684,6 +47975,9 @@ usb:v1491*
usb:v1491p0020*
ID_MODEL_FROM_DATABASE=FS81 Fingerprint Scanner Module
usb:v1491p0088*
ID_MODEL_FROM_DATABASE=Fingerprint Scanner Model FS88
usb:v1493*
ID_VENDOR_FROM_DATABASE=Suunto
@ -47819,6 +48113,9 @@ usb:v14C2p0350*
usb:v14C8*
ID_VENDOR_FROM_DATABASE=Zytronic
usb:v14C8p0005*
ID_MODEL_FROM_DATABASE=Touchscreen Controller
usb:v14CD*
ID_VENDOR_FROM_DATABASE=Super Top
@ -47858,6 +48155,12 @@ usb:v14CDp8123*
usb:v14CDp8125*
ID_MODEL_FROM_DATABASE=SD MMC Reader
usb:v14CDp8601*
ID_MODEL_FROM_DATABASE=4-Port hub
usb:v14CDp8608*
ID_MODEL_FROM_DATABASE=Hub [Super Top]
usb:v14D8*
ID_VENDOR_FROM_DATABASE=JAMER INDUSTRIES CO., LTD.
@ -48092,12 +48395,24 @@ usb:v152D*
usb:v152Dp0539*
ID_MODEL_FROM_DATABASE=JMS539/567 SuperSpeed SATA II/III 3.0G/6.0G Bridge
usb:v152Dp0551*
ID_MODEL_FROM_DATABASE=JMS551 SuperSpeed two ports SATA 3Gb/s bridge
usb:v152Dp0561*
ID_MODEL_FROM_DATABASE=JMS551 - Sharkoon SATA QuickPort Duo
usb:v152Dp0567*
ID_MODEL_FROM_DATABASE=JMS567 SATA 6Gb/s bridge
usb:v152Dp0578*
ID_MODEL_FROM_DATABASE=JMS567 SATA 6Gb/s bridge
usb:v152Dp0770*
ID_MODEL_FROM_DATABASE=Alienware Integrated Webcam
usb:v152Dp1561*
ID_MODEL_FROM_DATABASE=JMS561U two ports SATA 6Gb/s bridge
usb:v152Dp2329*
ID_MODEL_FROM_DATABASE=JM20329 SATA Bridge
@ -48120,16 +48435,19 @@ usb:v152Dp2352*
ID_MODEL_FROM_DATABASE=ATA/ATAPI Bridge
usb:v152Dp2509*
ID_MODEL_FROM_DATABASE=JMS539 SuperSpeed SATA II 3.0G Bridge
ID_MODEL_FROM_DATABASE=JMS539, JMS551 SATA 3Gb/s bridge
usb:v152Dp2551*
ID_MODEL_FROM_DATABASE=JMS551 SATA 3Gb/s bridge
usb:v152Dp2561*
ID_MODEL_FROM_DATABASE=CEB-2235S-U3 external RAID box
usb:v152Dp2566*
ID_MODEL_FROM_DATABASE=JMS566 SATA 3Gb/s bridge
usb:v152Dp2590*
ID_MODEL_FROM_DATABASE=Seatay ATA/ATAPI Bridge
ID_MODEL_FROM_DATABASE=JMS567 SATA 6Gb/s bridge
usb:v152Dp3562*
ID_MODEL_FROM_DATABASE=JMS567 SATA 6Gb/s bridge
@ -48174,14 +48492,35 @@ usb:v1532p001C*
ID_MODEL_FROM_DATABASE=RZ01-0036 Optical Gaming Mouse [Abyssus]
usb:v1532p0024*
ID_MODEL_FROM_DATABASE=Razer Mamba
ID_MODEL_FROM_DATABASE=Mamba
usb:v1532p002E*
ID_MODEL_FROM_DATABASE=RZ01-0058 Gaming Mouse [Naga]
usb:v1532p002F*
ID_MODEL_FROM_DATABASE=Imperator 2012
usb:v1532p0036*
ID_MODEL_FROM_DATABASE=RZ01-0075, Gaming Mouse [Naga Hex]
usb:v1532p0042*
ID_MODEL_FROM_DATABASE=Abyssus 2014
usb:v1532p0043*
ID_MODEL_FROM_DATABASE=DeathAdder Chroma
usb:v1532p0044*
ID_MODEL_FROM_DATABASE=Mamba Chroma (Wired)
usb:v1532p0045*
ID_MODEL_FROM_DATABASE=Mamba Chroma (Wireless)
usb:v1532p0046*
ID_MODEL_FROM_DATABASE=Mamba 2015 Tournament Edition [RZ01-01370100-R3]
usb:v1532p0048*
ID_MODEL_FROM_DATABASE=Orochi (Wired)
usb:v1532p0101*
ID_MODEL_FROM_DATABASE=Copperhead Mouse
@ -48191,12 +48530,51 @@ usb:v1532p0102*
usb:v1532p0109*
ID_MODEL_FROM_DATABASE=Lycosa Keyboard
usb:v1532p010D*
ID_MODEL_FROM_DATABASE=BlackWidow Ultimate 2012
usb:v1532p0113*
ID_MODEL_FROM_DATABASE=RZ07-0074 Gaming Keypad [Orbweaver]
usb:v1532p0118*
ID_MODEL_FROM_DATABASE=RZ03-0080, Gaming Keyboard [Deathstalker]
usb:v1532p011A*
ID_MODEL_FROM_DATABASE=BlackWidow Ultimate 2013
usb:v1532p011B*
ID_MODEL_FROM_DATABASE=BlackWidow Classic
usb:v1532p0203*
ID_MODEL_FROM_DATABASE=BlackWidow Chroma
usb:v1532p0205*
ID_MODEL_FROM_DATABASE=Blade Stealth
usb:v1532p0208*
ID_MODEL_FROM_DATABASE=Tartarus
usb:v1532p0209*
ID_MODEL_FROM_DATABASE=BlackWidow Tournament Edition Chroma
usb:v1532p0214*
ID_MODEL_FROM_DATABASE=BlackWidow Ultimate 2016
usb:v1532p0216*
ID_MODEL_FROM_DATABASE=BlackWidow X Chroma
usb:v1532p021A*
ID_MODEL_FROM_DATABASE=BlackWidow X Tournament Edition Chroma
usb:v1532p0220*
ID_MODEL_FROM_DATABASE=Blade Stealth (2016)
usb:v1532p0300*
ID_MODEL_FROM_DATABASE=RZ06-0063 Motion Sensing Controllers [Hydra]
usb:v1532p0C00*
ID_MODEL_FROM_DATABASE=Firefly
usb:v153B*
ID_VENDOR_FROM_DATABASE=TerraTec Electronic GmbH
@ -48209,8 +48587,23 @@ usb:v153Bp1182*
usb:v1546*
ID_VENDOR_FROM_DATABASE=U-Blox AG
usb:v1546p01A4*
ID_MODEL_FROM_DATABASE=Antaris 4
usb:v1546p01A5*
ID_MODEL_FROM_DATABASE=NL-402U
ID_MODEL_FROM_DATABASE=[u-blox 5]
usb:v1546p01A6*
ID_MODEL_FROM_DATABASE=[u-blox 6]
usb:v1546p01A7*
ID_MODEL_FROM_DATABASE=[u-blox 7]
usb:v1546p01A8*
ID_MODEL_FROM_DATABASE=[u-blox 8]
usb:v1546p1102*
ID_MODEL_FROM_DATABASE=LISA-U2
usb:v1547*
ID_VENDOR_FROM_DATABASE=SG Intec Ltd & Co KG
@ -48650,6 +49043,9 @@ usb:v15F4p0001*
usb:v15F4p0025*
ID_MODEL_FROM_DATABASE=HanfTek UMT-010 USB2.0 DVB-T (warm)
usb:v15F4p0135*
ID_MODEL_FROM_DATABASE=Astrometa T2hybrid
usb:v1604*
ID_VENDOR_FROM_DATABASE=Tascam
@ -48671,6 +49067,12 @@ usb:v1604p8006*
usb:v1604p8007*
ID_MODEL_FROM_DATABASE=US-122 Audio/Midi Interface
usb:v1605*
ID_VENDOR_FROM_DATABASE=ACCES I/O Products, Inc.
usb:v1605p0001*
ID_MODEL_FROM_DATABASE=DIO-32 (No Firmware Yet)
usb:v1606*
ID_VENDOR_FROM_DATABASE=Umax
@ -48986,6 +49388,12 @@ usb:v1617p2002*
usb:v1619*
ID_VENDOR_FROM_DATABASE=L & K Precision Technology Co., Ltd.
usb:v161C*
ID_VENDOR_FROM_DATABASE=Digitech Systems
usb:v161Cp0002*
ID_MODEL_FROM_DATABASE=DTC-02U [Digi Touch Controller]
usb:v1621*
ID_VENDOR_FROM_DATABASE=Wionics Research
@ -49133,6 +49541,12 @@ usb:v165C*
usb:v165Cp0002*
ID_MODEL_FROM_DATABASE=Serial Adapter
usb:v165Cp0006*
ID_MODEL_FROM_DATABASE=FT232 [ICS adapter HS]
usb:v165Cp0008*
ID_MODEL_FROM_DATABASE=FT232 [Dual adapter HS]
usb:v1660*
ID_VENDOR_FROM_DATABASE=Creatix Polymedia GmbH
@ -49257,7 +49671,16 @@ usb:v1681p0001*
ID_MODEL_FROM_DATABASE=Tuner's Dashboard
usb:v1681p0002*
ID_MODEL_FROM_DATABASE=Tubachron
ID_MODEL_FROM_DATABASE=DocuBrain(R) Tubachron
usb:v1681p0003*
ID_MODEL_FROM_DATABASE=DocuBrain(R) I2C
usb:v1681p0004*
ID_MODEL_FROM_DATABASE=DocuBrain(R) WWVB Receiver
usb:v1681p0005*
ID_MODEL_FROM_DATABASE=DocuBrain(R) WWVB Transmitter
usb:v1682*
ID_VENDOR_FROM_DATABASE=Maxwise Production Enterprise Ltd.
@ -49637,6 +50060,9 @@ usb:v16CC*
usb:v16D0*
ID_VENDOR_FROM_DATABASE=MCS
usb:v16D0p0436*
ID_MODEL_FROM_DATABASE=Xylanta Ltd, XSP Device
usb:v16D0p0498*
ID_MODEL_FROM_DATABASE=Braintechnology USB-LPS
@ -49649,6 +50075,9 @@ usb:v16D0p054B*
usb:v16D0p05BE*
ID_MODEL_FROM_DATABASE=EasyLogic Board
usb:v16D0p06CC*
ID_MODEL_FROM_DATABASE=Trinamic TMCM-3110
usb:v16D0p06F9*
ID_MODEL_FROM_DATABASE=Gabotronics Xminilab
@ -49667,6 +50096,12 @@ usb:v16D0p080A*
usb:v16D0p0870*
ID_MODEL_FROM_DATABASE=Kaufmann Automotive GmbH, RKS+CAN Interface
usb:v16D0p0B03*
ID_MODEL_FROM_DATABASE=AIS Receiver [dAISy]
usb:v16D0p0BD4*
ID_MODEL_FROM_DATABASE=codesrc SCSI2SD
usb:v16D1*
ID_VENDOR_FROM_DATABASE=Suprema Inc.
@ -49757,6 +50192,9 @@ usb:v16DCp0012*
usb:v16DCp0015*
ID_MODEL_FROM_DATABASE=CML Control, Measurement and Data Logging System
usb:v16DE*
ID_VENDOR_FROM_DATABASE=Telemecanique
usb:v16DF*
ID_VENDOR_FROM_DATABASE=King Billion Electronics Co., Ltd.
@ -49889,6 +50327,15 @@ usb:v1737p0078*
usb:v1737p0079*
ID_MODEL_FROM_DATABASE=WUSB600N v2 Dual-Band Wireless-N Network Adapter [Ralink RT3572]
usb:v173A*
ID_VENDOR_FROM_DATABASE=Roche
usb:v173Ap2198*
ID_MODEL_FROM_DATABASE=Accu-Chek Mobile
usb:v173Ap21CA*
ID_MODEL_FROM_DATABASE=ACCU-CHEK Mobile Model U1
usb:v173D*
ID_VENDOR_FROM_DATABASE=QSENN
@ -49952,8 +50399,11 @@ usb:v1748p0101*
usb:v174C*
ID_VENDOR_FROM_DATABASE=ASMedia Technology Inc.
usb:v174Cp07D1*
ID_MODEL_FROM_DATABASE=Transcend ESD400 Portable SSD (USB 3.0)
usb:v174Cp1153*
ID_MODEL_FROM_DATABASE=ASM2115 SATA 6Gb/s bridge
ID_MODEL_FROM_DATABASE=ASM1153 SATA 3Gb/s bridge
usb:v174Cp2074*
ID_MODEL_FROM_DATABASE=ASM1074 High-Speed hub
@ -49965,10 +50415,13 @@ usb:v174Cp5106*
ID_MODEL_FROM_DATABASE=ASM1051 SATA 3Gb/s bridge
usb:v174Cp5136*
ID_MODEL_FROM_DATABASE=ASM1053 SATA 6Gb/s bridge
ID_MODEL_FROM_DATABASE=ASM1053 SATA 3Gb/s bridge
usb:v174Cp51D6*
ID_MODEL_FROM_DATABASE=ASM1051W SATA 3Gb/s bridge
usb:v174Cp55AA*
ID_MODEL_FROM_DATABASE=ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge
ID_MODEL_FROM_DATABASE=Name: ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge
usb:v174F*
ID_VENDOR_FROM_DATABASE=Syntek
@ -53921,6 +54374,15 @@ usb:v1E7Dp2D51*
usb:v1E7Dp30D4*
ID_MODEL_FROM_DATABASE=Arvo Keyboard
usb:v1EA7*
ID_VENDOR_FROM_DATABASE=SHARKOON Technologies GmbH
usb:v1EA7p0066*
ID_MODEL_FROM_DATABASE=[Mediatrack Edge Mini Keyboard]
usb:v1EA7p2007*
ID_MODEL_FROM_DATABASE=SHARK ZONE K30 Illuminated Gaming Keyboard
usb:v1EBB*
ID_VENDOR_FROM_DATABASE=NuCORE Technology, Inc.
@ -55712,6 +56174,18 @@ usb:v2931p0A05*
usb:v2931p0AFE*
ID_MODEL_FROM_DATABASE=Jolla charging only
usb:v2939*
ID_VENDOR_FROM_DATABASE=Zaber Technologies Inc.
usb:v2939p4959*
ID_MODEL_FROM_DATABASE=A-MCB2
usb:v2939p495A*
ID_MODEL_FROM_DATABASE=X-MCB1
usb:v2939p495B*
ID_MODEL_FROM_DATABASE=X-MCB2
usb:v2A03*
ID_VENDOR_FROM_DATABASE=dog hunter AG

View File

@ -364,6 +364,13 @@ evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoYoga500-14ISK*
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_ABS_00=::38
EVDEV_ABS_01=::28
EVDEV_ABS_35=::38
EVDEV_ABS_36=::28
#########################################
# Samsung
#########################################
@ -382,6 +389,17 @@ evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnSAMSUNGELECTRONICSCO.,LTD.:pn870Z5E/
EVDEV_ABS_35=::30
EVDEV_ABS_36=::29
#########################################
# System76
#########################################
# GalagoPro 2 (galp2)
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnSystem76:pnGalagoPro:pvrgalp2:*
EVDEV_ABS_00=1238:5747:50
EVDEV_ABS_01=901:4900:83
EVDEV_ABS_35=1238:5747:50
EVDEV_ABS_36=901:4900:83
#########################################
# Toshiba
#########################################
@ -391,6 +409,17 @@ evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnTOSHIBA:pnTECRAM11*
EVDEV_ABS_00=90:962:11
EVDEV_ABS_01=51:681:14
#########################################
# Razer
#########################################
# Razer Blade Stealth (2016)
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
EVDEV_ABS_36=0:2405:37
#########################################
# Waltop
#########################################

View File

@ -709,6 +709,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:pvr*
# IdeaPad
evdev:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*
KEYBOARD_KEY_0d=rfkill # airplane mode switch (toggle all wireless devices)
KEYBOARD_KEY_08=f20 # micmute
KEYBOARD_KEY_42=f23
KEYBOARD_KEY_43=f22

View File

@ -41,21 +41,67 @@
#
# Sort by brand, model
#########################################
# Acer
#########################################
sensor:modalias:acpi:BMA250E*:dmi:*:svnAcer:pnIconiaW1-810:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
#########################################
# AsusTek
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP500LB*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 0
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*:*pnT100TA*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LD*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LJ*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
#########################################
# Chuwi
#########################################
# Chuwi Vi8 Plus
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnD2D3_Vi8A1:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# Chuwi Hi8 Pro
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnX1D3_C806N:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# Chuwi Hi13
sensor:modalias:acpi:KIOX000A*:dmi:svnChuwi*:pnHi13
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
#########################################
# Cube
#########################################
# Cube iWork8 Air
sensor:modalias:acpi:KIOX000A*:dmi:*:svncube:pni1-TF:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
# Cube i7 Stylus
sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni7Stylus:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################
# Endless
#########################################
sensor:modalias:acpi:ACCE0001*:dmi:*svnEndless*:*pnELT-NL3*
ACCEL_MOUNT_MATRIX=0, 1, 0; 0, 0, -1; -1, 0, 0
#########################################
# GP-electronic
#########################################
sensor:modalias:acpi:KIOX000A*:dmi:bvnINSYDECorp.:bvrBYT70A.YNCHENG.WIN.007:*:svnInsyde:pnT701:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
# HP
#########################################
@ -63,11 +109,75 @@ sensor:modalias:platform:lis3lv02d:dmi:*svn*Hewlett-Packard*:*pn*HPEliteBook8540
sensor:modalias:platform:lis3lv02d:dmi:*svn*Hewlett-Packard*:*pn*HPEliteBook8560w*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 0, -1; 0, 1, 0
sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream7Tablet:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
# Winbook
# I.T.Works
#########################################
sensor:modalias:acpi:BMA250*:dmi:*svn*WinBook*:*pn*TW100*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 0
# 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.:
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
# Jumper
#########################################
# EZpad mini 3
sensor:modalias:acpi:BOSC0200*:dmi:bvnINSYDECorp.:bvrjumperx.T87.KFBNEE*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
#########################################
# Lamina
#########################################
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*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
# Lenovo
#########################################
sensor:modalias:acpi:NCPE0388*:dmi:*:rnLenovoYOGA510-14IKB:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, 1
#########################################
# Peaq
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*:svnPEAQ:pnPEAQPMMC1010MD99187:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
#########################################
# Pipo
#########################################
sensor:modalias:acpi:KIOX000A*:dmi:*:svnPIPO:pnW2S:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
#########################################
# Ployer
#########################################
sensor:modalias:acpi:BMA250E*:dmi:*:svnShenzhenPLOYER*:pnMOMO7W:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
# Point of View
#########################################
# 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.:
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
# Trekstor
#########################################
sensor:modalias:acpi:BMA250*:dmi:*:bvrTREK.G.WI71C.JGBMRBA*:*:svnInsyde:pnST70416-6:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
#########################################
# Cytrix (Mytrix)

View File

@ -198,6 +198,10 @@ mouse:usb:v413cp3012:name:Dell Dell USB Optical 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_DPI=1000@125
##########################################
# Dynex
#########################################
@ -221,6 +225,18 @@ mouse:usb:v0461p4d16:name:USB Optical Mouse:
mouse:usb:v0403p97c1:name:Retrode SNES Mouse:
MOUSE_DPI=235@126
##########################################
# Generic
##########################################
# FM-901 Wireless Mouse
mouse:usb:v1ea7p000b:name:2.4G RF Mouse:
MOUSE_DPI=*800@125 1600@125
# WK-727
mouse:usb:v04d9p0499:name:*
MOUSE_DPI=800@125
##########################################
# HandShoe Mouse
##########################################
@ -247,10 +263,15 @@ mouse:usb:v0458p0133:name:Mouse Laser Mouse:
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_DPI=1000@125
# HP X1200 Optical Mouse
mouse:usb:v03f0p0641:name:PixArt HP X1200 USB Optical Mouse:
MOUSE_DPI=1100@125
##########################################
# IBM
##########################################
@ -307,6 +328,10 @@ mouse:usb:v046dpc03e:name:Logitech USB-PS/2 Optical Mouse:
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_DPI=800@63
# Lenovo USB mouse model MO28UOL
mouse:usb:v04b3p310c:name:USB Optical Mouse:
MOUSE_DPI=400@142
@ -430,6 +455,10 @@ mouse:usb:v046dp4041:name:Logitech MX Master:
mouse:usb:v046dpc52e:name:Logitech USB Receiver:
MOUSE_DPI=1000@200
# Logitech G100s Optical Gaming Mouse
mouse:usb:v046dpc247:name:Logitech G100s Optical Gaming Mouse:
MOUSE_DPI=*1000@500 1750@500 2500@500
# Logitech G700 Laser Mouse (Wired)
mouse:usb:v046dpc06b:name:Logitech G700 Laser Mouse:
# Logitech G700 Laser Mouse (Wireless)
@ -492,6 +521,10 @@ mouse:usb:v045ep0040:name:Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)
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_DPI=1000@125
# Microsoft Wireless Mobile Mouse 4000
mouse:usb:v045ep0745:name:Microsoft Microsoft® Nano Transceiver v2.0:
# Microsoft Sculpt Ergonomic Mouse
@ -539,6 +572,14 @@ mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:
mouse:bluetooth:v056ep0061:name:Laser BTmouse:
MOUSE_DPI=*800@333 1600@333
##########################################
# P-Active
##########################################
# P-Active Wireless Mouse PA-27K2
mouse:usb:v0425p0101:name:G-Tech CHINA USB Wireless Mouse & KeyBoard V1.01 :
MOUSE_DPI=800@125
##########################################
# Razer
##########################################

View File

@ -1 +0,0 @@
../src/Makefile

View File

@ -0,0 +1,89 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<table>
<thead><tr><th>Company</th><th>ACPI ID</th><th>Approved on Date</th></tr></thead> <tbody> <tr class="odd"><td>Aava Mobile Oy</td><td>AAVA</td><td>04/02/2014</td> </tr>
<tr class="even"><td>AMD</td><td>AMDI</td><td>08/06/2014</td> </tr>
<tr class="odd"><td>Applied Micro Circuits Corporation</td><td>APMC</td><td>11/14/2013</td> </tr>
<tr class="even"><td>Aptina Imaging Corporation</td><td>APTA</td><td>10/28/2013</td> </tr>
<tr class="odd"><td>ARM Ltd.</td><td>ARMH</td><td>08/13/2012</td> </tr>
<tr class="even"><td>ARM Ltd.</td><td>ARML</td><td>02/24/2015</td> </tr>
<tr class="odd"><td>ASUS</td><td>ASUS</td><td>09/13/2012</td> </tr>
<tr class="even"><td>Atmel</td><td>ATML</td><td>11/17/2011</td> </tr>
<tr class="odd"><td>AuthenTec</td><td>AUTH</td><td>06/01/2012</td> </tr>
<tr class="even"><td>Broadcom Corporation</td><td>BRCM</td><td>05/14/2015</td> </tr>
<tr class="odd"><td>Capella Microsystems Inc.</td><td>CPLM</td><td>05/09/2012</td> </tr>
<tr class="even"><td>Dell, Inc.</td><td>DLLK</td><td>04/17/2012</td> </tr>
<tr class="odd"><td>Dell, Inc.</td><td>DELL</td><td>07/26/2012</td> </tr>
<tr class="even"><td>ELAN MICROELECTRONICS CORPORATION</td><td>ELAN</td><td>11/14/2014</td> </tr>
<tr class="odd"><td>Everest Semiconductor Co., Ltd.</td><td>ESSX</td><td>11/17/2014</td> </tr>
<tr class="even"><td>FocalTech Systems Co., Ltd.</td><td>FTSC</td><td>07/23/2013</td> </tr>
<tr class="odd"><td>Freescale, Inc</td><td>FRSC</td><td>01/01/2010</td> </tr>
<tr class="even"><td>Fuzhou Rockchip Electronics Co., Ltd.</td><td>RKCP</td><td>07/20/2015</td> </tr>
<tr class="odd"><td>Google, Inc.</td><td>GOOG</td><td>12/05/2013</td> </tr>
<tr class="even"><td>Hewlett-Packard Company</td><td>HPQC</td><td>11/26/2012</td> </tr>
<tr class="odd"><td>Hewlett Packard Enterprise</td><td>HWPE</td><td>01/15/2015</td> </tr>
<tr class="even"><td>Himax Technologies, Inc.</td><td>HIMX</td><td>03/19/2014</td> </tr>
<tr class="odd"><td>HiSilicon Technologies Co., Ltd.</td><td>HISI</td><td>11/14/2014</td> </tr>
<tr class="even"><td>HP Inc. </td><td>HPIC</td><td>01/15/2015</td> </tr>
<tr class="odd"><td>HTBLuVA Mödling</td><td>HTLM</td><td>02/18/2014</td> </tr>
<tr class="even"><td>IBM</td><td>IBMX</td><td>11/15/2012</td> </tr>
<tr class="odd"><td>Impinj</td><td>IMPJ</td><td>08/14/2012</td> </tr>
<tr class="even"><td>Inphi Corporation</td><td>IPHI</td><td>07/15/2014</td> </tr>
<tr class="odd"><td>Intel Corporation</td><td>ACPI</td><td>11/18/2011</td> </tr>
<tr class="even"><td>Intel Corporation</td><td>INTC</td><td>01/01/2010</td> </tr>
<tr class="odd"><td>Intel Corporation</td><td>INTL</td><td>01/01/2010</td> </tr>
<tr class="even"><td>Invensense, Inc</td><td>INVN</td><td>02/09/2012</td> </tr>
<tr class="odd"><td>IP3 Technology Ltd.</td><td>IP3T</td><td>11/11/2013</td> </tr>
<tr class="even"><td>Kionix, Inc.</td><td>KIOX</td><td>12/23/2013</td> </tr>
<tr class="odd"><td>Lenovo Beijing Co. Ltd.</td><td>IDEA</td><td>05/22/2012</td> </tr>
<tr class="even"><td>Linaro, Ltd.</td><td>LNRO</td><td>11/26/2013</td> </tr>
<tr class="odd"><td>Microsoft Corporation</td><td>MSAY</td><td>03/01/2012</td> </tr>
<tr class="even"><td>Microsoft Corporation</td><td>MSFT</td><td>01/01/2010</td> </tr>
<tr class="odd"><td>Microsoft Corporation</td><td>MSHW</td><td>01/10/2011</td> </tr>
<tr class="even"><td>MIPI Alliance</td><td>MIPI</td><td>04/17/2015</td> </tr>
<tr class="odd"><td>Nuvoton Technology Corporation</td><td>NVTN</td><td>11/14/2014</td> </tr>
<tr class="even"><td>Nvidia</td><td>NVDA</td><td>01/01/2010</td> </tr>
<tr class="odd"><td>OmniVision Technologies, Inc.</td><td>OVTI</td><td>02/26/2014</td> </tr>
<tr class="even"><td>Pegatron Corporation</td><td>PEGA</td><td>08/27/2013</td> </tr>
<tr class="odd"><td>Qualcomm Inc</td><td>QCOM</td><td>01/01/2010</td> </tr>
<tr class="even"><td>REALTEK Semiconductor Corp. </td><td>OBDA</td><td>11/07/2013</td> </tr>
<tr class="odd"><td>Red Hat, Inc.</td><td>QEMU</td><td>07/30/2015</td> </tr>
<tr class="even"><td>Robert Bosch GmbH</td><td>BOSC</td><td>05/16/2014</td> </tr>
<tr class="odd"><td>Rozsnyó, s.r.o.</td><td>RZSN</td><td>03/24/2014</td> </tr>
<tr class="even"><td>Sharp Corporation</td><td>SHRP</td><td>01/27/2015</td> </tr>
<tr class="odd"><td>Shenzhen DSO Microelectronics Co.,Ltd.</td><td>DSUO</td><td>10/10/2013</td> </tr>
<tr class="even"><td>Shenzhen South-Top Computer Co., Ltd.</td><td>ST86</td><td>12/06/2013</td> </tr>
<tr class="odd"><td>Shenzhen three Connaught Information Technology Co., Ltd. (3nod Group)</td><td>3NOD</td><td>09/23/2013</td> </tr>
<tr class="even"><td>Sierra Wireless</td><td>SWEM</td><td>01/22/2013</td> </tr>
<tr class="odd"><td>Sony Corporation</td><td>SONY</td><td>09/12/2012</td> </tr>
<tr class="even"><td>Synaptics Inc</td><td>SYNA</td><td>11/17/2011</td> </tr>
<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="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>
<tr class="even"><td>Winsider Seminars &amp; Solutions Inc.</td><td>WSDR</td><td>07/07/2015</td> </tr>
<tr class="odd"><td>Maxim Integrated</td><td>MXIM</td><td>10/16/2015</td> </tr>
<tr class="even"><td>Xiaomi Inc.</td><td>XMCC</td><td>12/08/2015</td> </tr>
<tr class="odd"><td>u-blox AG</td><td>UBLX</td><td>12/08/2015</td> </tr>
<tr class="even"><td>Raydium Semiconductor Corporation</td><td>RAYD</td><td>04/13/2016</td> </tr>
<tr class="odd"><td>Dialog Semiconductor PLC</td><td>DLGS</td><td>04/27/2016</td> </tr>
<tr class="even"><td>OmniPreSense</td><td>OMPS</td><td>05/25/2016</td> </tr>
<tr class="odd"><td>CoreOS, Inc</td><td>CORE</td><td>07/01/2016</td> </tr>
<tr class="even"><td>Microchip Technology Inc</td><td>MCHP</td><td>08/03/2016</td> </tr>
<tr class="odd"><td>Green Hills Software</td><td>GHSW</td><td>08/11/2016</td> </tr>
<tr class="even"><td>AAEON Technology Inc.</td><td>AANT</td><td>09/01/2016</td> </tr>
<tr class="odd"><td>VR Technology Holdings Limited </td><td>3GVR</td><td>01/19/2017</td> </tr>
<tr class="even"><td>Exar Corporation</td><td>EXAR</td><td>02/28/2017</td> </tr>
<tr class="odd"><td>Coreboot Project</td><td>BOOT</td><td>02/28/2017</td> </tr>
<tr class="even"><td>Marvell Technology Group Ltd.</td><td>MRVL</td><td>05/25/2017</td> </tr>
<tr class="odd"><td>IHSE GmbH</td><td>IHSE</td><td>06/22/2017</td> </tr>
</tbody>
</table>
</body>
</html>

View File

@ -1,375 +0,0 @@
#!/usr/bin/perl
use strict;
use warnings;
sub usb_vendor {
my $vendor;
open(IN, "<", "usb.ids");
open(OUT, ">", "20-usb-vendor-model.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported from: http://www.linux-usb.org/usb.ids\n");
while (my $line = <IN>) {
$line =~ s/\s+$//;
$line =~ m/^([0-9a-f]{4})\s*(.+)$/;
if (defined $1) {
$vendor = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "usb:v" . $vendor . "*\n");
print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
next;
}
$line =~ m/^\t([0-9a-f]{4})\s*(.+)$/;
if (defined $1) {
my $model = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "usb:v" . $vendor . "p" . $model . "*\n");
print(OUT " ID_MODEL_FROM_DATABASE=" . $text . "\n");
}
}
close(IN);
close(OUT);
}
sub usb_classes {
my $class;
my $subclass;
my $protocol;
open(IN, "<", "usb.ids");
open(OUT, ">", "20-usb-classes.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported from: http://www.linux-usb.org/usb.ids\n");
while (my $line = <IN>) {
$line =~ s/\s+$//;
$line =~ m/^C\ ([0-9a-f]{2})\s*(.+)$/;
if (defined $1) {
$class = uc $1;
if ($class =~ m/^00$/) {
next;
}
my $text = $2;
print(OUT "\n");
print(OUT "usb:v*p*d*dc" . $class . "*\n");
print(OUT " ID_USB_CLASS_FROM_DATABASE=" . $text . "\n");
next;
}
if (not defined $class) {
next;
} elsif ($line =~ m/^$/) {
last;
}
$line =~ m/^\t([0-9a-f]{2})\s*(.+)$/;
if (defined $1) {
$subclass = uc $1;
if ($subclass =~ m/^00$/) {
next;
}
my $text = $2;
if ($text =~ m/^(\?|None|Unused)$/) {
next;
}
print(OUT "\n");
print(OUT "usb:v*p*d*dc" . $class . "dsc" . $subclass . "*\n");
print(OUT " ID_USB_SUBCLASS_FROM_DATABASE=" . $text . "\n");
next;
}
$line =~ m/^\t\t([0-9a-f]{2})\s*(.+)$/;
if (defined $1) {
$protocol = uc $1;
my $text = $2;
if ($text =~ m/^(\?|None|Unused)$/) {
next;
}
print(OUT "\n");
print(OUT "usb:v*p*d*dc" . $class . "dsc" . $subclass . "dp" . $protocol . "*\n");
print(OUT " ID_USB_PROTOCOL_FROM_DATABASE=" . $text . "\n");
}
}
close(IN);
close(OUT);
}
sub pci_vendor {
my $vendor;
my $device;
my $device_text;
open(IN, "<", "pci.ids");
open(OUT, ">", "20-pci-vendor-model.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported from: http://pci-ids.ucw.cz/v2.2/pci.ids\n");
while (my $line = <IN>) {
$line =~ s/\s+$//;
$line =~ m/^([0-9a-f]{4})\s*(.+)$/;
if (defined $1) {
$vendor = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "pci:v0000" . $vendor . "*\n");
print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
next;
}
$line =~ m/^\t([0-9a-f]{4})\s*(.+)$/;
if (defined $1) {
$device = uc $1;
$device_text = $2;
print(OUT "\n");
print(OUT "pci:v0000" . $vendor . "d0000" . $device . "*\n");
print(OUT " ID_MODEL_FROM_DATABASE=" . $device_text . "\n");
next;
}
$line =~ m/^\t\t([0-9a-f]{4})\s*([0-9a-f]{4})\s*(.*)$/;
if (defined $1) {
my $sub_vendor = uc $1;
my $sub_device = uc $2;
my $sub_text = $3;
$sub_text =~ s/^\Q$device_text\E\s*//;
$sub_text =~ s/(.+)/\ ($1)/;
print(OUT "\n");
print(OUT "pci:v0000" . $vendor . "d0000" . $device . "sv0000" . $sub_vendor . "sd0000" . $sub_device . "*\n");
print(OUT " ID_MODEL_FROM_DATABASE=" . $device_text . $sub_text . "\n");
}
}
close(IN);
close(OUT);
}
sub pci_classes {
my $class;
my $subclass;
my $interface;
open(IN, "<", "pci.ids");
open(OUT, ">", "20-pci-classes.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported from: http://pci-ids.ucw.cz/v2.2/pci.ids\n");
while (my $line = <IN>) {
$line =~ s/\s+$//;
$line =~ m/^C\ ([0-9a-f]{2})\s*(.+)$/;
if (defined $1) {
$class = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "pci:v*d*sv*sd*bc" . $class . "*\n");
print(OUT " ID_PCI_CLASS_FROM_DATABASE=" . $text . "\n");
next;
}
if (not defined $class) {
next;
} elsif ($line =~ m/^$/) {
last;
}
$line =~ m/^\t([0-9a-f]{2})\s*(.+)$/;
if (defined $1) {
$subclass = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "pci:v*d*sv*sd*bc" . $class . "sc" . $subclass . "*\n");
print(OUT " ID_PCI_SUBCLASS_FROM_DATABASE=" . $text . "\n");
next;
}
$line =~ m/^\t\t([0-9a-f]{2})\s*(.+)$/;
if (defined $1) {
$interface = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "pci:v*d*sv*sd*bc" . $class . "sc" . $subclass . "i" . $interface . "*\n");
print(OUT " ID_PCI_INTERFACE_FROM_DATABASE=" . $text . "\n");
}
}
close(IN);
close(OUT);
}
sub sdio_vendor {
my $vendor;
my $device;
open(IN, "<", "sdio.ids");
open(OUT, ">", "20-sdio-vendor-model.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported from: hwdb/sdio.ids\n");
while (my $line = <IN>) {
$line =~ s/\s+$//;
$line =~ m/^([0-9a-f]{4})\s*(.+)$/;
if (defined $1) {
$vendor = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "sdio:c*v" . $vendor . "*\n");
print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
next;
}
$line =~ m/^\t([0-9a-f]{4})\s*(.+)$/;
if (defined $1) {
$device = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "sdio:c*v" . $vendor . "d" . $device . "*\n");
print(OUT " ID_MODEL_FROM_DATABASE=" . $text . "\n");
next;
}
}
close(IN);
close(OUT);
}
sub sdio_classes {
my $class;
my $subclass;
my $interface;
open(IN, "<", "sdio.ids");
open(OUT, ">", "20-sdio-classes.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported from: hwdb/sdio.ids\n");
while (my $line = <IN>) {
$line =~ s/\s+$//;
$line =~ m/^C\ ([0-9a-f]{2})\s*(.+)$/;
if (defined $1) {
$class = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "sdio:c" . $class . "v*d*\n");
print(OUT " ID_SDIO_CLASS_FROM_DATABASE=" . $text . "\n");
next;
}
}
close(IN);
close(OUT);
}
# MAC Address Block Large/Medium/Small
# Large MA-L 24/24 bit (OUI)
# Medium MA-M 28/20 bit (OUI prefix owned by IEEE)
# Small MA-S 36/12 bit (OUI prefix owned by IEEE)
sub oui {
my $prefix;
my %ieee_prefixes = ();
open(OUT, ">", "20-OUI.hwdb");
print(OUT "# This file is part of systemd.\n" .
"#\n" .
"# Data imported from:\n" .
"# https://services13.ieee.org/RST/standards-ra-web/rest/assignments/download/?registry=MA-L&format=txt\n" .
"# https://services13.ieee.org/RST/standards-ra-web/rest/assignments/download/?registry=MA-M&format=txt\n" .
"# https://services13.ieee.org/RST/standards-ra-web/rest/assignments/download/?registry=MA-S&format=txt\n");
open(IN, "<", "ma-small.txt");
while (my $line = <IN>) {
$line =~ s/^ +//;
$line =~ s/\s+$//;
$line =~ m/^([0-9A-F]{2})-([0-9A-F]{2})-([0-9A-F]{2})\s*\(hex\)\s*.+$/;
if (defined $1) {
$prefix = $1 . $2 . $3;
$ieee_prefixes{ $prefix } = 1;
next;
}
$line =~ m/^([0-9A-F]{3})000-\g1FFF\s*\(base 16\)\s*(.+)$/;
if (defined $1) {
my $vendor = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "OUI:" . $prefix . $vendor . "*\n");
print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n");
}
}
close(IN);
open(IN, "<", "ma-medium.txt");
while (my $line = <IN>) {
$line =~ s/^ +//;
$line =~ s/\s+$//;
$line =~ m/^([0-9A-F]{2})-([0-9A-F]{2})-([0-9A-F]{2})\s*\(hex\)\s*.+$/;
if (defined $1) {
$prefix = $1 . $2 . $3;
$ieee_prefixes{ $prefix } = 1;
next;
}
$line =~ m/^([0-9A-F])00000-\g1FFFFF\s*\(base 16\)\s*(.+)$/;
if (defined $1) {
my $vendor = uc $1;
my $text = $2;
print(OUT "\n");
print(OUT "OUI:" . $prefix . $vendor . "*\n");
print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n");
}
}
open(IN, "<", "ma-large.txt");
while (my $line = <IN>) {
$line =~ s/^ +//;
$line =~ s/\s+$//;
$line =~ m/^([0-9A-F]{6})\s*\(base 16\)\s*(.+)$/;
if (defined $1) {
my $vendor = uc $1;
my $text = $2;
if ($text =~ m/^IEEE REGISTRATION AUTHORITY/) {
next;
}
# skip the IEEE owned prefixes
if (! exists $ieee_prefixes{ $vendor }) {
print(OUT "\n");
print(OUT "OUI:" . $vendor . "*\n");
print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n");
}
}
}
close(IN);
close(OUT);
}
usb_vendor();
usb_classes();
pci_vendor();
pci_classes();
sdio_vendor();
sdio_classes();
oui();

365
hwdb/ids_parser.py Executable file
View File

@ -0,0 +1,365 @@
#!/usr/bin/env python3
import re
import sys
from pyparsing import (Word, White, Literal, Regex,
LineEnd, SkipTo,
ZeroOrMore, OneOrMore, Combine, Optional, Suppress,
stringEnd, pythonStyleComment)
EOL = LineEnd().suppress()
NUM1 = Word('0123456789abcdefABCDEF', exact=1)
NUM2 = Word('0123456789abcdefABCDEF', exact=2)
NUM3 = Word('0123456789abcdefABCDEF', exact=3)
NUM4 = Word('0123456789abcdefABCDEF', exact=4)
NUM6 = Word('0123456789abcdefABCDEF', exact=6)
TAB = White('\t', exact=1).suppress()
COMMENTLINE = pythonStyleComment + EOL
EMPTYLINE = LineEnd()
text_eol = lambda name: Regex(r'[^\n]+')(name) + EOL
# text_eol = lambda name: Word(printables + ' ' + '®üäßçõãİó ×²⁶´‐“\u200E\u200B')(name) + EOL
def klass_grammar():
klass_line = Literal('C ').suppress() + NUM2('klass') + text_eol('text')
subclass_line = TAB + NUM2('subclass') + text_eol('text')
protocol_line = TAB + TAB + NUM2('protocol') + text_eol('name')
subclass = (subclass_line('SUBCLASS') -
ZeroOrMore(protocol_line('PROTOCOLS*')
^ COMMENTLINE.suppress()))
klass = (klass_line('KLASS') -
ZeroOrMore(subclass('SUBCLASSES*')
^ COMMENTLINE.suppress()))
return klass
def usb_ids_grammar():
vendor_line = NUM4('vendor') + text_eol('text')
device_line = TAB + NUM4('device') + text_eol('text')
vendor = (vendor_line('VENDOR') +
ZeroOrMore(device_line('VENDOR_DEV*') ^ COMMENTLINE.suppress()))
klass = klass_grammar()
other_line = (Literal('AT ') ^ Literal('HID ') ^ Literal('R ')
^ Literal('PHY ') ^ Literal('BIAS ') ^ Literal('HUT ')
^ Literal('L ') ^ Literal('VT ') ^ Literal('HCC ')) + text_eol('text')
other_group = (other_line - ZeroOrMore(TAB + text_eol('text')))
commentgroup = OneOrMore(COMMENTLINE).suppress() ^ EMPTYLINE.suppress()
grammar = OneOrMore(vendor('VENDORS*') ^ klass('CLASSES*')
^ other_group.suppress() ^ commentgroup) + stringEnd()
grammar.parseWithTabs()
return grammar
def pci_ids_grammar():
vendor_line = NUM4('vendor') + text_eol('text')
device_line = TAB + NUM4('device') + text_eol('text')
subvendor_line = TAB + TAB + NUM4('a') + White(' ') + NUM4('b') + text_eol('name')
device = (device_line('DEVICE') +
ZeroOrMore(subvendor_line('SUBVENDORS*') ^ COMMENTLINE.suppress()))
vendor = (vendor_line('VENDOR') +
ZeroOrMore(device('DEVICES*') ^ COMMENTLINE.suppress()))
klass = klass_grammar()
commentgroup = OneOrMore(COMMENTLINE).suppress() ^ EMPTYLINE.suppress()
grammar = OneOrMore(vendor('VENDORS*') ^ klass('CLASSES*')
^ commentgroup) + stringEnd()
grammar.parseWithTabs()
return grammar
def sdio_ids_grammar():
vendor_line = NUM4('vendor') + text_eol('text')
device_line = TAB + NUM4('device') + text_eol('text')
vendor = (vendor_line('VENDOR') +
ZeroOrMore(device_line('DEVICES*') ^ COMMENTLINE.suppress()))
klass = klass_grammar()
commentgroup = OneOrMore(COMMENTLINE).suppress() ^ EMPTYLINE.suppress()
grammar = OneOrMore(vendor('VENDORS*') ^ klass('CLASSES*') ^ commentgroup) + stringEnd()
grammar.parseWithTabs()
return grammar
def oui_grammar(type):
prefix_line = (Combine(NUM2 - Suppress('-') - NUM2 - Suppress('-') - NUM2)('prefix')
- Literal('(hex)') - text_eol('text'))
if type == 'small':
vendor_line = (NUM3('start') - '000-' - NUM3('end') - 'FFF'
- Literal('(base 16)') - text_eol('text2'))
elif type == 'medium':
vendor_line = (NUM1('start') - '00000-' - NUM1('end') - 'FFFFF'
- Literal('(base 16)') - text_eol('text2'))
else:
assert type == 'large'
vendor_line = (NUM6('start')
- Literal('(base 16)') - text_eol('text2'))
extra_line = TAB - TAB - TAB - TAB - SkipTo(EOL)
vendor = prefix_line + vendor_line + ZeroOrMore(extra_line) + Optional(EMPTYLINE)
grammar = (Literal('OUI') + text_eol('header')
+ text_eol('header') + text_eol('header') + EMPTYLINE
+ OneOrMore(vendor('VENDORS*')) + stringEnd())
grammar.parseWithTabs()
return grammar
def header(file, *sources):
print('''\
# This file is part of systemd.
#
# Data imported from:{}{}'''.format(' ' if len(sources) == 1 else '\n# ',
'\n# '.join(sources)),
file=file)
def add_item(items, key, value):
if key in items:
print(f'Ignoring duplicate entry: {key} = "{items[key]}", "{value}"')
else:
items[key] = value
def usb_vendor_model(p):
items = {}
for vendor_group in p.VENDORS:
vendor = vendor_group.VENDOR.vendor.upper()
text = vendor_group.VENDOR.text.strip()
add_item(items, (vendor,), text)
for vendor_dev in vendor_group.VENDOR_DEV:
device = vendor_dev.device.upper()
text = vendor_dev.text.strip()
add_item(items, (vendor, device), text)
with open('20-usb-vendor-model.hwdb', 'wt') as out:
header(out, 'http://www.linux-usb.org/usb.ids')
for key in sorted(items):
if len(key) == 1:
p, n = 'usb:v{}*', 'VENDOR'
else:
p, n = 'usb:v{}p{}*', 'MODEL',
print('', p.format(*key),
f' ID_{n}_FROM_DATABASE={items[key]}', sep='\n', file=out)
print(f'Wrote {out.name}')
def usb_classes(p):
items = {}
for klass_group in p.CLASSES:
klass = klass_group.KLASS.klass.upper()
text = klass_group.KLASS.text.strip()
if klass != '00' and not re.match(r'(\?|None|Unused)\s*$', text):
add_item(items, (klass,), text)
for subclass_group in klass_group.SUBCLASSES:
subclass = subclass_group.subclass.upper()
text = subclass_group.text.strip()
if subclass != '00' and not re.match(r'(\?|None|Unused)\s*$', text):
add_item(items, (klass, subclass), text)
for protocol_group in subclass_group.PROTOCOLS:
protocol = protocol_group.protocol.upper()
text = protocol_group.name.strip()
if klass != '00' and not re.match(r'(\?|None|Unused)\s*$', text):
add_item(items, (klass, subclass, protocol), text)
with open('20-usb-classes.hwdb', 'wt') as out:
header(out, 'http://www.linux-usb.org/usb.ids')
for key in sorted(items):
if len(key) == 1:
p, n = 'usb:v*p*d*dc{}*', 'CLASS'
elif len(key) == 2:
p, n = 'usb:v*p*d*dc{}dsc{}*', 'SUBCLASS'
else:
p, n = 'usb:v*p*d*dc{}dsc{}dp{}*', 'PROTOCOL'
print('', p.format(*key),
f' ID_USB_{n}_FROM_DATABASE={items[key]}', sep='\n', file=out)
print(f'Wrote {out.name}')
def pci_vendor_model(p):
items = {}
for vendor_group in p.VENDORS:
vendor = vendor_group.VENDOR.vendor.upper()
text = vendor_group.VENDOR.text.strip()
add_item(items, (vendor,), text)
for device_group in vendor_group.DEVICES:
device = device_group.device.upper()
text = device_group.text.strip()
add_item(items, (vendor, device), text)
for subvendor_group in device_group.SUBVENDORS:
sub_vendor = subvendor_group.a.upper()
sub_model = subvendor_group.b.upper()
sub_text = subvendor_group.name.strip()
if sub_text.startswith(text):
sub_text = sub_text[len(text):].lstrip()
if sub_text:
sub_text = f' ({sub_text})'
add_item(items, (vendor, device, sub_vendor, sub_model), text + sub_text)
with open('20-pci-vendor-model.hwdb', 'wt') as out:
header(out, 'http://pci-ids.ucw.cz/v2.2/pci.ids')
for key in sorted(items):
if len(key) == 1:
p, n = 'pci:v0000{}*', 'VENDOR'
elif len(key) == 2:
p, n = 'pci:v0000{}d0000{}*', 'MODEL'
else:
p, n = 'pci:v0000{}d0000{}sv0000{}sd0000{}*', 'MODEL'
print('', p.format(*key),
f' ID_{n}_FROM_DATABASE={items[key]}', sep='\n', file=out)
print(f'Wrote {out.name}')
def pci_classes(p):
items = {}
for klass_group in p.CLASSES:
klass = klass_group.KLASS.klass.upper()
text = klass_group.KLASS.text.strip()
add_item(items, (klass,), text)
for subclass_group in klass_group.SUBCLASSES:
subclass = subclass_group.subclass.upper()
text = subclass_group.text.strip()
add_item(items, (klass, subclass), text)
for protocol_group in subclass_group.PROTOCOLS:
protocol = protocol_group.protocol.upper()
text = protocol_group.name.strip()
add_item(items, (klass, subclass, protocol), text)
with open('20-pci-classes.hwdb', 'wt') as out:
header(out, 'http://pci-ids.ucw.cz/v2.2/pci.ids')
for key in sorted(items):
if len(key) == 1:
p, n = 'pci:v*d*sv*sd*bc{}*', 'CLASS'
elif len(key) == 2:
p, n = 'pci:v*d*sv*sd*bc{}sc{}*', 'SUBCLASS'
else:
p, n = 'pci:v*d*sv*sd*bc{}sc{}i{}*', 'INTERFACE'
print('', p.format(*key),
f' ID_PCI_{n}_FROM_DATABASE={items[key]}', sep='\n', file=out)
print(f'Wrote {out.name}')
def sdio_vendor_model(p):
items = {}
for vendor_group in p.VENDORS:
vendor = vendor_group.VENDOR.vendor.upper()
text = vendor_group.VENDOR.text.strip()
add_item(items, (vendor,), text)
for device_group in vendor_group.DEVICES:
device = device_group.device.upper()
text = device_group.text.strip()
add_item(items, (vendor, device), text)
with open('20-sdio-vendor-model.hwdb', 'wt') as out:
header(out, 'hwdb/sdio.ids')
for key in sorted(items):
if len(key) == 1:
p, n = 'sdio:c*v{}*', 'VENDOR'
else:
p, n = 'sdio:c*v{}d{}*', 'MODEL'
print('', p.format(*key),
f' ID_{n}_FROM_DATABASE={items[key]}', sep='\n', file=out)
print(f'Wrote {out.name}')
def sdio_classes(p):
items = {}
for klass_group in p.CLASSES:
klass = klass_group.KLASS.klass.upper()
text = klass_group.KLASS.text.strip()
add_item(items, klass, text)
with open('20-sdio-classes.hwdb', 'wt') as out:
header(out, 'hwdb/sdio.ids')
for klass in sorted(items):
print(f'',
f'sdio:c{klass}v*d*',
f' ID_SDIO_CLASS_FROM_DATABASE={items[klass]}', sep='\n', file=out)
print(f'Wrote {out.name}')
# MAC Address Block Large/Medium/Small
# Large MA-L 24/24 bit (OUI)
# Medium MA-M 28/20 bit (OUI prefix owned by IEEE)
# Small MA-S 36/12 bit (OUI prefix owned by IEEE)
def oui(p1, p2, p3):
prefixes = set()
items = {}
for p, check in ((p1, False), (p2, False), (p3, True)):
for vendor_group in p.VENDORS:
prefix = vendor_group.prefix.upper()
if check:
if prefix in prefixes:
continue
else:
prefixes.add(prefix)
start = vendor_group.start.upper()
end = vendor_group.end.upper()
if end and start != end:
print(f'{prefix:} {start} != {end}', file=sys.stderr)
text = vendor_group.text.strip()
key = prefix + start if end else prefix
add_item(items, key, text)
with open('20-OUI.hwdb', 'wt') as out:
header(out,
'https://services13.ieee.org/RST/standards-ra-web/rest/assignments/download/?registry=MA-L&format=txt',
'https://services13.ieee.org/RST/standards-ra-web/rest/assignments/download/?registry=MA-M&format=txt',
'https://services13.ieee.org/RST/standards-ra-web/rest/assignments/download/?registry=MA-S&format=txt')
for pattern in sorted(items):
print(f'',
f'OUI:{pattern}*',
f' ID_OUI_FROM_DATABASE={items[pattern]}', sep='\n', file=out)
print(f'Wrote {out.name}')
if __name__ == '__main__':
args = sys.argv[1:]
if not args or 'usb' in args:
p = usb_ids_grammar().parseFile(open('usb.ids'))
usb_vendor_model(p)
usb_classes(p)
if not args or 'pci' in args:
p = pci_ids_grammar().parseFile(open('pci.ids'))
pci_vendor_model(p)
pci_classes(p)
if not args or 'sdio' in args:
p = pci_ids_grammar().parseFile(open('sdio.ids'))
sdio_vendor_model(p)
sdio_classes(p)
if not args or 'oui' in args:
p = oui_grammar('small').parseFile(open('ma-small.txt'))
p2 = oui_grammar('medium').parseFile(open('ma-medium.txt'))
p3 = oui_grammar('large').parseFile(open('ma-large.txt'))
oui(p, p2, p3)

143475
hwdb/ma-large.txt Normal file

File diff suppressed because it is too large Load Diff

10152
hwdb/ma-medium.txt Normal file

File diff suppressed because it is too large Load Diff

13701
hwdb/ma-small.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@ -12,12 +12,13 @@ hwdb_files = files('''
60-evdev.hwdb
60-keyboard.hwdb
60-sensor.hwdb
70-joystick.hwdb
70-mouse.hwdb
70-pointingstick.hwdb
70-touchpad.hwdb
'''.split())
if conf.get('ENABLE_HWDB', false)
if conf.get('ENABLE_HWDB') == 1
install_data(hwdb_files,
install_dir : udevhwdbdir)
@ -39,5 +40,5 @@ test('parse-hwdb',
############################################################
run_target(
'update',
'hwdb-update',
command : [hwdb_update_sh, meson.current_source_dir()])

View File

@ -168,6 +168,20 @@ def check_one_default(prop, settings):
if len(defaults) > 1:
error('More than one star entry: {!r}', prop)
def check_one_mount_matrix(prop, value):
numbers = [s for s in value if s not in {';', ','}]
if len(numbers) != 9:
error('Wrong accel matrix: {!r}', prop)
try:
numbers = [abs(float(number)) for number in numbers]
except ValueError:
error('Wrong accel matrix: {!r}', prop)
bad_x, bad_y, bad_z = max(numbers[0:3]) == 0, max(numbers[3:6]) == 0, max(numbers[6:9]) == 0
if bad_x or bad_y or bad_z:
error('Mount matrix is all zero in {} row: {!r}',
'x' if bad_x else ('y' if bad_y else 'z'),
prop)
def check_one_keycode(prop, value):
if value != '!' and ecodes is not None:
key = 'KEY_' + value.upper()
@ -194,6 +208,8 @@ def check_properties(groups):
prop_names.add(parsed.NAME)
if parsed.NAME == 'MOUSE_DPI':
check_one_default(prop, parsed.VALUE.SETTINGS)
elif parsed.NAME == 'ACCEL_MOUNT_MATRIX':
check_one_mount_matrix(prop, parsed.VALUE)
elif parsed.NAME.startswith('KEYBOARD_KEY_'):
check_one_keycode(prop, parsed.VALUE)

29544
hwdb/pci.ids Normal file

File diff suppressed because it is too large Load Diff

2414
hwdb/pnp_id_registry.html Normal file

File diff suppressed because it is too large Load Diff

21079
hwdb/usb.ids Normal file

File diff suppressed because it is too large Load Diff

6
m4/.gitignore vendored
View File

@ -1,6 +0,0 @@
intltool.m4
libtool.m4
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4

View File

@ -1,13 +0,0 @@
dnl SET_ARCH(ARCHNAME, PATTERN)
dnl
dnl Define ARCH_<archname> condition if the pattern match with the current
dnl architecture
dnl
AC_DEFUN([SET_ARCH], [
cpu_$1=false
case "$host" in
$2) cpu_$1=true ;;
esac
AM_CONDITIONAL(AS_TR_CPP(ARCH_$1), [test "x$cpu_$1" = xtrue])
])

View File

@ -1,292 +0,0 @@
dnl Macros to check the presence of generic (non-typed) symbols.
dnl Copyright (c) 2006-2008 Diego Pettenò <flameeyes@gmail.com>
dnl Copyright (c) 2006-2008 xine project
dnl Copyright (c) 2012 Lucas De Marchi <lucas.de.marchi@gmail.com>
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2, or (at your option)
dnl any later version.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
dnl 02110-1301, USA.
dnl
dnl As a special exception, the copyright owners of the
dnl macro gives unlimited permission to copy, distribute and modify the
dnl configure scripts that are the output of Autoconf when processing the
dnl Macro. You need not follow the terms of the GNU General Public
dnl License when using or distributing such scripts, even though portions
dnl of the text of the Macro appear in them. The GNU General Public
dnl License (GPL) does govern all other use of the material that
dnl constitutes the Autoconf Macro.
dnl
dnl This special exception to the GPL applies to versions of the
dnl Autoconf Macro released by this project. When you make and
dnl distribute a modified version of the Autoconf Macro, you may extend
dnl this special exception to the GPL to apply to your modified version as
dnl well.
dnl Check if FLAG in ENV-VAR is supported by compiler and append it
dnl to WHERE-TO-APPEND variable. Note that we invert -Wno-* checks to
dnl -W* as gcc cannot test for negated warnings. If a C snippet is passed,
dnl use it, otherwise use a simple main() definition that just returns 0.
dnl CC_CHECK_FLAG_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG], [C-SNIPPET])
AC_DEFUN([CC_CHECK_FLAG_APPEND], [
AC_CACHE_CHECK([if $CC supports flag $3 in envvar $2],
AS_TR_SH([cc_cv_$2_$3]),
[eval "AS_TR_SH([cc_save_$2])='${$2}'"
eval "AS_TR_SH([$2])='${cc_save_$2} -Werror `echo "$3" | sed 's/^-Wno-/-W/'`'"
AC_LINK_IFELSE([AC_LANG_SOURCE(ifelse([$4], [],
[int main(void) { return 0; } ],
[$4]))],
[eval "AS_TR_SH([cc_cv_$2_$3])='yes'"],
[eval "AS_TR_SH([cc_cv_$2_$3])='no'"])
eval "AS_TR_SH([$2])='$cc_save_$2'"])
AS_IF([eval test x$]AS_TR_SH([cc_cv_$2_$3])[ = xyes],
[eval "$1='${$1} $3'"])
])
dnl CC_CHECK_FLAGS_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG1 FLAG2], [C-SNIPPET])
AC_DEFUN([CC_CHECK_FLAGS_APPEND], [
for flag in [$3]; do
CC_CHECK_FLAG_APPEND([$1], [$2], $flag, [$4])
done
])
dnl Check if the flag is supported by linker (cacheable)
dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND])
AC_DEFUN([CC_CHECK_LDFLAGS], [
AC_CACHE_CHECK([if $CC supports $1 flag],
AS_TR_SH([cc_cv_ldflags_$1]),
[ac_save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $1"
AC_LINK_IFELSE([int main() { return 1; }],
[eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
[eval "AS_TR_SH([cc_cv_ldflags_$1])="])
LDFLAGS="$ac_save_LDFLAGS"
])
AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes],
[$2], [$3])
])
dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for
dnl the current linker to avoid undefined references in a shared object.
AC_DEFUN([CC_NOUNDEFINED], [
dnl We check $host for which systems to enable this for.
AC_REQUIRE([AC_CANONICAL_HOST])
case $host in
dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads
dnl are requested, as different implementations are present; to avoid problems
dnl use -Wl,-z,defs only for those platform not behaving this way.
*-freebsd* | *-openbsd*) ;;
*)
dnl First of all check for the --no-undefined variant of GNU ld. This allows
dnl for a much more readable command line, so that people can understand what
dnl it does without going to look for what the heck -z defs does.
for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do
CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"])
break
done
;;
esac
AC_SUBST([LDFLAGS_NOUNDEFINED])
])
dnl Check for a -Werror flag or equivalent. -Werror is the GCC
dnl and ICC flag that tells the compiler to treat all the warnings
dnl as fatal. We usually need this option to make sure that some
dnl constructs (like attributes) are not simply ignored.
dnl
dnl Other compilers don't support -Werror per se, but they support
dnl an equivalent flag:
dnl - Sun Studio compiler supports -errwarn=%all
AC_DEFUN([CC_CHECK_WERROR], [
AC_CACHE_CHECK(
[for $CC way to treat warnings as errors],
[cc_cv_werror],
[CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror],
[CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])])
])
])
AC_DEFUN([CC_CHECK_ATTRIBUTE], [
AC_REQUIRE([CC_CHECK_WERROR])
AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))],
AS_TR_SH([cc_cv_attribute_$1]),
[ac_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $cc_cv_werror"
AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])],
[eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"],
[eval "AS_TR_SH([cc_cv_attribute_$1])='no'"])
CFLAGS="$ac_save_CFLAGS"
])
AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes],
[AC_DEFINE(
AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1,
[Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))]
)
$4],
[$5])
])
AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [
CC_CHECK_ATTRIBUTE(
[constructor],,
[void __attribute__((constructor)) ctor() { int a; }],
[$1], [$2])
])
AC_DEFUN([CC_ATTRIBUTE_FORMAT], [
CC_CHECK_ATTRIBUTE(
[format], [format(printf, n, n)],
[void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }],
[$1], [$2])
])
AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [
CC_CHECK_ATTRIBUTE(
[format_arg], [format_arg(printf)],
[char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }],
[$1], [$2])
])
AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [
CC_CHECK_ATTRIBUTE(
[visibility_$1], [visibility("$1")],
[void __attribute__((visibility("$1"))) $1_function() { }],
[$2], [$3])
])
AC_DEFUN([CC_ATTRIBUTE_NONNULL], [
CC_CHECK_ATTRIBUTE(
[nonnull], [nonnull()],
[void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }],
[$1], [$2])
])
AC_DEFUN([CC_ATTRIBUTE_UNUSED], [
CC_CHECK_ATTRIBUTE(
[unused], ,
[void some_function(void *foo, __attribute__((unused)) void *bar);],
[$1], [$2])
])
AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [
CC_CHECK_ATTRIBUTE(
[sentinel], ,
[void some_function(void *foo, ...) __attribute__((sentinel));],
[$1], [$2])
])
AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [
CC_CHECK_ATTRIBUTE(
[deprecated], ,
[void some_function(void *foo, ...) __attribute__((deprecated));],
[$1], [$2])
])
AC_DEFUN([CC_ATTRIBUTE_ALIAS], [
CC_CHECK_ATTRIBUTE(
[alias], [weak, alias],
[void other_function(void *foo) { }
void some_function(void *foo) __attribute__((weak, alias("other_function")));],
[$1], [$2])
])
AC_DEFUN([CC_ATTRIBUTE_MALLOC], [
CC_CHECK_ATTRIBUTE(
[malloc], ,
[void * __attribute__((malloc)) my_alloc(int n);],
[$1], [$2])
])
AC_DEFUN([CC_ATTRIBUTE_PACKED], [
CC_CHECK_ATTRIBUTE(
[packed], ,
[struct astructure { char a; int b; long c; void *d; } __attribute__((packed));],
[$1], [$2])
])
AC_DEFUN([CC_ATTRIBUTE_CONST], [
CC_CHECK_ATTRIBUTE(
[const], ,
[int __attribute__((const)) twopow(int n) { return 1 << n; } ],
[$1], [$2])
])
AC_DEFUN([CC_FLAG_VISIBILITY], [
AC_REQUIRE([CC_CHECK_WERROR])
AC_CACHE_CHECK([if $CC supports -fvisibility=hidden],
[cc_cv_flag_visibility],
[cc_flag_visibility_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $cc_cv_werror"
CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden],
cc_cv_flag_visibility='yes',
cc_cv_flag_visibility='no')
CFLAGS="$cc_flag_visibility_save_CFLAGS"])
AS_IF([test "x$cc_cv_flag_visibility" = "xyes"],
[AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1,
[Define this if the compiler supports the -fvisibility flag])
$1],
[$2])
])
AC_DEFUN([CC_FUNC_EXPECT], [
AC_REQUIRE([CC_CHECK_WERROR])
AC_CACHE_CHECK([if compiler has __builtin_expect function],
[cc_cv_func_expect],
[ac_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $cc_cv_werror"
AC_COMPILE_IFELSE([AC_LANG_SOURCE(
[int some_function() {
int a = 3;
return (int)__builtin_expect(a, 3);
}])],
[cc_cv_func_expect=yes],
[cc_cv_func_expect=no])
CFLAGS="$ac_save_CFLAGS"
])
AS_IF([test "x$cc_cv_func_expect" = "xyes"],
[AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1,
[Define this if the compiler supports __builtin_expect() function])
$1],
[$2])
])
AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [
AC_REQUIRE([CC_CHECK_WERROR])
AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported],
[cc_cv_attribute_aligned],
[ac_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $cc_cv_werror"
for cc_attribute_align_try in 64 32 16 8 4 2; do
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
int main() {
static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0;
return c;
}])], [cc_cv_attribute_aligned=$cc_attribute_align_try; break])
done
CFLAGS="$ac_save_CFLAGS"
])
if test "x$cc_cv_attribute_aligned" != "x"; then
AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned],
[Define the highest alignment supported])
fi
])

View File

@ -1,87 +0,0 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_compiler_vendor.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_COMPILER_VENDOR
#
# DESCRIPTION
#
# Determine the vendor of the C/C++ compiler, e.g., gnu, intel, ibm, sun,
# hp, borland, comeau, dec, cray, kai, lcc, metrowerks, sgi, microsoft,
# watcom, etc. The vendor is returned in the cache variable
# $ax_cv_c_compiler_vendor for C and $ax_cv_cxx_compiler_vendor for C++.
#
# LICENSE
#
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
# Copyright (c) 2008 Matteo Frigo
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 15
AC_DEFUN([AX_COMPILER_VENDOR],
[AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor,
dnl Please add if possible support to ax_compiler_version.m4
[# note: don't check for gcc first since some other compilers define __GNUC__
vendors="intel: __ICC,__ECC,__INTEL_COMPILER
ibm: __xlc__,__xlC__,__IBMC__,__IBMCPP__
pathscale: __PATHCC__,__PATHSCALE__
clang: __clang__
cray: _CRAYC
fujitsu: __FUJITSU
gnu: __GNUC__
sun: __SUNPRO_C,__SUNPRO_CC
hp: __HP_cc,__HP_aCC
dec: __DECC,__DECCXX,__DECC_VER,__DECCXX_VER
borland: __BORLANDC__,__CODEGEARC__,__TURBOC__
comeau: __COMO__
kai: __KCC
lcc: __LCC__
sgi: __sgi,sgi
microsoft: _MSC_VER
metrowerks: __MWERKS__
watcom: __WATCOMC__
portland: __PGI
tcc: __TINYC__
unknown: UNKNOWN"
for ventest in $vendors; do
case $ventest in
*:) vendor=$ventest; continue ;;
*) vencpp="defined("`echo $ventest | sed 's/,/) || defined(/g'`")" ;;
esac
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[
#if !($vencpp)
thisisanerror;
#endif
])], [break])
done
ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=`echo $vendor | cut -d: -f1`
])
])

View File

@ -1,115 +0,0 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_normalize_path.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_NORMALIZE_PATH(VARNAME, [REFERENCE_STRING])
#
# DESCRIPTION
#
# Perform some cleanups on the value of $VARNAME (interpreted as a path):
#
# - empty paths are changed to '.'
# - trailing slashes are removed
# - repeated slashes are squeezed except a leading doubled slash '//'
# (which might indicate a networked disk on some OS).
#
# REFERENCE_STRING is used to turn '/' into '\' and vice-versa: if
# REFERENCE_STRING contains some backslashes, all slashes and backslashes
# are turned into backslashes, otherwise they are all turned into slashes.
#
# This makes processing of DOS filenames quite easier, because you can
# turn a filename to the Unix notation, make your processing, and turn it
# back to original notation.
#
# filename='A:\FOO\\BAR\'
# old_filename="$filename"
# # Switch to the unix notation
# AX_NORMALIZE_PATH([filename], ["/"])
# # now we have $filename = 'A:/FOO/BAR' and we can process it as if
# # it was a Unix path. For instance let's say that you want
# # to append '/subpath':
# filename="$filename/subpath"
# # finally switch back to the original notation
# AX_NORMALIZE_PATH([filename], ["$old_filename"])
# # now $filename equals to 'A:\FOO\BAR\subpath'
#
# One good reason to make all path processing with the unix convention is
# that backslashes have a special meaning in many cases. For instance
#
# expr 'A:\FOO' : 'A:\Foo'
#
# will return 0 because the second argument is a regex in which
# backslashes have to be backslashed. In other words, to have the two
# strings to match you should write this instead:
#
# expr 'A:\Foo' : 'A:\\Foo'
#
# Such behavior makes DOS filenames extremely unpleasant to work with. So
# temporary turn your paths to the Unix notation, and revert them to the
# original notation after the processing. See the macro
# AX_COMPUTE_RELATIVE_PATHS for a concrete example of this.
#
# REFERENCE_STRING defaults to $VARIABLE, this means that slashes will be
# converted to backslashes if $VARIABLE already contains some backslashes
# (see $thirddir below).
#
# firstdir='/usr/local//share'
# seconddir='C:\Program Files\\'
# thirddir='C:\home/usr/'
# AX_NORMALIZE_PATH([firstdir])
# AX_NORMALIZE_PATH([seconddir])
# AX_NORMALIZE_PATH([thirddir])
# # $firstdir = '/usr/local/share'
# # $seconddir = 'C:\Program Files'
# # $thirddir = 'C:\home\usr'
#
# LICENSE
#
# Copyright (c) 2008 Alexandre Duret-Lutz <adl@gnu.org>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 5
AU_ALIAS([ADL_NORMALIZE_PATH], [AX_NORMALIZE_PATH])
AC_DEFUN([AX_NORMALIZE_PATH],
[case ":[$]$1:" in
# change empty paths to '.'
::) $1='.' ;;
# strip trailing slashes
:*[[\\/]]:) $1=`echo "[$]$1" | sed 's,[[\\/]]*[$],,'` ;;
:*:) ;;
esac
# squeze repeated slashes
case ifelse($2,,"[$]$1",$2) in
# if the path contains any backslashes, turn slashes into backslashes
*\\*) $1=`echo "[$]$1" | sed 's,\(.\)[[\\/]][[\\/]]*,\1\\\\,g'` ;;
# if the path contains slashes, also turn backslashes into slashes
*) $1=`echo "[$]$1" | sed 's,\(.\)[[\\/]][[\\/]]*,\1/,g'` ;;
esac])

5
man/.gitignore vendored
View File

@ -1,5 +0,0 @@
/systemd.directives.xml
/systemd.index.xml
/*.[13578]
/*.html
/custom-entities.ent

View File

@ -1 +0,0 @@
../src/Makefile

View File

@ -193,7 +193,7 @@
<varlistentry>
<term>COREFILE</term>
<listitem><para>Information whether the coredump was stored, and whether
it is still accessible: <literal>none</literal> means the the core was
it is still accessible: <literal>none</literal> means the core was
not stored, <literal>-</literal> means that it was not available (for
example because the process was not terminated by a signal),
<literal>present</literal> means that the core file is accessible by the

View File

@ -69,8 +69,10 @@
<para>Empty lines and lines starting with the <literal>#</literal>
character are ignored. Each of the remaining lines describes one
encrypted block device, fields on the line are delimited by white
space. The first two fields are mandatory, the remaining two are
encrypted block device. Fields are delimited by white space.</para>
<para>Each line is in the form<programlisting><replaceable>name</replaceable> <replaceable>encrypted-device</replaceable> <replaceable>password</replaceable> <replaceable>options</replaceable></programlisting>
The first two fields are mandatory, the remaining two are
optional.</para>
<para>Setting up encrypted block devices using this file supports
@ -105,14 +107,6 @@
<variablelist class='fstab-options'>
<varlistentry>
<term><option>discard</option></term>
<listitem><para>Allow discard requests to be passed through
the encrypted block device. This improves performance on SSD
storage but has security implications.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>cipher=</option></term>
@ -124,6 +118,14 @@
recommended.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>discard</option></term>
<listitem><para>Allow discard requests to be passed through the encrypted block
device. This improves performance on SSD storage but has security implications.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>hash=</option></term>
@ -145,30 +147,6 @@
option.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>offset=</option></term>
<listitem><para>Start offset in the backend device, in 512-byte sectors.
This option is only relevant for plain devices.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>skip=</option></term>
<listitem><para>How many 512-byte sectors of the encrypted data to skip
at the beginning. This is different from the <option>--offset</option>
option with respect to the sector numbers used in initialization vector
(IV) calculation. Using <option>--offset</option> will shift the IV
calculation by the same negative amount. Hence, if <option>--offset n</option> is given,
sector n will get a sector number of 0 for the IV calculation.
Using <option>--skip</option> causes sector n to also be the first
sector of the mapped device, but with its number for IV generation being n.</para>
<para>This option is only relevant for plain devices.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>keyfile-offset=</option></term>
@ -213,6 +191,19 @@
<option>size=</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>_netdev</option></term>
<listitem><para>Marks this cryptsetup device as requiring network. It will be
started after the network is available, similarly to
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
units marked with <option>_netdev</option>. The service unit to set up this device
will be ordered between <filename>remote-cryptsetup-pre.target</filename> and
<filename>remote-cryptsetup.target</filename>, instead of
<filename>cryptsetup-pre.target</filename> and
<filename>cryptsetup.target</filename>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>noauto</option></term>
@ -228,6 +219,13 @@
does not show up.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>offset=</option></term>
<listitem><para>Start offset in the backend device, in 512-byte sectors. This
option is only relevant for plain devices.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>plain</option></term>
@ -241,6 +239,23 @@
mode.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>skip=</option></term>
<listitem><para>How many 512-byte sectors of the encrypted data to skip at the
beginning. This is different from the <option>offset=</option> option with respect
to the sector numbers used in initialization vector (IV) calculation. Using
<option>offset=</option> will shift the IV calculation by the same negative
amount. Hence, if <option>offset=<replaceable>n</replaceable></option> is given,
sector <replaceable>n</replaceable> will get a sector number of 0 for the IV
calculation. Using <option>skip=</option> causes sector
<replaceable>n</replaceable> to also be the first sector of the mapped device, but
with its number for IV generation being <replaceable>n</replaceable>.</para>
<para>This option is only relevant for plain devices.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>size=</option></term>
@ -346,19 +361,6 @@
indefinitely (which is the default).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>x-systemd.device-timeout=</option></term>
<listitem><para>Specifies how long systemd should wait for a
device to show up before giving up on the entry. The argument
is a time in seconds or explicitly specified units of
<literal>s</literal>,
<literal>min</literal>,
<literal>h</literal>,
<literal>ms</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tmp</option></term>
@ -390,6 +392,19 @@
typos.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>x-systemd.device-timeout=</option></term>
<listitem><para>Specifies how long systemd should wait for a device to show up
before giving up on the entry. The argument is a time in seconds or explicitly
specified units of
<literal>s</literal>,
<literal>min</literal>,
<literal>h</literal>,
<literal>ms</literal>.
</para></listitem>
</varlistentry>
</variablelist>
<para>At early boot and when the system manager configuration is

View File

@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="dnssec-trust-anchors.d" conditional='ENABLE_RESOLVED'
<refentry id="dnssec-trust-anchors.d" conditional='ENABLE_RESOLVE'
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>dnssec-trust-anchors.d</title>

View File

@ -357,6 +357,14 @@
</listitem>
</varlistentry>
<varlistentry>
<term><varname>ReadKMsg=</varname></term>
<listitem><para>Takes a boolean value. If enabled (the
default), journal reads <filename>/dev/kmsg</filename>
messages generated by the kernel.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>TTYPath=</varname></term>
@ -365,6 +373,24 @@
<filename>/dev/console</filename>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>LineMax=</varname></term>
<listitem><para>The maximum line length to permit when converting stream logs into record logs. When a systemd
unit's standard output/error are connected to the journal via a stream socket, the data read is split into
individual log records at newline (<literal>\n</literal>, ASCII 10) and NUL characters. If no such delimiter is
read for the specified number of bytes a hard log record boundary is artifically inserted, breaking up overly
long lines into multiple log records. Selecting overly large values increases the possible memory usage of the
Journal daemon for each stream client, as in the worst case the journal daemon needs to buffer the specified
number of bytes in memory before it can flush a new log record to disk. Also note that permitting overly large
line maximum line lengths affects compatibility with traditional log protocols as log records might not fit
anymore into a single <constant>AF_UNIX</constant> or <constant>AF_INET</constant> datagram. Takes a size in
bytes. If the value is suffixed with K, M, G or T, the specified size is parsed as Kilobytes, Megabytes,
Gigabytes, or Terabytes (with the base 1024), respectively. Defaults to 48K, which is relatively large but
still small enough so that log records likely fit into network datagrams along with extra room for
metadata. Note that values below 79 are not accepted and will be bumped to 79.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>

View File

@ -335,6 +335,18 @@
</listitem>
</varlistentry>
<varlistentry>
<term><varname>mount.usr=</varname></term>
<term><varname>mount.usrfstype=</varname></term>
<term><varname>mount.usrflags=</varname></term>
<listitem>
<para>Configures the /usr file system (if required) and
its file system type and mount options. For details, see
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>roothash=</varname></term>
<term><varname>systemd.verity=</varname></term>

View File

@ -79,17 +79,18 @@
OS kernel with the host OS, in order to run
OS userspace instances on top the host OS.</para></listitem>
<listitem><para>The host system itself</para></listitem>
<listitem><para>The host system itself.</para></listitem>
</itemizedlist>
<para>Machines are identified by names that follow the same rules
as UNIX and DNS host names, for details, see below. Machines are
instantiated from disk or file system images that frequently — but not
necessarily — carry the same name as machines running from
them. Images in this sense are considered:</para>
as UNIX and DNS host names. For details, see below.</para>
<para>Machines are instantiated from disk or file system images that
frequently — but not necessarily — carry the same name as machines running
from them. Images in this sense may be:</para>
<itemizedlist>
<listitem><para>Directory trees containing an OS, including its
<listitem><para>Directory trees containing an OS, including the
top-level directories <filename>/usr</filename>,
<filename>/etc</filename>, and so on.</para></listitem>
@ -299,7 +300,16 @@
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="machine" />
<varlistentry>
<term><option>-M</option></term>
<term><option>--machine=</option></term>
<listitem><para>Connect to
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
running in a local container, to perform the specified operation within
the container.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="no-pager" />
<xi:include href="standard-options.xml" xpointer="no-legend" />
@ -809,7 +819,7 @@
qcow2 or raw disk image, possibly compressed with xz, gzip or
bzip2. If the second argument (the resulting image name) is
not specified, it is automatically derived from the file
name. If the file name is passed as <literal>-</literal>, the
name. If the filename is passed as <literal>-</literal>, the
image is read from standard input, in which case the second
argument is mandatory.</para>

View File

@ -11,6 +11,7 @@ want_html = want_html != 'false' and xsltproc.found()
xsltproc_flags = [
'--nonet',
'--xinclude',
'--maxdepth', '9000',
'--stringparam', 'man.output.quietly', '1',
'--stringparam', 'funcsynopsis.style', 'ansi',
'--stringparam', 'man.authors.section.enabled', '0',
@ -50,7 +51,7 @@ foreach tuple : manpages
mandirn = join_paths(get_option('mandir'), 'man' + section)
if condition == '' or conf.get(condition, false)
if condition == '' or conf.get(condition) == 1
p1 = custom_target(
man,
input : xml,
@ -170,10 +171,10 @@ man = custom_target(
depends : man_pages,
command : ['echo'])
html = run_target(
html = custom_target(
'html',
depends : html_pages,
output : 'html',
depends : html_pages,
command : ['echo'])
run_target(
@ -191,14 +192,15 @@ run_target(
############################################################
if git.found()
run_target(
custom_target(
'update-man-rules',
output : 'update-man-rules',
# slightly strange syntax because of
# https://github.com/mesonbuild/meson/issues/1643
# and https://github.com/mesonbuild/meson/issues/1512
command : ['sh', '-c',
'cd @0@ && '.format(meson.build_root()) +
'python3 @0@/tools/make-man-rules.py --meson `git ls-files ":/man/*.xml"` >t && '.format(meson.source_root()) +
'python3 @0@/tools/make-man-rules.py `git ls-files ":/man/*.xml"` >t && '.format(meson.source_root()) +
'mv t @0@/rules/meson.build'.format(meson.current_source_dir())],
depend_files : custom_entities_ent)
endif

View File

@ -22,7 +22,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="nss-myhostname" conditional='HAVE_MYHOSTNAME'>
<refentry id="nss-myhostname" conditional='ENABLE_MYHOSTNAME'>
<refentryinfo>
<title>nss-myhostname</title>

View File

@ -22,7 +22,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="nss-resolve" conditional='ENABLE_RESOLVED'>
<refentry id="nss-resolve" conditional='ENABLE_RESOLVE'>
<refentryinfo>
<title>nss-resolve</title>

View File

@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="resolved.conf" conditional='ENABLE_RESOLVED'
<refentry id="resolved.conf" conditional='ENABLE_RESOLVE'
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>resolved.conf</title>

View File

@ -11,7 +11,7 @@ manpages = [
['dnssec-trust-anchors.d',
'5',
['systemd.negative', 'systemd.positive'],
'ENABLE_RESOLVED'],
'ENABLE_RESOLVE'],
['environment.d', '5', [], 'ENABLE_ENVIRONMENT_D'],
['file-hierarchy', '7', [], ''],
['halt', '8', ['poweroff', 'reboot'], ''],
@ -36,14 +36,14 @@ manpages = [
['modules-load.d', '5', [], 'HAVE_KMOD'],
['networkctl', '1', [], 'ENABLE_NETWORKD'],
['networkd.conf', '5', ['networkd.conf.d'], 'ENABLE_NETWORKD'],
['nss-myhostname', '8', ['libnss_myhostname.so.2'], 'HAVE_MYHOSTNAME'],
['nss-myhostname', '8', ['libnss_myhostname.so.2'], 'ENABLE_MYHOSTNAME'],
['nss-mymachines', '8', ['libnss_mymachines.so.2'], 'ENABLE_MACHINED'],
['nss-resolve', '8', ['libnss_resolve.so.2'], 'ENABLE_RESOLVED'],
['nss-resolve', '8', ['libnss_resolve.so.2'], 'ENABLE_RESOLVE'],
['nss-systemd', '8', ['libnss_systemd.so.2'], 'ENABLE_NSS_SYSTEMD'],
['os-release', '5', [], ''],
['pam_systemd', '8', [], 'HAVE_PAM'],
['resolved.conf', '5', ['resolved.conf.d'], 'ENABLE_RESOLVED'],
['runlevel', '8', [], 'HAVE_UTMP'],
['resolved.conf', '5', ['resolved.conf.d'], 'ENABLE_RESOLVE'],
['runlevel', '8', [], 'ENABLE_UTMP'],
['sd-bus-errors',
'3',
['SD_BUS_ERROR_ACCESS_DENIED',
@ -588,8 +588,8 @@ manpages = [
['systemd-random-seed'],
'ENABLE_RANDOMSEED'],
['systemd-remount-fs.service', '8', ['systemd-remount-fs'], ''],
['systemd-resolve', '1', [], 'ENABLE_RESOLVED'],
['systemd-resolved.service', '8', ['systemd-resolved'], 'ENABLE_RESOLVED'],
['systemd-resolve', '1', [], 'ENABLE_RESOLVE'],
['systemd-resolved.service', '8', ['systemd-resolved'], 'ENABLE_RESOLVE'],
['systemd-rfkill.service',
'8',
['systemd-rfkill', 'systemd-rfkill.socket'],
@ -632,7 +632,7 @@ manpages = [
['systemd-update-utmp.service',
'8',
['systemd-update-utmp', 'systemd-update-utmp-runlevel.service'],
'HAVE_UTMP'],
'ENABLE_UTMP'],
['systemd-user-sessions.service', '8', ['systemd-user-sessions'], 'HAVE_PAM'],
['systemd-vconsole-setup.service',
'8',

View File

@ -23,7 +23,7 @@
<refentry id="runlevel"
xmlns:xi="http://www.w3.org/2001/XInclude"
conditional="HAVE_UTMP">
conditional="ENABLE_UTMP">
<refentryinfo>
<title>runlevel</title>

View File

@ -66,11 +66,6 @@
and monitor seat, login session and user status information on the
local system. </para>
<para>See <ulink
url="https://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat
on Linux</ulink> for an introduction into multi-seat support on
Linux, the background for this set of APIs.</para>
<para>Note that these APIs only allow purely passive access and
monitoring of seats, sessions and users. To actively make changes
to the seat configuration, terminate login sessions, or switch
@ -115,6 +110,146 @@
implemented.</para>
</refsect1>
<refsect1>
<title>Definition of Terms</title>
<variablelist>
<varlistentry>
<term>seat</term>
<listitem><para>A seat consists of all hardware devices assigned to a specific
workplace. It consists of at least one graphics device, and usually also includes
keyboard, mouse. It can also include video cameras, sound cards and more. Seats
are identified by seat names, which are strings (&lt;= 255 characters), that start
with the four characters <literal>seat</literal> followed by at least one
character from the range [a-zA-Z0-9], <literal>_</literal> and
<literal>-</literal>. They are suitable for use as file names. Seat names may or
may not be stable and may be reused if a seat becomes available again.
</para></listitem>
</varlistentry>
<varlistentry>
<term>session</term>
<listitem><para>A session is defined by the time a user is logged in until they
log out. A session is bound to one or no seats (the latter for 'virtual' ssh
logins). Multiple sessions can be attached to the same seat, but only one of them
can be active, the others are in the background. A session is identified by a
short string.</para>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
ensures that audit sessions are identical to systemd sessions, and uses the audit
session ID as session ID in systemd (if auditing is enabled). In general the
session identifier is a short string consisting only of [a-zA-Z0-9],
<literal>_</literal> and <literal>-</literal>, suitable for use as a file name.
Session IDs are unique on the local machine and are
never reused as long as the machine is online. A user (the way we know it on UNIX)
corresponds to the person using a computer. A single user can have multiple
sessions open at the same time. A user is identified by a numeric user id (UID) or
a user name (a string). A multi-session system allows multiple user sessions on
the same seat at the same time. A multi-seat system allows multiple independent
seats that can be individually and simultaneously used by different users.</para>
</listitem>
</varlistentry>
</variablelist>
<para>All hardware devices that are eligible to being assigned to a seat, are assigned
to one. A device can be assigned to only one seat at a time. If a device is not
assigned to any particular other seat it is implicitly assigned to the special default
seat called <literal>seat0</literal>.</para>
<para>Note that hardware like printers, hard disks or network cards is generally not
assigned to a specific seat. They are available to all seats equally. (Well, with one
exception: USB sticks can be assigned to a seat.)</para>
<para><literal>seat0</literal> always exists.</para>
</refsect1>
<refsect1>
<title>udev Rules</title>
<para>Assignment of hardware devices to seats is managed inside the udev database, via
settings on the devices:</para>
<variablelist>
<varlistentry>
<term>Tag <literal>seat</literal></term>
<listitem><para>When set, a device is eligible to be assigned to a seat. This tag
is set for graphics devices, mice, keyboards, video cards, sound cards and
more. Note that some devices like sound cards consist of multiple subdevices
(i.e. a PCM for input and another one for output). This tag will be set only for
the originating device, not for the individual subdevices. A UI for configuring
assignment of devices to seats should enumerate and subscribe to all devices with
this tag set and show them in the UI. Note that USB hubs can be assigned to a seat
as well, in which case all (current and future) devices plugged into it will also
be assigned to the same seat (unless they are explicitly assigned to another
seat).
</para></listitem>
</varlistentry>
<varlistentry>
<term>Tag <literal>master-of-seat</literal></term>
<listitem><para>When set, this device is enough for a seat to be considered
existent. This tag is usually set for the framebuffer device of graphics cards. A
seat hence consists of an arbitrary number of devices marked with the
<literal>seat</literal> tag, but (at least) one of these devices needs to be
tagged with <literal>master-of-seat</literal> before the seat is actually
considered to be around.</para></listitem>
</varlistentry>
<varlistentry>
<term>Property <varname>ID_SEAT</varname></term>
<listitem><para>This property specifies the name of the seat a specific device is
assigned to. If not set the device is assigned to <literal>seat0</literal>. Also,
to speed up enumeration of hardware belonging to a specific seat, the seat is also
set as tag on the device. I.e. if the property
<varname>ID_SEAT=seat-waldo</varname> is set for a device, the tag
<literal>seat-waldo</literal> will be set as well. Note that if a device is
assigned to <literal>seat0</literal>, it will usually not carry such a tag and you
need to enumerate all devices and check the <varname>ID_SEAT</varname> property
manually. Again, if a device is assigned to seat0 this is visible on the device in
two ways: with a property <varname>ID_SEAT=seat0</varname> and with no property
<varname>ID_SEAT</varname> set for it at all.</para></listitem>
</varlistentry>
<varlistentry>
<term>Property <varname>ID_AUTOSEAT</varname></term>
<listitem><para>When set to <literal>1</literal>, this device automatically
generates a new and independent seat, which is named after the path of the
device. This is set for specialized USB hubs like the Plugable devices, which when
plugged in should create a hotplug seat without further configuration.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Property <varname>ID_FOR_SEAT</varname></term>
<listitem><para>When creating additional (manual) seats starting from a graphics
device this is a good choice to name the seat after. It is created from the path
of the device. This is useful in UIs for configuring seats: as soon as you create
a new seat from a graphics device, read this property and prefix it with
<literal>seat-</literal> and use it as name for the seat.</para></listitem>
</varlistentry>
</variablelist>
<para>A seat exists only and exclusively because a properly tagged device with the
right <varname>ID_SEAT</varname> property exists. Besides udev rules there is no
persistent data about seats stored on disk.</para>
<para>Note that
<citerefentry><refentrytitle>systemd-logind</refentrytitle><manvolnum>8</manvolnum></citerefentry>
manages ACLs on a number of device classes, to allow user code to access the device
nodes attached to a seat as long as the user has an active session on it. This is
mostly transparent to applications. As mentioned above, for certain user software it
might be a good idea to watch whether they can access device nodes instead of thinking
about seats.</para>
</refsect1>
<xi:include href="libsystemd-pkgconfig.xml" />
<refsect1>
@ -130,6 +265,11 @@
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
<para>
<ulink url="https://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat on Linux</ulink>
for an introduction to multi-seat support on Linux and the background for this set of APIs.
</para>
</refsect1>
</refentry>

View File

@ -165,13 +165,17 @@
not set, a suitable default for the default system D-Bus instance
will be used.</para>
<para><function>sd_bus_open_system_remote()</function> connects to
the system bus on the specified <parameter>host</parameter> using
<citerefentry
project='die-net'><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></citerefentry>. <parameter>host</parameter>
consists of an optional user name followed by the
<literal>@</literal> symbol, and the hostname.
</para>
<para><function>sd_bus_open_system_remote()</function> connects to the system bus on
the specified host using
<citerefentry project='die-net'><refentrytitle>ssh</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
<parameter>host</parameter> consists of an optional user name followed by the
<literal>@</literal> symbol, and the hostname, optionally followed by a
<literal>:</literal> and a machine name. If the machine name is given, a connection
is created to the system bus in the specified container on the remote machine, and
otherwise a connection to the system bus on the specified host is created.</para>
<para>Note that entering a container is a privileged operation, and will likely only
work for the root user on the remote machine.</para>
<para><function>sd_bus_open_system_machine()</function> connects
to the system bus in the specified <parameter>machine</parameter>,

View File

@ -93,12 +93,6 @@
default, file descriptor passing is negotiated for all
connections.</para>
<para>Note that when bus activation is used, it is highly
recommended to set the <option>AcceptFileDescriptors=</option>
setting in the <filename>.busname</filename> unit file to the same
setting as negotiated by the program ultimately activated. By
default, file descriptor passing is enabled for both.</para>
<para><function>sd_bus_negotiate_timestamp()</function> controls whether implicit sender
timestamps shall be attached automatically to all incoming messages. Takes a bus object and a
boolean, which, when true, enables timestamping, and, when false, disables it. Use
@ -178,8 +172,7 @@
<citerefentry><refentrytitle>sd_bus_message_get_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_get_seqnum</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_message_get_creds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.busname</refentrytitle><manvolnum>5</manvolnum></citerefentry>
<citerefentry><refentrytitle>sd_bus_message_get_creds</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>

View File

@ -183,7 +183,7 @@
whether the specified file descriptor refers to a special file. If
the <parameter>path</parameter> parameter is not
<constant>NULL</constant>, it is checked whether the file
descriptor is bound to the specified file name. Special files in
descriptor is bound to the specified filename. Special files in
this context are character device nodes and files in
<filename>/proc</filename> or <filename>/sys</filename>.</para>
</refsect1>

View File

@ -139,7 +139,8 @@
present it to the user. Note that a service that sends this
notification must also send a <literal>READY=1</literal>
notification when it completed reloading its
configuration.</para></listitem>
configuration. Reloads are propagated in the same way as they
are when initiated by the user.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -32,7 +32,6 @@
<filename>/etc/</filename>, with the same filename as the vendor
configuration file. If the vendor configuration file is included in
the initrd image, the image has to be regenerated.</para>
</refsection>
<refsection id='main-conf'>
@ -55,14 +54,15 @@
configuration file is read before any of the configuration
directories, and has the lowest precedence; entries in a file in
any configuration directory override entries in the single
configuration file. Files in the
<filename>*.conf.d/</filename> configuration subdirectories
are sorted by their filename in lexicographic order, regardless of
which of the subdirectories they reside in. If multiple files
specify the same option, the entry in the file with the
lexicographically latest name takes precedence. It is recommended
to prefix all filenames in those subdirectories with a two-digit
number and a dash, to simplify the ordering of the files.</para>
configuration file. Files in the <filename>*.conf.d/</filename>
configuration subdirectories are sorted by their filename in lexicographic
order, regardless of which of the subdirectories they reside in. When
multiple files specify the same option, for options which accept just a
single value, the entry in the file with the lexicographically latest name
takes precedence. For options which accept a list of values, entries are
collected as they occur in files sorted lexicographically. It is recommended
to prefix all filenames in those subdirectories with a two-digit number and
a dash, to simplify the ordering of the files.</para>
<para>To disable a configuration file supplied by the vendor, the
recommended way is to place a symlink to

View File

@ -295,7 +295,8 @@
transactions from replacing these jobs (or even being enqueued
while the irreversible jobs are still pending). Irreversible
jobs can still be cancelled using the <command>cancel</command>
command.</para>
command. This job mode should be used on any transaction which
pulls in <filename>shutdown.target</filename>.</para>
<para><literal>isolate</literal> is only valid for start
operations and causes all other units to be stopped when the
@ -406,8 +407,7 @@
<term><option>--no-wall</option></term>
<listitem>
<para>Do not send wall message before halt, power-off,
reboot.</para>
<para>Do not send wall message before halt, power-off and reboot.</para>
</listitem>
</varlistentry>
@ -524,7 +524,7 @@
<option>--force</option> twice with any of these operations might result in data loss. Note that when
<option>--force</option> is specified twice the selected operation is executed by
<command>systemctl</command> itself, and the system manager is not contacted. This means the command should
succeed even when the system manager hangs or crashed.</para>
succeed even when the system manager has crashed.</para>
</listitem>
</varlistentry>
@ -532,11 +532,9 @@
<term><option>--message=</option></term>
<listitem>
<para>When used with <command>halt</command>,
<command>poweroff</command>, <command>reboot</command> or
<command>kexec</command>, set a short message explaining the reason
for the operation. The message will be logged together with the
default shutdown message.</para>
<para>When used with <command>halt</command>, <command>poweroff</command> or <command>reboot</command>, set a
short message explaining the reason for the operation. The message will be logged together with the default
shutdown message.</para>
</listitem>
</varlistentry>
@ -727,7 +725,7 @@ Sun 2017-02-26 20:57:49 EST 2h 3min left Sun 2017-02-26 11:56:36 EST 6h ago
<para><emphasis>LAST</emphasis> shows the last time the timer ran.</para>
<para><emphasis>PASSED</emphasis> shows has long as passed since the timer laset ran.</para>
<para><emphasis>UNIT</emphasis> shows the name of the timer</para>
<para><emphasis>ACTIVATES</emphasis> shows the the name the service the timer activates when it runs.</para>
<para><emphasis>ACTIVATES</emphasis> shows the name the service the timer activates when it runs.</para>
<para>Also see <option>--all</option> and <option>--state=</option>.</para>
</listitem>
@ -819,9 +817,11 @@ Sun 2017-02-26 20:57:49 EST 2h 3min left Sun 2017-02-26 11:56:36 EST 6h ago
<term><command>isolate <replaceable>NAME</replaceable></command></term>
<listitem>
<para>Start the unit specified on the command line and its
dependencies and stop all others. If a unit name with no
extension is given, an extension of
<para>Start the unit specified on the command line and its dependencies
and stop all others, unless they have
<option>IgnoreOnIsolate=yes</option> (see
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
If a unit name with no extension is given, an extension of
<literal>.target</literal> will be assumed.</para>
<para>This is similar to changing the runlevel in a
@ -1126,8 +1126,8 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
<para>Depending on whether <option>--system</option>, <option>--user</option>, <option>--runtime</option>,
or <option>--global</option> is specified, this enables the unit for the system, for the calling user only,
for only this boot of the system, or for all future logins of all users, or only this boot. Note that in
the last case, no systemd daemon configuration is reloaded.</para>
for only this boot of the system, or for all future logins of all users. Note that in the last case, no
systemd daemon configuration is reloaded.</para>
<para>Using <command>enable</command> on masked units is not supported and results in an error.</para>
</listitem>
@ -1242,7 +1242,7 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
<tbody>
<row>
<entry><literal>enabled</literal></entry>
<entry morerows='1'>Enabled via <filename>.wants/</filename>, <filename>.requires/</filename> or alias symlinks (permanently in <filename>/etc/systemd/system/</filename>, or transiently in <filename>/run/systemd/system/</filename>).</entry>
<entry morerows='1'>Enabled via <filename>.wants/</filename>, <filename>.requires/</filename> or <varname>Alias=</varname> symlinks (permanently in <filename>/etc/systemd/system/</filename>, or transiently in <filename>/run/systemd/system/</filename>).</entry>
<entry morerows='1'>0</entry>
</row>
<row>
@ -1271,7 +1271,7 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
</row>
<row>
<entry><literal>indirect</literal></entry>
<entry>The unit file itself is not enabled, but it has a non-empty <varname>Also=</varname> setting in the <literal>[Install]</literal> unit file section, listing other unit files that might be enabled.</entry>
<entry>The unit file itself is not enabled, but it has a non-empty <varname>Also=</varname> setting in the <literal>[Install]</literal> unit file section, listing other unit files that might be enabled, or it has an alias under a different name through a symlink that is not specified in Also=. For template unit file, an instance different than the one specified in <varname>DefaultInstance=</varname> is enabled.</entry>
<entry>0</entry>
</row>
<row>
@ -1687,8 +1687,8 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
<term><command>default</command></term>
<listitem>
<para>Enter default mode. This is mostly equivalent to
<command>isolate default.target</command>.</para>
<para>Enter default mode. This is equivalent to <command>systemctl isolate default.target</command>. This
operation is blocking by default, use <option>--no-block</option> to request asynchronous behavior.</para>
</listitem>
</varlistentry>
@ -1696,72 +1696,77 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
<term><command>rescue</command></term>
<listitem>
<para>Enter rescue mode. This is mostly equivalent to
<command>isolate rescue.target</command>, but also prints a
wall message to all users.</para>
<para>Enter rescue mode. This is equivalent to <command>systemctl isolate rescue.target</command>. This
operation is blocking by default, use <option>--no-block</option> to request asynchronous behavior.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>emergency</command></term>
<listitem>
<para>Enter emergency mode. This is mostly equivalent to
<command>isolate emergency.target</command>, but also prints
a wall message to all users.</para>
<para>Enter emergency mode. This is equivalent to <command>systemctl isolate
emergency.target</command>. This operation is blocking by default, use <option>--no-block</option> to
request asynchronous behavior.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>halt</command></term>
<listitem>
<para>Shut down and halt the system. This is mostly equivalent to <command>start halt.target
--job-mode=replace-irreversibly</command>, but also prints a wall message to all users. If combined with
<option>--force</option>, shutdown of all running services is skipped, however all processes are killed and
all file systems are unmounted or mounted read-only, immediately followed by the system halt. If
<option>--force</option> is specified twice, the operation is immediately executed without terminating any
processes or unmounting any file systems. This may result in data loss. Note that when
<option>--force</option> is specified twice the halt operation is executed by
<command>systemctl</command> itself, and the system manager is not contacted. This means the command should
succeed even when the system manager hangs or crashed.</para>
<para>Shut down and halt the system. This is mostly equivalent to <command>systemctl start halt.target
--job-mode=replace-irreversibly --no-block</command>, but also prints a wall message to all users. This command is
asynchronous; it will return after the halt operation is enqueued, without waiting for it to complete. Note
that this operation will simply halt the OS kernel after shutting down, leaving the hardware powered
on. Use <command>systemctl poweroff</command> for powering off the system (see below).</para>
<para>If combined with <option>--force</option>, shutdown of all running services is skipped, however all
processes are killed and all file systems are unmounted or mounted read-only, immediately followed by the
system halt. If <option>--force</option> is specified twice, the operation is immediately executed without
terminating any processes or unmounting any file systems. This may result in data loss. Note that when
<option>--force</option> is specified twice the halt operation is executed by <command>systemctl</command>
itself, and the system manager is not contacted. This means the command should succeed even when the system
manager has crashed.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>poweroff</command></term>
<listitem>
<para>Shut down and power-off the system. This is mostly equivalent to <command>start poweroff.target
--job-mode=replace-irreversibly</command>, but also prints a wall message to all users. If combined with
<option>--force</option>, shutdown of all running services is skipped, however all processes are killed and
all file systems are unmounted or mounted read-only, immediately followed by the powering off. If
<option>--force</option> is specified twice, the operation is immediately executed without terminating any
processes or unmounting any file systems. This may result in data loss. Note that when
<para>Shut down and power-off the system. This is mostly equivalent to <command>systemctl start
poweroff.target --job-mode=replace-irreversibly --no-block</command>, but also prints a wall message to all
users. This command is asynchronous; it will return after the power-off operation is enqueued, without
waiting for it to complete.</para>
<para>If combined with <option>--force</option>, shutdown of all running services is skipped, however all
processes are killed and all file systems are unmounted or mounted read-only, immediately followed by the
powering off. If <option>--force</option> is specified twice, the operation is immediately executed without
terminating any processes or unmounting any file systems. This may result in data loss. Note that when
<option>--force</option> is specified twice the power-off operation is executed by
<command>systemctl</command> itself, and the system manager is not contacted. This means the command should
succeed even when the system manager hangs or crashed.</para>
succeed even when the system manager has crashed.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>reboot <optional><replaceable>arg</replaceable></optional></command></term>
<listitem>
<para>Shut down and reboot the system. This is mostly equivalent to <command>start reboot.target
--job-mode=replace-irreversibly</command>, but also prints a wall message to all users. If combined with
<option>--force</option>, shutdown of all running services is skipped, however all processes are killed and
all file systems are unmounted or mounted read-only, immediately followed by the reboot. If
<option>--force</option> is specified twice, the operation is immediately executed without terminating any
processes or unmounting any file systems. This may result in data loss. Note that when
<para>Shut down and reboot the system. This is mostly equivalent to <command>systemctl start reboot.target
--job-mode=replace-irreversibly --no-block</command>, but also prints a wall message to all users. This
command is asynchronous; it will return after the reboot operation is enqueued, without waiting for it to
complete.</para>
<para>If combined with <option>--force</option>, shutdown of all running services is skipped, however all
processes are killed and all file systems are unmounted or mounted read-only, immediately followed by the
reboot. If <option>--force</option> is specified twice, the operation is immediately executed without
terminating any processes or unmounting any file systems. This may result in data loss. Note that when
<option>--force</option> is specified twice the reboot operation is executed by
<command>systemctl</command> itself, and the system manager is not contacted. This means the command should
succeed even when the system manager hangs or crashed.</para>
succeed even when the system manager has crashed.</para>
<para>If the optional argument
<replaceable>arg</replaceable> is given, it will be passed
as the optional argument to the
<citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>
system call. The value is architecture and firmware
specific. As an example, <literal>recovery</literal> might
be used to trigger system recovery, and
<literal>fota</literal> might be used to trigger a
<para>If the optional argument <replaceable>arg</replaceable> is given, it will be passed as the optional
argument to the <citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>
system call. The value is architecture and firmware specific. As an example, <literal>recovery</literal>
might be used to trigger system recovery, and <literal>fota</literal> might be used to trigger a
<quote>firmware over the air</quote> update.</para>
</listitem>
</varlistentry>
@ -1770,13 +1775,14 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
<term><command>kexec</command></term>
<listitem>
<para>Shut down and reboot the system via kexec. This is
mostly equivalent to <command>start kexec.target --job-mode=replace-irreversibly</command>,
but also prints a wall message to all users. If combined
with <option>--force</option>, shutdown of all running
services is skipped, however all processes are killed and
all file systems are unmounted or mounted read-only,
immediately followed by the reboot.</para>
<para>Shut down and reboot the system via <command>kexec</command>. This is equivalent to
<command>systemctl start kexec.target --job-mode=replace-irreversibly --no-block</command>. This command is
asynchronous; it will return after the reboot operation is enqueued, without waiting for it to
complete.</para>
<para>If combined with <option>--force</option>, shutdown of all running services is skipped, however all
processes are killed and all file systems are unmounted or mounted read-only, immediately followed by the
reboot.</para>
</listitem>
</varlistentry>
@ -1784,14 +1790,13 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
<term><command>exit <optional><replaceable>EXIT_CODE</replaceable></optional></command></term>
<listitem>
<para>Ask the systemd manager to quit. This is only
supported for user service managers (i.e. in conjunction
with the <option>--user</option> option) or in containers
and is equivalent to <command>poweroff</command> otherwise.</para>
<para>Ask the service manager to quit. This is only supported for user service managers (i.e. in
conjunction with the <option>--user</option> option) or in containers and is equivalent to
<command>poweroff</command> otherwise. This command is asynchronous; it will return after the exit
operation is enqueued, without waiting for it to complete.</para>
<para>The systemd manager can exit with a non-zero exit
code if the optional argument
<replaceable>EXIT_CODE</replaceable> is given.</para>
<para>The service manager will exit with the the specified exit code, if
<replaceable>EXIT_CODE</replaceable> is passed.</para>
</listitem>
</varlistentry>
@ -1815,9 +1820,9 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
<term><command>suspend</command></term>
<listitem>
<para>Suspend the system. This will trigger activation of
the special <filename>suspend.target</filename> target.
</para>
<para>Suspend the system. This will trigger activation of the special target unit
<filename>suspend.target</filename>. This command is asynchronous, and will return after the suspend
operation is successfully enqueued. It will not wait for the suspend/resume cycle to complete.</para>
</listitem>
</varlistentry>
@ -1825,9 +1830,9 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
<term><command>hibernate</command></term>
<listitem>
<para>Hibernate the system. This will trigger activation of
the special <filename>hibernate.target</filename> target.
</para>
<para>Hibernate the system. This will trigger activation of the special target unit
<filename>hibernate.target</filename>. This command is asynchronous, and will return after the hibernation
operation is successfully enqueued. It will not wait for the hibernate/thaw cycle to complete.</para>
</listitem>
</varlistentry>
@ -1835,9 +1840,9 @@ Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output err
<term><command>hybrid-sleep</command></term>
<listitem>
<para>Hibernate and suspend the system. This will trigger
activation of the special
<filename>hybrid-sleep.target</filename> target.</para>
<para>Hibernate and suspend the system. This will trigger activation of the special target unit
<filename>hybrid-sleep.target</filename>. This command is asynchronous, and will return after the hybrid
sleep operation is successfully enqueued. It will not wait for the sleep/wake-up cycle to complete.</para>
</listitem>
</varlistentry>
</variablelist>

View File

@ -101,6 +101,16 @@
<arg choice="plain">set-log-target</arg>
<arg choice="plain"><replaceable>TARGET</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">get-log-level</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">get-log-target</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
@ -187,6 +197,12 @@
<option>--log-target=</option>, described in
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>).</para>
<para><command>systemd-analyze get-log-level</command>
prints the current log level of the <command>systemd</command> daemon.</para>
<para><command>systemd-analyze get-log-target</command>
prints the current log target of the <command>systemd</command> daemon.</para>
<para><command>systemd-analyze syscall-filter <optional><replaceable>SET</replaceable></optional></command>
will list system calls contained in the specified system call set <replaceable>SET</replaceable>,
or all known sets if no sets are specified. Argument <replaceable>SET</replaceable> must include
@ -281,13 +297,23 @@
</varlistentry>
<varlistentry>
<term><option>--no-man</option></term>
<term><option>--man=no</option></term>
<listitem><para>Do not invoke man to verify the existence of
man pages listed in <varname>Documentation=</varname>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--generators</option></term>
<listitem><para>Invoke unit generators, see
<citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
Some generators require root privileges. When run under a
normal users, enabling generators will generally result in
some warnings.</para></listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="machine" />
@ -313,13 +339,13 @@
<literal>avahi-daemon</literal></title>
<programlisting>$ systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg > avahi.svg
$ eog avahi.svg</programlisting>
$ eog avahi.svg</programlisting>
</example>
<example>
<title>Plots the dependencies between all known target units</title>
<programlisting>systemd-analyze dot --to-pattern='*.target' --from-pattern='*.target' | dot -Tsvg > targets.svg
<programlisting>$ systemd-analyze dot --to-pattern='*.target' --from-pattern='*.target' | dot -Tsvg > targets.svg
$ eog targets.svg</programlisting>
</example>
</refsect1>

View File

@ -45,7 +45,7 @@
<refnamediv>
<refname>systemd-escape</refname>
<refpurpose>Escape strings for usage in system unit names</refpurpose>
<refpurpose>Escape strings for usage in systemd unit names</refpurpose>
</refnamediv>
<refsynopsisdiv>

View File

@ -55,12 +55,14 @@
<para><filename>systemd-getty-generator</filename> is a generator
that automatically instantiates
<filename>serial-getty@.service</filename> on the kernel console
<filename>/dev/console</filename> if that is not directed to the
virtual console subsystem. It will also instantiate
<filename>serial-getty@.service</filename> on the kernel
console(s), if they can function as ttys and are not provided by
the virtual console subsystem. It will also instantiate
<filename>serial-getty@.service</filename> instances for
virtualizer consoles, if execution in a virtualized environment is
detected. Finally, it will instantiate
detected. If execution in a container environment is detected, it
will instead enable <filename>console-getty.service</filename> for
<filename>/dev/console</filename>, and
<filename>container-getty@.service</filename> instances for
additional container pseudo TTYs as requested by the container
manager (see <ulink
@ -78,8 +80,8 @@
<para><filename>systemd-getty-generator</filename> implements
<citerefentry><refentrytitle>systemd.generator</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
<para>Further information about configuration of gettys you may
find in
<para>Further information about configuration of gettys can be
found in
<ulink url="http://0pointer.de/blog/projects/serial-console.html">systemd
for Administrators, Part XVI: Gettys on Serial Consoles (and
Elsewhere)</ulink>.</para>

View File

@ -70,7 +70,7 @@
<citerefentry
project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>),
the units this generator creates are overridden, but additional
automatic dependencies might be created.</para>
implicit dependencies might be created.</para>
<para>This generator will only look for root partitions on the
same physical disk the EFI System Partition (ESP) is located on.

View File

@ -106,6 +106,8 @@
<variablelist>
<varlistentry>
<term><arg choice="opt" rep="repeat">SOURCES</arg></term>
<listitem><para>When <option>-</option> is given as a
positional argument, events will be read from standard input.
Other positional arguments will be treated as filenames
@ -124,6 +126,20 @@
instance, e.g. http://some.host:19531/ or
https://some.host:19531/.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--getter='<replaceable>PROG</replaceable> <arg choice="opt" rep="repeat">OPTIONS</arg>'</option></term>
<listitem><para>Program to invoke to retrieve data. The journal
event stream must be generated on standard output.</para>
<para>Examples:</para>
<programlisting>--getter='curl "-HAccept: application/vnd.fdo.journal" https://some.host:19531/'</programlisting>
<programlisting>--getter='wget --header="Accept: application/vnd.fdo.journal" -O- https://some.host:19531/'</programlisting>
</listitem>
</varlistentry>
</variablelist>
<para>Passive sources can be specified in the following
@ -187,8 +203,7 @@
<title>Sinks</title>
<para>The location of the output journal can be specified
with <option>-o</option> or <option>--output=</option>. For "active"
sources, this option is required.
with <option>-o</option> or <option>--output=</option>.
</para>
<variablelist>
@ -225,8 +240,9 @@
escaped hostname of the source endpoint of the connection, or the
numerical address if the hostname cannot be determined.</para>
<para>In case of "active" sources, the output file name must
always be given explicitly.</para>
<para>In the case that "active" sources are given by the positional
arguments or <option>--getter=</option> option, the output file name
must always be given explicitly.</para>
</refsect1>
<refsect1>
@ -244,7 +260,8 @@
is used, based on the hostname of the other endpoint of a
connection.</para>
<para>In case of "active" sources, the output file name must
<para>In the case that "active" sources are given by the positional
arguments or <option>--getter=</option> option, the output file name must
always be given explicitly and only <constant>none</constant>
is allowed.</para></listitem>
</varlistentry>
@ -265,20 +282,6 @@
The default is <literal>no</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--getter=<replaceable>PROG --option1 --option2</replaceable></option></term>
<listitem><para>Program to invoke to retrieve data. The journal
event stream must be generated on standard output.</para>
<para>Examples:</para>
<programlisting>--getter='curl "-HAccept: application/vnd.fdo.journal" https://some.host:19531/'</programlisting>
<programlisting>--getter='wget --header="Accept: application/vnd.fdo.journal" -O- https://some.host:19531/'</programlisting>
</listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
@ -288,7 +291,7 @@
<title>Examples</title>
<para>Copy local journal events to a different journal directory:
<programlisting>
journalctl -o export | systemd-journal-remote -o /tmp/dir -
journalctl -o export | systemd-journal-remote -o /tmp/dir/foo.journal -
</programlisting>
</para>

View File

@ -70,19 +70,18 @@
<itemizedlist>
<listitem><para>Kernel log messages, via kmsg</para></listitem>
<listitem><para>Simple system log messages, via the libc
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
<listitem><para>Simple system log messages, via the <filename>libc</filename> <citerefentry
project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call</para></listitem>
<listitem><para>Structured system log messages via the native
Journal API, see
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>4</manvolnum></citerefentry></para></listitem>
<listitem><para>Standard output and standard error of system
services</para></listitem>
<listitem><para>Standard output and standard error of service units. For further details see
below.</para></listitem>
<listitem><para>Audit records, via the audit
subsystem</para></listitem>
<listitem><para>Audit records, originating from the kernel audit subsystem</para></listitem>
</itemizedlist>
<para>The daemon will implicitly collect numerous metadata fields
@ -111,6 +110,50 @@ systemd-tmpfiles --create --prefix /var/log/journal</programlisting>
for information about the configuration of this service.</para>
</refsect1>
<refsect1>
<title>Stream logging</title>
<para>The systemd service manager invokes all service processes with standard output and standard error connected
to the journal by default. This behaviour may be altered via the
<varname>StandardOutput=</varname>/<varname>StandardError=</varname> unit file settings, see
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details. The
journal converts the log byte stream received this way into individual log records, splitting the stream at newline
(<literal>\n</literal>, ASCII <constant>10</constant>) and <constant>NUL</constant> bytes.</para>
<para>If <filename>systemd-journald.service</filename> is stopped, the stream connections associated with all
services are terminated. Further writes to those streams by the service will result in <constant>EPIPE</constant>
errors. In order to react gracefully in this case it is recommended that programs logging to standard output/error
ignore such errors. If the the <constant>SIGPIPE</constant> UNIX signal handler is not blocked or turned off, such
write attempts will also result in such process signals being generated, see
<citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>. To mitigate this issue,
systemd service manager explicitly turns off the <constant>SIGPIPE</constant> signal for all invoked processes by
default (this may be changed for each unit individually via the <varname>IgnoreSIGPIPE=</varname> option, see
<citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
details). After the standard output/standard error streams have been terminated they may not be recovered until the
services they are associated with are restarted. Note that during normal operation,
<filename>systemd-journald.service</filename> stores copies of the file descriptors for those streams in the
service manager. If <filename>systemd-journald.service</filename> is restarted using <command>systemctl
restart</command> or equivalent operation instead of a pair of separate <command>systemctl stop</command> and
<command>systemctl start</command> commands (or equivalent operations), these stream connections are not terminated
and survive the restart. It is thus safe to restart <filename>systemd-journald.service</filename>, but stopping it
is not recommended.</para>
<para>Note that the log record metadata for records transferred via such standard output/error streams reflect the
metadata of the peer the stream was originally created for. If the stream connection is passed on to other
processes (such as further child processes forked off the main service process), the log records will not reflect
their metadata, but will continue to describe the original process. This is different from the other logging
transports listed above, which are inherently record based and where the metadata is always associated with the
individual record.</para>
<para>In addition to the the implicit standard output/error logging of services, stream logging is also available
via the <citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry> command
line tool.</para>
<para>Currently, the number of parallel log streams <filename>systemd-journald</filename> will accept is limited to
4096. When this limit is reached further log streams may be established but will receieve
<constant>EPIPE</constant> right from the beginning.</para>
</refsect1>
<refsect1>
<title>Signals</title>

View File

@ -63,13 +63,13 @@
<listitem><para>Keeping track of users and sessions, their processes and their idle state. This is implemented by
allocating a systemd slice unit for each user below <filename>user.slice</filename>, and a scope unit below it
for each concurrent session of a user. Also, a per-user service manager is started as system service instance of
<filename>user@.service</filename> for each user logged in.</para></listitem>
<filename>user@.service</filename> for each logged in user.</para></listitem>
<listitem><para>Generating and managing session IDs. If auditing is available and an audit session ID is set for
a session already, the session ID is initialized from it. Otherwise, an independent session counter is
<listitem><para>Generating and managing session IDs. If auditing is available and an audit session ID is already set for
a session, then this ID is reused as the session ID. Otherwise, an independent session counter is
used.</para></listitem>
<listitem><para>Providing PolicyKit-based access for users to
<listitem><para>Providing PolicyKit-based access for users for
operations such as system shutdown or sleep</para></listitem>
<listitem><para>Implementing a shutdown/sleep inhibition logic

View File

@ -101,7 +101,7 @@
systems that may be mounted with this command.</para>
<para><command>systemd-umount</command> can be used to unmount a mount or automount point. It is the same
as <command>systemd-mount</command> <option>--unmount</option>.</para>
as <command>systemd-mount</command> <option>--umount</option>.</para>
</refsect1>
<refsect1>

View File

@ -64,13 +64,30 @@
networks, see
<citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
<para>Network configurations applied before networkd is started
are not removed, and static configuration applied by networkd is
not removed when networkd exits. Dynamic configuration applied by
networkd may also optionally be left in place on shutdown. This
ensures restarting networkd does not cut the network connection,
and, in particular, that it is safe to transition between the
initrd and the real root, and back.</para>
<para><command>systemd-networkd</command> will create network devices based
on the configuration in
<citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>
files, respecting the [Match] sections in those files.</para>
<para><command>systemd-networkd</command> will manage network addresses and
routes for any link for which it finds a <filename>.network</filename> file
with an appropriate [Match] section, see
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
For those links, it will flush existing network addresses and routes when
bringing up the device. Any links not matched by one of the
<filename>.network</filename> files will be ignored. It is also possible to
explicitly tell <filename>systemd-networkd</filename> to ignore a link by
using <varname>Unmanaged=yes</varname> option, see
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
<para>When <filename>systemd-networkd</filename> exits, it generally leaves
existing network devices and configuration intact. This makes it possible to
transition from the initrams and to restart the service without breaking
connectivity. This also means that when configuration is updated and
<filename>systemd-networkd</filename> is restarted, netdev interfaces for
which configuration was removed will not be dropped, and may need to be
cleaned up manually.</para>
</refsect1>
<refsect1><title>Configuration Files</title>

View File

@ -713,6 +713,23 @@
above).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--system-call-filter=</option></term>
<listitem><para>Alter the system call filter applied to containers. Takes a space-separated list of system call
names or group names (the latter prefixed with <literal>@</literal>, as listed by the
<command>syscall-filter</command> command of <citerefentry
project='man-pages'><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>). Passed
system calls will be permitted. The list may optionally be prefixed by <literal>~</literal>, in which case all
listed system calls are prohibited. If this command line option is used multiple times the configured lists are
combined. If both a positive and a negative list (that is one system call list without and one with the
<literal>~</literal> prefix) are configured, the negative list takes precedence over the positive list. Note
that <command>systemd-nspawn</command> always implements a system call whitelist (as opposed to a blacklist),
and this command line option hence adds or removes entries from the default whitelist, depending on the
<literal>~</literal> prefix. Note that the applied system call filter is also altered implicitly if additional
capabilities are passed using the <command>--capabilities=</command>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--kill-signal=</option></term>

View File

@ -48,7 +48,7 @@
<refsynopsisdiv>
<para><filename>systemd-random-seed.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-random-seed</filename></para>
<para><filename>/usr/lib/systemd/random-seed</filename></para>
</refsynopsisdiv>
<refsect1>

View File

@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="systemd-resolve" conditional='ENABLE_RESOLVED'
<refentry id="systemd-resolve" conditional='ENABLE_RESOLVE'
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
@ -299,7 +299,18 @@
<varlistentry>
<term><option>--flush-caches</option></term>
<listitem><para>Flushes all DNS resource record caches the service maintains locally.</para></listitem>
<listitem><para>Flushes all DNS resource record caches the service maintains locally. This is mostly equivalent
to sending the <constant>SIGUSR2</constant> to the <command>systemd-resolved</command>
service.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--reset-server-features</option></term>
<listitem><para>Flushes all feature level information the resolver learnt about specific servers, and ensures
that the server feature probing logic is started from the beginning with the next look-up request. This is
mostly equivalent to sending the <constant>SIGRTMIN+1</constant> to the <command>systemd-resolved</command>
service.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -21,7 +21,7 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="systemd-resolved.service" conditional='ENABLE_RESOLVED'>
<refentry id="systemd-resolved.service" conditional='ENABLE_RESOLVE'>
<refentryinfo>
<title>systemd-resolved.service</title>
@ -138,7 +138,7 @@
LLMNR.</para></listitem>
<listitem><para>Multi-label names are routed to all local
interfaces that have a DNS sever configured, plus the globally
interfaces that have a DNS server configured, plus the globally
configured DNS server if there is one. Address lookups from the
link-local address range are never routed to
DNS.</para></listitem>
@ -202,19 +202,38 @@
<varlistentry>
<term><constant>SIGUSR1</constant></term>
<listitem><para>Upon reception of the SIGUSR1 process signal <command>systemd-resolved</command> will dump the
contents of all DNS resource record caches it maintains into the system logs.</para></listitem>
<listitem><para>Upon reception of the <constant>SIGUSR1</constant> process signal
<command>systemd-resolved</command> will dump the contents of all DNS resource record caches it maintains, as
well as all feature level information it learnt about configured DNS servers into the system
logs.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>SIGUSR2</constant></term>
<listitem><para>Upon reception of the SIGUSR2 process signal <command>systemd-resolved</command> will flush all
caches it maintains. Note that it should normally not be necessary to request this explicitly except for
debugging purposes as <command>systemd-resolved</command> flushes the caches automatically anyway any time
the host's network configuration changes.</para></listitem>
<listitem><para>Upon reception of the <constant>SIGUSR2</constant> process signal
<command>systemd-resolved</command> will flush all caches it maintains. Note that it should normally not be
necessary to request this explicitly except for debugging purposes as <command>systemd-resolved</command>
flushes the caches automatically anyway any time the host's network configuration changes. Sending this signal
to <command>systemd-resolved</command> is equivalent to the <command>systemd-resolve --flush-caches</command>
command, however the latter is recommended since it operates in a synchronous way.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>SIGRTMIN+1</constant></term>
<listitem><para>Upon reception of the <constant>SIGRTMIN+1</constant> process signal
<command>systemd-resolved</command> will forget everything it learnt about the configured DNS
servers. Specifically any information about server feature support is flushed out, and the server feature
probing logic is restarted on the next request, starting with the most fully featured level. Note that it
should normally not be necessary to request this explicitly except for debugging purposes as
<command>systemd-resolved</command> automatically forgets learnt information any time the DNS server
configuration changes. Sending this signal to <command>systemd-resolved</command> is equivalent to the
<command>systemd-resolve --reset-server-features</command> command, however the latter is recommended since it
operates in a synchronous way.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>

View File

@ -219,14 +219,32 @@
<term><option>--pty</option></term>
<term><option>-t</option></term>
<listitem><para>When invoking the command, the transient service connects its standard input and output to the
terminal <command>systemd-run</command> is invoked on, via a pseudo TTY device. This allows running binaries
that expect interactive user input as services, such as interactive command shells.</para>
<listitem><para>When invoking the command, the transient service connects its standard input, output and error
to the terminal <command>systemd-run</command> is invoked on, via a pseudo TTY device. This allows running
programs that expect interactive user input/output as services, such as interactive command shells.</para>
<para>Note that
<citerefentry><refentrytitle>machinectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<command>shell</command> command is usually a better alternative for requesting a new, interactive login
session on the local host or a local container.</para></listitem>
session on the local host or a local container.</para>
<para>See below for details on how this switch combines with <option>--pipe</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--pipe</option></term>
<term><option>-P</option></term>
<listitem><para>If specified, standard input, output, and error of the transient service are inherited from the
<command>systemd-run</command> command itself. This allows <command>systemd-run</command>
to be used within shell pipelines.
Note that this mode is not suitable for interactive command shells and similar, as the
service process will not become a TTY controller when invoked on a terminal. Use <option>--pty</option> instead
in that case.</para>
<para>When both <option>--pipe</option> and <option>--pty</option> are used in combination the more appropriate
option is automatically determined and used. Specifically, when invoked with standard input, output and error
connected to a TTY <option>--pty</option> is used, and otherwise <option>--pipe</option>.</para></listitem>
</varlistentry>
<varlistentry>

View File

@ -118,6 +118,8 @@ WantedBy=sockets.target]]></programlisting>
<programlisting><![CDATA[[Unit]
Requires=nginx.service
After=nginx.service
Requires=proxy-to-nginx.socket
After=proxy-to-nginx.service
[Service]
ExecStart=/usr/lib/systemd/systemd-socket-proxyd /tmp/nginx.sock
@ -159,6 +161,8 @@ WantedBy=sockets.target]]></programlisting>
<programlisting><![CDATA[[Unit]
Requires=nginx.service
After=nginx.service
Requires=proxy-to-nginx.service
After=proxy-to-nginx.service
JoinsNamespaceOf=nginx.service
[Service]

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