cómo activar la red en el momento del arranque en Linux

cómo activar la red en el momento del arranque en Linux

Estoy trabajando en un sistema Linux integrado, mi objetivo es activar la interfaz Ethernet en el momento del arranque. Estoy usando u-boot como gestor de arranque. Pasé las variables de entorno ip= y eth= u-boot al kernel de Linux como bootargs y configuré el kernel de Linux como IP: configuración automática a nivel de kernel, habilitada. Sin embargo, eso no abrió la interfaz de red, como lo hace "ifconfig eth0 up".

Entonces, me pregunto si es posible indicarle al kernel de Linux que active la interfaz eth0 sin recurrir a scripts de espacio de usuario (ifup e ifconfig).

Respuesta1

Sí, el kernel de Linux puede activar la interfaz eth0 sin recurrir a scripts de espacio de usuario.
Puede utilizar el ip=parámetro de arranque del kernel para inicializar la interfaz de red con una dirección IP estática, por ejemplo:

    ip=192.168.1.100:::255.255.255.0:myboard:eth0:on

Por supuesto, eleth0La interfaz no se puede habilitar hasta que los controladores se hayan inicializado/instalado (como lo indica la liberación de la __initsección de memoria).
Aquí está el registro del sistema para mostrar cuándo se activa la interfaz de red:

eth0: link down
IP-Config: Complete:
      device=eth0, addr=192.168.1.100, mask=255.255.255.0, gw=255.255.255.255,
    host=myboard, domain=, nis-domain=(none),
    bootserver=255.255.255.255, rootserver=255.255.255.255, rootpath=
Freeing init memory: 564K
remounting / read-write... done.
mounting /proc... done.
mounting /sys... done.
Creating device nodes manually, running /sbin/makenodes-2.6
eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
Done.
mounting /home... MTDSB: dev_name "/dev/mtdblock3"

Los detalles completos sobre la sintaxis del ip=parámetro de arranque se encuentran enDocumentación/sistemas de archivos/nfs/nfsroot.txt. Ignore el hecho de que el propósito original de esta capacidad era facilitar un sistema de archivos raíz en red.

Pasé las variables de entorno ip= y eth= u-boot al kernel de Linux como argumentos de arranque

eth=no es un parámetro de arranque válido y probablemente el kernel lo ignore.
Por cierto, si está utilizando macb.cel controlador de Atmel, asegúrese de que U-Boot instale la dirección MAC para el PHY para que esto funcione.

información relacionada