文档章节

OpenWrt编译

shzwork
 shzwork
发布于 04/06 13:43
字数 1445
阅读 110
收藏 0

首先,你需要一台电脑,安装一个ubuntu,这个电脑可以用虚拟机,也可以用普通的电脑另外最好学一下llinux基础,最好英文基础也有。。。。。比如。。。我上次见到一个人用了sudo rm -rf /    表示吓尿了{:soso_e136:}

还有请自备梯子,没梯子是编译不出来的(很多库都是google的)

从官网下载ubuntu,我下的是ubuntukylin 14.04 64位桌面版,虚拟机的话推荐下32位版本
下载地址在此
32位:http://cdimage.ubuntu.com/ubuntu ... 1-desktop-i386.iso?
64位:http://cdimage.ubuntu.com/ubuntu ... -desktop-amd64.iso?


曲调日常使用的话是用本地局域网的一台台式机当服务器使的
配置是这样子
CPU:AMD FX8150 (请不要喷AMD,单核性能确实是一坨屎,但是对于编译之类的多线程应用的话,除了功耗高点,速度的话优于I5低于I7,性价比之王)
内存:4G*2
主板:技嘉880G USB3
硬盘:西数 500G黑盘(本机的编译速度的极限在这里,木有钱组RAID,也木有钱上固态)


这里为了演示方便所以用的虚拟机
配置好虚拟机

接下来就是安装环节
安装进行时。。。



安装完成=崭新的中国专版ubuntu已经呈现我们眼前了


接下来是配置软件源,这样做环境的时候下载速度更快,身为一个杭州佬,我用的是阿里源
进入软件中心

编辑-软件源

其他站点

china的站点

选择好后保存就行

接下来就需要配置安装环境了
进入桌面之后按CTRL+ALT+T进入终端

首先更新下软件列表
sudo apt-get update

接下来是安装基础环境,这些包的根据是哪来的?后面会提到
sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git subversion libssl-dev libncurses5-dev  patch unzip zlib1g-dev 
如果是64位系统的话还需要安装32位兼容包
sudo apt-get install libc6:i386 libgcc1:i386 libstdc++5:i386 libstdc++6:i386

大概十几分钟的漫长等待之后,环境就安装好了

接下来是下载源码
首先请在用户目录下mkdir 任意名
cd 任意名
注:任意名为你自己起的名字,不要直接照搬啊,亲

源码下载地址的话可以通过以下网址查看
https://dev.openwrt.org/wiki/GetSource

还有这里要说明一下源码名字
以往教程里面都说backfire是稳定版,trunk是开发板
现在我在此要更正一下
1:trunk是开发板
2:稳定版的话现在大概有4个版本,backfire,AA,BB,CC
3:稳定版都是原来的TRUNK的一个稳定分支
4:backfire感觉是史前文明的产物,最新的ubuntu GCC编译器已经无法兼容backfire的代码,除非降级GCC,否则编译会出错

本人演示的代码用的是openwrt 15.05 最新的稳定版
输入源码的下载命令
git clone git://git.openwrt.org/15.05/openwrt.git 
之后
cd openwrt


接下来下载feeds更新,这是为了下载和安装让luci之类的第三方包的源码,如果不进行这步的话配置菜单是没有非op的包给你选的
./scripts/feeds update -a
安装feeds更新
./scripts/feeds install -a

接下来是
make defconfig
检测环境和添加包,之前的环境安装就是根据这个来的

然后
make menuconfig
熟悉的界面出来了的哦

第一项为目标系统,用于选择平台系列
第二项为子目标
第三项为参考模型,用于选择目标板型号
其他的话是各种配置之类的东西,一般情况下就配置下第一项和第三项,其他默认就可以出固件了

我准备编译一个703的固件,所以这么选(接下来的工作全部切换到服务器,虚拟机的速度会哭出来)

接下来要添加LUCI
路径为LUCI-collections-LUCI

其他包的话暂时就不要选吧,因为第一次编译会下载大量源码,为了速度所以包越简单越好
接下来按ESC退出再退出,最后悔提示保存,一个回车就搞定了

