找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 71668|回复: 405

[N1盒子] 【已解决】关于N1刷机后mac地址变化问题的修复

 火... [复制链接]
本帖最后由 无线无极限 于 2021-4-24 15:59 编辑

很多网友刷机选清除flash或者恢复emmc镜像后,机器lan/wifi/蓝牙的mac都会变化。
以前发过一个帖子https://www.right.com.cn/forum/thread-972017-1-1.html
后来接了TTL线,用setenv设置了网卡的mac,但是无线和蓝牙的还是改不回来。

有时间又折腾了一下,修复过程分享下。
~可以直接跳到底下蓝色字部分看解决方法~
我又把盒子刷了小钢炮。在它的ttl输出有这样两段信息:
  1. amlkey_init() enter!
  2. amlkey_init() 71: already init!
  3. [EFUSE_MSG]keynum is 4
  4. [BL31]: tee size: 0
  5. [BL31]: tee size: 0
  6. [BL31]: tee size: 0
  7. [BL31]: tee size: 0
  8. [BL31]: tee size: 0
  9. [KM]Error:f[key_manage_query_size]L507:key[mac] not programed yet
  10. [KM]Error:f[key_manage_query_size]L507:key[deviceid] not programed yet
  11. [KM]Error:f[key_manage_query_size]L507:key[mac_wifi] not programed yet
  12. gpio: pin GPIOAO_2 (gpio 102) value is 1
  13. Hit Enter or space or Ctrl+C key to stop autoboot -- :  0
复制代码
  1. [    4.702213@1] <<GTP-INF>>[gt1x_ts_init:761] GTP driver installing...
  2. [    4.708437@1] <<-GT9XX-INFO->> GTP driver installing....
  3. [    4.713969@1] efusekeynum: 4
  4. [    4.716445@1] efusekeyname:             mac        offset:     0        size:     6
  5. [    4.722777@1] efusekeyname:          mac_bt        offset:     6        size:     6
  6. [    4.729179@1] efusekeyname:        mac_wifi        offset:    12        size:     6
  7. [    4.735541@1] efusekeyname:            usid        offset:    18        size:    16
  8. [    4.742183@1] efuse efuse: probe OK!
  9. [    4.747314@3] ge2d: ge2d_init_module
复制代码
可能这个mac设置在efuse中,再看下uboot中efuse命令的介绍
  1. gxl_p230_v1#efuse
  2. efuse - efuse commands

  3. Usage:
  4. efuse [read/write offset size [data]]
  5.   [read/wirte]  - read or write 'size' data from
  6.                   'offset' from efuse user data ;
  7.   [offset]      - the offset byte from the beginning
  8.                   of efuse user data zone;
  9.   [size]        - data size
  10.   [data]        - the optional argument for 'write',
  11.                   data is treated as characters
  12.   examples: efuse write 0xc 0xd abcdABCD1234
  13. [amlogic_set addr]
复制代码
结合上面的信息读下efuse内容
  1. gxl_p230_v1#efuse read 0x0 0x6
  2. cmd_efuse: offset is 0  size is  6
  3. [BL31]: tee size: 0
  4. [BL31]: tee size: 0
  5. efuse read data
  6. :00:00:00:00:00:00
  7. gxl_p230_v1#efuse read 0x6 0x6
  8. cmd_efuse: offset is 6  size is  6
  9. [BL31]: tee size: 0
  10. [BL31]: tee size: 0
  11. efuse read data
  12. :00:00:00:00:00:00
  13. gxl_p230_v1#efuse read 0xc 0x6
  14. cmd_efuse: offset is 12  size is  6
  15. [BL31]: tee size: 0
  16. [BL31]: tee size: 0
  17. efuse read data
  18. :00:00:00:00:00:00
  19. gxl_p230_v1#efuse read 0x12 0x10
  20. cmd_efuse: offset is 18  size is  16
  21. [BL31]: tee size: 0
  22. [BL31]: tee size: 0
  23. efuse read data
  24. :43:41:51:44:xx:33:xx:35:xx:4b:xx:32:xx:35:39:00
