I.MX6ULL开发笔记(一)——环境搭建、镜像烧录、网络连接
本系列为使用野火IMX6ULL开发的学习笔记,使用的开发板为如下:
具有的硬件资源有如下:
文章目录
- 一、环境搭建
- Win11安装WSL
- 安装串口驱动
- 安装串口工具
- 安装Ubuntu与windows文件互传
- 二、镜像烧录
- 修改串口终端登录前信息
- 三、fire-config工具配置
- EMMC/NAND FLASH刷机
- 四、WIFI连接
一、环境搭建
Win11安装WSL
https://blog.csdn.net/weixin_44301630/article/details/122390018
安装虚拟机也可以,需要安装一个Ubuntu系统。直接在微软商城中搜索ubuntu20.04
。
安装串口驱动
-
CH340(波特率115200)
https://www.wch.cn/products/CH340.html
安装串口工具
在 Windows 下有很多种终端工具,例如 MobaXterm、secureCRT、xShell、Putty 等,但是最推荐的还是MobaXterm:
- MobaXterm:https://mobaxterm.mobatek.net/download.html
安装Ubuntu与windows文件互传
-
FileZilla下载地址:https://www.filezilla.cn/download
-
开启Ubuntu下的FTP服务:
sudo apt-get install vsftpd
-
等待软件自动安装,安装后打开配置文件:
sudo vi /etc/vsftpd.conf
-
打开 vsftpd.conf 文件以后找到如下两行,输入i进行编辑,按下Esc,输入“:和wq”保存:
local_enable=YES write_enable=YES
确保上面两行不能注释,把他打开:
-
使用如下命令重启FTP服务:
sudo /etc/init.d/vsftpd restart
-
使用FileZillla连接到Ubuntu的FTP服务器:
二、镜像烧录
- 准备一张Micro SD卡,容量需要2GB以上。
- 下载
Etcher
软件,用于烧录镜像至 SD 卡,下载地址:https://www.balena.io/etcher ,根据自 己的电脑系统下载对应版本即可。 - 下载野火最新的 Debian 镜像:https://pan.baidu.com/s/1pqVHVIdY97VApz-rVVa8pQ 提取码:uge1
imx6ull-lubancat-carp-console-armhf-2022-02-10.img.xz
: Debian的纯净版固件,没有带桌面环境和野火的QT App。
imx6ull-lubancat-carp-qt-armhf-2022-02-10.img.xz
: 具有QT App功能的Debian固件,系统启动后会进入QT App的界面。
- 把开发板控制启动模式的 BOOT 拨码开关设置成 SD 卡启动模式,即 2-5-8 档位至 ON 档。
- 给开发板接入烧录好的 SD 卡,启动运行。
注意:开发板插入烧录好 Debian 镜像的 SD 卡,调整拨码开关为 SD 卡启动方式,然后注意使用 SD 卡时开发板右下角的 J2 竖排针不要盖有跳帽需断开(此为 WIFI 模块供电,核心板只引出一路 SDIO,SD 卡和 WIFI 不能同时用);开发板第一次从 SD 卡启动时,系统会自动进行 SD 卡扩容,以保证充分利用 SD 卡存储空 间。扩容完毕后,系统自动重启生效。
插入SD卡,烧录完后即可登录:
普通用户(带 sudo 权限):
账户: debian
密码: temppwd
ROOT用户:
账户: root
密码: root
这样即可登录。可以使用passwd
来进行对密码的修改。
使用 SSH 终端登录时,可以通过主机名和 IP 连接板子:
主机名: npi
IP 不固定,默认由路由动态分配,可先通过串口终端连接,使用 ifconfig 命令查看具体 IP
若要修改主机名,修改 /etc/hostname 文件中的内容即可。
修改串口终端登录前信息
希望登录串口终端时不显示账号密码信息,或者显示我们需要的信息:
sudo vim /etc/issue
,如果没有vim工具,可以使用nano。
三、fire-config工具配置
sudo fire-config
可以进行使用,只可以用在野火最新的debian系统上。(这个功能类似于Nuttx操作系统下的那个菜单栏,把很多通讯设备等都注册为可在菜单上选中并且执行的设备)。
fire-config工具集成了Device Tree Overlays
机制,用来管理一些硬件资源的分配和模块的加载, 从而缓解多个驱动程序争用系统资源的问题。
在传统开发模式中,这个机制通常是由设备树来完成的:在开发之前根据项目需求, 提前确定系统中所有用到的硬件设备。在设备树中把所有的外围设备信息以设备树特定的语法进行描述, 在设备树被编译为dtb
文件后,被linux内核加载使用。
可以看到,在传统开发过程,一旦硬件资源发生变化,就要重新修改、编译、下载设备树。比较极端的情况是: 当项目中要支持多种的硬件模块,而不同模块间往往会共用某些系统资源(如IO引脚)。 一旦系统要兼容模块任意组合使用,那么随着模块数量增加,需要编译的设备树数量将爆炸增长。
因此,使用传统设备树是不利于项目的维护和扩展的。内核为了解决这个提出了一套新的解决方案, 那就是Device Tree Overlays
,中文上可理解为“设备树插件”。 它的核心原理是,通过扩展传统的设备树语法,使得各个硬件模块的信息可以独立地用新的设备树语法来描述。 这样一来,传统的主设备树中只需要保留最基础的硬件信息(主要是cpu和内存),其他模块单独编译成“设备树插件”。 在系统实际使用时,根据实际应用情景,需要用到哪些硬件模块就把对应的设备树插件加入到主设备树即可。
EMMC/NAND FLASH刷机
之后重启开发板即可。
等待一段时间即可。登录进去后,需要关闭SD卡刷机选项:
之后执行sudo poweroff
关机。之后更改开发板的启动方式为EMMC启动,拨码到2457位,然后拆卸SD卡,然后长按ON/OFF
键进行开机。
四、WIFI连接
由于SD卡与WIFI共用同一个sdio接口,所以我们需要把跳帽挪动到原来的地方,给WiFi模块供电:
使用fire-config工具来进行配置WiFi:
可以使用命令sudo echo "1 4 1 7" > /proc/sys/kernel/printk
来屏蔽掉一些没有用的打印。之后打开WiFi:
再次重启:
重启后可以看到WiFi设备被打开了:
之后让其识别周围的WiFi:
之后进入查找:
如果遇到查找到的WiFi较少,可以将天线的位置进行调整,不要压着天线。
signal
代表WiFi强度,越靠前数字越小代表信号强度越高。之后进行WiFi连接:
之后输入对应的密码:
之后再次进行重启,会自动连接上WiFi:
使用命令ifconfig
,可以看到我们连接的WiFi信息:
之后ping一下百度的网址:
说明成功联网。
相关文章:

