OpenWrt19.07设置mac地址为芯片内置出厂地址

最近发现所使用的openwrt19.07系统在htlk7628核心板上运行时,一旦恢复出厂设置或者重刷固件后对应的mac地址就会改变,猜测系统生成mac地址方式并非使用了芯片内部的mac地址,而是随机生成,而我需要固定mac地址,最好是使用芯片内部的mac地址,那么7628芯片的mac地址在哪里呢?

7628芯片的mac地址

查看MT7628_EEPROM_Guideline_v2_00.pdf手册,得知mac地址在e2prom中的偏移位置

20221231112350337

在这里插入图片描述
在这里插入图片描述

lan和wan的偏移量0x28和0x2E

openwrt系统中中执行命令验证查看

hexdump -v -s 0x28 -n 6 -e '2/1 "%02x:"' /dev/mtd2
hexdump -v -s 0x2e -n 6 -e '2/1 "%02x:"' /dev/mtd2

在这里插入图片描述

openwrt源码修改

openwrt系统初始化启动时生成写入/etc/config/network文件来确定实际使用的mac地址,那么我们需要在源码中中岛生成mac地址随机数的位置,将随机数替换为上一步获取芯片mac地址的方式。

修改文件:

/home/luke/openwrt/openwrt_19.07/target/linux/ramips/base-files/etc/board.d/02_network

如下:
在这里插入图片描述

e2prom存储区对应系统的facory分区

该函数是设置板子的mac地址的函数,找到对应板子的处理分支,读取factory中的mac地址然后放置到待生成的mac地址中。

其他板子的修改方式也类似,找到对应板子的case,修改即可。

验证

编译下载测试,查看系统启动后的mac地址,与上一步读取的一致,说明修改有效。
在这里插入图片描述

查阅资料发现除利用hexdump方式还可以使用 mtd_get_mac_binary命令,暂未测试。

    lan_mac=$(mtd_get_mac_binary factory 40)
    wan_mac=$(mtd_get_mac_binary factory 46)
  • 40和46对应的十六进制数就是lan和wan的偏移量0x28和0x2E,

关联问题

随机地址在何处生成

通过源码也可得知原先lan mac地址是从sys/class/net/eth0/address 文件中获取的,wan在此基础上加1.

sys/class/net/eth0/address文件内容是在系统初始化启动是随机生成的,可查看内核日志得知。

在这里插入图片描述
在这里插入图片描述

两者一致。

mac地址生成时机

02_network 是在什么时候执行的呢?待续

### OpenWRT 19.07版本介绍 OpenWrt 是一种嵌入式设备操作系统,基于 Linux 内核。对于特定版本而言,在 19.07 版本中引入了一系列改进和新特性来增强系统的稳定性和安全性[^2]。 该版本专注于长期支持(LTS),意味着它会获得更长时间的安全更新和技术维护。这使得企业级用户能够在一个相对稳定的环境中部署并运行其应用和服务而不必担心频繁升级带来的兼容性问题。 ### 安装指南 #### 准备阶段 为了成功安装 OpenWrt 19.07, 需要准备一台适合刷写固件的路由器或其他支持的目标硬件平台,并确保拥有合法途径获取官方发布的镜像文件。通常可以从官方网站下载页面找到对应型号的支持列表以及相应的固件链接[^3]。 #### 刷机过程 一旦选择了合适的固件映像之后,按照如下方法执行刷机: - **进入路由器管理界面**:通过浏览器访问默认网关地址(通常是 `http://192.168.1.1` 或者 `http://192.168.0.1`) 登录到现有固件设置面板。 - **上传并刷新固件**:定位至固件更新选项卡,浏览本地计算机上已下载好的 OpenWrt .bin 文件完成上传动作;确认无误后点击“开始”按钮启动刷新流程【注意】此过程中断电可能导致设备变砖,请谨慎操作! - **等待重启**:当进度条达到终点或提示信息显示完成后,保持电源连接直至机器自动重新启动为止。 此时,默认 IP 地址一般会被重置为 `192.168.1.1`, 用户名/密码均为 root/root (首次登陆建议立即更改)。 ### 基础配置教程 初次登录 WebUI 后可依照向导指引快速初始化一些必要的参数设定,比如修改管理员账户凭证、调整无线网络名称(Wi-Fi SSID) 和密钥强度等基本属性。除此之外还可以利用 LuCI 图形化工具深入定制更多高级功能,如防火墙规则制定、端口转发策略建立等等[^4]。 另外值得注意的是,在上述提到的基础组网场景下如果打算集成 OpenWrt 节点,则可能还需要额外考虑如何适配现有的安全架构,例如正确配置 NAT 行为以匹配外网出口处所做的源地址转换措施,或是借助 iroute 功能实现跨子网通信优化等问题[^1]。 ```bash opkg update && opkg install luci-app-openvpn uci set openvpn.myserver=instance uci set openvpn.myserver.config='/etc/openvpn/myconfig.ovpn' uci commit openvpn /etc/init.d/openvpn enable /etc/init.d/openvpn start ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值