进来阅读这篇文章的相信都是对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 提取码:见附件
Ubuntu 16.04.x LTS (64bit):
https://pan.baidu.com/s/10CSU8XhHRrh_0CNJEvpP-w 提取码:见附件
安装VirtualBox虚拟机软件,根据提示建立Ubuntu虚拟机
安装过程略
安装完成后,进入Ubuntu虚拟机,确认虚拟机与宿主机能够互相ping通,并且虚拟机能够正常连入互联网。
在Ubuntu终端内输入
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
或
sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc
安装这些工具和依赖大约需要30分钟,等待完成后,进行OpenWrt源码下载。
源码下载(大约10分钟)
cd ~
git clone https://github.com/openwrt/openwrt.git
更新和安装相关feeds(大约10分钟)
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
至此环境搭建已完成
以TP-Link TL-WR703N为例,进行相关配置讲解
TL-WR703N硬件参数
名称 | 参数 |
---|---|
CPU | Atheros AR9331 rev 1 |
内存 | 32MB DDR |
Flash | Winbond W25Q32 @ 20MHz (4MB) |
以太网 | Atheros AR8216 rev 2 |
时钟频率 | CPU: 400MHz, DDR: 400MHz, AHB: 200MHz, Ref: 25MHz |
为增强可玩性,更换Flash为16M,更换内存为64M,硬改后参数如下
名称 | 参数 |
---|---|
CPU | Atheros AR9331 rev 1 |
内存 | 64MB DDR |
Flash | Winbond W25Q128 @ 20MHz (16MB) |
以太网 | Atheros AR8216 rev 2 |
时钟频率 | CPU: 400MHz, DDR: 400MHz, AHB: 200MHz, Ref: 25MHz |
通过编程器备份原4M Flash 固件,并通过Hex Workshop软件提取ART(无线校准)文件
Hex Workshop:
https://pan.baidu.com/s/1LjkoytlW6-4UF-0yaZC2Ng 提取码:见附件
ART起始地址: 0x003F0000
ART结束地址: 0x00400000
提取好的ART文件
tl-wr703n-art.bin:
https://pan.baidu.com/s/1UEtdTipUxlCa3smY8Kq-CA 提取码:见附件
通过编程器将breed写入16M Flash,写入之前最好擦除整片数据。
(注:Breed来自恩山hackpascal大神)
breed-ar9331-r1163.bin:
https://pan.baidu.com/s/1yAWzjVkSMw6tr1EZzjrggA 提取码:见附件
修改固件大小
vi target/linux/ar71xx/image/tiny-tp-link.mk
第343行
将(Device/tplink-8mlzma)
改为$(Device/tplink-16mlzma)
保存并退出
使能WR703N路由器编译项
vi target/linux/ar71xx/config-4.14
第227行
将# CONFIG_ATH79_MACH_TL_ WR703N is not set
改为CONFIG_ATH79_MACH_TL_WR703N=y
保存并退出
打开配置菜单
make menuconfig
设置必要选项
Target System (Atheros AR7xxx/AR9xxx)
Subtarget (Devices with small flash)
Target Profile (TP-LINK TL-WR703N v1)
LuCI —>
1.Collections —>
<*> luci… LuCI interface with Uhttpd as Webserver (default)
LuCI —>
2. Modules —>
Translations —>
<*> Chinese (zh-cn)
完成后,保存退出
编译(首次编译大约12小时,第二次编译只需30分钟左右)
make V=99
编译成功后,通过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固件其余均来自于网络,整理成附件方便大家下载。
https://download.csdn.net/download/xinancao_/10949504