openwrt默認mac地址配置(MT7620a)

對於MT7620a,默認的mac地址都是保存在factory分區,具體爲:
    1.offset 0x04    WIIF MAC
    2.offset 0x28    LAN MAC
    3.offset 0x2E    WAN MAC
factory分區不僅保存這mac,還包括wifi的校準參數。
以dts使用MT7620a.dts爲例,openwrt使用15.05版本。

一、wifi mac地址
要是wifi能夠起來,首先配置dts使wifi驅動能夠找到正確的參數,在MT7620a.dts(target/linux/ramips/dts/)中先添加一下項:
wmac@10180000 {
    ralink,mtd-eeprom = <&factory 0>;
};
wifi驅動自動從factory分區的偏移爲0開始讀取參數。wifi的mac地址自動從0x04偏移獲取。
二、LAN/WAN mac地址
默認情況下ethernet也是從0x04獲取的eth地址,網絡驅動會從該偏移獲取的mac地址作爲eth的mac地址:
ethernet@10100000 {
    status = "okay";
    mtd-mac-address = <&factory 0x4>;
並且默認情況下lan mac取eth mac地址,wan mac在lan mac之上加1,從02_network(target/linux/ramips/base-files/etc/board.d)可以看出:
ramips_setup_macs()函數中:
    *)
    lan_mac=$(cat /sys/class/net/eth0/address)
    wan_mac=$(macaddr_add "$lan_mac" 1)
    ;;
要想改變lan/wan的mac地址修改本腳本即可,參考其他model獲取mac地址的方式,定義如下mac的獲取格式:
    lan_mac=$(mtd_get_mac_binary factory 40)
    wan_mac=$(mtd_get_mac_binary factory 46)
40和46對應的十六進制數就是lan和wan的偏移量0x28和0x2E。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章