1.openwrt编译流程
2.openwrtçsysupgradeåfactoryåºä»¶çåºå«
3.OpenWRT实践2:路由器更新固件(U-boot)
4.openwrt升级固件时上传的固固件bin文件怎么变成了firmware.img
5.openwrt ç¼è¯çåºä»¶å¨åª
openwrt编译流程
编译OpenWRT源码至Ubuntu下,需先进入OpenWRT根目录。原版通常,固固件简单操作为执行命令make V=。原版若系统为多核处理器,固固件为加速编译过程,原版web导航源码下载可添加-j选项,固固件如make –j3 V=。原版在编译过程中,固固件系统将自动下载所需软件包,原版请确保网络畅通。固固件若在编译时遇到下载失败,原版可先执行make download指令,固固件提前下载所需包,原版以避免后续错误。固固件
初次编译耗时较长,且需下载大量源码包,建议使用较好的***,以加速过程。免签约发卡源码完成编译后,会在源码目录中生成一个名为bin的文件夹,其中包含两个文件:openwrt-ramips-rtx-wrn-squashfs-factory.bin 和 openwrt-ramips-rtx-wrn-squashfs-sysupgrade.bin。根据路由器的原始固件或已安装的OpenWRT版本,选择相应的固件进行刷写。
在编译过程中,掌握一些技巧有助于提升效率。例如,执行make clean可以清理基本编译文件,网页app打包源码make dirclean则会深度清理文件,相当于执行make clean后再清除交叉编译工具链目录。使用make distclean则会清除所有相关东西,包括下载的软件包、配置文件及feed内容等。在个人开发中,常遇menuconfig无法更新问题,可通过删除tmp缓存目录解决。预先下载软件包,成品静态网页源码再执行编译的make download V=方法同样有效。最后,删除.config文件以清空所有配置。
openwrtçsysupgradeåfactoryåºä»¶çåºå«
openwrtçåºä»¶ä¸è¬å两ç§ç±»åï¼factoryåååºä»¶ãsysupgradeåºä»¶
factoryå¤äºä¸äºéªè¯çä¸è¥¿ï¼ç¨äºå¨åååºä»¶çåºç¡ä¸è¿è¡å级ã
æ®é家ç¨è·¯ç±ä¸è¬ä¸æ¯openwrtåºä»¶ï¼å¦æè¦å°å®¶ç¨è·¯ç±å级为openwrtåºä»¶ï¼å°±å¯ä»¥ç¨factoryå·å°è·¯ç±ä¸ãsysupgradeæ¯å¨openwrtè·¯ç±åºç¡ä¸å级åºä»¶ï¼æ è®ºä½ æ¯åååºä»¶æè æ¬èº«å°±æ¯openwrtåºä»¶ï¼è¦å级å°openwrtï¼factoryé½éç¨ï¼ä½æ¯sysupgradeåªè½ç¨å¨å级ï¼TTLæç çæ¶åå°±ä¸è½ç¨sysupgradeãsysupgradeä¸å å«æ°æ®ååºï¼factory带ï¼factoryé¢çååååºï¼sysupgradeåªå å«openwrtååºã
æä¸ä¸ªå ¬å¼:sysupgrade.bin+空é²ç©ºé´+ç³»ç»çé 置空é´=factory.binç大å°
å¨openwrt wikiä¸æä¸é¨æè¿°sysupgradeï¼
sysupgradeæ¿æ¢linuxå æ ¸åsquashæ件系ç»ï¼æ¦é¤æ´ä¸ªjffs2é¨åãè½ä¿çé ç½®æ件ï¼ä½ä¸è½ä¿çäºè¿å¶å®è£ æ件ã
æè¿°äºå ç§sysupgradeæ¹æ³ï¼ä½æ²¡ææè¿°å¨webçé¢çæ´æ°ï¼ä¹æ²¡ææè¿°factoryåsysupgradeçåºå«ã
æè¿°çæ´æ°æ¹æ³ä¸ºï¼
sysupgrade -v /tmp/openwrt-arxx-generic-wzr-hp-agh-squashfs-sysupgrade.bin
mtd -r write /tmp/openwrt-arxx-generic-wzr-hp-agh-squashfs-sysupgrade.bin firmware
nc -l -p | mtd write â firmware
OpenWRT实践2:路由器更新固件(U-boot)
在成功编译OpenWRT固件后,本部分将介绍如何将固件写入到路由器中。我们使用的是WNDR路由器平台,并且该路由器已安装了不死U-boot,因此我们可以通过图形界面进行刷机,操作更加简便。新闻网站 源码
U-boot刷机步骤如下:
第一步:重置WNDR系统。
在关机状态下,使用笔或钳子按下Reset按钮,随后打开电源开关,并持续按住Reset按钮约~秒,然后释放Reset按钮。
第二步:通过网线将电脑与路由器的LAN接口(如上图红色位置所示,即Ethernet(1~4)接口)连接。
路由器默认的DHCP会为本地主机分配IP地址(因此本地主机不要设置固定IP),接着通过网页访问u-boot(直接访问http://..1.1),如图所示。
第二步:更新固件。在u-boot控制台选择“固件更新”选项,选择已编译好的固件,让闪存布局自动识别,并勾选“自动重启”。
确认更新后,等待上传完成,如图所示。
更新完成后,路由器将自动重启,这个过程可能需要1~3分钟。在此期间请耐心等待,以免其他操作导致u-boot损坏。
第三步:重新登录路由器,即访问http://..1.1。
首先会要求设置账户和密码,用户自行设定即可。设置完成后,刷机过程就结束了。进入OpenWRT后,就可以像普通路由器一样进行配置。
openwrt升级固件时上传的bin文件怎么变成了firmware.img
平台不同稍有差异,一般流程都是差不多的首先修改trunk/tools/firmware-utils/src/mktplinkfw.c只修改fw_max_len为0xfc,Mflash;只修改fw_max_len为0x7c,8Mflash.id="4M",.fw_max_len=0xfc,.kernel_la=0x,.kernel_ep=0x,.rootfs_ofs=0x,新版只用改fw的大小,分区表会自动认,不用像老版自己定义每个分区大小了。另外还需下面修改:Imagebuilder目录下,./target/linux/arxx/image/Makefile,把n最后的4Mlzma改成了8Mlzma或Mlzma$(eval$(callSingleProfile,TPLINK-LZMA,$(fs_kraw),TLWR,tl-wrn-v1,TL-WRN,ttyATH0,,0x,1,8Mlzma))否则出现如下错误:[mktplinkfw]kernellengthalignedto[mktplinkfw]***error:imagesaretoobigmake[3]:[install]Error(ignored)在openwrt中不能更新uboot时,需要做如下修改:target/linux/arxx/files/drivers/mtd/tplinkpart.cparts[0].mask_flags=MTD_WRITEABLE;//去除本行
openwrt ç¼è¯çåºä»¶å¨åª
åºä»¶å¨ openwrt/bin/ramips ç®å½ä¸ï¼å½¢å¦
openwrt-ramips-mtn-rt-nu-squashfs-sysupgrade.bin
openwrt-ramips-mtn-wrtnode-squashfs-sysupgrade.bin
openwrt-ramips-mtn-mlw-squashfs-sysupgrade.bin
openwrt-ramips-mtn-wrrt-squashfs-sysupgrade.bin