openwrf编译路由器

英文原版 编译教程 http://wiki.openwrt.org/doc/howto/build == openwrt编译基本教程 OpenWrt是一个高度模块化、高度自动化的嵌入式linux发行版,其编译和安装过程比普通的linux发行版而言,要简单太多了。如果您是新手,您那恐惧的心大可放到肚子里,呵呵。对于新手来说最麻烦的恐怕是安装开发环境需要的软件了。 最基本条件 1.PC一台,性能强点,性能好编译得就快。linux推荐安装ubuntu 8.04中文版(或者suse)和fedora 11(对于初学者而言,最好是装在虚拟机如VM里,可省去很多麻烦。如何在VM里安装linux,您可多google或者baidu) 2.宽带一条,需要速度好点,因为有很多软件包是网络下载后安装。 3.耐心和时间。 编译环境准备(安装linux发行版和软件包) 1.安装好ubuntu8.04中文版本或者fedora 9或者11,搞定网络连接。 (注意,人曾报告Fedora 14可能存有bug导致无法编译openwrt,如果您用这个版本的Fedora,且编译失败,请升级。) 以非root用户登陆,打开“应用程序----附件----终端”。如果您已经安装好linux, 那么此步骤请略去。 2.如果您选择ubuntu, 请执行这个命令以安装编译依赖包: sudo apt-get update 然后再输这个: sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev 如您择安装fedora11或者fedora9 Fedora 11 or 9: # yum install autoconf binutils bison bzip2 flex gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel 由于fedora 安装包本来就很全面,所以需另外安装的东西较少。所以一般情况下,推荐安装fedora 11。对于初学者而言,最方便的方法是在VM上安装linux。 suse环境编译与ubuntu类似,所以如果您要以suse为开发环境,那么您参考ubuntu的安装步骤即可。 如果你能阅读英文,那么请参考 http://wiki.openwrt.org/doc/howto/buildroot, OpenWrt英文论坛2006年文章:Building OpenWrt? Kamikaze from source https://forum.openwrt.org/viewtopic.php?id=9180 这里更详细权威的说明。 4.获取OpenWrt源代码和安装包,更新 svn checkout svn://svn.openwrt.org/openwrt/trunk cd trunk ./scripts/feeds update -a ./scripts/feeds install -a

  1. svn checkout svn://svn.openwrt.org/openwrt/trunk
  2. cd trunk 3../scripts/feeds update -a 4../scripts/feeds install -a 如果想编译制作dreambox就这样: svn co svn://svn.openwrt.org.cn/dreambox/trunk openwrt-dreambox cd openwrt-dreambox ./scripts/feeds update -a ./scripts/feeds install -a make package/symlinks

==Update sources(想更新源码?执行这个!建议每次编译前更新!)== svn update

5.配置编译选项,运行 make menuconfig 即可打开menuconfig Similar to the Linux kernel config, almost every option has three choices, y / m / n which are represented as follows: 这个配置界面跟linux内核的配置界面基本是一回事儿,几乎每一项都有3个选择--“Y”、“M”、“N”,各自用途如下 ? (pressing y) This package will be included in the firmware image *(键入Y以后……)这个软件将被直接加入到你的目标固件 ? (pressing m) This package will be compiled (to be installed with opkg after Flashing OpenWrt?) but the package will not be included in the firmware-image *(键入M以后……)这个软件包将会被编译,但不会被自动安装。如果需要它的时候,可以再用OPKG软件包管理器进行安装 ? (pressing n) This package will not be compiled *(键入N以后……)这个软件包将不会被编译,也不会被安装 When you save your configuration the file ~/openwrt/trunk/.config will be created according to your configuration. 设置完后,您的设置会保存到.config文件中。 默认就是brcm-2.4平台,模块前面选项有3种: *:表示该模块直接编译到核心中 M:该模块以被核心支持,可以后再安装 空白:不支持该模块 具体模块的起什么作用需要多google. 6.编译选项配置保存后,开始编译 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。 更详细的信息建议您参考 http://downloads.openwrt.org/kamikaze/docs/openwrt.html 应该是当前最新最权威的文档 第一次编译由于要下载大量的软件包,慢慢的等吧,快则半小时,慢则2,3小时. 如果下载过慢,建议您中断编译过程,然后用迅雷去主动下载,放到./dl目录下。一个加快速度的小技巧: 本站小编已经将将一些常用的软件包打包成dl.tar,放在http://ul.to/2y8a2w, 下载后用tar xvf dl.tar(在windows下用winrar打开即可,然后你用ftp或者samba之类传到Linux PC上),将解包出来的东东直接放到./dl目录下,相必会大大加快初次安装、编译的速度。同样在http://ul.to/fasgus上可下载linux-2.36.30.10.tar.bz2,当然您也可以用迅雷之类的工具来下。 7.编译好的文件在当前目录的bin文件夹下。 如果是brcm-2.4 ls bin/brcm-2.4/ 就可以看到很多熟悉的文件了。 写得比较简短,错误疏漏指出请高手斧正

二 获取OpenWrt-Dreambox源代码 OpenWrt-Dreambox目前仍处于trunk开发版,还没发布稳定版,同时含有针对嵌入式开发板的SUN分支。 ?1 获取OpenWrt-Dreambox Dreambox旧版SVN代码库 ?$svn co svn://svn.openwrt.org.cn/dreambox/branches/dreambox-EOL openwrt-dreambox

? 2 获取!Dreambox trunk开发版SVN代码库 ?$ svn co svn://svn.openwrt.org.cn/dreambox/trunk openwrt-pandorabox

? 3 获取OpenWrt-Dreambox 针对嵌入式开发板的OpenOSOM分支SVN代码库 ?$ svn co svn://svn.openwrt.org.cn/dreambox/branches/openosom openwrt-dreambox

编译OpenWrt-DreamBox 在完成准备工作和使用SVN下载DreamBox源代码之后就可以开始编译工作了~ ?编译OpenWrt-DreamBox一般需要以下五个步骤: 1.准备工作:搭建编译环境 2.通过Subversion命令获取DreamBox源代码 3.更新下载和安装扩展软件包,即package feeds 4.用menuconfig来配置目标平台和软件包 5.最后make开始编译固件 ?假设你的工作目录为openwrt-dreambox,进入openwrt-dreambox目录: ?$ cd openwrt-dreambox/

? OpenWrt-DreamBox会不停地更新,为了保证源代码的最新可以使用svn up更新: ?$ svn update

  1. 添加扩展软件包(Add packages from extra feeds) 虽然基本系统可以build出Image,但生成的Image缺少很多应用程序,需要添加额外的扩展软件包: $ cp feeds.conf.default feeds.conf

然后编辑feeds.conf文件,前面加注释符号#表示该软件源不会被下载和安装。需要安装何种软件源就去掉相应的#: src-svn packages svn://svn.openwrt.org.cn/dreambox/feeds/packages_10.03.2 src-svn qpe svn://svn.openwrt.org.cn/dreambox/feeds/qpe src-svn device svn://svn.openwrt.org.cn/dreambox/feeds/device src-svn dreambox_packages svn://svn.openwrt.org.cn/dreambox/feeds/dreambox_packages src-svn luci_cn svn://svn.openwrt.org.cn/dreambox/feeds/luci/trunk #src-svn luci http://svn.luci.subsignal.org/luci/tags/0.10.0/contrib/package src-git luci git://nbd.name/luci.git

#src-svn xwrt http://x-wrt.googlecode.com/svn/branches/backfire_10.03/package #src-svn phone svn://svn.openwrt.org/openwrt/feeds/phone #src-svn efl svn://svn.openwrt.org/openwrt/feeds/efl #src-svn desktop svn://svn.openwrt.org/openwrt/feeds/desktop #src-svn xfce svn://svn.openwrt.org/openwrt/feeds/xfce #src-link custom /usr/src/openwrt/custom-feed 请注意,这个设置并不表示这些应用程序包会被编译,而只是在后面使用menuconfig命令时会获取这些包的描述信息(OpenWrt-Makefiles)。 现在,更新下载这些包,并安装它们到package/feeds/目录: $ ./scripts/feeds update -a $ ./scripts/feeds install -a

