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)

Thanks for the help I am having trouble running ./nvbuild-kernel-dtb-and-Modules.sh it stops with the error “line 8: ./jetpack-env.sh: No such file or directory” I have googled jetpack-env.sh and I can’t find anything that seems relevant - sorry yo be a total noob on this one any pointers please?

modify this to your paths

cat jetpack-env.sh 
# Generated by jetpack-download-extract.sh — Mon May 11 05:26:06 PM PDT 2026
export TOOLROOT="/home/scott/.git/setup-jetpack-build/test/gcc-13.2.0"
export CC="/home/scott/.git/setup-jetpack-build/test/gcc-13.2.0/usr/bin/gcc-13"
export LD="/home/scott/.git/setup-jetpack-build/test/gcc-13.2.0/usr/bin/aarch64-linux-gnu-ld"

Thanks Scott - Have created the file but a bit of digging and I find it should have been created when I ran ./jetpack-download-extract.sh

{

echo "# Generated by jetpack-download-extract.sh --- $(date)"

\[\[ -n "$TOOLROOT" \]\]      && echo "export TOOLROOT=\\"$TOOLROOT\\""

\[\[ -n "$CROSS_COMPILE" \]\] && echo "export CROSS_COMPILE=\\"$CROSS_COMPILE\\""

echo "export CC=\\"$CC\\""

echo "export LD=\\"$LD\\""

} > jetpack-env.sh

echo “Toolchain env saved to jetpack-env.sh”

but ./jetpack-download-extract.sh is failing with "Get:2 file:/var/cuda-repo-ubuntu2404-13-2-local Release

Err:2 file:/var/cuda-repo-ubuntu2404-13-2-local Release

File not found - /var/cuda-repo-ubuntu2404-13-2-local/Release (2: No such file or directory)"

So the creation of the file is not happening. :( How do I install “/var/cuda-repo-ubuntu2404-13-2-local/Release”?

I feel bad that scripts did not work for you. I just built the attached.

tar xf pl2303.tar.gz
sudo cp -p pl2303.ko /lib/modules/6.8.12-tegra/kernel/drivers/usb/serial/
sudo depmod -a
sudo modprobe pl2303

pl2303.tar.gz (29.7 KB)

# To make load at boot run

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

Thats incredibly kind of you Scott and Much appreciated. However the script did run - I managed to hack around the error with your help and I did produce and load a pl2303 module… but the device is still not working. Not sure why at the moment - I will try your module in case mine is broken. I am also going to attach the device to a different machine and see if i can get a response out of it. Again I really appreciate your help thank you!

Once the driver module was loaded I then had to determine the correct baud rate stop bits etc the following command tests the baud etc and shows the output

sudo stty -F /dev/ttyUSB0 4800 raw && sudo cat /dev/ttyUSB0

That’s fantastic. I will get a similar device soon and have made note of the stty command.