最后就要开始激动人心的编译啦首先
make download V=s 
下载dl库,这样可以稍微节省点时间

对于第一次编译,请不要开多线程。。。。因为不好排错
make V=99
就行
如果第一次编译成功的话,之后的编译可以充分发挥多核心的优势了
首先
ulimit -s 10240 
这个命令是防止爆栈
对make加入多线程编译支持
make V=99 -j线程数
速度比单线程快N倍

接下来是漫长的等待


编译成功,输出文件

生成的文件在bin/系列名/ 下面

那两个bin文件就是刷机文件了。。。。其中factory是原厂升OP的文件,sysupgrade为OP升级文件

另外还有就是介绍一下如何更改固件大小
编译target/linux/ar71xx/image/Makefile
查找到对应机型的定义文件

现在703是4M的,使用的压缩模式为tplink-4mlzma,我要变成8M的只需要把tplink-4mlzma改成tplink-8mlzma
CC,BB改固件大小只需要改这一个文件就行,AA的话还要把另外一个固件生成配置文件给改掉。。。具体操作方法以后补吧
 

本文转载自:https://blog.csdn.net/caichao08/article/details/83418124

shzwork
粉丝 11
博文 649
码字总数 10251
作品 0
厦门
私信 提问
OpenWrt系列教程汇总 & OpenWrt简体中文Wiki

OpenWrt系列教程汇总 OpenWrt简体中文Wiki 快速导航

AlphaJay
2011/07/26
42.5K
1
Ubuntu 12.04下编译Openwrt教程 推荐

搭建编译环境 Ubuntu x64 12.04下的命令: sudo apt-get install subversion sudo apt-get install git sudo apt-get install flex sudo apt-get install g++ sudo apt-get install gawk su......

枫影Xda
2012/10/30
9.1K
1
玩转小米路由器先从pcDuino的OpenWrt系统开始

小米路由器发布颠覆了路由器的定义,就像当初乔布斯发布没有键盘的iphone一样。玩家们都知道小米为发烧友而生,玩家都知道小米路由器使用的深度定制的OpenWrt系统,然而对于很多玩家来说,对...

simpower
2014/11/17
986
2
OpenWrt “Chaos Calmer” 15.05 发布

OpenWrt “Chaos Calmer” 15.05 发布,此版本现已提供下载:http://downloads.openwrt.org/chaos_calmer/15.05/。 相比 Barrier Breaker,值得关注的改进如下: 相比 RC 版本的改进: 更多改...

oschina
2015/09/12
16.1K
14
GCC5.3 源码编译 GO 出错

/mnt/sdb/home/tymon/openwrt/git/pandorabox/14.09/mtk/mt7621-9395ae/build_dir/toolchain-mipsel_1004kc+dsp_gcc-5.3-linaro_uClibc-1.0.12/gcc-linaro-5.3-2016.02-final/./gcc/gccgo -B......

TymonHuang
2016/05/05
786
0

没有更多内容

加载失败,请刷新页面

加载更多

Xss过滤器(Java)

问题 最近旧的系统,遇到Xss安全问题。这个系统采用用的是spring mvc的maven工程。 解决 maven依赖配置 <properties><easapi.version>2.2.0.0</easapi.version></properties><dependenci......

亚林瓜子
50分钟前
6
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
7
0
Set 和 Map

Set 1:基本概念 类数组对象, 内部元素唯一 let set = new Set([1, 2, 3, 2, 1]); console.log(set); // Set(3){ 1, 2, 3 } [...set]; // [1, 2, 3] 接收数组或迭代器对象 ...

凌兮洛
今天
1
0
PyTorch入门笔记一

张量 引入pytorch,生成一个随机的5x3张量 >>> from __future__ import print_function>>> import torch>>> x = torch.rand(5, 3)>>> print(x)tensor([[0.5555, 0.7301, 0.5655],......

仪山湖
今天
5
0
OSChina 周二乱弹 —— 开发语言和语言开发的能一样么

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌:#今日歌曲推荐# 分享The Score的单曲《Revolution》 《Revolution》- The Score 手机党少年们想听歌,请使劲儿戳(这里) @批判派...

小小编辑
今天
2.9K
19

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部