嵌入式Linux系統下使用DHCP,為開發板自動分配IP地址

來源:互聯網
上載者:User

1、首先確認Linux核心編譯產生時選擇了DHCP

Networking --->
Networking support
Networking options --->
Packet socket //添加.配置CONFIG_PACKET
[ * ] IP: DHCP support //添加
[ * ] Network packet filtering (replaces ipchains) ---> //添加,後面子選項可不選,配置CONFIG_NETFILTER

說明:若沒選 Packet socket, [ * ] Network packet filtering (replaces ipchains) --->選項,在執行udhcpc命令時出現如下錯誤:
~ # udhcpc
udhcpc (v0.9.9-pre) started
udhcpc[208]: udhcpc (v0.9.9-pre) started
FATAL: couldn't listen on socket, Address family not supported by protocol
udhcpc[208]: FATAL: couldn't listen on socket, Address family not supported by protocol

2.編譯Busybox,使make menuconfig,添加以下選項:

Networking Utilities --->
udhcp Server/Client --->
[ ] udhcp Server (udhcpd) //在此不作服務端,故不選。產生udhcpd命令
udhcp Client (udhcpc) //產生udhcpc命令
[ ] Lease display utility (dumpleases)
[ ] Log udhcp messages to syslog (instead of stdout)
[ ] Compile udhcp with noisy debugging messages
若busybox沒編譯相應選項,也可從網上下載相應檔案,用arm-linux交叉編譯得到udhcpd,udhcpc命令copy到usr/sbin下就可以了。

說明:有種方法說是從網上下的udhcp_0.9.8cvs20050303.orig.tar.gz檔案,解壓後修改Makefile檔案,
在19行添加CROSS_COMPILE=arm-linux-
注釋12行的COMBINED_BINARY=1,
否則不產生udhcpc命令。

註:使用0.9.8版本的udhcp貌似也不行,重新編譯Busybox1.9.2版本。

3、使用Busybox下的simple.script,/usr/share/udhcpc/下,並重新命名為default.script,修改default.script中RESOLV_CONF="/etc/resolv.conf"為RESOLV_CONF="/tmp/resolv.conf"

說明:從網上下了幾個default.script貌似無法使用,提示無法找到default.script檔案,使用上面的方法較好。由於使用Cramfs檔案系統,etc目錄不可寫,運行udhcp.c時會提示無法建立resolv.conf

4、將產生的udhcpc複製到開發板/sbin下,在控制台下運行udhcpc即可,很快就可以從DHCP SERVER獲得IP地址。但是有個問題,開發板可以獲得IP地址,在路由器裡也可以看到分配地址了,問題是一使用PING命令,不管是PC 機PING 開發板,還是開發板PING PC 機,就會造成開發板死機。試了好多方法,檢查ROUTE,檢查ARP,修改Default.script
,始終無法解決。

花了一整天時間,總算完全解決了。

1、先是懷疑busybox的問題,OK,開發板上原來移植的是1.9.2 版本,上網找找了發現最新有1.14.0 版本的,詳細移植見另一篇文章

2、Busybox1.9.2 版本貌似是有問題,udhcpc 之後,通過ifconfig 查看IP 資訊可以看到廣播位址Bcast有問題,始終是255.255.255.255,正確應該是192.168.1.255(網段為192.168.1),使用Busybox1.14.0就沒有這個問題了,但問題是PING 仍然無法使用。

3、偶然情況下發現udhcpc 之後需要關閉網卡,之後再重開網卡使用命令

ifconfig eth0 down
ifconfig eht0 up

之後就能正常工作了,還有問題是無法PING本機,設定迴環地址就可以了

ifconfig lo 127.0.0.1

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.