复制代码
可以看到mac和mac_wl部分是空白的,usid倒是对着呢(43:41:51:44:xx:33:xx:35:xx:4b:xx:32:xx:35:39:00各个字节是16进制asicii,就是机器的序列号
后来我用 efuse write 写入了mac和mac_wifi数据,结果没用~~~~~~(efuse只能写入一次,慎用!)

那么mac就是写在emmc某个保留位置(不同于env这些分区,因为我用ddbr恢复了emmc镜像,这些分区是被改写了的,可mac还是没变)
  1. [KM]Error:f[key_manage_query_size]L507:key[mac] not programed yet
复制代码
在N1的uboot中还有个 keyman 命令,这样的:
  1. gxl_p230_v1#keyman
  2. keyman - Unify key ops interfaces based dts cfg

  3. Usage:
  4. keyman     argv:  
  5.     init seedNum <dtbAddr>
  6.     read keyname addr <hex/str>
  7.     write keyname size addr
  8.     write keyname hex/str value
  9.     query exist/secure/size keyname
  10.     exit
复制代码
试一下:
  1. gxl_p230_v1#keyman query exist mac
  2. [KM]Msg:key[mac] is NOT Exist
  3. gxl_p230_v1#keyman query exist mac_wifi
  4. [KM]Msg:key[mac_wifi] is NOT Exist
  5. gxl_p230_v1#keyman query exist usid
  6. [BL31]: tee size: 0
  7. [KM]Msg:key[usid] is  Exist
复制代码
  1. gxl_p230_v1#keyman init 0x1234
  2. amlkey_init() enter!
  3. amlkey_init() 71: already init!
  4. [EFUSE_MSG]keynum is 4
  5. [BL31]: tee size: 0
  6. gxl_p230_v1#keyman query size usid
  7. [BL31]: tee size: 0
  8. [KM]Msg:key[usid] size is 16
  9. gxl_p230_v1#keyman query size mac
  10. [KM]Error:f[key_manage_query_size]L507:key[mac] not programed yet
  11. [KM]Error:f[do_keyman_query]L751:Fail in query key size, err=508
复制代码
接着上面,对照出错提示,用下面的命令就可以修复mac地址了:
  1. ##改写mac
  2. keyman write mac str FC:7C:02:XX:XX:XC

  3. ##改写mac_wifi
  4. keyman write mac_wifi str fc:7c:02:xx:xx:xb

  5. ##改写mac_bt
  6. keyman write mac_bt str fc:7c:02:xx:xx:xa

  7. ##改写deviceid
  8. keyman write deviceid str XXXXXXXXXXXXXXX
复制代码
上面的mac大写,mac_wifi/mac_bt小写。mac_wifi末位比mac少1,mac_bt末位比mac少2。deviceid就是机器的序列号。
通过命令将这4个key写入flash后,TTL不会再有出错信息,mac也固定了。

丢mac的根源就是key被擦除了(刷机选了错误的清除flash选项 / ddbr恢复这些操作),这个资料可以参考下:

Amlogic烧录工具V2使用手册V0.9






方法2:不想拆机?看2L。

方法3:2L的操作搞不定?看4L.





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

你说的很对,我赞同你的说法。: 5.0
你说的很对,我赞同你的说法。: 5
在/boot/emmc_autoscript中加入两行命令,重启之后mac终于固定起来了,删除命令之后在重启,mac也是固定了的。不错,感谢楼主的分享  发表于 2019-9-27 09:35

评分

参与人数 5恩山币 +7 收起 理由
无所不*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
2727*** + 2 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
ql13*** + 1 感谢你的分享,无论怎样,你都是最无私的人!
小小*** + 1 马上70周年国庆了,在此我祝你国庆节快乐!
wgy*** + 2 马上70周年国庆了,在此我祝你国庆节快乐!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
 楼主| | 显示全部楼层
本帖最后由 无线无极限 于 2020-7-17 13:50 编辑
无线无极限 发表于 2019-9-30 21:23
命令换到第6行前试试。你这是安装到emmc了?
我的机器安装了coreelec,不想再动(配置了很多东西),没 ...

游客,如果您要查看本帖隐藏内容请回复

修改后的脚本传上来,可以直接用winhex改上图中标识部分,换成自己机器的mac和串号,然后按上面的步骤修改下文件的头信息就能用了。
游客,如果您要查看本帖隐藏内容请回复




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

已经按照楼主的方法修复MAC地址 感谢提供方法  发表于 2020-6-11 07:42
heq
感谢楼主的分享。 第5步修改header的验证部分觉得有些问题,计算0x00-0x40的CRC32值后填入0x04-0x07,相当于更改了自身内容,从而导致已填入的CRC32值无效。 楼主确认验证成功吗?  详情 回复 发表于 2020-5-21 16:45
请教一下班长,我的N1刷的是W的2.2,用2个U盘分别启动coreelec和人中日月的emuelec,我发现3个系统的蓝牙mac都不一样,系统不是应该读取emmc中的mac地址的 吗?现在的问题的在这3个系统切换时,我都要重新配对遥控器  详情 回复 发表于 2020-2-19 23:01
yep
这个改脚本我试了好多次没用,但是拆机一次成功!!感谢  发表于 2020-2-9 09:29
yep
这个改脚本我试了好多次没用,但是拆机一次成功!!感谢  发表于 2020-2-9 09:25
谢谢楼主,ip老变比较麻烦  详情 回复 发表于 2019-12-25 15:00
楼主我按照你得方法折腾了好长时间都没成功。。。。。。  发表于 2019-12-13 08:25
楼主你好,我自己按照你说的方法做了一个,发现并没有效果,后来用你做好的文件,放到/boot下,并改名为emmc_autoscript(armbian安装到emmc之后,貌似没有aml_autoscript这个文件了),重启之后发现eth0的mac变成了  详情 回复 发表于 2019-10-7 11:21
楼主辛苦了,有空再试下  详情 回复 发表于 2019-10-4 21:58
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
lemon91 发表于 2020-2-24 02:07
修复成功,说说经过,用楼主的第二个方法,固件为F大最新的25+的Openwrt。
修改文件如下:
1、aml_autosc ...

2L忘了说下自己操作时的环境:启动盘用的小钢炮,机器上的系统是webpad2.2,最后一步是在adb下执行reboot update命令。
按道理只需要改aml_autoscript这个就行了,可能openwrt的启动流程和前面的几个系统不太一样,没深入研究。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 无线无极限 于 2021-4-24 14:31 编辑
lfm 发表于 2021-4-20 13:47
有个简便的方法,Linux下可以用mkimage命令直接给脚本加头信息

是的呢,有Linux环境,用mkimage更简单。
以ubuntu为例:
  • vscode新建文件aml_autoscript_tmp,内容如下
  1. keyman write mac str FC:7C:02:AA:BB:CC
  2. keyman write mac_wifi str fc:7c:02:aa:bb:cb
  3. keyman write mac_bt str fc:7c:02:aa:bb:ca
  4. keyman write deviceid str CAQDB3250000000
  5. sleep 1
  6. reboot
复制代码
  • 安装u-boot-tools
  1. apt install u-boot-tools
复制代码
  • 复制aml_autoscript_tmp到当前目录,用mkimage命令为文件添加头信息
  1. mkimage  -A arm -O linux -T script -C none  -d aml_autoscript_tmp aml_autoscript
复制代码
在当前目录下会生成aml_autoscript,这个文件复制到启动U盘,替换掉同名文件就OK了。



点评

非常实用!  详情 回复 发表于 2023-10-17 09:31
armbian写入emmc了,没有aml_autoscript,有emmc_autoscript文件,但修改无效 [hr]神奇的 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safa  详情 回复 发表于 2021-10-21 17:24
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

支持一下,希望楼主能彻底解决这个问题。

点评

兄弟,/boot/emmc_autoscript这个脚本你是怎么修改的?我修改完就无法启动了  详情 回复 发表于 2019-9-30 00:05
已经更新了  详情 回复 发表于 2019-9-24 15:33
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
ql1307096 发表于 2019-9-24 11:09
支持一下,希望楼主能彻底解决这个问题。

已经更新了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢楼主分享!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
高杰空间 发表于 2019-9-23 20:58
支持研究,彻底开源n1

这机器的潜力都被论坛大神们榨干了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
看一下,大神牛逼
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢楼主分享!!!!!!!!!!!!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

keyman命令就可以修复mac地址了

点评

请教怎样使用这个命令?  详情 回复 发表于 2019-10-31 04:29
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢分享!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

谢谢分享!!!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

希望楼主能彻底解决这个问题。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
看看怎么解决
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
看看有用没
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报


感谢楼主分享!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢分享,学习学习
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 01:57

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表