分类: 电脑技术
作者: admin

OpenWrt编译方法

编译环境准备(安装linux发行版和软件包)

1.安装好ubuntu 或者fedora,建议在VMWARE虚拟机上安装。

以非root用户登陆,打开“应用程序----附件----终端”。如果您已经安装好linux, 那么此步骤请略去。

2.如果您选择ubuntu, 那么ubuntu开发环境需要的软件有:
sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev

 

然后
sudo apt-get update

如您选择安装fedora,那么fedora开发环境需要的软件有:
# yum install autoconf binutils bison bzip2 flex gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel
由于fedora 安装包本来就很全面,所以需另外安装的东西较少。所以一般情况下,推荐安装fedora 11以上版本。

这里有更详细权威的说明:
http://wiki.openwrt.org/doc/howto/buildroot,

OpenWrt英文论坛2006年文章:Building OpenWrt Kamikaze from source
https://forum.openwrt.org/viewtopic.php?id=9180

3.获取OpenWrt源代码和安装包,更新

1. svn checkout svn://svn.openwrt.org/openwrt/trunk
2. cd trunk
3. ./scripts/feeds update -a
4. ./scripts/feeds install -a

4.配置编译选项
make menuconfig

默认就是brcm-2.4平台,模块前面选项有3种:
*:表示该模块直接编译到核心中
M:该模块以被核心支持,可以后再安装
空白:不支持该模块
具体模块的起什么作用需要多google.

5.编译选项配置保存后,开始编译,
make V=99

V=99表示输出详细的debug信息

make world表示编译所有

如您的PC是多核CPU,那么加j=2 选项理论上能加快编译速度。如make -j 2 V=99可加快编译速度(不推荐使用)

如您只想清除/编译某个模块,您可以做如下类似操作:
make package/qos/clean
make package/qos/compile
make package/qos/install

第一次编译要2到3小时,bin目录下会有编译好的文件。

6. 打补丁举例,当然在有必要的时候
a、重新打补丁
svn revert target/linux/brcm63xx/image/Makefile
打补丁:patch -p0 -i imagetag.patch
编译:make V=99
b、16M flash补丁放入openwrt
patch文件下载地址 http://www.openwrt.org.cn/bbs/viewthread.php?tid=19&extra=
打补丁:patch -p0 -i imagetag.patch
编译:make V=99