RISC-V技术论坛
直播中

corkia

4年用户 657经验值
擅长:嵌入式技术
私信 关注
[资料]

【全志网络专题/Tips】Tina Linux 网络Wi-Fi MAC地址

本帖最后由 corkia 于 2022-3-28 09:31 编辑

大家好,我是三颗芋圆,始于LWIP,陷于TCP/IP,忠于80211。

本次tips谈谈Tina网络的MAC地址。

目前Tina系统有多种方式可以查看Wi-Fi的mac地址。

一.如何查看MAC地址
1)直接使用ifconfig命令
ifonfig是linux通用的命令,可以查看mac/ip地址,以及网卡状态,数据TX/RX的首发统计。

PS:初始化过程时从efuse中读取mac地址然后拷贝到一个数组中,ifconfig实际上是从数组中读取的.

所以当我们通过某个工具写mac地址后,如果没有重新开关网卡执行ifconfig是不会更新mac地址的.
2)通过节点读取
  1. root@TinaLinux:/# cat /sys/class/net/wlan0/address
  2. 40:53:1f:f7:6e:88
3)如果是xradio系列的话,还可以查看xr_wifi.conf文件
  1. root@TinaLinux:/# cat /etc/wifi/xr_wifi.conf
  2. 40:53:1f:f7:6e:88
  3. root@TinaLinux:/# cat ./overlay/upper/etc/wifi/xr_wifi.conf
  4. 40:53:1f:f7:6e:88
二.XRADIO的MAC地址写入方式
xradio系列的我司是申请了的,分配时前2个字节是一样的,然后系统会随机分配后两个字节.存在冲突的可能(概率低).
1).从文件获取。
2).从chipid定制。
3).从private分区或是securestorge分区定制。
4).可以驱动加载时带参数:insmod xr829.ko mac_addr=10:22:33:44:55:66(前面不能是11)

PS:指令将key mac地址烧写到flash(所以内核无法直接读取)->uboot传递键值对到env.cfg->传到cmdline->kernel(driver/misc/sunxi-addr-mgt驱动解析)->具体wifi驱动解析->sysfs
三.RTL的MAC地址处理
RTL系列一般是固化到IC中的,如果是模组产可能没有做处理,mac地址都是同一个(所以一般需要dragonSN烧写mac地址).
RTL8723ds:
具体MAC address由客户提供,BT MAC offset 0x44 len 6 byte,假设value是00E04CAABBCC
写入命令:rtwpriv wlan0 efuse_set btwmap,44,CCBBAA4CE000
不过要提请注意,写efuse的时候一定要小心,一旦写错, IC 就可能废掉了,因为 efuse 空间有限,写满了就废掉了。
BT efuse 空间是否写满可以通过“rtwpriv wlan0 efuse_get btableraw”判断。
读取命令:rtwpriv wlan0 efuse_get btfmap
Rtwpriv 常用指令:
1). 查看efuse 内容: rtwpriv wlan0 efuse_get realmap
2). 查看efuse剩余空间: rtwpriv wlan0 efuse_get ableraw
3). 查看efuse对应位内容: rtwpriv wlan0 efuse_get rmap,C1,01 (读出efuse offset 0xc1 值)
4). 写efuse 对应位内容: rtwpriv wlan0 efuse_set wmap,C1, 02 (对efuse offset 0xc1写入值: 02)
5). mac读取: rtwpriv wlan0 efuse_get mac
6). mac 写入: rtwpriv wlan0 efuse_set mac,00E04C123456 (后面值为对应mac address)

更多回帖

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