как включить сеть во время загрузки в Linux

как включить сеть во время загрузки в Linux

Я работаю над встроенной системой Linux, моя цель — активировать интерфейс Ethernet во время загрузки. Я использую u-boot в качестве загрузчика. Я передал переменные окружения ip= и eth= u-boot ядру Linux в качестве загрузочных аргументов и настроил ядро ​​Linux как IP:kernel level autoconfiguration, включено. Однако это не подняло сетевой интерфейс, как это делает "ifconfig eth0 up".

Итак, мне интересно, возможно ли дать команду ядру Linux активировать интерфейс eth0, не прибегая к скриптам пользовательского пространства (ifup и ifconfig)?

решение1

Да, ядро ​​Linux может активировать интерфейс eth0, не прибегая к скриптам пользовательского пространства.
Вы можете использовать ip=параметр загрузки ядра для инициализации сетевого интерфейса со статическим IP-адресом, например:

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

Конечно,eth0Интерфейс не может быть включен, пока драйверы не будут инициализированы/установлены (на что указывает освобождение __initраздела памяти).
Вот системный журнал, показывающий, когда сетевой интерфейс становится активным:

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"

Полная информация о синтаксисе ip=параметра загрузки приведена вДокументация/файловые системы/nfs/nfsroot.txt. Игнорируйте тот факт, что изначальной целью этой возможности было создание сетевой корневой файловой системы.

Я передал переменные среды u-boot ip= и eth= ядру Linux в качестве аргументов загрузки

eth=не является допустимым параметром загрузки и, вероятно, игнорируется ядром.
Кстати, если вы используете драйвер Atmel macb.c, то убедитесь, что U-Boot устанавливает MAC-адрес для PHY, чтобы это работало.

Связанный контент