条件:
1.PC一台,性能强点,性能好编译得就快。安装Ubuntu 8.04中文版。(也可以装在虚拟机里)
2.宽带一条,需要速度好点,因为有很多软件包是网络下载后安装。
3.耐心和时间。
编译流程:
1.安装好Ubuntu8.04中文版本,搞定网络连接。
以非Root用户登陆,打开“应用程序----附件----终端”。
2.开发环境安装。
需要的软件有Gcc G++ Binutils Patch Bzip2 Flex Bison Make Autoconf Gettext Texinfo Unzip Sharutils Subversion Libncurses5-Dev Ncurses-Term Zlib1g-Dev
安装命令:
Sudo Apt-Get Install Gcc G++ Binutils Patch Bzip2 Flex Bison Make Autoconf Gettext Texinfo Unzip Sharutils Subversion Libncurses5-Dev Ncurses-Term Zlib1g-Dev
复制代码
3.系统其他软件更新
Sudo Apt-Get Update
复制代码
更新后重新启动。
4.获取基本安装包,更新
Svn Checkout Svn://Svn.Openwrt.Org/Openwrt/Trunk
Cd Trunk
./Scripts/Feeds Update -A
./Scripts/Feeds Install -A
复制代码
5.配置编译选项
Make Menuconfig
复制代码
默认就是Brcm-2.4平台,模块前面选项有3种:
*:表示该模块直接编译到核心中
M:该模块以被核心支持,可以后再安装
空白:不支持该模块
具体模块的起什么作用需要多Google.
6.编译选项配置保存后,开始编译
Make V=99
复制代码
慢慢的等吧,快则半小时,慢则2,3小时.
7.编译好的文件在当前目录的Bin文件夹下。
如果是Brcm-2.4
Ls Bin/Brcm-2.4/
就可以看到很多熟悉的文件了。
如何编译Openwrt - 简化版
以非 Root 用户运行以下命令
Aptitude Update
Aptitude Upgrade
Aptitude Dist-Upgrade(在必要时)
Aptitude Install 编译需要用到的软件包(详见下面的说明)
Mkdir /Home/Yourname/Openwrt
Cd /Home/Yourname/Openwrt
Svn Co Svn://Svn.Openwrt.Org/Openwrt/Branches/Backfire
./Backfire/Scripts/Feeds Update -A
./Backfire/Scripts/Feeds Install -A
Cd /Home/Yourname/Openwrt/Backfire
Svn Up
Make Menuconfig
Make
编译用软件包说明
如果是32 Bit (X86) 系统安装以下包,下面有些包依赖非常多,如果不熟悉Debian系统的话,建议一个一个安装以观察情况,其中当前的 Testing 发行版是没有 Jikes 和 Sdcc-Nf 两个软件包;
Autoconf Asciidoc Binutils Build-Essential Bzip2 Fastjar Flex G++ Gcc Gawk Bison Libgtk2.0-Dev
Libncurses5-Dev Libz-Dev Intltool Jikes Zlib1g-Dev Make Ncurses-Dev Libssl-Dev Patch Perl-Modules
Rsync Ruby Sdcc Unzip Wget Sdcc-Nf Gettext Xsltproc Zlib1g-Dev Subversion
使用 64 Bit (X86_64) 系统的不多说,请参考下面的命令
# Apt-Get Install Build-Essential Asciidoc Autoconf Binutils Bison Bzip2
Flex Gawk Gettext Libncurses5-Dev Libz-Dev Patch Unzip Zlib1g-Dev
Ia32-Libs Lib32gcc1 Libc6-Dev-I386
这里有一个对应的依赖包清单,详见下面的地址。 Http://Wiki.Openwrt.Org/Doc/Howt ... Responding.Packages
Openwrt的源代码分支说明
这里向来自 Windows 的朋友简单解释一下 Openwrt 源码的分支情况。我们知道 Windows 也分 XP/VISTA/7 等等版本,假定现在最新的 Windows 版本是 XP,那么我们可以简单地替代成 Openwrt 中的 Backfire ,其实 XP 也只是一个代号,而非真正的版本号,在 Cmd 命令符下可以用 Ver 来看到你所使用的 Windows 版本号,那么这个 Ver 命令看到的版本号就相当于我们的 Backfire 10.03 了。
假如日后我们的 Openwrt 发行了什么 Frontfire Allfire 等等的代号,那么你可以想像成 VISTA/7/8/9 了。
好了言归正传,其实 Openwrt 有几个分支,比如现在的 Backfire,Kamikaze,还有早期的 Whiterussian,那么 SVN 是什么呢,SVN是一个代码版本控制系统,用来给程序员用的,类似的还有 GIT ,这也是 Linux 内核所用的版本控制系统,还有 CVS,剩下我没说的或者说错的,自行Ggoole去吧。
通过使用 SVN 可以得到不同分支的 Openwrt 代码
Backfire 10.03
Svn Co Svn://Svn.Openwrt.Org/Openwrt/Branches/Backfire
Kamikaze 8.09
Svn Co Svn://Svn.Openwrt.Org/Openwrt/Branches/8.09
Kamikaze 7.09 (已经放弃了)
Svn Co Svn://Svn.Openwrt.Org/Openwrt/Tags/Kamikaze_7.09
开发版分支(俗称 Trunk)
Svn Co Svn://Svn.Openwrt.Org/Openwrt/Trunk/
使用 "Tagged" 版本的代码
Svn Co Svn://Svn.Openwrt.Org/Openwrt/Tags/Backfire_10.03
Kamikaze 分支的软件包
Kamikaze 仅包含一些基本的软件包,有两种方法可以得到额外的软件包,一是 Make Package/Symlinks ,二是 Svn Co Svn://Svn.Openwrt.Org/Openwrt/Packages
如果是使用 GIT 则用以下命令获得代码
Git://Nbd.Name/Openwrt.Git (克隆自 Trunk)
Git://Nbd.Name/Packages.Git (克隆自 Packages)
Make Menuconfig 说明
默认就是Brcm-2.4平台,模块前面选项有3种:
*:表示该模块直接编译到核心中
M:该模块以被核心支持,可以后再安装
空白:不支持该模块
具体模块的起什么作用需要多Google
Make 命令简单说明
Make V=99
V=99表示输出详细的Debug信息
Make World
表示编译所有
Make J=2 V=99
如是多核CPU,加J=2 选项理论上能加快编译速度
Make -J 2 V=99可加快编译速度(不推荐使用)
只清除某个模块
Make Package/Qos/Clean
只编译某个模块
Make Package/Qos/Clean
Make Package/Qos/Compile
Make Package/Qos/Install
Make V=99 | Tee Compile_v1.0.0.Log
混合 Tee 命令将编译信息放到Compile_v1.0.0.Log文件中方便查看。
X86的编译要点
考虑到X86平台使用的特点,以及 OpenWrt 本身,可参考以下要点
1. 编译所有文件系统支持,包括Ext2/Ext3/Ext4,还有NTFS,甚至是LVM;
2. 加入一个文本编辑器,例如Vim或者Nano,因为日常使用中需要用文本编辑器修改各种配置文件;
3. 加入所有关于无线网卡的驱动,模块,各种支持程序,
4. 一些其他常见应用--蓝牙、加密、PGP、SSL、SSH、VPN、USB支持、3G上网卡、
5. 编译时要到网上下载相关源码,所以可以日后下载的包尽量不选择编译;
6. 编译好的文件在当前目录的Bin文件夹下,如果是Brcm-2.4,则 Ls Bin/Brcm-2.4/ 就可以看到很多熟悉的文件了。 |