编译openwrt平台aria2的最新版
到处搜了下,知识都很零散和碎片,这里做下整理。
想要编译aria2要先编译openwrt。编译平台是debian8。
1.获取openwrt的代码
从openwrt拿到官方代码,见官方页面https://dev.openwrt.org/wiki/GetSource
想要最新的就拉trunk的代码,我之前路由刷的是15.05分支的,创建一个文件夹,拿这个分支的代码:
mkdir openwrt
cd openwrt
git clone git://git.openwrt.org/15.05/openwrt.git
2.安装编译需要的依赖
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev
3.进入源码文件夹,更新软件包
./scripts/feeds update -a
4.安装一下
./scripts/feeds install -a
5.定制固件
make menuconfig
选择平台,Target System我这里选Broadcom BCM63XX。
选择路由器型号,Target Profile我这里选华为HG556a C版。
默认是不编译aria2的,这里我们要让它编译aria2。
向下翻找到Network-->File Transfer-->aria2,按空格键选中。
默认配置不支持BT和磁力链,我们要配置一下,让我们编译出来的支持这2种下载方式。
选择aria2下面的Aria2 configuration,把里面的Enable bittorent support和Enable metalink support用空格键选中。
好,现在用方向键选Exit一路退出,最后退出时选YES保存一下
6.开始编译
make -j4 V=99
j后面的数字代表用几个线程来编译。
7.编译中遇到的坑
①因为在编译中需要联网下载一些包下来,所以编译的时候一定要联网。
②有的包联网了还不行,还要翻墙才能下载。
③有的包的下载地址用的http开头的无法下载,可以修改openwrt/include/download.mk文件,将第8行的http换成git
④第一遍编译时最好用make -j1 V=99来编译,即用一个线程来编译,以便编译出错时好定位哪里有问题。
8.编译完成
编译完成后在openwrt/bin/brcm63xx/packages/packages文件夹就会有一个aria2的ipk文件了。但是,这个版本是15.05自带的版本,我们需要最新的版本,所以接下来我们就要重新编译一下aria2.
9.下载最新的aria2代码
打开aria2的github项目,在Releases里面下载最新的代码,现在最新的是1.22.0
https://github.com/aria2/aria2/releases
我们选择下载aria2-1.22.0.tar.bz2这个版本
10.替换aria2的代码
将刚才下载的压缩包(不要解压)复制到openwrt/dl目录下,删掉原来的aria2 1.18的压缩包。
修改openwrt/feeds/packages/net/aria2/Makefile文件
将第10行的版本号修改为1.22.0
将第15行的MD5校验注释掉(前面加#号)
11.重新编译
好,现在可以重新编译了
先清除掉原来的编译结果
make package/feeds/packages/aria2/clean V=99
现在查看openwrt/bin/brcm63xx/packages/packages目录,前面编译的aria2 1.18版本已经被清除掉了。
重新编译
make package/feeds/packages/aria2/install V=99
等待一段时间,编译完成
再进到openwrt/bin/brcm63xx/packages/packages,已经可以华丽丽地看到aria2_1.22.0-1_brcm63xx.ipk出现在里面了。
大功告成。