找回密码
 立即注册

QQ登录

只需一步,快速开始

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

从零开始编译OpenWrt固件

  [复制链接]
一、前言
进来阅读这篇文章的相信都是对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固件其余均来自于网上,整理成附件方便大家下载。



本帖子中包含更多资源

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

×

评分

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

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
谢谢楼主的教程,这是编译openwrt官方源码固件。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

是不是得搭个梯子啊?源码下载太慢了!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

这个绝对值得收藏
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢楼主提供这么优质的资源
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

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

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

使用道具 举报

linksys_wifi 发表于 2019-2-5 20:22
关键是DL目录,直接提供就好了,时间都浪费在这里了!

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

使用道具 举报

这个教程好啊,但是需要一定的动手能力来改硬件。。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

绝对值得收藏
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

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

GMT+8, 2024-5-7 08:32

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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