NVIDIA Jetson TX2 编译并启动ttyACM模块

194 阅读3分钟

平台: TX2 L4T 27.1 系统:ubuntu 16.04 传感器:hokuyo UTM-30LX laser


有两个TX2,第一个连上hokuyo激光时,直接就能识别ttyACM。当用另一台TX2读取hokuyo UTM-30LX 激光的数据时,运行ls -l /dev/ttyACM*时发现,TX2的串口并没有识别hokuyo。后来发现,是新的这台没有启动ttyACM模块,从而导致无法识别hokuyo。网上有一些中文问题总结,但是不全面,有些关键步骤漏掉了,这是我多次按照他们方法配置仍失败的原因。我把原始的英文教程总结,以备查阅。

1. 出处

原始英文配置教程对于TX2系统的两个版本分别有两套配置教程,BumBleBee009|CSDN博客中给出如何查看版本,引在此处:

Note 如何区分自己的版本是L4T 27.1还是L4T 28.1? 使用uname -r提示的消息是“4.4.15-tegra”,则说明版本是L4T 27.1; 使用uname -r提示的消息是“4.4.38-tegra”,则说明版本是L4T 28.1

Build Kernel and Modules – NVIDIA Jetson TX2--L4T 27.1

Build Kernel and Modules – NVIDIA Jetson TX2--L4T 28.1

如果,想参照原始英文教程配置,建议先科学上网,参照里面的youtube视频教程进行,文字教程省略了很多关键步骤。重点!!!!

本文剩余部分的内容是对视频教程内容的总结与说明,以NVIDIA Jetson TX2--L4T 27.1版本为例,它比NVIDIA Jetson TX2--L4T 28.1的配置多一步,待会会重点强调。

2. L4T 27.1配置启动ttyACM模块

  1. 下载脚本文件(27.1与28.1的区别在此步骤,多最后一行命令
$ git clone https://github.com/jetsonhacks/buildJetsonTX2Kernel.git
$ cd buildJetsonTX2Kernel
# 如果你使用的`Tegra`版本是 `L4T 27.1`, 那么需要切换分分支:
$ git checkout vL4T27.1

一共有3个脚本文件。

  1. 获取内核源码

第一个脚本getKernelSources.sh从NVIDIA developer网站获取内核源码, 然后将源码解压到/usr/src/kernel目录中。

$ ./getKernelSources.sh

源码下载完毕后,脚本会打开一个xconfig配置界面。

此处需要说明的是,xconfig实际上在位于 /usr/src/kernel/kernel -4.4文件夹下,如果第一次配置不成功,不需要重新运行 ./getKernelSources.sh。可以运行以下命令,打开xconfig配置界面。

cd /usr/src/kernel/kernel -4.4
make xconfig
  1. 设置Genral Setup->Local version - append to kernel release ,双击Local version - append to kernel release在文本框内输入-jetsonbot-v0.1,回车;如图所示:在这里插入图片描述

  2. xconfig中按Ctrl+F,弹出一个搜索框。 在这里插入图片描述

  3. 输入ACM,点击search按钮,点击搜索结果中的CDC ACM多点击几次,直到左边框中显示对钩),最后结果如图所示: 在这里插入图片描述

  4. 输入CH341,在显示的结果中,点击(多点击几次,直到框中显示为圆点),然后点退出关闭该子窗口。

在这里插入图片描述

  1. 一定一定记得到点击File--->save,保存刚才的设置,最后点击Quit键退出xconfig。

在这里插入图片描述

  1. 编译内核
$ ./makeKernel.sh

第二个脚本makeKernel.sh, 会给一部分Makefile文件更新补丁以满足Jetson TX2平台的编译条件,之后就开始内核编译。 脚本中的make modules install命令会将模块安装到/lib/modules/目录中。

  1. 将之前的启动镜像更新为新的镜像
$ ./copyImage.sh

第三个脚本文件copyImage.sh会将新的编译镜像ImagezImage文件拷贝到/boot目录。 一般不会出错,若出现没有目标文件的错误时,请检查,新的镜像是否生成成功。

cd /usr/src/kernel/kernel-4.4/arch/arm64/boot/

看该文件夹下是否有ImagezImage文件。如果没有,重新运行第8步的./makeKernel.sh,再试。

  1. reboot TX2
reboot

开机后,就可以检测到连接的hokuyo。

  1. 如果以上操作都成功,并且成功安装了ACM模块,请删除之前安装时用到的源文件。
cd /usr/src
sudo rm -rf kernel sources r27.1.0_sources.tbz2 kernel_src.tbz2

END