1. 程式人生 > >淺析如何使用busybox的udhcpc實現開發板ip和dns自動獲取

淺析如何使用busybox的udhcpc實現開發板ip和dns自動獲取

busybox中udhcpc的預設script指令碼地址為
#define DEFAULT_SCRIPT   CONFIG_UDHCPC_DEFAULT_SCRIPT
#define CONFIG_UDHCPC_DEFAULT_SCRIPT "/usr/share/udhcpc/default.script"
我想之所以以它作為預設地址,肯定有他的道理,所以在這個地址上建立它[luther.gliethttp]

[email protected]:/vobs/initramfs$ mkdir usr/share/udhcpc/ -p
[email protected]:/vobs/initramfs$ cp ~/busybox-1.14.3/examples/udhcp/simple.script usr/share/udhcpc/default.script
[email protected]
:/vobs/initramfs$ chmod +x usr/share/udhcpc/default.script
在/etc/inittab中加入下面一行語句:
::once:"/sbin/udhcpc >/dev/null 2>&1" # udhcpc會退出,所以不能使用respawn,必須為once,1次,否則將一直出現udhcpc重啟log資訊
就這樣簡單的幾行ip和dns就能自動獲取了[luther.gliethttp]
其實有些東西就可以放在rcS等啟動指令碼中,有些可以到init指令碼中去完成.
# /sbin/udhcpc
### adapter index 2
### adapter hardware address 00:00:00:00:08:36
udhcpc (v1.14.3) started
### vfork'ing and exec'ing /usr/share/udhcpc/default.script
### entering raw listen mode
### opening raw socket on ifindex 2
### got raw socket fd 5
### attached filter to raw socket fd 5
### bound to raw socket fd 5
### adding option 0x35
### adding option 0x3d
### adding option 0x3c
### adding option 0x39
Sending discover...
### Waiting on select...
### Got valid DHCP packet
### adding option 0x35
### adding option 0x3d
### adding option 0x3c
### adding option 0x32
### adding option 0x36
Sending select for 192.168.1.102...
### Waiting on select...
### Got valid DHCP packet
Lease of 192.168.1.102 obtained, lease time 172800
### vfork'ing and exec'ing /usr/share/udhcpc/default.script
deleting routers
route: SIOCDELRT: No such process
adding dns 211.161.46.84
adding dns 202.106.0.20
### entering none listen mode