一、前言 进来阅读这篇文章的相信都是对OpenWrt有一定的了解的,对于OpenWrt的介绍这里就不再赘述,可以自行查找相关百科了解。 OpenWrt是适合于嵌入式设备的一个Linux发行版,可以通过其提供的相关工具,选择适合自己设备(路由器等)的参数,进行镜像文件编译。 本文以TP-Link TL-WR703R路由器为例,进行OpenWrt 固件编译讲解。 转载请注明来源,谢谢。 二、环境搭建 OpenWrt的源码编译工作需要在Linux操作系统下进行,一般开发人员的计算机都是Windows操作系统,所以需要在Windows上安装Linux虚拟机。 本教程选用开源虚拟机软件Oracle VM VirtualBox,Linux操作系统选用Ubuntu。 下载链接如下: VirtualBox-6.0.4-128413-Win: https://pan.baidu.com/s/1ZfpRg5W6yMM0SQLthiHiiw提取码:见附件 Ubuntu16.04.x LTS (64bit): https://pan.baidu.com/s/10CSU8XhHRrh_0CNJEvpP-w提取码:见附件 安装VirtualBox虚拟机软件,根据提示建立Ubuntu虚拟机 安装过程略 安装完成后,进入Ubuntu虚拟机,确认虚拟机与宿主机能够互相ping通,并且虚拟机能够正常连入互联网。 在Ubuntu终端内输入 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | sudo su apt-get update apt-get install g++ apt-get install libncurses5-dev apt-get install zlib1g-dev apt-get install bison apt-get install flex apt-get install unzip apt-get install autoconf apt-get install gawk apt-get install make apt-get install gettext apt-get install gcc apt-get install binutils apt-get install patch apt-get install bzip2 apt-get install libz-dev apt-get install subversion apt-get install asciidoc |
或 1 | sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc |
安装这些工具和依赖大约需要30分钟,等待完成后,进行OpenWrt源码下载。 源码下载(大约10分钟) 更新和安装相关feeds(大约10分钟) 1 2 3 | cd openwrt ./scripts/feeds update -a ./scripts/feeds install -a |
至此环境搭建已完成 三、配置及编译 以TP-Link TL-WR703N为例,进行相关配置讲解 TL-WR703N硬件参数 | | | | | Winbond W25Q32 @ 20MHz (4MB) | | | | CPU: 400MHz, DDR: 400MHz, AHB: 200MHz, Ref: 25MHz |
为增强可玩性,更换Flash为16M,更换内存为64MB,硬改后参数如下 | | | | | Winbond W25Q128 @ 20MHz (16MB) | | | | CPU: 400MHz, DDR: 400MHz, AHB: 200MHz, Ref: 25MHz |
通过编程器备份原4M Flash 固件,并通过Hex Workshop软件提取ART(无线校准)文件 HexWorkshop: https://pan.baidu.com/s/1LjkoytlW6-4UF-0yaZC2Ng提取码:见附件 ART起始地址: 0x003F0000 ART结束地址: 0x00400000 提取好的ART文件 tl-wr703n-art.bin: https://pan.baidu.com/s/1UEtdTipUxlCa3smY8Kq-CA提取码:haaf 通过编程器将breed写入16M Flash,写入之前最好擦除整片数据。 (注:Breed来自恩山hackpascal大神) breed-ar9331-r1163.bin: https://pan.baidu.com/s/1yAWzjVkSMw6tr1EZzjrggA提取码:见附件 修改固件大小 1 | vi target/linux/ar71xx/image/tiny-tp-link.mk |
第343行 将$(Device/tplink-8mlzma) 改为$(Device/tplink-16mlzma) 保存并退出 使能WR703N路由器编译项 1 | vi target/linux/ar71xx/config-4.14 |
第227行 将# CONFIG_ATH79_MACH_TL_ WR703N is not set 改为CONFIG_ATH79_MACH_TL_WR703N=y 保存并退出 打开配置菜单 设置必要选项 Target System (Atheros AR7xxx/AR9xxx) Subtarget (Devices with small flash) Target Profile (TP-LINK TL-WR703N v1) LuCI ---> 1. Collections ---> <*> luci................... LuCIinterface with Uhttpd as Webserver (default) LuCI ---> 2. Modules ---> Translations ---> <*> Chinese (zh-cn) 完成后,保存退出 编译(首次编译大约12小时,第二次编译只需30分钟左右) 编译成功后,通过sftp工具将bin/targets/ar71xx/tiny路径下的 openwrt-ar71xx-tiny-tl-wr703n-v1-squashfs-factory.bin导出到宿主机 SFTP工具 FileZilla: https://pan.baidu.com/s/1VCQO-RHhL80P2Rj9qbFuyg提取码:见附件 四、固件更新 通过breed进行固件更新,更新操作完成后再次进入breed进行恢复出厂设置,可增加开机成功率。 16M OpenWrt固件(裸固件,无酸酸乳等其他插件,谢谢) openwrt-ar71xx-tiny-tl-wr703n-v1-squashfs-factory-20190205.bin: https://pan.baidu.com/s/1h1J-mMTX_bAHlCWRSJhhyQ提取码:见附件 五、附件 文中的相关文件和软件除了自行编译的OpenWrt固件其余均来自于网上,整理成附件方便大家下载。
|