客戶在使用啟揚(yáng)板卡的過程中提出要求開發(fā)板支持網(wǎng)口熱插拔自動獲取ip地址的需求。
啟揚(yáng)工程師了解到需求后快速確定了解決思路:
通過ifplugd工具監(jiān)聽網(wǎng)口熱插拔信息,并且執(zhí)行指定腳本,腳本中使用udhcpc工具自動獲取ip地址。
接下來將對操作過程進(jìn)行介紹與分析。
編譯環(huán)境準(zhǔn)備?
QIYANG
主機(jī):ubuntu16.04
編譯器:arm-linux-gnueabihf-gcc,版本4.7
開發(fā)板環(huán)境:ARM32
1
移植libdaemon
因?yàn)閕fplugd依賴libdaemon庫,所以我們需要先編譯daemon。
筆者這里選擇daemon的版本是官方git下來的版本,git鏈接如下:
git clone git://git.0pointer.de/libdaemon
git下來之后先執(zhí)行./bootstrap.sh腳本,此腳本會根據(jù)配置環(huán)境自動生成configure等編譯相關(guān)文件,生成之后配置
./configure--host=arm-linux-gnueabihf--prefix=/home/ylook/Tools/libdaemon/build,
腳本執(zhí)行完成之后會檢查配置等,這里會出現(xiàn)一個報錯:
checking whether setpgrp takes no argument... configure: error: cannot check setpgrp when cross compiling
遇到這個報錯可以在之前配置的configure中加入ac_cv_func_setpgrp_void=yes,即可解決。
最后通過make && make install會將所需的lib以及include文件生成到build文件夾下。
注意:最后用file命令檢查一下文件架構(gòu),防止誤用X86的庫。
2
移植ifplugd
本次使用的編譯器是4.7版本,因?yàn)榘姹据^低,所以ifplugd選擇的也是老版本——ifplugd-0.14.tar.gz。
編譯過程需要daemon的庫和頭文件,筆者為了方便直接將庫和頭文件放到編譯器的頭文件與庫中,準(zhǔn)備完畢后直接解壓文件,
隨后配置./configure --host=arm-linux-gnueabihf --prefix=/home/ylook/Tools/ifplugd-0.14/build
這里會報lynx的錯誤,可直接在原先配置的configuer后添加“--disable-lynx”,就可解決,
即修改為./configure--host=arm-linux-gnueabihf--prefix=/home/ylook/Tools/ifplugd-0.14/build/ --disable-lynx,;
此外還會報“ undefined reference to rpl_malloc”錯誤,解決方式是修改config.h.in,去掉其中的malloc。
配置完成后make && make install,同樣會在build目錄下生成我們需要的二進(jìn)制文件。
注意:為了避免錯誤,最后依舊是用file命令檢查文件架構(gòu),確認(rèn)采用的是否為arm架構(gòu)。
3
配置相關(guān)環(huán)境
配置環(huán)境過程中,啟揚(yáng)開發(fā)板需要daemon的庫文件以及編譯出來的ifplugd二進(jìn)制文件。我們將daemon庫文件拷貝到/usr/lib下,二進(jìn)制文件拷貝到/usr/sbin下,輸入ifplugd -h命令可以看到成功運(yùn)行。
根據(jù)help信息,我們可以用以下兩個命令監(jiān)聽兩個網(wǎng)口:
ifplugd -i eth0 -r /etc/network/if.sh
ifplugd -i eth1-r /etc/network/if.sh
監(jiān)聽兩個網(wǎng)口并且執(zhí)行后面的腳本文件,如果你的文件系統(tǒng)里有/etc/network/interface文件,需要將里面的auto改為allow-hotplug。
而if.sh里面的內(nèi)容就是簡單的檢測并且dhcp。
最后我們可以將上面兩個命令設(shè)置開機(jī)自啟動,這樣就會自動up兩個網(wǎng)口,哪怕沒有插網(wǎng)線也是準(zhǔn)備狀態(tài),當(dāng)插入網(wǎng)線后就會自動獲取ip地址。
注意可能會出現(xiàn)延遲,可以稍等一下查看。
-
開發(fā)板
+關(guān)注
關(guān)注
25文章
4959瀏覽量
97214
發(fā)布評論請先 登錄
相關(guān)推薦
評論