2
0
Fork
You've already forked hwdb
0
No description
  • Python 81.4%
  • Shell 18.6%
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
2026年07月07日 14:35:04 +02:00
.gitea hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
gardenhouse hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
scripts scripts: new script to automatically update systemd hwdb 2026年06月10日 17:18:02 +02:00
systemd update systemd hwdb 2026年07月07日 14:35:04 +02:00
.editorconfig hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
.gitignore hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
.last-systemd-sync update systemd hwdb 2026年07月07日 14:35:04 +02:00
acpi-update.py hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
acpi_id_registry.csv update systemd hwdb 2026年06月10日 17:14:59 +02:00
CONTRIBUTING.md hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
ids_parser.py hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
LICENSE hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
ma-large.txt update systemd hwdb 2026年07月07日 14:35:04 +02:00
ma-medium.txt update systemd hwdb 2026年07月07日 14:35:04 +02:00
ma-small.txt update systemd hwdb 2026年07月07日 14:35:04 +02:00
parse_hwdb.py hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
pci.ids update systemd hwdb 2026年07月07日 14:35:04 +02:00
pnp_id_registry.csv hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
README.md hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
sdio.ids hwdb: Initialize repo 2026年05月25日 21:24:08 +02:00
usb.ids update systemd hwdb 2026年07月07日 14:35:04 +02:00

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:

  1. Reads every systemd/*.hwdb file.
  2. Strips out any entry whose match line is listed in gardenhouse/deletions.txt.
  3. Copies gardenhouse/*.hwdb overlay files verbatim.
  4. 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.