設定啟動時啟動的 vcan 接口

設定啟動時啟動的 vcan 接口

我想在啟動時設定一個虛擬 SocketCAN 介面。以下幾行執行我想要的操作(手動):

ip link add dev vcan0 type vcan
ip link set up vcan0

(或)

ip link add dev vcan0 up type vcan

我有一個方法來提出身體的關於熱插拔的 USB CAN 介面 - 我將以下幾行添加到/etc/network/interfaces

allow-hotplug can0
iface can0 can static
    bitrate 250000
    up /sbin/ip link set $IFACE down
    up /sbin/ip link set $IFACE up type can

我現在也想vcan在啟動時調出該介面。所以我自動添加了vcan模組並將這些行添加到/etc/network/interfaces

auto vcan0
iface vcan0 can static
    bitrate 0  # NEEDED but not supported
    pre-up /sbin/ip link add dev $IFACE type vcan
    up /sbin/ip link set $IFACE up 

但奇怪的是,這種方法不起作用:在啟動或運行時,ifup vcan0我收到以下錯誤:

Configuring interface vcan0=vcan0 (can)
/sbin/ip link add dev $IFACE type vcan
...
ip link set vcan0 type can bitrate 0
RTNETLINK answers: Operation not supported
Failed to bring up vcan0.

..當我添加該行bitrate <somevalue>或我得到

Configuring interface vcan0=vcan0 (can)
Missing required variable: bitrate
Missing required configuration variables for interface vcan0/can.
Failed to bring up vcan0.

..當我省略比特率設定時。

所以看起來我必須設定bitrate一定不設定它 - 同時。

我在這裡做錯了什麼?

ps 當然,我可以簡單地ip link add ..在啟動時運行,但我想對兩個介面使用相同的方法。

答案1

您必須在啟動時載入 vcan 模組。編輯/etc/模組為此並添加行

vcan

接下來,編輯/etc/network/interfaces

auto vcan0
   iface vcan0 inet manual
   pre-up /sbin/ip link add dev $IFACE type vcan
   up /sbin/ifconfig $IFACE up

最後,重新啟動介面:

sudo /etc/init.d/networking restart

如果您鍵入,則會彈出 vcan0 介面

ifconfig

在終端中。

相關內容