当前位置: 代码迷 >> 综合 >> linux启动,卡在Sending DHCP and RARP request....
  详细解决方案

linux启动,卡在Sending DHCP and RARP request....

热度:32   发布时间:2023-12-21 02:18:38.0



碰到这个问题我们需要做的是在bootargs这个内核参数中给出固定的IP ,不然他就一直再哪里配置,配置完参赛再去启动内核。所以自己定义IP。

 原因是为了支持NFS作为根文件系统,而在内核配置的时候选择自动配置IP如下:


但是在内核又不能正确的自动配置,因此就卡在这里了。这个IP参数是在uboot传递过来的。

ip参数的格式如下:

ip=::::::

client-ip:

你正在使用的这块板子,你要为它设置的ip

server-ip:

提供nfs服务的服务器的ip地址。如不需要NFS服务于板子,则此项可以空置

gw-ip:

网关的ip地址,如果nfs与目标板在同一个网段内,则此项可以空置

netmask:

子网掩码,如此项为空,则子网掩码为默认值255.255.255.0

hostname:

你希望给目标板设置的主机名,在linux的shell中的如bash,命令行最开始有一个形如 blacksword@laptop2:~ $ 这样的一个提示符,blacksword指当前的用户,而laptop2就是一个hostname.此项可以留空

device:

如果目标板上仅一个网卡,且只接了一个PHY,同时电路的设计没有将PHY拉出两个地址来,则此项为空。 如果不指有一个网卡,则可以指定要设置的ip地址是作用于哪一个网卡的。 如指定给第一块网卡,则该参数为eth0. 第二块为eth1,依此类推。

autoconf:

自动配置未明确指定参数的方式,可以是dhcp, rarp, bootp。如果不希望使用自动配置则可以使用off值来关闭  autoconf参数可以独立作用于ip参数,如ip=dhcp即表示由dhcp服务器给内核的ip参数提供所有数据。 ip=off则表示所有参数都不配置,留待系统启动进行配置。

 

最稳妥而简化的指定静态ip的方法为 ip=::::eth0:off  请注意中间冒号的个数。其他各项可以根据自己的实际情况来指定相应的值。

现在时有两种办法解决以上问题,

第一是在内核配置的时候,不选择自动配置。

第二是可以在uboot里面设置禁用自动配置。

例如:

setenv bootargs mem=84M console=ttyS0,115200n8root=/dev/mtdblock3 rw ip=192.168.1.29:192.168.1.211:192.168.1.1:255.255.255.0:::off

通常情况下,如果不需要nfs,则只需配上ip=

  相关解决方案