Serial not functioning in BalenaOS, ch341-uart (module usbserial not found)

The documentation suggests that this can only be done by modifying the SD card balena-boot directory directly. I’m trying to enable the usbserial module on an Orange Pi Zero, since plugging in a USB serial device has the kernel recognise a generic usb device without loading serial. modprobe usbserial also tells me that the module does not exist. I’m a bit confused about this generally, is the module not compiled in? The serial seems actually to be present and working on the Pi3 already, making this documentation wrong, since I did not have to do this on the Pi3 at all.

https://www.balena.io/docs/reference/OS/advanced/
https://www.balena.io/docs/learn/develop/hardware/i2c-and-spi/

I’m convinced this is isn’t an issue with configuration and that the usbserial module isn’t compiled into the Orange Pi Zero BalenaOS image, which is really frustrating and means I can’t do what I want to do. Any suggestions?

[   85.384419] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[   85.384592] ch341 6-1:1.0: device disconnected
[   87.720189] usb 6-1: new full-speed USB device number 3 using ohci-platform
[   87.949256] usb 6-1: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.63
[   87.949275] usb 6-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[   87.949288] usb 6-1: Product: USB2.0-Serial
[   87.951563] ch341 6-1:1.0: ch341-uart converter detected
[   87.961643] usb 6-1: ch341-uart converter now attached to ttyUSB0

Here is the output for the board as it shows on both Armbian and Raspian(for pi 3).

On BalenaOS, I get this instead:

[  839.637112] usb 4-1: USB disconnect, device number 2
[  851.223231] usb 4-1: new full-speed USB device number 3 using ohci-platform

This renders my application useless, since it can’t read the 3d printer I have plugged in.

Looking at this thread, it seems clear to me that the module simply isn’t present in the Balena version that is currently available for the Orange Pi, which is 2.31.5. Other Orange Pi boards are even more outdated than this. When will this be resolved?

Is it possible someone could direct me to resources that tell me how to build this into the kernel myself?

Hi @matthewcroughan ,

I’ve been informed by one of our device engineers that whilst we do now support the usbserial module in meta-balena, but that we haven’t yet built or tested a later version for the Orange Pi. I’ve had a quick look at the relevant BSP (https://github.com/balena-os/balena-allwinner/blob/master/CHANGELOG.md) and it does seem to suggest the meta-balena version submoduled is a version with this feature. You should be able to build a version of the OS for the Orange Pi Zero using this BSP, but obviously it won’t be supported by us (and may have other issues).

Unfortunately, we don’t currently have an ETA for when we may produce a new version of the OS ourselves.

Best regards,

Heds

How would I then use it without setting up OpenBalena?

Hi @matthewcroughan ,

The main distinction between target balena environments is down to the configuration information, rather than how an image is built. balena-cli allows you to configure a provisioning image to allow a device to tie itself to an application that exist, for example, in balenaCloud.

For example, after logging into to the baleanCloud environment via balean login:

balena os configure custom-image.img --app balenaCloudApp

would allow you to configure your custom-built image with details from the balenaCloudApp that you’d pre-created on balenaCloud.

There’s more documentation on this functionality here: https://www.balena.io/docs/reference/cli/#os-configure-image

Best regards,

Heds

Is there any news on when this’ll simply be pushed to Balena so I can start working on something? I’m losing hope in doing anything with Balena on these boards, and I dont’ want to be locked down to expensive Raspberry Pi’s for everything that I want to do :frowning:

Hello, unfortunately we don’t have an ETA for this as of right now. Let us know if you end up building this yourself: as Hedley mentioned we will not be able to officially support it, but we will be happy to provide assistance and pointers on a best-effort basis.

Hi @nazrhom and @hedss,

I am running into the same issue but with the odroid-xu4 balena image. I’m kind of new to balena and couldn’t follow what you were saying about meta-balena. How can I try and build this into the kernel myself?

Thanks

Hi @transportation,

I believe it’s actually now in meta-balena in general from version v2.39.0 (see the kernel-resin: Add support for CH340 family of usb-serial adapters [Sebastian Panceac] line). However, it appears the latest Production OS version of the XU4 is on v2.38.3+rev3. I’ve asked our device engineers if we have an ETA for a new XU4 release on Production, but in the meantime, it may well be worth trying our Staging environment to see if this does work for the XU4, as the latest release we have there is v2.43.0+rev2 and it should include the changes required for the use of this UART family.

We’ll get back to you once we get a reply from the device engineers, and if you could let us know if this does indeed work for you, that would be very useful.

Thanks and best regards,

Heds

1 Like

And just to clarify, our Staging environment can be found here!

1 Like

@hedss

Thank you so much!! I’ll give it a shot and let you know how it goes.

Hi @transportation,

You’re most welcome! I’ve also been informed by our device engineers that they expect a new release for the XU4 to be available in the next fortnight, so should that work on Staging it should also work when released to Production.

Best regards,

Heds

@hedss Unfortunately I think my device may not fall in the “CH340” family which I missed when reading your post. I just tried it and it didn’t work.

I’m trying to connect a GlobalSat BU-353-S4 device and do not see a /dev path created. I also get modprobe: FATAL: Module usbserial not found in directory /lib/modules/4.19.1-odroid when I try modprobe usbserial vendor=0x067b product=0x2303

Hi,
What is the balenaOS version that you are running on this device?
Kind regards,
Theodor

Hi @telphan,

I am running balenaOS 2.43.0+rev2 in the staging environment.

Thanks

Hi, can you please run the dmesg command and post the output for us to look at?

Thanks,
James.

Sure, here it is:

[   79.921650] usb 3-1.2: new full-speed USB device number 3 using xhci-hcd
[   80.052753] usb 3-1.2: New USB device found, idVendor=067b, idProduct=2303, bcdDevice= 4.00
[   80.059690] usb 3-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   80.067956] usb 3-1.2: Product: USB-Serial Controller D
[   80.072278] usb 3-1.2: Manufacturer: Prolific Technology Inc.