从零开始编译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 提取码:见附件
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

从零开始编译OpenWrt固件相关推荐

  1. 编译OpenWRT固件 硬件平台TP-Link WR703N 软件版本OpenWRT14.07 使用Ubuntu16.04 32位

    硬件平台TP-Link WR703N 硬改FLASH 16M  ,  RAM  64M,使用breed刷机 (一)准备工作一 1)使用VMware 安装Ubuntu16.04 32位 2)在Ubunt ...

  2. 解决方法:MT7628编译OpenWrt固件时quilt错误

    一.问题 执行命令 make V=99 报以下错误: make[1]: Entering directory `/home/alm/openwrt` make[2]: Entering directo ...

  3. 给歌华链GHL-R-001编译OpenWrt 固件(一)

    最近又开始折腾OpenWrt了. 看来OP和LEDE和解了,现在的代码编译起来顺滑很多.在Debian和Ubuntu下都比较顺利,只遇到了一个问题: gconvert.c:61:2: error: # ...

  4. mysql openwrt 编译_如何编译OpenWrt

    (!文末,附加人生如戏写的编译OPENWRT的TXT内容,可直接跳至末尾,有例子) Openwrt 官方正式的发行版是已编译好了的映像文件(后缀名bin或trx.trx2),此映像文件可从Openwr ...

  5. 极路由刷个人编译的openwrt固件全过程

    说明 以下是极1s刷机的整个流程,包括openwrt 极路由固件的编译和升级流程,主要是为了方便发烧友或者开发人员. 准备工作 极壹S(型号HC5661)一台 串口板和串口线(如果是高级玩家) 电脑. ...

  6. openwrt固件的下载编译流程

    openwrt官方wiki http://wiki.openwrt.org/doc/howto/start Ubuntu环境: Linux wilson-virtual-machine 4.10.0- ...

  7. OpenWrt固件编译

    OpenWrt固件编译 编译OpenWrt需要Linux环境或mac环境,不支持Windows,如果要在Windows上开发,那么肯定是要装虚拟机的.(根据云隐技术7688开发板) 若不想折腾,下载虚 ...

  8. 树莓派3B/4B从零开始编译安装并刷入OpenWrt,让空闲的树莓派变成路由器

    不知道是不是全国的大学都一样,在宿舍内用4G网络真的是卡的不得了.这我哪能接受啊?开学没过几天就京东下单了一个TP-Link的路由器,还好学校没啥限制,提供的网线可以直接插WAN口上用.但是没过几天, ...

  9. OPENWRT 插件ipk单独编译-无需编译整个固件

    下载官方源码包(可省) https://downloads.openwrt.org/releases/21.02.1/targets/x86/64/openwrt-sdk-21.02.1-x86-64 ...

最新文章

  1. spyder的输出面板不小心关掉了怎么办?
  2. 【Spark大数据处理】动手写WordCount
  3. 使用Python代码处理Excel
  4. 《游戏设计艺术(第2版)》——学习笔记(32)第32章 游戏改变玩家
  5. 雷达信号处理基础ppt
  6. 《未来世界的幸存者》读后有感
  7. 【蚂蚁链学习2】蚂蚁链智能合约初级语法(数组、结构体、散列函数、事件)
  8. css中的counter计数器
  9. 右键没有新建文本文件了.解决方法.
  10. 多线程处理大量数据 java
  11. FZU 2219 StarCraft (哈夫曼树)
  12. 喜讯 | 人大金仓荣获行业信息化领航企业奖
  13. iOS旧版微信SDK升级1.8.6版本小白踩坑记
  14. C语言:编写一个函数,把一个从午夜0点开始计算的秒数转化为对应时间。
  15. Cloudify Cloud foundry
  16. 鱼眼镜头的标定及矫正
  17. Vue3状态管理库——Pinia
  18. STM32H743 SOEM EtherCAT基于STM32H743芯片和SOEM的EtherCAT主站源码
  19. 【STM8L】STM8L之timer2产生PWM
  20. 数据泵实践 ## 用户

热门文章

  1. 使用第三方FTP软件进行文件传输的教程
  2. C# 读取XML文件的几种方式
  3. 单链表实现一元多项式相加
  4. linux中su与su -命令的区别
  5. LTE----024 天线基本原理
  6. linux用户模式驱动,linux设备驱动之控制台驱动
  7. 《空气动力学基础》——第三章 无黏不可压缩流动基础
  8. 单应性矩阵在标定中的应用
  9. 给公司领导的一些小建议
  10. 知乎高赞:Java和嵌入式,选哪个?