ttyUSB not detected - Hummingboard

Hey,

I run BalenaOS 2.15 on Hummingboard and I am not able to communicate with USB device.

When I connect a USB device, it’s recognize but not mount. I have this message on the serial port:
usb 1-1: new full-speed USB device number 3 using ci_hdrc

I don’t find none files ttyUSBx on /dev/ repository.

Have you already meet this issue ?

Thanks,
Ben

Did you give you app container access to the device like this: https://www.balena.io/docs/learn/develop/hardware/

Yes is done. I have the same result on the hostOS.

Hi,

Can you confirm that you are unable to see the /dev/ttyUSBx files from the HostOS? (there won’t be files inside the container if the host is unable to see them)

We need to root cause and find why these dev nodes are not appearing in the host os.

This could be a missing kernel driver/module. Can you please share what usb device it is?
And when you plug it in. Can you share the output of dmesg and lsusb -t

We need to find the exact kernel config option. And then see if it is enabled in that OS version using something like this in the Host OS.
e.g on the nuc I just tried.

root@balena:~# cat /proc/config.gz | gunzip -d | grep -i hdrc
# CONFIG_USB_MUSB_HDRC is not set

Regards
ZubairLK

Yes on the HostOS, I don’t see ttyUSBx files.

I test different usb device type ( storage, tranceiver, …) and I have the same result. When I plug in an Amber key I have :

dmesg :

usb 1-1: new full-speed USB device number 3 using ci_hdrc
imx-sgtl5000 sound-sgtl5000: ASoC: CODEC DAI sgtl5000 not registered
imx-sgtl5000 sound-sgtl5000: snd_soc_register_card failed (-517)

lsusb -t

/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ci_hdrc/1p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ci_hdrc/1p, 480M
    |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M

With the command, I have exactly this result :

# CONFIG_USB_MUSB_HDRC is not set

Ben

CONFIG_USB_MUSB_HDRC was meant as an example.

Based on https://cateee.net/lkddb/web-lkddb/USB_CHIPIDEA.html I think ci_hdrc requires the CONFIG_USB_CHIPIDEA option.

Which is also disabled on the nuc. Is it disabled on the hummingboard as well?

root@balena:~# cat /proc/config.gz | gunzip -d | grep -i chipide -C5
# CONFIG_USB_MICROTEK is not set
# CONFIG_USBIP_CORE is not set
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_DWC3 is not set
# CONFIG_USB_DWC2 is not set
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_ISP1760 is not set

#
# USB port drivers
#

CONFIG_USB_CHIPIDEA option seems ok.

root@b2e6021:/sys/class/gpio/gpio94# cat /proc/config.gz | gunzip -d | grep -i chipide -C5
# CONFIG_USB_MICROTEK is not set
# CONFIG_USBIP_CORE is not set
# CONFIG_USB_MUSB_HDRC is not set
# CONFIG_USB_DWC3 is not set
# CONFIG_USB_DWC2 is not set
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_OF=y
CONFIG_USB_CHIPIDEA_PCI=y
CONFIG_USB_CHIPIDEA_UDC=y
CONFIG_USB_CHIPIDEA_HOST=y
# CONFIG_USB_ISP1760 is not set

#
# USB port drivers
#

hmm. What does lsmod show? Did it load the ci_hdrc kernel module?

ci_hdrc is not load

lsmod
Module Size Used by
ipt_REJECT 1301 1
nf_reject_ipv4 2262 1 ipt_REJECT
ipt_MASQUERADE 1019 3
nf_nat_masquerade_ipv4 1881 1 ipt_MASQUERADE
br_netfilter 13562 0
nfnetlink 4869 2
wl18xx 28828 0
wlcore 136990 1 wl18xx
mac80211 338592 2 wl18xx,wlcore
cfg80211 204345 3 wl18xx,wlcore,mac80211
hci_uart 15405 0
ov5640_camera_mipi_int 33728 0
mxc_v4l2_capture 27116 1 ov5640_camera_mipi_int
ipu_bg_overlay_sdc 5361 1 mxc_v4l2_capture
ipu_still 1955 1 mxc_v4l2_capture
ipu_prp_enc 5993 1 mxc_v4l2_capture
ipu_csi_enc 3703 1 mxc_v4l2_capture
ipu_fg_overlay_sdc 6103 1 mxc_v4l2_capture
v4l2_int_device 2011 3 ipu_csi_enc,ov5640_camera_mipi_int,mxc_v4l2_capture
wlcore_sdio 6045 0

Does the file exist in /lib?
find /lib | grep ci_hdrc
And if it does, can you manually load it using insmod

I’m afraid it does look like the kernel driver isn’t there.

Side note: The hummingboard is a deprecated device. We didn’t have anyone using it

File is not present in /lib.

I am looking to build custom balenaOS with yocto project.
Thks
Ben

Hi,
I’m afraid it seems like the module is not available in that case. But before going all the way to build a custom balenaOS, you might also want to look into How to build custom kernel modules. Maybe this works to just build the missing module?