本来只是想建立交叉编译环境编译一些自己的代码放在wr703n路由器上运行,但是现在官方的 tool-chain 解压修改PATH之后编译的时候发现并不能用,后来在把问题发到openwrt编译群中求助大神,得到的结论是:下载的交叉编译链和电脑的架构不同,不能使用。也就是说只能下载openWRT的源码,自己进行配置并生成SDK才可以,没办法只好开始和了编译openWRT源码的历程
首先下载 openwrt源码
openwrt的源码实施了版本控制,可以使用git 或者 svn进行克隆
git::
git clone git://git.openwrt.org/14.07/openwrt.git
svn:
svn co svn://svn.openwrt.org/openwrt/trunk/本人用的是git进行下载的,首先需要安装git
yum install git
然后使用上边的clone 命令进行下载源代码,网速好的话 一会儿就下载好了,笔者受网速限制,第六次尝试下载的时候终于下载完整了。
然后可以切换到源码目录 make menuconfig
此时会报一大堆的 需要解决的依赖,一个个解决就OK 了,此处简单介绍一下笔者受困的几个依赖
1、g++ 用yum 进行安装比较方便,但是 g++ 包的名字叫 gcc-c++ 因此安装的时候需要用 yum install gcc-c++命令
2、zlib静态库,此依赖比较麻烦需要上网自己下载
wget (由于此源码还在不断更新,因此版本号可能有些出入,当出现404 页面找不到时可以通过浏览器登录zlib.net/ 查看当前的版本号)
下载完成后 进行解压安装。
#tar -zxvf zlib-1.2.8.tar.gz #解压
#cd zlib-1.2.8
#./config
#make
#make install
3、openssl library development 此依赖的包名是 openssl-devel 所以需要用yum install openssl-devel 进行安装
所有依赖都解决完后,再添加一个普通用户(原则上openwrt 不允许使用root用户进行编译).
make menuconfig
将 有SDK字样的行 标记 退出,保存配置文件,make 开始编译。
编译过程需要联网,编译速度根据网速而定。
编译会生成 sdk ,安装sdk配置完后就可以用来编译打包自己的ipk软件包了。
Ubuntu 使用Openwrt SDK交叉编译ipk包过程图文全纪录