☰ 天涼好個秋.

使用 OpenWrt SDK 编译 Aria2 最新版本

3784 阅 0 评 IT手札

前

Aria2Gee 插件的 Aria2 版本是1.18,而 Aria2 的最新版本已经到了 1.31.0 。而很多朋友反馈给我希望更新 Aria2 的版本,折腾了一整天搞定,所以才有了这篇手札。

过程

  1. 需要一台运行 Linux 的计算机,本次使用的是 ubuntu 16.04 LTS.
  2. 获取 OpenWrt SDK

    官方地址
    使用最新的 branch (Chaos Calmer)

    git clone git://git.openwrt.org/15.05/openwrt.git

  3. 安装依赖
    sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev
  4. 更新与安装feeds
    cd openwrt
    ./scripts/feeds update -a
    ./scripts/feeds install -a
  5. 修改 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。这里在最前面加 ```#```

修改后如下图:

  1. 定制固件

    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 敲回车即可。

  2. 编译

    编译开始前,需要修改 openwrt/include/download.mk文件的第八行,将 http 修改为 git 。


    编译过程中需要保持联网,并保持网络处于全局翻墙状态。执行

    make -j4 V=99

    开始编译,-j4 代表使用几个线程来编译,视自己电脑配置酌情修改。

  3. 编译完成

    如果顺利解决了所有编译遇到的错误,编译后的程序位于 bin/ramips/packages/packages

  4. 当 Aria2 更新了,重新编译

    A. 清理旧的编译版本
    make package/feeds/packages/aria2/clean V=99
    B. 修改 MakeFile
    修改文件 feeds/packages/net/aria2/Makefile中的PKG_VERSION修改为最新的版本号,如:PKG_VERSION:=1.32.0
    C. 重新编译
    make package/feeds/packages/aria2/install V=99

一些坑

  1. 编译过程中如果出现错误,请将线程数设定为 1 ,重新编译以便定位错误。
  2. 大部分错误都与网络有关,请细心排查是否需要的程序均下载完整。
  3. 新版本的 Aria2 需要 C++ 11 新特性支持,编译器需要 gcc-4.8 ,所以旧版本的 OpenWrt 的编译器会编译出错。
  4. 这个你可能需要 hostapd-2015-03-25.tar.bz2,下载之后复制到 dl目录下。
EOF
▲