从源码编译OPENWRT
OpenWrt官方站点(链接)
要编译OpenWrt首先要搞清楚它复杂的版本命名规则,可以看官方文档(链接)。从文档中,我们可以了解到目前的最新稳定版是Attitude Adjustment,SVN版本号为36088,发布于2013年中,而上一个稳定版是backfire 10.03.1,发布于2011年底。
选好版本后,可以按照官方文档Easy Build中的步骤操作:
1. 安装需要的库
2. 下载源代码,选择最新稳定版Attitude Adjustment
3. 获取并编辑编译配置文件(注意,这个文件是和平台版本相关的,例如想编译x86平台,下载的配置文件在这里,文件名config.x86_generic,配置文件定义了组件开关,因此可以去掉不需要的组件)。也可以通过图形界面配置生成,参考这里的Image Configuration小节。
4. 安装feeds
5. 运行configure(这里可能需要安装各种缺失的包)。如果通过图形界面生成配置则不需要运行这步。
6. make(对于64bit系统需要安装32bit的库),编译时需要联网,官网文档make V=99和make V=s作用一样,都是输出编译信息
错误1:gets编译错误:
error: ‘gets’ undeclared here (not in a function)
则需要找到相应的stdio.in.h文件,删除
_GL_WARN_ON_USE (gets, “gets is a security hole – use fgets instead”)
然后重新编译即可
错误2:hotplug2无法从svn拉取
原因是hotplug2的svn地址已经失效,新地址在googlecode(被墙),还好官网有其源码。修改package/hotplug2 目录下的makefile文件: