Estou tentando usar um dongle ethernet USB em um iMX6UL evk para carregar meu kernel, dtb e montar meus nfs por toda a rede.
Eu consegui que isso funcione usando a árvore de kernel do fornecedor, mas encontrei um problema ao tentar reproduzi-lo em minha compilação de linha principal, onde não consigo montar o NFS rootfs.
Se eu colocar o rootfs no cartão SD, o kernel irá carregar e eu posso rodar o dhcpcd para inicializar o dongle USB-ethernet e tudo funciona (então parece que os drivers estão carregados corretamente). Se eu inicializar o kernel da Freescale, eu tento testar eth0 e eth1 antes de ir para USB0, e eth2 onde ele encontra meu dongle:
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
No entanto, com a minha construção do kernel mainline, nunca se move para USB0 e apenas aguarda a 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.
Eu não estou muito familiarizado com o trabalho em rede no linux, então estou com uma perda de como depurar. Por que preciso executar o dhcpcd para ativar a interface de rede mesmo quando inicializo com o rootfs no cartão sd Onde devo começar a procurar que meu kernel tente a interface USB0 na inicialização?
Finalmente, alguém poderia me indicar algumas coisas que descrevam o processo de inicialização e como o kernel tenta configurar a rede quando ela é inicializada?
Tags networking nfs linux-kernel