启动时自动启动 socketcan 网络接口 (can0,......)

启动时自动启动 socketcan 网络接口 (can0,......)

我有几台机器使用 socketcan 作为 CAN 接口。

硬件驱动程序由 加载modprobe pcan,并且该模块当前神奇地配置为在启动时自行启动,运行良好。

但每次重新启动时,我都必须手动启动网络接口,例如:

sudo ip link set can0 up
sudo ip link set can1 up
sudo ip link set can2 up
sudo ip link set can3 up

在启动时启动接口的最佳方法是什么canX(同时确保它们在pcan模块加载之前不会出现)?

答案1

我发现了一个不错的使用解决方案systemd-networkd适用于 Ubuntu >=19.04:

/etc/systemd/network/80-can.network要自动启用所有 CAN 接口,请创建一个包含以下内容的文件:

[Match]
Name=can*

[CAN]
BitRate=500K

除了“can*”,您还可以指定特定接口(例如“can0”)。当然,您可以根据需要调整比特率。请参阅部分man systemd-network中的所有可用选项[CAN]

然后(重新)启动 systemd-networkd 服务:

sudo systemctl restart systemd-networkd

要使其在启动时自动启动:

sudo systemctl enable systemd-networkd

答案2

我很确定你可以把它们扔进你的 rc.local 文件中

sudo nano /etc/rc.local

#!/bin/sh -e

sudo ip link set can0 up
sudo ip link set can1 up
sudo ip link set can2 up
sudo ip link set can3 up

exit 0

相关内容