找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 14916|回复: 30

从零开始编译OpenWrt固件

  [复制链接]
发表于 2019-2-5 17:24 | 显示全部楼层 |阅读模式
一、前言
进来阅读这篇文章的相信都是对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分钟)
  
1
  
2
  
更新和安装相关feeds(大约10分钟)
  
1
  
2
  
3
  
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,更换内存为64MB,硬改后参数如下
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(无线校准)文件
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
保存并退出
打开配置菜单
  
1
  
make menuconfig
设置必要选项
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分钟左右)
  
1
  
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固件其余均来自于网上,整理成附件方便大家下载。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

你说的很对,我赞同你的说法。: 2.0
你说的很对,我赞同你的说法。: 2
试试看能不能改固件的大小??  发表于 2019-6-13 12:53

评分

参与人数 1恩山币 +1 收起 理由
cjt2*** + 1 率全体恩山路由党以及党魁向你学习!

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-2-5 18:23 | 显示全部楼层
谢谢楼主的教程,这是编译openwrt官方源码固件。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-5 19:06 | 显示全部楼层
是不是得搭个梯子啊?源码下载太慢了!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-5 19:34 | 显示全部楼层
这个绝对值得收藏
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-5 20:21 | 显示全部楼层
感谢楼主提供这么优质的资源
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-5 20:22 来自手机 | 显示全部楼层
关键是DL目录,直接提供就好了,时间都浪费在这里了!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-2-5 23:39 | 显示全部楼层
linksys_wifi 发表于 2019-2-5 20:22
关键是DL目录,直接提供就好了,时间都浪费在这里了!

谢谢关注,第一次发帖,确实有做的不足的地方,附件压缩包里面就是下载链接及提取码,应该就是你说的Download目录。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-2-5 23:41 | 显示全部楼层
kalengame 发表于 2019-2-5 19:06
是不是得搭个梯子啊?源码下载太慢了!

是的,最好开启全局virtual**,谢谢提醒。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-2-5 23:43 | 显示全部楼层
longone 发表于 2019-2-5 18:23
谢谢楼主的教程,这是编译openwrt官方源码固件。

嗯,新年好,谢谢您的关注,楼主喜欢重新造轮子,就借新年第一天写了篇最基础的,与大家一起交流学习。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-5 23:54 | 显示全部楼层
linksys_wifi 发表于 2019-2-5 20:22
关键是DL目录,直接提供就好了,时间都浪费在这里了!

可以开双终端,一个用来下载dl库 一个用来编译 需要的时候早就下好了!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-6 00:03 | 显示全部楼层
这个教程好啊,但是需要一定的动手能力来改硬件。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-2-6 19:21 | 显示全部楼层
fndsz 发表于 2019-2-6 00:03
这个教程好啊,但是需要一定的动手能力来改硬件。。

嗯,不换芯片也可以,原来的4M RAM,32M Flash跑OpenWrt也是足够的,编译时将(Device/tplink-8mlzma)改为$(Device/tplink-4mlzma)
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-4-16 10:48 来自手机 | 显示全部楼层
收藏,太好的教程了。谢谢楼主分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-5-23 08:53 | 显示全部楼层
绝对值得收藏
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-6-8 23:05 | 显示全部楼层
我的经验,如果已经自备梯子了,就在国外的vps上完成编译,这样速度快很多,我曾经试过,vultr的主机,第一次编译大概20分钟。如果有vultr账号,可以临时建个美国主机,反正也用不了多长时间。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-26 20:18

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表