迅为i.MX6Q开发板Openwrt 文件系统构建

2024-01-09 21:30

本文主要是介绍迅为i.MX6Q开发板Openwrt 文件系统构建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

什么是 Openwrt

配套资料在网盘资料的“iTOP-i.MX6 系列开发板(6Q,6D,6QPLUS)\4_iTOP-i.MX6 开发板资料汇总(不含光盘资料)\12_iTOP-i.MX6 开发板 buildroot 系统 OTA 升级” Cisco/Linksys 在 2003 年发布了 WRT54G 这款无线路由器,同年有人发现它的 IOS 是基于 Linux 的,然而Linux 是基于 GPL 许可证发布的,按照该许可证 Cisco 应该把 WRT54G 的 IOS 的源代码公开。

2003 年 3 月,Cisco 迫于公众压力公开了 WRT54G 的源代码。此后就有了一些基于 Cisco 源码的第三方路由器固件,OpenWrt 就 是其中的一个。

OpenWrt 的特点:

可扩展性好,可以在线安装您所需要的功能,目前有 1000 多个功能包可选;

是一台完整的 Linux 工作站,文件系统可读可写,便于开发者学习和实践;

为什么要使用软路由?

首先家里面的路由器功能有限,很多功能不支持,就比如外网然后家中普通路由器支持一定的功能,但是性能有限,开启复杂功能之后原本路由器的职责又承担不了了,会出现丢包断流等现象,这时候需要别的硬件来完成高层的工作,减轻路由器的负担,保证家庭网络的运行的流畅稳定。

我们一般家庭的网络拓扑图,如下图所示:

 

根据上述图片,我们已经知道了家庭网络的大致结构,那么我们现在就需要在中间设置一个代理,把本来从用户走向路由器的流量拦下来,经过这个代理的“处理”之后,再直接给家庭路由器发送出去即可,

这样家庭路由器只需要关注传统的路由交换功能,而不需要处理传输层或者应用层的数据了,这就保证了家庭路由器的低负载和网络功能的增强。于是,我们提出来的一种新的网络结构,其物理结构如下:

 

实际的数据流向如下图所示:

 

叫旁路由的原因其实就是因为他就挂在一旁啦,是不是很形象呢?

3 openwrt 的编译

本章节参考 lede 大神的教程进行编译,具体链接为 https://github.com/coolsnowwolf/lede

下面是几点注意事项:

1.不要用 root 用户进行编译!!!

2.请全程使用

3.默认登陆 IP 192.168.1.1 密码 password

对于第一次编译,迅为已经编译完成,存放路径为“

iTOP-i.MX6 系列开发板(6Q,6D,6QPLUS)\4_iTOP-i.MX6开发板资料汇总(不含光盘资料)\12_iTOP-i.MX6 开发板 openwrt 文件系统\03_编译好的源码”。

编译环境为 Ubuntu 64bit,推荐 Ubuntu 20.04 LTS x64 首先进入终端,输入命令,使用以下命令搭建编译环境

 

编译环境搭完成后,使用命令 git clone https://github.com/coolsnowwolf/lede,对 lede 大神的源码进行克隆拉取,拉取完成会在当前目录下产生名字为 lede 的文件夹如下图所示:

 

或者将迅为已经下载好的源码拷贝到 ubuntu 虚拟机上,使用命令对其解压缩也也可以实现,源码存放 路径为“iTOP-i.MX6 系列开发板(6Q,6D,6QPLUS)\4_iTOP-i.MX6 开发板资料汇总(不含光盘资料) \12_iTOP-i.MX6 开发板 openwrt 文件系统\01_编译所需源码”

然后使用命令“cd lede”进入该文件夹,

作者这里为已经编译完成的,具体文件可能会有区别,拉取成功即可。

使用下列命令进行更新扩展:

./scripts/feeds update -a

扩展时间略长请耐心等待,扩展过程如下图所示:

 

更新扩展完成之后继续输入命令

./scripts/feeds install -a

进行安装扩展。安装完成之后我们的环境就搭建完成了。

安装扩展完成后。输入命令“make menuconfig”,进入可视化界面进行配置,如下图所示:

 

点击回车进入首选项 Target System,如下图所示:

 

对相应的平台架构进行选择,我们选择 i.MX 6,

选择后,功能页面如下图所示:

 

其他的地方不需要修改,通过 save 进行保存,

通过 Exit 进行退出,

回到源码目录后,使用命令

make -j8 download V=s

下载 dl 库,

输入命令

make -j1 V=s

即可开始编译你要的固件了。

 编译时间取决于自身机器的性能,大约五个小时左右。编译完成如下图所示:

 

4 openwrt 文件系统的烧写

编译完成后,使用命令

cd bin/targets/imx6/generic

进入 generic 目录,在这里我们只用最后生成的文件系统,如下图所示:

 

然后拷贝该文件系统到任意目录(看个人,自己怎样方便怎样来),作者拷贝到了/home/topeet/rootfs 目录下,

使用命令

tar -vxf openwrt-imx6-default-rootfs.tar.gz

对其进行解压缩,

然后使用命令

rm -rf openwrt-imx6-default-rootfs.tar.gz

移除原压缩文件,如下图所示:

 

然后使用命令

tar -zcvf rootfs.tgz bin etc mnt proc root sys usr www dev lib overlay rom sbin tmp var

对文件进行打包处理,压缩成我们能烧写的文件格式。

如下图所示,可以看到我们所需要的压缩文件已经生成了

 

将该压缩文件烧写进我们的开发板。

烧写完成之后正常上电启动,进入 uboot 模式,来设置启动方式,由于我们烧写的是 Linux 系统,所以

我们使用以下命令来设置 Linux 启动

setenv bootsystem qt

使用命令来保存。

saveenv

最后使用命令重启,开发板重启就可以正常启动了,正常启动如下图所示:

 

至此我们的文件系统就烧写成功了。

这篇关于迅为i.MX6Q开发板Openwrt 文件系统构建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/588494

相关文章

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

一文教你Java如何快速构建项目骨架

《一文教你Java如何快速构建项目骨架》在Java项目开发过程中,构建项目骨架是一项繁琐但又基础重要的工作,Java领域有许多代码生成工具可以帮助我们快速完成这一任务,下面就跟随小编一起来了解下... 目录一、代码生成工具概述常用 Java 代码生成工具简介代码生成工具的优势二、使用 MyBATis Gen

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

Python+wxPython构建图像编辑器

《Python+wxPython构建图像编辑器》图像编辑应用是学习GUI编程和图像处理的绝佳项目,本教程中,我们将使用wxPython,一个跨平台的PythonGUI工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编

什么是ReFS 文件系统? ntfs和refs的优缺点区别介绍

《什么是ReFS文件系统?ntfs和refs的优缺点区别介绍》最近有用户在Win11Insider的安装界面中发现,可以使用ReFS来格式化硬盘,这是不是意味着,ReFS有望在未来成为W... 数十年以来,Windows 系统一直将 NTFS 作为「内置硬盘」的默认文件系统。不过近些年来,微软还在研发一款名

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加