USB devices not being detected

I am working with a fleet of BalenaFins that have a custom serial-to-USB hat. I am running into an issue where on certain BalenaFins the USB devices will not be detected and won’t be attached to an associated virtual device in the HostOS. The peculiar part is that the problem persists on certain BalenaFins regardless of the hat being used. For example, a serial-to-USB hat and BalenaFin in the fleet will work as expected (i.e. detect and mount the USB). But if I put the same serial-to-USB hat on a BalenaFin known to be problematic, the USB devices will not be recognized or detected. I say this because I believe it’s evidence of being either a BalenaFin or BalenaOS error, not an error with the serial-to-USB hat.

I’ve looked in dmesg on the problem device and there’s no mention of the USB device that should be present.

Host OS version: 2.58.3+rev1
BalenaFin; V1.1.1
Supervisor Version: 11.14.0

Thanks for any help or advice on a resolution!

Hi, Anthony. Are the both of the Balena Fin’s running the same application? Is this running in a privileged container? Note, that if you only have one image, and you didn’t deploy with docker-compose.yml, this is a privileged container. If not a privileged container, did you enable the io.balena.features.sysfs feature? If so for all of that, have you made sure the USB port is functional? e.g. by plugging in another USB storage drive?

Some USB device can require extra drivers, are you sure those are installed? Also, are they running the same OS/supervisor?

Just a few quick things to check first.

Thanks for the suggestions. To answer:

  • Yes, the Balena Fin’s are running the same application, supervisor, and OS
  • Yes, it is running in a privileged container as specified in the docker-compose.yml
  • No, the USB port may not be functional. Nothing shows up in dmesg or /dev for ttyUSB

Any other debugging to resolve the unusable USB port? Or how that could have happened?

Hello, can you please provide all the specifics for the HATs you are using? We’ll need to collect as much info as possible as we’ll need to try and reproduce this in the lab…