OpenWRT开发环境

本文主要简单介绍了Openwrt开发所涉及的一些概念。

一、OpenWRT是什么

OpenWRT可以看做是linux的嵌入式发行版,它精简了linux的内核,保留了linux强大的网络功能和部分必要的驱动,此外它还使用了独特的opkg安装包技术,使用户安装软件更加方便。OpenWRT主要用于路由器中,现今主流的路由器固件有三种dd-wrttomatoopenwrt,你可以在淘宝网上搜索“openwrt+路由器就可以知道哪些路由器可以使用openwrt固件了。

 

二、如何获得OpenWRT源码

OpenWRT作为开源操作系统,其源码可以通过gitsvn、离线下载等方式来获得。

Ø 使用git获取源码:

 1、安装gitcore apt-get install gitcore

2、使用git获取源码:gitclone git://git.openwrt.org/openwrt.git

Ø 使用svn获取源码:

1、安装Subversionapt-getinstall subversion

2、使用svn获取源码:svnco svn://svn.openwrt.org/openwrt/trunk

Ø 离线下载:

从网上搜索网友提供的源码包,或从开发板提供商那里索要源码。

 

三、OpenWRT源码目录结构

下图是openwrt目录结构,其中第一行是原始目录,第二行是编译过程中生成的目录。

OpenWRT开发环境
OpenWRT开发环境_第1张图片

·        tools - 编译时需要一些工具, tools里包含了获取和编译这些工具的命令。

·        toolchain - 包含一些命令去获取kernel headers, C library,compiler

·        target - 各平台在这个目录里定义了firmwarekernel的编译过程。

·        package - 包含针对各个软件包的Makefileopenwrt定义了一套Makefile模板,各软件参照这个模板定义了自己的信息,如软件包的版本、下载地址、编译方式、安装地址等。

·        include - openwrtMakefile都存放在这里。

·        scripts - 一些perl脚本,用于软件包管理。

·        dl - 软件包下载后都放到这个目录里

·        build_dir - 软件包都解压到build_dir/里,然后在此编译

·        staging_dir - 最终安装目录。toolchain被安装到这里,rootfs也会放到这里。

·        feeds -OpenWrt环境所需要的软件包套件

·        bin - 编译完成之后,firmware和各ipk会放到此目录下。

 

四、Openwrtfeeds

FeedsOpenWrt环境所需要的软件包套件,只有安装feeds包之后,在后面的makemenuconfig时,才可以对相关配置进行勾选。重要的feeds有:‘packages’一些额外的基础路由器特性软件,‘LuCI’OpenWrt默认的GUI‘Xwrt’另一种可选的GUI界面

Feeds软件包套件的获得需要能够连接互联网,在Openwrt源码根路径下执行两个脚本“ ./scripts/feedsupdate -a”和“ ./scripts/feedsinstall -a”即可下载相应feeds包。在下载之前可以通过查看’feeds.conf.default’文件,来检查哪些文件需要包含在环境中。

 

五、Openwrt的编译

Ø openwrt根目录下输入:makemenuconfig可对内核进行配置。

OpenWRT开发环境
OpenWRT开发环境_第2张图片

Ø openwrt根目录下输入:makeV=99可进行内核的编译,成功后在bin文件夹里有编译好的固件。

Ø 内核编译过程中需要联网下载一些源代码,包括Linux内核源码、uboot源码、busybox源码等,下载的源码包放在“dl/”目录下,下载完成后解压到“build_dir/”目录下进行编译。

Ø 固件(fireware)由kernel和rootfs两部分组成,openwrt目前rootfs是使用的squashfs文件系统,编译收尾阶段通过Makefile脚本合并uImage和squashfs以生成固件。

 

六、Openwrt Imagebuilder

Openwrt的镜像生成器,一般内核镜像需要编译openwrt内核源码来获得,但Openwrt让开发人员可以通过OpenwrtImagebuilder编译出所需内核镜像。Imagebuilder的制作是通过在openwrt内核配置时选上“Buildthe OpenWrt Image Builder”,编译内核后在”bin/xxx/”目录下生成相应的Imagebuilder

 

七、Openwrt SDK

Openwrt的软件开发套件,开发者可通过OpenwrtSDK进行应用程序开发,SDK中包含了应用程序开发所需要的常用工具、交叉编译器、库等。Openwrt SDK的制作是通过在openwrt内核配置时选上“Buildthe OpenWrt SDK”,编译内核后在”bin/xxx/”目录下生成相应的OpenwrtSDK


八、Openwrt Toolchain

Openwrt的工具链,里面有针对不同CPU体系架构的交叉编译环境。想要获得相应平台的的toolchain,可在openwrt内核配置时选上“Packagethe OpenWrt-base Toolchain”,编译内核后在”bin/xxx/”目录下生成相应的Toolchain


你可能感兴趣的:(OpenWRT)