Hi, I’m trying to get an Epson TM-T20 series USB thermal printer working via Docker container with balenaCloud on Raspberry Pi 4.
Unfortunately, I’m having a strange experience where balenaOS and the containers are not seeing any USB devices. Currently for testing purposes, I have the printer, a keyboard, a mouse, and a USB drive plugged in (and have tried in various combinations) and none of them are recognized. I’ve poured over the documentation, tried every “docker cups” I can find on GitHub including the semi-official one (willswire/balenaPrint), and I cannot get CUPS, the container, or balenaOS itself to see any USB devices.
I have confirmed that everything works just fine with Raspbian - a brand new unconfigured installation correctly has all devices listed with lsusb
and the printer appears sym linked at /dev/usb/lp0
and under /dev/bus/usb/002/...
. It is only when used via container with balenaOS that no USB devices work. Network printers appear fine in CUPS, as expected.
balenaOS:
balena ssh <UUID>.local
root@UUID:~# lsusb
Bus 002 Device 001: ID 1d6b:0003
Bus 001 Device 001: ID 1d6b:0002
Container:
balena ssh <UUID>.local main
root@UUID:/# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Things that I have tried singularly and in combination:
- Variations of
ENV UDEV=1
,ENV UDEV=on
,ENV UDEV 1
- Overriding ENTRYPOINT and manually copying and pasting the default
entry.sh
file to ensure udevd is set up - Setting
privileged: true
and/ordevices: <many forms>
indocker-compose.yml
- Setting
balena push ... --env UDEV=on
and variants - Deriving
FROM
variousbalenalib
base containers -buster
,ubuntu
,alpine
, etc. - Pushing to a “local mode” device
- deploying to a cloud-managed device
- All of the docker cups example I can find on GitHub: didrip/cups-docker, unixorn/docker-cupsd, olbat/dockerfiles, willswire/balenaPrint, jacobalberty/cups-docker, and maybe some others.
- Lots of different ideas from threads on this forum
For example, pushing this minimal Dockerfile does not appear have any USB devices attached:
# Dockerfile.template
FROM balenalib/%%BALENA_MACHINE_NAME%%:build
ENV UDEV=on
CMD ["sleep", "7d"]
I’m banging my head against this for quite some time now, and nothing seems to be working. Any ideas or support would be greatly appreciated.