目前在用AR9331进行开发,该CPU是MIPS。在网上下载的MIPS的linux交叉编译工具编译出来不能用,在AR9331上运行时,提示"main" 找不到,估计是交叉编译工具链有问题。最后还是自行下载源代码来编译。
openwrt的git位置是 https://github.com/openwrt/openwrt,其中有toolchain。由于编译整个工程太费时间,所以只编译toolchain.
参考文章:https://blog.csdn.net/u012349679/article/details/78182027
0. 准备工作,下载一堆库。
一次性安装所需依赖组件,输入:
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev subversion git-core gawk asciidoc libz-dev zlib1g-dev libssl-dev openssl
分步安装如下:
sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common
sudo apt-get install openssl (新加的依赖库)
1. make menuconfig,只选择Build the OpenWrt Image Builder
2. 之后进行make
中间编译比较顺利,只是由于我是从windows下载了文件,传到debian下,所以出错都是权限问题。问题有:
(1)一个目录的权限如果有x权限,会提示找不到目录。
(2)文件没有rw权限,提示permission denied.
3. 工具链位置
由于是在虚拟机运行,所以编译比较慢。至少超过了2个小时,因为早上来时编译完了。。。
编译好的toolchain在/staging_dir/toolchain-mips_24kc_gcc-7.4.0_musl目录下。当然这个目录与版本有关。