迅为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

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

一、什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。如何用最简单的方法来搭建一个高效率可用的服务端JAVA呢? 停工的原因一般有: 服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等;访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因;时间和

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

开发板NFS挂载文件目录

文章目录 序NFS1. 安装 NFS 服务器和客户端在服务器上(NFS 服务器端)在客户端上(NFS 客户端) 2. 配置 NFS 服务器创建共享目录编辑 `/etc/exports` 文件启动 NFS 服务 3. 在客户端挂载 NFS 共享创建挂载点挂载 NFS 共享验证挂载 4. 设置开机自动挂载5. 解决权限问题 序 本节主要实现虚拟机(服务器)与开发板(客户端)通过N