最近在使用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
,回车;如图所示:
(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