setup interface vcan a ser ativada na inicialização

2

Eu quero configurar uma interface SocketCAN virtual na inicialização. As linhas a seguir fazem o que eu quero (manualmente):

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

(ou)

ip link add dev vcan0 up type vcan

Eu tenho um método para abrir uma interface CAN física USB no hotplugging - adiciono as seguintes linhas a /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

Agora também quero trazer a interface vcan na inicialização. Por isso, adicionei automaticamente o módulo vcan e adicionei essas linhas a /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 

Mas, estranhamente, essa abordagem não funciona: na inicialização ou quando eu executo ifup vcan0 , obtenho o seguinte erro:

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.

.. quando eu adiciono a linha bitrate <somevalue> ou eu obtenho

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

.. quando eu omitir a configuração da taxa de bits.

Portanto, parece que preciso definir bitrate e não defini-lo - ao mesmo tempo.

O que estou fazendo de errado aqui?

p.s. É claro que eu poderia simplesmente executar o ip link add .. na inicialização, mas gostaria de usar a mesma abordagem para ambas as interfaces.

    
por frans 17.04.2015 / 14:18

1 resposta

1

Você precisa carregar o módulo vcan no momento da inicialização. Edite / etc / modules para isso e adicione a linha

vcan

Em seguida, edite / etc / network / interfaces

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

Por fim, reinicie as interfaces:

sudo /etc/init.d/networking restart

A interface vcan0 deve aparecer se você digitar

ifconfig

em um terminal.

    
por 18.01.2016 / 16:18