日本不卡一区视频-日本不卡视频一区二区三区-日本不卡视频一区二区-日本不卡高清免费v日本-色国产视频

產品分類

當前位置: 首頁 > 工業電子產品 > 其他電子產品 > 開發板,套件,編程器 > 開發板

類型分類:
科普知識
數據分類:
開發板

OpenWRT 下以太網MAC地址的寫入

發布日期:2022-10-14 點擊率:98

近期在為朋友制定OpenWRT系統下產測解決方案時,遇到了MAC地址的寫入問題。產測使用Qualcomm Atheros的ART軟件,只能寫入無線的MAC地址,無法寫入以太網的MAC地址, 筆者花了一些時間終于研究清楚,在這里做個記錄,以便后續查閱。注:本文以AR9344無線AP為例進行說明,這種方法僅適用于采用Qualcomm Atheros AR93xx/AR94xx系列芯片的AP設備。

首先,必須清楚一點,AP類設備與無線相關的校準數據都是保存在Flash的ART分區的,熟悉OpenWRT的讀者肯定都知道。例如 筆者所用的OpenWRT固件版本,其Flash分區如下圖??梢钥吹剑現lash中的0x7F0000-0x80000這一段是劃分給ART分區的。

ART-MTD

然后,Qualcomm Atheros官方說明文檔中對于ART分區的內容有進一步的說明,如下圖。可以看到MAC0也就是ETH0的MAC地址保存在0x0-0x5偏移地址中,MAC1也就是ETH1的MAC地址保存在0x6-0xB偏移地址中,無線的MAC地址分別保存在0x1000-0x4FFF與0x5000-0x8FFF偏移地址中。這里需要指出的是,如果是單Radio設備,那么只有First Radio Calibration Data,如果是雙Radio設備,會同時有First/Second Radio Calibration Data。

ART-Block-Diagram

接下來,可以根據這些已有的信息嘗試寫入MAC地址,以下是全部過程。

1. 為主板加電,當串口中出現Hit any key to stop autoboot:字樣時,敲擊回車鍵,待測板會停留在u-boot階段。

Stop-u-boot

2. 敲入printenv命令,不難看出Flash的地址空間映射為0x9F000000-0x9F7FFFFF,則推斷出ART分區的地址為0x9F7F0000-0x9F7FFFF。由此,可以得知,ETH0的MAC地址存放于0x9F7F0000-0x9F7F0005,ETH1的MAC地址存放于0x9F7F0006-0x9F7F000B。

Printenv

3. 寫入以太網MAC地址不能破壞原有校準數據,因此需要先將ART分區的內容復制到內存中,輸入以下命令

cp.b 0x9f7f0000 0x80060000 10000

4. 假設欲寫入的ETH0,ETH1 MAC分別為“00-03-7f-01-01-02”,“00-03-7f-01-01-03”,則修改內存中的MAC地址,依次輸入以下命令

mw 0x80060000 00037f01
mw 0x80060004 01020003
mw 0x80060008 7f010103

5. 查看內存中的MAC地址是否準確,輸入以下命令

md 0x80060000

串口中的打印信息應為

80060000: 00037f01 01020003 7f010103 ffffffff

即80060000存放的數據為ETH0與ETH1 MAC地址的結合。

6. 確認無誤后,將Flash中的原有校準數據擦除,在串口中輸入以下命令

erase 0x9f7f0000 +10000
cp.b 0x80060000 0x9f7f0000 10000

串口中的打印信息應為

Copy to Flash... write addr: 9f7f0000
done

7. 以上完整操作過程下圖所示。

Operation-Process

8. 最后檢驗MAC地址是否已準確寫入,在串口中輸入以下命令

md 0x9f7f0000

串口中的打印信息應為

9f7f0000: 00037f01 01020003 7f010103 ffffffff

此時可確認ETH0及ETH1 MAC地址已準確寫入。

下一篇: PLC、DCS、FCS三大控

上一篇: 使用USB接口為i.MX6處

推薦產品

更多
主站蜘蛛池模板: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |