TX2 USB串口驱动ttyACM模块 通过编译内核设置
2017-11-29 10:39
531 查看
最近在使用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
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) 设置
文本框内输入
(2) 在
;如图所示:
最后一定要保存设置,
第二个脚本
脚本中的
第三个脚本文件
重新启动
5.删除
源文件的下载目录为
首先在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.sh1
第二个脚本
makeKernel.sh, 会给一部分
Makefile文件更新补丁以满足
Jetson TX2平台的编译条件,之后就开始内核编译。
脚本中的
make modules install命令会将模块安装到
/lib/modules/目录中。
4.将之前的启动镜像替换为新的镜像
$ ./copyImage.sh1
第三个脚本文件
copyImage.sh会将新的编译镜像
Image和zImage文件拷贝到
/boot目录。
重新启动
TX2:reboot。
5.删除2
中下载的源文件
源文件的下载目录为/usr/src:
$ sudo rm -rf kernel sources r27.1.0_sources.tbz2 kernel_src.tbz2
相关文章推荐
- beaglebone black的串口连接、用usb联网、内核模块的本地编译
- 【转】用串口登录Beaglebone Black、用usb共享电脑网络、内核模块的本地编译
- 内核子系统或设备驱动可以直接编译到内核,也可以编译成模块,如果编译到内核,可以使用前一节介绍的方法通过内核启动参数来向它们传递参数,如果编译成模块,则可以通过命令行在插入模块时传递参数,或者在运行时,
- 通过内核模块设置服务器看门狗的方法
- 如何把自己的驱动编译进内核或模块
- Android新编译的内核驱动模块不能被init加载原因解决
- 如何把一个自己写的外部驱动模块编译添加到内核中 来自网络
- 如何将驱动或模块编译进内核
- 如何把自己的驱动编译进内核或模块
- 编译内核驱动模块的时候错误解决方案
- 如何把自己的驱动编译进内核或模块(Kconfig和Makefile)
- Code maturity level options 代码成熟度选项 [*]Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择 我是开发者,所以选[*] Loadable module support 可加载模块支持 [*]Enable loadable module support 内核编译配置选项简介 (2.4.20-8
- USB 2.0_ser!或者U232-P9 型USB转串Win7 32位或64位驱动 以及 USB转串串口序号查看和设置
- 通过hello world介绍2.6内核模块编译的最基本原理
- 嵌入式重新记录1.将驱动模块编译进内核
- 从 2.4 到 2.6:Linux 内核可装载模块机制的改变对设备驱动的影响—linux2.4单独编译驱动模块
- 如何把自己的驱动编译进内核或模块
- 将LED驱动模块编译到Linux3.10.17内核
- ti8148内核编译驱动模块-手动加载mmc驱动
- 设置编译内核lib驱动及应用层dll的source文件 推荐