I.MX6ULL开发笔记(一)——环境搭建、镜像烧录、网络连接
本系列为使用野火IMX6ULL开发的学习笔记,使用的开发板为如下: 具有的硬件资源有如下: 文章目录 一、环境搭建Win11安装WSL安装串口驱动安装串口工具安装Ubuntu与windows文件互传 二、镜像烧录修改串口终端登录前信息 三、fire-config工具配…...

Javaweb之Ajax的详细解析
1.1 Ajax介绍 1.1.1 Ajax概述 我们前端页面中的数据,如下图所示的表格中的学生信息,应该来自于后台,那么我们的后台和前端是互不影响的2个程序,那么我们前端应该如何从后台获取数据呢?因为是2个程序,所以…...

java基于RestTemplate的微服务发起http请求
实现的效果...

django理解02 前后端分离中的问题
前后端分离相对于传统方式的问题 前后端数据交换的问题跨域问题 页面js往自身程序(django服务)发送请求,这是浏览器默认接受响应 而请求其它地方是浏览器认为存在潜在危险。自动隔离请求!!! 跨域问题的解决…...

设计模式-迭代器模式-笔记
动机(Motivaton) 在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们呢希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“同一…...

【数据结构】C语言实现队列
目录 前言 1. 队列 1.1 队列的概念 1.2 队列的结构 2. 队列的实现 2.1 队列的定义 2.2 队列的初始化 2.3 入队 2.4 出队 2.5 获取队头元素 2.6 获取队尾元素 2.7 判断空队列 2.8 队列的销毁 3. 队列完整源码 Queue.h Queue.c 🎈个人主页:…...

牛客——OR36 链表的回文结构(C语言,配图,快慢指针)
目录 思路一:链表翻转 思路二:快慢指针,分别从头和尾间开始比较 本题是没有对C的支持的,但因为CPP支持C,所以这里就用C写了,可以面向更多用户 链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 思路一&am…...

Docker build 技巧 —— 筑梦之路
实现目标 更快的构建速度 更小的Docker镜像大小 更少的Docker镜像层 充分利用镜像缓存 增加Dockerfile可读性 让Docker容器使用起来更简单 如何实现 编写.dockerignore文件 容器只运行单个应用 将多个RUN指令合并为一个 基础镜像的标签不要用latest 每个RUN指令后删除…...

2 Redis的高级数据结构
1、Bitmaps 首先,最经典的应用场景就是用户日活的统计,比如说签到等。 字段串:“dbydc”,根据对应的ASCII表,最后可以得到对应的二进制,如图所示 一个字符占8位(bit),…...

Hive默认分割符、存储格式与数据压缩
目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限(ROW FORMAT)配置标准HQL为: ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

update_engine-FilesystemVerifierAction和PostinstallRunnerAction
在介绍完了DownloadAction之后,还剩下FilesystemVerifierAction和PostinstallRunnerAction,下面开始对其进行分析。 FilesystemVerifierAction 在数据下载完成后,在DownloadAction中会切换到FilesystemVerifierAction void DownloadAction:…...

深度学习乳腺癌分类 计算机竞赛
文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度,召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…...

【Python百宝箱】掌握Python Web开发三剑客:Flask、Django、FastAPI一网打尽
前言 在当今互联网时代,Web应用的开发变得愈发重要和复杂。选择一个合适的Web框架,掌握安全性与认证、数据库与ORM库、前端框架与交互、测试与调试工具等关键知识点,是每个Web开发者都必须面对的挑战。本文将带你深入了解三个流行的Python W…...

【人工智能时代的刑法体系与责任主体概述】
第一节:引言 随着科技的快速发展,人工智能 (Artificial Intelligence, AI) 正日益成为我们生活中不可或缺的一部分。从自动驾驶汽车到语音助手,从智能家居到金融机器人,AI 的广泛应用正不断改变着我们的生活方式和社会结构。然而…...

透视maven打包编译正常,intellj idea编译失败问题的本质
前言 maven多模块类型的项目,在Java的中大型应用中非常常见, 在 module 很多的情况,经常会出现各种各样的编辑依赖错误问题,今天记录一种比较常见的 case : A 子模块依赖 B 子模块,在 Terminal 上终端上 …...

npm报错
npm报错 npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution. npm ERR! npm ERR! npm ERR! For a full report s…...

【FFmpeg实战】ffmpeg播放器-音视频解码流程
音视频介绍 音视频解码流程 FFmpeg解码的数据结构说明 AVFormatContext:封装格式上下文结构体,全局结构体,保存了视频文件封装格式相关信息AVInputFormat:每种封装格式,对应一个该结构体AVStream[0]:视频文件中每个视频ÿ…...

基于SSM的高校毕业选题管理系统设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

一个简单的Oracle Redaction实验
本实验包含了: 简单的Oracle Redaction演示针对指定用户的Redaction 实验环境 假设有一个19c多租户数据库,PDB名为orclpdb1。 我们将在orclpdb1中建立2个用户: redact_user: redact管理员schema_user: schema用户 基础实验 首先进入数…...

getchar函数的功能有哪些
getchar函数是C语言标准库中的一个函数,主要用于从标准输入(通常是键盘)获取一个字符。它的功能包括: 从标准输入获取一个字符:getchar函数会等待用户输入一个字符,然后将其返回给程序。可以通过控制台输入…...

信息机房监控系统(动环辅助监控系统)
信息机房监控系统是一个综合性的系统,用于对机房的所有设备及其环境进行集中监控和管理。这种系统主要针对机房的各个子系统进行监控,包括动力系统、环境系统、消防系统、保安系统、网络系统等。 依托电易云-智慧电力物联网,以下是信息机房监…...

最强英文开源模型Llama2架构与技术细节探秘
prerequisite: 最强英文开源模型LLaMA架构探秘,从原理到源码 Llama2 Meta AI于2023年7月19日宣布开源LLaMA模型的二代版本Llama2,并在原来基础上允许免费用于研究和商用。 作为LLaMA的延续和升级,Llama2的训练数据扩充了40%,达到…...

编程刷题网站以及实用型网站推荐
1、牛客网在线编程 牛客网在线编程https://www.nowcoder.com/exam/oj?page1&tab%E8%AF%AD%E6%B3%95%E7%AF%87&topicId220 2、力扣 力扣https://leetcode.cn/problemset/all/ 3、练码 练码https://www.lintcode.com/ 4、PTA | 程序设计类实验辅助教学平台 PTA | 程…...

基于STC12C5A60S2系列1T 8051单片机的SPI总线器件数模芯片TLC5615实现数模转换应用
基于STC12C5A60S2系列1T 8051单片的SPI总线器件数模芯片TLC5615实现数模转换应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍SPI总线器件数模芯片TLC5615介绍通过按…...

【并发编程】Synchronized的使用
📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化,文章内容兼具广度、深度、大厂技术方案,对待技术喜欢推理加验证,就职于…...

【Python】Python基础
文章目录 一、字面值常量和表达式二、变量2.1 定义变量2.2 变量的命名规则2.3 变量的类型2.4 不同类型大小2.5 动态类型 三、注释四、输入与输出五、运算符5.1 算术运算符5.2 关系运算符5.3 逻辑运算符5.4 赋值运算符 一、字面值常量和表达式 print(1 2 * 3) # 7 print(1 2 …...

gitlab环境准备
1.准备环境 gitlab只支持linux系统,本人在虚拟机下使用Ubuntu作为操作系统,gitlab镜像要使用和操作系统版本对应的版本,(ubuntu18.04,gitlab-ce_13.2.3-ce.0_amd64 .deb) book100ask:/$ lsb_release -a No LSB modules are available. Dist…...

Apache Doris (五十四): Doris Join类型 - Bucket Shuffle Join
🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录...

【AI】行业消息精选和分析(23-11-20)
技术发展 🎨 LCM即时绘画,体验所见所得: - LCM LoRA支持即时绘图生成,体验直观。 - 在线体验地址提供直接访问。 - 清华大学SimianLuo开发,加速稳定扩散模型运行。 💊 VM Pill:可吞咽装置追踪生…...

Matplotlib实现Label及Title都在下方的最佳姿势
Matplotlib实现Label及Title都在下方的最佳姿势 1. 问题背景2. 基本思想(可以不看)3. 方法封装4. 调用实例5. 总结6. 起飞 1. 问题背景 用python绘制下面这种图的时候,一般用xlable作为子图的标题,这是因为plt.title()方法绘制的…...