Rootfs 이전에 네트워크 시작

Rootfs 이전에 네트워크 시작

iMX6UL evk에서 USB 이더넷 동글을 사용하여 커널, dtb를 로드하고 네트워크를 통해 nfs를 마운트하려고 합니다.

공급업체의 커널 트리를 사용하여 작동하게 했지만 메인라인 빌드에서 재현하려고 할 때 문제가 발생하여 NFS를 통해 rootfs를 마운트할 수 없습니다.

SD 카드에 rootfs를 넣으면 커널이 로드되고 dhcpcd를 실행하여 USB 이더넷 동글을 초기화할 수 있으며 모든 것이 잘 작동합니다(따라서 드라이버가 올바르게 로드된 것처럼 보입니다). Freescale 커널을 부팅하면 USB0으로 이동하기 전에 eth0과 eth1을 시도한 다음 eth2에서 동글을 찾는 것을 볼 수 있습니다.

fec 20b4000.ethernet eth0: Freescale FEC PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=20b4000.ethernet:01, irq=-1)
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
fec 2188000.ethernet eth1: Freescale FEC PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=20b4000.ethernet:02, irq=-1)
IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
asix 1-1:1.0 eth2: link down
IPv6: ADDRCONF(NETDEV_UP): eth2: link is not ready
asix 1-1:1.0 eth2: link up, 100Mbps, full-duplex, lpa 0xC5E1
IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
Sending DHCP requests ., OK
IP-Config: Got DHCP answer from 192.168.0.10, my address is 192.168.0.128
IP-Config: Complete:
     device=eth2, hwaddr=5c:f7:e6:8b:00:1b, ipaddr=192.168.0.128, mask=255.255.255.0, gw=192.168.0.10
     host=192.168.0.128, domain=swiftlabs, nis-domain=(none)
     bootserver=0.0.0.0, rootserver=192.168.0.219, rootpath=
     nameserver0=192.168.0.10

그러나 내 메인라인 커널 빌드에서는 USB0으로 전송되지 않고 eth0/eth1만 기다립니다.

[    2.807795] Micrel KSZ8081 or KSZ8091 20b4000.ethernet-1:01: attached PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=20b4000.ethernet-1:0)
[    2.824569] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    2.937566] Micrel KSZ8081 or KSZ8091 20b4000.ethernet-1:02: attached PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=20b4000.ethernet-1:0)
[    2.952977] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[   12.977200] Waiting up to 110 more seconds for network.
[   22.996955] Waiting up to 100 more seconds for network.

저는 Linux 네트워킹에 익숙하지 않아서 디버깅 방법을 잘 모르겠습니다. SD 카드에서 rootfs를 사용하여 부팅하더라도 네트워크 인터페이스를 부팅하려면 왜 dhcpcd를 실행해야 합니까? 부팅 시 USB0 인터페이스를 시도하려면 커널을 어디서 찾아야 합니까?

마지막으로, 부팅 프로세스와 커널이 부팅 시 네트워크 설정을 시도하는 방법을 설명하는 자료를 알려줄 수 있는 사람이 있습니까?

관련 정보