web-dev-qa-db-ja.com

セットアップは起動時にアクティブ化されるインターフェイスを使用できます

起動時に仮想SocketCANインターフェースをセットアップしたい。次の行は、私が望むことを(手動で)実行します。

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

(または)

ip link add dev vcan0 up type vcan

ホットプラグで物理 USBCANインターフェースを表示する方法があります-/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してはいけない設定しているように見えます-同時に。

私はここで何が間違っているのですか?

p.s.もちろん、起動時にip link add ..を実行することもできますが、両方のインターフェイスに同じアプローチを使用したいと思います。

3
frans

起動時にvcanモジュールをロードする必要があります。これを編集/ etc/modulesそして行を追加します

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

ターミナルで。

2
tuschenski