Skip to content

brltty against the hardware catalog

Generated by scripts/gen_brltty_inventory.py from scripts/run-brltty-probe.sh. Do not edit by hand — regenerate.

Probed: 2026-09-12, seven targets, the archive's package downloaded and read, never installed. The catalog side is catalog/hardware/ as it is now.

What this is

brltty gives a blind operator a braille display. Its udev rules start it when a display is plugged in, and for years they named the generic USB serial bridges — FTDI FT232, Silicon Labs CP210x, WCH CH340 — because several displays are built on them. A rig-control cable, a GPS puck or a Meshtastic node on the same chip was then claimed as a braille display the moment it appeared, and its serial port vanished with no error anywhere. AHRL purges brltty unconditionally at the start of every run; EmComm Tools shadows 85-brltty.rules with an empty file and masks brltty-udev.service (D-042). Both are the accessibility software removed from every machine to fix a collision that may not exist on it.

This page measures the collision per target instead: which brltty the archive offers, what pulls it onto a machine, whether the package ships a rules file at all, and which of its rules name an identifier this catalog also names — with the rule's own qualifiers, because a rule that fires only for one manufacturer string or only behind one hub is not the rule that took every FTDI cable in 2022. D-047 records what follows from it.

Per target

Target brltty Arrives by Rules file Rules (on / off) Names a catalogued identifier
debian-13 — Debian GNU/Linux 13 (trixie) 6.7-3.1+deb13u3 amd64 orca (Suggests), speechd-el (Suggests) none shipped — —
debian-13-arm64 — Debian GNU/Linux 13 (trixie) 6.7-3.1+deb13u3 arm64 nothing in the archive none shipped — —
parrot — Parrot Security 7.3 (echo) 6.7-3.1+deb13u3 amd64 orca (Suggests), speechd-el (Suggests) none shipped — —
kali-rolling — Kali GNU/Linux Rolling 6.9.1+repack-1 amd64 orca (Suggests), speechd-el (Suggests) none shipped — —
ubuntu-24.04 — Ubuntu 24.04.4 LTS 6.6-4ubuntu5 amd64 orca (Suggests), speechd-el (Suggests), ubuntu-budgie-desktop (Recommends), ubuntu-budgie-desktop-minimal (Recommends), ubuntu-desktop (Recommends), ubuntu-desktop-minimal (Recommends), ubuntu-unity-desktop (Recommends), ubuntukylin-desktop (Recommends), ubuntukylin-desktop-minimal (Recommends), vanilla-gnome-desktop (Recommends), xubuntu-desktop (Recommends) /lib/udev/rules.d/85-brltty.rules 117 / 5 3 enabled of 7 rules
ubuntu-26.04 — Ubuntu 26.04.1 LTS 6.7-1ubuntu6 amd64 orca (Suggests), speechd-el (Suggests), ubuntu-budgie-desktop (Recommends), ubuntu-budgie-desktop-minimal (Recommends), ubuntu-desktop (Recommends), ubuntu-desktop-minimal (Recommends), ubuntu-unity-desktop (Recommends), ubuntukylin-desktop (Recommends), ubuntukylin-desktop-minimal (Recommends), vanilla-gnome-desktop (Recommends), xubuntu-desktop (Recommends) /usr/lib/udev/rules.d/85-brltty.rules 126 / 7 2 enabled of 8 rules
linuxmint-22.3 — Ubuntu 24.04.4 LTS 6.6-4ubuntu5 amd64 orca (Suggests), speechd-el (Suggests), ubuntu-budgie-desktop (Recommends), ubuntu-budgie-desktop-minimal (Recommends), ubuntu-desktop (Recommends), ubuntu-desktop-minimal (Recommends), ubuntukylin-desktop (Recommends), ubuntukylin-desktop-minimal (Recommends), ubuntu-unity-desktop (Recommends), vanilla-gnome-desktop (Recommends), xubuntu-desktop (Recommends) /lib/udev/rules.d/85-brltty.rules 117 / 5 3 enabled of 7 rules

Arrives by lists every archive package whose Depends, Recommends or Suggests names brltty (its own driver sub-packages excluded). Recommends installs by default; Suggests does not.

The rules that name a catalogued identifier

Every rule below is quoted from the shipped file. Fires for is read from the rule's own qualifiers: a manufacturer-string match fires only for a device whose USB descriptor carries that exact string, and a parent match fires only for a device plugged in behind that hub.

ubuntu-24.04 — brltty 6.6-4ubuntu5 amd64, /lib/udev/rules.d/85-brltty.rules (sha256 1605fa379cace21c…)

Identifier State Braille device Fires for Rule
0403:6001 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is FTDI ENV{PRODUCT}=="403/6001/*", ATTR{manufacturer}=="FTDI", ENV{BRLTTY_BRAILLE_DRIVER}="hd,hm,ht", GOTO="brltty_usb_run"
0403:6001 enabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is Hedo Reha Technik GmbH ENV{PRODUCT}=="403/6001/*", ATTR{manufacturer}=="Hedo Reha Technik GmbH", ENV{BRLTTY_BRAILLE_DRIVER}="hd", GOTO="brltty_usb_run"
0403:6001 enabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is Tivomatic Oy ENV{PRODUCT}=="403/6001/*", ATTR{manufacturer}=="Tivomatic Oy", ENV{BRLTTY_BRAILLE_DRIVER}="at", GOTO="brltty_usb_run"
0403:6001 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 every device with this identifier ENV{PRODUCT}=="403/6001/*", ENV{BRLTTY_BRAILLE_DRIVER}="ce,md", GOTO="brltty_usb_run"
0403:6010 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 every device with this identifier ENV{PRODUCT}=="403/6010/*", ENV{BRLTTY_BRAILLE_DRIVER}="dp", GOTO="brltty_usb_run"
10c4:ea60 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is Silicon Labs ENV{PRODUCT}=="10c4/ea60/*", ATTR{manufacturer}=="Silicon Labs", ENV{BRLTTY_BRAILLE_DRIVER}="sk", GOTO="brltty_usb_run"
1a86:7523 enabled Baum [NLS eReader Zoomax (20 cells)] only behind a parent device 1a40:0101 (a hub) ENV{PRODUCT}=="1a86/7523/*", ATTRS{idVendor}=="1a40", ATTRS{idProduct}=="0101", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"

