将 curl 交叉编译到 OpenWrt 上
背景
实验室使用网络需使用个人账号密码在特定网页上进行验证,在 OpenWrt 上可以使用 curl
进行验证.
但使用 opkg install curl
安装的 curl
需要使用 64bit libc 的 API, 而目前使用的架构 (mt7621) 是 32 位的架构,因此需要使用交叉编译将 curl
编译到目标架构上.
Steps
- 下载交叉编译工具链
wget https://archive.openwrt.org/snapshots/trunk/ramips/mt7621/OpenWrt-Toolchain-ramips-mt7621_gcc-5.3.0_musl-1.1.16.Linux-x86_64.tar.bz2
tar -zxvf OpenWrt-Toolchain-ramips-mt7621_gcc-5.3.0_musl-1.1.16.Linux-x86_64.tar.bz2
- 设置环境变量:
export PATH=$HOME/tmp/openwrt-toolchain/toolchain-mipsel_1004kc+dsp_gcc-5.3.0_musl-1.1.16/bin:$PATH
export STAGING_DIR=$HOME/tmp/openwrt-toolchain
- 下载
curl
源码,编译:
wget https://curl.se/download/curl-7.85.0.tar.gz
tar -zxvf curl-7.85.0.tar.gz
cd curl-7.85.0
LDFLAGS="-static" ./configure --build=x86_64-unknown-linux-gnu -host=mipsel-openwrt-linux-musl --without-ssl --without-zlib --prefix=$PWD/install --disable-shared --enable-static
make && make install
curl
的可执行文件将会被放到 install/bin
, 可通过 file
查看其格式,将其拷贝到路由器上执行即可.