从官网下的 Aria2 放机顶盒里一直打不开,提示 aria2c: not executable: 32-bit ELF file ,再加上官方的 Aria2 有连接数限制。所以就想自己编译个试试。
  机顶盒是 S912 的,Win10 的 WSL 挺方便的,直接装 aarch64-linux-gnu 编译器静态编译。

1
2
3
4
5
6
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu pkg-config dpkg-dev bzip2 make libxml2-dev libcppunit-dev autoconf automake autotools-dev autopoint libtool
# 因为脚本写有些东西要放在编译器目录里,所以再
sudo chown $UID -R /usr/aarch64-linux-gnu
# 库目录的权限
sudo mkdir -p /opt/aria2-arm
sudo chown $UID /opt/aria2-arm

有人写了静态交叉编译脚本,改改就能用了。

修改的部分

1
2
3
4
5
6
7
8
9
10
# 注释掉 TOOL_BIN_DIR 和 PATH
ARCH="aarch64"
HOST="aarch64-linux-gnu"
PREFIX="/opt/aria2-arm/build_libs"
LOCAL_DIR="/opt/aria2-arm/build_libs"
# march 和 mtune 可以在盒子里用 `gcc -c -Q -march=native --help=target | grep -E 'march=|mtune='` 获取。
CFLAGS="-march=armv8-a+crypto+crc -mtune=cortex-a53"
DEST="/usr/aarch64-linux-gnu"

# 把 linux-armv4 改成 linux-aarch64 。

aria2-arm-rbpi-gnu-linux-cross-config里面加上去除 Aria2 最大连接数限制的补丁。

aria2-arm-rbpi-gnu-linux-cross-config
1
2
wget https://aur.archlinux.org/cgit/aur.git/plain/aria2-fast.patch?h=aria2-fast -O aria2-fast.patch
patch -Np1 < aria2-fast.patch

执行完脚本再 make、strip 就完了。
不过编译完之后放机顶盒里面还是打不开,又换别的编译器编译了几次,还是不行,这就很神奇。
到最后本萌妹惊讶地发现,盒子上面的 aria2c 和本地的大小不一样……
最后检查了 FileZilla 设置才发现传输类型是自动选择,改成二进制再传一遍,
就可以跑了……
就可以跑了……
就可以跑了……
当时我就这个表情。这个表情
我浪费了这么多时间就是因为这个!?