使用 OpenWrt SDK 编译 Aria2 最新版本
前
Aria2Gee 插件的 Aria2 版本是1.18,而 Aria2 的最新版本已经到了 1.31.0 。而很多朋友反馈给我希望更新 Aria2 的版本,折腾了一整天搞定,所以才有了这篇手札。
过程
- 需要一台运行 Linux 的计算机,本次使用的是 ubuntu 16.04 LTS.
- 获取 OpenWrt SDK
使用最新的 branch (Chaos Calmer)
git clone git://git.openwrt.org/15.05/openwrt.git
- 安装依赖
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev
- 更新与安装feeds
cd openwrt ./scripts/feeds update -a ./scripts/feeds install -a
- 修改 Aria2 的 Makefile
文件位于 SDK 目录下 feeds/packages/net/aria2/Makefile
修改三个地方:
A. 版本号。这个按照 github 上的最新版本号修改,当前最新版本为1.31.0。
B. 更新的 URL 修改为 ```https://github.com/aria2/aria2/releases/download/release-$(PKG_VERSION)/```
C. PKG_MD5SUM。这里在最前面加 ```#```
修改后如下图:
- 定制固件
A. 开始定制
make menuconfig
因为编译极路由软件所以红框的部分选择 MT7620 based boards和 MT 7620a EVB。如下图。
B. 选择编译 Aria2。
向下找到Network-->File Transfer-->aria2,按空格键选中,选项变为<M>
。如下图C. 默认配置不支持BT和磁力链,需要配置一下。
选择aria2下面的 Aria2 configuration,把里面的Enable bittorent support和Enable metalink support用空格键选中。如下图
D. 保存设置。
一直按 ESC 键,知道下图界面。选择 Yes 敲回车即可。 - 编译
编译开始前,需要修改
openwrt/include/download.mk
文件的第八行,将 http 修改为 git 。编译过程中需要保持联网,并保持网络处于全局翻墙状态。执行
make -j4 V=99
开始编译,-j4 代表使用几个线程来编译,视自己电脑配置酌情修改。 - 编译完成
如果顺利解决了所有编译遇到的错误,编译后的程序位于
bin/ramips/packages/packages
- 当 Aria2 更新了,重新编译
A. 清理旧的编译版本
B. 修改 MakeFile
修改文件feeds/packages/net/aria2/Makefile
中的PKG_VERSION
修改为最新的版本号,如:PKG_VERSION:=1.32.0
C. 重新编译
一些坑
- 编译过程中如果出现错误,请将线程数设定为 1 ,重新编译以便定位错误。
- 大部分错误都与网络有关,请细心排查是否需要的程序均下载完整。
- 新版本的 Aria2 需要 C++ 11 新特性支持,编译器需要 gcc-4.8 ,所以旧版本的 OpenWrt 的编译器会编译出错。
- 这个你可能需要 hostapd-2015-03-25.tar.bz2,下载之后复制到 dl目录下。
评论框君很顽皮,需要科学上网才能看到哦!~
关注微信公众号(MarIxs)也能联系到我哦!