1 前言
NVIDIA Jetson TX2的Ubuntu 16.04系统上没有安装CH341和CP210x驱动,开始我并没有意识到这个问题。
明明用lsusb
识别到了设备,为什么没有ttyUSB*
?为什么在x86的PC上就有?后来才发现原来没有驱动!
经验就是不断踩坑积累的,都得经历这些,才能成长。
虽然NVIDIA Jetson TX2对开发者已经很友好了,但还是希望将来系统能够预装CH341和CP210x驱动,节省大家的时间。
2 安装CH341和CP210x驱动
2.1 方法1
注意:这个方法会消耗很多硬盘存储空间,建议在操作前保留一定的存储空间。
1.从Github下载文件
$ git clone https://github.com/jetsonhacks/buildJetsonTX2Kernel.git
$ cd buildJetsonTX2Kernel
# 如果你使用的`Tegra`版本是 `L4T 28.1`,那么需要切换分支:
$ git checkout vL4T28.1
如何区分自己的版本是L4T 27.1
,还是L4T 28.1
?
- 使用命令
uname -r
提示的消息是4.4.15-tegra
,则说明版本是L4T 27.1
- 使用命令
uname -r
提示的消息是4.4.38ingl-tegra
,则说明版本是L4T 28.1
2.获取内核源码
./getKernelSources.sh
源码下载完毕后,脚本会打开一个配置界面。
(1)选择Genral Setup->Local version-append to kernel release
,双击Local version - append to kernel release
,在窗口底部的文本框内输入-jetsonbot-v0.1
,然后安回车键确认,如图所示:
(2)按Ctrl+F
,弹出一个搜索框,输入你想要添加的设备驱动,比如这里添加CH341和cp210x串口驱动 ,如图所示:
(3)点击File->Save
保存设置。
3.编译内核
./makeKernel.sh
脚本文件makeKernel.sh
会给一部分Makefile文件更新补丁以满足NVIDIA Jetson TX2平台的编译条件,之后就开始内核编译。
脚本中的make modules install
命令会将模块安装到/lib/modules/
目录中。
4.将之前的启动镜像更新为新的镜像
./copyImage.sh
脚本文件copyImage.sh
会将新的编译镜像Image
和zImage
文件拷贝到/boot
目录。
5.重新启动系统
reboot
6.删除步骤2下载的源文件
源文件的下载目录为/usr/src
:
sudo rm -rf kernel sources r27.1.0_sources.tbz2 kernel_src.tbz2
2.2 方法2
声明:这个方法我没有测试,是后来看到的,但是感觉会比方法1简单,所以也记录在这里,后面有机会再测试。
1.从Github下载文件
git clone https://github.com/jetsonhacks/instalACMMoudle.git
2.查看是否有CH341和CP210x驱动
lsusb
lsmod
lsusb
一般都会识别到设备,但并不代表有设备驱动,需要使用lsmod
确认。
3.安装CH341和CP210x驱动
cd installACMMoudle/
./installCH341.sh
./installCP210x.sh
4.确认CH341和CP210x驱动是否安装成功
lsmod
3 参考
https://blog.csdn.net/pressuress/article/details/79253483
https://www.jetsonhacks.com/2017/03/25/build-kernel-and-modules-nvidia-jetson-tx2/
https://www.youtube.com/watch?v=tDZF7ntLbxc
https://blog.csdn.net/just_sort/article/details/81292263
https://github.com/jetsonhacks/installACMModule