OpenWrt社区聚集了大量的嵌入式开发人员,您的问题,能在社区上获得最大的帮助.注意,这并非是\
OpenWrt早已被确立为在同类产品中最好的固件解决方案。它的性能远远超过其他嵌入式解决方案。稳定,可扩展,简单易用这是OpenWrt开发者明确的目标。他们继续扩大发展,确保OpenWrt解决方案框架。
1.4为什么使用OpenWrt?
GNU为我们提供了很多免费的软件,我们可以用一个很低的价钱购买像WRT54G的硬件,做成一个小型的Linux系统,现在OpenWrt已经提供了近千个多个已编译好的软件,而且数量还在不断增加,而OpenWrtSDK更是简化了嵌入软件开发的工序。
为什么学习OpenWrt?
你不需要对MIPS处理器有很深入的了解,也不用懂得如何去设计一个ARM或MIPS处理器专用的linux内核,因为这些在网上已有人为你做好,你只需懂得如何安装和使用就行了,不过你也可以去
http://www.linux-mips.org找到相关的资料。如果你对Linux系统有一定的认识,并想学习或接触嵌入式Linux的话,OpenWrt很适合你,你将学会一些无线路由器的基本知识,以及一般嵌入式Linux的开发过程.
但凡做过或者了解过嵌入式开发的人,都知道无论是ARM,PowerPC或MIPS的处理器,都必需经过以下的开发过程:
1.创建Linux交叉编译环境2.建立Bootloader
3.移植Linux内核并构建嵌入式设备的驱动程序4.编译并安装应用软件5.建立Rootfs(根文件系统)6调试
通过openwrt快速构建一个应用平台,openwrt从交叉编译器,到linux内核,再到文件系统甚至bootloader都整合在了一起,形成了一个SDK环境。
随着Linux的成熟,大量不同的处理器内核和应用软件相继出现,当你熟悉这些嵚入式Linux的基本开发流程后,你不再局限于MIPS处理器和无线路由器,你可以尝试在其它处理器,或者非无线路由器的系统移植嵌入式Linux,定制合适自己的应用软件,并建立一个完整的嵌入式产品。
Chapter2:构建属于你自己的OpenWrt系统
·第一部分直接编译OpenWrtForARM
首先我们首选的OpenWrt编译环境是Ubuntu,并且应尽量选择更高版本的。这里我们使用Ubuntu11.04作为编译平台,此平台必须要能稳定地接入网络。我们推荐您使用以下或更高的硬件配置:CPU:双核1GHZ或更高,建议采用双核2GHZ以上的电脑RAM:512M以上可用空间硬盘:至少4GB可用空间。显卡:集显即可
软件要求:
Gcc>=4.1Binutils>=2.1
BashShellorDashShell
我们不建议您使用虚拟机,请使用原生的linux或者MACOSX编译。不建议使用root用户进行编译操作!2.1配置编译开发环境
我们以最新的Ubuntu11.04系统作为例,其他发行版操作基本雷同.打开一个终端,执行以下命令:
#sudoapt-getinstallbuild-essentialasciidocbinutilsbzip2gawkgettextgitlibncurses5-devlibz-devpatchunzipzlib1g-devsubversiongit-core
注意,如果您是使用64位系统的,请执行这个命令:
#sudoapt-getinstallbuild-essentialasciidocbinutilsbzip2gawkgettextgitlibncurses5-devlibz-devpatchunzipzlib1g-devia32-libslib32gcc1libc6-dev-i386subversiongit-core
2.2编译OpenWrt开发环境
我们开始从本项目的GoogleProjectSVN服务器下载源码,键入以下命令($不包括在内):$cd~
$svncosvncosvn://svn.openwrt.org.cn/dreambox/backfireopenwrt-arm
稍等上十几分钟,这样就把源码下载到主目录的trunk子目录里面了。然后进入到OpenWrt源代码目录:
$cdopenwrt-arm$cdopenwrt接着升级软件包源码:
$./scripts/feedsupdate–a$./scripts/feedsinstall–a
下图:
输入以下命令开始预设置编译参数:$makemenuconfig
然后就会出现上面这样的界面,您在Targetsystem选择S3C24xx,若您的板子是6410的CPU则选择s3c64xx,Subtarget根据您的板子型号选择mini2440、mini6410,TargetProfile选择Mini2440(Full)或mini6410(Full),即可载入一个最简配置,当然您可以再进行其他的定制,例如加点软件包进去一起编译等,根据需求添加所需要的软件包。