博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenWRT开发环境
阅读量:2238 次
发布时间:2019-05-09

本文共 2280 字,大约阅读时间需要 7 分钟。

本文主要简单介绍了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目录结构,其中第一行是原始目录,第二行是编译过程中生成的目录。

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

你可能感兴趣的文章
集成测试(一)—— 使用PHP页面请求Spring项目的Java接口数据
查看>>
使用Maven构建的简单的单模块SSM项目
查看>>
Intellij IDEA使用(十四)—— 在IDEA中创建包(package)的问题
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>
composer install或composer update 或 composer require phpoffice/phpexcel 失败解决办法
查看>>
TP5.1项目从windows的Apache服务迁移到linux的Nginx服务需要注意几点。
查看>>
win10安装软件 打开时报错 找不到 msvcp120.dll
查看>>
PHPunit+Xdebug代码覆盖率以及遇到的问题汇总
查看>>
PHPUnit安装及使用
查看>>