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.