飛凌OK6410開機后的IP默認是192.168這樣的路由形式的,每次開機都需要自己設置ip非常麻煩,於是想改成開機DHCP自動獲取IP,這樣來的最為簡單,自動獲取IP的命令其實很簡單,只需要加入開機初始化設置中即可。自動獲取ip:
udhcpc -i eth0
板子開啟后的啟動初始化文件位於\etc\init.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就很簡單了,這里在\etc\init.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中的網絡配置文件改為這個文件即可。
啟動結果如圖所示