Openwrt 修改Mac地址
2015-09-08 18:42
603 查看
一、查看Mac地址
root@M201:~# ls /dev/mtdblock
mtdblock0 mtdblock1 mtdblock2 mtdblock3 mtdblock4 mtdblock5
root@M201:~# ls /dev/mtdblock*
/dev/mtdblock0 /dev/mtdblock2 /dev/mtdblock4
/dev/mtdblock1 /dev/mtdblock3 /dev/mtdblock5
root@M201:~# dd if=/dev/mtdblock2 of=/tmp/factory
128+0 records in
128+0 records out
root@M201:~# hexdump /tmp/factory
0000000 7620 0105 0c00 7643 1820 ffff ffff ffff
0000010 ffff ffff ffff ffff ffff ffff ffff ffff
0000020 ffff ffff ffff ffff 0c00 7643 7720 0c00
0000030 7643 6620 0c22 0000 ffff 013f 7755 aaa8
0000040 888c ffff 000a 0000 0000 0000 0000 ffff
0000050 ffff 0202 0202 0202 0202 0202 0202 0202
0000060 0303 0303 0303 0303 0303 0303 0303 ff80
0000070 ffff ff80 ffff 0000 ffff ffff ffff ffff
0000080 ffff ffff ffff ffff ffff ffff ffff ffff
*
00000d0 ff20 ffff ffff ffff ffff ffff ffff 0808
00000e0 0808 0004 0707 0004 0808 0004 0707 0004
00000f0 ffff ffff ffff ffff ffff ffff ffff ffff
*
0010000
root@M201:~# cat /sys/class/ieee80211/phy0/macaddress
00:0c:43:76:20:18
root@M201:~# hexdump -s 4 -n 6 -C /dev/mtd2 | head -n 1 | sed 's/\ \ /:/g' | cut -d: -f 2 | sed 's/\ /:/g'
00:0c:43:76:20:18
hexdump -s 偏移4个字节,-n 读取6个字节长度
head -n 显示1行
sed 's/\ \ /:/g' 将两个空格替换为一个冒号,在此为了取第二个域的mac地址
cut -d: 自定义分隔符‘:’,默认制表符;-f 与-d一起使用,指定显示哪个区域。
sed 's/\ /:/g' 将单空格替换为冒号进行显示
二、修改分区可写
index efa0569..fb4e71d 100755
--- a/target/linux/ramips/dts/M201.dts
+++ b/target/linux/ramips/dts/M201.dts
@@ -41,7 +41,6 @@
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
- read-only;
};
三、读出分区
dd if=/dev/mtdblock2 of=/tmp/factory.bin
四、修改Mac地址
这里只要对factory.bin 04-09偏移地址修改。
00 0C 43 76 20 18
五、写回分区
shell中写回factory.bin
mtd write /tmp/factory.bin factory
这是最粗暴的方式。当然,最好还是写个程序来进行修改,这个就自己发挥了(例如:macwrite)。
root@M201:~# ls /dev/mtdblock
mtdblock0 mtdblock1 mtdblock2 mtdblock3 mtdblock4 mtdblock5
root@M201:~# ls /dev/mtdblock*
/dev/mtdblock0 /dev/mtdblock2 /dev/mtdblock4
/dev/mtdblock1 /dev/mtdblock3 /dev/mtdblock5
root@M201:~# dd if=/dev/mtdblock2 of=/tmp/factory
128+0 records in
128+0 records out
root@M201:~# hexdump /tmp/factory
0000000 7620 0105 0c00 7643 1820 ffff ffff ffff
0000010 ffff ffff ffff ffff ffff ffff ffff ffff
0000020 ffff ffff ffff ffff 0c00 7643 7720 0c00
0000030 7643 6620 0c22 0000 ffff 013f 7755 aaa8
0000040 888c ffff 000a 0000 0000 0000 0000 ffff
0000050 ffff 0202 0202 0202 0202 0202 0202 0202
0000060 0303 0303 0303 0303 0303 0303 0303 ff80
0000070 ffff ff80 ffff 0000 ffff ffff ffff ffff
0000080 ffff ffff ffff ffff ffff ffff ffff ffff
*
00000d0 ff20 ffff ffff ffff ffff ffff ffff 0808
00000e0 0808 0004 0707 0004 0808 0004 0707 0004
00000f0 ffff ffff ffff ffff ffff ffff ffff ffff
*
0010000
root@M201:~# cat /sys/class/ieee80211/phy0/macaddress
00:0c:43:76:20:18
root@M201:~# hexdump -s 4 -n 6 -C /dev/mtd2 | head -n 1 | sed 's/\ \ /:/g' | cut -d: -f 2 | sed 's/\ /:/g'
00:0c:43:76:20:18
hexdump -s 偏移4个字节,-n 读取6个字节长度
head -n 显示1行
sed 's/\ \ /:/g' 将两个空格替换为一个冒号,在此为了取第二个域的mac地址
cut -d: 自定义分隔符‘:’,默认制表符;-f 与-d一起使用,指定显示哪个区域。
sed 's/\ /:/g' 将单空格替换为冒号进行显示
二、修改分区可写
index efa0569..fb4e71d 100755
--- a/target/linux/ramips/dts/M201.dts
+++ b/target/linux/ramips/dts/M201.dts
@@ -41,7 +41,6 @@
factory: partition@40000 {
label = "factory";
reg = <0x40000 0x10000>;
- read-only;
};
三、读出分区
dd if=/dev/mtdblock2 of=/tmp/factory.bin
四、修改Mac地址
这里只要对factory.bin 04-09偏移地址修改。
00 0C 43 76 20 18
五、写回分区
shell中写回factory.bin
mtd write /tmp/factory.bin factory
这是最粗暴的方式。当然,最好还是写个程序来进行修改,这个就自己发挥了(例如:macwrite)。
相关文章推荐
- (总结)Nginx使用的php-fpm的两种进程管理方式及优化
- org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class
- 监控宝首推Docker监控 确保容器稳定运行
- 查看linux硬件信息
- 木头骑士的Linux编程实验室(二)——基本的文件读写操作
- Linux下VLAN功能的实现
- 得知OpenCV研究报告指出系列(一)VS2010+OpenCV2.4.9环境配置
- Hadoop 工作原理
- Dell OMSA 硬件检测和维护
- linux常用命令(19):find命令概览
- 配置Apache服务器 数据库mySQL
- ffmpeg configure 不支持 --enable-libopencv 解决
- Linux进程管理及进程管理工具的使用
- 2015年9月5日课程作业(at、crontab)
- [部署]CentOS安装apache
- (总结)Nginx与Apache、Tomcat、Resin动静分离核心配置
- Openwrt 之GPS调试
- (总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
- 编译器的工作过程
- OpenCVz中的几种角点检测算法