0f3b33a3e7
/ crosscheck (push) Successful in 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
42 lines
1.9 KiB
Markdown
42 lines
1.9 KiB
Markdown
---
|
|
type: report
|
|
date: 2026-10-14
|
|
---
|
|
# PL2303 USB-serial driver, built out of tree
|
|
|
|
The WT61 plus (the IMU) sits behind a USB-UART adapter, and its enclosure is designed
|
|
around a **PL2303GC** (`067b:23a3`). JetPack's kernel ships `CONFIG_USB_SERIAL_PL2303`
|
|
unset: of the plain USB-UART drivers it has only `cp210x` and `ftdi_sio`. The adapter
|
|
enumerated but got no `ttyUSB`. Built the way `qmi_wwan` is ([SIM7600-SETUP](SIM7600-SETUP.md#rebuilding-qmi_wwan-after-a-kernel-update)).
|
|
|
|
## What is installed
|
|
|
|
```
|
|
~/infra/pl2303/
|
|
├── Makefile # obj-m += pl2303.o ; `make install` → /lib/modules/$(uname -r)/misc/ + depmod
|
|
├── pl2303.c # linux-stable v5.15.148 drivers/usb/serial/pl2303.c
|
|
└── pl2303.h # linux-stable v5.15.148 drivers/usb/serial/pl2303.h (has PL2303_PRODUCT_ID_GC 0x23a3)
|
|
```
|
|
|
|
`/lib/modules/5.15.148-tegra/misc/pl2303.ko`, vermagic `5.15.148-tegra SMP preempt mod_unload modversions aarch64`,
|
|
depends on the in-tree `usbserial`. After `depmod` it loads through the USB modalias when the adapter is plugged
|
|
in: no `/etc/modules` entry. Built as the user against `/lib/modules/$(uname -r)/build`; only `make install`
|
|
needs sudo.
|
|
|
|
The adapter's serial number is not unique, and nothing names it: svc-core's `imu` service finds the WT61 by
|
|
trying every USB-UART adapter (`cp210x`, `pl2303`, `ftdi_sio`, `ch341`), never the modem's `option` ports.
|
|
|
|
## Rebuilding after a kernel update
|
|
|
|
Like `pcan` and `qmi_wwan`, it does not survive a kernel update. Sign: the adapter is in `lsusb` but there is
|
|
no new `ttyUSB`, and `yukart/system/imu` says `no WT61 on []`.
|
|
|
|
```
|
|
cd ~/infra/pl2303
|
|
# if the kernel's upstream base version changed, refresh the sources:
|
|
# V=v5.15.xxx; for f in pl2303.c pl2303.h; do
|
|
# curl -fL -o $f "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/plain/drivers/usb/serial/$f?h=$V"; done
|
|
make clean && make && sudo make install
|
|
sudo modprobe pl2303
|
|
```
|