CAN卡开机自启动免密码输入
一、添加 CAN卡自启动事项
更改 /etc/rc.local
1,之前通过rc.local 当中去写,后来发现行不通。
主要是sudo 需要输入密码,所以,可以将sudo指令写入到 ~/.bashrc当中。
去掉sudo 写入密码:
sudo gedit /etc/sudoers
添加如下:
#下面的leog 是需要免密的用户名 添加这一行就能免密sudo了
sudo ALL=(ALL:ALL) NOPASSWD: ALL
CAN卡的开机自启动如下:
### parameter
socket_name_1=can0
socket_name_2=can1
socket_name_3=can2
socket_name_4=can3
dev_name=ttyACM1
dev_name1=ttyACM0
baudrate=6 # 4: 100 KBPS, 5: 125 KBPS, 6: 250 KBPS, 7: 500 KBPS,
# 8: 800 KBPS, 9: 1 MBPS, 10: 400 KBPS
baudrate1=7 # 4: 100 KBPS, 5: 125 KBPS, 6: 250 KBPS, 7: 500 KBPS,
# 8: 800 KBPS, 9: 1 MBPS, 10: 400 KBPS
### step
sudo pkill -2 emucd_64
sleep 0.2
sudo rmmod emuc2socketcan
# sudo insmod emuc2socketcan.ko
sudo cp emuc2socketcan.ko /lib/modules/$(uname -r)/kernel/drivers/net/can
sudo depmod -a
sudo modprobe emuc2socketcan
sudo ./emucd_64 -s${baudrate} ${dev_name} ${socket_name_1} ${socket_name_2}
sudo ./emucd_64 -s${baudrate1} ${dev_name1} ${socket_name_3} ${socket_name_4}
if command -v ifconfig &> /dev/null
then
sudo ifconfig ${socket_name_1} txqueuelen 1000
sudo ifconfig ${socket_name_2} txqueuelen 1000
sudo ifconfig ${socket_name_3} txqueuelen 1000
sudo ifconfig ${socket_name_4} txqueuelen 1000
sudo tc qdisc add dev ${socket_name_1} root handle 1: pfifo
sudo tc qdisc add dev ${socket_name_2} root handle 1: pfifo
sudo tc qdisc add dev ${socket_name_3} root handle 1: pfifo
sudo tc qdisc add dev ${socket_name_4} root handle 1: pfifo
sudo ifconfig ${socket_name_1} up
sudo ifconfig ${socket_name_2} up
sudo ifconfig ${socket_name_3} up
sudo ifconfig ${socket_name_4} up
elif command -v ip &> /dev/null
then
sudo ip ${socket_name_1} txqueuelen 1000
sudo ip ${socket_name_2} txqueuelen 1000
sudo ip ${socket_name_3} txqueuelen 1000
sudo ip ${socket_name_4} txqueuelen 1000
sudo tc qdisc add dev ${socket_name_1} root handle 1: pfifo
sudo tc qdisc add dev ${socket_name_2} root handle 1: pfifo
sudo tc qdisc add dev ${socket_name_3} root handle 1: pfifo
sudo tc qdisc add dev ${socket_name_4} root handle 1: pfifo
sudo ip ${socket_name_1} up
sudo ip ${socket_name_2} up
sudo ip ${socket_name_3} up
sudo ip ${socket_name_4} up
else
echo "ip & ifconfig command could not be found"
fi
记住:一定要免密码输入。不然成功不了。
当然,这里也可以直接用写入指令。
运行该指令: run_emucd-4p-1,该指令有时候好使,有时候不好使。
如果想要通过上位机 查看数据,需要将 can0,can1,can2,can3都卸载掉,不然可能会失败。
如果想通过can_utils查看数据,可以通过 candump, cansend 指令。