TX2 USB串口驱动ttyACM模块 通过编译内核设置

        最近在使用TX2跑ROS,公司刚好有个eai激光雷达没人用,然后就拿来在TX2上试一试。本人用的是ubuntu 16.04, ros kinetic版本。

        首先在eai官网下载ros驱动和官方提供的使用文档,按照文档的提示先把驱动安装好。驱动安装好啦,那就来试试吧,启动了ROS的launch文件,哈哈,rviz也正常跑起来啦,本来心情大好,以为雷达可以正常使用啦。 但是。。。rviz竟然没有显示出来激光雷达的扫描点,顿时心里一阵瓦凉。没成功,那就看下报错信息吧,原来是没有找到ttyACM。

        然后手动输了遍命令看看情况。

        ls /dev/tty*

        果然没有找到串口。咋办,先在百度上找资源,公司工作时间可以用外网真不错,哈哈。很幸运的找到了一篇博客(http://blog.csdn.net/gzj2013/article/details/77069803),讲的很好,但是一开始也没搞明白具体怎么操作呀。最好还是看nvidia官网的视频教程

        1.从github上下载源码,我自己把源码放到了Downloads目录下

          cd Downloads

    git clone https://github.com/jetsonhacks/buildJetsonTX2Kernel.git
          cd buildJetsonTX2Kernel

          然后你就可以看到以下几个文件啦

          copyImage.sh  getKernelSources.sh  makeKernel.sh  scripts     diffs         LICENSE              README.md

        2. 在当前目录下输入命令

          ./getKernelSources.sh          执行完这条指令将在/usr/src下载几个内核文件

(注意,如果是第一次下载内核进行编译,那么这么做是ok的,考虑到TX2会经常通过内核启用驱动,比如我之前的博客里启用xbox360手柄的驱动也需要通过编译内核的)

          如果你要启用新的驱动,那就可以输入下面这条命令(可以在下载的源码的scripts目录中的getKernelSources.sh中找到)

          cd /usr/src/kernel/kernel -4.4

          make xconfig

          运行了命令后系统会自动弹出一个配置框,然后选择要启用的驱动保
(1) 设置Genral Setup->Local version - append to kernel release
文本框内输入-jetsonbot-v0.1,回车;如图所示:

local version

(2) 在xconfig中按Ctrl+F,弹出一个搜索框,输入你想要添加的设备驱动,比如这里添加CH341串口驱动
;如图所示:

这里写图片描述
最后一定要保存设置,File->Save

3.编译内核

$ ./makeKernel.sh
  • 1

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

4.将之前的启动镜像替换为新的镜像

$ ./copyImage.sh
  • 1

第三个脚本文件copyImage.sh会将新的编译镜像Image和zImage文件拷贝到/boot目录。

重新启动TX2:reboot。

5.删除2中下载的源文件

源文件的下载目录为/usr/src

$ sudo rm -rf kernel sources r27.1.0_sources.tbz2 kernel_src.tbz2





你可能感兴趣的:(TX2,USB串口驱动,ttyACM)