起動時に仮想 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
ターミナルで。