一番探索,参考 http://www.jetsonhacks.com/2017/03/25/build-kernel-and-modules-nvidia-jetson-tx2/ 重新进行了内核的编译,编译成功后可以正确识别手柄。
1.首先在TX2安装xbox360手柄驱动:
参考链接:http://www.ncnynl.com/archives/201610/916.html
sudo apt-add-repository ppa:rael-gc/ubuntu-xboxdrv
sudo apt-get update && sudo apt-get install ubuntu-xboxdrv
本人使用的是北通阿修罗TE无线手柄,将USB接收器插到TX2上,P+X灯亮(系统进入360模式),在360模式下可以正常使用。
有了驱动,但是默认TX2的内核并没有启用joystick,需要通过编译内核进行配置。
2.接下来开始配置TX2内核:
(1)下载编译构建Jetson TX2 内核的脚本文件
$ sudo nvpmodel -m 0
编译过程中发热会重一点,建议打开TX2上面的散热扇 sudo ./jetson_clocks.sh
$ git clone https://github.com/jetsonhacks/buildJetsonTX2Kernel.git
$ cd buildJetsonTX2Kernel
这时需要查看你现在的内核版本 打开新的终端 输入 uname -r
如果显示“4.4.15-tegra”,则说明版本是L4T 27.1;“4.4.38-tegra”,说明版本是L4T 28.1;
对于L4T 27.1,需要单独进行分支选择:
$ git checkout vL4T27.1
(2)获得源码
$ ./getKernelSources.sh
源码下载解压完成后脚本将在内核配置文件中打开一个编辑器,我们需要在编辑器中配置修改内核。
首先修改Genral Setup->Local version - append to kernel release 双击在文本框内输入-jetsonbot-v0.1,输入完后记得回车;设置完成后如图所示:
然后在Device Drivers中找到Input device support 点击后在右侧列表中找到Joystick interface 在前面的方框中打勾,注意:显示的是打勾不是小圆点 。如图所示:
然后在列表下面找到Joysticks/Gamepads 双击 将其中设置为如图所示:
设置完成后 记得保存! 然后退出。
(3)编译修改完的内核
$ ./makeKernel.sh
(4)替换Image和zImage
$ ./copyImage.sh
到此步骤,TX2内核编译完成。
接着用ROS开源的代码进行测试,ros wiki上的步骤很详细,看着一步一步敲命令即可。如果可以看到小乌龟可以跑起来,那恭喜你,手柄可以正常使用啦!(http://wiki.ros.org/joy/Tutorials/WritingTeleopNode)