精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

技術(shù)分享 | 開發(fā)板網(wǎng)口熱插拔自動獲取IP地址

啟揚(yáng)ARM嵌入式開發(fā) ? 2022-08-03 09:29 ? 次閱讀

客戶在使用啟揚(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的庫。

c6be8ed6-0f58-11ed-9ade-dac502259ad0.png

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)。

c6d8c8dc-0f58-11ed-9ade-dac502259ad0.png

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)行。

c6f6c864-0f58-11ed-9ade-dac502259ad0.png

根據(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。

c71f83d0-0f58-11ed-9ade-dac502259ad0.png

而if.sh里面的內(nèi)容就是簡單的檢測并且dhcp。

c74fec5a-0f58-11ed-9ade-dac502259ad0.png

最后我們可以將上面兩個命令設(shè)置開機(jī)自啟動,這樣就會自動up兩個網(wǎng)口,哪怕沒有插網(wǎng)線也是準(zhǔn)備狀態(tài),當(dāng)插入網(wǎng)線后就會自動獲取ip地址。

注意可能會出現(xiàn)延遲,可以稍等一下查看。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4959

    瀏覽量

    97214
收藏 人收藏

    評論

    相關(guān)推薦

    android如何獲取本機(jī)ip地址ip歸屬地

    # 前言 # 本篇文章主要介紹android如何獲取本機(jī)ip地址ip歸屬地。 ? # 定義 # ip
    的頭像 發(fā)表于 11-20 11:57 ?127次閱讀

    PCIe熱插拔機(jī)制介紹

    前言本文主要講述PCIe熱插拔機(jī)制,通過圖形方式方便讀者快速掌握。 一、概述 如果在PCIe設(shè)備不支持熱插拔的條件下,在不斷電的情況下插拔一塊PCIe SSD時,很可能會對主板或PCIe插槽造成損毀
    的頭像 發(fā)表于 11-20 09:07 ?192次閱讀
    PCIe<b class='flag-5'>熱插拔</b>機(jī)制介紹

    熱插拔是什么意思

    熱插拔(Hot Swapping或Hot Swap),即帶電插拔,是指在不關(guān)閉系統(tǒng)電源的情況下,將模塊、板卡、存儲設(shè)備或其他外部設(shè)備插入或拔出系統(tǒng),且不影響系統(tǒng)正常工作的技術(shù)。這種技術(shù)
    的頭像 發(fā)表于 10-29 17:49 ?470次閱讀

    熱插拔電源是什么意思

    熱插拔電源,即帶電插拔電源,指的是在不關(guān)閉系統(tǒng)電源的情況下,能夠安全地將電源模塊、板卡等硬件設(shè)備插入或拔出系統(tǒng),而不影響系統(tǒng)的正常工作。這種技術(shù)大大提高了系統(tǒng)的可靠性、快速維修性、冗余性和對災(zāi)難
    的頭像 發(fā)表于 09-18 11:00 ?468次閱讀

    請問RW007 DHCP為什么獲取不到IP地址

    我的板子有一個有限的網(wǎng),一個無線網(wǎng)用的RW007,開啟了DHCP功能,有限網(wǎng)可以獲取
    發(fā)表于 07-16 08:21

    Banana Pi BPI-M4 Berry 開源硬件開發(fā)板以太網(wǎng)和WiFi測試

    Banana Pi BPI-M4 Berry 開源硬件開發(fā)板以太網(wǎng)和WiFi測試
    的頭像 發(fā)表于 07-02 16:16 ?746次閱讀
    Banana Pi BPI-M4 Berry 開源硬件<b class='flag-5'>開發(fā)板</b>以太<b class='flag-5'>網(wǎng)</b><b class='flag-5'>口</b>和WiFi測試

    在AvaotaA1全志T527開發(fā)板上使用 SSH 連接開發(fā)板

    +RJ45網(wǎng)線接口。 獲取IP地址 如果想通過ssh去登陸開發(fā)板系統(tǒng),可以通過兩種方式來獲取
    發(fā)表于 07-01 10:30

    【PHYTEC AM62x開發(fā)板試用】ETHRNET以太網(wǎng)調(diào)試過程

    現(xiàn)在將我調(diào)試PHYTEC AM62X以太網(wǎng)過程發(fā)表一下。 通過認(rèn)真看了開發(fā)板接口Interface章節(jié)內(nèi)容,一步一步掌握了許多接囗操作方法,比如HDMI,UART,USB,I2C等,這里著重介紹
    發(fā)表于 06-25 11:45

    ESP32-S2以太網(wǎng)插拔網(wǎng)線后經(jīng)常無法再次分配到IP地址,怎么解決這個問題?

    ESP32-S2以太網(wǎng)插拔網(wǎng)線后經(jīng)常無法再次分配到IP地址
    發(fā)表于 06-18 07:56

    STM32F767ZI-Nucleo開發(fā)板跑官方HTTP例程有時候不能自動獲取IP,為什么?

    STM32F767ZI-Nucleo開發(fā)板跑官方HTTP例程有時候不能自動獲取IP,調(diào)試中發(fā)現(xiàn)只要是不能獲取
    發(fā)表于 04-25 06:02

    CentOS虛擬機(jī)克隆后開機(jī)無法獲取IP地址的解決策略

    克隆虛擬機(jī)后出現(xiàn)一臺能獲取IP地址,另外一臺獲取不到IP地址,查看MAC
    的頭像 發(fā)表于 04-17 12:27 ?689次閱讀
    CentOS虛擬機(jī)克隆后開機(jī)無法<b class='flag-5'>獲取</b><b class='flag-5'>IP</b><b class='flag-5'>地址</b>的解決策略

    鍵盤熱插拔和非熱插拔的區(qū)別

    鍵盤熱插拔和非熱插拔的區(qū)別 鍵盤是計算機(jī)外設(shè)設(shè)備之一,熱插拔是指在計算機(jī)運(yùn)行中插入或拔出設(shè)備而無需重啟計算機(jī),非熱插拔則需要重啟計算機(jī)才能生效。鍵盤
    的頭像 發(fā)表于 02-02 17:34 ?9785次閱讀

    熱插拔是什么原理

    熱插拔(Hot Swap)是一種允許在系統(tǒng)運(yùn)行過程中,動態(tài)地插入或移除硬件設(shè)備的技術(shù)。這種技術(shù)在計算機(jī)硬件、通信設(shè)備和存儲設(shè)備等領(lǐng)域得到了廣泛應(yīng)用。熱插拔
    的頭像 發(fā)表于 01-16 11:03 ?4078次閱讀
    <b class='flag-5'>熱插拔</b>是什么原理

    獲取Telegram的用戶IP地址

    最近有個需求,查了些資料發(fā)現(xiàn),Telegram有語音通話功能,也可以類似QQ一樣通過語音通話的連接獲取對方的IP地址, Denis Simonov (原文為俄語)發(fā)表過一篇文章,演示了如何通過 Telegram 語音呼叫
    的頭像 發(fā)表于 01-12 11:35 ?1607次閱讀
    <b class='flag-5'>獲取</b>Telegram的用戶<b class='flag-5'>IP</b><b class='flag-5'>地址</b>

    熱插拔和非熱插拔的區(qū)別

    系統(tǒng)關(guān)閉或待機(jī)狀態(tài)下進(jìn)行。 熱插拔技術(shù)的出現(xiàn),極大地方便了電子設(shè)備的使用和維護(hù),減少了因?yàn)?b class='flag-5'>插拔設(shè)備而導(dǎo)致的系統(tǒng)的關(guān)機(jī)和停機(jī)時間,并且降低了設(shè)備故障和損壞的風(fēng)險。下面將從硬件和軟件的角度,詳細(xì)探討
    的頭像 發(fā)表于 12-28 10:01 ?2875次閱讀