OpenWrt编译

首先,你需要一台电脑,安装一个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的话还要把另外一个固件生成配置文件给改掉。。。具体操作方法以后补吧

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值