0开机后的IP默认是192.168这样的路由形式的,每次开机都需要自己设置ip非常麻烦,于是想改成开机DHCP自动获取IP,这样来的最为简单,自动获取IP的命令其实很简单,只需要加入开机初始化设置中即可。自动获取ip:
udhcpc -i eth0
板子开启后的启动初始化文件位于etcinit.d文件夹中的rcS中,此文件最后一部分内容如下:
/sbin/ifconfig lo 127.0.0.1
/etc/init.d/ifconfig-eth0
#start ftp server user:root password:
/sbin/vsftpd &
#start telnetd server usr:root password:
/sbin/telnetd
#start boa web service
/sbin/boa
echo " " > /dev/tty1
echo "Starting Qtopia2, please waiting..." > /dev/tty1
echo " "
echo "Starting Qtopia2, please waiting..."
/bin/qtopia &
从这里可以看到,通过ifconfig-eth0文件启动网络服务,之后先后开启ftp等网络服务,最后启动qtopia。可以注意倒数几行的不同,/dev/tty1是在液晶屏上也显示这些信息。
再看ifconfig-eth0文件。
#!/bin/sh
echo -n Try to bring eth0 interface up......>/dev/ttySAC0
if [ -f /etc/eth0-setting ] ; then
source /etc/eth0-setting
#if grep -q "^/dev/root / nfs " /etc/mtab ; then
if grep -q "root=/dev/nfs" /proc/cmdline;then
echo -n NFS root ... > /dev/ttySAC0
else
ifconfig eth0 down
ifconfig eth0 hw ether $MAC
ifconfig eth0 $IP netmask $Mask up
route add default gw $Gateway
fi
echo nameserver $DNS > /etc/resolv.conf
else
if grep -q "^/dev/root / nfs " /etc/mtab ; then
echo -n NFS root ... > /dev/ttySAC0
else
/sbin/ifconfig eth0 192.168.253.12 netmask 255.255.255.0 up
fi
fi
echo Done > /dev/ttySAC0
从这个文件里能够看出网络的配置过程,这里先读取/etc/eth0-setting 配置文件,根据文件是否存在进行相应的操作,如果文件存在读取文件内容,通过查找关键字判断是否是nfs启动等情况,进而利用配置文件进行配置,/etc/eth0-setting 文件内容如下:IP=192.168.0.232
Mask=255.255.255.0
Gateway=192.168.0.201
DNS=8.8.8.8
MAC=08:90:90:90:90:90
通过这几个文件就能理清楚在启动中的网络初始化关系了,因此,更改为开机自动获取ip就很简单了,这里在etcinit.d新建一个文件autoconfig-eth0内容如下,我这里还加入了nfs自动挂载:#!/bin/sh
echo -n***** Try to autoconfig eth0 watting.....*****>/dev/ttySAC0
ifconfig eth0 down
ifconfig eth0 hw ether 08:90:90:90:90:90
ifconfig eth0 up
udhcpc -i eth0
echo eth0 autoconfig Done >/dev/ttySAC0
echo -n auto mount nfs 10.4.62.86:/armnfs to /mnt >/dev/ttySAC0
mount -t nfs -o nolock 10.4.62.86:/armnfs /mnt
chmod 777 更改文件权限,之后只需要把rcS中的网络配置文件改为这个文件即可。
启动结果如图所示
[root@FriendlyARM /]# udhcpc
udhcpc (v1.17.2) started
Sending discover...
Sending select for 192.168.1.124...
Lease of 192.168.1.124 obtained, lease time 7200
deleting routers
route: SIOCDELRT: No such process
adding dns 202.96.75.68
adding dns 210.21.4.130