OpenWRT环境的搭建,编译。

来源:互联网 发布:生死狙击刷金币软件 编辑:程序博客网 时间:2024/06/05 20:55

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,搞定收集连接。
以非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
如您选择安装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。
因为ubuntu底本就是基于suse, 所以若是您要以suse为开辟景象,那么您参考ubuntu的安装步调即可。
若是你能浏览英文,那么请参考
http://wiki.openwrt.org/doc/howto/buildroot,
OpenWrt英文论坛2006年文章:Building OpenWrt Kamikaze source 
https://forum.openwrt.org/viewtopic.php?id=9180
这里有更具体权势巨子的申明。
4.获取OpenWrt源代码和安装包,更新 
1. svn checkout svn://svn.openwrt.org/openwrt/trunk (我用的是此版本)


    PS:wgethttp://downloads.openwrt.org/backfire/10.03/backfire_10.03_source.tar.bz2(今朝稳定版本,建议)
2. 搜检设备景象

[super@Ubuntu openwrt]¥cd ~

[super@Ubuntu ~]¥cp -r /usr/src/test/trunk ./

[super@Ubuntu ~]¥cd trunk/

[super@Ubuntu:~/openwrt/trunk]¥ ls


3.feeds

Feeds是OpenWrt景象所须要的软件包套件。最首要的feeds有:

‘packages’一些额外的根蒂根基路由器特点软件

‘LuCI’OpenWrt默认的GUI

‘Xwrt’另一种可选的GUI界面

须要可以或许连接互联网。

鄙人载之前可以经由过程查看’feeds.conf.default’文件,来搜检哪些文件须要包含在景象中。

若是更新了feeds的设备文件,须要添加新的软件包用于生成体系。只需进行反复操纵:

[super@Ubuntu:~/openwrt/trunk]¥./scripts/feeds update -a

[super@Ubuntu:~/openwrt/trunk]¥./scripts/feeds install -a


 4.进行设备

        编译过程应用的交叉编译,交叉编译生成的SDK以及image等文件的类型取决于开辟景象、应用硬件、以及源码版本。所以要对本身的景象进行懂得,才干进行正确的设备。我在设备过程中,就碰到了这个题目,我的硬件是brcm47xx,在第一次编译的时辰,选择地是Target System (Broadcom BCM947xx/953xx),最后生成的包无法在router上安装,版本不匹配。第二次安装时,选择了Target System (Broadcom BCM947xx/953xx[2.4]),安装成功,我的板子可能只支撑linux2.4的内核。(设备型号是Linksys Wrt54gs v3.0) (2011.05.01添加:其实Linksys Wrt54gs v3.0是支撑Linux 2.6版本的,Target System 选择 Broadcom BCM947xx/953xx,编译后也是可以用的,这周末因为项目须要改某个软件,每次批改代码后,都得从头编译一下固件,经过往返编译了十来次,都可以应用。别的。内核版本进级之后,无线驱动改成了mac802.11,而非以前的wl,认为wl.o这个专门的库只在linux2.4中才用到。)

[super@Ubuntu:~/openwrt/trunk]¥make defconfig

[super@Ubuntu:~/openwrt/trunk]¥make prereq

[super@Ubuntu:~/openwrt/trunk]¥make menuconfig


              


经由过程文本对话框进行选项设备,最首要的设备项有:


Target system(目标体系类型)

Package ion(软件包选择)

Build system settings  (编译体系设置)

Kernel modules  (内核模块)

[*]默示:这个包裹选中编译,并安装在firmware中;

[M]默示:这个软件包选中编译,但并不安装在firmware中。

在退出Menuconfig的时,会提示是否保存设备。(保存的文件为根目录下的.config)


在此我只对target system进行了选择;勾选了Advanced configuration option和Build the OpenWrt SDK选项。

下面对某些项进行说明

1.选择CPU型号
 Target System—–Atheros AR71xx/AR7240/AR913x/AR934x
 2.选择路由型号
 Target Profile—-TP-LINK TL-WR703
 3.添加luci
 LuCI—>Collections—– <*> luci
 4.添加luci的中文语言包
 LuCI—>Translations—- <*> luci-i18n-chinese
 5.添加DDNS
 LuCI—>Applications —> <*>luci-app-ddns.
6.添加USB挂载
Base system —> <*>block-mount
 7.添加硬盘格式支持
 Kernel modules —> Filesystems —> <*> kmod-fs-ext4
 8.添加UTF8编码
Kernel modules —> Native Language Support —> <*> kmod-nls-utf8
 9.添加USB扩展支持
Kernel modules —> USB Support —> <*> kmod-usb-storage-extras.
 10.添加自动挂载工具
 Utilities —> Filesystem —> <*> badblocks
开始编译make V=99,最后会得到一个4M的带中文luci的TL-WR703N固件。

5. 编译

(1)一般景象,应用一个简单的号令:

[super@Ubuntu:~/openwrt/trunkmake V=99 (一般只用这个命令进行编译就行)

(2)在多核处理惩罚器体系上为进步速度,可应用(例如用3核处理惩罚器):

[super@Ubuntu:~/openwrt/trunk]¥ make –j 3

(3)在后台进行编译,应用余暇的I/O资料和CPU机能,可应用(例如应用双核处理惩罚器)

[super@Ubuntu:~/openwrt/trunk]¥ onice -c 3 nice -n 20 make -j 2

(4)编译一个零丁的软件包(例如在cups软件包):

[super@Ubuntu:~/openwrt/trunk]¥make package/cups/compile V=99 (对于自己增加的或者某个组件进行编译就行,后一篇会用到)

(5)若是特别原因须要解析编译报错信息:

[super@Ubuntu:~/openwrt/trunk]¥ make V=99 2>&1 |tee build.log |grep -i error

申明:将编译的所有输出信息保存在build.log中,将error信息打印在屏幕上。

(6)一个错杂指令的应用

[super@Ubuntu:~/openwrt/trunk]¥ ionice -c 3 nice -n 20 make -j 2 V=99 CONFIG_DEBUG_SECTION_MISMATCH=y 2>&1 \|tee build.log |egrep -i ""(warn|error)""

申明:将编译的所有输出信息保存在build.log中,将error和warning信息打印在屏幕上。编译过程应用双核CPU,占用后台资料。

6.生成镜像(Image)地位

新生成的镜像会默认放在新建的一个bin目次下。例如:/bin/brcm-2.4/packages

文件说明

  a: Openwrt-ramips-rt305x-dir-615-h1-squashfs-sysupgrade.bin:这个就是我要的镜像文件

  b:   OpenWrt-SDK-ramips-for-linux-i686-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2:这个就是你在make menuconfig是选择Build the OpenWrt SDK生成的软件包,下一篇文章会介绍。

  c:OpenWrt-Toolchain-ramips-for-mipsel_24kec+dsp-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2:这个好理解吧,就是你的交叉编译工具链,看文件名就知道了吧(target system是ramips,host system是mipsel_24kec+dsp,使用的编译工具以及库是gcc-4.6-linaro_uClibc-0.9.33.2。)

将编译好的镜像做个备份,例如备份到/目次下:

[openwrt@localhost trunk]¥ cp bin /

好了到此就编译成镜像了可以烧写到你的开发板当中去了。




0 0
原创粉丝点击