原由
希望在TX2上使用串口与下位机通讯及进行RPLIDAR开发等。与X86架构的Ubuntu 16.04 自带CP2102驱动不同,TX2上的ARM版Ubuntu 16.04内核中不包含CP2102的驱动。插入串口设备后,系统/dev
文件夹下不会出现新文件(设备)
网上的常见解决方法是重新编译Ubuntu 内核,但这种方法过于麻烦,这里介绍的是一种不需编译内核的CP2102驱动方法。
步骤
下载驱动程序
首先,下载Ubuntu下CP210x的驱动程序,此处选择图中Download for Linux 部分,根据自己电脑内核版本选择不同VCP进行下载。
编译驱动程序
将下载的Linux_3.x.x_4.x.x_VCP_Driver_Source.zip
文件解压,在终端中输入
$ sudo make
$ make
注意,此时不能直接make
。编译后文件夹中会出现cp210x.ko
文件,这个.ko
文件就是我们的目标文件。
此时,执行
$ insmod cp210x.ko
安装驱动
这一步需要将驱动文件拷贝至指定文件夹,而这一文件夹在TX2
中本身并不存在,需要手动创建,指令为:
$ sudo mkdir /lib/modules/4.4.38-tegra/kernel/drivers/usb/serial
然后就可以将.ko
文件拷贝至这一文件夹中,指令为:
$ sudo cp cp210x.ko /lib/modules/4.4.38-tegra/kernel/drivers/usb/serial
效果
此时在终端中输入:
$ ls /dev/tty*
我们可以看到出现了新的USB
设备ttyUSB0
此设备即为RPLIDAR。
我们运行RPLIDAR的实例程序进行检验:
roslaunch rplidar_ros view_rplidar.launch
图中可以看出,RPLIDAR已经可以正常工作