智能硬件论坛
直播中

flyingbing

10年用户 93经验值
擅长:测量仪表 嵌入式技术 模拟技术 处理器/DSP 接口/总线/驱动 控制/MCU RF/无线
私信 关注
[讨论]

【WRTnode2R试用体验】如何修改 WRTnode2R 的 MAC 地址

本帖最后由 flyingbing 于 2015-11-23 18:09 编辑

为了解决复制flash固件,导致多台openwrt设备在同一网络中使用产生MAC冲突
最偷懒的做法是通过串口控制台修改 /etc/config/ 下的网络配置文件 network 和 wireless.

步骤一:用vi编辑器打开/etc/config/network 文件

root@OpenWrt:/# vim  /etc/config/network

  如果对uci 熟悉的,可以直接用 uci 命令设置


步骤二 增加 macaddr 参数,

  1. config interface lan
  2.         option ifname   eth2
  3.         option status   1
  4.         option proto    static
  5.         option ipaddr   192.168.200.1
  6.         option netmask  255.255.255.0
  7.        option macaddr   64:51:7e:80:35:FA



步骤三 重启网络或者重启系统

root@OpenWrt:/# etc/init.d/network restart  重启网络

但是上述方法,如果恢复出厂设置之后,配置文件都会消失。



最标本兼治的方法是,修改FLASH 的factory 分区(art 分区)

步骤一:使用 iwpriv 命令, 在7688开发板输入

root@OpenWrt:/# iwpriv

eth0.1    no private ioctls.
lo        no private ioctls.
ra0       Available private ioctls :
          set              (8BE2) : set 1536 char  & get   0      
          show             (8BF1) : set 1024 char  & get   0      
          get_site_survey  (8BED) : set   0       & get 1024 char
          set_wsc_oob      (8BF9) : set 1024 char  & get 1024 char
          get_mac_table    (8BEF) : set 1024 char  & get 1024 char
          e2p              (8BE7) : set 1024 char  & get 1024 char
          bbp              (8BE3) : set 1024 char  & get 1024 char
          mac              (8BE5) : set 1024 char  & get 1024 char
          rf               (8BF3) : set 1024 char  & get 1024 char
          get_ba_table     (8BF6) : set 1024 char  & get 1024 char
          stat             (8BE9) : set 1024 char  & get 1024 char
apcli1    Available private ioctls :
          set              (8BE2) : set 1536 char  & get   0      
          show             (8BF1) : set 1024 char  & get   0      
          get_site_survey  (8BED) : set   0       & get 1024 char
          set_wsc_oob      (8BF9) : set 1024 char  & get 1024 char
          get_mac_table    (8BEF) : set 1024 char  & get 1024 char
          e2p              (8BE7) : set 1024 char  & get 1024 char
          bbp              (8BE3) : set 1024 char  & get 1024 char
          mac              (8BE5) : set 1024 char  & get 1024 char
          rf               (8BF3) : set 1024 char  & get 1024 char
          get_ba_table     (8BF6) : set 1024 char  & get 1024 char
          stat             (8BE9) : set 1024 char  & get 1024 char
eth0      no private ioctls.
apcli0    Available private ioctls :
          set              (8BE2) : set 1536 char  & get   0      
          show             (8BF1) : set 1024 char  & get   0      
          get_site_survey  (8BED) : set   0       & get 1024 char
          set_wsc_oob      (8BF9) : set 1024 char  & get 1024 char
          get_mac_table    (8BEF) : set 1024 char  & get 1024 char
          e2p              (8BE7) : set 1024 char  & get 1024 char
          bbp              (8BE3) : set 1024 char  & get 1024 char
          mac              (8BE5) : set 1024 char  & get 1024 char
          rf               (8BF3) : set 1024 char  & get 1024 char
          get_ba_table     (8BF6) : set 1024 char  & get 1024 char
          stat             (8BE9) : set 1024 char  & get 1024 char
br-lan    no private ioctls.
eth0.2    no private ioctls.

步骤二: 再接着输入
root@OpenWrt:/# iwpriv ra0 e2p
  1. ra0       e2p:
  2. [0x0000]:7628  [0x0002]:0201  [0x0004]:5164  [0x0006]:807E  
  3. [0x0008]:FA35  [0x000A]:0000  [0x000C]:0000  [0x000E]:0000  
  4. [0x0010]:FFFF  [0x0012]:FFFF  [0x0014]:FFFF  [0x0016]:FFFF  
  5. [0x0018]:FFFF  [0x001A]:FFFF  [0x001C]:FFFF  [0x001E]:FFFF  
  6. [0x0020]:0000  [0x0022]:0000  [0x0024]:0030  [0x0026]:0000  
  7. [0x0028]:0C00  [0x002A]:E143  [0x002C]:2976  [0x002E]:0C00  
  8. [0x0030]:E143  [0x0032]:2A76  [0x0034]:3411  [0x0036]:2000  
  9. [0x0038]:FFFF  [0x003A]:0100  [0x003C]:0000  [0x003E]:0000  
  10. [0x0040]:0000  [0x0042]:0022  [0x0044]:0000  [0x0046]:0000



步骤三: 结合   Ralink_QA_Tool_Introduction__20081201.pdf   对寄存器做修改,参考附件
Ralink_QA_Tool_Introduction__20081201.pdf (1018.29 KB)
(下载次数: 155, 2015-11-23 14:27 上传)



从手册可以看出,ra0 的 mac 是读取 0x0004,0x0006 和 0x0008 三个寄存器。
若果想把 Mac 地址修改为 64:51:7e:80:88:99
输入:
root@OpenWrt:/# iwpriv ra0 e2p 08=9988   (高字节09保存99,低字节08保存88)


步骤四: 删除 wireless 文件,重启网络或者重启 wrtnode2r 板子

root@OpenWrt:/#  rm /etc/config/wireless
root@OpenWrt:/# etc/init.d/network restart  重启网络
要转载,请说明出处,谢谢!





回帖(1)

flyingbing

2015-11-23 20:52:27
沙发沙发沙发沙发沙发
举报

更多回帖

发帖
×
20
完善资料,
赚取积分