Openwrt开发笔记(1)—— 开发环境

news/2024/11/15 0:35:01/

OpenWrt简介

OpenWrt 是一个嵌入式设备的 Linux 发行版,以 GPL 许可协议发行

其主要特点有如下几个:

● 代码里不含第三方开源包,只包含开源包地址链接。在编译的时候下载。
● 编译时自动下载源代码、打补丁来满足指定平台要求,并编译。还可以修改
Makefile 来下载最新的软件包。
● 使用 LuCI 作为最终用户管理界面。LuCI 以 Apache 许可协议发布 Web 管理功能
代码。
● UCI 通用配置管理方法。
● 通过脚本来调用 iptables 来实现防火墙功能,配置保存在 UCI 文件中。
● 开放和可扩展的 OPKG 格式安装升级包。

为什么使用OpenWrt来作为开发路由器的平台,我的理解是:开放,易用,开发者众多。

OpenWrt整体框架

在这里插入图片描述
LUCI就是我们常说的Web配置页;TR069是一种远程管理服务,主要用于CPE等设备,可以网上了解下CWMP。 SNMP也是类似的服务,逐渐呗TR069替代。

其他部分后面随着学习深入我们再逐渐了解。

代码获取

OpenWrt有自己的官网,可以根据手里面的设备去官网获取,不同的硬件厂家也不断上传自己的代码和分支。 本人手里面是MI4设备,代码地址:https://github.com/openwrt/openwrt.git,可以自己使用git拉取。

官网地址:https://openwrt.org/

在这里插入图片描述
我们拉取下来没有这么多文件夹,部分文件夹是开始编译后才生成的。
scripts:存放一些脚本
feeds:存放一些第三方代码包或者代码地址
package:存放一些常用的软件包,是最常用的文件夹
dl:编译之后根据配置功能下载的软件包存放地址,避免每次编译都更新代码
build_dir:编译中间文件夹,将参与编译的模块代码根据mk文件拷贝或解压到此文件夹后再进行编译
bin:编译生成的文件在此文件夹下

编译环境配置

OpenWrt使用feed包管理额外的代码SDK,即可以运行在系统中的一些应用包。
在代码拉取完毕之后,我们会先更新一下所有包的链接信息,用来匹配mk文件的修改。

./scripts/feeds update -a

所有的链接被更新完毕之后,进行初步的安装

./scripts/feeds install -a

安装完毕之后,我们运行make menuconfig 来进行一个初步的功能选择和芯片配置。

make menuconfig

在这里插入图片描述MI4的配置按照图中选择配置,然后退出保存。

make defconfig

进行编译检查,如果编译环境不完整,可以按照提示进行完善。linux安装软件包这里不再赘述。

最后进行编译

make V=s -j4

V=s或者99 是编译输出的信息等级
-j4是参与编译的内核熟练,视电脑配置自己决定。

生成的包

编译完成后会生成一些bin文件:openwrt\bin\targets\ramips\mt7621文件夹下
在这里插入图片描述
主要关注:
openwrt-ramips-mt7621-xiaomi_mi-router-4-initramfs-kernel.bin
此文件可以用来再breed中进行升级,刷入kernel,再开机时会从RAM启动一个临时的web界面,用于空板升级。
openwrt-ramips-mt7621-xiaomi_mi-router-4-squashfs-sysupgrade.bin
此文件可以用于已经刷入对应系统之后的版本升级。


http://www.ppmy.cn/news/419379.html

相关文章

Android Studio 调试的时候出现 Access denied finding property “ro.serialno“

我虚拟机和物理机都安装了Android Studio,发现虚拟机中调试不是那么方便,然后想使用物理机开发,使用的小米MI4 系统是安卓11,在物理机中一直提示:libc:Access denied finding property “ro.serialno”,物理…

实现记事本的新建,保存,打开,另存为等功能

/** java实现记事本功能 */ import java.awt.*; import java.awt.event.*; import java.io.*; public class Java {private Frame fr;private TextArea ta;private MenuBar bar;private Menu m;private MenuItem mi1,mi2,mi3,mi4,mi5;private Font font;private Dialog dia;pri…

umi4使用

umi4使用小tips umi4控权 umi4提供了控权的方法,但是大多数博客都说直接创建access.ts文件就可以使用,而官网文档又加了这么一段配置 但如果直接配置,可能会报错,项目会直接停掉。 【解决办法】: 出现这种问题可能是因为没有引…

米4用linux刷机救转,小米Mi4(小米4 电信4G版)手机快速救砖,线刷教程分享,小白轻松救活手机...

小米Mi4(小米4 电信4G版)手机变砖了怎么办?对于经常刷机的安卓玩家来说,碰到刷机失败导致小米Mi4(小米4 电信4G版)手机无法启动甚至无法进入recovery都是在所难免的事,这个时候我们就需要用到线刷大师了,它能轻松实现小米Mi4(小米4 电信4G版…

qml之Repeater

简介 Repeater用于创建大量类似项。与其他视图类型一样,Repeater有一个模型和一个委托:对于模型中的每一项,委托都在一个上下文中实例化。Repeater通常用于在定位器类型(如Row或Column)中,以直观地定位由R…

使用Java实现简单记事本(打开,保存,另存为,改字体,改字体大小)

最近在看Sindar的Java课的作业,遇到了Java的GUI编程,每次遇到GUI这种就很头疼,C的,MatLab的,都不是很会用。弄了差不多一天吧,因为安装的是jdk12而无法运行applet,重装了jdk1.8才行,…

LineageOS 14.1(CM14.1)的快速下载与编译

代码的快速下载 Cyanogenmod OS或者说后来的Lineage OS的代码都是分为两个部分: cm团队自己或者社区开发的代码: 主要是适配设备, 例如vendor相关,放在github上面aosp代码: google的AOSP代码, 作为base 因为本地有一份AOSP的Mirror,所以这部分AOSP代码就不需要再从google去下载…

Win10 Mobile For MI4体验

在去年3月召开的微软硬件创新工程产业峰会(WinHEC)上,微软确认和小米达成了战略合作关系。如今一年过去了,Win10 Mobile For MI4(4G)的体验如何呢?今天,我就把手上小米4刷成了Win10 Mobile来体验一番。 Win…