在Ubuntu服务器18.04中,使用网络计划配置以太网接口、配置和使用CAN接口的最佳方法是什么?
我可以成功地使用netplan来配置我的以太网接口,但是我找不到更多关于如何配置和运行can设备的方法。
在过去,我们会使用/etc/network/interfaces文件来指定CAN总线配置,但我想从这一点出发,着眼于将来升级到ubuntu 20 ( netplan实际上支持can总线)。
我可以使用ip link set can0 type can bitrate 500000手动配置我的can接口,但这不是持久的。我可以把它放到启动时开始的服务中.但我觉得很漂亮。
有更好的建议吗?
发布于 2021-10-05 15:04:21
正如Ollie所指出的,Ubuntu18.04配备了systemd v237,它不支持配置CAN接口。在此承诺中添加了CAN支持,这是首次在systemd v239中发布的。您可以通过键入检查系统的版本%d来实现systemctl --version。如果可以,您应该更新到Ubuntu20.04以使用此功能。
如果您被困在使用Ubuntu18.04,那么您可以手动更新系统d的版本,但这通常被认为是一个坏主意。
我遇到了一个类似的问题。目前,它看起来不像netplan支持can接口,这有点令人沮丧。不过,我确实发现,systemd确实支持can和vcan接口。以下是未经测试的--我正在等待CAN硬件的到来--但应该能工作。
/etc/modules,以便在引导时加载它们。(即cat、raw-can、can-dev、mttcan等)/etc/systemd/network/下创建一个具有.network扩展名并具有以下内容的新文件:匹配 Name=can0 能 BitRate=500000systemd-networkd。警告-如果您已经在运行NetworkManager,并且networkd和NetworkManager都试图配置相同的接口,这可能会导致问题.谨慎使用sudo systemctl启用systemd-networkd现在,无论何时启动系统,都应该将can0接口配置为指定的比特率。
此外,如果要指定链接“向上”,则可以在.network文件中添加一个额外的参数:
[Link]
ActivationPolicy=up顺便提一句,networkd也可以用来启动vcan网络。在这种情况下,您需要生成一个.netdev文件,指定要创建的虚拟网络,以及一个.network文件,以便在引导时自动打开接口。
有用的文件:
https://www.freedesktop.org/software/systemd/man/systemd.network.html
https://www.freedesktop.org/software/systemd/man/systemd.netdev.html
相关论坛/问题:
https://github.com/linux-can/can-utils/issues/68
https://askubuntu.com/questions/1337826
复制相似问题