首页 > 代码库 > Openwrt下固件及烧录相关知识
Openwrt下固件及烧录相关知识
制作编程器固件8M
1、手动制作8M固件
root@AR9331:/# cat /proc/mtd dev: size erasesize name mtd0: 00020000 00010000 "u-boot" mtd1: 000e214c 00010000 "kernel" mtd2: 006edeb4 00010000 "rootfs" mtd3: 00450000 00010000 "rootfs_data" mtd4: 00010000 00010000 "art" mtd5: 007d0000 00010000 "firmware" root@AR9331:/# root@AR9331:/# cd /tmp/ root@AR9331:/tmp# mkdir bin root@AR9331:/tmp# cd bin/ root@AR9331:/tmp/bin# ls -l root@AR9331:/tmp/bin# dd if=/dev/mtd0 of=uboot.bin 256+0 records in 256+0 records out root@AR9331:/tmp/bin# dd if=/dev/mtd5 of=firmware.bin 16000+0 records in 16000+0 records out root@AR9331:/tmp/bin# dd if=/dev/mtd4 of=art.bin 128+0 records in 128+0 records out root@AR9331:/tmp/bin# cat uboot.bin firmware.bin art.bin > compilers.bin root@AR9331:/tmp/bin# ls art.bin compilers.bin firmware.bin uboot.bin root@AR9331:/tmp/bin# ls -lh -rw-r--r-- 1 root root 64.0K Jul 17 17:34 art.bin -rw-r--r-- 1 root root 8.0M Jul 17 17:35 compilers.bin -rw-r--r-- 1 root root 7.8M Jul 17 17:34 firmware.bin -rw-r--r-- 1 root root 128.0K Jul 17 17:34 uboot.bin
2、脚本制作8M固件
#!/bin/sh uboot=`cat /proc/mtd |grep u-boot |awk -F ": " '{ print $1 }'` art=`cat /proc/mtd |grep art |awk -F ": " '{ print $1 }'` firmware=`cat /proc/mtd |grep firmware |awk -F ": " '{ print $1 }'` ## 20141212 @ by leekwen echo ">>>>>>>>>>>>>> u-boot <<<<<<<<<<<<<<<<" dd if=/dev/$uboot of=/tmp/uboot.bin echo ">>>>>>>>>>>>>> Wifi <<<<<<<<<<<<<<<<" dd if=/dev/$art of=/tmp/art.bin echo ">>>>>>>>>>>>>> Firmware <<<<<<<<<<<<<<<<" dd if=/dev/$firmware of=/tmp/firmware.bin echo ">>>>>>>>>>>>>> Factory Binary <<<<<<<<<<<<<<<<" cat /tmp/uboot.bin /tmp/art.bin /tmp/firmware.bin > /tmp/FactoryBin.bin echo "Factory Binary at /tmp/FactoryBin.bin, Please use WinScp tools to get it." ## clean unused Binary rm -fr /tmp/uboot.bin rm -fr /tmp/art.bin rm -fr /tmp/firmware.bin
TFTP烧录过程
1、烧录8M的编程器固件
uboot> Using eth0 device Ping OK, host 192.168.1.10 is alive! uboot> printenv bootargs=console=ttyS0,115200 root=31:02 rootfstype=squashfs init=/sbin/init mtdparts=ar9331-nor0:128k(u-boot),1024k(kernel),2816k(rootfs),64k(config),64k(ART) bootcmd=bootm 0x9F020000 bootdelay=1 baudrate=115200 ipaddr=192.168.1.1 serverip=192.168.1.10 bootfile="firmware.bin" loadaddr=0x80800000 ncport=6666 stdin=serial stdout=serial stderr=serial ethact=eth0 Environment size: 364 bytes uboot> tftp 0x80000000 8m.bin TFTP from IP: 192.168.1.10 Our IP: 192.168.1.1 Filename: '8m.bin' Load address: 0x80000000 Using: eth0 Loading: ######################################## ######################################## ######################################## ######################################## ######################################## ######################################## ######################################## ######################## TFTP transfer complete! Bytes transferred: 8388608 (0x800000) uboot> erase 0x9f000000 +0x800000 Erase flash from 0x9F000000 to 0x9F7FFFFF in bank #1 Erasing: ####################################### ####################################### ####################################### ########### Erased sectors: 128 uboot> cp.b 0x80000000 0x9f000000 0x800000 Copying to flash... Writting at address: 0x9F000000 Done! uboot> reset
2、烧录Openwrt编译出的sysupgrade固件
ar9331> tftp 0x80000000 sysupgrade.bin Using eth0 device TFTP from server 192.168.1.10; our IP address is 192.168.1.1 Filename 'sysupgrade.bin'. Load address: 0x80000000 Loading: ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ####################################################### done Bytes transferred = 3604484 (370004 hex) <pre name="code" class="html">ar9331> erase 0x9f020000 +0x800000Error: end address (0x9f81ffff) not in flash!Bad address format
ar9331> erase 0x9f020000 +0x3C0000Unknown command ‘erase- try ‘help‘ar9331> erase 0x9f020000 +0x3c0000Erase Flash from 0x9f020000 to 0x9f3dffff in Bank # 1First 0x2 last 0x3d sector size 0x10000 61Erased 60 sectorsar9331> cp.b 0x80000000 0x9f020000 0x3c0000Copy to Flash... write addr: 9f020000done
3、修改MAC地址
uboot> setmac 00:01:03:05:07:00 Executing: erase 0x9F010000 +0x10000; cp.b 0x80800000 0x9F010000 0x10000 Erase flash from 0x9F010000 to 0x9F01FFFF in bank #1 Erasing: # Erased sectors: 1 Copying to flash... Writting at address: 0x9F010000 Done! uboot> saveenv uboot> reset
Openwrt下固件及烧录相关知识
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。