openwrt默认mac地址配置(MT7620a)

论坛 期权论坛 脚本     
匿名技术用户   2020-12-30 18:58   28   0

对于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。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP