OpenWRT开发环境

OpenWRT是基于Linux的嵌入式操作系统,常用于路由器固件。本文介绍了如何通过git、svn或离线方式获取源码,详细解析了OpenWRT的目录结构,强调了feeds在配置中的重要性,并详细阐述了编译过程,包括makemenuconfig、make V=99以及Imagebuilder和SDK的生成。此外,还提及了OpenWRT的工具链和SDK对于应用程序开发的意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要简单介绍了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开发环境

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

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

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

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

·        include - openwrt的Makefile都存放在这里。

·        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根目录下输入: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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值