ubuntu-26.04 — brltty 6.7-1ubuntu6 amd64, /usr/lib/udev/rules.d/85-brltty.rules (sha256 35042aaa9e35a53d…)

Identifier State Braille device Fires for Rule
0403:6001 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is FTDI ENV{PRODUCT}=="403/6001/*", ATTR{manufacturer}=="FTDI", ENV{BRLTTY_BRAILLE_DRIVER}="hd,hm,ht", GOTO="brltty_usb_run"
0403:6001 enabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is Hedo Reha Technik GmbH ENV{PRODUCT}=="403/6001/*", ATTR{manufacturer}=="Hedo Reha Technik GmbH", ENV{BRLTTY_BRAILLE_DRIVER}="hd", GOTO="brltty_usb_run"
0403:6001 enabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is Tivomatic Oy ENV{PRODUCT}=="403/6001/*", ATTR{manufacturer}=="Tivomatic Oy", ENV{BRLTTY_BRAILLE_DRIVER}="at", GOTO="brltty_usb_run"
0403:6001 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 every device with this identifier ENV{PRODUCT}=="403/6001/*", ENV{BRLTTY_BRAILLE_DRIVER}="ce,md", GOTO="brltty_usb_run"
0403:6010 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 every device with this identifier ENV{PRODUCT}=="403/6010/*", ENV{BRLTTY_BRAILLE_DRIVER}="dp", GOTO="brltty_usb_run"
10c4:ea60 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is Silicon Labs ENV{PRODUCT}=="10c4/ea60/*", ATTR{manufacturer}=="Silicon Labs", ENV{BRLTTY_BRAILLE_DRIVER}="sk", GOTO="brltty_usb_run"
1a86:55d3 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 every device with this identifier ENV{PRODUCT}=="1a86/55d3/*", ENV{BRLTTY_BRAILLE_DRIVER}="hm", GOTO="brltty_usb_run"
1a86:7523 disabled Baum [NLS eReader Zoomax (20 cells)] only behind a parent device 1a40:0101 (a hub) ENV{PRODUCT}=="1a86/7523/*", ATTRS{idVendor}=="1a40", ATTRS{idProduct}=="0101", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"

linuxmint-22.3 — brltty 6.6-4ubuntu5 amd64, /lib/udev/rules.d/85-brltty.rules (sha256 1605fa379cace21c…)

Identifier State Braille device Fires for Rule
0403:6001 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is FTDI ENV{PRODUCT}=="403/6001/*", ATTR{manufacturer}=="FTDI", ENV{BRLTTY_BRAILLE_DRIVER}="hd,hm,ht", GOTO="brltty_usb_run"
0403:6001 enabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is Hedo Reha Technik GmbH ENV{PRODUCT}=="403/6001/*", ATTR{manufacturer}=="Hedo Reha Technik GmbH", ENV{BRLTTY_BRAILLE_DRIVER}="hd", GOTO="brltty_usb_run"
0403:6001 enabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is Tivomatic Oy ENV{PRODUCT}=="403/6001/*", ATTR{manufacturer}=="Tivomatic Oy", ENV{BRLTTY_BRAILLE_DRIVER}="at", GOTO="brltty_usb_run"
0403:6001 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 every device with this identifier ENV{PRODUCT}=="403/6001/*", ENV{BRLTTY_BRAILLE_DRIVER}="ce,md", GOTO="brltty_usb_run"
0403:6010 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 every device with this identifier ENV{PRODUCT}=="403/6010/*", ENV{BRLTTY_BRAILLE_DRIVER}="dp", GOTO="brltty_usb_run"
10c4:ea60 disabled Ubuntu disable those to avoid conflicts, https://launchpad.net/bugs/1958224 only when the USB manufacturer string is Silicon Labs ENV{PRODUCT}=="10c4/ea60/*", ATTR{manufacturer}=="Silicon Labs", ENV{BRLTTY_BRAILLE_DRIVER}="sk", GOTO="brltty_usb_run"
1a86:7523 enabled Baum [NLS eReader Zoomax (20 cells)] only behind a parent device 1a40:0101 (a hub) ENV{PRODUCT}=="1a86/7523/*", ATTRS{idVendor}=="1a40", ATTRS{idProduct}=="0101", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"

What the rule does when it fires

Every matching rule jumps to brltty_usb_run, which adds a /dev/brltty/USB-… symlink, sets BRLTTY_BRAILLE_DEVICE to the device's USB address, tags the device for systemd and wants brltty-udev.service. That service runs brltty -n, which opens the display it was told about through libusb — detaching the kernel's serial driver from it. The /dev/ttyUSB* node the operator's software was about to open is gone from that moment.

Reproducing the measurement

scripts/run-brltty-probe.sh            # all seven targets, rootless podman
scripts/gen_brltty_inventory.py        # this page

Set HAMMUNITION_DEGRADED_PODMAN=1 on an account without subuid ranges, and PODMAN_AUTHFILE to an empty {} file if a stale Docker Hub login in ~/.docker/config.json makes anonymous pulls fail — the runner says so.