英伟达的TX2有两路CAN,默认情况下是没有启动的,通过ifconfig命令可以查看CAN是否启动,如果启动了,可以看到下面的设备。
如果没有相应的设备,则说明CAN没有启动起来。
通过下面的设置可以启动CAN模块。
1、进入下面文件夹
cd /lib/modules/4.4.38-tegra/kernel/net/can
执行下面命令
sudo insmod can.ko
sudo insmod can-raw.ko
sudo insmod can-gw.ko
sudo insmod can-bcm.ko
2、进入下面文件夹
cd /lib/modules/4.4.38-tegra/kernel/drivers/net/can
执行下面命令
sudo insmod can-dev.ko
sudo insmod slcan.ko
sudo insmod vcan.ko
3、进入下面文件夹
cd /lib/modules/4.4.38-tegra/t18x/drivers/net/can/mttcan/native
执行下面命令
sudo insmod mttcan.ko
4、以上操作安装了CAN模块的驱动,接下来对CAN模块进行设置。执行下面的命令。
sudo ip link set can0 type can bitrate 500000
sudo ip link set up can0
ip -s -d link show can0
sudo ip link set can1 type can bitrate 500000
sudo ip link set up can1
ip -s -d link show can1
以上命令对CAN0和CAN1都进行了设置,波特率设置为500kbit/s,如果需要设置其它波特率,对数值修改一下就行了。
至此,两个CAN口就启动起来了。再用ifconfig命令查看一下,就可以看到can0和can1对应的设备。
用这种方式设置后,再次启动TX2,还需要重新设置一下,才能启动CAN。为了避免麻烦可以将上面的命令写到一个脚本文件中,并将脚本文件设置成开机自启动,则以后开机CAN就直接启动起来了。