I have a Globalsat BU 353N5 GPS USB receiver with Prolific Technology, Inc. ATEN Serial Bridge not recognised how do I get it working

The device does not show up on any /dev/ interface it is plugged in and receiving power but lsub shows nothing. I believe it might use the pl2303 Kernal Module which I thought was standard on Ubuntu 24.04 but “sudo modprobe pl2303” returns modprobe: FATAL: Module pl2303 not found in directory /lib/modules/6.8.12-tegra.

Anyone know how I get this GPS receiver running on my Jetson Thor Dev kit.

BTW is anyone else having problems with the USB-C ports? That’s unrelated to the above but I have noticed sometimes things plugged into USB-C work and sometimes they don’t.

Thanks

Hi,
Please check if any kernel configs need to be enabled for the device. You can then follow the section to customize kernel image:
Kernel Customization — NVIDIA Jetson Linux Developer Guide

cd Linux_for_Tegra/source/kernel/kernel-noble
ls drivers/usb/serial/pl2303.*

# On Thor
zcat /proc/config.gz >defconfig

grep -i pl2303 defconfig
# CONFIG_USB_SERIAL_PL2303 is not set

mv defconfig arch/arm64/configs/

make menuconfig
-> Device Drivers                                                                                                                                  │  
   -> USB support (USB_SUPPORT [=y])                                                                                                                │  
      -> USB Serial Converter support (USB_SERIAL [=m])                                                                                              │  
         -> USB Prolific 2303 Single Port Serial Driver (USB_SERIAL_PL2303 [=n])                                                                      │  

grep -i pl2303 .config 
CONFIG_USB_SERIAL_PL2303=m

Thanks Whitessott - I have got that far. Do I now have to make a new kernel or simply make a module, apologies only had the Thor a few days and I am still getting to grips with it.

Hi,
We would suggest make a new kernel and modules. Please refer to the real practice on Orin Jetpack 6:
No data from Joystick Logitech-f710 - #10 by DaneLLL

It is similar on Thor Jetpack 7. Only difference is to refer to developer guide of Jetpack 7.1 r38.4.

This works on Thor to do an automated Jetpack 7.1 kernel build.

I’ve not tested on x86_64 yet but only real difference are the correct aarch64 gcc build tools and the scripts test the computer running on with uname -m. My Thor has gcc=13.3.0, took a little time to determine best way to get gcc=13.2.0 binaries without downgrading gcc on Thor.

If you want to use this method to build your kernel module.

Make an empty directory.
Copy 2 attached files into that directory.

Run ./jetpack-download-extract.sh first to download jetpack 7.1 and all needed source and binaries.

Next run ./nvbuild-kernel-dtb-and-Modules.sh

When it asks whether to run menuconfig, for now I’d say yes. and as noted above get to "USB Prolific 2303 Single Port Serial Driver (USB_SERIAL_PL2303 " and hit spacebar or m to make it to be a module. exit/exit/exit and let it save .config

Then script will continue and the first time nvbuild-kernel-dtb-and-Modules.sh executes I’d pick A to build kernel, modules, dtbs.

In about 10 minutes you’ll have your pl2303.ko module

Then grab and test your module.

sudo modprobe usbserial
sudo insmod Linux_for_Tegra/source/kernel_out/kernel/kernel-noble/drivers/usb/serial/pl2303.ko
sudo dmesg --ctime | tail -20

lsmod | grep -E 'pl2303|usbserial'
pl2303                 16384  0
usbserial              32768  1 pl2303

Then if it’s happy, install it.

sudo install -D -m 0644 \
  Linux_for_Tegra/source/kernel_out/kernel/kernel-noble/drivers/usb/serial/pl2303.ko \
  /lib/modules/$(uname -r)/kernel/drivers/usb/serial/pl2303.ko

sudo depmod -a

sudo modprobe usbserial
sudo modprobe pl2303

# To make load at boot run

printf '%s\n' usbserial pl2303 | sudo tee /etc/modules-load.d/pl2303.conf

jetpack-download-extract.sh.txt (4.4 KB)
nvbuild-kernel-dtb-and-Modules.sh.txt (3.3 KB)