Networking 在OpenWrt Chaos Calmer 15.05.1中更改wifi接口的MAC地址

Networking 在OpenWrt Chaos Calmer 15.05.1中更改wifi接口的MAC地址,networking,config,openwrt,Networking,Config,Openwrt,我已经配置了一个OpenWrt(我们称之为child)从sd卡引导,该sd卡的固件和软件从另一个OpenWrt(我们称之为maker)重新映像,如下所示: 除了孩子和maker的wlan接口显示相同的MAC地址(maker的MAC地址)的问题外,一切正常。因此,如果它们都处于AP模式,我只能连接其中一个 我曾尝试在“wifi设备”、“wifi iface”中提供“macaddr”选项,但没有任何效果。我还尝试使用以下命令设置硬件地址: ifconfig ra0 hw ether 'XX:XX:X

我已经配置了一个OpenWrt(我们称之为child)从sd卡引导,该sd卡的固件和软件从另一个OpenWrt(我们称之为maker)重新映像,如下所示:

除了孩子和maker的wlan接口显示相同的MAC地址(maker的MAC地址)的问题外,一切正常。因此,如果它们都处于AP模式,我只能连接其中一个

我曾尝试在“wifi设备”、“wifi iface”中提供“macaddr”选项,但没有任何效果。我还尝试使用以下命令设置硬件地址:

ifconfig ra0 hw ether 'XX:XX:XX:XX:XX:XX'
但这给了我错误

ifconfig: SIOCSIFHWADDR: Operation not supported
我可以看到mac地址是从

/sys/class/net/ra0/address

其中ra0是接口名,但它是只读文件,不在sd卡上(至少具有给定路径)

父级的mac地址必须在sd卡上,但至少使用grep无法找到它

因此,我非常感谢您在这里提供的任何帮助,无论是在映像后更改sd卡上的地址,还是在系统启动时覆盖它


谢谢

您可以查看“art”分区中的校准数据。如果您的MAC地址存储在其中,那么您可以更改它

root@OpenWrt:/# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00030000 00010000 "u-boot"
mtd1: 00fc0000 00010000 "firmware"
mtd2: 00120000 00010000 "kernel"
mtd3: 00ea0000 00010000 "rootfs"
mtd4: 00c60000 00010000 "rootfs_data"
mtd5: 00010000 00010000 "art"
所以我的一个是/dev/mtd5。现在我将检查内部的校准数据

cat /dev/mtd5 > art.img
hexdump art.img
我的wifi MAC地址是04:F0:21:07:7C:EC。运行hextump art.img后,它会显示

我需要使用软件应用程序修改art.img,将“04f0 2107 7cec”更改为新的MAC地址

最后一步是:将编辑好的art.img复制到/dev/mtd5

 cat art.img > /dev/mtd5
谢谢你的帮助

对于联发科linkit 7688,MAC似乎存储在/dev/mtd2中。理想情况下,这是一个ROM分区,从SD卡或原始闪存引导时不应受到影响

但我发现,在启动时,它会在/lib/firmware/mt7628.eeprom文件下缓存相同的文件,该文件也会在准备sd卡时从linkit复制

因此,当我从sd卡启动第二个linkit时,它会将第一个linkit缓存视为自己的/dev/mtd2缓存,从而导致问题


为了解决这个问题,在sd卡映像准备好后,删除文件/mnt/upper/lib/firmware/mt7628.eeprom,并将其符号链接到/overlay boot/upper/lib/firmware/mt7628.eeprom,其中/mnt是sd卡安装位置,overlay boot是原始闪存安装位置

谢谢,您的建议很有用。在我的例子中,MAC存储在/dev/mtd2上,该链接不允许更改。然而,这个值在我的例子中是正确的。问题是缓存副本也被复制到sd卡。很高兴我能帮上忙。如果您遇到更多问题,请告诉我。干杯“艺术”划分是特定于atheros的。许多类似的OpenWrt板都使用ar9331等,在这些情况下,分区确实是至关重要的。然而,问题中的董事会使用的联发科SoC(Ralink heritage的)做的事情不同。Stack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。
 cat art.img > /dev/mtd5