NVIDIA Jeston AGX Orin 编译PL2302驱动

390 阅读1分钟

最近做项目需要实现树莓派和Orin之间的ttl通讯,于是随便买了一条ttl转接线,像下面这样的:

image.png 直接插上Orin,lsusb,检测不到,难道是线坏了? 接到PC正常了,于是怀疑是Jeston的驱动问题,上google了一下,遇到同样问题的确实不少,PL2302已经停产很久了,Jeston的内核没有预编译它的驱动 Enable CONFIG_USB_SERIAL_PL2303 on kernel - Jetson & Embedded Systems / Jetson Orin Nano - NVIDIA Developer Forums

于是开始了漫长的debug过程,也踩了不少坑,记录一下。

下载AGX Orin Kernel源码

主要参考 docs.nvidia.com/jetson/arch… 首先下载对应版本的源码并解压

tar xf public_sources.tbz2 -C ~/Linux_for_Tegra/..
cd Linux_for_Tegra/source
tar xf kernel_src.tbz2
tar xf kernel_oot_modules_src.tbz2
tar xf nvidia_kernel_display_driver_source.tbz2

驱动被存储在~/Linux_for_Tegra/source/kernel/kernel-jammy-src/drivers/usb/serialpl2302.hpl2302.c

准备编译

到kernel的目录下,读取电脑的内核设定

cd /kernel/kernel-jammy-src
zcat /proc/config.gz > .config

之后编辑生成的.config文件 找到CONFIG_USB_SERIAL_PL2303将其改为如下:

image.png

安装必要的库

sudo apt-get update
sudo apt-get install libssl-dev

编译

make modules_prepare
make M=drivers/usb/serial/ CONFIG_USB_SERIAL_PL2303=m

image.png 编译成功 到drivers/usb/serial目录下

image.png

应用这个driver

sudo cp pl2303.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial/
sudo depmod -a

插上usb模块

lsmod | grep pl2303

image.png

dmesg

image.png

能检测到PL2303就说明已经安装成功了!

cutecom

image.png