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 指令。

 

posted on 2022-08-11 22:22  zhuxuekui3  阅读(160)  评论(0编辑  收藏  举报