我正在尝试在 Ubuntu 18.04 中安装工具链来为我的路由器编译自定义固件。README 指出要运行,./configure
但当我这样做时,它返回:configure: error: cannot find install-sh, install.sh, or shtool in config "."/config
。
这是针对华硕 DSL-AC88U 的,我从以下网站下载了源代码http://www.asus.com/uk/Networking/DSL-AC88U/HelpDesk_Download/其中包含路由器和工具链的源代码。
autoreconf -i
现在运行后./configure
,但我运行make
并得到:
make[1]: Entering directory '/home/katana/Downloads/GPL_DSL_AC88U_v11006_build591/crosstools-arm-gcc-4.6-linux-3.4-uclibc-0.9.32-binutils-2.21-NPTL.Rel1.2'
CC loaders/dlopen.lo ./libtool: ./libtool: Is a directory Makefile:694: recipe for target 'loaders/dlopen.lo' failed make[1]: ***
[loaders/dlopen.lo] Error 126 make[1]: Leaving directory '/home/katana/Downloads/GPL_DSL_AC88U_v11006_build591/crosstools-arm-gcc-4.6-linux-3.4-uclibc-0.9.32-binutils-2.21-NPTL.Rel1.2'
Makefile:502: recipe for target 'all' failed
make: *** [all] Error 2
答案1
首先需要安装构建工具:
sudo apt-get install build-essential git ncurses-dev subversion zlib1g-dev m4 automake autoconf
并且根本不要提取他们的工具链/opt
。它不会起作用。它需要较新版本的m4
和其他一些东西。该固件基于 OpenWRT,因此它可以自行编译工具链。
然后提取DSL-AC88U_FW_V1_10_06_Build591_GPL_official.tar.bz2
档案并进入固件目录
cd ~/Downloads/GPL_DSL_AC88U_v11006_build591/DSL-AC88U_FW_V1_10_06_Build591_GPL_official
# download package with broken link
wget http://lmde-mirror.gwendallebihan.net/latest/pool/main/m/mklibs/mklibs_0.1.34.tar.gz -O dl/mklibs_0.1.34.tar.gz
并使用以下命令编译固件和工具链
make V=s
笔记:
- 我的 18.04.2 LTS 机器上的编译失败,我没有获得任何工厂/系统升级映像。
提取工具链
/opt
没有帮助:cd / sudo tar -xf ~/Downloads/GPL_DSL_AC88U_v11006_build591/DSL-AC88U_FW_V1_10_06_Build591_GPL_official/crosstools-arm-gcc-4.6-linux-3.4-uclibc-0.9.32-binutils-2.21-NPTL.Rel1.2.tar.bz2
并结束于
autom4te:需要 GNU m4 1.4 或更高版本:/opt/toolchains/crosstools-arm-gcc-4.6-linux-3.4-uclibc-0.9.32-binutils-2.21-NPTL/usr/bin/m4
aclocal-1.11:autom4te 失败,退出状态:1
Makefile:950:目标“aclocal.m4”的配方失败