? 更多详情参看:扩展软件包package feeds详细说明

  1. 配置DreamBox(Configure target and packages) 下一步是检查编译环境,若可进行编译则生成默认配置: $ make defconfig

若defconfig回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可,不难的,细心点就行。 现在开始配置OpenWrt-DreamBox,选择你需要目标平台,以及选择将要编译和添加进固件的软件包。运行命令: $ make menuconfig

这个配置界面跟Linux内核的配置界面基本差不多,几乎每一项都有3个选择Y/M/N: ?Y:选择Y,该软件将被编译,并且加入到你的目标固件里; ?M:选择M,该软件包将会被编译,但不会被放入固件里。在需要它的时候,可以用OPKG软件包管理器进行安装; ?N:选择N,该软件包将不会被编译,也不会被安装进固件。 ?方向键是移动光标 ?回车键是确认 ?空格键是择,可以代替Y/M/N键的使用 比如要为TP-LINK TL-MR3420编译DreamBox: ? 1 选择CPU型号 Target System ---> (X) Atheros AR71xx/AR7240/AR913x

? 2 选择路由型号 Target Profile ---> (X) TP-LINK TL-MR3420 v1

? 3 软件包就使用默认的,或者可以根据需要添加。 1.添加luci LuCI ->Collections -> <*> luci

  1. 添加luci的中文语言包 LuCI ->Translations -> <*> luci-i18n-chinese

  2. 添加DDNS LuCI ->Applications -> <*>luci-app-ddns

  3. 添加USB挂载 Base system -> <*>block-mount

  4. 添加硬盘格式支持 Kernel modules -> Filesystems -> <*> kmod-fs-ext4

  5. 添加UTF8编码 Kernel modules -> Native Language Support -> <*> kmod-nls-utf8

  6. 添加USB扩展支持 Kernel modules -> USB Support -> <*> kmod-usb-storage-extras.

  7. 添加自动挂载工具 Utilities -> Filesystem -> <*> badblocks

  8. 添加复位键支持 Utilities -> <*> restorefactory

  9. 添加一键开关无线 Utilities -> <*> wifitoggle

? 如果需要单独配置OpenWrt-DreamBox的linux kernel,可以使用下面命令配置: ?$ make kernel_menuconfig

这和普通的linux kernel的make menuconfig没有什么区别,可以根据需求自行配置。 ?如无特殊情况,直接使用默认的内核配置即可!

  1. 编译DreamBox(Build your DreamBox image) 完成menuconfig配置后,退出保存,开始编译DreamBox: $ make

? 编译过程可能会很久(一边下载源代码一边编译),请确认你有足够的磁盘空间(应至少保证能够有大约4G以上的空间)。

另外,你可以使用: $ make -j 3 V=99

这个命令会使用双核CPU进行编译,并且输出编译过程中的信息,这样你可以比较清楚的看到编译情况或出错情况: ?-j3:具有多核CPU处理器的PC进行编译,可使用-j参数加速编译,用法为-j ?V=99:表示输出详细的debug信息 ?make world:表示编译所有 如只想清除/编译某个模块,您可以做如下类似操作: $ make package/qos/clean $ make package/qos/compile $ make package/qos/install

  1. 烧写固件(Flash) ? 编译结束后,生成的固件存放在bin目录下,其中包含了kernel和rootfs的镜像文件,以及众多可以使用OPKG工具安装的.ipk安装包。 ?接下了就是往flash中烧写固件,每个硬件设备不尽相同,不在详述。 择编译LUCI软件包,登录到管理界面

由睿江云运维人员提供,想了解更多,请登陆www.eflycloud.com

转载于:https://my.oschina.net/u/3363053/blog/1539267

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值