前言
遇到问题不要慌,遇到出错,相信这些问题大神们都已经给出答案了。本次遇到的问题,原本以为是内核问题,最后发现是bootargs的问题。
一 问题描述
今天使用正点原子的内核测试,报错如下所示:
[ 7.803338] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[ 7.823407] Sending DHCP requests ......
[ 75.503280] random: nonblocking pool is initialized
[ 82.473252] timed out!
[ 82.507788] IP-Config: Retrying forever (NFS root)...
[ 82.723964] fec 20b4000.ethernet eth0: Freescale FEC PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=20b4000.ethernet:01, irq=-1)
[ 82.736149] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 82.953974] fec 2188000.ethernet eth1: Freescale FEC PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=20b4000.ethernet:00, irq=-1)
[ 82.983383] Sending DHCP requests .
[ 86.033676] fec 2188000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[ 86.323251] ..... timed out!
[ 174.317789] IP-Config: Retrying forever (NFS root)...
[ 174.533877] fec 20b4000.ethernet eth0: Freescale FEC PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=20b4000.ethernet:01, irq=-1)
[ 174.546088] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 174.763960] fec 2188000.ethernet eth1: Freescale FEC PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=20b4000.ethernet:00, irq=-1)
[ 174.793415] Sending DHCP requests ..
[ 177.843685] fec 2188000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[ 182.363252] .... timed out!
二 问题排查
1 经过查验内核具备NFS启动服务。
2 那就可能是我写的bootargs有问题
我先前写的bootargs是这样的
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.0.11:/home/lkmao/nfsroot/zdyz,proto=tcp rw ip=192.168.0.4:192.168.0.11:192.168.0.1:255.255.255.0:::'
这个不是正点原子推荐的写法,改成正点原子推荐的写法,就是结尾改成::eth0:off
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.0.11:/home/lkmao/nfsroot/zdyz,proto=tcp rw ip=192.168.0.4:192.168.0.11:192.168.0.1:255.255.255.0::eth0:off'
这是报错如下:
[ 4.493336] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 14.493204] Waiting up to 110 more seconds for network.
[ 24.493200] Waiting up to 100 more seconds for network.
[ 34.493198] Waiting up to 90 more seconds for network.
[ 44.493198] Waiting up to 80 more seconds for network.
[ 54.493198] Waiting up to 70 more seconds for network.
[ 64.493205] Waiting up to 60 more seconds for network.
[ 74.493207] Waiting up to 50 more seconds for network.
[ 84.493197] Waiting up to 40 more seconds for network.
[ 94.493197] Waiting up to 30 more seconds for network.
[ 104.493196] Waiting up to 20 more seconds for network.
[ 114.493191] Waiting up to 10 more seconds for network.
[ 120.473210] random: nonblocking pool is initialized
[ 124.493197] Waiting up to 0 more seconds for network.
[ 124.513458] IP-Config: Complete:
[ 124.516716] device=eth0, hwaddr=32:7e:21:c7:32:66, ipaddr=192.168.0.4, mask=255.255.255.0, gw=192.168.0.1
[ 124.526827] host=192.168.0.4, domain=, nis-domain=(none)
[ 124.532589] bootserver=192.168.0.11, rootserver=192.168.0.11, rootpath=
[ 124.539750] gpio_dvfs: disabling
[ 124.542992] can-3v3: disabling
[ 124.546404] ALSA device list:
[ 124.549395] #0: wm8960-audio
[ 237.603613] VFS: Unable to mount root fs via NFS, trying floppy.
[ 237.610231] VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6
[ 237.617598] Please append a correct "root=" boot option; here are the available partitions:
[ 237.626041] 0100 65536 ram0 (driver?)
[ 237.630688] 0101 65536 ram1 (driver?)
[ 237.635451] 0102 65536 ram2 (driver?)
[ 237.640092] 0103 65536 ram3 (driver?)
[ 237.644805] 0104 65536 ram4 (driver?)
[ 237.649446] 0105 65536 ram5 (driver?)
[ 237.654158] 0106 65536 ram6 (driver?)
[ 237.658858] 0107 65536 ram7 (driver?)
[ 237.663554] 0108 65536 ram8 (driver?)
[ 237.668198] 0109 65536 ram9 (driver?)
[ 237.672838] 010a 65536 ram10 (driver?)
[ 237.677591] 010b 65536 ram11 (driver?)
[ 237.682317] 010c 65536 ram12 (driver?)
[ 237.687072] 010d 65536 ram13 (driver?)
[ 237.691800] 010e 65536 ram14 (driver?)
[ 237.696577] 010f 65536 ram15 (driver?)
[ 237.701313] b300 31166976 mmcblk0 driver: mmcblk
[ 237.706681] b301 262144 mmcblk0p1 cebdaeb9-01
[ 237.712017] b302 3870720 mmcblk0p2 cebdaeb9-02
[ 237.717377] b308 7634944 mmcblk1 driver: mmcblk
[ 237.722712] b309 131072 mmcblk1p1 a46621a2-01
[ 237.728071] b30a 7493632 mmcblk1p2 a46621a2-02
[ 237.733424] b320 512 mmcblk1rpmb (driver?)
[ 237.738672] b318 4096 mmcblk1boot1 (driver?)
[ 237.744055] b310 4096 mmcblk1boot0 (driver?)
[ 237.749390] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[ 237.757667] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
因为正点原子的ALPHA开发板有两个网卡,所以,这个就是网络不通,继续修改bootargs,将eth0改成eth1,如下所示:
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs nfsroot=192.168.0.11:/home/lkmao/nfsroot/zdyz,proto=tcp rw ip=192.168.0.4:192.168.0.11:192.168.0.1:255.255.255.0::eth1:off'
改完后问题就解决了。