是已编译原版openwrt好了的映像文件(後缀名bin或trx、trx2)此映像文件可从Openwrt官方网站的
下载页面中轻松获取到,连接地址为 OpenWrt官方网站这些编译原版openwrt好的映像文件是基于默认的配置設置,且只针对受支持的平台或设备的因此,为什么要打造一个自己的映像文件理由有以下四点:
您想拥有一个个性化的配置OpenWrt(彰显个性,在朋友圈子里显摆显摆开个玩笑);
您想在实验性的平台上测试OpenWrt;
您参与测试或参与开发OpenWrt的工作;
或者,最简單的目的就是为了保持自己的Openwrt为最新版本;
若想实现上述目的其实很简单,按下述文字即可成功编译原版openwrt出一个您的Openwrt来
在开始编译原版openwrtOpenwrt之前需要您做些准备工作;与其他编译原版openwrt过程一样,类似的编译原版openwrt工具和编译原版openwrt环境是必不可少的:
一个构建OpenWrt映像嘚系统平台简单说就是准备一个操作系统(比如Ubuntu、Debian等);
确保安装了所需的依赖关系库, (在debian系统中就是安装各种需要的软件包)
首先 开机登陆到支持编译原版openwrtOpenwrt的操作系统(废话了)。实体机或者虚拟机(Vmware 或者 Qemu)里的操作系统都行这里推荐使用Linux系统。 bsd和mac osx系统也可鉯编但不推荐,且未验证是否可编译原版openwrt成功下文假定您使用的是Debian操作系统,使用 apt-get 来管理包. 替代的选择是 Ubuntu (分支 Kubuntu,
第二步, 就是安装所需要的各种软件包, 包括编译原版openwrt器,解压工具,特定的库等. 这些工作可以简单的通过键入以下命令 (通常需要root 或者是 sudo 权限)以root权限安装下列软件包(可能并不完整,会有提示提示缺少即装就可以了):
32位(x86)请执行下列命令:
64位(x86_64)请执行下列命令(多装了哪些库或软件包呢?请您仔細看一看哦):
参考 本列表中 所列的编译原版openwrt环境所需要软件包或库
某些依赖的为库或软件包也许操作系统中已经安装过,此时apt-get會作出提示(提示您忽略或重新安装的)别紧张,放轻松些编译原版openwrtOpenwrt不会像编译原版openwrtDD-WRT那样难的(至少本人是体会到了编译原版openwrtDD-WRT的難)。
最后下载一份完整的 Openwrt 源码到编译原版openwrt环境中关于Openwrt的源代码下载,途径有二一是通过 svn ,一是通过 git建议使用 svn ,因为Openwrt主要以 svn 来維护Openwrt系统的版本另外,请注意Openwrt中不同的分支版本一个是用得较多的开发快照,俗称 trunk二是稳定版,俗称 backfire
若你想通过svn下载源代码,伱需安装 Subversion。Subversion,或称SVN, 是OpenWrt的project中用来控制版本的系统,它非常类似的 CVS的界面和使用条款 执行下述命令即可安装SVN,很容易的:
Subversion安装完毕通过SVN命囹可获取得到一份OpenWrt纯净源代码。您还得创建一个目录以便存放获取得到的Openwrt源代码要获取源代码你还得输入subversion命令来获取 (svn里这种操作称之为'check out') 。命令很简单的继续看下去就能见到了,别着急耐心点儿。
编译原版openwrt专属于您的设备的特定Openwrt固件以一下五个步骤:
通过Subversion命令獲得源代码;
创建一个默认配置以检查编译原版openwrt环境是否搭建好了 (假如需要的话);
用Menuconfig来配置即将编译原版openwrt生成的固件映像文件的配置项;
最后开始编译原版openwrt固件;
最后下载一份完整的OpenWrt源代码。你可选择:
下载稳定发行版或
下载开发版 (俗称"trunk"版)。
截止本文时, Openwrt公开发行的稳定版为 OpenWrt 10.03 "backfire"此版本是最稳定的,但也许不包括最新更新的补丁或最新编写的出的新功能
下述代码即举例說明了通过svn从brandkfire获得backfire源代码(此版本意思是从trunk分支的补丁也在backfire版本中了,即包含修复补丁):
注解: 上述svn命令将在当前目录创建一个 OpenWrt/backfire/ 子目錄此目录包含此命令获取到的源代码。
您也可以通过下述命令下载不含修复补丁的backfire的原版源码:
使用开发版源代码
當前的开发版本分支(trunk)已包含最新的实验补丁。此分支或许还突破了Openwrt原来所不支持的硬件设备的限制哦惊喜的同时也有风险存在。因此編译原版openwrttrunk版,慎之~
因Openwrt的源代码随时都会变动故此命令将确保您所获取得到的源码的最新性。下述假设您用的是backfire版本的源码:
'svn up' 命令用于更新SVN上更新了但本地尚未更新的这部分源代码(本人实践证明此命令会将本地源码与SVN上的源码先比较,若SVN有更新才会下载更新嘚部分很实用的一个命令)。如果未指定目标路径则此命令将更新当前目录及当前目录的子目录内的源码。
Feeds即为包含到你的OpenWrt环境Φ的额外软件包的索引之类的(feed译名很多,莫衷一是至2008年底为止,还没有一个十分通用而备受认可的中文译名;所以此文当中我们用渶文feed来称呼) 最主要的Feeds有以下三个:
下载完feeds之后, (为编译原版openwrtOpenWrt的recipies额外的预定义包) 您可以检查哪些feeds要包括在内编辑在你的编译原版openwrt環境的根目录下的'feeds.conf.default'文件。
然后使用下列命令开始下载(注:可能你需要先运行cd trunk进入trunk目录才能成功执行下列命令):
在此之后下載的软件包需要安装。亦即指的下边的命令啦若路过下边的install命令则后续make menuconfig将无法成功执行!(注:可能你需要先运行cd trunk进入trunk目录才能成功执荇下列命令):
只需编辑Feeds的配置文件或运行更新命令,即可很方便地更新或添加新的实验性的packages到源码中并编译原版openwrt到OpenWrt固件去
注意:请老坛友及旧的新闻组成员们注意了,这一步取代了创建符号链接symlinks的老办法哦
诸如此类源码,你得定期更新Feeds。 通过如上相同的命囹:
注意:若你清楚地知道你不需添加新的packages到menuconfig中去那么你可在更新Feeds时跳过这一步。
下一步是检查编译原版openwrt环境若可进行编译原版openwrt則生成默认配置:
若defconfig回显提示缺少软件包或编译原版openwrt库等依赖,则按提示安装所缺软件包或库等即可不难的,细心点就行
menuconfig是┅个基于文本的工具,它处理选择的目标(需要还是不需要)、编译原版openwrt生成软件包(openwrt下是IPKG格式)以及内核选项(编译原版openwrt成模块还是内核)等等
在你离开并保存配置文件(默认都是.config)后将自动配置依赖关系,让你可以着手编译原版openwrt更新的固件
大众可通过'menuconfig'这一簡单的图形化的配置环境,非常轻松地编译原版openwrt出专属您本人的OpenWrt固件
可以用'menuconfig',以开发的意图来编译原版openwrtOpenWrt的固件为自己(个人)创慥一个结构简单但是功能强大的环境。(上句实在难翻译只能意译。并且也请大家都学习下编译原版openwrtOP固件让以OP固件盈利的人丢掉那肮髒的饭碗!)
Menuconfig或多或少有些难以说明的地方,即使是最专业的配置也可以寻求帮助并加以解决。 需要你指定何种目标平台要包含嘚package软件包和内核模块等均需要你指定,配置标准的过程中会包括修改:
目标平台(即路由器何种架构BCM呢还是AR均可选择)
选择要包含的package软件包
假如你不需要PPP,你可到Network菜单下取消对它的选择,以便编译原版openwrt时不包含此组件
Menuconfig用法: 确保这些组件包是以 '*'星号标记而鈈是 'M'标记。
如果你是以星号 '*'标记该组件包, 则该组件包将编译原版openwrt进最终生成的OpenWrt固件中
如果你仅以 'M'标记该组件包, 则该组件包将不會编译原版openwrt进最终生成的OpenWrt固件中。
万事具备只欠东风,通过下面简单的make命令来编译原版openwrt:
具有多核CPU处理器的电脑进行编译原版openwrt,使鼡下述参数可令编译原版openwrt过程加速 常规用法为 <您cpu处理器的数目 + 1> – 例如使用3进程来编译原版openwrt (即双核CPU), 命令及参数如下:
若你在这个系统内編译原版openwrtOpenWrt的同时还处理其他,可以让闲置的I/O及CPU来在后台编译原版openwrt固件 (双核CPU):
编译原版openwrt简单的基本的软件包
当你为OpenWrt开发或打包软件包,編译原版openwrt简单的基本的软件包可以很轻易地编译原版openwrt该软件包 (例如 软件包cups):
一个在Feeds里的软件包大约是这样子的:
如果因某种不知道嘚原因而编译原版openwrt失败,下面有种简单的方法来得知编译原版openwrt到底错在哪里了:
上述编译原版openwrt命令意为:V99参数,将出错信息保存在build.log生成輸出完整详细的副本(with stdout piped to stderr),只有在屏幕上显示的错误
编译原版openwrt成功后所生成的固件文件位于bin目录下,可用如下命令查看:
编译原版openwrtOpneWrt时你可能需要一个清洁干净的编译原版openwrt环境 以下操作有利用编译原版openwrt工作:
清洁trunk/ 目录,在编译原版openwrt过程中使用“make clean”命令即可 此命令将删除bin目录和build_dir目录下的所有文件及文件夹。