1. 程式人生 > >嵌入式linux系統下無法解析域名問題

嵌入式linux系統下無法解析域名問題

ping localhost
ping: bad address 'localhost'

ping www.baidu.com
ping: bad address 'www.baidu.com'

存在/etc/hosts,/etc/resolv.conf,/etc/nsswitch.conf

都是從host上拷過去的

/lib下也有/lib/libnss_dns*, /lib/libnss_files*, and /lib/libresolv*

可以ping 通外網IP,但就是解析不了域名!!

cat /etc/resolv.conf
nameserver 202.103.24.68
在開發板上能ping通這個DNS伺服器

按理說ping 127.0.0.1可以ping通
但ping localhost不能
說明可能沒讀/etc/hosts這個檔案
但為什麼不讀呢?網上有人說是缺庫,但我所有相關的庫都在/lib下了,也是for arm的

解決方法:

在網上找到這麼一段話

Sandr0 06-12-02 01:16
我也有同樣的疑問,而且當我選擇靜態編譯的時候,複製了那幾個檔案也沒用。只有將busybox配置成使用動態連線庫檔案的時候,複製了那幾個檔案就解決問題了。

我在busybox的命令幫助頁面上找到了這樣一段話:
引用:
LIBC NSS
When used with glibc, the BusyBox 'networking' applets will similarly require that you install at least some of the glibc NSS stuff (in particular, /etc/nsswitch.conf, /lib/libnss_dns*, /lib/libnss_files*, and /lib/libresolv*).

於是重新編譯busybox,採用動態連結方式

再把/usr/local/arm/3.4.1/arm-linux/lib下的所有.so*檔案複製到檔案系統的/lib下,果然就可以ping通百度了!

轉自: http://www.360doc.com/content/12/0226/16/1030755_189775559.shtml