Compare commits
3 commits
progress-l
...
upstream
| Author | SHA1 | Date | |
|---|---|---|---|
|
2f69699033 |
|||
|
3b4816665e |
|||
|
8bfb35e387 |
680 changed files with 171581 additions and 135892 deletions
|
|
@ -20,8 +20,7 @@
|
|||
(nxml-mode . ((nxml-child-indent . 2)
|
||||
(fill-column . 109)))
|
||||
(meson-mode . ((meson-indent-basic . 8)))
|
||||
(sh-mode . ((sh-basic-offset . 4)
|
||||
(sh-indentation . 4)))
|
||||
(sh-mode . ((sh-indentation . 4)))
|
||||
(awk-mode . ((c-basic-offset . 8)))
|
||||
(nil . ((indent-tabs-mode . nil)
|
||||
(tab-width . 8)
|
||||
|
|
|
|||
6
.github/dependabot.yml
vendored
6
.github/dependabot.yml
vendored
|
|
@ -6,14 +6,20 @@ updates:
|
|||
directory: "/"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
cooldown:
|
||||
default-days: 7
|
||||
open-pull-requests-limit: 2
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/.github/workflows"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
cooldown:
|
||||
default-days: 7
|
||||
open-pull-requests-limit: 2
|
||||
- package-ecosystem: "docker"
|
||||
directory: "/.clusterfuzzlite"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
cooldown:
|
||||
default-days: 7
|
||||
open-pull-requests-limit: 2
|
||||
|
|
|
|||
2
.github/labeler.yml
vendored
2
.github/labeler.yml
vendored
|
|
@ -195,7 +195,7 @@ run:
|
|||
- any-glob-to-any-file: ['src/run/*', 'man/systemd-run*']
|
||||
sd-boot/sd-stub/bootctl:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: ['src/boot/**/*', 'man/bootctl*', 'man/systemd-boot.xml']
|
||||
- any-glob-to-any-file: ['src/boot/**/*', 'src/bootctl/*', 'man/bootctl*', 'man/systemd-boot.xml']
|
||||
sd-bus:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: '**/sd-bus*/**'
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ PACKAGES=(
|
|||
isc-dhcp-client
|
||||
itstool
|
||||
kbd
|
||||
libarchive-dev
|
||||
libblkid-dev
|
||||
libbpf-dev
|
||||
libcap-dev
|
||||
|
|
@ -43,10 +44,10 @@ PACKAGES=(
|
|||
libqrencode-dev
|
||||
libssl-dev
|
||||
libtss2-dev
|
||||
libxen-dev
|
||||
libxkbcommon-dev
|
||||
libxtables-dev
|
||||
libzstd-dev
|
||||
linux-tools-generic
|
||||
mold
|
||||
mount
|
||||
net-tools
|
||||
|
|
@ -70,6 +71,10 @@ LINKER="${LINKER:?}"
|
|||
CRYPTOLIB="${CRYPTOLIB:?}"
|
||||
RELEASE="$(lsb_release -cs)"
|
||||
|
||||
if [ "$(uname -m)" = "aarch64" ] || [ "$(uname -m)" = "x86_64" ]; then
|
||||
PACKAGES+=(libxen-dev)
|
||||
fi
|
||||
|
||||
# Note: As we use postfixed clang/gcc binaries, we need to override $AR
|
||||
# as well, otherwise meson falls back to ar from binutils which
|
||||
# doesn't work with LTO
|
||||
|
|
@ -96,7 +101,7 @@ if [[ "$COMPILER" == clang ]]; then
|
|||
sudo tee /etc/apt/sources.list.d/llvm-toolchain.list
|
||||
fi
|
||||
|
||||
PACKAGES+=("clang-$COMPILER_VERSION" "lldb-$COMPILER_VERSION" "python3-lldb-$COMPILER_VERSION" "lld-$COMPILER_VERSION" "clangd-$COMPILER_VERSION")
|
||||
PACKAGES+=("clang-$COMPILER_VERSION" "lldb-$COMPILER_VERSION" "python3-lldb-$COMPILER_VERSION" "lld-$COMPILER_VERSION" "clangd-$COMPILER_VERSION" "llvm-$COMPILER_VERSION")
|
||||
elif [[ "$COMPILER" == gcc ]]; then
|
||||
CC="gcc-$COMPILER_VERSION"
|
||||
CXX="g++-$COMPILER_VERSION"
|
||||
|
|
@ -110,17 +115,26 @@ elif [[ "$COMPILER" == gcc ]]; then
|
|||
sudo add-apt-repository -y --no-update ppa:ubuntu-toolchain-r/test
|
||||
fi
|
||||
|
||||
PACKAGES+=("gcc-$COMPILER_VERSION" "gcc-$COMPILER_VERSION-multilib")
|
||||
PACKAGES+=("gcc-$COMPILER_VERSION")
|
||||
if [ "$(uname -m)" = "x86_64" ]; then
|
||||
# Only needed for ia32 EFI builds
|
||||
PACKAGES+=("gcc-$COMPILER_VERSION-multilib")
|
||||
fi
|
||||
else
|
||||
fatal "Unknown compiler: $COMPILER"
|
||||
fi
|
||||
|
||||
# This is added by default, and it is often broken, but we don't need anything from it
|
||||
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.{list,sources}
|
||||
# add-apt-repository --enable-source does not work on deb822 style sources.
|
||||
for f in /etc/apt/sources.list.d/*.sources; do
|
||||
sudo sed -i "s/Types: deb/Types: deb deb-src/g" "$f"
|
||||
done
|
||||
if grep -q 'VERSION_CODENAME=jammy' /usr/lib/os-release; then
|
||||
sudo add-apt-repository -y --no-update ppa:upstream-systemd-ci/systemd-ci
|
||||
sudo add-apt-repository -y --no-update --enable-source
|
||||
else
|
||||
# add-apt-repository --enable-source does not work on deb822 style sources.
|
||||
for f in /etc/apt/sources.list.d/*.sources; do
|
||||
sudo sed -i "s/Types: deb/Types: deb deb-src/g" "$f"
|
||||
done
|
||||
fi
|
||||
sudo apt-get -y update
|
||||
sudo apt-get -y build-dep systemd
|
||||
sudo apt-get -y install "${PACKAGES[@]}"
|
||||
|
|
@ -131,6 +145,17 @@ sudo apt-get -y install "${PACKAGES[@]}"
|
|||
pip3 install --user -r .github/workflows/requirements.txt --require-hashes --break-system-packages
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
# TODO: drop after we switch to ubuntu 26.04
|
||||
bpftool_dir=$(dirname "$(find /usr/lib/linux-tools/ /usr/lib/linux-tools-* -name 'bpftool' -perm /u=x 2>/dev/null | sort -r | head -n1)")
|
||||
if [ -n "$bpftool_dir" ]; then
|
||||
export PATH="$bpftool_dir:$PATH"
|
||||
fi
|
||||
|
||||
if [[ -n "$CUSTOM_PYTHON" ]]; then
|
||||
# If CUSTOM_PYTHON is set we need to pull jinja2 from pip, as a local interpreter is used
|
||||
pip3 install --user --break-system-packages jinja2
|
||||
fi
|
||||
|
||||
$CC --version
|
||||
meson --version
|
||||
ninja --version
|
||||
|
|
@ -17,22 +17,35 @@ permissions:
|
|||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-24.04
|
||||
runs-on: ${{ matrix.runner }}
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ toJSON(matrix.env) }}-${{ github.ref }}
|
||||
group: ${{ github.workflow }}-${{ toJSON(matrix.env) }}-${{ github.ref }}-${{ matrix.runner }}-${{ matrix.python-version }}
|
||||
cancel-in-progress: true
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
runner: [ ubuntu-24.04 ]
|
||||
python-version: [ '' ]
|
||||
env:
|
||||
- { COMPILER: "gcc", COMPILER_VERSION: "11", LINKER: "bfd", CRYPTOLIB: "gcrypt" }
|
||||
- { COMPILER: "gcc", COMPILER_VERSION: "13", LINKER: "mold", CRYPTOLIB: "openssl" }
|
||||
- { COMPILER: "clang", COMPILER_VERSION: "14", LINKER: "mold", CRYPTOLIB: "gcrypt" }
|
||||
- { COMPILER: "clang", COMPILER_VERSION: "16", LINKER: "bfd", CRYPTOLIB: "openssl" }
|
||||
- { COMPILER: "clang", COMPILER_VERSION: "18", LINKER: "lld", CRYPTOLIB: "auto" }
|
||||
include:
|
||||
# Do one run with the oldest supported python version to ensure there are no regressions
|
||||
# It is only available on Jammy, which is useful as it will also provide a build check for
|
||||
# older glibc
|
||||
- env: { COMPILER: "gcc", COMPILER_VERSION: "12", LINKER: "bfd", CRYPTOLIB: "openssl", CUSTOM_PYTHON: "1" }
|
||||
runner: [ ubuntu-22.04 ]
|
||||
python-version: '3.7'
|
||||
env: ${{ matrix.env }}
|
||||
steps:
|
||||
- name: Repository checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
- name: Setup python
|
||||
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Build check
|
||||
run: .github/workflows/build_test.sh
|
||||
run: .github/workflows/build-test.sh
|
||||
9
.github/workflows/codeql.yml
vendored
9
.github/workflows/codeql.yml
vendored
|
|
@ -50,7 +50,14 @@ jobs:
|
|||
languages: ${{ matrix.language }}
|
||||
config-file: ./.github/codeql-config.yml
|
||||
|
||||
- run: sudo -E .github/workflows/unit_tests.sh SETUP
|
||||
- run: |
|
||||
sudo -E .github/workflows/unit-tests.sh SETUP
|
||||
# TODO: drop after we switch to ubuntu 26.04
|
||||
bpftool_binary=$(find /usr/lib/linux-tools/ /usr/lib/linux-tools-* -name 'bpftool' -perm /u=x 2>/dev/null | sort -r | head -n1)
|
||||
if [ -n "$bpftool_binary" ]; then
|
||||
sudo rm -f /usr/{bin,sbin}/bpftool
|
||||
sudo ln -s "$bpftool_binary" /usr/bin/
|
||||
fi
|
||||
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@b56ba49b26e50535fa1e7f7db0f4f7b4bf65d80d
|
||||
|
|
|
|||
7
.github/workflows/coverage.yml
vendored
7
.github/workflows/coverage.yml
vendored
|
|
@ -24,7 +24,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
- uses: systemd/mkosi@5e739ef1ed02a4f3b6ae64e50a8ee186cbcb21c2
|
||||
- uses: systemd/mkosi@e3642f81d3a7f8f9310c0c734b2ba9dd41e50e14
|
||||
|
||||
# Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space
|
||||
# immediately, we remove the files in the background. However, we first move them to a different location
|
||||
|
|
@ -49,9 +49,6 @@ jobs:
|
|||
|
||||
- name: Configure
|
||||
run: |
|
||||
# XXX: drop after the HyperV bug that breaks secure boot KVM guests is solved
|
||||
sed -i "s/'firmware'\s*:\s*'auto'/'firmware' : 'uefi'/g" test/*/meson.build
|
||||
|
||||
tee mkosi/mkosi.local.conf <<EOF
|
||||
[Distribution]
|
||||
Distribution=arch
|
||||
|
|
@ -116,6 +113,8 @@ jobs:
|
|||
# used in integration-test-wrapper.py to construct the `gh` command line to download the journals
|
||||
# of failed tests.
|
||||
sudo --preserve-env mkosi sandbox -- \
|
||||
env \
|
||||
TEST_RUNNER=ubuntu-24.04 \
|
||||
meson test \
|
||||
-C build \
|
||||
--no-rebuild \
|
||||
|
|
|
|||
9
.github/workflows/coverity.yml
vendored
9
.github/workflows/coverity.yml
vendored
|
|
@ -25,6 +25,13 @@ jobs:
|
|||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
# Reuse the setup phase of the unit test script to avoid code duplication
|
||||
- name: Install build dependencies
|
||||
run: sudo -E .github/workflows/unit_tests.sh SETUP
|
||||
run: |
|
||||
sudo -E .github/workflows/unit-tests.sh SETUP
|
||||
# TODO: drop after we switch to ubuntu 26.04
|
||||
bpftool_binary=$(find /usr/lib/linux-tools/ /usr/lib/linux-tools-* -name 'bpftool' -perm /u=x 2>/dev/null | sort -r | head -n1)
|
||||
if [ -n "$bpftool_binary" ]; then
|
||||
sudo rm -f /usr/{bin,sbin}/bpftool
|
||||
sudo ln -s "$bpftool_binary" /usr/bin/
|
||||
fi
|
||||
- name: Build & upload the results
|
||||
run: tools/coverity.sh
|
||||
|
|
|
|||
2
.github/workflows/labeler.yml
vendored
2
.github/workflows/labeler.yml
vendored
|
|
@ -34,7 +34,7 @@ jobs:
|
|||
if: github.event_name == 'pull_request'
|
||||
|
||||
- name: Label PR based on policy in labeler.yml
|
||||
uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9
|
||||
uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b
|
||||
if: startsWith(github.event_name, 'pull_request') && github.base_ref == 'main' && github.event.action != 'closed'
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
|
|
|||
12
.github/workflows/linter.yml
vendored
12
.github/workflows/linter.yml
vendored
|
|
@ -36,7 +36,7 @@ jobs:
|
|||
VALIDATE_ALL_CODEBASE: false
|
||||
VALIDATE_GITHUB_ACTIONS: true
|
||||
|
||||
- uses: systemd/mkosi@5e739ef1ed02a4f3b6ae64e50a8ee186cbcb21c2
|
||||
- uses: systemd/mkosi@e3642f81d3a7f8f9310c0c734b2ba9dd41e50e14
|
||||
|
||||
- name: Check that tabs are not used in Python code
|
||||
run: sh -c '! git grep -P "\\t" -- src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py'
|
||||
|
|
@ -56,11 +56,6 @@ jobs:
|
|||
mkosi sandbox -- mypy --version
|
||||
mkosi sandbox -- mypy src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py
|
||||
|
||||
- name: Run ruff check
|
||||
run: |
|
||||
mkosi sandbox -- ruff --version
|
||||
mkosi sandbox -- ruff check src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py
|
||||
|
||||
- name: Run ruff format
|
||||
run: |
|
||||
mkosi sandbox -- ruff --version
|
||||
|
|
@ -69,3 +64,8 @@ jobs:
|
|||
echo "Please run 'ruff format' on the above files or apply the diffs below manually"
|
||||
mkosi sandbox -- ruff format --check --quiet --diff src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py
|
||||
fi
|
||||
|
||||
- name: Run ruff check
|
||||
run: |
|
||||
mkosi sandbox -- ruff --version
|
||||
mkosi sandbox -- ruff check src/test/generate-sym-test.py src/ukify/ukify.py test/integration-tests/integration-test-wrapper.py
|
||||
|
|
|
|||
25
.github/workflows/mkosi.yml
vendored
25
.github/workflows/mkosi.yml
vendored
|
|
@ -61,6 +61,17 @@ jobs:
|
|||
cflags: "-O2 -D_FORTIFY_SOURCE=3"
|
||||
relabel: no
|
||||
vm: 1
|
||||
- distro: debian
|
||||
release: stable
|
||||
runner: ubuntu-24.04
|
||||
sanitizers: ""
|
||||
llvm: 0
|
||||
cflags: "-Og"
|
||||
relabel: no
|
||||
vm: 0
|
||||
no_qemu: 0
|
||||
no_kvm: 0
|
||||
shim: 0
|
||||
- distro: debian
|
||||
release: testing
|
||||
sanitizers: ""
|
||||
|
|
@ -76,7 +87,7 @@ jobs:
|
|||
relabel: no
|
||||
vm: 0
|
||||
- distro: fedora
|
||||
release: "42"
|
||||
release: "43"
|
||||
sanitizers: address,undefined
|
||||
llvm: 1
|
||||
cflags: "-Og"
|
||||
|
|
@ -94,7 +105,7 @@ jobs:
|
|||
sanitizers: ""
|
||||
llvm: 0
|
||||
cflags: "-Og"
|
||||
relabel: no
|
||||
relabel: yes
|
||||
vm: 0
|
||||
- distro: centos
|
||||
release: "9"
|
||||
|
|
@ -113,7 +124,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
||||
- uses: systemd/mkosi@5e739ef1ed02a4f3b6ae64e50a8ee186cbcb21c2
|
||||
- uses: systemd/mkosi@e3642f81d3a7f8f9310c0c734b2ba9dd41e50e14
|
||||
|
||||
# Freeing up disk space with rm -rf can take multiple minutes. Since we don't need the extra free space
|
||||
# immediately, we remove the files in the background. However, we first move them to a different location
|
||||
|
|
@ -128,14 +139,14 @@ jobs:
|
|||
run: |
|
||||
truncate --size=100G btrfs.raw
|
||||
mkfs.btrfs btrfs.raw
|
||||
sudo mkdir /mnt/mkosi
|
||||
sudo mkdir -p /mnt/mkosi
|
||||
LOOP="$(sudo losetup --find --show --direct-io=on btrfs.raw)"
|
||||
rm btrfs.raw
|
||||
rm -f btrfs.raw
|
||||
sudo mount "$LOOP" /mnt/mkosi --options compress=zstd:1,user_subvol_rm_allowed,noatime,discard=async,space_cache=v2
|
||||
sudo chown "$(id -u):$(id -g)" /mnt/mkosi
|
||||
mkdir /mnt/mkosi/tmp
|
||||
mkdir -p /mnt/mkosi/tmp
|
||||
echo "TMPDIR=/mnt/mkosi/tmp" >>"$GITHUB_ENV"
|
||||
ln -s /mnt/mkosi/build build
|
||||
ln -sf /mnt/mkosi/build build
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
|
|
|
|||
|
|
@ -18,13 +18,13 @@ ADDITIONAL_DEPS=(
|
|||
libtss2-dev
|
||||
libxkbcommon-dev
|
||||
libzstd-dev
|
||||
linux-tools-generic
|
||||
python3-libevdev
|
||||
python3-pefile
|
||||
python3-pip
|
||||
python3-pyelftools
|
||||
python3-pyparsing
|
||||
python3-pytest
|
||||
rpm
|
||||
systemd-boot-efi
|
||||
zstd
|
||||
)
|
||||
|
||||
|
|
@ -43,6 +43,11 @@ set -ex
|
|||
|
||||
MESON_ARGS=(-Dcryptolib=${CRYPTOLIB:-auto})
|
||||
|
||||
if [ "$(uname -m)" = "aarch64" ] || [ "$(uname -m)" = "x86_64" ]; then
|
||||
ADDITIONAL_DEPS+=(python3-pefile)
|
||||
ADDITIONAL_DEPS+=(systemd-boot-efi)
|
||||
fi
|
||||
|
||||
# (Re)set the current oom-{score-}adj. For some reason root on GH actions is able to _decrease_
|
||||
# its oom-score even after dropping all capabilities (including CAP_SYS_RESOURCE), until the
|
||||
# score is explicitly changed after sudo. No idea what's going on, but it breaks
|
||||
|
|
@ -70,6 +75,12 @@ for phase in "${PHASES[@]}"; do
|
|||
capsh --drop=all -- -c "stat $PWD/meson.build"
|
||||
;;
|
||||
RUN|RUN_GCC|RUN_CLANG|RUN_CLANG_RELEASE)
|
||||
# TODO: drop after we switch to ubuntu 26.04
|
||||
bpftool_dir=$(dirname "$(find /usr/lib/linux-tools/ /usr/lib/linux-tools-* -name 'bpftool' -perm /u=x 2>/dev/null | sort -r | head -n1)")
|
||||
if [ -n "$bpftool_dir" ]; then
|
||||
export PATH="$bpftool_dir:$PATH"
|
||||
fi
|
||||
|
||||
if [[ "$phase" =~ ^RUN_CLANG ]]; then
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
|
|
@ -94,6 +105,12 @@ for phase in "${PHASES[@]}"; do
|
|||
TZ=GMT+12 meson test -C build --print-errorlogs
|
||||
;;
|
||||
RUN_ASAN_UBSAN|RUN_GCC_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN_NO_DEPS)
|
||||
# TODO: drop after we switch to ubuntu 26.04
|
||||
bpftool_dir=$(dirname "$(find /usr/lib/linux-tools/ /usr/lib/linux-tools-* -name 'bpftool' -perm /u=x 2>/dev/null | sort -r | head -n1)")
|
||||
if [ -n "$bpftool_dir" ]; then
|
||||
export PATH="$bpftool_dir:$PATH"
|
||||
fi
|
||||
|
||||
MESON_ARGS=(--optimization=1)
|
||||
|
||||
if [[ "$phase" =~ ^RUN_CLANG_ASAN_UBSAN ]]; then
|
||||
|
|
@ -38,8 +38,8 @@ jobs:
|
|||
sudo sed -i '/^XDG_/d' /etc/environment
|
||||
# Pass only specific env variables through sudo, to avoid having
|
||||
# the already existing XDG_* stuff on the "other side"
|
||||
sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit_tests.sh SETUP
|
||||
sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit-tests.sh SETUP
|
||||
- name: Build & test
|
||||
run: sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit_tests.sh RUN_${{ matrix.run_phase }}
|
||||
run: sudo --preserve-env=CRYPTOLIB,GITHUB_ACTIONS,CI .github/workflows/unit-tests.sh RUN_${{ matrix.run_phase }}
|
||||
env:
|
||||
CRYPTOLIB: ${{ matrix.cryptolib }}
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
|
|
@ -23,11 +23,13 @@ __pycache__/
|
|||
/ID
|
||||
/build*
|
||||
/install-tree
|
||||
/mkosi/mkosi.key
|
||||
/mkosi/mkosi.crt
|
||||
/mkosi/mkosi.key
|
||||
/mkosi/mkosi.local.conf
|
||||
/mkosi/mkosi.tools
|
||||
/mkosi/mkosi.tools.manifest
|
||||
/mkosi.tools/
|
||||
/mkosi.tools.manifest
|
||||
/mkosi/mkosi.local.conf
|
||||
/tags
|
||||
.dir-locals-2.el
|
||||
.vscode/
|
||||
|
|
|
|||
5
.mailmap
5
.mailmap
|
|
@ -35,6 +35,9 @@ Daniel Stekloff <dsteklof@us.ibm.com>
|
|||
Daniel Șerbănescu <dasj19@users.noreply.github.com>
|
||||
Dann Frazier <dann.frazier@canonical.com>
|
||||
Dave Reisner <dreisner@archlinux.org> <d@falconindy.com>
|
||||
David Rheinsberg <david@readahead.eu>
|
||||
David Rheinsberg <dh.herrmann@gmail.com>
|
||||
David Rheinsberg <dh.herrmann@googlemail.com>
|
||||
David Santamaría Rogado <howl.nsp@gmail.com>
|
||||
David Zeuthen <david@fubar.dk>
|
||||
David Zeuthen <david@fubar.dk> <davidz@redhat.com>
|
||||
|
|
@ -90,7 +93,9 @@ José Bollo <jose.bollo@iot.bzh> <jobol@nonadev.net>
|
|||
Jun Bo Bi <jambonmcyeah@gmail.com>
|
||||
Justin Capella <justincapella@gmail.com> <b1tninja@users.noreply.github.com>
|
||||
Jérémy Rosen <jeremy.rosen@enst-bretagne.fr>
|
||||
Jörg Behrmann <behrmann@physik.fu-berlin.de>
|
||||
Jürg Billeter <j@bitron.ch>
|
||||
Kai Lüke <kailuke@microsoft.com>
|
||||
Karl Kraus <karl.kraus@tum.de> <laqueray@gmail.com>
|
||||
Kay Sievers <kay@vrfy.org>
|
||||
Kay Sievers <kay@vrfy.org> <kay.sievers@suse.de>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ name: Debian autopkgtest (LXC)
|
|||
agent:
|
||||
machine:
|
||||
type: e1-standard-2
|
||||
os_image: ubuntu2004
|
||||
os_image: ubuntu2404
|
||||
|
||||
# Cancel any running or queued job for the same ref
|
||||
auto_cancel:
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
|
@ -305,7 +305,7 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
|
@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
|
|||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ GNU LIBRARY GENERAL PUBLIC LICENSE
|
|||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
|
||||
|
||||
|
|
@ -158,7 +158,7 @@ To apply these terms, attach the following notices to the library. It is safest
|
|||
|
||||
This library 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 Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
|
|
|
|||
|
|
@ -70,8 +70,8 @@ The following exceptions apply:
|
|||
- src/fundamental/sha1-fundamental.c
|
||||
- src/fundamental/sha1-fundamental.h
|
||||
* the following files are licensed under **BSD-3-Clause** license:
|
||||
- src/boot/efi/chid.c
|
||||
- src/boot/efi/chid.h
|
||||
- src/boot/chid.c
|
||||
- src/boot/chid.h
|
||||
* Heebo fonts under docs/fonts/ are licensed under the **SIL Open Font License 1.1**,
|
||||
* any files under test/ without an explicit license we assume non-copyrightable
|
||||
(eg: computer-generated fuzzer data)
|
||||
|
|
|
|||
2
NEWS
2
NEWS
|
|
@ -2449,7 +2449,7 @@ CHANGES WITH 255:
|
|||
* A new component "systemd-storagetm" has been added, which exposes all
|
||||
local block devices as NVMe-TCP devices, fully automatically. It's
|
||||
hooked into a new target unit storage-target-mode.target that is
|
||||
suppsoed to be booted into via
|
||||
supposed to be booted into via
|
||||
rd.systemd.unit=storage-target-mode.target on the kernel command
|
||||
line. This is intended to be used for installers and debugging to
|
||||
quickly get access to the local disk. It's inspired by MacOS "target
|
||||
|
|
|
|||
5
README
5
README
|
|
@ -97,7 +97,8 @@ REQUIREMENTS:
|
|||
CONFIG_SECCOMP
|
||||
CONFIG_SECCOMP_FILTER (required for seccomp support)
|
||||
CONFIG_KCMP (for the kcmp() syscall, used to be under
|
||||
CONFIG_CHECKPOINT_RESTORE before ~5.12)
|
||||
CONFIG_CHECKPOINT_RESTORE before ~5.12;
|
||||
not needed after 6.10)
|
||||
CONFIG_NET_SCHED
|
||||
CONFIG_NET_SCH_FQ_CODEL
|
||||
|
||||
|
|
@ -165,7 +166,7 @@ REQUIREMENTS:
|
|||
This is shipped by default, see modprobe.d/systemd.conf.
|
||||
|
||||
Required for systemd-nspawn:
|
||||
CONFIG_DEVPTS_MULTIPLE_INSTANCES or Linux kernel >= 4.7
|
||||
CONFIG_DEVPTS_MULTIPLE_INSTANCES (removed and unneeded since 4.7)
|
||||
|
||||
Required for systemd-oomd:
|
||||
CONFIG_PSI
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ support_sed = 's~%SUPPORT_URL%~@0@~'.format(support_url)
|
|||
|
||||
foreach file : in_files
|
||||
catalogs += custom_target(
|
||||
file,
|
||||
input : file + '.in',
|
||||
output: file,
|
||||
command : [sed, support_sed, '@INPUT@'],
|
||||
|
|
|
|||
|
|
@ -7,20 +7,30 @@ SPDX-License-Identifier: LGPL-2.1-or-later
|
|||
|
||||
# Backports
|
||||
|
||||
The upstream systemd git repo at [https://github.com/systemd/systemd](https://github.com/systemd/systemd) only contains the main systemd branch that progresses at a quick pace, continuously bringing both bugfixes and new features.
|
||||
The upstream systemd git repo at https://github.com/systemd/systemd
|
||||
contains the `main` branch that progresses at a quick pace,
|
||||
continuously bringing both bugfixes and new features.
|
||||
New releases are tagged as `vNNN` on this branch.
|
||||
|
||||
Distributions usually prefer basing their releases on stabilized versions branched off from this, that receive the bugfixes but not the features.
|
||||
In addition to the `main` branch,
|
||||
the repo contains a number of branches for stable point updates for a given release,
|
||||
called `vNNN-stable`.
|
||||
Stable releases are tagged as `vNNN.X` on those branches.
|
||||
See [list of branches](https://github.com/systemd/systemd/branches/all?query=-stable)
|
||||
and [pull requests for stable branches](https://github.com/systemd/systemd/pulls?q=is%3Apr+is%3Aopen+label%3Astable-branch).
|
||||
|
||||
## Stable Branch Repository
|
||||
Distributions usually prefer basing their releases on those stable branches.
|
||||
Stable branches are typically managed by distribution maintainers on an as-needed basis.
|
||||
|
||||
Stable branches are available from [https://github.com/systemd/systemd-stable](https://github.com/systemd/systemd-stable).
|
||||
## Stable Branch Repository for older releases
|
||||
|
||||
Stable branches are started for certain releases of systemd and named after them, e.g. v208-stable.
|
||||
Stable branches are typically managed by distribution maintainers on an as needed basis.
|
||||
Stable branches for releases up to 255 are available from
|
||||
[https://github.com/systemd/systemd-stable](https://github.com/systemd/systemd-stable).
|
||||
|
||||
For example v208 has been chosen for stable as several distributions are shipping this version and the official/upstream cycle of v208-v209 was a long one due to kdbus work.
|
||||
## Policy for backports into stable branches
|
||||
|
||||
If you are using a particular version and find yourself backporting several patches, you may consider pushing a stable branch here for that version so others can benefit.
|
||||
If you are using a particular version and find yourself backporting several patches,
|
||||
consider pushing a stable branch here for that version so others can benefit.
|
||||
|
||||
Please contact us if you are interested.
|
||||
|
||||
|
|
@ -31,5 +41,16 @@ The following types of commits are cherry-picked onto those branches:
|
|||
* hardware database additions, especially the keymap updates
|
||||
* small non-conflicting features deemed safe to add in a stable release
|
||||
|
||||
Please try to ensure that anything backported to the stable repository is done with the `git cherry-pick -x` option such that text stating the original SHA1 is added into the commit message.
|
||||
This makes it easier to check where the code came from (as sometimes it is necessary to add small fixes as new code due to the upstream refactors) that are deemed too invasive to backport as a stable patch.
|
||||
Please try to ensure that anything backported to the stable repository is done
|
||||
with the `git cherry-pick -x` option such that text stating the original SHA1 is added into the commit message.
|
||||
This makes it easier to check where the code came from
|
||||
(as sometimes it is necessary to add small fixes as new code due to the upstream refactors)
|
||||
that are deemed too invasive to backport as a stable patch.
|
||||
|
||||
Pull requests for the stable branches should be tagged with `stable-branch`.
|
||||
|
||||
Pull requests that shall be backported to stable releases,
|
||||
should be tagged with `needs-stable-backport`.
|
||||
See [pull requests marked for backporting](https://github.com/systemd/systemd/pulls?q=is%3Apr+label%3Aneeds-stable-backport).
|
||||
If only some commits should be backported, this should be mentioned in the pull request.
|
||||
If the backport is not obvious, additional justification can also be provided in the pull request.
|
||||
|
|
|
|||
|
|
@ -519,6 +519,26 @@ SPDX-License-Identifier: LGPL-2.1-or-later
|
|||
return log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to read ...");
|
||||
```
|
||||
|
||||
- When generating log messages that contain filenames, user controlled strings,
|
||||
or similar, please enclose them in single ticks.
|
||||
|
||||
- Think about the log level you choose: for functions that are of the "logging"
|
||||
kind (see above), please ensure that failures we propagate should be logged
|
||||
about at `LOG_ERR` level. Failures that are noteworthy, but we proceed anyway,
|
||||
should be loged at `LOG_WARN` level. Important informational messages should
|
||||
use `LOG_NOTICE` and regular informational messages should use
|
||||
`LOG_INFO`. Note that the latter is the default maximum log level, i.e. only
|
||||
`LOG_DEBUG` messages are hidden by default.
|
||||
|
||||
- All log messages that show some failure which is not fatal for the immediate
|
||||
operation (i.e. generally those you'd log at `LOG_WARN` level, as described
|
||||
above) should be suffixed with a `…, ignoring: %m"` or similar. Or in other
|
||||
words, they should make clear not only in log level but also in English
|
||||
language that the issue is not fatal, but ignored. Depending on context you
|
||||
can also use `…, proceeding anyway: %m"`, `…, skipping: %m` or other language
|
||||
that makes clear that the failure is not actionable and doesn't strictly
|
||||
require immediate administrator attention.
|
||||
|
||||
## Memory Allocation
|
||||
|
||||
- Always check OOM. There is no excuse. In program code, you can use
|
||||
|
|
|
|||
|
|
@ -90,6 +90,12 @@ manager, please consider supporting the following interfaces.
|
|||
confuse systemd and the admin, but also prevent your implementation from
|
||||
being "stackable".
|
||||
|
||||
8. The mount hierarchy of the container should be mounted `MS_SHARED` before
|
||||
invoking `systemd` as PID 1. Things will break at various places if this is
|
||||
not done. Note that of course it's OK if the mounts are first marked
|
||||
`MS_PRIVATE`/`MS_SLAVE` (to disconnect propagation at least partially) as
|
||||
long as they are remounted `MS_SHARED` before `systemd` is invoked.
|
||||
|
||||
## Environment Variables
|
||||
|
||||
1. To allow systemd (and other programs) to identify that it is executed within
|
||||
|
|
|
|||
|
|
@ -351,12 +351,13 @@ All tools:
|
|||
default is not appropriate for a given system. Defaults to `5`, accepts
|
||||
positive integers.
|
||||
|
||||
* `$SYSTEMD_DEFAULT_MOUNT_RATE_LIMIT_INTERVAL_SEC` — can be set to override the mount
|
||||
units interval rate limit for parsing `/proc/self/mountinfo`. Similar to
|
||||
`$SYSTEMD_DEFAULT_MOUNT_RATE_LIMIT_BURST`, the interval limit maybe adjusted when
|
||||
the default is not appropriate for a given system. The default value is 1 and the
|
||||
default application time unit is second, and the time unit can beoverriden as usual
|
||||
by specifying it explicitly, see the systemd.time(7) man page.
|
||||
* `$SYSTEMD_DEFAULT_MOUNT_RATE_LIMIT_INTERVAL_SEC` — can be set to override the
|
||||
mount units interval rate limit for parsing `/proc/self/mountinfo`. Similar
|
||||
to `$SYSTEMD_DEFAULT_MOUNT_RATE_LIMIT_BURST`, the interval limit maybe
|
||||
adjusted when the default is not appropriate for a given system. The default
|
||||
value is 1, the default application time unit is second, and the time unit
|
||||
can be overridden as usual by specifying it explicitly, see the
|
||||
systemd.time(7) man page.
|
||||
|
||||
`systemd-remount-fs`:
|
||||
|
||||
|
|
@ -618,6 +619,10 @@ SYSTEMD_HOME_DEBUG_SUFFIX=foo \
|
|||
specified algorithm takes an effect immediately, you need to explicitly run
|
||||
`journalctl --rotate`.
|
||||
|
||||
* `$SYSTEMD_JOURNAL_FD_SIZE_MAX` – Takes a size with the usual suffixes (K, M, ...) in
|
||||
string format. Overrides the default maximum allowed size for a file-descriptor
|
||||
based input record to be stored in the journal.
|
||||
|
||||
* `$SYSTEMD_CATALOG` – path to the compiled catalog database file to use for
|
||||
`journalctl -x`, `journalctl --update-catalog`, `journalctl --list-catalog`
|
||||
and related calls.
|
||||
|
|
|
|||
|
|
@ -202,7 +202,7 @@ also supposed to be updated whenever the file was opened for any form of
|
|||
writing, including when opened to mark it as archived. This behaviour has been
|
||||
deemed problematic since without an associated boot ID the
|
||||
**tail_entry_monotonic** field is useless. To indicate whether the boot ID is
|
||||
updated only on append the JOURNAL_COMPATIBLE_TAIL_ENTRY_BOOT_ID is set. If it
|
||||
updated only on append the `JOURNAL_COMPATIBLE_TAIL_ENTRY_BOOT_ID` is set. If it
|
||||
is not set, the **tail_entry_monotonic** field is not usable).
|
||||
|
||||
The currently used part of the file is the **header_size** plus the
|
||||
|
|
@ -291,27 +291,27 @@ enum {
|
|||
};
|
||||
```
|
||||
|
||||
HEADER_INCOMPATIBLE_COMPRESSED_XZ indicates that the file includes DATA objects
|
||||
that are compressed using XZ. Similarly, HEADER_INCOMPATIBLE_COMPRESSED_LZ4
|
||||
`HEADER_INCOMPATIBLE_COMPRESSED_XZ` indicates that the file includes DATA objects
|
||||
that are compressed using XZ. Similarly, `HEADER_INCOMPATIBLE_COMPRESSED_LZ4`
|
||||
indicates that the file includes DATA objects that are compressed with the LZ4
|
||||
algorithm. And HEADER_INCOMPATIBLE_COMPRESSED_ZSTD indicates that there are
|
||||
algorithm. And `HEADER_INCOMPATIBLE_COMPRESSED_ZSTD` indicates that there are
|
||||
objects compressed with ZSTD.
|
||||
|
||||
HEADER_INCOMPATIBLE_KEYED_HASH indicates that instead of the unkeyed Jenkins
|
||||
`HEADER_INCOMPATIBLE_KEYED_HASH` indicates that instead of the unkeyed Jenkins
|
||||
hash function the keyed siphash24 hash function is used for the two hash
|
||||
tables, see below.
|
||||
|
||||
HEADER_INCOMPATIBLE_COMPACT indicates that the journal file uses the new binary
|
||||
`HEADER_INCOMPATIBLE_COMPACT` indicates that the journal file uses the new binary
|
||||
format that uses less space on disk compared to the original format.
|
||||
|
||||
HEADER_COMPATIBLE_SEALED indicates that the file includes TAG objects required
|
||||
`HEADER_COMPATIBLE_SEALED` indicates that the file includes TAG objects required
|
||||
for Forward Secure Sealing.
|
||||
|
||||
HEADER_COMPATIBLE_TAIL_ENTRY_BOOT_ID indicates whether the
|
||||
`HEADER_COMPATIBLE_TAIL_ENTRY_BOOT_ID` indicates whether the
|
||||
**tail_entry_boot_id** field is strictly updated on initial creation of the
|
||||
file and whenever an entry is updated (in which case the flag is set), or also
|
||||
when the file is archived (in which case it is unset). New files should always
|
||||
set this flag (and thus not update the **tail_entry_boot_id** except when
|
||||
set this flag (and thus not update **tail_entry_boot_id** except when
|
||||
creating the file and when appending an entry to it.
|
||||
|
||||
## Dirty Detection
|
||||
|
|
@ -406,11 +406,11 @@ _packed_ struct ObjectHeader {
|
|||
```
|
||||
|
||||
The **type** field is one of the object types listed above. The **flags** field
|
||||
currently knows three flags: OBJECT_COMPRESSED_XZ, OBJECT_COMPRESSED_LZ4 and
|
||||
OBJECT_COMPRESSED_ZSTD. It is only valid for DATA objects and indicates that
|
||||
currently knows three flags: `OBJECT_COMPRESSED_XZ`, `OBJECT_COMPRESSED_LZ4` and
|
||||
`OBJECT_COMPRESSED_ZSTD`. It is only valid for DATA objects and indicates that
|
||||
the data payload is compressed with XZ/LZ4/ZSTD. If one of the
|
||||
OBJECT_COMPRESSED_* flags is set for an object then the matching
|
||||
HEADER_INCOMPATIBLE_COMPRESSED_XZ/HEADER_INCOMPATIBLE_COMPRESSED_LZ4/HEADER_INCOMPATIBLE_COMPRESSED_ZSTD
|
||||
`OBJECT_COMPRESSED_*` flags is set for an object then the matching
|
||||
`HEADER_INCOMPATIBLE_COMPRESSED_XZ`/`HEADER_INCOMPATIBLE_COMPRESSED_LZ4`/`HEADER_INCOMPATIBLE_COMPRESSED_ZSTD`
|
||||
flag must be set for the file as well. At most one of these three bits may be
|
||||
set. The **size** field encodes the size of the object including all its
|
||||
headers and payload.
|
||||
|
|
@ -465,7 +465,7 @@ number of ENTRY objects that reference this object, i.e. the sum of all
|
|||
ENTRY_ARRAYS chained up from this object, plus 1.
|
||||
|
||||
The **payload[]** field contains the field name and date unencoded, unless
|
||||
OBJECT_COMPRESSED_XZ/OBJECT_COMPRESSED_LZ4/OBJECT_COMPRESSED_ZSTD is set in the
|
||||
`OBJECT_COMPRESSED_XZ`/`OBJECT_COMPRESSED_LZ4`/`OBJECT_COMPRESSED_ZSTD` is set in the
|
||||
`ObjectHeader`, in which case the payload is compressed with the indicated
|
||||
compression algorithm.
|
||||
|
||||
|
|
|
|||
|
|
@ -227,12 +227,15 @@ handling, it's typically sufficient to add a line such as:
|
|||
|
||||
Other programming environments might have native APIs to watch memory
|
||||
pressure/low memory events. Most notable is probably GLib's
|
||||
[GMemoryMonitor](https://docs.gtk.org/gio/iface.MemoryMonitor.html). It
|
||||
currently uses the per-system Linux PSI interface as the backend, but operates
|
||||
differently than the above: memory pressure events are picked up by a system
|
||||
service, which then propagates this through D-Bus to the applications. This is
|
||||
typically less than ideal, since this means each notification event has to
|
||||
traverse three processes before being handled. This traversal creates
|
||||
[GMemoryMonitor](https://docs.gtk.org/gio/iface.MemoryMonitor.html). As of GLib
|
||||
2.86.0, it uses the per-cgroup PSI kernel file to monitor for memory pressure,
|
||||
but does not yet read the environment variables recommended above.
|
||||
|
||||
In older versions, it used the per-system Linux PSI interface as the backend, but operated
|
||||
differently than the above: memory pressure events were picked up by a system
|
||||
service, which then propagated this through D-Bus to the applications. This was
|
||||
typically less than ideal, since this means each notification event had to
|
||||
traverse three processes before being handled. This traversal created
|
||||
additional latencies at a time where the system is already experiencing adverse
|
||||
latencies. Moreover, it focuses on system-wide PSI events, even though
|
||||
latencies. Moreover, it focused on system-wide PSI events, even though
|
||||
service-local ones are generally the better approach.
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ that matches various links, but also by settings like
|
|||
[systemd.network(5)](https://www.freedesktop.org/software/systemd/man/systemd.network.html).
|
||||
|
||||
It is also possible to plug in additional checks for network state. For
|
||||
example, to delay `network-online.target` until some a specific host is
|
||||
example, to delay `network-online.target` until a specific host is
|
||||
reachable (the name can be resolved over DNS and the appropriate route has been
|
||||
established), the following simple service could be used:
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,9 @@ It is easy to write additional agents. The basic algorithm to follow looks like
|
|||
* You'll find the PID of the client asking the question in the `PID=` field in the `[Ask]` section
|
||||
(Before asking your question use `kill(PID, 0)` and ignore the file if this returns `ESRCH`;
|
||||
there's no need to show the data of this field but if you want to you may)
|
||||
* `Echo=` specifies whether the input should be obscured. If this field is missing or is `Echo=0`, the input should not be shown.
|
||||
* `Echo=` specifies whether the input should be obscured. If this field is missing or is `Echo=0`, the input should not be shown as-is.
|
||||
* `Silent=` specifies whether the input should have any indication. If this field is `Silent=1`, nothing should be printed for any input.
|
||||
* `AcceptCached=` specifies whether a cached password is acceptable or not. If this field is missing or is `AcceptCached=0`, the password should not be provided from a cache.
|
||||
* The socket to send the response to is configured via `Socket=` in the `[Ask]` section. It is a `AF_UNIX`/`SOCK_DGRAM` socket in the file system.
|
||||
* Ignore files where the time specified in the `NotAfter=` field in the `[Ask]` section is in the past.
|
||||
The time is specified in usecs, and refers to the `CLOCK_MONOTONIC` clock. If `NotAfter=` is `0`, no such check should take place.
|
||||
|
|
@ -100,4 +102,4 @@ now available, with the same protocol as the system-wide
|
|||
counterpart. Unprivileged, per-directory agents should watch this directory in
|
||||
parallel to the system-wide one. Unprivileged queriers (i.e. clients to these
|
||||
agents) should pick the per-user directory to place their password request
|
||||
files in.
|
||||
files in. If the directory does not exist, agents may create it.
|
||||
|
|
|
|||
|
|
@ -16,6 +16,10 @@ measurements listed below are (by default) only done if a system is booted with
|
|||
to systemd's UEFI-mode measurements, and if the latter are not done the former
|
||||
aren't made either.
|
||||
|
||||
See
|
||||
[Linux TPM PCR Registry](https://uapi-group.org/specifications/specs/linux_tpm_pcr_registry/)
|
||||
for an overview of PCRs.
|
||||
|
||||
systemd will measure to PCRs 5 (`boot-loader-config`), 11 (`kernel-boot`),
|
||||
12 (`kernel-config`), 13 (`sysexts`), 15 (`system-identity`).
|
||||
|
||||
|
|
@ -41,7 +45,7 @@ used for new, additional measurements.
|
|||
|
||||
## PCR Measurements Made by `systemd-boot` (UEFI)
|
||||
|
||||
### PCS 5, `EV_EVENT_TAG`, `loader.conf`
|
||||
### PCR 5, `EV_EVENT_TAG`, `loader.conf`
|
||||
|
||||
The content of `systemd-boot`'s configuration file, `loader/loader.conf`, is
|
||||
measured as a tagged event.
|
||||
|
|
|
|||
74
docs/VARLINK.md
Normal file
74
docs/VARLINK.md
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
title: Varlink API Style
|
||||
category: Contributing
|
||||
layout: default
|
||||
SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
---
|
||||
|
||||
# General guideline
|
||||
|
||||
- Varlink field names should use camelCase. This guideline does not apply to
|
||||
well-known and documented configuration options, such as those defined in
|
||||
[systemd.unit](https://www.freedesktop.org/software/systemd/man/latest/systemd.unit.html),
|
||||
where existing naming conventions should be preserved for
|
||||
compatibility and clarity.
|
||||
|
||||
- Every field and method should include meaningful documentation. It's
|
||||
acceptable to reference existing documentation where appropriate.
|
||||
Documentation may be omitted only when the meaning is self-evident, even to
|
||||
someone not already familiar with varlink interface/method.
|
||||
|
||||
- Varlink fields should optimize toward clarity:
|
||||
* avoid abbreviations: `cacheDir` -> `cacheDirectory`
|
||||
* prefer string values over numeric codes when possible,
|
||||
to make interfaces more self-descriptive and easier to understand.
|
||||
|
||||
# Interface structure
|
||||
|
||||
- Varlink methods should consider splitting their output into 'context' and
|
||||
'runtime' sections. The guiding principle is simple: if a property makes
|
||||
sense to include in a configuration (e.g. unit file), it belongs to 'context';
|
||||
otherwise, it goes under 'runtime'. This split ensures a consistent and
|
||||
reusable structure. Functions that describe an object can produce context
|
||||
data that other functions can later consume to create a similar object.
|
||||
|
||||
Example: `io.systemd.Unit.List` outputs unit configuration, which can later
|
||||
be reused to create another unit via `io.systemd.Unit.StartTransient` (not
|
||||
implemented yet). The `io.systemd.Unit.StartTransient` call should accept
|
||||
only the 'context' portion of the output, without requiring any runtime data
|
||||
such as state (e.g. pid) or statistics.
|
||||
|
||||
- Following the guideline above, any field within 'context' should be nullable
|
||||
by default. This ensures that when a context structure is used as input, the
|
||||
caller is not required to provide every field explicitly. Omitted fields are
|
||||
automatically assigned their default values, allowing partial context
|
||||
definitions to be valid and simplifying reuse across different operations.
|
||||
Fields that cannot logically be omitted in input (e.g. a unit type) may remain
|
||||
non-nullable.
|
||||
|
||||
# Enums
|
||||
|
||||
- Enum fields in the codebase must be exposed as string values in Varlink, not
|
||||
as their underlying integer representations. Use `SD_VARLINK_DEFINE_ENUM_TYPE`
|
||||
to declare an enum type in the Varlink specification.
|
||||
|
||||
- The Varlink IDL validator does not permit enum values that contain dashes.
|
||||
Therefore, when defining an enum for Varlink, replace dashes with underscores.
|
||||
|
||||
- Varlink interface should output enum values using the underscore form. For
|
||||
input, it should accept both the original dash-containing form and the
|
||||
underscore form. The following helpers simplify this:
|
||||
* `JSON_BUILD_STRING_UNDERSCORIFY` - outputs a stringified enum value
|
||||
with dashes converted to underscores.
|
||||
* `JSON_DISPATCH_ENUM_DEFINE` - creates a `json_dispatch_*` function that
|
||||
accepts both the original and the underscorified enum value as valid input.
|
||||
|
||||
- An internal enum may be exposed as a simple string field instead of a Varlink
|
||||
enum type when the field is output-only and never provided or controlled by
|
||||
the user. However, such fields should avoid using dashes to prevent breaking
|
||||
changes if they are later converted into enums (see below).
|
||||
|
||||
- A varlink string field that has a finite set of possible values may later be
|
||||
converted into an enum without introducing a breaking change. This allows the
|
||||
interface to evolve from loosely defined string values to a more explicit and
|
||||
type-safe enumeration once the valid options are well established.
|
||||
|
|
@ -111,10 +111,15 @@ a {
|
|||
text-decoration: none;
|
||||
color: var(--sd-link-color);
|
||||
cursor: pointer;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
b {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
|
@ -567,6 +572,7 @@ tbody td {
|
|||
code.highlighter-rouge {
|
||||
padding: 2px 6px;
|
||||
background-color: var(--sd-highlight-inline-bg);
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
a code.highlighter-rouge {
|
||||
|
|
|
|||
851
docs/sysupdate-objects.svg
Normal file
851
docs/sysupdate-objects.svg
Normal file
|
|
@ -0,0 +1,851 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="316.28293mm"
|
||||
height="306.23108mm"
|
||||
viewBox="0 0 316.28293 306.23108"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||
sodipodi:docname="drawing.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="0.74118967"
|
||||
inkscape:cx="540.34752"
|
||||
inkscape:cy="712.36826"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1043"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs1">
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker10"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="3"
|
||||
markerHeight="3"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path10" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Triangle"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="3"
|
||||
markerHeight="3"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path135" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Triangle-8"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="3"
|
||||
markerHeight="3"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path135-9" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker10-2"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="3"
|
||||
markerHeight="3"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path10-6" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="Triangle-8-6"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="3"
|
||||
markerHeight="3"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path135-9-3" />
|
||||
</marker>
|
||||
<marker
|
||||
style="overflow:visible"
|
||||
id="marker10-2-1"
|
||||
refX="0"
|
||||
refY="0"
|
||||
orient="auto-start-reverse"
|
||||
inkscape:stockid="Triangle arrow"
|
||||
markerWidth="3"
|
||||
markerHeight="3"
|
||||
viewBox="0 0 1 1"
|
||||
inkscape:isstock="true"
|
||||
inkscape:collect="always"
|
||||
preserveAspectRatio="xMidYMid">
|
||||
<path
|
||||
transform="scale(0.5)"
|
||||
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
|
||||
d="M 5.77,0 -2.88,5 V -5 Z"
|
||||
id="path10-6-7" />
|
||||
</marker>
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-6.3824526,-3.5266833)">
|
||||
<rect
|
||||
style="fill:#008075;fill-opacity:1;stroke:#0d64b5;stroke-width:0.799999;stroke-opacity:1"
|
||||
id="rect3"
|
||||
width="131.36539"
|
||||
height="128.86658"
|
||||
x="6.7824521"
|
||||
y="61.045975"
|
||||
rx="5.0009999"
|
||||
ry="5" />
|
||||
<g
|
||||
id="g2">
|
||||
<g
|
||||
id="g1">
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="15.773956"
|
||||
y="100.73308"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707"
|
||||
id="text1"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1"
|
||||
style="stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707">Instance</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="110.50744"
|
||||
id="text2"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2"
|
||||
style="stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="110.50744">pattern</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g2-3"
|
||||
transform="translate(0,17.732698)">
|
||||
<g
|
||||
id="g1-5">
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-6"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="15.773956"
|
||||
y="100.73308"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707"
|
||||
id="text1-2"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1-9"
|
||||
style="stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707">Instance</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="110.50744"
|
||||
id="text2-1"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2-2"
|
||||
style="stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="110.50744">pattern</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g3">
|
||||
<g
|
||||
id="g1-0"
|
||||
transform="translate(0,35.465397)">
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-62"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="15.773956"
|
||||
y="100.73308"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707"
|
||||
id="text1-6"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1-1"
|
||||
style="stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707">Instance</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="145.97284"
|
||||
id="text2-8"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2-7"
|
||||
style="stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="145.97284">pattern</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="47.416828"
|
||||
y="162.0649"
|
||||
id="text3"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3"
|
||||
style="stroke-width:0.264583"
|
||||
x="47.416828"
|
||||
y="162.0649">⋮</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="59.971153"
|
||||
y="74.610878"
|
||||
id="text4"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4"
|
||||
style="stroke-width:0.264583"
|
||||
x="59.971153"
|
||||
y="74.610878">Resource</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="118.45662"
|
||||
y="86.030052"
|
||||
id="text5"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5"
|
||||
style="font-size:6.35px;stroke-width:0.264583"
|
||||
x="118.45662"
|
||||
y="86.030052">Partially loaded from .transfer file</tspan></text>
|
||||
<g
|
||||
id="g5"
|
||||
transform="translate(0,-16.876938)">
|
||||
<rect
|
||||
style="fill:#008075;fill-opacity:1;stroke:#0d64b5;stroke-width:0.799999;stroke-opacity:1"
|
||||
id="rect3-3"
|
||||
width="131.36539"
|
||||
height="128.86658"
|
||||
x="190.90001"
|
||||
y="77.922913"
|
||||
rx="5.0009999"
|
||||
ry="5" />
|
||||
<g
|
||||
id="g2-7"
|
||||
transform="translate(184.11755,16.87694)">
|
||||
<g
|
||||
id="g1-59">
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-2"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="15.773956"
|
||||
y="100.73308"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707"
|
||||
id="text1-28"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1-97"
|
||||
style="stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707">Instance</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="110.50744"
|
||||
id="text2-3"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2-6"
|
||||
style="stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="110.50744">pattern</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g2-3-1"
|
||||
transform="translate(184.11755,34.609638)">
|
||||
<g
|
||||
id="g1-5-2">
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-6-9"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="15.773956"
|
||||
y="100.73308"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707"
|
||||
id="text1-2-3"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1-9-1"
|
||||
style="stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707">Instance</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="110.50744"
|
||||
id="text2-1-9"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2-2-4"
|
||||
style="stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="110.50744">pattern</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g3-7"
|
||||
transform="translate(184.11755,16.87694)">
|
||||
<g
|
||||
id="g1-0-8"
|
||||
transform="translate(0,35.465397)">
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-62-4"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="15.773956"
|
||||
y="100.73308"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707"
|
||||
id="text1-6-5"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1-1-0"
|
||||
style="stroke-width:0.264583"
|
||||
x="64.392487"
|
||||
y="110.51707">Instance</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="145.97284"
|
||||
id="text2-8-3"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2-7-6"
|
||||
style="stroke-width:0.264583"
|
||||
x="113.87379"
|
||||
y="145.97284">pattern</tspan></text>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="231.53438"
|
||||
y="178.94183"
|
||||
id="text3-1"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3-0"
|
||||
style="stroke-width:0.264583"
|
||||
x="231.53438"
|
||||
y="178.94183">⋮</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="244.0887"
|
||||
y="91.487816"
|
||||
id="text4-6"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4-3"
|
||||
style="stroke-width:0.264583"
|
||||
x="244.0887"
|
||||
y="91.487816">Resource</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="302.57416"
|
||||
y="102.90699"
|
||||
id="text5-2"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5-0"
|
||||
style="font-size:6.35px;stroke-width:0.264583"
|
||||
x="302.57416"
|
||||
y="102.90699">Partially loaded from .transfer file</tspan></text>
|
||||
</g>
|
||||
<rect
|
||||
style="fill:#ff7f2a;fill-opacity:1;stroke:#b56f0d;stroke-width:0.880404;stroke-opacity:1"
|
||||
id="rect6"
|
||||
width="111.65157"
|
||||
height="42.399162"
|
||||
x="6.8226547"
|
||||
y="3.9668853"
|
||||
rx="4.9974012"
|
||||
ry="6.0599365" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="92.622543"
|
||||
y="28.901594"
|
||||
id="text5-8"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5-8"
|
||||
style="font-size:6.35px;stroke-width:0.264583"
|
||||
x="92.622543"
|
||||
y="28.901594">Loaded from .transfer file</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="55.061909"
|
||||
y="16.949841"
|
||||
id="text6"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan6"
|
||||
style="stroke-width:0.264583"
|
||||
x="55.061913"
|
||||
y="16.949841">Transfer</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="39.600597"
|
||||
y="41.837189"
|
||||
id="text7"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan7"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
|
||||
x="39.600597"
|
||||
y="41.837189">source</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="113.82346"
|
||||
y="41.837189"
|
||||
id="text8"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan8"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.76111px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
|
||||
x="113.82346"
|
||||
y="41.837189">target</tspan></text>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Triangle)"
|
||||
d="m 27.129808,44.621394 -0.356973,18.91947"
|
||||
id="path8"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10)"
|
||||
d="m 116.01562,40.337739 75.67789,23.203125"
|
||||
id="path9"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<g
|
||||
id="g16"
|
||||
transform="translate(-194.19231,210.25601)">
|
||||
<rect
|
||||
style="fill:#55d400;fill-opacity:1;stroke:#58b50d;stroke-width:1.12104;stroke-opacity:1"
|
||||
id="rect10"
|
||||
width="121.40612"
|
||||
height="78.56958"
|
||||
x="217.91293"
|
||||
y="4.087204"
|
||||
rx="5.8448224"
|
||||
ry="8.4007883" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:6.35px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;stroke-width:0.264583"
|
||||
x="222.03329"
|
||||
y="28.901594"
|
||||
id="text5-8-9"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5-8-2"
|
||||
style="font-size:6.35px;text-align:start;text-anchor:start;stroke-width:0.264583"
|
||||
x="222.03329"
|
||||
y="28.901594">Set of Instances taken from across</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:6.35px;text-align:start;text-anchor:start;stroke-width:0.264583"
|
||||
x="222.03329"
|
||||
y="36.839092"
|
||||
id="tspan11">all Transfers, matching a certain</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:6.35px;text-align:start;text-anchor:start;stroke-width:0.264583"
|
||||
x="222.03329"
|
||||
y="44.776592"
|
||||
id="tspan12">version; either all source Instances</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:6.35px;text-align:start;text-anchor:start;stroke-width:0.264583"
|
||||
x="222.03329"
|
||||
y="52.714092"
|
||||
id="tspan13">or all target Instances.</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:6.35px;text-align:start;text-anchor:start;stroke-width:0.264583"
|
||||
x="222.03329"
|
||||
y="60.651592"
|
||||
id="tspan14" /><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:6.35px;text-align:start;text-anchor:start;stroke-width:0.264583"
|
||||
x="222.03329"
|
||||
y="68.589096"
|
||||
id="tspan15">For example: verity, root FS,</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
style="font-size:6.35px;text-align:start;text-anchor:start;stroke-width:0.264583"
|
||||
x="222.03329"
|
||||
y="76.526596"
|
||||
id="tspan16">and kernel boot image</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="277.00961"
|
||||
y="16.949841"
|
||||
id="text10"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan10"
|
||||
style="stroke-width:0.264583"
|
||||
x="277.00961"
|
||||
y="16.949841">UpdateSet</tspan></text>
|
||||
</g>
|
||||
<g
|
||||
id="g19"
|
||||
transform="matrix(0.26299485,0,0,0.26299485,127.72763,135.80969)">
|
||||
<rect
|
||||
style="fill:#008075;fill-opacity:1;stroke:#0d64b5;stroke-width:0.799999;stroke-opacity:1"
|
||||
id="rect3-9"
|
||||
width="131.36539"
|
||||
height="128.86658"
|
||||
x="202.28317"
|
||||
y="291.19574"
|
||||
rx="5.0009999"
|
||||
ry="5" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-8"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="211.27467"
|
||||
y="330.88284"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-6-1"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="211.27467"
|
||||
y="348.61554"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-62-9"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="211.27467"
|
||||
y="366.34824"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="242.91754"
|
||||
y="392.21466"
|
||||
id="text3-7"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3-1"
|
||||
style="stroke-width:0.264583"
|
||||
x="242.91754"
|
||||
y="392.21466">⋮</tspan></text>
|
||||
<rect
|
||||
style="fill:#008075;fill-opacity:1;stroke:#0d64b5;stroke-width:0.799999;stroke-opacity:1"
|
||||
id="rect3-3-6"
|
||||
width="131.36539"
|
||||
height="128.86658"
|
||||
x="386.40073"
|
||||
y="291.19574"
|
||||
rx="5.0009999"
|
||||
ry="5" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-2-6"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="395.39221"
|
||||
y="330.88284"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-6-9-1"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="395.39221"
|
||||
y="348.61554"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-62-4-8"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="395.39221"
|
||||
y="366.34824"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="427.0351"
|
||||
y="392.21466"
|
||||
id="text3-1-3"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3-0-8"
|
||||
style="stroke-width:0.264583"
|
||||
x="427.0351"
|
||||
y="392.21466">⋮</tspan></text>
|
||||
<rect
|
||||
style="fill:#ff7f2a;fill-opacity:1;stroke:#b56f0d;stroke-width:0.880404;stroke-opacity:1"
|
||||
id="rect6-5"
|
||||
width="111.65157"
|
||||
height="42.399162"
|
||||
x="202.32336"
|
||||
y="234.11665"
|
||||
rx="4.9974012"
|
||||
ry="6.0599365" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Triangle-8)"
|
||||
d="m 222.63053,274.77115 -0.35698,18.91947"
|
||||
id="path8-4"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10-2)"
|
||||
d="m 311.51634,270.4875 75.67789,23.20312"
|
||||
id="path9-4"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
<g
|
||||
id="g19-6"
|
||||
transform="matrix(0.26299485,0,0,0.26299485,127.72763,199.17835)">
|
||||
<rect
|
||||
style="fill:#008075;fill-opacity:1;stroke:#0d64b5;stroke-width:0.799999;stroke-opacity:1"
|
||||
id="rect3-9-2"
|
||||
width="131.36539"
|
||||
height="128.86658"
|
||||
x="202.28317"
|
||||
y="291.19574"
|
||||
rx="5.0009999"
|
||||
ry="5" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-8-1"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="211.27467"
|
||||
y="330.88284"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-6-1-7"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="211.27467"
|
||||
y="348.61554"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-62-9-8"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="211.27467"
|
||||
y="366.34824"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="242.91754"
|
||||
y="392.21466"
|
||||
id="text3-7-5"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3-1-7"
|
||||
style="stroke-width:0.264583"
|
||||
x="242.91754"
|
||||
y="392.21466">⋮</tspan></text>
|
||||
<rect
|
||||
style="fill:#008075;fill-opacity:1;stroke:#0d64b5;stroke-width:0.799999;stroke-opacity:1"
|
||||
id="rect3-3-6-4"
|
||||
width="131.36539"
|
||||
height="128.86658"
|
||||
x="386.40073"
|
||||
y="291.19574"
|
||||
rx="5.0009999"
|
||||
ry="5" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-2-6-1"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="395.39221"
|
||||
y="330.88284"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-6-9-1-8"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="395.39221"
|
||||
y="348.61554"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<rect
|
||||
style="fill:#f13900;stroke:#a93019;stroke-width:0.93445"
|
||||
id="rect1-62-4-8-5"
|
||||
width="52.697277"
|
||||
height="12.002567"
|
||||
x="395.39221"
|
||||
y="366.34824"
|
||||
rx="6.8996673"
|
||||
ry="4.9446111" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:10.5833px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:sans-serif;text-align:end;letter-spacing:0px;word-spacing:0px;text-anchor:end;stroke-width:0.264583"
|
||||
x="427.0351"
|
||||
y="392.21466"
|
||||
id="text3-1-3-9"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3-0-8-7"
|
||||
style="stroke-width:0.264583"
|
||||
x="427.0351"
|
||||
y="392.21466">⋮</tspan></text>
|
||||
<rect
|
||||
style="fill:#ff7f2a;fill-opacity:1;stroke:#b56f0d;stroke-width:0.880404;stroke-opacity:1"
|
||||
id="rect6-5-5"
|
||||
width="111.65157"
|
||||
height="42.399162"
|
||||
x="202.32336"
|
||||
y="234.11665"
|
||||
rx="4.9974012"
|
||||
ry="6.0599365" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Triangle-8-6)"
|
||||
d="m 222.63053,274.77115 -0.35698,18.91947"
|
||||
id="path8-4-3"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10-2-1)"
|
||||
d="m 311.51634,270.4875 75.67789,23.20312"
|
||||
id="path9-4-8"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10)"
|
||||
d="m 142.02963,226.88607 c 29.98558,-7.85336 26.92872,-47.36399 27.13167,-52.37021 2.14182,-52.83172 30.34254,-50.6899 30.34254,-50.6899"
|
||||
id="path19"
|
||||
sodipodi:nodetypes="csc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10)"
|
||||
d="m 142.03149,232.34519 c 29.27163,16.0637 88.04009,-2.54025 88.04009,-2.54025"
|
||||
id="path20"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker10)"
|
||||
d="m 142.07294,241.56334 c 55.80936,38.16624 88.27271,50.05886 88.27271,50.05886"
|
||||
id="path21"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 31 KiB |
|
|
@ -1,7 +1,6 @@
|
|||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
custom_target(
|
||||
'README',
|
||||
input : 'README.in',
|
||||
output : 'README',
|
||||
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
factory_etc_dir = factorydir / 'etc'
|
||||
|
||||
custom_target(
|
||||
'locale.conf',
|
||||
input : 'locale.conf.in',
|
||||
output : 'locale.conf',
|
||||
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
|
||||
|
|
@ -11,7 +10,6 @@ custom_target(
|
|||
install_dir : factory_etc_dir)
|
||||
|
||||
custom_target(
|
||||
'vconsole.conf',
|
||||
input : 'vconsole.conf.in',
|
||||
output : 'vconsole.conf',
|
||||
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
|
||||
|
|
|
|||
7983
hwdb.d/20-OUI.hwdb
7983
hwdb.d/20-OUI.hwdb
File diff suppressed because it is too large
Load diff
|
|
@ -18,6 +18,12 @@ acpi:AANT*:
|
|||
acpi:AAVA*:
|
||||
ID_VENDOR_FROM_DATABASE=Aava Mobile Oy
|
||||
|
||||
acpi:ACPI*:
|
||||
ID_VENDOR_FROM_DATABASE=Intel Corporation
|
||||
|
||||
acpi:AHCL*:
|
||||
ID_VENDOR_FROM_DATABASE=Advantech Co., Ltd.
|
||||
|
||||
acpi:AMDI*:
|
||||
ID_VENDOR_FROM_DATABASE=AMD
|
||||
|
||||
|
|
@ -228,15 +234,27 @@ acpi:ISIC*:
|
|||
acpi:JMIC*:
|
||||
ID_VENDOR_FROM_DATABASE=Shenzhen Jaguar Microsystems Co.,Ltd.
|
||||
|
||||
acpi:JPMC*:
|
||||
ID_VENDOR_FROM_DATABASE=JP Morgan Chase N.A.
|
||||
|
||||
acpi:JSYS*:
|
||||
ID_VENDOR_FROM_DATABASE=Juniper Systems, Inc.
|
||||
|
||||
acpi:JUMP*:
|
||||
ID_VENDOR_FROM_DATABASE=JUMPtec GmbH
|
||||
|
||||
acpi:KAYA*:
|
||||
ID_VENDOR_FROM_DATABASE=KAYA N CO., LTD.
|
||||
|
||||
acpi:KIOX*:
|
||||
ID_VENDOR_FROM_DATABASE=Kionix, Inc.
|
||||
|
||||
acpi:KOMF*:
|
||||
ID_VENDOR_FROM_DATABASE=Kontron France
|
||||
|
||||
acpi:LECA*:
|
||||
ID_VENDOR_FROM_DATABASE=Theo End (Shenzhen) Computing Technology Co., Ltd.
|
||||
|
||||
acpi:LNRO*:
|
||||
ID_VENDOR_FROM_DATABASE=Linaro, Ltd.
|
||||
|
||||
|
|
@ -258,6 +276,12 @@ acpi:MCRY*:
|
|||
acpi:MIPI*:
|
||||
ID_VENDOR_FROM_DATABASE=MIPI Alliance
|
||||
|
||||
acpi:MITH*:
|
||||
ID_VENDOR_FROM_DATABASE=Mesiontech
|
||||
|
||||
acpi:MPTR*:
|
||||
ID_VENDOR_FROM_DATABASE=Megapolis-Telecom Region LLC
|
||||
|
||||
acpi:MRVL*:
|
||||
ID_VENDOR_FROM_DATABASE=Marvell Technology Group Ltd.
|
||||
|
||||
|
|
@ -288,6 +312,9 @@ acpi:NVTN*:
|
|||
acpi:NXGO*:
|
||||
ID_VENDOR_FROM_DATABASE=Nexstgo Company Limited
|
||||
|
||||
acpi:NXHP*:
|
||||
ID_VENDOR_FROM_DATABASE=Nexthop Systems Inc.
|
||||
|
||||
acpi:OBDA*:
|
||||
ID_VENDOR_FROM_DATABASE=REALTEK Semiconductor Corp.
|
||||
|
||||
|
|
@ -303,6 +330,9 @@ acpi:PEGA*:
|
|||
acpi:PHYT*:
|
||||
ID_VENDOR_FROM_DATABASE=Phytium Technology Co. Ltd.
|
||||
|
||||
acpi:PICO*:
|
||||
ID_VENDOR_FROM_DATABASE=Picoheart (SG) Pte. Ltd.
|
||||
|
||||
acpi:PIXA*:
|
||||
ID_VENDOR_FROM_DATABASE=PixArt imaging inc.
|
||||
|
||||
|
|
@ -327,6 +357,9 @@ acpi:RKCP*:
|
|||
acpi:ROKL*:
|
||||
ID_VENDOR_FROM_DATABASE=Rockwell Automation, Inc
|
||||
|
||||
acpi:ROKU*:
|
||||
ID_VENDOR_FROM_DATABASE=Roku, Inc.
|
||||
|
||||
acpi:RPIL*:
|
||||
ID_VENDOR_FROM_DATABASE=Raspberry Pi
|
||||
|
||||
|
|
@ -375,6 +408,9 @@ acpi:SWEM*:
|
|||
acpi:SYNA*:
|
||||
ID_VENDOR_FROM_DATABASE=Synaptics Inc
|
||||
|
||||
acpi:SYNC*:
|
||||
ID_VENDOR_FROM_DATABASE=SYNCS / Aviot Systems Pte Ltd
|
||||
|
||||
acpi:TCAG*:
|
||||
ID_VENDOR_FROM_DATABASE=Teracue AG
|
||||
|
||||
|
|
@ -384,12 +420,21 @@ acpi:TOSB*:
|
|||
acpi:TXNW*:
|
||||
ID_VENDOR_FROM_DATABASE=Texas Instruments
|
||||
|
||||
acpi:TYHX*:
|
||||
ID_VENDOR_FROM_DATABASE=Nanjing Tianyihexin Electronics Ltd
|
||||
|
||||
acpi:UBLX*:
|
||||
ID_VENDOR_FROM_DATABASE=u-blox AG
|
||||
|
||||
acpi:UBOO*:
|
||||
ID_VENDOR_FROM_DATABASE=Das U-Boot
|
||||
|
||||
acpi:UBTI*:
|
||||
ID_VENDOR_FROM_DATABASE=Ubiquiti Inc.
|
||||
|
||||
acpi:ULRV*:
|
||||
ID_VENDOR_FROM_DATABASE=UltraRISC Technology (Shanghai) Co., Ltd
|
||||
|
||||
acpi:VAIO*:
|
||||
ID_VENDOR_FROM_DATABASE=VAIO Corporation
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
--- 20-acpi-vendor.hwdb.base 2025-05-15 10:42:40.716482750 +0200
|
||||
+++ 20-acpi-vendor.hwdb 2025-05-15 10:42:40.720482763 +0200
|
||||
--- 20-acpi-vendor.hwdb.base 2026-03-10 17:03:34.662556881 +0000
|
||||
+++ 20-acpi-vendor.hwdb 2026-03-10 17:03:34.666557017 +0000
|
||||
@@ -3,6 +3,8 @@
|
||||
# Data imported from:
|
||||
# https://uefi.org/uefi-pnp-export
|
||||
|
|
@ -9,17 +9,7 @@
|
|||
|
||||
acpi:3GVR*:
|
||||
ID_VENDOR_FROM_DATABASE=VR Technology Holdings Limited
|
||||
@@ -16,9 +18,6 @@
|
||||
acpi:AAVA*:
|
||||
ID_VENDOR_FROM_DATABASE=Aava Mobile Oy
|
||||
|
||||
-acpi:ACPI*:
|
||||
- ID_VENDOR_FROM_DATABASE=Intel Corporation
|
||||
-
|
||||
acpi:AMDI*:
|
||||
ID_VENDOR_FROM_DATABASE=AMD
|
||||
|
||||
@@ -418,6 +417,9 @@
|
||||
@@ -460,6 +462,9 @@
|
||||
acpi:AAA*:
|
||||
ID_VENDOR_FROM_DATABASE=Avolites Ltd
|
||||
|
||||
|
|
@ -29,7 +19,7 @@
|
|||
acpi:AAE*:
|
||||
ID_VENDOR_FROM_DATABASE=Anatek Electronics Inc.
|
||||
|
||||
@@ -445,6 +447,9 @@
|
||||
@@ -487,6 +492,9 @@
|
||||
acpi:ABO*:
|
||||
ID_VENDOR_FROM_DATABASE=D-Link Systems Inc
|
||||
|
||||
|
|
@ -39,7 +29,7 @@
|
|||
acpi:ABS*:
|
||||
ID_VENDOR_FROM_DATABASE=Abaco Systems, Inc.
|
||||
|
||||
@@ -490,7 +495,7 @@
|
||||
@@ -532,7 +540,7 @@
|
||||
acpi:ACO*:
|
||||
ID_VENDOR_FROM_DATABASE=Allion Computer Inc.
|
||||
|
||||
|
|
@ -48,7 +38,7 @@
|
|||
ID_VENDOR_FROM_DATABASE=Aspen Tech Inc
|
||||
|
||||
acpi:ACR*:
|
||||
@@ -769,6 +774,9 @@
|
||||
@@ -811,6 +819,9 @@
|
||||
acpi:AMT*:
|
||||
ID_VENDOR_FROM_DATABASE=AMT International Industry
|
||||
|
||||
|
|
@ -58,7 +48,7 @@
|
|||
acpi:AMX*:
|
||||
ID_VENDOR_FROM_DATABASE=AMX LLC
|
||||
|
||||
@@ -817,6 +825,9 @@
|
||||
@@ -859,6 +870,9 @@
|
||||
acpi:AOA*:
|
||||
ID_VENDOR_FROM_DATABASE=AOpen Inc.
|
||||
|
||||
|
|
@ -68,7 +58,7 @@
|
|||
acpi:AOE*:
|
||||
ID_VENDOR_FROM_DATABASE=Advanced Optics Electronics, Inc.
|
||||
|
||||
@@ -826,6 +837,9 @@
|
||||
@@ -868,6 +882,9 @@
|
||||
acpi:AOT*:
|
||||
ID_VENDOR_FROM_DATABASE=Alcatel
|
||||
|
||||
|
|
@ -78,7 +68,7 @@
|
|||
acpi:APC*:
|
||||
ID_VENDOR_FROM_DATABASE=American Power Conversion
|
||||
|
||||
@@ -1007,7 +1021,7 @@
|
||||
@@ -1049,7 +1066,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=ALPS ALPINE CO., LTD.
|
||||
|
||||
acpi:AUO*:
|
||||
|
|
@ -87,7 +77,7 @@
|
|||
|
||||
acpi:AUR*:
|
||||
ID_VENDOR_FROM_DATABASE=Aureal Semiconductor
|
||||
@@ -1087,6 +1101,9 @@
|
||||
@@ -1129,6 +1146,9 @@
|
||||
acpi:AXE*:
|
||||
ID_VENDOR_FROM_DATABASE=Axell Corporation
|
||||
|
||||
|
|
@ -97,7 +87,7 @@
|
|||
acpi:AXI*:
|
||||
ID_VENDOR_FROM_DATABASE=American Magnetics
|
||||
|
||||
@@ -1246,6 +1263,9 @@
|
||||
@@ -1288,6 +1308,9 @@
|
||||
acpi:BML*:
|
||||
ID_VENDOR_FROM_DATABASE=BIOMED Lab
|
||||
|
||||
|
|
@ -107,7 +97,7 @@
|
|||
acpi:BMS*:
|
||||
ID_VENDOR_FROM_DATABASE=BIOMEDISYS
|
||||
|
||||
@@ -1258,6 +1278,9 @@
|
||||
@@ -1300,6 +1323,9 @@
|
||||
acpi:BNO*:
|
||||
ID_VENDOR_FROM_DATABASE=Bang & Olufsen
|
||||
|
||||
|
|
@ -117,7 +107,7 @@
|
|||
acpi:BNS*:
|
||||
ID_VENDOR_FROM_DATABASE=Boulder Nonlinear Systems
|
||||
|
||||
@@ -1504,6 +1527,9 @@
|
||||
@@ -1546,6 +1572,9 @@
|
||||
acpi:CHA*:
|
||||
ID_VENDOR_FROM_DATABASE=Chase Research PLC
|
||||
|
||||
|
|
@ -127,7 +117,7 @@
|
|||
acpi:CHD*:
|
||||
ID_VENDOR_FROM_DATABASE=ChangHong Electric Co.,Ltd
|
||||
|
||||
@@ -1669,6 +1695,9 @@
|
||||
@@ -1711,6 +1740,9 @@
|
||||
acpi:COD*:
|
||||
ID_VENDOR_FROM_DATABASE=CODAN Pty. Ltd.
|
||||
|
||||
|
|
@ -137,7 +127,7 @@
|
|||
acpi:COI*:
|
||||
ID_VENDOR_FROM_DATABASE=Codec Inc.
|
||||
|
||||
@@ -2087,7 +2116,7 @@
|
||||
@@ -2129,7 +2161,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=Dragon Information Technology
|
||||
|
||||
acpi:DJE*:
|
||||
|
|
@ -146,7 +136,7 @@
|
|||
|
||||
acpi:DJP*:
|
||||
ID_VENDOR_FROM_DATABASE=Maygay Machines, Ltd
|
||||
@@ -2440,6 +2469,9 @@
|
||||
@@ -2482,6 +2514,9 @@
|
||||
acpi:EIN*:
|
||||
ID_VENDOR_FROM_DATABASE=Elegant Invention
|
||||
|
||||
|
|
@ -156,7 +146,7 @@
|
|||
acpi:EKA*:
|
||||
ID_VENDOR_FROM_DATABASE=MagTek Inc.
|
||||
|
||||
@@ -2710,6 +2742,9 @@
|
||||
@@ -2752,6 +2787,9 @@
|
||||
acpi:FCG*:
|
||||
ID_VENDOR_FROM_DATABASE=First International Computer Ltd
|
||||
|
||||
|
|
@ -166,7 +156,7 @@
|
|||
acpi:FCS*:
|
||||
ID_VENDOR_FROM_DATABASE=Focus Enhancements, Inc.
|
||||
|
||||
@@ -3086,7 +3121,7 @@
|
||||
@@ -3128,7 +3166,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=General Standards Corporation
|
||||
|
||||
acpi:GSM*:
|
||||
|
|
@ -175,7 +165,7 @@
|
|||
|
||||
acpi:GSN*:
|
||||
ID_VENDOR_FROM_DATABASE=Grandstream Networks, Inc.
|
||||
@@ -3196,6 +3231,9 @@
|
||||
@@ -3238,6 +3276,9 @@
|
||||
acpi:HEC*:
|
||||
ID_VENDOR_FROM_DATABASE=Hisense Electric Co., Ltd.
|
||||
|
||||
|
|
@ -185,7 +175,7 @@
|
|||
acpi:HEL*:
|
||||
ID_VENDOR_FROM_DATABASE=Hitachi Micro Systems Europe Ltd
|
||||
|
||||
@@ -3331,6 +3369,9 @@
|
||||
@@ -3373,6 +3414,9 @@
|
||||
acpi:HSD*:
|
||||
ID_VENDOR_FROM_DATABASE=HannStar Display Corp
|
||||
|
||||
|
|
@ -195,7 +185,7 @@
|
|||
acpi:HSM*:
|
||||
ID_VENDOR_FROM_DATABASE=AT&T Microelectronics
|
||||
|
||||
@@ -3457,6 +3498,9 @@
|
||||
@@ -3499,6 +3543,9 @@
|
||||
acpi:ICI*:
|
||||
ID_VENDOR_FROM_DATABASE=Infotek Communication Inc
|
||||
|
||||
|
|
@ -205,7 +195,7 @@
|
|||
acpi:ICM*:
|
||||
ID_VENDOR_FROM_DATABASE=Intracom SA
|
||||
|
||||
@@ -3553,6 +3597,9 @@
|
||||
@@ -3595,6 +3642,9 @@
|
||||
acpi:IKE*:
|
||||
ID_VENDOR_FROM_DATABASE=Ikegami Tsushinki Co. Ltd.
|
||||
|
||||
|
|
@ -215,7 +205,7 @@
|
|||
acpi:IKS*:
|
||||
ID_VENDOR_FROM_DATABASE=Ikos Systems Inc
|
||||
|
||||
@@ -3601,6 +3648,9 @@
|
||||
@@ -3643,6 +3693,9 @@
|
||||
acpi:IMX*:
|
||||
ID_VENDOR_FROM_DATABASE=arpara Technology Co., Ltd.
|
||||
|
||||
|
|
@ -225,7 +215,7 @@
|
|||
acpi:INA*:
|
||||
ID_VENDOR_FROM_DATABASE=Inventec Corporation
|
||||
|
||||
@@ -4129,6 +4179,9 @@
|
||||
@@ -4171,6 +4224,9 @@
|
||||
acpi:LAN*:
|
||||
ID_VENDOR_FROM_DATABASE=Sodeman Lancom Inc
|
||||
|
||||
|
|
@ -235,7 +225,7 @@
|
|||
acpi:LAS*:
|
||||
ID_VENDOR_FROM_DATABASE=LASAT Comm. A/S
|
||||
|
||||
@@ -4180,6 +4233,9 @@
|
||||
@@ -4222,6 +4278,9 @@
|
||||
acpi:LED*:
|
||||
ID_VENDOR_FROM_DATABASE=Long Engineering Design Inc
|
||||
|
||||
|
|
@ -245,7 +235,7 @@
|
|||
acpi:LEG*:
|
||||
ID_VENDOR_FROM_DATABASE=Legerity, Inc
|
||||
|
||||
@@ -4198,6 +4254,9 @@
|
||||
@@ -4240,6 +4299,9 @@
|
||||
acpi:LGD*:
|
||||
ID_VENDOR_FROM_DATABASE=LG Display
|
||||
|
||||
|
|
@ -255,7 +245,7 @@
|
|||
acpi:LGI*:
|
||||
ID_VENDOR_FROM_DATABASE=Logitech Inc
|
||||
|
||||
@@ -4264,6 +4323,9 @@
|
||||
@@ -4306,6 +4368,9 @@
|
||||
acpi:LND*:
|
||||
ID_VENDOR_FROM_DATABASE=Land Computer Company Ltd
|
||||
|
||||
|
|
@ -265,7 +255,7 @@
|
|||
acpi:LNK*:
|
||||
ID_VENDOR_FROM_DATABASE=Link Tech Inc
|
||||
|
||||
@@ -4298,7 +4360,7 @@
|
||||
@@ -4340,7 +4405,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=Design Technology
|
||||
|
||||
acpi:LPL*:
|
||||
|
|
@ -274,7 +264,7 @@
|
|||
|
||||
acpi:LSC*:
|
||||
ID_VENDOR_FROM_DATABASE=LifeSize Communications
|
||||
@@ -4474,6 +4536,9 @@
|
||||
@@ -4516,6 +4581,9 @@
|
||||
acpi:MCX*:
|
||||
ID_VENDOR_FROM_DATABASE=Millson Custom Solutions Inc.
|
||||
|
||||
|
|
@ -284,7 +274,7 @@
|
|||
acpi:MDA*:
|
||||
ID_VENDOR_FROM_DATABASE=Media4 Inc
|
||||
|
||||
@@ -4720,6 +4785,9 @@
|
||||
@@ -4762,6 +4830,9 @@
|
||||
acpi:MOM*:
|
||||
ID_VENDOR_FROM_DATABASE=Momentum Data Systems
|
||||
|
||||
|
|
@ -294,7 +284,7 @@
|
|||
acpi:MOS*:
|
||||
ID_VENDOR_FROM_DATABASE=Moses Corporation
|
||||
|
||||
@@ -4960,6 +5028,9 @@
|
||||
@@ -5002,6 +5073,9 @@
|
||||
acpi:NAL*:
|
||||
ID_VENDOR_FROM_DATABASE=Network Alchemy
|
||||
|
||||
|
|
@ -304,7 +294,7 @@
|
|||
acpi:NAT*:
|
||||
ID_VENDOR_FROM_DATABASE=NaturalPoint Inc.
|
||||
|
||||
@@ -5500,6 +5571,9 @@
|
||||
@@ -5542,6 +5616,9 @@
|
||||
acpi:PCX*:
|
||||
ID_VENDOR_FROM_DATABASE=PC Xperten
|
||||
|
||||
|
|
@ -314,7 +304,7 @@
|
|||
acpi:PDM*:
|
||||
ID_VENDOR_FROM_DATABASE=Psion Dacom Plc.
|
||||
|
||||
@@ -5563,9 +5637,6 @@
|
||||
@@ -5605,9 +5682,6 @@
|
||||
acpi:PHE*:
|
||||
ID_VENDOR_FROM_DATABASE=Philips Medical Systems Boeblingen GmbH
|
||||
|
||||
|
|
@ -324,7 +314,7 @@
|
|||
acpi:PHL*:
|
||||
ID_VENDOR_FROM_DATABASE=Philips Consumer Electronics Company
|
||||
|
||||
@@ -5656,9 +5727,6 @@
|
||||
@@ -5698,9 +5772,6 @@
|
||||
acpi:PNL*:
|
||||
ID_VENDOR_FROM_DATABASE=Panelview, Inc.
|
||||
|
||||
|
|
@ -334,7 +324,7 @@
|
|||
acpi:PNR*:
|
||||
ID_VENDOR_FROM_DATABASE=Planar Systems, Inc.
|
||||
|
||||
@@ -6136,9 +6204,6 @@
|
||||
@@ -6178,9 +6249,6 @@
|
||||
acpi:RTI*:
|
||||
ID_VENDOR_FROM_DATABASE=Rancho Tech Inc
|
||||
|
||||
|
|
@ -344,7 +334,7 @@
|
|||
acpi:RTL*:
|
||||
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd
|
||||
|
||||
@@ -6313,9 +6378,6 @@
|
||||
@@ -6355,9 +6423,6 @@
|
||||
acpi:SEE*:
|
||||
ID_VENDOR_FROM_DATABASE=SeeColor Corporation
|
||||
|
||||
|
|
@ -354,7 +344,7 @@
|
|||
acpi:SEI*:
|
||||
ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc
|
||||
|
||||
@@ -6799,6 +6861,9 @@
|
||||
@@ -6841,6 +6906,9 @@
|
||||
acpi:SVD*:
|
||||
ID_VENDOR_FROM_DATABASE=SVD Computer
|
||||
|
||||
|
|
@ -364,7 +354,7 @@
|
|||
acpi:SVI*:
|
||||
ID_VENDOR_FROM_DATABASE=Sun Microsystems
|
||||
|
||||
@@ -6883,6 +6948,9 @@
|
||||
@@ -6925,6 +6993,9 @@
|
||||
acpi:SZM*:
|
||||
ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd
|
||||
|
||||
|
|
@ -374,7 +364,7 @@
|
|||
acpi:TAA*:
|
||||
ID_VENDOR_FROM_DATABASE=Tandberg
|
||||
|
||||
@@ -6973,6 +7041,9 @@
|
||||
@@ -7015,6 +7086,9 @@
|
||||
acpi:TDG*:
|
||||
ID_VENDOR_FROM_DATABASE=Six15 Technologies
|
||||
|
||||
|
|
@ -384,7 +374,7 @@
|
|||
acpi:TDM*:
|
||||
ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc
|
||||
|
||||
@@ -7015,6 +7086,9 @@
|
||||
@@ -7057,6 +7131,9 @@
|
||||
acpi:TEV*:
|
||||
ID_VENDOR_FROM_DATABASE=Televés, S.A.
|
||||
|
||||
|
|
@ -394,7 +384,7 @@
|
|||
acpi:TEZ*:
|
||||
ID_VENDOR_FROM_DATABASE=Tech Source Inc.
|
||||
|
||||
@@ -7144,9 +7218,6 @@
|
||||
@@ -7186,9 +7263,6 @@
|
||||
acpi:TNC*:
|
||||
ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd
|
||||
|
||||
|
|
@ -404,7 +394,7 @@
|
|||
acpi:TNM*:
|
||||
ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA
|
||||
|
||||
@@ -7459,14 +7530,14 @@
|
||||
@@ -7501,14 +7575,14 @@
|
||||
acpi:UNC*:
|
||||
ID_VENDOR_FROM_DATABASE=Unisys Corporation
|
||||
|
||||
|
|
@ -425,7 +415,7 @@
|
|||
|
||||
acpi:UNI*:
|
||||
ID_VENDOR_FROM_DATABASE=Uniform Industry Corp.
|
||||
@@ -7501,6 +7572,9 @@
|
||||
@@ -7543,6 +7617,9 @@
|
||||
acpi:USA*:
|
||||
ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG
|
||||
|
||||
|
|
@ -435,7 +425,7 @@
|
|||
acpi:USD*:
|
||||
ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
|
||||
|
||||
@@ -7762,9 +7836,6 @@
|
||||
@@ -7804,9 +7881,6 @@
|
||||
acpi:WAL*:
|
||||
ID_VENDOR_FROM_DATABASE=Wave Access
|
||||
|
||||
|
|
@ -445,7 +435,7 @@
|
|||
acpi:WAV*:
|
||||
ID_VENDOR_FROM_DATABASE=Wavephore
|
||||
|
||||
@@ -7892,7 +7963,7 @@
|
||||
@@ -7934,7 +8008,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=WyreStorm Technologies LLC
|
||||
|
||||
acpi:WYS*:
|
||||
|
|
@ -454,7 +444,7 @@
|
|||
|
||||
acpi:WYT*:
|
||||
ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
|
||||
@@ -7906,9 +7977,6 @@
|
||||
@@ -7948,9 +8022,6 @@
|
||||
acpi:XDM*:
|
||||
ID_VENDOR_FROM_DATABASE=XDM Ltd.
|
||||
|
||||
|
|
@ -464,7 +454,7 @@
|
|||
acpi:XES*:
|
||||
ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
|
||||
|
||||
@@ -7942,9 +8010,6 @@
|
||||
@@ -7984,9 +8055,6 @@
|
||||
acpi:XNT*:
|
||||
ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
|
||||
|
||||
|
|
@ -474,7 +464,7 @@
|
|||
acpi:XQU*:
|
||||
ID_VENDOR_FROM_DATABASE=SHANGHAI SVA-DAV ELECTRONICS CO., LTD
|
||||
|
||||
@@ -8011,6 +8076,9 @@
|
||||
@@ -8053,6 +8121,9 @@
|
||||
acpi:ZBX*:
|
||||
ID_VENDOR_FROM_DATABASE=Zebax Technologies
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ dmi:*:svnSystemmanufacturer:*
|
|||
dmi:*:svnSystemManufacturer:*
|
||||
dmi:*:svnTobefilledbyO.E.M.:*
|
||||
dmi:*:svnToBeFilledByO.E.M.:*
|
||||
ID_SYS_VENDOR_IS_RUBBISH=1
|
||||
ID_SYS_VENDOR_IS_RUBBISH=1
|
||||
|
||||
dmi:*:pnDefaultstring:*
|
||||
dmi:*:pnN/A:*
|
||||
|
|
@ -21,7 +21,7 @@ dmi:*:pnSystemname:*
|
|||
dmi:*:pnSystemName:*
|
||||
dmi:*:pnTobefilledbyO.E.M.:*
|
||||
dmi:*:pnToBeFilledByO.E.M.:*
|
||||
ID_PRODUCT_NAME_IS_RUBBISH=1
|
||||
ID_PRODUCT_NAME_IS_RUBBISH=1
|
||||
|
||||
dmi:*:pvrDefaultstring:*
|
||||
dmi:*:pvrDefault string:*
|
||||
|
|
@ -31,7 +31,7 @@ dmi:*:pvrOEM:*
|
|||
dmi:*:pvrTobefilledbyO.E.M.:*
|
||||
dmi:*:pvrToBeFilledByO.E.M.:*
|
||||
dmi:*:pvrTo Be Filled By O.E.M.:*
|
||||
ID_PRODUCT_VERSION_IS_RUBBISH=1
|
||||
ID_PRODUCT_VERSION_IS_RUBBISH=1
|
||||
|
||||
dmi:*:rvrDefaultstring:*
|
||||
dmi:*:rvrDefault string:*
|
||||
|
|
@ -41,7 +41,7 @@ dmi:*:rvrOEM:*
|
|||
dmi:*:rvrTobefilledbyO.E.M.:*
|
||||
dmi:*:rvrToBeFilledByO.E.M.:*
|
||||
dmi:*:rvrTo Be Filled By O.E.M.:*
|
||||
ID_BOARD_VERSION_IS_RUBBISH=1
|
||||
ID_BOARD_VERSION_IS_RUBBISH=1
|
||||
|
||||
dmi:*:skuDefaultstring:*
|
||||
dmi:*:skuDefault string:*
|
||||
|
|
@ -51,7 +51,7 @@ dmi:*:skuOEM:*
|
|||
dmi:*:skuTobefilledbyO.E.M.:*
|
||||
dmi:*:skuToBeFilledByO.E.M.:*
|
||||
dmi:*:skuTo Be Filled By O.E.M.:*
|
||||
ID_PRODUCT_SKU_IS_RUBBISH=1
|
||||
ID_PRODUCT_SKU_IS_RUBBISH=1
|
||||
|
||||
dmi:*:catDefaultstring:*
|
||||
dmi:*:catDefault string:*
|
||||
|
|
@ -61,13 +61,17 @@ dmi:*:catOEM:*
|
|||
dmi:*:catTobefilledbyO.E.M.:*
|
||||
dmi:*:catToBeFilledByO.E.M.:*
|
||||
dmi:*:catTo Be Filled By O.E.M.:*
|
||||
ID_CHASSIS_ASSET_TAG_IS_RUBBISH=1
|
||||
ID_CHASSIS_ASSET_TAG_IS_RUBBISH=1
|
||||
|
||||
# Fix "Lenovo" capitalization in /sys/class/dmi/id/sys_vendor
|
||||
dmi:bvnLENOVO*
|
||||
ID_SYSFS_ATTRIBUTE_MODEL=product_version
|
||||
ID_VENDOR_FROM_DATABASE=Lenovo
|
||||
ID_SYSFS_ATTRIBUTE_MODEL=product_version
|
||||
ID_VENDOR_FROM_DATABASE=Lenovo
|
||||
|
||||
# Microsoft Surface 1's chassis type
|
||||
dmi:bvnMicrosoft Corporation*:pvrSurface with Windows 8 Pro*
|
||||
ID_CHASSIS=tablet
|
||||
ID_CHASSIS=tablet
|
||||
|
||||
# GPD Pocket 4 chassis type
|
||||
dmi:bvnAmericanMegatrendsInternational*:rvnGPD:rnG1628-04*
|
||||
ID_CHASSIS=convertible
|
||||
|
|
|
|||
|
|
@ -20,6 +20,21 @@ pci:v*d*sv*sd*bc01*
|
|||
pci:v*d*sv*sd*bc01sc00*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=SCSI storage controller
|
||||
|
||||
pci:v*d*sv*sd*bc01sc00i00*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=Vendor specific
|
||||
|
||||
pci:v*d*sv*sd*bc01sc00i11*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=SCSI storage device (SOP target port using PQI)
|
||||
|
||||
pci:v*d*sv*sd*bc01sc00i12*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=SCSI controller (SOP target port using PQI)
|
||||
|
||||
pci:v*d*sv*sd*bc01sc00i13*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=SCSI storage device & controller (SOP target port using PQI)
|
||||
|
||||
pci:v*d*sv*sd*bc01sc00i21*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=SCSI storage device (SOP target port using NVMe)
|
||||
|
||||
pci:v*d*sv*sd*bc01sc01*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=IDE interface
|
||||
|
||||
|
|
@ -56,6 +71,9 @@ pci:v*d*sv*sd*bc01sc03*
|
|||
pci:v*d*sv*sd*bc01sc04*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=RAID bus controller
|
||||
|
||||
pci:v*d*sv*sd*bc01sc04i00*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=Vendor specific
|
||||
|
||||
pci:v*d*sv*sd*bc01sc05*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=ATA controller
|
||||
|
||||
|
|
@ -92,6 +110,9 @@ pci:v*d*sv*sd*bc01sc08i01*
|
|||
pci:v*d*sv*sd*bc01sc08i02*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=NVM Express
|
||||
|
||||
pci:v*d*sv*sd*bc01sc08i03*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=NVM Express administrative controller
|
||||
|
||||
pci:v*d*sv*sd*bc01sc09*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=Universal Flash Storage controller
|
||||
|
||||
|
|
@ -110,6 +131,9 @@ pci:v*d*sv*sd*bc02*
|
|||
pci:v*d*sv*sd*bc02sc00*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
|
||||
|
||||
pci:v*d*sv*sd*bc02sc00i01*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=Ethernet Controller with IDPF Compliant Interface
|
||||
|
||||
pci:v*d*sv*sd*bc02sc01*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=Token ring network controller
|
||||
|
||||
|
|
@ -173,6 +197,12 @@ pci:v*d*sv*sd*bc04sc02*
|
|||
pci:v*d*sv*sd*bc04sc03*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=Audio device
|
||||
|
||||
pci:v*d*sv*sd*bc04sc03i00*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=HDA compatible
|
||||
|
||||
pci:v*d*sv*sd*bc04sc03i80*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=HDA compatible with vendor specific extensions
|
||||
|
||||
pci:v*d*sv*sd*bc04sc80*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia controller
|
||||
|
||||
|
|
@ -192,7 +222,7 @@ pci:v*d*sv*sd*bc05sc02i00*
|
|||
ID_PCI_INTERFACE_FROM_DATABASE=CXL Memory Device - vendor specific
|
||||
|
||||
pci:v*d*sv*sd*bc05sc02i10*
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=CXL Memory Device (CXL 2.x)
|
||||
ID_PCI_INTERFACE_FROM_DATABASE=CXL Memory Device (CXL 2.0 or later)
|
||||
|
||||
pci:v*d*sv*sd*bc05sc80*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=Memory controller
|
||||
|
|
@ -395,6 +425,9 @@ pci:v*d*sv*sd*bc08sc05*
|
|||
pci:v*d*sv*sd*bc08sc06*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=IOMMU
|
||||
|
||||
pci:v*d*sv*sd*bc08sc07*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=Root Complex Event Collector
|
||||
|
||||
pci:v*d*sv*sd*bc08sc80*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=System peripheral
|
||||
|
||||
|
|
@ -533,6 +566,9 @@ pci:v*d*sv*sd*bc0Csc08*
|
|||
pci:v*d*sv*sd*bc0Csc09*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=CANBUS
|
||||
|
||||
pci:v*d*sv*sd*bc0Csc0A*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=MIPI I3C
|
||||
|
||||
pci:v*d*sv*sd*bc0Csc80*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=Serial bus controller
|
||||
|
||||
|
|
@ -555,10 +591,16 @@ pci:v*d*sv*sd*bc0Dsc12*
|
|||
ID_PCI_SUBCLASS_FROM_DATABASE=Broadband
|
||||
|
||||
pci:v*d*sv*sd*bc0Dsc20*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=802.1a controller
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=802.11a 5 GHz controller
|
||||
|
||||
pci:v*d*sv*sd*bc0Dsc21*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=802.1b controller
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=802.11b 2.4 GHz controller
|
||||
|
||||
pci:v*d*sv*sd*bc0Dsc40*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=Cellular controller/modem
|
||||
|
||||
pci:v*d*sv*sd*bc0Dsc41*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=Cellular controller/modem plus Ethernet (802.11)
|
||||
|
||||
pci:v*d*sv*sd*bc0Dsc80*
|
||||
ID_PCI_SUBCLASS_FROM_DATABASE=Wireless controller
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -179,6 +179,9 @@ usb:v*p*d*dc08dsc06dp01*
|
|||
usb:v*p*d*dc08dsc06dp50*
|
||||
ID_USB_PROTOCOL_FROM_DATABASE=Bulk-Only
|
||||
|
||||
usb:v*p*d*dc08dsc06dp62*
|
||||
ID_USB_PROTOCOL_FROM_DATABASE=USB Attached SCSI
|
||||
|
||||
usb:v*p*d*dc09*
|
||||
ID_USB_CLASS_FROM_DATABASE=Hub
|
||||
|
||||
|
|
|
|||
|
|
@ -119,6 +119,12 @@ usb:v017C*
|
|||
usb:v017Cp145F*
|
||||
ID_MODEL_FROM_DATABASE=Trust Deskset
|
||||
|
||||
usb:v019C*
|
||||
ID_VENDOR_FROM_DATABASE=mek
|
||||
|
||||
usb:v019Cp0042*
|
||||
ID_MODEL_FROM_DATABASE=mek_42
|
||||
|
||||
usb:v0200*
|
||||
ID_VENDOR_FROM_DATABASE=TP-Link
|
||||
|
||||
|
|
@ -149,6 +155,15 @@ usb:v02AD*
|
|||
usb:v02ADp138C*
|
||||
ID_MODEL_FROM_DATABASE=PVR Mass Storage
|
||||
|
||||
usb:v0300*
|
||||
ID_VENDOR_FROM_DATABASE=Ajazz
|
||||
|
||||
usb:v0300p1010*
|
||||
ID_MODEL_FROM_DATABASE=Akp153E Desktop Controller
|
||||
|
||||
usb:v0300p1020*
|
||||
ID_MODEL_FROM_DATABASE=AKP153R Desktop Controller
|
||||
|
||||
usb:v0303*
|
||||
ID_VENDOR_FROM_DATABASE=Mini Automation Controller
|
||||
|
||||
|
|
@ -228,7 +243,7 @@ usb:v03E8p8004*
|
|||
ID_MODEL_FROM_DATABASE=Aox 99001
|
||||
|
||||
usb:v03E9*
|
||||
ID_VENDOR_FROM_DATABASE=Thesys Microelectronics
|
||||
ID_VENDOR_FROM_DATABASE=Melexis (formerly Thesys Microelectronics)
|
||||
|
||||
usb:v03EA*
|
||||
ID_VENDOR_FROM_DATABASE=Data Broadcasting Corp.
|
||||
|
|
@ -713,6 +728,12 @@ usb:v03F0p042A*
|
|||
usb:v03F0p0441*
|
||||
ID_MODEL_FROM_DATABASE=Prime [NW280AA, G8X92AA]
|
||||
|
||||
usb:v03F0p046B*
|
||||
ID_MODEL_FROM_DATABASE=Dock G5
|
||||
|
||||
usb:v03F0p0483*
|
||||
ID_MODEL_FROM_DATABASE=Engage Go 10 Tablet
|
||||
|
||||
usb:v03F0p0504*
|
||||
ID_MODEL_FROM_DATABASE=DeskJet 885c
|
||||
|
||||
|
|
@ -740,6 +761,9 @@ usb:v03F0p051D*
|
|||
usb:v03F0p052A*
|
||||
ID_MODEL_FROM_DATABASE=LaserJet M1212nf MFP
|
||||
|
||||
usb:v03F0p0583*
|
||||
ID_MODEL_FROM_DATABASE=Engage Go 10 Tablet
|
||||
|
||||
usb:v03F0p0601*
|
||||
ID_MODEL_FROM_DATABASE=ScanJet 6300c
|
||||
|
||||
|
|
@ -767,6 +791,9 @@ usb:v03F0p0641*
|
|||
usb:v03F0p0653*
|
||||
ID_MODEL_FROM_DATABASE=DeskJet 3700 series
|
||||
|
||||
usb:v03F0p0683*
|
||||
ID_MODEL_FROM_DATABASE=Engage Go 10 Tablet
|
||||
|
||||
usb:v03F0p0701*
|
||||
ID_MODEL_FROM_DATABASE=ScanJet 5300c/5370c
|
||||
|
||||
|
|
@ -917,6 +944,9 @@ usb:v03F0p1104*
|
|||
usb:v03F0p1105*
|
||||
ID_MODEL_FROM_DATABASE=ScanJet 5470c/5490c
|
||||
|
||||
usb:v03F0p110C*
|
||||
ID_MODEL_FROM_DATABASE=Pocket Media Drive
|
||||
|
||||
usb:v03F0p1111*
|
||||
ID_MODEL_FROM_DATABASE=OfficeJet v60
|
||||
|
||||
|
|
@ -2981,6 +3011,9 @@ usb:v0408p3001*
|
|||
usb:v0408p3008*
|
||||
ID_MODEL_FROM_DATABASE=Optical Touch Screen
|
||||
|
||||
usb:v0408p4033*
|
||||
ID_MODEL_FROM_DATABASE=HD Webcam
|
||||
|
||||
usb:v0408pA060*
|
||||
ID_MODEL_FROM_DATABASE=HD Webcam
|
||||
|
||||
|
|
@ -3029,6 +3062,9 @@ usb:v0409p004F*
|
|||
usb:v0409p0050*
|
||||
ID_MODEL_FROM_DATABASE=7-port hub
|
||||
|
||||
usb:v0409p0056*
|
||||
ID_MODEL_FROM_DATABASE=uPD720133 IDE bridge
|
||||
|
||||
usb:v0409p0058*
|
||||
ID_MODEL_FROM_DATABASE=HighSpeed Hub
|
||||
|
||||
|
|
@ -4400,6 +4436,9 @@ usb:v041Ep4097*
|
|||
usb:v041Ep4099*
|
||||
ID_MODEL_FROM_DATABASE=Creative VF0800 [RealSense Camera SR300]
|
||||
|
||||
usb:v041Ep40A3*
|
||||
ID_MODEL_FROM_DATABASE=Live! Cam V3 2K [VF-0900]
|
||||
|
||||
usb:v041Ep4100*
|
||||
ID_MODEL_FROM_DATABASE=Nomad Jukebox 2
|
||||
|
||||
|
|
@ -5819,6 +5858,9 @@ usb:v043Dp010F*
|
|||
usb:v043Dp0142*
|
||||
ID_MODEL_FROM_DATABASE=X3650 (Printer, Scanner, Copier)
|
||||
|
||||
usb:v043Dp01BD*
|
||||
ID_MODEL_FROM_DATABASE=S800 Series Scanner
|
||||
|
||||
usb:v043Dp01FA*
|
||||
ID_MODEL_FROM_DATABASE=S310 series
|
||||
|
||||
|
|
@ -5888,6 +5930,9 @@ usb:v043Ep9A11*
|
|||
usb:v043Ep9A39*
|
||||
ID_MODEL_FROM_DATABASE=27UP850 - WK.AEUDCSN - External Monitor 4K
|
||||
|
||||
usb:v043Ep9A57*
|
||||
ID_MODEL_FROM_DATABASE=UltraGear Monitor
|
||||
|
||||
usb:v043Ep9C01*
|
||||
ID_MODEL_FROM_DATABASE=LGE Sync
|
||||
|
||||
|
|
@ -5963,6 +6008,9 @@ usb:v044E*
|
|||
usb:v044Ep1104*
|
||||
ID_MODEL_FROM_DATABASE=Japanese Keyboard
|
||||
|
||||
usb:v044Ep1218*
|
||||
ID_MODEL_FROM_DATABASE=Electric Touchpad
|
||||
|
||||
usb:v044Ep2002*
|
||||
ID_MODEL_FROM_DATABASE=MD-5500 Printer
|
||||
|
||||
|
|
@ -8153,6 +8201,12 @@ usb:v046Ap01A4*
|
|||
usb:v046Ap01A6*
|
||||
ID_MODEL_FROM_DATABASE=MX BOARD 2.0S FL RGB DE Keyboard
|
||||
|
||||
usb:v046Ap0201*
|
||||
ID_MODEL_FROM_DATABASE=Smart Board 1150
|
||||
|
||||
usb:v046Ap0202*
|
||||
ID_MODEL_FROM_DATABASE=Smart Terminal 1150
|
||||
|
||||
usb:v046ApB090*
|
||||
ID_MODEL_FROM_DATABASE=Keyboard
|
||||
|
||||
|
|
@ -8495,6 +8549,9 @@ usb:v046Dp08E0*
|
|||
usb:v046Dp08E1*
|
||||
ID_MODEL_FROM_DATABASE=Labtec Webcam
|
||||
|
||||
usb:v046Dp08E4*
|
||||
ID_MODEL_FROM_DATABASE=C505e HD Webcam
|
||||
|
||||
usb:v046Dp08E5*
|
||||
ID_MODEL_FROM_DATABASE=C920 PRO HD Webcam
|
||||
|
||||
|
|
@ -8948,6 +9005,9 @@ usb:v046DpC092*
|
|||
usb:v046DpC093*
|
||||
ID_MODEL_FROM_DATABASE=M500s Optical Mouse
|
||||
|
||||
usb:v046DpC09D*
|
||||
ID_MODEL_FROM_DATABASE=G102 LIGHTSYNC Gaming Mouse
|
||||
|
||||
usb:v046DpC101*
|
||||
ID_MODEL_FROM_DATABASE=UltraX Media Remote
|
||||
|
||||
|
|
@ -9122,6 +9182,9 @@ usb:v046DpC24E*
|
|||
usb:v046DpC24F*
|
||||
ID_MODEL_FROM_DATABASE=G29 Driving Force Racing Wheel [PS3]
|
||||
|
||||
usb:v046DpC251*
|
||||
ID_MODEL_FROM_DATABASE=GamePanel for Dell XPS M1730
|
||||
|
||||
usb:v046DpC260*
|
||||
ID_MODEL_FROM_DATABASE=G29 Driving Force Racing Wheel [PS4]
|
||||
|
||||
|
|
@ -9161,6 +9224,9 @@ usb:v046DpC298*
|
|||
usb:v046DpC299*
|
||||
ID_MODEL_FROM_DATABASE=G25 Racing Wheel
|
||||
|
||||
usb:v046DpC29A*
|
||||
ID_MODEL_FROM_DATABASE=Driving Force GT
|
||||
|
||||
usb:v046DpC29B*
|
||||
ID_MODEL_FROM_DATABASE=G27 Racing Wheel
|
||||
|
||||
|
|
@ -9272,6 +9338,9 @@ usb:v046DpC336*
|
|||
usb:v046DpC33A*
|
||||
ID_MODEL_FROM_DATABASE=G413 Gaming Keyboard
|
||||
|
||||
usb:v046DpC33E*
|
||||
ID_MODEL_FROM_DATABASE=G915 Mechanical Keyboard
|
||||
|
||||
usb:v046DpC33F*
|
||||
ID_MODEL_FROM_DATABASE=G815 Mechanical Keyboard
|
||||
|
||||
|
|
@ -10019,6 +10088,9 @@ usb:v047CpFFFF*
|
|||
usb:v047D*
|
||||
ID_VENDOR_FROM_DATABASE=Kensington
|
||||
|
||||
usb:v047Dp00F2*
|
||||
ID_MODEL_FROM_DATABASE=VeriMark Desktop
|
||||
|
||||
usb:v047Dp1001*
|
||||
ID_MODEL_FROM_DATABASE=Mouse*in*a*Box
|
||||
|
||||
|
|
@ -10616,6 +10688,9 @@ usb:v0486*
|
|||
usb:v0486p0185*
|
||||
ID_MODEL_FROM_DATABASE=EeePC T91MT HID Touch Panel
|
||||
|
||||
usb:v0486p573C*
|
||||
ID_MODEL_FROM_DATABASE=Xreal Light Microcontroller
|
||||
|
||||
usb:v0487*
|
||||
ID_VENDOR_FROM_DATABASE=Stewart Connector
|
||||
|
||||
|
|
@ -10931,6 +11006,9 @@ usb:v0499p1037*
|
|||
usb:v0499p103C*
|
||||
ID_MODEL_FROM_DATABASE=MOTIF-RACK ES
|
||||
|
||||
usb:v0499p1045*
|
||||
ID_MODEL_FROM_DATABASE=MM6
|
||||
|
||||
usb:v0499p1054*
|
||||
ID_MODEL_FROM_DATABASE=S90XS Keyboard/Music Synthesizer
|
||||
|
||||
|
|
@ -11618,6 +11696,9 @@ usb:v04A9p106E*
|
|||
usb:v04A9p1070*
|
||||
ID_MODEL_FROM_DATABASE=S530D
|
||||
|
||||
usb:v04A9p1071*
|
||||
ID_MODEL_FROM_DATABASE=Sony MPR-501
|
||||
|
||||
usb:v04A9p1072*
|
||||
ID_MODEL_FROM_DATABASE=I850 Printer
|
||||
|
||||
|
|
@ -11627,6 +11708,9 @@ usb:v04A9p1073*
|
|||
usb:v04A9p1074*
|
||||
ID_MODEL_FROM_DATABASE=S330 Printer
|
||||
|
||||
usb:v04A9p1075*
|
||||
ID_MODEL_FROM_DATABASE=Sony MPR-505
|
||||
|
||||
usb:v04A9p1076*
|
||||
ID_MODEL_FROM_DATABASE=i70
|
||||
|
||||
|
|
@ -12101,6 +12185,9 @@ usb:v04A9p178D*
|
|||
usb:v04A9p180B*
|
||||
ID_MODEL_FROM_DATABASE=PIXMA MG3000 series
|
||||
|
||||
usb:v04A9p183B*
|
||||
ID_MODEL_FROM_DATABASE=PIXMA MG3110 Series
|
||||
|
||||
usb:v04A9p1856*
|
||||
ID_MODEL_FROM_DATABASE=PIXMA TS6250
|
||||
|
||||
|
|
@ -12122,6 +12209,9 @@ usb:v04A9p1906*
|
|||
usb:v04A9p1907*
|
||||
ID_MODEL_FROM_DATABASE=CanoScan LiDE 700F
|
||||
|
||||
usb:v04A9p1908*
|
||||
ID_MODEL_FROM_DATABASE=CanoScan 9000F
|
||||
|
||||
usb:v04A9p1909*
|
||||
ID_MODEL_FROM_DATABASE=CanoScan LiDE 110
|
||||
|
||||
|
|
@ -13805,6 +13895,9 @@ usb:v04B0p0436*
|
|||
usb:v04B0p043F*
|
||||
ID_MODEL_FROM_DATABASE=D5600
|
||||
|
||||
usb:v04B0p0455*
|
||||
ID_MODEL_FROM_DATABASE=Z50II
|
||||
|
||||
usb:v04B0p0F03*
|
||||
ID_MODEL_FROM_DATABASE=PD-10 Wireless Printer Adapter
|
||||
|
||||
|
|
@ -14663,9 +14756,15 @@ usb:v04B8p0892*
|
|||
usb:v04B8p0893*
|
||||
ID_MODEL_FROM_DATABASE=EP-774A
|
||||
|
||||
usb:v04B8p08D1*
|
||||
ID_MODEL_FROM_DATABASE=L220/L360 Series
|
||||
|
||||
usb:v04B8p0E03*
|
||||
ID_MODEL_FROM_DATABASE=Thermal Receipt Printer [TM-T20]
|
||||
|
||||
usb:v04B8p0E31*
|
||||
ID_MODEL_FROM_DATABASE=Thermal Receipt Printer [TM-L100]
|
||||
|
||||
usb:v04B8p1114*
|
||||
ID_MODEL_FROM_DATABASE=XP-440 [Expression Home Small-in-One Printer]
|
||||
|
||||
|
|
@ -14678,6 +14777,24 @@ usb:v04B8p1129*
|
|||
usb:v04B8p1168*
|
||||
ID_MODEL_FROM_DATABASE=Workforce WF-7820/7840 Series
|
||||
|
||||
usb:v04B8p1186*
|
||||
ID_MODEL_FROM_DATABASE=ET-2820 Series [ET-2820 EcoTank All-in-One]
|
||||
|
||||
usb:v04B8p118A*
|
||||
ID_MODEL_FROM_DATABASE=ET-2810/L3250 Series [EcoTank ET-2810/L3250]
|
||||
|
||||
usb:v04B8p118B*
|
||||
ID_MODEL_FROM_DATABASE=ET-2850/L4260 Series [EcoTank ET-2850/L4260]
|
||||
|
||||
usb:v04B8p11B0*
|
||||
ID_MODEL_FROM_DATABASE=XP-4200 Series [Expression Home XP-4200]
|
||||
|
||||
usb:v04B8p11B9*
|
||||
ID_MODEL_FROM_DATABASE=ET-2830/L3550 Series [EcoTank ET-2830/L3550]
|
||||
|
||||
usb:v04B8p11C8*
|
||||
ID_MODEL_FROM_DATABASE=ET-2860/L3270 Series [EcoTank ET-2860/L3270]
|
||||
|
||||
usb:v04B9*
|
||||
ID_VENDOR_FROM_DATABASE=Rainbow Technologies, Inc.
|
||||
|
||||
|
|
@ -14930,6 +15047,15 @@ usb:v04BFp1304*
|
|||
usb:v04BFp1305*
|
||||
ID_MODEL_FROM_DATABASE=i3 Multi Sensing Module
|
||||
|
||||
usb:v04BFp1400*
|
||||
ID_MODEL_FROM_DATABASE=Javelin Module Recovery
|
||||
|
||||
usb:v04BFp1401*
|
||||
ID_MODEL_FROM_DATABASE=Javelin Module
|
||||
|
||||
usb:v04BFp1500*
|
||||
ID_MODEL_FROM_DATABASE=Gas sensor demo board
|
||||
|
||||
usb:v04C1*
|
||||
ID_VENDOR_FROM_DATABASE=U.S. Robotics (3Com)
|
||||
|
||||
|
|
@ -15044,9 +15170,15 @@ usb:v04C5p125A*
|
|||
usb:v04C5p132E*
|
||||
ID_MODEL_FROM_DATABASE=fi-7160
|
||||
|
||||
usb:v04C5p1526*
|
||||
ID_MODEL_FROM_DATABASE=PalmSecure-F Pro
|
||||
|
||||
usb:v04C5p159F*
|
||||
ID_MODEL_FROM_DATABASE=ScanSnap iX1500
|
||||
|
||||
usb:v04C5p15FF*
|
||||
ID_MODEL_FROM_DATABASE=Fi-8170 Document Scanner [Ricoh fi-8170: High Performance Desktop Scanner - PFU]
|
||||
|
||||
usb:v04C5p200F*
|
||||
ID_MODEL_FROM_DATABASE=Sigma DP2 (Mass Storage)
|
||||
|
||||
|
|
@ -15143,6 +15275,9 @@ usb:v04CAp3014*
|
|||
usb:v04CAp3015*
|
||||
ID_MODEL_FROM_DATABASE=Qualcomm Atheros QCA9377 Bluetooth
|
||||
|
||||
usb:v04CAp3802*
|
||||
ID_MODEL_FROM_DATABASE=MediaTek Bluetooth MT7921
|
||||
|
||||
usb:v04CAp7022*
|
||||
ID_MODEL_FROM_DATABASE=HP HD Webcam
|
||||
|
||||
|
|
@ -40268,9 +40403,15 @@ usb:v0B0Dp0000*
|
|||
usb:v0B0E*
|
||||
ID_VENDOR_FROM_DATABASE=GN Netcom
|
||||
|
||||
usb:v0B0Ep0301*
|
||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE 20
|
||||
|
||||
usb:v0B0Ep0305*
|
||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE Link MS
|
||||
|
||||
usb:v0B0Ep030C*
|
||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE 65
|
||||
|
||||
usb:v0B0Ep0311*
|
||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE 65
|
||||
|
||||
|
|
@ -40325,6 +40466,21 @@ usb:v0B0Ep2456*
|
|||
usb:v0B0Ep245E*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Link 370
|
||||
|
||||
usb:v0B0Ep248A*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Elite 85h
|
||||
|
||||
usb:v0B0Ep24B8*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Evolve2 65
|
||||
|
||||
usb:v0B0Ep24BB*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Evolve2 85
|
||||
|
||||
usb:v0B0Ep24C9*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Link 380
|
||||
|
||||
usb:v0B0Ep24CA*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Link 380
|
||||
|
||||
usb:v0B0Ep620C*
|
||||
ID_MODEL_FROM_DATABASE=Jabra BT620s
|
||||
|
||||
|
|
@ -45938,6 +46094,24 @@ usb:v0E25*
|
|||
usb:v0E26*
|
||||
ID_VENDOR_FROM_DATABASE=J-Phone East Co., Ltd
|
||||
|
||||
usb:v0E2C*
|
||||
ID_VENDOR_FROM_DATABASE=Materialise Motion NV
|
||||
|
||||
usb:v0E2Cp0012*
|
||||
ID_MODEL_FROM_DATABASE=footscan pressure plate (0.5m)
|
||||
|
||||
usb:v0E2Cp0013*
|
||||
ID_MODEL_FROM_DATABASE=footscan pressure plate (1.0m)
|
||||
|
||||
usb:v0E2Cp0018*
|
||||
ID_MODEL_FROM_DATABASE=footscan 2D interface box
|
||||
|
||||
usb:v0E2Cp0020*
|
||||
ID_MODEL_FROM_DATABASE=footscan pressure plate (1.5m)
|
||||
|
||||
usb:v0E2Cp002D*
|
||||
ID_MODEL_FROM_DATABASE=footscan heavy duty pressure plate (1.0m)
|
||||
|
||||
usb:v0E2E*
|
||||
ID_VENDOR_FROM_DATABASE=Brady Worldwide, Inc.
|
||||
|
||||
|
|
|
|||
|
|
@ -84,8 +84,10 @@ usb:v1C7Ap0571*
|
|||
# Supported by libfprint driver egismoc
|
||||
usb:v1C7Ap0582*
|
||||
usb:v1C7Ap0583*
|
||||
usb:v1C7Ap0584*
|
||||
usb:v1C7Ap0586*
|
||||
usb:v1C7Ap0587*
|
||||
usb:v1C7Ap0588*
|
||||
usb:v1C7Ap05A1*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
|
@ -167,6 +169,9 @@ usb:v04F3p0C99*
|
|||
usb:v04F3p0C9D*
|
||||
usb:v04F3p0C9F*
|
||||
usb:v04F3p0CA3*
|
||||
usb:v04F3p0CA7*
|
||||
usb:v04F3p0CA8*
|
||||
usb:v04F3p0CB0*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
|
|
@ -178,16 +183,21 @@ usb:v1C7Ap0603*
|
|||
# Supported by libfprint driver focaltech_moc
|
||||
usb:v2808p9E48*
|
||||
usb:v2808pD979*
|
||||
usb:v2808pA27A*
|
||||
usb:v2808pA959*
|
||||
usb:v2808pA99A*
|
||||
usb:v2808pA57A*
|
||||
usb:v2808pA78A*
|
||||
usb:v2808p1579*
|
||||
usb:v2808p077A*
|
||||
usb:v2808p079A*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
# Supported by libfprint driver fpcmoc
|
||||
usb:v10A5pFFE0*
|
||||
usb:v10A5pA305*
|
||||
usb:v10A5pA306*
|
||||
usb:v10A5pDA04*
|
||||
usb:v10A5pD805*
|
||||
usb:v10A5pD205*
|
||||
|
|
@ -230,6 +240,7 @@ usb:v27C6p659C*
|
|||
usb:v27C6p6A94*
|
||||
usb:v27C6p6512*
|
||||
usb:v27C6p689A*
|
||||
usb:v27C6p66A9*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
|
|
@ -241,6 +252,7 @@ usb:v298Dp1010*
|
|||
# Supported by libfprint driver realtek
|
||||
usb:v0BDAp5813*
|
||||
usb:v0BDAp5816*
|
||||
usb:v2541pFA03*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
|
|
@ -250,6 +262,7 @@ usb:v06CBp00C2*
|
|||
usb:v06CBp00C4*
|
||||
usb:v06CBp00C6*
|
||||
usb:v06CBp00DF*
|
||||
usb:v06CBp00E9*
|
||||
usb:v06CBp00F0*
|
||||
usb:v06CBp00F9*
|
||||
usb:v06CBp00FC*
|
||||
|
|
@ -259,16 +272,21 @@ usb:v06CBp0104*
|
|||
usb:v06CBp0106*
|
||||
usb:v06CBp0107*
|
||||
usb:v06CBp0108*
|
||||
usb:v06CBp0109*
|
||||
usb:v06CBp010A*
|
||||
usb:v06CBp0123*
|
||||
usb:v06CBp0124*
|
||||
usb:v06CBp0126*
|
||||
usb:v06CBp0129*
|
||||
usb:v06CBp015F*
|
||||
usb:v06CBp0168*
|
||||
usb:v06CBp0169*
|
||||
usb:v06CBp016C*
|
||||
usb:v06CBp0173*
|
||||
usb:v06CBp0174*
|
||||
usb:v06CBp019D*
|
||||
usb:v06CBp019F*
|
||||
usb:v06CBp01A0*
|
||||
ID_AUTOSUSPEND=1
|
||||
ID_PERSIST=0
|
||||
|
||||
|
|
@ -372,10 +390,12 @@ usb:v06CBp0088*
|
|||
usb:v06CBp008A*
|
||||
usb:v06CBp009A*
|
||||
usb:v06CBp009B*
|
||||
usb:v06CBp00A1*
|
||||
usb:v06CBp00A2*
|
||||
usb:v06CBp00A8*
|
||||
usb:v06CBp00B7*
|
||||
usb:v06CBp00BB*
|
||||
usb:v06CBp00BC*
|
||||
usb:v06CBp00BE*
|
||||
usb:v06CBp00CB*
|
||||
usb:v06CBp00C9*
|
||||
|
|
@ -384,7 +404,6 @@ usb:v06CBp00DA*
|
|||
usb:v06CBp00DC*
|
||||
usb:v06CBp00E4*
|
||||
usb:v06CBp00E7*
|
||||
usb:v06CBp00E9*
|
||||
usb:v06CBp00FD*
|
||||
usb:v06CBp00FF*
|
||||
usb:v0A5Cp5801*
|
||||
|
|
@ -405,9 +424,11 @@ usb:v0A5Cp5867*
|
|||
usb:v0BDAp5812*
|
||||
usb:v10A5p0007*
|
||||
usb:v10A5p9200*
|
||||
usb:v10A5p9201*
|
||||
usb:v10A5p9800*
|
||||
usb:v10A5pA120*
|
||||
usb:v10A5pA900*
|
||||
usb:v10A5pA921*
|
||||
usb:v10A5pE340*
|
||||
usb:v1188p9545*
|
||||
usb:v138Ap0007*
|
||||
|
|
@ -428,7 +449,6 @@ usb:v16D1p1027*
|
|||
usb:v1C7Ap0300*
|
||||
usb:v1C7Ap0575*
|
||||
usb:v1C7Ap0576*
|
||||
usb:v1C7Ap0584*
|
||||
usb:v1C7Ap0577*
|
||||
usb:v1C7Ap057E*
|
||||
usb:v2541p0236*
|
||||
|
|
@ -462,12 +482,14 @@ usb:v27C6p5E0A*
|
|||
usb:v27C6p581A*
|
||||
usb:v27C6p589A*
|
||||
usb:v27C6p5F10*
|
||||
usb:v27C6p5F91*
|
||||
usb:v27C6p6382*
|
||||
usb:v2808p9338*
|
||||
usb:v2808p9348*
|
||||
usb:v2808p93A9*
|
||||
usb:v2808pA658*
|
||||
usb:v2808pC652*
|
||||
usb:v2808pA553*
|
||||
usb:v298Dp2020*
|
||||
usb:v298Dp2033*
|
||||
usb:v2DF0p0003*
|
||||
|
|
|
|||
|
|
@ -96,6 +96,10 @@ usb:v2CB7p0007*
|
|||
ID_AUTOSUSPEND=1
|
||||
ID_AUTOSUSPEND_DELAY_MS=7000
|
||||
|
||||
# Dell Computer Corp. DW5826e Qualcomm Snapdragon X12 Global LTE-A
|
||||
usb:v413Cp8217*
|
||||
ID_AUTOSUSPEND=1
|
||||
|
||||
#########################################
|
||||
# Wacom
|
||||
#########################################
|
||||
|
|
|
|||
|
|
@ -132,6 +132,13 @@ evdev:input:b0003v05ACp025B*
|
|||
EVDEV_ABS_35=::94
|
||||
EVDEV_ABS_36=::92
|
||||
|
||||
# MacbookPro12,1 (unibody, Early 2015)
|
||||
evdev:input:b0003v05ACp0273*
|
||||
EVDEV_ABS_00=::97
|
||||
EVDEV_ABS_01=::92
|
||||
EVDEV_ABS_35=::97
|
||||
EVDEV_ABS_36=::92
|
||||
|
||||
# MacBook8,1 (2015), MacBook9,1 (2016), MacBook10,1 (2017)
|
||||
evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBook8,1:*
|
||||
evdev:name:Apple SPI Touchpad:dmi:*:svnAppleInc.:pnMacBook9,1:*
|
||||
|
|
@ -697,6 +704,13 @@ evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapadY700-14ISK:*
|
|||
EVDEV_ABS_35=::27
|
||||
EVDEV_ABS_36=::29
|
||||
|
||||
#Lenovo Y50-70
|
||||
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoY50-70**
|
||||
EVDEV_ABS_00=164:3918:37
|
||||
EVDEV_ABS_01=120:1935:26
|
||||
EVDEV_ABS_35=164:3918:37
|
||||
EVDEV_ABS_36=120:1935:26
|
||||
|
||||
# Lenovo Ideapad 310S-14ISK
|
||||
evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoideapad310S-14ISK:*
|
||||
EVDEV_ABS_00=113:3960:37
|
||||
|
|
@ -746,11 +760,15 @@ evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoU41-70:*
|
|||
EVDEV_ABS_35=117:3958:36
|
||||
EVDEV_ABS_36=104:1960:26
|
||||
|
||||
# Lenovo Thinkpad T490 and T14/P14s Gen1/2
|
||||
# Lenovo Thinkpad T490/T495 and T14/P14s Gen1/2 (identical chassis)
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT490:*
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT495:*
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT14Gen1:*
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT14Gen2a:*
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT14Gen2i:*
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadP14sGen1:*
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadP14sGen2a:*
|
||||
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadP14sGen2i:*
|
||||
EVDEV_ABS_00=::44
|
||||
EVDEV_ABS_01=::52
|
||||
EVDEV_ABS_35=::44
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#
|
||||
# Match string formats:
|
||||
# id-input:modalias:<modalias>
|
||||
# id-input:<bus>:v<vid>p<pid>:name:<name>:*
|
||||
#
|
||||
# To add local entries, create a new file
|
||||
# /etc/udev/hwdb.d/61-input-id-local.hwdb
|
||||
|
|
@ -47,9 +48,20 @@
|
|||
# id-input:modalias:input:b0003v1234pABCD*
|
||||
# ID_INPUT_TOUCHPAD=1
|
||||
# ID_INPUT=1
|
||||
#
|
||||
# id-input:usb:v12abp34cd:name:SomeVendor *:*
|
||||
# ID_INPUT_TOUCHPAD=1
|
||||
# ID_INPUT=1
|
||||
#
|
||||
# For technical reasons the hexadecimal vid/pid in the modalias match are
|
||||
# uppercase but lowercase in the bus/vid/pid/name match.
|
||||
|
||||
# Sort by brand, model
|
||||
|
||||
# Any i2c device with a Mouse suffix in the name is not a pointing stick
|
||||
id-input:i2c:*:name:*Mouse:
|
||||
ID_INPUT_POINTINGSTICK=0
|
||||
|
||||
# Code Mercenaries Hard- und Software GmbH Virtual RC USB
|
||||
id-input:modalias:input:b0003v07C0p1125*
|
||||
ID_INPUT_MOUSE=
|
||||
|
|
|
|||
|
|
@ -155,8 +155,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspireA317-33:*
|
|||
# Acer Aspire One AO532h
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAO532h:*
|
||||
KEYBOARD_KEY_84=bluetooth
|
||||
KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
|
||||
KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
|
||||
KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
|
||||
KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
|
||||
|
||||
# Acer Aspire One AOD270 (Atom N2600) and its Packard Bell Dot SC rebrand
|
||||
evdev:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOD270*:*
|
||||
|
|
@ -165,8 +165,8 @@ evdev:name:Acer WMI hotkeys:dmi:*:svnPackardBell:pndots:*:rvnPackardBell:rnSJE01
|
|||
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOD270*:*
|
||||
evdev:atkbd:dmi:*:svnPackardBell:pndots:*:rvnPackardBell:rnSJE01_CT:*
|
||||
KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
|
||||
KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
|
||||
KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
|
||||
KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
|
||||
|
||||
# Predator PT314-52s
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredator*PT314-52s:pvr*
|
||||
|
|
@ -237,12 +237,15 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-47:pvr*
|
|||
|
||||
# Nitro AN515-58
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
|
||||
KEYBOARD_KEY_ef=kbdillumup # Fn+F10
|
||||
KEYBOARD_KEY_f0=kbdillumdown # Fn+F9
|
||||
KEYBOARD_KEY_8a=micmute # Microphone mute button
|
||||
KEYBOARD_KEY_55=power
|
||||
|
||||
# Nitro ANV15-51
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*ANV*15-51:pvr*
|
||||
KEYBOARD_KEY_66=micmute # Microphone mute button
|
||||
KEYBOARD_KEY_f5=prog1 # NitroSense button
|
||||
|
||||
###########################################################
|
||||
# Alienware
|
||||
|
|
@ -250,7 +253,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*ANV*15-51:pvr*
|
|||
|
||||
# Alienware/Dell reserves these keys; safe to apply on all their devices
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pn*:*
|
||||
KEYBOARD_KEY_68=!prog3 # Fn+f1 Performance mode toggle
|
||||
KEYBOARD_KEY_68=!performance # Fn+f1 Performance mode toggle
|
||||
KEYBOARD_KEY_81=touchpad_toggle # Touchpad toggle
|
||||
KEYBOARD_KEY_8a=ejectcd
|
||||
KEYBOARD_KEY_92=macro1 # Fn+f2
|
||||
|
|
@ -284,6 +287,9 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*:*
|
|||
KEYBOARD_KEY_ee=volumedown
|
||||
KEYBOARD_KEY_ef=mute
|
||||
|
||||
evdev:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*M1607KA*:*
|
||||
KEYBOARD_KEY_7e=prog2 # Fn+F8, launch emoji keyboard
|
||||
|
||||
# Asus TF103C misses the home button in its PNP0C40 GPIO resources
|
||||
# causing the volume-button mappings to be off by one, correct this
|
||||
evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*
|
||||
|
|
@ -303,10 +309,10 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:100003:dmi:*:svnASUSTeKCOMPUTERINC
|
|||
# All four of these buttons generate a multi-scancode sequence
|
||||
# consisting of Left_Meta, Right_Ctrl and another scancode.
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAYANEO:pnKUN:pvr*
|
||||
KEYBOARD_KEY_18=f15 # LC (next to the left shoulder button)
|
||||
KEYBOARD_KEY_20=f16 # RC (next to the right shoulder button)
|
||||
KEYBOARD_KEY_28=f17 # Ayaneo (lower-right corner of screen)
|
||||
KEYBOARD_KEY_30=f18 # Touchpad Mode (top-right corner of screen)
|
||||
KEYBOARD_KEY_18=f15 # LC (next to the left shoulder button)
|
||||
KEYBOARD_KEY_20=f16 # RC (next to the right shoulder button)
|
||||
KEYBOARD_KEY_28=f17 # Ayaneo (lower-right corner of screen)
|
||||
KEYBOARD_KEY_30=f18 # Touchpad Mode (top-right corner of screen)
|
||||
|
||||
# Most AYANEO devices expose an AT Translated Set 2 Keyboard
|
||||
# for either three or four additional buttons not available
|
||||
|
|
@ -314,11 +320,13 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAYANEO:pnKUN:pvr*
|
|||
# multi-scancode sequence. The specific preceding codes
|
||||
# depend on the model, but the final scancode is always the
|
||||
# same.
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnAYA NEO:*
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnAYADEVICE:*
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnAYANEO:*
|
||||
KEYBOARD_KEY_66=f15 # LC (All models)
|
||||
KEYBOARD_KEY_67=f16 # RC (All models)
|
||||
KEYBOARD_KEY_68=f17 # Ayaneo (All models)
|
||||
KEYBOARD_KEY_69=f18 # Touchpad Mode (Kun only)
|
||||
KEYBOARD_KEY_66=f15 # LC (All models)
|
||||
KEYBOARD_KEY_67=f16 # RC (All models)
|
||||
KEYBOARD_KEY_68=f17 # Ayaneo (All models)
|
||||
KEYBOARD_KEY_69=f18 # Touchpad Mode (Kun only)
|
||||
|
||||
###########################################################
|
||||
# BenQ
|
||||
|
|
@ -340,6 +348,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNotebook:pnW65_67SZ:*
|
|||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS50_70MU:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4XMB,ME,MZ:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS5x_NS7xPU:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV64x_V65xAU:*
|
||||
KEYBOARD_KEY_f7=touchpad_toggle # Touchpad Toggle
|
||||
KEYBOARD_KEY_f8=touchpad_toggle # Touchpad Toggle
|
||||
|
||||
|
|
@ -392,7 +401,7 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:bvn*:bvr*:bd*:svncube:pni1-T
|
|||
###########################################################
|
||||
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
|
||||
KEYBOARD_KEY_68=!prog2 # G-Mode (Dell-specific)
|
||||
KEYBOARD_KEY_68=!performance # G-Mode (Dell-specific)
|
||||
KEYBOARD_KEY_81=playpause # Play/Pause
|
||||
KEYBOARD_KEY_82=stopcd # Stop
|
||||
KEYBOARD_KEY_83=previoussong # Previous song
|
||||
|
|
@ -432,13 +441,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1210:*
|
|||
|
||||
# Dell Inspiron 11 3168
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron11-3168:pvr*
|
||||
KEYBOARD_KEY_c7=!home # Fn-LeftArrow
|
||||
KEYBOARD_KEY_cf=!end # Fn-RightArrow
|
||||
KEYBOARD_KEY_c9=!pageup # Fn-UpArrow
|
||||
KEYBOARD_KEY_d1=!pagedown # Fn-DownArrow
|
||||
KEYBOARD_KEY_c7=!home # Fn-LeftArrow
|
||||
KEYBOARD_KEY_cf=!end # Fn-RightArrow
|
||||
KEYBOARD_KEY_c9=!pageup # Fn-UpArrow
|
||||
KEYBOARD_KEY_d1=!pagedown # Fn-DownArrow
|
||||
|
||||
# Dell Inspiron 1520 and Latitude 2110
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1520:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*3505:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*2110:*
|
||||
KEYBOARD_KEY_85=unknown # Brightness Down, also emitted by acpi-video, ignore
|
||||
KEYBOARD_KEY_86=unknown # Brightness Up, also emitted by acpi-video, ignore
|
||||
|
|
@ -504,7 +514,7 @@ evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
|
|||
|
||||
# Dell Professional Sound Bar AE515
|
||||
evdev:input:b0003v413CpA506*
|
||||
KEYBOARD_KEY_b002f=micmute # Mic mute toggle
|
||||
KEYBOARD_KEY_b002f=micmute # Mic mute toggle
|
||||
|
||||
###########################################################
|
||||
# Everex
|
||||
|
|
@ -657,6 +667,11 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][aA][bB][lL][eE][tT]*:*
|
|||
KEYBOARD_KEY_86=pageup
|
||||
KEYBOARD_KEY_87=pagedown
|
||||
|
||||
# OmniBook Ultra Flip Laptop 14-fh0xxx
|
||||
evdev:atkbd:dmi:*:svnHP:pnHPOmniBookUltraFlipLaptop14-fh0xxx:*
|
||||
KEYBOARD_KEY_82=unknown # Mic mute, handled by hp-wmi
|
||||
KEYBOARD_KEY_ab=!unknown # Brightness Down and Up keys, handled by acpi-video
|
||||
|
||||
# Pavilion
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:*
|
||||
|
|
@ -698,15 +713,15 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx360Convertible13*:*
|
|||
evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pn*HP[sS][pP][eE][cC][tT][rR][eE]*x3602-in-1*:*
|
||||
# ENVY x360
|
||||
evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx360Convertible*:*
|
||||
evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx3602-in-1*:*
|
||||
evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHP[eE][nN][vV][yY]x3602-in-1*:*
|
||||
KEYBOARD_KEY_08=unknown # Prevents random airplane mode activation
|
||||
|
||||
# HP Elite x2 1013 G3
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHPElitex21013G3:*
|
||||
KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
|
||||
KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
|
||||
KEYBOARD_KEY_64=calendar
|
||||
KEYBOARD_KEY_81=micmute # Microphone mute button
|
||||
KEYBOARD_KEY_ee=switchvideomode # Switch display outputs
|
||||
KEYBOARD_KEY_81=micmute # Microphone mute button
|
||||
KEYBOARD_KEY_ee=switchvideomode # Switch display outputs
|
||||
KEYBOARD_KEY_92=brightnessdown
|
||||
KEYBOARD_KEY_97=brightnessup
|
||||
|
||||
|
|
@ -741,14 +756,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2570p*:*
|
|||
evdev:atkbd:dmi:bvncoreboot:bvr*:bd*:svnHewlett-Packard*:pn*EliteBook2170p:*
|
||||
evdev:atkbd:dmi:bvncoreboot:bvr*:bd*:svnHP*:pn*EliteBook2170p:*
|
||||
KEYBOARD_KEY_66=backspace
|
||||
KEYBOARD_KEY_be=battery # Fn+F2
|
||||
KEYBOARD_KEY_d7=switchvideomode # Fn+F4
|
||||
KEYBOARD_KEY_a3=mute # Fn+F5
|
||||
KEYBOARD_KEY_a1=volumedown # Fn+F6
|
||||
KEYBOARD_KEY_a2=volumeup # Fn+F7
|
||||
KEYBOARD_KEY_a4=brightnessdown # Fn+F9
|
||||
KEYBOARD_KEY_c3=brightnessup # Fn+F10
|
||||
KEYBOARD_KEY_e3=wlan # Fn+F12
|
||||
KEYBOARD_KEY_be=battery # Fn+F2
|
||||
KEYBOARD_KEY_d7=switchvideomode # Fn+F4
|
||||
KEYBOARD_KEY_a3=mute # Fn+F5
|
||||
KEYBOARD_KEY_a1=volumedown # Fn+F6
|
||||
KEYBOARD_KEY_a2=volumeup # Fn+F7
|
||||
KEYBOARD_KEY_a4=brightnessdown # Fn+F9
|
||||
KEYBOARD_KEY_c3=brightnessup # Fn+F10
|
||||
KEYBOARD_KEY_e3=wlan # Fn+F12
|
||||
|
||||
# Elitebook 2760p
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2760p*:*
|
||||
|
|
@ -803,6 +818,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBook*:*
|
|||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPElite*x360*:*
|
||||
# HP Elite Dragonfly
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteDragonfly*:*
|
||||
# HP EliteBoard
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBoard*:*
|
||||
# HP ProBook 440 G2
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP440G2:*
|
||||
# HP ProBook
|
||||
|
|
@ -914,13 +931,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteDragonflyG2*:pvr*
|
|||
evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteDragonflyG2*:pvr*
|
||||
KEYBOARD_KEY_08=unknown # rfkill is also reported by HP Wireless hotkeys
|
||||
|
||||
# HP Elite Dragonfly G3
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPEliteDragonfly13.5inchG3NotebookPC:pvr*
|
||||
KEYBOARD_KEY_c9=up
|
||||
KEYBOARD_KEY_d1=down
|
||||
KEYBOARD_KEY_c8=pageup
|
||||
KEYBOARD_KEY_d0=pagedown
|
||||
|
||||
# HP 430 Programmable Wireless Keypad
|
||||
evdev:input:b0005v03F0p854Ae044C*
|
||||
KEYBOARD_KEY_700f3=macro1
|
||||
|
|
@ -1121,13 +1131,15 @@ evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:*:pvrIdeaPadSlim5*
|
|||
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:pn81Q7*:pvrLenovoYogaS940:*
|
||||
# Lenovo ThinkBook 16G6IRL
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:pn21KH*:pvrThinkBook16G6IRL:*
|
||||
# Lenovo ThinkBook 14 2-in-1 G5 IAU
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:pn21SQ*:pvrThinkBook142-in-1G5IAU:*
|
||||
KEYBOARD_KEY_a0=!mute
|
||||
KEYBOARD_KEY_ae=!volumedown
|
||||
KEYBOARD_KEY_b0=!volumeup
|
||||
|
||||
evdev:atkbd:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
|
||||
KEYBOARD_KEY_62=unknown # Touchpad on, also emitted by "Ideapad extra buttons", ignore
|
||||
KEYBOARD_KEY_63=unknown # Touchpad off, also emitted by "Ideapad extra buttons", ignore
|
||||
KEYBOARD_KEY_62=unknown # Touchpad on, also emitted by "Ideapad extra buttons", ignore
|
||||
KEYBOARD_KEY_63=unknown # Touchpad off, also emitted by "Ideapad extra buttons", ignore
|
||||
|
||||
# Lenovo Y50-70
|
||||
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*20378*:pvr*
|
||||
|
|
@ -1155,18 +1167,48 @@ evdev:input:b0003v04B3p301B*
|
|||
KEYBOARD_KEY_90007=mail
|
||||
KEYBOARD_KEY_90008=www
|
||||
|
||||
# Lenovo Ideapad D330-10IGM
|
||||
evdev:name:SIPODEV Lenovo HID Device:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
|
||||
KEYBOARD_KEY_70073=touchpad_toggle # Fn+Supr (Touchpad toggle)
|
||||
# Lenovo Ideapad D330-10IGM and D330-10IGL
|
||||
# (Tablet buttons)
|
||||
evdev:atkbd:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IG[ML]:*
|
||||
KEYBOARD_LED_NUMLOCK=0 # Lacks Num-Lock LED
|
||||
KEYBOARD_LED_CAPSLOCK=0 # Lacks Caps-Lock LED
|
||||
|
||||
evdev:name:SIPODEV Lenovo HID Device Consumer Control:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
|
||||
KEYBOARD_KEY_c00ff=fn_esc # Fn+Tab (FnLk toggle)
|
||||
# Lenovo Ideapad D330-10IGM and D330-10IGL
|
||||
# (Dock keyboard) "* Lenovo HID Device"
|
||||
evdev:input:b0003v17EFp60C[368]*-e0,1,4,11,14,k*,C2,*ram4,l0,1,2,sfw
|
||||
# Touchpad key acts as LEFTCTRL+LEFTMETA+F24 (C2) Windows shortcut for touchpad toggle,
|
||||
# with this as LEFTCTRL+LEFTMETA+TOUCHPAD_TOGGLE but just works.
|
||||
KEYBOARD_KEY_70073=touchpad_toggle # Fn+Supr (Touchpad toggle).
|
||||
KEYBOARD_LED_NUMLOCK=0 # Lacks Num-Lock LED
|
||||
KEYBOARD_LED_CAPSLOCK=0 # Lacks Caps-Lock LED
|
||||
|
||||
# Lenovo Ideapad D330-10IGM and D330-10IGL
|
||||
# (Dock keyboard: volume, brightness and FnLk keys) "* Lenovo HID Device Consumer Control"
|
||||
evdev:input:b0003v17EFp60C[368]*-e0,1,4,k*,F0,*ram4,lsfw
|
||||
KEYBOARD_KEY_c00ff=fn_esc # Fn+Tab (FnLk toggle). Default is UNKNOWN (F0).
|
||||
|
||||
# Lenovo Thinkbook 16 G6+ 2024
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn21LG:pvr*
|
||||
KEYBOARD_KEY_0a=!9
|
||||
KEYBOARD_KEY_0b=!0
|
||||
|
||||
# Lenovo Legion Go Translated
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83E1:*
|
||||
# Lenovo Legion Go S Translated
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83L3:*
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83N6:*
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83Q2:*
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83Q3:*
|
||||
# Lenovo Legion Go 2 Translated
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83N0:*
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnLENOVO:pn83N1:*
|
||||
KEYBOARD_KEY_67=f16 # Power button long press
|
||||
|
||||
# Lenovo Legion Go 2 Raw
|
||||
evdev:name:AT Raw Set 2 keyboard:dmi:*:svnLENOVO:pn83N0:*
|
||||
evdev:name:AT Raw Set 2 keyboard:dmi:*:svnLENOVO:pn83N1:*
|
||||
KEYBOARD_KEY_20=f16 # Power button long press
|
||||
|
||||
###########################################################
|
||||
# LG
|
||||
###########################################################
|
||||
|
|
@ -1273,10 +1315,10 @@ evdev:input:b0003v046Dp0056*
|
|||
evdev:input:b0003v046Dp0057*
|
||||
KEYBOARD_KEY_c1041=battery # Battery icon (Fn + F1)
|
||||
|
||||
#KEYBOARD_KEY_c101d=scrolldown # Button below scrollwheel (see note above)
|
||||
#KEYBOARD_KEY_c101e=scrollup # Button above scrollwheel (see note above)
|
||||
#KEYBOARD_KEY_c1022=scrollleft # Left click on scroll-wheel (see note above)
|
||||
#KEYBOARD_KEY_c1024=scrollright # Right click on scroll-wheel (see note above)
|
||||
#KEYBOARD_KEY_c101d=scrolldown # Button below scrollwheel (see note above)
|
||||
#KEYBOARD_KEY_c101e=scrollup # Button above scrollwheel (see note above)
|
||||
#KEYBOARD_KEY_c1022=scrollleft # Left click on scroll-wheel (see note above)
|
||||
#KEYBOARD_KEY_c1024=scrollright # Right click on scroll-wheel (see note above)
|
||||
|
||||
# MX3200 keyboard (27 MHz, modelnumber Y-RAV80)
|
||||
evdev:input:b0003v046Dp005C*
|
||||
|
|
@ -1768,6 +1810,14 @@ evdev:input:b0003v258Ap001E*
|
|||
KEYBOARD_KEY_700a6=brightnessup
|
||||
KEYBOARD_KEY_70066=sleep
|
||||
|
||||
###########################################################
|
||||
# Positron
|
||||
###########################################################
|
||||
|
||||
# Positron Proxima 15 (G1569)
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn*Positron*:pnG1569*:*
|
||||
KEYBOARD_KEY_6e=fn
|
||||
|
||||
###########################################################
|
||||
# Purism
|
||||
###########################################################
|
||||
|
|
@ -1801,7 +1851,7 @@ evdev:input:b0003v258Ap001E*
|
|||
###########################################################
|
||||
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*:rvnQuanta:rn30B7:rvr65.2B:*
|
||||
KEYBOARD_KEY_88=media # "quick play
|
||||
KEYBOARD_KEY_88=media # quick play
|
||||
|
||||
###########################################################
|
||||
# Redmi
|
||||
|
|
@ -1841,17 +1891,17 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*200E[45]*:*
|
|||
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*356V[45]*:pvr*
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*355V[45]*:pvr*
|
||||
KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch control setting
|
||||
KEYBOARD_KEY_89=!brightnessdown # Fn+F2 brightness down
|
||||
KEYBOARD_KEY_88=!brightnessup # Fn+F3 brightness up
|
||||
KEYBOARD_KEY_82=!switchvideomode # Fn+F4 display toggle
|
||||
KEYBOARD_KEY_f7=!touchpad_on # Fn+F5 touchpad on
|
||||
KEYBOARD_KEY_f9=!touchpad_off # Fn+F5 touchpad off
|
||||
KEYBOARD_KEY_a0=!mute # Fn+F6 mute
|
||||
KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
|
||||
KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
|
||||
KEYBOARD_KEY_b3=!prog2 # Fn+F11 toggle fan/cool mode
|
||||
KEYBOARD_KEY_d5=!wlan # Fn+F12 toggle wifi
|
||||
KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch control setting
|
||||
KEYBOARD_KEY_89=!brightnessdown # Fn+F2 brightness down
|
||||
KEYBOARD_KEY_88=!brightnessup # Fn+F3 brightness up
|
||||
KEYBOARD_KEY_82=!switchvideomode # Fn+F4 display toggle
|
||||
KEYBOARD_KEY_f7=!touchpad_on # Fn+F5 touchpad on
|
||||
KEYBOARD_KEY_f9=!touchpad_off # Fn+F5 touchpad off
|
||||
KEYBOARD_KEY_a0=!mute # Fn+F6 mute
|
||||
KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
|
||||
KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
|
||||
KEYBOARD_KEY_b3=!prog2 # Fn+F11 toggle fan/cool mode
|
||||
KEYBOARD_KEY_d5=!wlan # Fn+F12 toggle wifi
|
||||
|
||||
# Series 5
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*530U*:*
|
||||
|
|
@ -2011,6 +2061,13 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pnPangolin*:pvrpang15*
|
|||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnT-bao:pnTbookair:*
|
||||
KEYBOARD_KEY_76=touchpad_toggle # Touchpad toggle
|
||||
|
||||
###########################################################
|
||||
# TongFang
|
||||
###########################################################
|
||||
# TongFang GX4 (X4SP4NAL)
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAiStone:pnX4SP4NAL:*
|
||||
KEYBOARD_KEY_f8=fn
|
||||
|
||||
###########################################################
|
||||
# Toshiba
|
||||
###########################################################
|
||||
|
|
@ -2117,12 +2174,16 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnINET:pnP325J:*
|
|||
# Home: LeftCtrl + Esc -> LeftMeta (ignore LeftCtrl, map Esc to LeftMeta)
|
||||
# Back: Backspace -> back (map backspace to back)
|
||||
evdev:name:FTSC1000:00 2808:509C Keyboard:dmi:*:svnXiaomiInc:pnMipad2:*
|
||||
KEYBOARD_KEY_700e0=unknown # LeftCtrl -> ignore
|
||||
KEYBOARD_KEY_700e3=unknown # LeftMeta -> ignore
|
||||
KEYBOARD_KEY_700e0=reserved # LeftCtrl -> ignore
|
||||
KEYBOARD_KEY_700e3=reserved # LeftMeta -> ignore
|
||||
KEYBOARD_KEY_70016=menu # S -> menu
|
||||
KEYBOARD_KEY_70029=leftmeta # Esc -> LeftMeta (Windows key / Win8 tablets home)
|
||||
KEYBOARD_KEY_7002a=back # Backspace -> back
|
||||
|
||||
# Xiaomi Mi NoteBook Pro star key
|
||||
evdev:atkbd:dmi:bvnTIMI*:bvr*:bd*:svnTIMI*:pnMiNoteBookPro*:*
|
||||
KEYBOARD_KEY_72=macro
|
||||
|
||||
###########################################################
|
||||
# Zepto
|
||||
###########################################################
|
||||
|
|
@ -2287,6 +2348,11 @@ evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn
|
|||
KEYBOARD_KEY_7006d=prog3 # Programmable button
|
||||
KEYBOARD_KEY_7006e=prog4 # Programmable button
|
||||
|
||||
# Positivo (K116J)
|
||||
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivo*:pn*:pvr*:rvnPositivo*:rnK116J*
|
||||
KEYBOARD_KEY_69=www
|
||||
KEYBOARD_KEY_6e=search
|
||||
|
||||
###########################################################
|
||||
# Multilaser
|
||||
###########################################################
|
||||
|
|
@ -2326,7 +2392,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDIXONSP:pnDIXON*:*
|
|||
# The layout must be an xkb compatible layout (defined with XKB_FIXED_LAYOUT),
|
||||
# with an accompanying variant (defined with XKB_FIXED_VARIANT) if necessary.
|
||||
|
||||
# Yubico Yubico Yubikey II"
|
||||
# Yubico Yubico Yubikey II
|
||||
evdev:input:b0003v1050p0010*
|
||||
# Yubico Yubikey NEO OTP+CCID
|
||||
evdev:input:b0003v1050p0111*
|
||||
|
|
@ -2340,21 +2406,21 @@ evdev:input:b0003v05FEp1010*
|
|||
######################### LACK OF MODIFIER LEDS ############################
|
||||
# This section lists keyboard which do not have their own LEDs for some
|
||||
# modifiers. Only Caps-Lock (KEYBOARD_LED_CAPSLOCK) and Num-Lock
|
||||
# (KEYBOARD_LED_CAPSLOCK) are currently handled and need their values set
|
||||
# (KEYBOARD_LED_NUMLOCK) are currently handled and need their values set
|
||||
# to "0" to indicate the absence of LED.
|
||||
#
|
||||
# Presence of a LED is implicit when the property is absent.
|
||||
|
||||
# Apple Wireless keyboards
|
||||
evdev:input:b0005v05aCp022C*
|
||||
evdev:input:b0005v05aCp022D*
|
||||
evdev:input:b0005v05aCp022E*
|
||||
evdev:input:b0005v05aCp0239*
|
||||
evdev:input:b0005v05aCp023A*
|
||||
evdev:input:b0005v05aCp023B*
|
||||
evdev:input:b0005v05aCp0255*
|
||||
evdev:input:b0005v05aCp0256*
|
||||
evdev:input:b0005v05aCp0257*
|
||||
evdev:input:b0005v05ACp022C*
|
||||
evdev:input:b0005v05ACp022D*
|
||||
evdev:input:b0005v05ACp022E*
|
||||
evdev:input:b0005v05ACp0239*
|
||||
evdev:input:b0005v05ACp023A*
|
||||
evdev:input:b0005v05ACp023B*
|
||||
evdev:input:b0005v05ACp0255*
|
||||
evdev:input:b0005v05ACp0256*
|
||||
evdev:input:b0005v05ACp0257*
|
||||
KEYBOARD_LED_NUMLOCK=0
|
||||
|
||||
# Logitech K750
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -16,6 +16,61 @@
|
|||
usb:v1209p4D69*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
###########################################################
|
||||
# Hantek DSO-6022 oscilloscopes and compatible devices
|
||||
###########################################################
|
||||
# Hantek DSO-6022BE w/o FW
|
||||
usb:v04B4p6022*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# Hantek DSO-6022BE with FW
|
||||
usb:v04B5p6022*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# Hantek DSO-6022BL w/o FW
|
||||
usb:v04B4p602A*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# Hantek DSO-6022BL with FW
|
||||
usb:v04B5p602A*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# Hantek DSO-6021 w/o FW
|
||||
usb:v04B4p6021*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# Hantek DSO-6021 with FW
|
||||
usb:v04B5p6021*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# Voltcraft DSO-2020, w/o FW, becomes DSO-6022BE with FW
|
||||
usb:v04B4p2020*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# YiXingDianZiKeJi MDSO w/o FW
|
||||
usb:vD4A2p5660*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# YiXingDianZiKeJi MDSO with FW
|
||||
usb:v1D50p608E*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# BUUDAI DDS120 w/o FW
|
||||
usb:v8102p8102*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# BUUDAI DDS120 with FW
|
||||
usb:v04B5p0120*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# Instrustar isds-205b w/o FW
|
||||
usb:vD4A2p5661*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
# Instrustar isds-205b with FW
|
||||
usb:v1D50p1D50*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
###########################################################
|
||||
# Total Phase
|
||||
###########################################################
|
||||
|
|
@ -39,6 +94,13 @@ usb:v1679p3001*
|
|||
usb:v1679p6003*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
###########################################################
|
||||
# Vernier
|
||||
###########################################################
|
||||
# Go Direct sensors
|
||||
usb:v08F7p0010*
|
||||
ID_SIGNAL_ANALYZER=1
|
||||
|
||||
###########################################################
|
||||
# XGecu
|
||||
###########################################################
|
||||
|
|
|
|||
|
|
@ -37,6 +37,10 @@ usb:v2982p1967*
|
|||
usb:v33AEp0001*
|
||||
ID_AV_PRODUCTION_CONTROLLER=1
|
||||
|
||||
# Beacn Mic (alt mode)
|
||||
usb:v33AEp8001*
|
||||
ID_AV_PRODUCTION_CONTROLLER=1
|
||||
|
||||
# Beacn Studio
|
||||
usb:v33AEp0003*
|
||||
ID_AV_PRODUCTION_CONTROLLER=1
|
||||
|
|
|
|||
|
|
@ -20,6 +20,65 @@
|
|||
# Allowed properties are:
|
||||
# ID_HARDWARE_WALLET=0|1
|
||||
|
||||
################
|
||||
# Blockstream Jade Hardware Wallets
|
||||
################
|
||||
|
||||
# Jade UART (Silicon Labs)
|
||||
usb:v10C4pEA60*
|
||||
ID_HARDWARE_WALLET=1
|
||||
|
||||
# Jade UART (WCH)
|
||||
usb:v1A86p55D4*
|
||||
ID_HARDWARE_WALLET=1
|
||||
|
||||
################
|
||||
# Coinkite Hardware Wallets
|
||||
################
|
||||
|
||||
# Coldcard
|
||||
usb:vD13EpCC10*
|
||||
ID_HARDWARE_WALLET=1
|
||||
|
||||
################
|
||||
# Digital Bitbox Hardware Wallets
|
||||
################
|
||||
|
||||
# Digital Bitbox (dbb)
|
||||
usb:v03EBp2402*
|
||||
ID_HARDWARE_WALLET=1
|
||||
|
||||
# BitBox02
|
||||
usb:v03EBp2403*
|
||||
ID_HARDWARE_WALLET=1
|
||||
|
||||
################
|
||||
# KeepKey Hardware Wallets
|
||||
################
|
||||
|
||||
# KeepKey HID Firmware/Bootloader
|
||||
usb:v2B24p0001*
|
||||
ID_HARDWARE_WALLET=1
|
||||
|
||||
# KeepKey WebUSB Firmware/Bootloader
|
||||
usb:v2B24p0002*
|
||||
ID_HARDWARE_WALLET=1
|
||||
|
||||
################
|
||||
# Ledger Hardware Wallets
|
||||
################
|
||||
|
||||
# Ledger HW.1 / Nano series
|
||||
usb:v2581p1B7C*
|
||||
usb:v2581p2B7C*
|
||||
usb:v2581p3B7C*
|
||||
usb:v2581p4B7C*
|
||||
ID_HARDWARE_WALLET=1
|
||||
|
||||
# Ledger Nano S/X/Blue/Stax and related devices
|
||||
usb:v2C97*
|
||||
ID_HARDWARE_WALLET=1
|
||||
|
||||
################
|
||||
# Trezor Hardware Wallets
|
||||
################
|
||||
|
|
@ -30,7 +89,5 @@ usb:v534Cp0001*
|
|||
|
||||
# Trezor v2
|
||||
usb:v1209p53C0*
|
||||
ID_HARDWARE_WALLET=1
|
||||
|
||||
usb:v1209p53C1*
|
||||
ID_HARDWARE_WALLET=1
|
||||
|
|
|
|||
|
|
@ -26,11 +26,11 @@
|
|||
# Logitech
|
||||
################
|
||||
# Litra Beam
|
||||
bluetooth:v046dpc901*
|
||||
usb:v046dpc901*
|
||||
bluetooth:v046DpC901*
|
||||
usb:v046DpC901*
|
||||
ID_AV_LIGHTS=1
|
||||
|
||||
# Litra Glow
|
||||
bluetooth:v046dpc900*
|
||||
usb:v046dpc900*
|
||||
bluetooth:v046DpC900*
|
||||
usb:v046DpC900*
|
||||
ID_AV_LIGHTS=1
|
||||
|
|
|
|||
|
|
@ -68,5 +68,5 @@ usb:v2B71p000E*
|
|||
# PowerSpec Ultra 3DPrinter
|
||||
usb:v0315p0001*
|
||||
usb:v2B71p00F6*
|
||||
usb:v2B71p00FF
|
||||
usb:v2B71p00FF*
|
||||
ID_MAKER_TOOL=1
|
||||
|
|
|
|||
|
|
@ -176,6 +176,7 @@ mouse:usb:v256fpc632:name:*
|
|||
mouse:usb:v256fpc633:name:*
|
||||
mouse:usb:v256fpc635:name:*
|
||||
mouse:usb:v256fpc636:name:*
|
||||
mouse:usb:v256fpc63a:name:*
|
||||
ID_INPUT_3D_MOUSE=1
|
||||
|
||||
mouse:bluetooth:v256fpc63a:name:*
|
||||
|
|
@ -191,6 +192,14 @@ mouse:bluetooth:v256fpc63a:name:*
|
|||
mouse:bluetooth:v05acp030d:name:*:*
|
||||
MOUSE_DPI=1300@1000
|
||||
|
||||
##########################################
|
||||
# Asus
|
||||
##########################################
|
||||
|
||||
# Asus Cerberus
|
||||
mouse:usb:v04d9pa0d6:name:E-Signal/A-One USB Gaming Mouse:*
|
||||
MOUSE_DPI=800@500 *1350@500 1600@500 2650@500
|
||||
|
||||
##########################################
|
||||
# Cherry
|
||||
##########################################
|
||||
|
|
@ -259,6 +268,18 @@ mouse:usb:v056ep0155:name:ELECOM ELECOM Relacon:*
|
|||
MOUSE_DPI=*500 1000 1500
|
||||
MOUSE_WHEEL_CLICK_ANGLE=30
|
||||
|
||||
# Elecom IST Pro (via wired usb) (M-IPT10MRSABK)
|
||||
mouse:usb:v056ep018a:name:ELECOM ELECOM IST PRO Mouse:*
|
||||
ID_INPUT_TRACKBALL=1
|
||||
|
||||
# Elecom IST Pro (via usb receiver) (M-IPT10MRSABK)
|
||||
mouse:usb:v056ep01a9:name:ELECOM ELECOM Bridge G1000 Mouse:*
|
||||
ID_INPUT_TRACKBALL=1
|
||||
|
||||
# Elecom IST Pro (via Bluetooth) (M-IPT10MRSABK)
|
||||
mouse:bluetooth:v056ep018a:name:ELECOM IST PRO Mouse:*
|
||||
ID_INPUT_TRACKBALL=1
|
||||
|
||||
##########################################
|
||||
# Fujitsu Siemens
|
||||
##########################################
|
||||
|
|
@ -388,6 +409,10 @@ mouse:usb:v17efp6045:name:Lenovo USB Laser Mouse:*
|
|||
mouse:usb:v17efp6044:name:ThinkPad USB Laser Mouse:*
|
||||
MOUSE_DPI=1200@125
|
||||
|
||||
# Lenovo Essential USB Mouse (SM-8823)
|
||||
mouse:usb:v17efp608d:name:PixArt Lenovo USB Optical Mouse:*
|
||||
MOUSE_DPI=1600@125
|
||||
|
||||
##########################################
|
||||
# Logitech
|
||||
##########################################
|
||||
|
|
@ -599,6 +624,10 @@ mouse:usb:v046dpc548:name:Logitech USB Receiver Mouse:*
|
|||
mouse:bluetooth:v046dpb035:name:MX Master 3S B Mouse:*
|
||||
MOUSE_DPI=1000@142
|
||||
|
||||
# Logitech MX Master 4 (via Bluetooth)
|
||||
mouse:bluetooth:v046dpb042:name:MX Master 4 Mouse:*
|
||||
MOUSE_DPI=1000@142
|
||||
|
||||
# Logitech MX Ergo
|
||||
mouse:usb:v046dp406f:name:Logitech MX Ergo:*
|
||||
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:406f:*
|
||||
|
|
@ -675,6 +704,10 @@ mouse:usb:v046dpc517:name:Logitech USB Receiver:*
|
|||
mouse:usb:v046dpc046:name:Logitech USB Optical Mouse:*
|
||||
MOUSE_DPI=1000@125
|
||||
|
||||
# Logitech RX1500
|
||||
mouse:usb:v046dpc061:name:Logitech USB Laser Mouse:*
|
||||
MOUSE_DPI=1000@125
|
||||
|
||||
# Logitech M100 Optical Mouse
|
||||
mouse:usb:v046dpc05a:name:Logitech USB Optical Mouse:*
|
||||
MOUSE_DPI=1000@125
|
||||
|
|
@ -805,6 +838,17 @@ mouse:usb:v22d4p1308:name:Laview Technology Mionix Avior 7000:*
|
|||
mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:*
|
||||
MOUSE_DPI=*800@126 1600@126
|
||||
|
||||
##########################################
|
||||
# Nulea
|
||||
##########################################
|
||||
|
||||
# Note: The Nulea uses a generic USB dongle. Overriding its value would cause
|
||||
# other mice to be erroneously registered as trackballs, so only bluetooth
|
||||
# detection is added.
|
||||
# Nulea M501 Wireless Trackball (Bluetooth)
|
||||
mouse:bluetooth:v000ep3412:name:Nulea BT5.0 Mouse:*
|
||||
ID_INPUT_TRACKBALL=1
|
||||
|
||||
##########################################
|
||||
# Oklick
|
||||
##########################################
|
||||
|
|
@ -813,6 +857,19 @@ mouse:usb:v0e8fp00a7:name:DaKai 2.4G RX:*
|
|||
mouse:bluetooth:v056ep0061:name:Laser BTmouse:*
|
||||
MOUSE_DPI=*800@333 1600@333
|
||||
|
||||
##########################################
|
||||
# ProtoArc
|
||||
##########################################
|
||||
|
||||
# ProtoArc EM01 NL
|
||||
mouse:usb:v25a7pfa61:name:Compx 2.4G Receiver Mouse:*
|
||||
ID_INPUT_TRACKBALL=1
|
||||
MOUSE_DPI=200@250 *400@250 800@250 1200@250 1600@250
|
||||
|
||||
mouse:bluetooth:v25a7pfaa0:name:EM01 NL:*
|
||||
ID_INPUT_TRACKBALL=1
|
||||
MOUSE_DPI=200@150 *400@150 800@150 1200@150 1600@150
|
||||
|
||||
##########################################
|
||||
# P-Active
|
||||
##########################################
|
||||
|
|
@ -833,6 +890,14 @@ mouse:usb:v1532p0042:name:Razer Razer Abyssus:*
|
|||
mouse:usb:v1532p0029:name:Razer Razer DeathAdder:*
|
||||
MOUSE_DPI=3500@1000
|
||||
|
||||
# Razer Cobra RZ04-03750300-R3U1
|
||||
mouse:usb:v1532p00a3:name:Razer Razer Cobra:*
|
||||
MOUSE_DPI=400@1000 800@1000 *1600@1000 3200@1000 6400@1000
|
||||
|
||||
# Razer Basilisk V3
|
||||
mouse:usb:v1532p0099:name:Razer Razer Basilisk V3:*
|
||||
MOUSE_DPI=400@125 800@125 1600@125 3200@125 6400@125 400@500 800@500 1600@500 3200@500 6400@500 400@1000 800@1000 *1600@1000 3200@1000 6400@1000
|
||||
|
||||
##########################################
|
||||
# Roccat
|
||||
##########################################
|
||||
|
|
|
|||
|
|
@ -22,18 +22,14 @@
|
|||
# ID_SOFTWARE_RADIO=0|1
|
||||
|
||||
##########################################
|
||||
# Nuand
|
||||
# Airspy
|
||||
##########################################
|
||||
# bladeRF 1.x
|
||||
usb:v2CF0p5246*
|
||||
# Airspy R2
|
||||
usb:v1D50p60A1*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# bladeRF 1.x (legacy)
|
||||
usb:v1D50p6066*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# bladeRF 2.0 micro
|
||||
usb:v2CF0p5250*
|
||||
# Airspy HF+
|
||||
usb:v03EBp800C*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
##########################################
|
||||
|
|
@ -63,10 +59,69 @@ usb:v2500p0002*
|
|||
usb:v2500p0020*
|
||||
usb:v2500p0021*
|
||||
usb:v2500p0022*
|
||||
usb:v2500p0023*
|
||||
usb:v3923p7813*
|
||||
usb:v3923p7814*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
##########################################
|
||||
# FUNcube
|
||||
##########################################
|
||||
# FUNcube Dongle Pro
|
||||
usb:v04D8pFB56*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# FUNcube Dongle Pro+
|
||||
usb:v04D8pFB31*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
##########################################
|
||||
# Great Scott Gadgets
|
||||
##########################################
|
||||
# HackRF Jawbreaker
|
||||
usb:v1D50p604B*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# HackRF One
|
||||
usb:v1D50p6089*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
##########################################
|
||||
# HydraSDR
|
||||
##########################################
|
||||
# HydraSDR RFOne
|
||||
usb:v38AFp0001*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
##########################################
|
||||
# LimeSDR
|
||||
##########################################
|
||||
# XTRX (USB3380)
|
||||
usb:v0525p3380*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
##########################################
|
||||
# Microtelecom
|
||||
##########################################
|
||||
# Perseus
|
||||
usb:v04B4p325C*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
##########################################
|
||||
# Nuand
|
||||
##########################################
|
||||
# bladeRF 1.x
|
||||
usb:v2CF0p5246*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# bladeRF 1.x (legacy)
|
||||
usb:v1D50p6066*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# bladeRF 2.0 micro
|
||||
usb:v2CF0p5250*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
##########################################
|
||||
# RTL-SDR
|
||||
##########################################
|
||||
|
|
@ -237,3 +292,34 @@ usb:v1F4DpD286*
|
|||
# PROlectrix DV107669 (FC0012)
|
||||
usb:v1F4DpD803*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
##########################################
|
||||
# SDRplay
|
||||
##########################################
|
||||
# RSP1
|
||||
usb:v1DF7p2500*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# RSP1A
|
||||
usb:v1DF7p3000*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# RSP2/RSP2pro
|
||||
usb:v1DF7p3010*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# RSPduo
|
||||
usb:v1DF7p3020*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# RSPdx
|
||||
usb:v1DF7p3030*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# RSP1B
|
||||
usb:v1DF7p3050*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
||||
# RSPdxR2
|
||||
usb:v1DF7p3060*
|
||||
ID_SOFTWARE_RADIO=1
|
||||
|
|
|
|||
|
|
@ -43,18 +43,32 @@ usb:v045Ep091E*
|
|||
# Arctis Headsets
|
||||
usb:v1038p12B3*
|
||||
usb:v1038p12B6*
|
||||
usb:v1038p12D7*
|
||||
usb:v1038p1260*
|
||||
usb:v1038p12AD*
|
||||
usb:v1038p1252*
|
||||
usb:v1038p1280*
|
||||
usb:v1038p12D5*
|
||||
usb:v1038p12D7*
|
||||
usb:v1038p12AD*
|
||||
usb:v1038p220E*
|
||||
usb:v1038p2212*
|
||||
usb:v1038p2216*
|
||||
usb:v1038p2236*
|
||||
usb:v1038p12C2*
|
||||
usb:v1038p1290*
|
||||
usb:v1038p12EC*
|
||||
usb:v1038p2269*
|
||||
usb:v1038p226D*
|
||||
usb:v1038p2232*
|
||||
usb:v1038p2253*
|
||||
usb:v1038p2202*
|
||||
usb:v1038p2206*
|
||||
usb:v1038p220A*
|
||||
usb:v1038p1290*
|
||||
usb:v1038p2258*
|
||||
usb:v1038p223A*
|
||||
usb:v1038p227A*
|
||||
usb:v1038p22A1*
|
||||
usb:v1038p227E*
|
||||
usb:v1038p229E*
|
||||
usb:v1038p12E0*
|
||||
usb:v1038p12E5*
|
||||
SOUND_FORM_FACTOR=headset
|
||||
|
|
|
|||
|
|
@ -28,37 +28,18 @@
|
|||
# Permitted keys:
|
||||
# Specify whether a touchpad is a built-in one or external:
|
||||
# ID_INPUT_TOUCHPAD_INTEGRATION=internal|external
|
||||
#
|
||||
# By default i8042, i2c, and rmi devices are assumed to be internal,
|
||||
# bluetooth devices are assumed to be external, usb devices are assumed
|
||||
# to be internal when connected to a PCB port and external otherwise.
|
||||
|
||||
touchpad:i8042:*
|
||||
touchpad:rmi:*
|
||||
touchpad:usb:*
|
||||
# Example entry; vid: ffff, pid: 0000; both must be lowercase.
|
||||
# this will make this bluetooth touchpad to behave as internal.
|
||||
#touchpad:bluetooth:vffffp0000:*
|
||||
# ID_INPUT_TOUCHPAD_INTEGRATION=internal
|
||||
|
||||
###########################################################
|
||||
# Lenovo IdeaPad Duet3 10IGL5 (82AT)
|
||||
###########################################################
|
||||
touchpad:bluetooth:v17efp60fa:*
|
||||
ID_INPUT_TOUCHPAD_INTEGRATION=internal
|
||||
|
||||
touchpad:bluetooth:*
|
||||
ID_INPUT_TOUCHPAD_INTEGRATION=external
|
||||
|
||||
###########################################################
|
||||
# Apple
|
||||
###########################################################
|
||||
# Magic Trackpad (1 and 2)
|
||||
touchpad:usb:v05acp030e:*
|
||||
touchpad:usb:v05acp0265:*
|
||||
ID_INPUT_TOUCHPAD_INTEGRATION=external
|
||||
|
||||
###########################################################
|
||||
# HP Elite x2 1013 G3
|
||||
###########################################################
|
||||
touchpad:usb:v044ep1221:*
|
||||
ID_INPUT_TOUCHPAD_INTEGRATION=external
|
||||
|
||||
###########################################################
|
||||
# Logitech
|
||||
###########################################################
|
||||
touchpad:usb:v046d*
|
||||
ID_INPUT_TOUCHPAD_INTEGRATION=external
|
||||
|
||||
###########################################################
|
||||
# Wacom
|
||||
###########################################################
|
||||
touchpad:usb:v056a*
|
||||
ID_INPUT_TOUCHPAD_INTEGRATION=external
|
||||
|
|
|
|||
|
|
@ -10,3 +10,9 @@
|
|||
usb:v067Bp25A1*
|
||||
usb:v067Bp27A1*
|
||||
ID_NET_AUTO_LINK_LOCAL_ONLY=1
|
||||
|
||||
# BMC USB-to-USB links for AMI MegaRAC and OpenBMC
|
||||
usb:v1D6Bp0103*
|
||||
usb:v0525pA4A2*
|
||||
usb:v046BpFFB0*
|
||||
ID_NET_AUTO_LINK_LOCAL_ONLY=1
|
||||
|
|
|
|||
|
|
@ -135,4 +135,18 @@ IDEMIA,IDEM,06/26/2018
|
|||
"Areus GmbH",AREU,04/07/2025
|
||||
"Rockwell Automation, Inc",ROKL,04/18/2025
|
||||
"JUMPtec GmbH",JUMP,04/22/2025
|
||||
"Fsas Technologies Inc.",FSAS,04/30/2025
|
||||
"Fsas Technologies Inc.",FSAS,04/30/2025
|
||||
"JP Morgan Chase N.A.",JPMC,05/30/2025
|
||||
"Roku, Inc.",ROKU,07/15/2025
|
||||
"UltraRISC Technology (Shanghai) Co., Ltd",ULRV,09/15/2025
|
||||
"SYNCS / Aviot Systems Pte Ltd",SYNC,10/21/2025
|
||||
"Advantech Co., Ltd.",AHCL,10/23/2025
|
||||
"Picoheart (SG) Pte. Ltd.",PICO,10/30/2025
|
||||
"Kontron France",KOMF,12/09/2025
|
||||
"Ubiquiti Inc.",UBTI,12/10/2025
|
||||
"KAYA N CO., LTD.",KAYA,01/06/2026
|
||||
Mesiontech,MITH,01/30/2026
|
||||
"Nexthop Systems Inc.",NXHP,02/23/2026
|
||||
"Megapolis-Telecom Region LLC",MPTR,02/23/2026
|
||||
"Nanjing Tianyihexin Electronics Ltd",TYHX,02/27/2026
|
||||
"Theo End (Shenzhen) Computing Technology Co., Ltd.",LECA,02/27/2026
|
||||
|
15668
hwdb.d/ma-large.txt
15668
hwdb.d/ma-large.txt
File diff suppressed because it is too large
Load diff
3220
hwdb.d/ma-medium.txt
3220
hwdb.d/ma-medium.txt
File diff suppressed because it is too large
Load diff
3176
hwdb.d/ma-small.txt
3176
hwdb.d/ma-small.txt
File diff suppressed because it is too large
Load diff
|
|
@ -5,7 +5,6 @@
|
|||
# So we don't "test" them.
|
||||
hwdb_files_notest = files(
|
||||
'README',
|
||||
'20-dmi-id.hwdb',
|
||||
'20-pci-vendor-model.hwdb',
|
||||
'20-pci-classes.hwdb',
|
||||
'20-usb-vendor-model.hwdb',
|
||||
|
|
@ -15,10 +14,11 @@ hwdb_files_notest = files(
|
|||
'20-bluetooth-vendor-product.hwdb',
|
||||
'20-acpi-vendor.hwdb',
|
||||
'20-OUI.hwdb',
|
||||
'20-net-ifname.hwdb',
|
||||
'20-vmbus-class.hwdb')
|
||||
|
||||
hwdb_files_test = files(
|
||||
'20-dmi-id.hwdb',
|
||||
'20-net-ifname.hwdb',
|
||||
'60-autosuspend.hwdb',
|
||||
'60-autosuspend-fingerprint-reader.hwdb',
|
||||
'60-evdev.hwdb',
|
||||
|
|
@ -31,17 +31,18 @@ hwdb_files_test = files(
|
|||
'70-cameras.hwdb',
|
||||
'70-hardware-wallets.hwdb',
|
||||
'70-joystick.hwdb',
|
||||
'70-maker-tools.hwdb',
|
||||
'70-mouse.hwdb',
|
||||
'70-pda.hwdb',
|
||||
'70-pointingstick.hwdb',
|
||||
'70-software-radio.hwdb',
|
||||
'70-sound-card.hwdb',
|
||||
'70-touchpad.hwdb',
|
||||
'80-ieee1394-unit-function.hwdb')
|
||||
'80-ieee1394-unit-function.hwdb',
|
||||
'82-net-auto-link-local.hwdb')
|
||||
|
||||
if conf.get('ENABLE_HWDB') == 1
|
||||
auto_suspend_rules = custom_target(
|
||||
'60-autosuspend-chromiumos.hwdb',
|
||||
output : '60-autosuspend-chromiumos.hwdb',
|
||||
command : make_autosuspend_rules_py,
|
||||
capture : true,
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ UDEV_TAG = Word(string.ascii_uppercase, alphanums + '_')
|
|||
TYPES = {'mouse': ('usb', 'bluetooth', 'ps2', '*'),
|
||||
'evdev': ('name', 'atkbd', 'input'),
|
||||
'fb': ('pci', 'vmbus'),
|
||||
'id-input': ('modalias'),
|
||||
'id-input': ('modalias', 'bluetooth', 'i2c', 'usb'),
|
||||
'touchpad': ('i8042', 'rmi', 'bluetooth', 'usb'),
|
||||
'joystick': ('i8042', 'rmi', 'bluetooth', 'usb'),
|
||||
'keyboard': ('name', ),
|
||||
|
|
@ -100,12 +100,14 @@ TYPES = {'mouse': ('usb', 'bluetooth', 'ps2', '*'),
|
|||
# Patterns that are used to set general properties on a device
|
||||
GENERAL_MATCHES = {'acpi',
|
||||
'bluetooth',
|
||||
'usb',
|
||||
'dmi',
|
||||
'ieee1394',
|
||||
'OUI',
|
||||
'pci',
|
||||
'sdio',
|
||||
'tpm2',
|
||||
'usb',
|
||||
'vmbus',
|
||||
'OUI',
|
||||
'ieee1394',
|
||||
}
|
||||
|
||||
def upperhex_word(length):
|
||||
|
|
@ -146,6 +148,7 @@ def property_grammar():
|
|||
mount_matrix = Group(mount_matrix_row + ';' + mount_matrix_row + ';' + mount_matrix_row)('MOUNT_MATRIX')
|
||||
xkb_setting = Optional(Word(alphanums + '+-/@._'))
|
||||
id_input_setting = Optional(Or((Literal('0'), Literal('1'))))
|
||||
zero_one = Or((Literal('0'), Literal('1')))
|
||||
|
||||
# Although this set doesn't cover all of characters in database entries, it's enough for test targets.
|
||||
name_literal = Word(printables + ' ')
|
||||
|
|
@ -155,13 +158,13 @@ def property_grammar():
|
|||
('MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL', INTEGER),
|
||||
('MOUSE_WHEEL_CLICK_COUNT', INTEGER),
|
||||
('MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL', INTEGER),
|
||||
('ID_INPUT_3D_MOUSE', Or((Literal('0'), Literal('1')))),
|
||||
('ID_AUTOSUSPEND', Or((Literal('0'), Literal('1')))),
|
||||
('ID_INPUT_3D_MOUSE', zero_one),
|
||||
('ID_AUTOSUSPEND', zero_one),
|
||||
('ID_AUTOSUSPEND_DELAY_MS', INTEGER),
|
||||
('ID_AV_PRODUCTION_CONTROLLER', Or((Literal('0'), Literal('1')))),
|
||||
('ID_AV_LIGHTS', Or((Literal('0'), Literal('1')))),
|
||||
('ID_PERSIST', Or((Literal('0'), Literal('1')))),
|
||||
('ID_PDA', Or((Literal('0'), Literal('1')))),
|
||||
('ID_AV_PRODUCTION_CONTROLLER', zero_one),
|
||||
('ID_AV_LIGHTS', zero_one),
|
||||
('ID_PERSIST', zero_one),
|
||||
('ID_PDA', zero_one),
|
||||
('ID_INPUT', id_input_setting),
|
||||
('ID_INPUT_ACCELEROMETER', id_input_setting),
|
||||
('ID_INPUT_JOYSTICK', id_input_setting),
|
||||
|
|
@ -175,11 +178,12 @@ def property_grammar():
|
|||
('ID_INPUT_TOUCHPAD', id_input_setting),
|
||||
('ID_INPUT_TOUCHSCREEN', id_input_setting),
|
||||
('ID_INPUT_TRACKBALL', id_input_setting),
|
||||
('ID_SIGNAL_ANALYZER', Or((Literal('0'), Literal('1')))),
|
||||
('ID_MAKER_TOOL', Or((Literal('0'), Literal('1')))),
|
||||
('ID_HARDWARE_WALLET', Or((Literal('0'), Literal('1')))),
|
||||
('ID_SOFTWARE_RADIO', Or((Literal('0'), Literal('1')))),
|
||||
('ID_MM_DEVICE_IGNORE', Or((Literal('0'), Literal('1')))),
|
||||
('ID_SIGNAL_ANALYZER', zero_one),
|
||||
('ID_MAKER_TOOL', zero_one),
|
||||
('ID_HARDWARE_WALLET', zero_one),
|
||||
('ID_SOFTWARE_RADIO', zero_one),
|
||||
('ID_MM_DEVICE_IGNORE', zero_one),
|
||||
('ID_NET_AUTO_LINK_LOCAL_ONLY', zero_one),
|
||||
('POINTINGSTICK_SENSITIVITY', INTEGER),
|
||||
('ID_INPUT_JOYSTICK_INTEGRATION', Or(('internal', 'external'))),
|
||||
('ID_INPUT_TOUCHPAD_INTEGRATION', Or(('internal', 'external'))),
|
||||
|
|
@ -191,21 +195,32 @@ def property_grammar():
|
|||
('ACCEL_MOUNT_MATRIX', mount_matrix),
|
||||
('ACCEL_LOCATION', Or(('display', 'base'))),
|
||||
('PROXIMITY_NEAR_LEVEL', INTEGER),
|
||||
('IEEE1394_UNIT_FUNCTION_MIDI', Or((Literal('0'), Literal('1')))),
|
||||
('IEEE1394_UNIT_FUNCTION_AUDIO', Or((Literal('0'), Literal('1')))),
|
||||
('IEEE1394_UNIT_FUNCTION_VIDEO', Or((Literal('0'), Literal('1')))),
|
||||
('IEEE1394_UNIT_FUNCTION_MIDI', zero_one),
|
||||
('IEEE1394_UNIT_FUNCTION_AUDIO', zero_one),
|
||||
('IEEE1394_UNIT_FUNCTION_VIDEO', zero_one),
|
||||
('ID_VENDOR_FROM_DATABASE', name_literal),
|
||||
('ID_MODEL_FROM_DATABASE', name_literal),
|
||||
('ID_TAG_MASTER_OF_SEAT', Literal('1')),
|
||||
('ID_INFRARED_CAMERA', Or((Literal('0'), Literal('1')))),
|
||||
('ID_INFRARED_CAMERA', zero_one),
|
||||
('ID_CAMERA_DIRECTION', Or(('front', 'rear'))),
|
||||
('SOUND_FORM_FACTOR', Or(('internal', 'webcam', 'speaker', 'headphone', 'headset', 'handset', 'microphone'))),
|
||||
('ID_SYS_VENDOR_IS_RUBBISH', zero_one),
|
||||
('ID_PRODUCT_NAME_IS_RUBBISH', zero_one),
|
||||
('ID_PRODUCT_VERSION_IS_RUBBISH', zero_one),
|
||||
('ID_BOARD_VERSION_IS_RUBBISH', zero_one),
|
||||
('ID_PRODUCT_SKU_IS_RUBBISH', zero_one),
|
||||
('ID_CHASSIS_ASSET_TAG_IS_RUBBISH', zero_one),
|
||||
('ID_CHASSIS', name_literal),
|
||||
('ID_SYSFS_ATTRIBUTE_MODEL', name_literal),
|
||||
('ID_NET_NAME_FROM_DATABASE', name_literal),
|
||||
('ID_NET_NAME_INCLUDE_DOMAIN', zero_one),
|
||||
('TPM2_BROKEN_NVPCR', zero_one),
|
||||
)
|
||||
fixed_props = [Literal(name)('NAME') - Suppress('=') - val('VALUE')
|
||||
for name, val in props]
|
||||
kbd_props = [Regex(r'KEYBOARD_KEY_[0-9a-f]+')('NAME')
|
||||
- Suppress('=') -
|
||||
('!' ^ (Optional('!') - Word(alphanums + '_')))('VALUE')
|
||||
Group('!' ^ (Optional('!') - Word(alphanums + '_')))('VALUE')
|
||||
]
|
||||
abs_props = [Regex(r'EVDEV_ABS_[0-9a-f]{2}')('NAME')
|
||||
- Suppress('=') -
|
||||
|
|
@ -241,23 +256,24 @@ def check_matches(groups):
|
|||
matches = sum((group[0] for group in groups), [])
|
||||
|
||||
# This is a partial check. The other cases could be also done, but those
|
||||
# two are most commonly wrong.
|
||||
grammars = { 'usb' : 'v' + upperhex_word(4) + Optional('p' + upperhex_word(4) + Optional(':')) + '*',
|
||||
'pci' : 'v' + upperhex_word(8) + Optional('d' + upperhex_word(8) + Optional(':')) + '*',
|
||||
# three are the most commonly wrong.
|
||||
grammars = {
|
||||
'bluetooth' : 'v' + upperhex_word(4) + Optional('p' + upperhex_word(4) + Optional(':')) + '*',
|
||||
'usb' : 'v' + upperhex_word(4) + Optional('p' + upperhex_word(4) + Optional(':')) + '*',
|
||||
'pci' : 'v' + upperhex_word(8) + Optional('d' + upperhex_word(8) + Optional(':')) + '*',
|
||||
}
|
||||
|
||||
for match in matches:
|
||||
prefix, rest = match.split(':', maxsplit=1)
|
||||
gr = grammars.get(prefix)
|
||||
if gr:
|
||||
if gr := grammars.get(prefix):
|
||||
# we check this first to provide an easy error message
|
||||
if rest[-1] not in '*:':
|
||||
error('pattern {} does not end with "*" or ":"', match)
|
||||
error('Pattern {!r} does not end with "*" or ":"', match)
|
||||
|
||||
try:
|
||||
gr.parseString(rest)
|
||||
except ParseBaseException as e:
|
||||
error('Pattern {!r} is invalid: {}', rest, e)
|
||||
error('Pattern {!r} is invalid: {}', match, e)
|
||||
continue
|
||||
|
||||
matches.sort()
|
||||
|
|
@ -336,10 +352,14 @@ def print_summary(fname, groups):
|
|||
print(f'{fname}: {len(groups)} match groups, {n_matches} matches, {n_props} properties')
|
||||
|
||||
if n_matches == 0 or n_props == 0:
|
||||
error(f'{fname}: no matches or props')
|
||||
print(f'{fname}: no matches or props')
|
||||
|
||||
if __name__ == '__main__':
|
||||
args = sys.argv[1:] or sorted(glob.glob(os.path.dirname(sys.argv[0]) + '/[678][0-9]-*.hwdb'))
|
||||
args = sys.argv[1:] or sorted([
|
||||
os.path.dirname(sys.argv[0]) + '/20-dmi-id.hwdb',
|
||||
os.path.dirname(sys.argv[0]) + '/20-net-ifname.hwdb',
|
||||
*glob.glob(os.path.dirname(sys.argv[0]) + '/[678][0-9]-*.hwdb'),
|
||||
])
|
||||
|
||||
for fname in args:
|
||||
groups = parse(fname)
|
||||
|
|
|
|||
2722
hwdb.d/pci.ids
2722
hwdb.d/pci.ids
File diff suppressed because it is too large
Load diff
|
|
@ -9,8 +9,8 @@
|
|||
# The latest version can be obtained from
|
||||
# http://www.linux-usb.org/usb.ids
|
||||
#
|
||||
# Version: 2025.04.01
|
||||
# Date: 2025-04-01 20:34:02
|
||||
# Version: 2025.12.13
|
||||
# Date: 2025-12-13 20:34:01
|
||||
#
|
||||
|
||||
# Vendors, devices and interfaces. Please keep sorted.
|
||||
|
|
@ -59,6 +59,8 @@
|
|||
0112 Card Reader
|
||||
017c MLK
|
||||
145f Trust Deskset
|
||||
019c mek
|
||||
0042 mek_42
|
||||
0200 TP-Link
|
||||
0201 MA180 UMTS Modem
|
||||
0204 Chipsbank Microelectronics Co., Ltd
|
||||
|
|
@ -69,6 +71,9 @@
|
|||
0231 Sonuus Limited
|
||||
02ad HUMAX Co., Ltd.
|
||||
138c PVR Mass Storage
|
||||
0300 Ajazz
|
||||
1010 Akp153E Desktop Controller
|
||||
1020 AKP153R Desktop Controller
|
||||
0303 Mini Automation Controller
|
||||
0324 OCZ Technology Inc
|
||||
bc06 OCZ ATV USB 2.0 Flash Drive
|
||||
|
|
@ -95,7 +100,7 @@
|
|||
0015 ATAPI Enclosure
|
||||
2123 SiPix StyleCam Deluxe
|
||||
8004 Aox 99001
|
||||
03e9 Thesys Microelectronics
|
||||
03e9 Melexis (formerly Thesys Microelectronics)
|
||||
03ea Data Broadcasting Corp.
|
||||
03eb Atmel Corp.
|
||||
0902 4-Port Hub
|
||||
|
|
@ -257,6 +262,8 @@
|
|||
0423 HS-COMBO Cardreader
|
||||
042a LaserJet M1132 MFP
|
||||
0441 Prime [NW280AA, G8X92AA]
|
||||
046b Dock G5
|
||||
0483 Engage Go 10 Tablet
|
||||
0504 DeskJet 885c
|
||||
0505 ScanJet 2100c
|
||||
0507 DVD+RW
|
||||
|
|
@ -266,6 +273,7 @@
|
|||
0517 LaserJet 1000
|
||||
051d Bluetooth Interface
|
||||
052a LaserJet M1212nf MFP
|
||||
0583 Engage Go 10 Tablet
|
||||
0601 ScanJet 6300c
|
||||
0604 DeskJet 840c
|
||||
0605 ScanJet 2200c
|
||||
|
|
@ -275,6 +283,7 @@
|
|||
0624 Bluetooth Dongle
|
||||
0641 X1200 Optical Mouse
|
||||
0653 DeskJet 3700 series
|
||||
0683 Engage Go 10 Tablet
|
||||
0701 ScanJet 5300c/5370c
|
||||
0704 DeskJet 825c
|
||||
0705 ScanJet 4400c
|
||||
|
|
@ -325,6 +334,7 @@
|
|||
1102 PhotoSmart 240 series
|
||||
1104 DeskJet 959c
|
||||
1105 ScanJet 5470c/5490c
|
||||
110c Pocket Media Drive
|
||||
1111 OfficeJet v60
|
||||
1116 Jornada 568 Pocket PC
|
||||
1117 LaserJet 1300n
|
||||
|
|
@ -1013,6 +1023,7 @@
|
|||
3000 Optical dual-touch panel
|
||||
3001 Optical Touch Screen
|
||||
3008 Optical Touch Screen
|
||||
4033 HD Webcam
|
||||
a060 HD Webcam
|
||||
0409 NEC Corp.
|
||||
0011 PC98 Series Layout Keyboard Mouse
|
||||
|
|
@ -1029,6 +1040,7 @@
|
|||
004e SuperScript 1400 Series
|
||||
004f Wireless Keyboard with One-touch start buttons
|
||||
0050 7-port hub
|
||||
0056 uPD720133 IDE bridge
|
||||
0058 HighSpeed Hub
|
||||
0059 HighSpeed Hub
|
||||
005a HighSpeed Hub
|
||||
|
|
@ -1486,6 +1498,7 @@
|
|||
4095 Live! Cam Sync HD [VF0770]
|
||||
4097 Live! Cam Chat HD [VF0700/VF0790]
|
||||
4099 Creative VF0800 [RealSense Camera SR300]
|
||||
40a3 Live! Cam V3 2K [VF-0900]
|
||||
4100 Nomad Jukebox 2
|
||||
4101 Nomad Jukebox 3
|
||||
4102 NOMAD MuVo^2
|
||||
|
|
@ -1959,6 +1972,7 @@
|
|||
010d 3500-4500 series
|
||||
010f 6500 series
|
||||
0142 X3650 (Printer, Scanner, Copier)
|
||||
01bd S800 Series Scanner
|
||||
01fa S310 series
|
||||
020e RICOH Aficio SP 4410SF
|
||||
4303 Xerox WorkCentre Pro 412
|
||||
|
|
@ -1982,6 +1996,7 @@
|
|||
9a10 34UC88-B
|
||||
9a11 34UC88-B
|
||||
9a39 27UP850 - WK.AEUDCSN - External Monitor 4K
|
||||
9a57 UltraGear Monitor
|
||||
9c01 LGE Sync
|
||||
043f RadiSys Corp.
|
||||
0440 Eizo Nanao Corp.
|
||||
|
|
@ -2007,6 +2022,7 @@
|
|||
044d Siemens Nixdorf AG
|
||||
044e Alps Electric Co., Ltd
|
||||
1104 Japanese Keyboard
|
||||
1218 Electric Touchpad
|
||||
2002 MD-5500 Printer
|
||||
2014 Bluetooth Device
|
||||
3001 UGTZ4 Bluetooth
|
||||
|
|
@ -2737,6 +2753,8 @@
|
|||
0180 Strait 3.0
|
||||
01a4 MC 2.1 Mouse
|
||||
01a6 MX BOARD 2.0S FL RGB DE Keyboard
|
||||
0201 Smart Board 1150
|
||||
0202 Smart Terminal 1150
|
||||
b090 Keyboard
|
||||
b091 Mouse
|
||||
c099 Stream Keyboard TKL
|
||||
|
|
@ -2851,6 +2869,7 @@
|
|||
08dd QuickCam for Notebooks
|
||||
08e0 QuickCam Express
|
||||
08e1 Labtec Webcam
|
||||
08e4 C505e HD Webcam
|
||||
08e5 C920 PRO HD Webcam
|
||||
08f0 QuickCam Messenger
|
||||
08f1 QuickCam Express
|
||||
|
|
@ -3002,6 +3021,7 @@
|
|||
c08e G MX518 Gaming Mouse (MU0053)
|
||||
c092 G102/G203 LIGHTSYNC Gaming Mouse
|
||||
c093 M500s Optical Mouse
|
||||
c09d G102 LIGHTSYNC Gaming Mouse
|
||||
c101 UltraX Media Remote
|
||||
c110 Harmony 785/880/885 Remote
|
||||
c111 Harmony 525 Remote
|
||||
|
|
@ -3060,6 +3080,7 @@
|
|||
c24d G710 Gaming Keyboard
|
||||
c24e G500s Laser Gaming Mouse
|
||||
c24f G29 Driving Force Racing Wheel [PS3]
|
||||
c251 GamePanel for Dell XPS M1730
|
||||
c260 G29 Driving Force Racing Wheel [PS4]
|
||||
c262 G920 Driving Force Racing Wheel
|
||||
c281 WingMan Force
|
||||
|
|
@ -3073,6 +3094,7 @@
|
|||
c295 Momo Force Steering Wheel
|
||||
c298 Driving Force Pro
|
||||
c299 G25 Racing Wheel
|
||||
c29a Driving Force GT
|
||||
c29b G27 Racing Wheel
|
||||
c29c Speed Force Wireless Wheel for Wii
|
||||
c2a0 Wingman Force Feedback Mouse
|
||||
|
|
@ -3110,6 +3132,7 @@
|
|||
c335 G910 Orion Spectrum Mechanical Keyboard
|
||||
c336 G213 Prodigy Gaming Keyboard
|
||||
c33a G413 Gaming Keyboard
|
||||
c33e G915 Mechanical Keyboard
|
||||
c33f G815 Mechanical Keyboard
|
||||
c401 TrackMan Marble Wheel
|
||||
c402 Marble Mouse (2-button)
|
||||
|
|
@ -3359,6 +3382,7 @@
|
|||
047c Dell Computer Corp.
|
||||
ffff UPS Tower 500W LV
|
||||
047d Kensington
|
||||
00f2 VeriMark Desktop
|
||||
1001 Mouse*in*a*Box
|
||||
1002 Expert Mouse Pro
|
||||
1003 Orbit TrackBall
|
||||
|
|
@ -3558,6 +3582,7 @@
|
|||
0485 Nokia Monitors
|
||||
0486 ASUS Computers, Inc.
|
||||
0185 EeePC T91MT HID Touch Panel
|
||||
573c Xreal Light Microcontroller
|
||||
0487 Stewart Connector
|
||||
0488 Cirque Corp.
|
||||
0489 Foxconn / Hon Hai
|
||||
|
|
@ -3663,6 +3688,7 @@
|
|||
1033 DGX-505
|
||||
1037 PSR-E403
|
||||
103c MOTIF-RACK ES
|
||||
1045 MM6
|
||||
1054 S90XS Keyboard/Music Synthesizer
|
||||
160f P-105
|
||||
1613 Clavinova CLP535
|
||||
|
|
@ -3892,9 +3918,11 @@
|
|||
106d S750 Printer
|
||||
106e S820D
|
||||
1070 S530D
|
||||
1071 Sony MPR-501
|
||||
1072 I850 Printer
|
||||
1073 I550 Printer
|
||||
1074 S330 Printer
|
||||
1075 Sony MPR-505
|
||||
1076 i70
|
||||
1077 i950
|
||||
107a S830D
|
||||
|
|
@ -4053,6 +4081,7 @@
|
|||
178a PIXMA MG3600 Series
|
||||
178d PIXMA MG6853
|
||||
180b PIXMA MG3000 series
|
||||
183b PIXMA MG3110 Series
|
||||
1856 PIXMA TS6250
|
||||
1900 CanoScan LiDE 90
|
||||
1901 CanoScan 8800F
|
||||
|
|
@ -4060,6 +4089,7 @@
|
|||
1905 CanoScan LiDE 200
|
||||
1906 CanoScan 5600F
|
||||
1907 CanoScan LiDE 700F
|
||||
1908 CanoScan 9000F
|
||||
1909 CanoScan LiDE 110
|
||||
190a CanoScan LiDE 210
|
||||
190d CanoScan 9000F Mark II
|
||||
|
|
@ -4621,6 +4651,7 @@
|
|||
0434 D610
|
||||
0436 D810
|
||||
043f D5600
|
||||
0455 Z50II
|
||||
0f03 PD-10 Wireless Printer Adapter
|
||||
4000 Coolscan LS 40 ED
|
||||
4001 LS 50 ED/Coolscan V ED
|
||||
|
|
@ -4907,11 +4938,19 @@
|
|||
0891 Stylus Office BX535WD
|
||||
0892 Stylus Office BX935FWD
|
||||
0893 EP-774A
|
||||
08d1 L220/L360 Series
|
||||
0e03 Thermal Receipt Printer [TM-T20]
|
||||
0e31 Thermal Receipt Printer [TM-L100]
|
||||
1114 XP-440 [Expression Home Small-in-One Printer]
|
||||
1115 ES-0133 [Expression Home XP-342]
|
||||
1129 ET-4750 [WorkForce ET-4750 EcoTank All-in-One]
|
||||
1168 Workforce WF-7820/7840 Series
|
||||
1186 ET-2820 Series [ET-2820 EcoTank All-in-One]
|
||||
118a ET-2810/L3250 Series [EcoTank ET-2810/L3250]
|
||||
118b ET-2850/L4260 Series [EcoTank ET-2850/L4260]
|
||||
11b0 XP-4200 Series [Expression Home XP-4200]
|
||||
11b9 ET-2830/L3550 Series [EcoTank ET-2830/L3550]
|
||||
11c8 ET-2860/L3270 Series [EcoTank ET-2860/L3270]
|
||||
04b9 Rainbow Technologies, Inc.
|
||||
0300 SafeNet USB SuperPro/UltraPro
|
||||
1000 iKey 1000 Token
|
||||
|
|
@ -4996,6 +5035,9 @@
|
|||
1303 i3 Micro Module
|
||||
1304 i3 Module
|
||||
1305 i3 Multi Sensing Module
|
||||
1400 Javelin Module Recovery
|
||||
1401 Javelin Module
|
||||
1500 Gas sensor demo board
|
||||
04c1 U.S. Robotics (3Com)
|
||||
0020 56K Voice Pro
|
||||
0022 56K Voice Pro
|
||||
|
|
@ -5034,7 +5076,9 @@
|
|||
11f3 fi-6130Z
|
||||
125a PalmSecure Sensor Device - MP
|
||||
132e fi-7160
|
||||
1526 PalmSecure-F Pro
|
||||
159f ScanSnap iX1500
|
||||
15ff Fi-8170 Document Scanner [Ricoh fi-8170: High Performance Desktop Scanner - PFU]
|
||||
200f Sigma DP2 (Mass Storage)
|
||||
2010 Sigma DP2 (PictBridge)
|
||||
201d SATA 3.0 6Gbit/s Adaptor [GROOVY]
|
||||
|
|
@ -5067,6 +5111,7 @@
|
|||
300f Atheros AR3012 Bluetooth
|
||||
3014 Qualcomm Atheros Bluetooth
|
||||
3015 Qualcomm Atheros QCA9377 Bluetooth
|
||||
3802 MediaTek Bluetooth MT7921
|
||||
7022 HP HD Webcam
|
||||
7025 HP HD Webcam
|
||||
7046 TOSHIBA Web Camera - HD
|
||||
|
|
@ -13443,7 +13488,9 @@
|
|||
0b0d ProjectLab
|
||||
0000 CenturyCD
|
||||
0b0e GN Netcom
|
||||
0301 Jabra EVOLVE 20
|
||||
0305 Jabra EVOLVE Link MS
|
||||
030c Jabra EVOLVE 65
|
||||
0311 Jabra EVOLVE 65
|
||||
0312 enc060:Buttons Volume up/down/mute + phone [Jabra]
|
||||
0343 Jabra UC VOICE 150a
|
||||
|
|
@ -13462,6 +13509,11 @@
|
|||
2007 GN 2000 Stereo Corded Headset
|
||||
2456 Jabra SPEAK 810
|
||||
245e Jabra Link 370
|
||||
248a Jabra Elite 85h
|
||||
24b8 Jabra Evolve2 65
|
||||
24bb Jabra Evolve2 85
|
||||
24c9 Jabra Link 380
|
||||
24ca Jabra Link 380
|
||||
620c Jabra BT620s
|
||||
9330 Jabra GN9330 Headset
|
||||
a346 Jabra Engage 75 Stereo
|
||||
|
|
@ -15333,6 +15385,12 @@
|
|||
0e23 Liou Yuane Enterprise Co., Ltd
|
||||
0e25 VinChip Systems, Inc.
|
||||
0e26 J-Phone East Co., Ltd
|
||||
0e2c Materialise Motion NV
|
||||
0012 footscan pressure plate (0.5m)
|
||||
0013 footscan pressure plate (1.0m)
|
||||
0018 footscan 2D interface box
|
||||
0020 footscan pressure plate (1.5m)
|
||||
002d footscan heavy duty pressure plate (1.0m)
|
||||
0e2e Brady Worldwide, Inc.
|
||||
000b BMP 51
|
||||
000c BMP 61
|
||||
|
|
@ -23998,6 +24056,7 @@ C 08 Mass Storage
|
|||
00 Control/Bulk/Interrupt
|
||||
01 Control/Bulk
|
||||
50 Bulk-Only
|
||||
62 USB Attached SCSI
|
||||
C 09 Hub
|
||||
00 Unused
|
||||
00 Full speed (or root) hub
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@
|
|||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><option>kernel-identify</option> <replaceable>kernel</replaceable></term>
|
||||
<term><option>kernel-identify</option> <replaceable>KERNEL-IMAGE</replaceable></term>
|
||||
|
||||
<listitem><para>Takes a kernel image as argument. Checks what kind of kernel the image is. Returns
|
||||
one of <literal>uki</literal>, <literal>addon</literal>, <literal>pe</literal>, and
|
||||
|
|
@ -275,7 +275,7 @@
|
|||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>kernel-inspect</option> <replaceable>kernel</replaceable></term>
|
||||
<term><option>kernel-inspect</option> <replaceable>KERNEL-IMAGE</replaceable></term>
|
||||
|
||||
<listitem><para>Takes a kernel image as argument. Prints details about the image.</para>
|
||||
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@
|
|||
|
||||
<para>Capsule names may be chosen freely by the user, however, they must be suitable as UNIX filenames
|
||||
(i.e. 255 characters max, and contain no <literal>/</literal>), and when prefixed with
|
||||
<literal>p-</literal> be suitable as a user name matching strict POSIX rules, see <ulink
|
||||
<literal>c-</literal> be suitable as a user name matching strict POSIX rules, see <ulink
|
||||
url="https://systemd.io/USER_NAMES">User/Group Name Syntax</ulink> for details.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v256"/>
|
||||
|
|
|
|||
|
|
@ -168,11 +168,13 @@
|
|||
<option>MaxUse=</option> makes
|
||||
sure that old core dumps are removed as soon as the total disk
|
||||
space taken up by core dumps grows beyond this limit (defaults
|
||||
to 10% of the total disk size). <option>KeepFree=</option>
|
||||
controls how much disk space to keep free at least (defaults
|
||||
to 15% of the total disk size). Note that the disk space used
|
||||
to 10% of the total disk size, capped at 4GiB, minimum 1MiB).
|
||||
<option>KeepFree=</option> controls how much disk space to keep
|
||||
free at least (defaults to 15% of the total disk size, limited
|
||||
to a maximum of 4GiB). Note that the disk space used
|
||||
by core dumps might temporarily exceed these limits while
|
||||
core dumps are processed. Note that old core dumps are also
|
||||
core dumps are processed. <option>MaxUse=</option> takes precedence.
|
||||
Note that old core dumps are also
|
||||
removed based on time via
|
||||
<citerefentry><refentrytitle>systemd-tmpfiles</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||
Set either value to 0 to turn off size-based cleanup.</para>
|
||||
|
|
|
|||
|
|
@ -353,7 +353,7 @@
|
|||
particular, if the device is used for a mount point, the mount point itself also needs to
|
||||
have the <option>nofail</option> option, or the boot will fail if the device is not unlocked
|
||||
successfully. If a keyfile and/or a <option>header</option> are specified, the dependencies on
|
||||
their respective directories will also not be fatal, so that umounting said directories will
|
||||
their respective directories will also not be fatal, so that unmounting said directories will
|
||||
not cause the generated cryptset unit to be deactivated.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v186"/></listitem>
|
||||
|
|
|
|||
|
|
@ -18,5 +18,5 @@
|
|||
<!ENTITY DEFAULT_TIMEOUT "{{DEFAULT_TIMEOUT_SEC}} s">
|
||||
<!ENTITY DEFAULT_USER_TIMEOUT "{{DEFAULT_USER_TIMEOUT_SEC}} s">
|
||||
<!ENTITY DEFAULT_KEYMAP "{{SYSTEMD_DEFAULT_KEYMAP}}">
|
||||
<!ENTITY fedora_latest_version "42">
|
||||
<!ENTITY fedora_cloud_release "1.1">
|
||||
<!ENTITY fedora_latest_version "43">
|
||||
<!ENTITY fedora_cloud_release "1.6">
|
||||
|
|
|
|||
|
|
@ -158,6 +158,8 @@
|
|||
<xsl:param name="keyNode"/>
|
||||
<!-- suggested value for generatedID output, a contextually meaningful ID string -->
|
||||
<xsl:param name="templateID"/>
|
||||
<!-- Strip leading and trailing whitespaces, and replace repeating whitespaces with a single space -->
|
||||
<xsl:variable name="normalizedID" select="normalize-space($templateID)"/>
|
||||
<xsl:variable name="conflictSource" select="preceding::refsect1/title|preceding::refsect1/info/title|
|
||||
preceding::refsect2/title|preceding::refsect2/info/title|
|
||||
preceding::varlistentry/term[1]"/>
|
||||
|
|
@ -165,10 +167,10 @@
|
|||
<xsl:choose>
|
||||
<!-- special case conflictCount = 0 to preserve compatibility with URLs generated by previous versions of this XSL stylesheet where possible -->
|
||||
<xsl:when test="$conflictCount = 0">
|
||||
<xsl:value-of select="$templateID"/>
|
||||
<xsl:value-of select="$normalizedID"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="concat($templateID, $conflictCount)"/>
|
||||
<xsl:value-of select="concat($normalizedID, $conflictCount)"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
|
@ -266,6 +268,10 @@
|
|||
<!-- add Index link at top of page -->
|
||||
<xsl:template name="user.header.content">
|
||||
<style>
|
||||
:root {
|
||||
color-scheme: light dark;
|
||||
}
|
||||
|
||||
a.headerlink {
|
||||
color: #c60f0f;
|
||||
font-size: 0.8em;
|
||||
|
|
@ -310,6 +316,13 @@
|
|||
<xsl:text>"</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<!-- copied from docbook to remove the static color declarations -->
|
||||
<xsl:template name="body.attributes">
|
||||
<xsl:if test="starts-with($writing.mode, 'rl')">
|
||||
<xsl:attribute name="dir">rtl</xsl:attribute>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Switch things to UTF-8, ISO-8859-1 is soo yesteryear -->
|
||||
<xsl:output method="html" encoding="UTF-8" indent="no"/>
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
<refnamediv>
|
||||
<refname>file-hierarchy</refname>
|
||||
<refpurpose>File system hierarchy overview</refpurpose>
|
||||
<refpurpose>systemd file system hierarchy requirements</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1>
|
||||
|
|
@ -25,20 +25,12 @@
|
|||
|
||||
<para>Operating systems using the
|
||||
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> system and
|
||||
service manager are organized based on a file system hierarchy inspired by UNIX, more specifically the
|
||||
hierarchy described in the <ulink url="http://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html">File
|
||||
System Hierarchy</ulink> specification and <citerefentry
|
||||
project='man-pages'><refentrytitle>hier</refentrytitle><manvolnum>7</manvolnum></citerefentry>, with
|
||||
various extensions, partially documented in the <ulink
|
||||
url="https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG Base Directory
|
||||
Specification</ulink> and <ulink url="https://www.freedesktop.org/wiki/Software/xdg-user-dirs">XDG User
|
||||
Directories</ulink>. This manual page describes a more generalized, though minimal and modernized subset
|
||||
of these specifications that defines more strictly the suggestions and restrictions systemd makes on the
|
||||
file system hierarchy. Note that this document makes no attempt to define the directory structure
|
||||
comprehensively, it only documents a skeleton of a directory tree, that downstreams can extend. Because
|
||||
of that traditional directories such as <filename>/usr/include/</filename> or
|
||||
<filename>/var/spool/</filename> are not covered, even though it might (or might not) make a lot of sense
|
||||
to include them in the structure of an actually deployed OS.</para>
|
||||
service manager are organized based on a file system hierarchy inspired by UNIX,
|
||||
as described in <ulink url="https://uapi-group.org/specifications/specs/linux_file_system_hierarchy/">
|
||||
Linux File System Hierarchy</ulink>.
|
||||
Additional requirements on <emphasis>when</emphasis> given parts of the hierarchy
|
||||
must be available during boot are listed in
|
||||
<ulink url="https://systemd.io/MOUNT_REQUIREMENTS/">Mount Requirements</ulink>.</para>
|
||||
|
||||
<para>Many of the paths described here can be queried
|
||||
with the
|
||||
|
|
@ -46,716 +38,13 @@
|
|||
tool.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>General Structure</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><filename>/</filename></term>
|
||||
<listitem><para>The file system root. Usually writable, but this is not required. Possibly a
|
||||
temporary file system (<literal>tmpfs</literal>). Not shared with other hosts (unless
|
||||
read-only).</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/boot/</filename></term>
|
||||
<listitem><para>The boot partition used for bringing up the system. On EFI systems, this is possibly
|
||||
the EFI System Partition (ESP), also see
|
||||
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||
This directory is usually strictly local to the host, and should be considered read-only, except when
|
||||
a new kernel or boot loader is installed. This directory only exists on systems that run on physical
|
||||
or emulated hardware that requires boot loaders.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/efi/</filename></term>
|
||||
<listitem><para>If the boot partition <filename>/boot/</filename> is maintained separately from the
|
||||
EFI System Partition (ESP), the latter is mounted here. Tools that need to operate on the EFI system
|
||||
partition should look for it at this mount point first, and fall back to <filename>/boot/</filename>
|
||||
— if the former does not qualify (for example if it is not a mount point or does not have the correct
|
||||
file system type <constant>MSDOS_SUPER_MAGIC</constant>).</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/etc/</filename></term>
|
||||
<listitem><para>System-specific configuration. This directory may or may not be
|
||||
read-only. Frequently, this directory is pre-populated with vendor-supplied configuration files, but
|
||||
applications should not make assumptions about this directory being fully populated or populated at
|
||||
all, and should fall back to defaults if configuration is missing.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/home/</filename></term>
|
||||
<listitem><para>The location for normal user's home directories. Possibly shared with other systems,
|
||||
and never read-only. This directory should only be used for normal users, never for system
|
||||
users. This directory and possibly the directories contained within it might only become available or
|
||||
writable in late boot or even only after user authentication. This directory might be placed on
|
||||
limited-functionality network file systems, hence applications should not assume the full set of file
|
||||
API is available on this directory. Applications should generally not reference this directory
|
||||
directly, but via the per-user <varname>$HOME</varname> environment variable, or via the home
|
||||
directory field of the user database.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/root/</filename></term>
|
||||
<listitem><para>The home directory of the root user. The root user's home directory is located
|
||||
outside of <filename>/home/</filename> in order to make sure the root user may log in even without
|
||||
<filename>/home/</filename> being available and mounted.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/srv/</filename></term>
|
||||
<listitem><para>The place to store general server payload, managed by the administrator. No
|
||||
restrictions are made how this directory is organized internally. Generally writable, and possibly
|
||||
shared among systems. This directory might become available or writable only very late during
|
||||
boot.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/tmp/</filename></term>
|
||||
<listitem><para>The place for small temporary files. This directory is usually mounted as a
|
||||
<literal>tmpfs</literal> instance, and should hence not be used for larger files. (Use
|
||||
<filename>/var/tmp/</filename> for larger files.) This directory is usually flushed at boot-up. Also,
|
||||
files that are not accessed within a certain time may be automatically deleted.</para>
|
||||
|
||||
<para>If applications find the environment variable <varname>$TMPDIR</varname> set, they should use
|
||||
the directory specified in it instead of <filename>/tmp/</filename> (see <citerefentry
|
||||
project='man-pages'><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry> and
|
||||
<ulink url="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03">IEEE
|
||||
Std 1003.1</ulink> for details).</para>
|
||||
|
||||
<para>Since <filename>/tmp/</filename> is accessible to other users of the system, it is essential
|
||||
that files and subdirectories under this directory are only created with <citerefentry
|
||||
project='man-pages'><refentrytitle>mkstemp</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry
|
||||
project='man-pages'><refentrytitle>mkdtemp</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
and similar calls. For more details, see <ulink url="https://systemd.io/TEMPORARY_DIRECTORIES">Using
|
||||
/tmp/ and /var/tmp/ Safely</ulink>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Runtime Data</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><filename>/run/</filename></term>
|
||||
<listitem><para>A <literal>tmpfs</literal> file system for system packages to place runtime data,
|
||||
socket files, and similar. This directory is flushed on boot, and generally writable for privileged
|
||||
programs only. Always writable.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/run/log/</filename></term>
|
||||
<listitem><para>Runtime system logs. System components may place private logs in this
|
||||
directory. Always writable, even when <filename>/var/log/</filename> might not be accessible
|
||||
yet.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/run/user/</filename></term>
|
||||
<listitem><para>Contains per-user runtime directories, each usually individually mounted
|
||||
<literal>tmpfs</literal> instances. Always writable, flushed at each reboot and when the user logs
|
||||
out. User code should not reference this directory directly, but via the
|
||||
<varname>$XDG_RUNTIME_DIR</varname> environment variable, as documented in the <ulink
|
||||
url="https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG Base Directory
|
||||
Specification</ulink>.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Vendor-supplied Operating System Resources</title>
|
||||
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/usr/</filename></term>
|
||||
<listitem><para>Vendor-supplied operating system resources. Usually read-only, but this is not
|
||||
required. Possibly shared between multiple hosts. This directory should not be modified by the
|
||||
administrator, except when installing or removing vendor-supplied packages.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/usr/bin/</filename></term>
|
||||
<listitem><para>Binaries and executables for user commands that shall appear in the
|
||||
<varname>$PATH</varname> search path. It is recommended not to place binaries in this directory that
|
||||
are not useful for invocation from a shell (such as daemon binaries); these should be placed in a
|
||||
subdirectory of <filename>/usr/lib/</filename> instead.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/usr/lib/</filename></term>
|
||||
<listitem><para>Static, private vendor data that is compatible with all architectures (though not
|
||||
necessarily architecture-independent). Note that this includes internal executables or other binaries
|
||||
that are not regularly invoked from a shell. Such binaries may be for any architecture supported by
|
||||
the system. Do not place public libraries in this directory, use <varname>$libdir</varname> (see
|
||||
below), instead.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/usr/lib/<replaceable>arch-id</replaceable>/</filename></term>
|
||||
<listitem><para>Location for placing dynamic libraries into, also called
|
||||
<varname>$libdir</varname>. The architecture identifier to use is defined on <ulink
|
||||
url="https://wiki.debian.org/Multiarch/Tuples">Multiarch Architecture Specifiers (Tuples)</ulink>
|
||||
list. Legacy locations of <varname>$libdir</varname> are <filename>/usr/lib/</filename>,
|
||||
<filename>/usr/lib64/</filename>. This directory should not be used for package-specific data, unless
|
||||
this data is architecture-dependent, too.</para>
|
||||
|
||||
<para>To query <varname>$libdir</varname> for the primary architecture of the system, invoke:
|
||||
<programlisting>systemd-path system-library-arch</programlisting></para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/usr/share/</filename></term>
|
||||
<listitem><para>Resources shared between multiple packages, such as documentation, man pages, time
|
||||
zone information, fonts and other resources. Usually, the precise location and format of files stored
|
||||
below this directory is subject to specifications that ensure interoperability.</para>
|
||||
|
||||
<para>Note that resources placed in this directory typically are under shared ownership,
|
||||
i.e. multiple different packages have provided and consumed these resources, on equal footing, without
|
||||
any obvious primary owner. This makes things systematically different from
|
||||
<filename>/usr/lib/</filename>, where ownership is generally not shared.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/usr/share/doc/</filename></term>
|
||||
<listitem><para>Documentation for the operating system or system packages.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/usr/share/factory/etc/</filename></term>
|
||||
<listitem><para>Repository for vendor-supplied default configuration files. This directory should be
|
||||
populated with pristine vendor versions of all configuration files that may be placed in
|
||||
<filename>/etc/</filename>. This is useful to compare the local configuration of a system with vendor
|
||||
defaults and to populate the local configuration with defaults.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/usr/share/factory/var/</filename></term>
|
||||
|
||||
<listitem><para>Similar to
|
||||
<filename>/usr/share/factory/etc/</filename>, but for vendor
|
||||
versions of files in the variable, persistent data directory
|
||||
<filename>/var/</filename>.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Persistent Variable System Data</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><filename>/var/</filename></term>
|
||||
<listitem><para>Persistent, variable system data. Writable during normal system operation. This
|
||||
directory might be pre-populated with vendor-supplied data, but applications should be able to
|
||||
reconstruct necessary files and directories in this subhierarchy should they be missing, as the
|
||||
system might start up without this directory being populated. Persistency is recommended, but
|
||||
optional, to support ephemeral systems. This directory might become available or writable only very
|
||||
late during boot. Components that are required to operate during early boot hence shall not
|
||||
unconditionally rely on this directory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/var/cache/</filename></term>
|
||||
<listitem><para>Persistent system cache data. System components may place non-essential data in this
|
||||
directory. Flushing this directory should have no effect on operation of programs, except for
|
||||
increased runtimes necessary to rebuild these caches.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/var/lib/</filename></term>
|
||||
<listitem><para>Persistent system data. System components may place private data in this
|
||||
directory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/var/log/</filename></term>
|
||||
<listitem><para>Persistent system logs. System components may place private logs in this directory,
|
||||
though it is recommended to do most logging via the <citerefentry
|
||||
project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
|
||||
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
calls.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/var/tmp/</filename></term>
|
||||
<listitem><para>The place for larger and persistent temporary files. In contrast to
|
||||
<filename>/tmp/</filename>, this directory is usually mounted from a persistent physical file system
|
||||
and can thus accept larger files. (Use <filename>/tmp/</filename> for small ephemeral files.) This
|
||||
directory is generally not flushed at boot-up, but time-based cleanup of files that have not been
|
||||
accessed for a certain time is applied.</para>
|
||||
|
||||
<para>If applications find the environment variable <varname>$TMPDIR</varname> set, they should use
|
||||
the directory specified in it instead of <filename>/var/tmp/</filename> (see <citerefentry
|
||||
project='man-pages'><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
|
||||
details).</para>
|
||||
|
||||
<para>The same security restrictions as with <filename>/tmp/</filename> apply: <citerefentry
|
||||
project='man-pages'><refentrytitle>mkstemp</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry
|
||||
project='man-pages'><refentrytitle>mkdtemp</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
and similar calls should be used. For further details about this directory, see <ulink
|
||||
url="https://systemd.io/TEMPORARY_DIRECTORIES">Using /tmp/ and /var/tmp/
|
||||
Safely</ulink>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Virtual Kernel and API File Systems</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><filename>/dev/</filename></term>
|
||||
<listitem><para>The root directory for device nodes. Usually, this directory is mounted as a
|
||||
<literal>devtmpfs</literal> instance, but might be of a different type in sandboxed/containerized
|
||||
setups. This directory is managed jointly by the kernel and
|
||||
<citerefentry><refentrytitle>systemd-udevd</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
and should not be written to by other components. A number of special purpose virtual file systems
|
||||
might be mounted below this directory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/dev/shm/</filename></term>
|
||||
<listitem><para>Place for POSIX shared memory segments, as created via <citerefentry
|
||||
project='die-net'><refentrytitle>shm_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
||||
This directory is flushed on boot, and is a <literal>tmpfs</literal> file system. Since all users
|
||||
have write access to this directory, special care should be taken to avoid name clashes and
|
||||
vulnerabilities. For normal users, shared memory segments in this directory are usually deleted when
|
||||
the user logs out. Usually, it is a better idea to use memory mapped files in
|
||||
<filename>/run/</filename> (for system programs) or <varname>$XDG_RUNTIME_DIR</varname> (for user
|
||||
programs) instead of POSIX shared memory segments, since these directories are not world-writable and
|
||||
hence not vulnerable to security-sensitive name clashes.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/proc/</filename></term>
|
||||
<listitem><para>A virtual kernel file system exposing the process list and other functionality. This
|
||||
file system is mostly an API to interface with the kernel and not a place where normal files may be
|
||||
stored. For details, see <citerefentry
|
||||
project='man-pages'><refentrytitle>proc</refentrytitle><manvolnum>5</manvolnum></citerefentry>. A
|
||||
number of special purpose virtual file systems might be mounted below this
|
||||
directory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/proc/sys/</filename></term>
|
||||
<listitem><para>A hierarchy below <filename>/proc/</filename> that exposes a number of kernel
|
||||
tunables. The primary way to configure the settings in this API file tree is via
|
||||
<citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
files. In sandboxed/containerized setups, this directory is generally mounted
|
||||
read-only.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/sys/</filename></term>
|
||||
<listitem><para>A virtual kernel file system exposing discovered devices and other
|
||||
functionality. This file system is mostly an API to interface with the kernel and not a place where
|
||||
normal files may be stored. In sandboxed/containerized setups, this directory is generally mounted
|
||||
read-only. A number of special purpose virtual file systems might be mounted below this
|
||||
directory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/sys/fs/cgroup/</filename></term>
|
||||
<listitem><para>A virtual kernel file system exposing process control groups (cgroups). This file
|
||||
system is an API to interface with the kernel and not a place where normal files may be stored. On
|
||||
current systems running in the default "unified" mode, this directory serves as the mount point for
|
||||
the <literal>cgroup2</literal> filesystem, which provides a unified cgroup hierarchy for all resource
|
||||
controllers. On systems with non-default configurations, this directory may instead be a tmpfs
|
||||
filesystem containing mount points for various <literal>cgroup</literal> (v1) resource controllers;
|
||||
in such configurations, if <literal>cgroup2</literal> is mounted it will be mounted on
|
||||
<filename>/sys/fs/cgroup/unified/</filename>, but cgroup2 will not have resource controllers
|
||||
attached. In sandboxed/containerized setups, this directory may either not exist or may include a
|
||||
subset of functionality.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Compatibility Symlinks</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><filename>/bin/</filename></term>
|
||||
<term><filename>/sbin/</filename></term>
|
||||
<term><filename>/usr/sbin/</filename></term>
|
||||
|
||||
<listitem><para>These compatibility symlinks point to <filename>/usr/bin/</filename>, ensuring that
|
||||
scripts and binaries referencing these legacy paths correctly find their binaries.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/lib/</filename></term>
|
||||
|
||||
<listitem><para>This compatibility symlink points to <filename>/usr/lib/</filename>, ensuring that
|
||||
programs referencing this legacy path correctly find their resources.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/lib64/</filename></term>
|
||||
|
||||
<listitem><para>On some architecture ABIs, this compatibility symlink points to
|
||||
<varname>$libdir</varname>, ensuring that binaries referencing this legacy path correctly find their
|
||||
dynamic loader. This symlink only exists on architectures whose ABI places the dynamic loader in this
|
||||
path.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>/var/run/</filename></term>
|
||||
|
||||
<listitem><para>This compatibility symlink points to <filename>/run/</filename>, ensuring that
|
||||
programs referencing this legacy path correctly find their runtime data.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Home Directory</title>
|
||||
|
||||
<para>User applications may want to place files and directories in
|
||||
the user's home directory. They should follow the following basic
|
||||
structure. Note that some of these directories are also
|
||||
standardized (though more weakly) by the <ulink
|
||||
url="https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
|
||||
Base Directory Specification</ulink>. Additional locations for
|
||||
high-level user resources are defined by <ulink
|
||||
url="https://www.freedesktop.org/wiki/Software/xdg-user-dirs">xdg-user-dirs</ulink>.</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><filename>~/.cache/</filename></term>
|
||||
|
||||
<listitem><para>Persistent user cache data. User programs may place non-essential data in this
|
||||
directory. Flushing this directory should have no effect on operation of programs, except for
|
||||
increased runtimes necessary to rebuild these caches. If an application finds
|
||||
<varname>$XDG_CACHE_HOME</varname> set, it should use the directory specified in it instead of this
|
||||
directory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>~/.config/</filename></term>
|
||||
|
||||
<listitem><para>Application configuration. When a new user is created, this directory will be empty
|
||||
or not exist at all. Applications should fall back to defaults should their configuration in this
|
||||
directory be missing. If an application finds <varname>$XDG_CONFIG_HOME</varname> set, it should use
|
||||
the directory specified in it instead of this directory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>~/.local/bin/</filename></term>
|
||||
|
||||
<listitem><para>Executables that shall appear in the user's <varname>$PATH</varname> search path. It
|
||||
is recommended not to place executables in this directory that are not useful for invocation from a
|
||||
shell; these should be placed in a subdirectory of <filename>~/.local/lib/</filename> instead. Care
|
||||
should be taken when placing architecture-dependent binaries in this place, which might be
|
||||
problematic if the home directory is shared between multiple hosts with different
|
||||
architectures.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>~/.local/lib/</filename></term>
|
||||
|
||||
<listitem><para>Static, private vendor data that is compatible with all
|
||||
architectures.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>~/.local/lib/<replaceable>arch-id</replaceable>/</filename></term>
|
||||
|
||||
<listitem><para>Location for placing public dynamic libraries. The architecture identifier to use is
|
||||
defined on <ulink url="https://wiki.debian.org/Multiarch/Tuples">Multiarch Architecture Specifiers
|
||||
(Tuples)</ulink> list.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>~/.local/share/</filename></term>
|
||||
|
||||
<listitem><para>Resources shared between multiple packages, such as fonts or artwork. Usually, the
|
||||
precise location and format of files stored below this directory is subject to specifications that
|
||||
ensure interoperability. If an application finds <varname>$XDG_DATA_HOME</varname> set, it should use
|
||||
the directory specified in it instead of this directory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>~/.local/state/</filename></term>
|
||||
|
||||
<listitem><para>Application state. When a new user is created, this directory will be empty or not
|
||||
exist at all. Applications should fall back to defaults should their state in this directory be
|
||||
missing. If an application finds <varname>$XDG_STATE_HOME</varname> set, it should use the directory
|
||||
specified in it instead of this directory.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Write Access</title>
|
||||
|
||||
<refsect2>
|
||||
<title>Unprivileged Write Access</title>
|
||||
|
||||
<para>Unprivileged processes generally lack write access to most of the hierarchy.</para>
|
||||
|
||||
<para>The exceptions for normal users are
|
||||
<filename>/tmp/</filename>,
|
||||
<filename>/var/tmp/</filename>,
|
||||
<filename>/dev/shm/</filename>, as well as the home directory
|
||||
<varname>$HOME</varname> (usually found below
|
||||
<filename>/home/</filename>) and the runtime directory
|
||||
<varname>$XDG_RUNTIME_DIR</varname> (found below
|
||||
<filename>/run/user/</filename>) of the user, which are all
|
||||
writable.</para>
|
||||
|
||||
<para>For unprivileged system processes, only
|
||||
<filename>/tmp/</filename>,
|
||||
<filename>/var/tmp/</filename> and
|
||||
<filename>/dev/shm/</filename> are writable. If an
|
||||
unprivileged system process needs a private writable directory in
|
||||
<filename>/var/</filename> or <filename>/run/</filename>, it is
|
||||
recommended to either create it before dropping privileges in the
|
||||
daemon code, to create it via
|
||||
<citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
fragments during boot, or via the
|
||||
<varname>StateDirectory=</varname> and <varname>RuntimeDirectory=</varname>
|
||||
directives of service units (see
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for details).</para>
|
||||
|
||||
<para><filename>/tmp/</filename>, <filename>/var/tmp/</filename> and <filename>/dev/shm/</filename>
|
||||
should be mounted <option>nosuid</option> and <option>nodev</option>, which means that set-user-id mode
|
||||
and character or block special devices are not interpreted on those file systems. In general it is not
|
||||
possible to mount them <option>noexec</option>, because various programs use those directories for
|
||||
dynamically generated or optimized code, and with that flag those use cases would break. Using this
|
||||
flag is OK on special-purpose installations or systems where all software that may be installed is
|
||||
known and does not require such functionality. See the discussion of
|
||||
<option>nosuid</option>/<option>nodev</option>/<option>noexec</option> in <citerefentry
|
||||
project='man-pages'><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry> and
|
||||
<constant>PROT_EXEC</constant> in <citerefentry
|
||||
project='man-pages'><refentrytitle>mmap</refentrytitle><manvolnum>2</manvolnum></citerefentry>.
|
||||
</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2>
|
||||
<title>Lack of Write Access on Read-Only Systems and during System Recovery</title>
|
||||
|
||||
<para>As noted above, some systems operate with the <filename>/usr</filename> and
|
||||
<filename>/etc</filename> hierarchies mounted read-only, possibly only allowing write access during
|
||||
package upgrades. Other part of the hierarchy are generally mounted read-write (in particular
|
||||
<filename>/var</filename> and <filename>/var/tmp</filename>), but may be read-only when the kernel
|
||||
remounts the file system read-only in response to errors, or when the system is booted read-only for
|
||||
recovery purposes. To the extent reasonable, applications should be prepared to execute without write
|
||||
access, so that for example, failure to save non-essential data to <filename>/var/cache/</filename> or
|
||||
failure to create a custom log file under <filename>/var/log</filename> does not prevent the
|
||||
application from running.</para>
|
||||
|
||||
<para>The <filename>/run/</filename> directory is available since the earliest boot and is always
|
||||
writable. It should be used for any runtime data and sockets, so that write access to e.g.
|
||||
<filename>/etc</filename> or <filename>/var</filename> is not needed.</para>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Node Types</title>
|
||||
|
||||
<para>Unix file systems support different types of file nodes,
|
||||
including regular files, directories, symlinks, character and
|
||||
block device nodes, sockets and FIFOs.</para>
|
||||
|
||||
<para>It is strongly recommended that <filename>/dev/</filename> is
|
||||
the only location below which device nodes shall be placed.
|
||||
Similarly, <filename>/run/</filename> shall be the only location to
|
||||
place sockets and FIFOs. Regular files, directories and symlinks
|
||||
may be used in all directories.</para>
|
||||
|
||||
<para>Applications should expect that a security policy might be enforced on a system that enforces these
|
||||
rules.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>System Packages</title>
|
||||
|
||||
<para>Developers of system packages should follow strict rules when placing their files in the file
|
||||
system. The following table lists recommended locations for specific types of files supplied by the
|
||||
vendor.</para>
|
||||
|
||||
<table>
|
||||
<title>System package vendor files locations</title>
|
||||
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
|
||||
<colspec colname="directory" />
|
||||
<colspec colname="purpose" />
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Directory</entry>
|
||||
<entry>Purpose</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><filename>/usr/bin/</filename></entry>
|
||||
<entry>Package executables that shall appear in the <varname>$PATH</varname> executable search path, compiled for any of the supported architectures compatible with the operating system. It is not recommended to place internal binaries or binaries that are not commonly invoked from the shell in this directory, such as daemon binaries. As this directory is shared with most other packages of the system, special care should be taken to pick unique names for files placed here, that are unlikely to clash with other package's files.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/usr/lib/<replaceable>arch-id</replaceable>/</filename></entry>
|
||||
<entry>Public shared libraries of the package. As above, be careful with using too generic names, and pick unique names for your libraries to place here to avoid name clashes.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/usr/lib/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>Private static vendor resources of the package, including private binaries and libraries, or any other kind of read-only vendor data.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/usr/lib/<replaceable>arch-id</replaceable>/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>Private other vendor resources of the package that are architecture-specific and cannot be shared between architectures. Note that this generally does not include private executables since binaries of a specific architecture may be freely invoked from any other supported system architecture.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>Additional static vendor files with shared ownership may be installed in the
|
||||
<filename>/usr/share/</filename> hierarchy to the locations defined by the various relevant
|
||||
specifications.</para>
|
||||
|
||||
<para>The following directories shall be used by the package for local configuration and files created
|
||||
during runtime:</para>
|
||||
|
||||
<table>
|
||||
<title>System package variable files locations</title>
|
||||
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
|
||||
<colspec colname="directory" />
|
||||
<colspec colname="purpose" />
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Directory</entry>
|
||||
<entry>Purpose</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><filename>/etc/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>System-specific configuration for the package. It is recommended to default to safe fallbacks if this configuration is missing, if this is possible. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to copy or symlink the necessary files and directories from <filename>/usr/share/factory/</filename> during boot, via the <literal>L</literal> or <literal>C</literal> directives.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/run/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>Runtime data for the package. Packages must be able to create the necessary subdirectories in this tree on their own, since the directory is flushed automatically on boot. Alternatively, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment may be used to create the necessary directories during boot, or the <varname>RuntimeDirectory=</varname> directive of service units may be used to create them at service startup (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details).</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/run/log/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>Runtime log data for the package. As above, the package needs to make sure to create this directory if necessary, as it will be flushed on every boot.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/var/cache/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>Persistent cache data of the package. If this directory is flushed, the application should work correctly on next invocation, though possibly slowed down due to the need to rebuild any local cache files. The application must be capable of recreating this directory should it be missing and necessary. To create an empty directory, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment or the <varname>CacheDirectory=</varname> directive of service units (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>) may be used.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/var/lib/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>Persistent private data of the package. This is the primary place to put persistent data that does not fall into the other categories listed. Packages should be able to create the necessary subdirectories in this tree on their own, since the directory might be missing on boot. To create an empty directory, a <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> fragment or the <varname>StateDirectory=</varname> directive of service units (see <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>) may be used.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>/var/log/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>Persistent log data of the package. As above, the package should make sure to create this directory if necessary, possibly using <citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry> or <varname>LogsDirectory=</varname> (see <citerefentry><refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum></citerefentry>), as it might be missing.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>User Packages</title>
|
||||
|
||||
<para>Programs running in user context should follow strict rules when placing their own files in the
|
||||
user's home directory. The following table lists recommended locations in the home directory for specific
|
||||
types of files supplied by the vendor if the application is installed in the home directory. (User
|
||||
applications installed system-wide are covered by the rules outlined above for vendor files.)</para>
|
||||
|
||||
<table>
|
||||
<title>Vendor package file locations under the home directory of the user</title>
|
||||
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
|
||||
<colspec colname="directory" />
|
||||
<colspec colname="purpose" />
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Directory</entry>
|
||||
<entry>Purpose</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><filename>~/.local/bin/</filename></entry>
|
||||
<entry>Package executables that shall appear in the <varname>$PATH</varname> executable search path. It is not recommended to place internal executables or executables that are not commonly invoked from the shell in this directory, such as daemon executables. As this directory is shared with most other packages of the user, special care should be taken to pick unique names for files placed here, that are unlikely to clash with other package's files.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>~/.local/lib/<replaceable>arch-id</replaceable>/</filename></entry>
|
||||
<entry>Public shared libraries of the package. As above, be careful with using overly generic names, and pick unique names for your libraries to place here to avoid name clashes.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>~/.local/lib/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>Private, static vendor resources of the package, compatible with any architecture, or any other kind of read-only vendor data.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>~/.local/lib/<replaceable>arch-id</replaceable>/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>Private other vendor resources of the package that are architecture-specific and cannot be shared between architectures.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>Additional static vendor files with shared ownership may be installed in the
|
||||
<filename>~/.local/share/</filename> hierarchy, mirroring the subdirectories specified in the section
|
||||
"Vendor-supplied operating system resources" above.</para>
|
||||
|
||||
<para>The following directories shall be used by the package for per-user local configuration and files
|
||||
created during runtime:</para>
|
||||
|
||||
<table>
|
||||
<title>User package variable file locations</title>
|
||||
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
|
||||
<colspec colname="directory" />
|
||||
<colspec colname="purpose" />
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Directory</entry>
|
||||
<entry>Purpose</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><filename>~/.config/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>User-specific configuration for the package. It is required to default to safe fallbacks if this configuration is missing.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename><varname>$XDG_RUNTIME_DIR</varname>/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>User runtime data for the package.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>~/.cache/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>Persistent cache data of the package. If this directory is flushed, the application should work correctly on next invocation, though possibly slowed down due to the need to rebuild any local cache files. The application must be capable of recreating this directory should it be missing and necessary.</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><filename>~/.local/state/<replaceable>package</replaceable>/</filename></entry>
|
||||
<entry>Persistent state data of the package.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
<para><simplelist type="inline">
|
||||
<member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
||||
<para><simplelist>
|
||||
<member><citerefentry project='man-pages'><refentrytitle>hier</refentrytitle><manvolnum>7</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>systemd-path</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>sysctl.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>tmpfiles.d</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
|
||||
<member><citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
|
||||
<member><ulink url="http://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html">File System Hierarchy</ulink></member>
|
||||
<member><ulink url="https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG Base Directory Specification</ulink></member>
|
||||
<member><ulink url="https://www.freedesktop.org/wiki/Software/xdg-user-dirs">XDG User Directories</ulink></member>
|
||||
</simplelist></para>
|
||||
</refsect1>
|
||||
|
||||
|
|
|
|||
|
|
@ -179,6 +179,16 @@
|
|||
<xi:include href="version-info.xml" xpointer="v256"/></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--prompt-new-user</option></term>
|
||||
|
||||
<listitem><para>If used in conjunction with <command>firstboot</command> and no regular user account
|
||||
exists on the system so far the tool will interactively query for user information and create an
|
||||
account.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v256"/></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<xi:include href="user-system-options.xml" xpointer="host" />
|
||||
<xi:include href="user-system-options.xml" xpointer="machine" />
|
||||
|
||||
|
|
@ -1212,9 +1222,10 @@
|
|||
|
||||
<listitem><para>This command is supposed to be invoked during the initial boot of the system. It
|
||||
checks whether any regular home area exists so far, and if not queries the user interactively on the
|
||||
console for user name and password and creates one. Alternatively, if one or more service credentials
|
||||
whose name starts with <literal>home.create.</literal> are passed to the command (containing a user
|
||||
record in JSON format) these users are automatically created at boot.</para>
|
||||
console for user name and password and creates one (only if <option>--prompt-new-user</option> is
|
||||
specified). Alternatively, if one or more service credentials whose name starts with
|
||||
<literal>home.create.</literal> are passed to the command (containing a user record in JSON format)
|
||||
these users are automatically created at boot.</para>
|
||||
|
||||
<para>This command is invoked by the <filename>systemd-homed-firstboot.service</filename> service
|
||||
unit.</para>
|
||||
|
|
|
|||
|
|
@ -38,10 +38,12 @@
|
|||
|
||||
<para>The file should contain a single newline-terminated hostname string. Comments (lines starting with
|
||||
a <literal>#</literal>) are ignored. The hostname should be composed of up to 64 7-bit ASCII lower-case
|
||||
alphanumeric characters or hyphens forming a valid DNS domain name. It is recommended that this name
|
||||
contains only a single label, i.e. without any dots. Invalid characters will be filtered out in an
|
||||
attempt to make the name valid, but obviously it is recommended to use a valid name and not rely on this
|
||||
filtering.</para>
|
||||
alphanumeric characters or hyphens forming a valid DNS domain name. It is strongly recommended that this
|
||||
name contains only a single DNS label, i.e does not contain any dots. This recommendation reflects both
|
||||
usual expectations of applications, and the fact that the Linux kernel limits the length of the system
|
||||
hostname to 64 (i.e. close to the maximum DNS label length of 63) rather than 255 (the maximum DNS domain
|
||||
name length). When applied, invalid characters will be filtered out in an attempt to make the name valid,
|
||||
but obviously it is recommended to use a valid name and not rely on this filtering.</para>
|
||||
|
||||
<para>You may use
|
||||
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry> to change
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@
|
|||
icon name to <replaceable>NAME</replaceable>. The icon name is used by some
|
||||
graphical applications to visualize this host. The icon name
|
||||
should follow the <ulink
|
||||
url="https://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">Icon
|
||||
url="https://specifications.freedesktop.org/icon-naming/latest">Icon
|
||||
Naming Specification</ulink>.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v249"/></listitem>
|
||||
|
|
|
|||
11
man/html.in
11
man/html.in
|
|
@ -1,5 +1,6 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
set -e
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
|
|
@ -8,21 +9,21 @@ if [ -z "$1" ]; then
|
|||
fi
|
||||
|
||||
# make sure the rules have been regenerated (in case update-man-rules was just run)
|
||||
ninja -C "@BUILD_ROOT@" version.h
|
||||
ninja -C @BUILD_ROOT@ version.h
|
||||
|
||||
target="man/$1.html"
|
||||
ninja -C "@BUILD_ROOT@" "$target"
|
||||
ninja -C @BUILD_ROOT@ "$target"
|
||||
|
||||
fullname="@BUILD_ROOT@/$target"
|
||||
fullname=@BUILD_ROOT@/"$target"
|
||||
if [ -f "$fullname" ]; then
|
||||
redirect="$(readlink "$fullname" || :)"
|
||||
else
|
||||
redirect=""
|
||||
fi
|
||||
if [ -n "$redirect" ]; then
|
||||
ninja -C "@BUILD_ROOT@" "man/$redirect"
|
||||
ninja -C @BUILD_ROOT@ "man/$redirect"
|
||||
|
||||
fullname="@BUILD_ROOT@/man/$redirect"
|
||||
fullname=@BUILD_ROOT@"/man/$redirect"
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
|
|
|||
|
|
@ -335,7 +335,7 @@
|
|||
<term><option>--machine=</option></term>
|
||||
|
||||
<listitem><para>Connect to
|
||||
<citerefentry><refentrytitle>systemd-import.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
<citerefentry><refentrytitle>systemd-importd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
running in a local container, to perform the specified operation within the container.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v256"/></listitem>
|
||||
|
|
|
|||
|
|
@ -737,8 +737,8 @@
|
|||
<varlistentry>
|
||||
<term><option>--no-hostname</option></term>
|
||||
|
||||
<listitem><para>Do not show the hostname field of log messages originating from the local host. This
|
||||
switch has an effect only on the <option>short</option> family of output modes (see above).</para>
|
||||
<listitem><para>Do not show the hostname field of log messages. This switch has an effect only on the
|
||||
<option>short</option> family of output modes (see above).</para>
|
||||
|
||||
<para>Note: this option does not remove occurrences of the hostname from log entries themselves, so
|
||||
it does not prevent the hostname from being visible in the logs.</para>
|
||||
|
|
|
|||
|
|
@ -562,6 +562,7 @@
|
|||
<term><filename>/proc/cmdline</filename></term>
|
||||
<listitem>
|
||||
<para>Specifies the kernel command line to use. The first of the files that is found will be used.
|
||||
When running in a container, <filename>/proc/cmdline</filename> is ignored.
|
||||
<varname>$KERNEL_INSTALL_CONF_ROOT</varname> may be used to override the search path; see below for
|
||||
details.</para>
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,8 @@
|
|||
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd-json</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
<citerefentry><refentrytitle>sd-path</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||
and
|
||||
<citerefentry><refentrytitle>sd-varlink</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
for information about different parts of the library interface.</para>
|
||||
|
|
|
|||
|
|
@ -21,53 +21,57 @@
|
|||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<para><filename><replaceable>ESP</replaceable>/loader/loader.conf</filename>,
|
||||
<filename><replaceable>ESP</replaceable>/loader/entries/*.conf</filename>
|
||||
<filename><replaceable>XBOOTLDR</replaceable>/loader/entries/*.conf</filename>
|
||||
</para>
|
||||
<para><filename><replaceable>ESP</replaceable>/loader/loader.conf</filename></para>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>
|
||||
<citerefentry><refentrytitle>systemd-boot</refentrytitle><manvolnum>7</manvolnum></citerefentry> will
|
||||
read <filename><replaceable>ESP</replaceable>/loader/loader.conf</filename>, and any files with the
|
||||
<literal>.conf</literal> extension under
|
||||
<filename><replaceable>ESP</replaceable>/loader/entries/</filename> on the EFI system partition (ESP),
|
||||
and <filename><replaceable>XBOOTLDR</replaceable>/loader/entries/</filename> on the extended boot loader
|
||||
partition (XBOOTLDR) as defined by <ulink url="https://uapi-group.org/specifications/specs/boot_loader_specification">Boot Loader
|
||||
Specification</ulink>.
|
||||
</para>
|
||||
<citerefentry><refentrytitle>systemd-boot</refentrytitle><manvolnum>7</manvolnum></citerefentry> reads
|
||||
<filename><replaceable>ESP</replaceable>/loader/loader.conf</filename>. This file configures whether the
|
||||
menu is shown and for how long, the font, audible beep, types of menu entries to show, the default
|
||||
choice, and some aspects of Secure Boot enrollment and firmware handling. See the list of available
|
||||
options below.</para>
|
||||
|
||||
<para>Each of these configuration files must consist of series of newline (i.e. ASCII code 10) separated
|
||||
lines, each consisting of an option name, followed by whitespace, and the option
|
||||
value. <literal>#</literal> may be used to start a comment line. Empty and comment lines are ignored. The
|
||||
files use UTF-8 encoding.</para>
|
||||
<para>The file uses UTF-8 encoding and consists of series of lines separated by "line feed" (i.e. ASCII
|
||||
code 10). Lines that are empty or start with the comment sign (<literal>#</literal>) are ignored. Other
|
||||
lines consist of an option name, followed by whitespace, and the option value.
|
||||
</para>
|
||||
|
||||
<para>Boolean arguments may be written as
|
||||
<literal>yes</literal>/<literal>y</literal>/<literal>true</literal>/<literal>t</literal>/<literal>on</literal>/<literal>1</literal> or
|
||||
<literal>yes</literal>/<literal>y</literal>/<literal>true</literal>/<literal>t</literal>/<literal>on</literal>/<literal>1</literal>
|
||||
or
|
||||
<literal>no</literal>/<literal>n</literal>/<literal>false</literal>/<literal>f</literal>/<literal>off</literal>/<literal>0</literal>.
|
||||
</para>
|
||||
|
||||
<para>Note: <command>systemd-boot</command> will also read boot loader entry files,
|
||||
type #1 (<filename><replaceable>ESP</replaceable>/loader/entries/*.conf</filename> and
|
||||
<filename><replaceable>XBOOTLDR</replaceable>/loader/entries/*.conf</filename>)
|
||||
and type #2 (<filename><replaceable>ESP</replaceable>/EFI/Linux/*.uki</filename>
|
||||
and <filename><replaceable>XBOOTLDR</replaceable>/EFI/Linux/*.uki</filename>).
|
||||
Those files are described by the
|
||||
<ulink url="https://uapi-group.org/specifications/specs/boot_loader_specification">Boot Loader
|
||||
Specification</ulink>.</para>
|
||||
|
||||
<para>Note: the behaviour of <command>systemd-boot</command> is also influenced by EFI variables. Some of
|
||||
the settings specified in this file can be overridden by those, for example the default boot menu entry
|
||||
or the menu timeouts. See
|
||||
<citerefentry><refentrytitle>systemd-boot</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
|
||||
details.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>Options</title>
|
||||
|
||||
<para>The configuration options supported by
|
||||
<filename><replaceable>ESP</replaceable>/loader/entries/*.conf</filename> and
|
||||
<filename><replaceable>XBOOTLDR</replaceable>/loader/entries/*.conf</filename> files are defined as part
|
||||
of the <ulink url="https://uapi-group.org/specifications/specs/boot_loader_specification">Boot Loader
|
||||
Specification</ulink>.</para>
|
||||
|
||||
<para>The following configuration are supported by the <filename>loader.conf</filename> configuration
|
||||
file:</para>
|
||||
<para>The following configuration are supported in <filename>loader.conf</filename>:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>default</term>
|
||||
|
||||
<listitem><para>A glob pattern to select the default entry. The default entry
|
||||
<listitem><para>A glob pattern to select the default entry by id, which is the
|
||||
file name including literal suffix <literal>.conf</literal>. The default entry
|
||||
may be changed in the boot menu itself, in which case the name of the
|
||||
selected entry will be stored as an EFI variable, overriding this option.
|
||||
</para>
|
||||
|
|
@ -251,11 +255,32 @@
|
|||
<xi:include href="version-info.xml" xpointer="v239"/></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>auto-reboot</term>
|
||||
|
||||
<listitem><para>A boolean controlling the presence of the <literal>Reboot The System</literal>
|
||||
entry (disabled by default). Even if this is disabled, the system may still be rebooted by pressing
|
||||
<keycombo><keycap>Shift</keycap><keycap>b</keycap></keycombo>.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v255"/></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>auto-poweroff</term>
|
||||
|
||||
<listitem><para>A boolean controlling the presence of the <literal>Power Off The System</literal>
|
||||
entry (disabled by default). Even if this is disabled, the system may still be powered off by
|
||||
pressing <keycombo><keycap>Shift</keycap><keycap>o</keycap></keycombo>.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v255"/></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>beep</term>
|
||||
|
||||
<listitem><para>Takes a boolean argument. If timeout enabled beep every second, otherwise beep n times when n-th entry in boot menu is selected (default disabled).
|
||||
Currently, only x86 is supported, where it uses the PC speaker.</para>
|
||||
<listitem><para>Takes a boolean argument. If timeout enabled beep every second, otherwise beep n
|
||||
times when n-th entry in boot menu is selected (default disabled). Currently, only x86 is supported,
|
||||
where it uses the PC speaker.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v251"/></listitem>
|
||||
</varlistentry>
|
||||
|
|
@ -379,8 +404,8 @@ sbvarsign --attr "${attr}" --key KEK.key --cert KEK.pem --output db.auth db db.e
|
|||
<listitem><para>Caveat: This feature is experimental, and is likely to be changed (or removed in its
|
||||
current form) in a future version of systemd.</para>
|
||||
|
||||
<para>Work around BitLocker requiring a recovery key when the boot loader was
|
||||
updated (disabled by default).</para>
|
||||
<para>Work around BitLocker requiring a recovery key when the boot loader was updated (disabled by
|
||||
default).</para>
|
||||
|
||||
<para>Try to detect BitLocker encrypted drives along with an active TPM. If both are found and
|
||||
Windows Boot Manager is selected in the boot menu, set the <literal>BootNext</literal> EFI variable
|
||||
|
|
|
|||
12
man/man.in
12
man/man.in
|
|
@ -9,22 +9,22 @@ if [ -z "$1" ]; then
|
|||
fi
|
||||
|
||||
# make sure the rules have been regenerated (in case update-man-rules was just run)
|
||||
ninja -C "@BUILD_ROOT@" version.h
|
||||
ninja -C @BUILD_ROOT@ version.h
|
||||
|
||||
page="$(echo "$1" | sed 's/\./\\./')"
|
||||
target=$(ninja -C "@BUILD_ROOT@" -t query man/man | grep -E -m1 "man/$page\.[0-9]$" | awk '{print $2}')
|
||||
target=$(ninja -C @BUILD_ROOT@ -t query man/man | grep -E -m1 "man/$page\.[0-9]$" | awk '{print $2}')
|
||||
if [ -z "$target" ]; then
|
||||
echo "Cannot find page $1"
|
||||
exit 1
|
||||
fi
|
||||
ninja -C "@BUILD_ROOT@" "$target"
|
||||
ninja -C @BUILD_ROOT@ "$target"
|
||||
|
||||
fullname="@BUILD_ROOT@/$target"
|
||||
fullname=@BUILD_ROOT@/"$target"
|
||||
redirect="$(sed -n -r '1 s|^\.so man[0-9]/(.*)|\1|p' "$fullname")"
|
||||
if [ -n "$redirect" ]; then
|
||||
ninja -C "@BUILD_ROOT@" "man/$redirect"
|
||||
ninja -C @BUILD_ROOT@ "man/$redirect"
|
||||
|
||||
fullname="@BUILD_ROOT@/man/$redirect"
|
||||
fullname=@BUILD_ROOT@"/man/$redirect"
|
||||
fi
|
||||
|
||||
exec man "$fullname"
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ custom_html_xsl = files('custom-html.xsl')
|
|||
xslt_cmd = [xsltproc, '-o', '@OUTPUT0@'] + xsltproc_flags
|
||||
|
||||
custom_entities_ent = custom_target(
|
||||
'custom-entities.ent',
|
||||
input : 'custom-entities.ent.in',
|
||||
output : 'custom-entities.ent',
|
||||
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'])
|
||||
|
|
@ -76,7 +75,6 @@ foreach tuple : manpages
|
|||
|
||||
if xsltproc.found()
|
||||
p1 = custom_target(
|
||||
man,
|
||||
input : xml,
|
||||
output : [man] + manaliases,
|
||||
command : xslt_cmd + [custom_man_xsl, '@INPUT@'],
|
||||
|
|
@ -88,7 +86,6 @@ foreach tuple : manpages
|
|||
p2 = []
|
||||
foreach htmlalias : htmlaliases
|
||||
link = custom_target(
|
||||
htmlalias,
|
||||
output : htmlalias,
|
||||
command : [ln, '-fs', html, '@OUTPUT@'])
|
||||
if want_html
|
||||
|
|
@ -99,7 +96,6 @@ foreach tuple : manpages
|
|||
endforeach
|
||||
|
||||
p3 = custom_target(
|
||||
html,
|
||||
input : xml,
|
||||
output : html,
|
||||
command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
|
||||
|
|
@ -121,7 +117,6 @@ if not have_lxml
|
|||
endif
|
||||
|
||||
systemd_directives_xml = custom_target(
|
||||
'systemd.directives.xml',
|
||||
input : ['directives-template.xml', source_xml_files],
|
||||
output : 'systemd.directives.xml',
|
||||
depends : man_page_depends,
|
||||
|
|
@ -129,7 +124,6 @@ systemd_directives_xml = custom_target(
|
|||
|
||||
nonindex_xml_files = source_xml_files + [systemd_directives_xml]
|
||||
systemd_index_xml = custom_target(
|
||||
'systemd.index.xml',
|
||||
input : nonindex_xml_files,
|
||||
output : 'systemd.index.xml',
|
||||
command : [make_man_index_py, '@OUTPUT@'] + nonindex_xml_files)
|
||||
|
|
@ -146,7 +140,6 @@ foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directiv
|
|||
mandirn = get_option('mandir') / ('man' + section)
|
||||
|
||||
p1 = custom_target(
|
||||
man,
|
||||
input : xml,
|
||||
output : man,
|
||||
command : xslt_cmd + [custom_man_xsl, '@INPUT@'],
|
||||
|
|
@ -158,7 +151,6 @@ foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directiv
|
|||
if html == 'systemd.index.html'
|
||||
htmlalias = 'index.html'
|
||||
link = custom_target(
|
||||
htmlalias,
|
||||
input : p2,
|
||||
output : htmlalias,
|
||||
command : [ln, '-fs', html, '@OUTPUT@'])
|
||||
|
|
@ -170,7 +162,6 @@ foreach tuple : xsltproc.found() ? [['systemd.directives', '7', systemd_directiv
|
|||
endif
|
||||
|
||||
p3 = custom_target(
|
||||
html,
|
||||
input : xml,
|
||||
output : html,
|
||||
command : xslt_cmd + [custom_html_xsl, '@INPUT@'],
|
||||
|
|
@ -183,13 +174,11 @@ endforeach
|
|||
# Cannot use run_target because those targets are used in depends
|
||||
# Also see https://github.com/mesonbuild/meson/issues/368.
|
||||
man = custom_target(
|
||||
'man',
|
||||
output : 'man',
|
||||
depends : man_pages,
|
||||
command : [echo])
|
||||
|
||||
html = custom_target(
|
||||
'html',
|
||||
output : 'html',
|
||||
depends : html_pages,
|
||||
command : [echo])
|
||||
|
|
|
|||
|
|
@ -341,7 +341,8 @@ node /org/freedesktop/machine1 {
|
|||
be either <literal>container</literal> or <literal>vm</literal> indicating whether the machine to
|
||||
register is of the respective class. The leader PID should be the host PID of the init process of the
|
||||
container or the encapsulating process of the VM. If the root directory of the container is known and
|
||||
available in the host's hierarchy, it should be passed. Otherwise, pass the empty string instead. Finally, the
|
||||
available in the host's hierarchy, it should be passed (note that this is for informational purposes
|
||||
only, and will not be used otherwise). Otherwise, pass the empty string instead. Finally, the
|
||||
scope properties are passed as array in the same way as to PID1's
|
||||
<function>StartTransientUnit()</function> method. Calling this method will internally register a transient scope
|
||||
unit for the calling client (utilizing the passed scope_properties) and move the leader PID into
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@ node /org/freedesktop/resolve1 {
|
|||
(no IDNA conversion is applied), followed by the 16-bit class and type fields (which may be
|
||||
ANY). Finally, a <varname>flags</varname> field may be passed in to alter behaviour of the look-up (see
|
||||
below). On completion, an array of RR items is returned. Each array entry consists of the network interface
|
||||
index the RR was discovered on, the type and class field of the RR found, and a byte array of the raw
|
||||
index the RR was discovered on, the class and type field of the RR found, and a byte array of the raw
|
||||
RR discovered. The raw RR data starts with the RR's domain name, in the original casing, followed
|
||||
by the RR type, class, TTL and RDATA, in the binary format documented in
|
||||
<ulink url="https://www.ietf.org/rfc/rfc1035.txt">RFC 1035</ulink>. For RRs that support name
|
||||
|
|
|
|||
|
|
@ -2552,9 +2552,9 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
|
|||
|
||||
<para><varname>SubState</varname> encodes states of the same state machine that
|
||||
<varname>ActiveState</varname> covers, but knows more fine-grained states that are
|
||||
unit-type-specific. Where <varname>ActiveState</varname> only covers six high-level states,
|
||||
unit-type-specific. Where <varname>ActiveState</varname> only covers eight high-level states,
|
||||
<varname>SubState</varname> covers possibly many more low-level unit-type-specific states that are
|
||||
mapped to the six high-level states. Note that multiple low-level states might map to the same
|
||||
mapped to the eight high-level states. Note that multiple low-level states might map to the same
|
||||
high-level state, but not vice versa. Not all high-level states have low-level counterparts on all unit
|
||||
types. At this point the low-level states are not documented here, and are more likely to be extended
|
||||
later on than the common high-level states explained above.</para>
|
||||
|
|
@ -4799,7 +4799,7 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
|
|||
has no main PID. The control PID is the PID of the current start/stop/reload process running and is 0
|
||||
if no such process is currently running. That means that <varname>ExecMainPID</varname> and
|
||||
<varname>MainPID</varname> differ in the way that the latter immediately reflects whether a main
|
||||
process is currently running while the latter possible contains information collected from the last run
|
||||
process is currently running while the former possibly contains information collected from the last run
|
||||
even if the process is no longer around.</para>
|
||||
|
||||
<para><varname>StatusText</varname>, <varname>StatusErrno</varname>, <varname>StatusBusError</varname>,
|
||||
|
|
|
|||
|
|
@ -196,8 +196,8 @@ $ gdbus introspect --system \
|
|||
<title>See Also</title>
|
||||
<para><simplelist type="inline">
|
||||
<member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>systemd-timedate.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>timedatectl.service</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>systemd-timedated.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
||||
<member><ulink url="https://lists.freedesktop.org/archives/systemd-devel/2011-May/002526.html">More information on how the system clock and RTC interact</ulink></member>
|
||||
</simplelist></para>
|
||||
</refsect1>
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ $ gdbus introspect --system \
|
|||
<title>See Also</title>
|
||||
<para><simplelist type="inline">
|
||||
<member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>systemd-timesync.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>systemd-timesyncd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry></member>
|
||||
</simplelist></para>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
|
|
|||
|
|
@ -108,8 +108,9 @@
|
|||
follows the syntax and rules as described in the <ulink
|
||||
url="https://systemd.io/PORTABLE_SERVICES">Portable Services</ulink> page. The purpose of this
|
||||
file is to identify the extension and to allow the operating system to verify that the extension image
|
||||
matches the base OS. This is typically implemented by checking that the <varname>ID=</varname> options
|
||||
match, and either <varname>SYSEXT_LEVEL=</varname> exists and matches too, or if it is not present,
|
||||
matches the base OS. This is typically implemented by checking that the extension <varname>ID=</varname>
|
||||
option either matches the host <varname>ID=</varname> option or is included the host <varname>ID_LIKE=</varname>
|
||||
option, and either <varname>SYSEXT_LEVEL=</varname> exists and matches too, or if it is not present,
|
||||
<varname>VERSION_ID=</varname> exists and matches. This ensures ABI/API compatibility between the
|
||||
layers and prevents merging of an incompatible image in an overlay.</para>
|
||||
|
||||
|
|
@ -639,7 +640,7 @@
|
|||
set.</para>
|
||||
|
||||
<para>Operating system vendors may extend the file format and introduce new fields. It is highly
|
||||
recommended to prefix new fields with an OS specific name in order to avoid name clashes. Applications
|
||||
recommended to prefix new fields with an OS-specific name in order to avoid name clashes. Applications
|
||||
reading this file must ignore unknown fields.</para>
|
||||
|
||||
<para>Example: <literal>DEBIAN_BTS="debbugs://bugs.debian.org/"</literal>.</para>
|
||||
|
|
|
|||
|
|
@ -593,7 +593,7 @@
|
|||
<citerefentry project="url"><refentrytitle url="https://btrfs.readthedocs.io/en/latest/btrfs.html">btrfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
|
||||
|
||||
<para>Note that this option is only supported in combination with <option>--offline=yes</option>
|
||||
since <filename>btrfs-progs</filename> 6.11 or newer.</para>
|
||||
since <filename>btrfs-progs</filename> 6.12 or newer.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v255"/></listitem>
|
||||
</varlistentry>
|
||||
|
|
@ -610,7 +610,7 @@
|
|||
</para>
|
||||
|
||||
<para>Note that this option is only supported in combination with <option>--offline=yes</option>
|
||||
since <filename>btrfs-progs</filename> 6.11 or newer.</para>
|
||||
since <filename>btrfs-progs</filename> 6.12 or newer.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v256"/></listitem>
|
||||
</varlistentry>
|
||||
|
|
@ -807,8 +807,10 @@
|
|||
partition should be mounted. The second field specifies extra mount options to append to the default
|
||||
mount options. These fields correspond to the second and fourth column of the
|
||||
<citerefentry project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
format. This setting may be specified multiple times to mount the partition multiple times. This can
|
||||
be used to add mounts for different
|
||||
format. As a colon is used for separating fields, each field needs to be quoted when it contains
|
||||
colons. E.g. <programlisting>MountPoint="/path/with:colon":"zstd:1,noatime,lazytime"</programlisting>
|
||||
This setting may be specified multiple times to mount the partition multiple times. This can be used
|
||||
to add mounts for different
|
||||
<citerefentry project="url"><refentrytitle url="https://btrfs.readthedocs.io/en/latest/btrfs.html">btrfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
subvolumes located on the same btrfs partition.</para>
|
||||
|
||||
|
|
|
|||
|
|
@ -155,6 +155,7 @@ manpages = [
|
|||
['sd-journal', '3', [], ''],
|
||||
['sd-json', '3', [], ''],
|
||||
['sd-login', '3', [], 'HAVE_PAM'],
|
||||
['sd-path', '3', [], ''],
|
||||
['sd-varlink', '3', [], ''],
|
||||
['sd_booted', '3', [], ''],
|
||||
['sd_bus_add_match',
|
||||
|
|
|
|||
|
|
@ -75,13 +75,14 @@
|
|||
<refsect1>
|
||||
<title>Thread safety</title>
|
||||
|
||||
<para>Functions that operate on <structname>sd_journal</structname> objects are thread agnostic — given
|
||||
<structname>sd_journal</structname> pointer may only be used from one specific thread at all times (and it has to
|
||||
be the very same one during the entire lifetime of the object), but multiple, independent threads may use multiple,
|
||||
independent objects safely. Other functions — those that are used to send entries to the journal, like
|
||||
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry> and similar,
|
||||
or those that are used to retrieve global information like
|
||||
<citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
|
||||
<para>Functions that operate on <structname>sd_journal</structname> objects are thread agnostic — a given
|
||||
<structname>sd_journal</structname> pointer may only be used from one thread at a time, but multiple
|
||||
independent threads may use multiple objects concurrently. Some functions — those that are used to send
|
||||
entries to the journal, like
|
||||
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
|
||||
similar, or those that are used to retrieve global information like
|
||||
<citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
and
|
||||
<citerefentry><refentrytitle>sd_journal_get_catalog_for_message_id</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||
— are fully thread-safe and may be called from multiple threads in parallel.</para>
|
||||
</refsect1>
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue