记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

openwrt编译基本教程

openwrt编译基本教程

其实和重新编译linux核心差不多,对于新手来说最麻烦的恐怕是安装开发环境需要的软件了。
条件: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
安装命令:

  1. 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.系统其他软件更新

  1. sudo apt-get update
复制代码

更新后重新启动。
4.获取基本安装包,更新

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

5.配置编译选项

  1. make menuconfig
复制代码

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

  1. 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/ 就可以看到很多熟悉的文件了。

参考资料
  如何给 Openwrt 提交补丁
  https://dev.openwrt.org/wiki/SubmittingPatches

  Openwrt 源代码的下载方式
  https://dev.openwrt.org/wiki/GetSource

  构造编译环境
  http://wiki.openwrt.org/doc/howto/buildroot

  构造编译环境-老的文档
  http://downloads.openwrt.org/docs/buildroot-documentation.html

  本文赖以生存的基础-官方wiki中的编译教程,我翻译了编译一文中的小部分。
  http://wiki.openwrt.org/doc/howto/build

  下文有详细的编译方面说明
  http://downloads.openwrt.org/kamikaze/docs/openwrt.html

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):