|
Rose Hellsing
29f8898fcb
update systemd hwdb
new commits: - hwdb: add MSI Claw 8 EX AI+ CG3EM to keyboard hwdb list (5f6ad50d20) - hwdb: Make Amlogic burn mode work out-of-box (67f72f1765) - hwdb: map mic-mute key on Logitech K950 (Bluetooth) (7961b4a78d) - hwdb: add touchpad toggle mapping for MSI Katana GF66 12UD (71c6c88606) - hwbd: correctly map Bluetooth Key on MSI Modern 15 H AI C1MG laptop (313986f21d) - hwdb: map Brazilian ThinkPad T14 Gen 1 slash key to KEY_RO (b48228a559) - hwdb: Map Acer Nitro AN515-58 NitroSense button to prog1 (ed7119960a) - Update hwdb autosuspend (7c1f7c54c9) - Update hwdb (0453506073) - Steam deck lcd screen is a tablet LCD rotated in the kernel into portrait mode. (0a0aa429d3) - Update hwdb autosuspend (9decc099ce) - Update hwdb (b8fbcbf2b7) - Add Elecom Huge Plus information for wired usb, wireless usb, and bluetooth (fc06cd756e) - hwdb: Make Samsung download mode work out-of-the-box (8d846837fc) - hwdb: add IMDS properties for Vultr (045e8f1c7b) - vsock-util: allow VMADDR_CID_ANY as local CID if enabled in hwdb (85afe8e82d) - Update 60-sensor.hwdb - Add support for Juno Tab 4 (Wifi) (047dd36e77) upstream: 47af1efe40a99957f183884ef849c057a598f512 |
||
|---|---|---|
| .gitea | hwdb: Initialize repo | |
| gardenhouse | hwdb: Initialize repo | |
| scripts | scripts: new script to automatically update systemd hwdb | |
| systemd | update systemd hwdb | |
| .editorconfig | hwdb: Initialize repo | |
| .gitignore | hwdb: Initialize repo | |
| .last-systemd-sync | update systemd hwdb | |
| acpi-update.py | hwdb: Initialize repo | |
| acpi_id_registry.csv | update systemd hwdb | |
| CONTRIBUTING.md | hwdb: Initialize repo | |
| ids_parser.py | hwdb: Initialize repo | |
| LICENSE | hwdb: Initialize repo | |
| ma-large.txt | update systemd hwdb | |
| ma-medium.txt | update systemd hwdb | |
| ma-small.txt | update systemd hwdb | |
| parse_hwdb.py | hwdb: Initialize repo | |
| pci.ids | update systemd hwdb | |
| pnp_id_registry.csv | hwdb: Initialize repo | |
| README.md | hwdb: Initialize repo | |
| sdio.ids | hwdb: Initialize repo | |
| usb.ids | update systemd hwdb | |
Gardenhouse hwdb
A community-driven mirror of the systemd hwdb with room for additional, independently maintained hardware rules.
Repository layout
| Path | Description |
|---|---|
systemd/*.hwdb |
Verbatim mirror of systemd's hwdb.d/. Do not edit directly; resync from systemd. |
gardenhouse/*.hwdb |
Community-maintained overlay files (additions and value overrides). |
gardenhouse/deletions.txt |
List of systemd match patterns to drop at build time. |
scripts/build.sh |
Build script: produces dist/ from systemd/ + gardenhouse/. |
dist/ |
Generated final file set. Not committed; produced by scripts/build.sh and shipped in release tarballs. |
pci.ids, usb.ids, sdio.ids, ma-*.txt, *_id_registry.csv |
Source databases for the generated systemd files (PCI/USB/SDIO/OUI/ACPI vendor tables). |
ids_parser.py, acpi-update.py |
Generators that produce the systemd 20-* files from the sources. |
parse_hwdb.py |
Validator: checks .hwdb files for syntactic correctness. |
Building
./scripts/build.sh
This script:
- Reads every
systemd/*.hwdbfile. - Strips out any entry whose match line is listed in
gardenhouse/deletions.txt. - Copies
gardenhouse/*.hwdboverlay files verbatim. - Writes the result to
dist/.
The only build-time dependency is a POSIX shell with awk.
Installing
Either build locally:
git clone https://codeberg.org/<org>/hwdb.git
cd hwdb
./scripts/build.sh
install -m 0644 dist/*.hwdb /etc/udev/hwdb.d/
gardendev-hwdb update
udevadm trigger
or download a release tarball (see Releases / tags) which
contains the pre-built dist/ set.
Verify that a rule applies to a particular device with:
udevadm test /sys/class/<subsystem>/<device>
How the overlay model works
Within udev, all files in /etc/udev/hwdb.d/ are merged into a single trie.
For a given match pattern, the last file processed (lexicographically) wins
for any property it sets. This repository's structure leverages that:
- Mirrored systemd files use the
20-prefix. - Gardenhouse overlays use a higher prefix (e.g.
25-acpi-vendor-gardenhouse.hwdb).
For overrides this would already be enough, but the hwdb format has no
"delete" directive, you cannot remove an entry from a later file. That is
why this repository builds the final file set rather than shipping the
mirrored files verbatim: scripts/build.sh strips deletion-listed entries
before installation, giving us true removal in addition to additions and
overrides.
Contributing
See CONTRIBUTING.md for how to submit new rules, request a deletion, resync from systemd, or report a bug.
Issues and pull requests are welcome on Codeberg.
Releases / tags
This repository does not have a traditional versioned release cycle. Whenever a
change is verified, a new tag is published in the form YYYYMMDDHHMM (UTC).
Each release ships a tarball containing the built dist/ so consumers do not
need to run the build themselves.
License
Licensed under LGPL-2.1-or-later. See LICENSE.