Linux下的IMX6ULL——构建bootloader、内核、文件系统(四)

简介: Linux下的IMX6ULL——构建bootloader、内核、文件系统(四)

一、构建IMX6ULL Pro版的根文件系统

1.配置文件说明

2.编译系统

下面以100ask_imx6ull_pro_ddr512m_systemV_qt5_defconfig配置文 件为例,在ubuntu终端上说明 Buildroot 的配置过程:

cd /home/book/100ask_imx6ull-sdk 
book@100ask:~/100ask_imx6ull-sdk$ cd Buildroot_2020.02.x 
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2020.02.x$ make clean 
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2020.02.x$ make 100ask_imx6ull_pro_ddr512m_systemV_qt5_defconfig 
book@100ask:~/100ask_imx6ull-sdk/Buildroot_2020.02.x$ make all -j4
book@100ask:~$ cd /home/book/100ask_imx6ull-sdk
book@100ask:~/100ask_imx6ull-sdk$ cd Buildroot_2020.02.x

清除一下文件里的内容

book@100ask:~/100ask_imx6ull-sdk/Buildroot_2020.02.x$ make clean

然后配置一下

make 100ask_imx6ull_pro_ddr512m_systemV_qt5_defconfig

最后进行编译系统

make all -j4

注意:机器性能不同,编译时间不同。性能差的电脑,有可能需要等待5 ~ 6个小时。

编译成功后,真的编译的头都大了,整整编译了俩天,不是一直编译编译了俩天,而是最开始用远程连接的ubuntu进行编译,因为没有固定ip地址,编译了一半以后ip地址变了,导致远程中断,也就导致好几次编译了一俩个小时以后就因为远程中断而重新编译,这里劝告大家除非你电脑性能真的特别好,要不然就乖乖的在ubuntu里进行操作,要不然会真的编译好长时间,呜呜呜。。。。。

3.镜像文件

编译成功后文件输出路径为 output/images

       把上面编译出来的100ask-imx6ull-pro 512d-systemv-v1.img重命名为emmc.img(或sdcard.img),把 emmc.img(或sdcard.img) 放到“100ask_imx6ull 烧写工具”的 files目录里,就可以使用工具烧写到EMMC(或SD/TF 卡)。

二、烧写整个系统或更新部分系统

1.100ASK_IMX6ULL 启动开关

       100ask_imx6ull Pro 版、mini emmc 版,都支持 USB、EMMC、SD/TF 卡三 种启动方式。板子背后都画有一个表格,表示这 3 种方式如何设置。表格如下:

其中的 USB 启动模式主要用来烧写系统。

注意:设置为 USB 启动时,不能先插上 SD/TF 卡。要在 USB 启动模式下烧写 SD/TF 卡时,需要先上电再插卡,先上电再插卡,先上电再插卡

注意:使用后 EMMC、SD/TF 卡启动方式之前,需要先在 EMMC 或 SD/TF 卡上烧写系统。

2.在 Windows 使用 USB 烧写工具

(1)PC端下载uboot模拟downlod设备

烧写工具 100ask imx6ull flashing tool, 它有如下特点:

1.可以烧写整个系统,也可以分开烧写 bootloader、内核、设备树

2.可以上传用户文件到开发板系统中任意目录里

3. 烧写速度是原厂工具的 5 倍

4.支持所有厂家的开发板烧写

注意:不只是支持 100ASK_IMX6ULL,还支持其他厂家的 IMX6ULL 开发板。

以下是固件运行后模拟出来的新的USB下载设备

       “基础版”是专为 100ASK_IMX6ULL 设计的,点击一下即可完成某项烧写。

       “专业版”功能更强大,特别是它可以上传文件到某个分区、某个目录。有些 厂家的开发板,zImage 和设备树是在第 1 个分区里的,而 100ASK_IMX6ULL 的 zImage 和设备树是在第 2 个分区里,所以这些厂家的开发板就无法使用基础版 来烧写,需要使用专业版,指定分区、指定分区格式、指定路径,然后再上传文 件。

       注意:开发板必须设置为 USB 模式,如果要用 SD/TF 卡,必须先上电再插卡;不 能先插卡再上电,不能先插卡再上电,不能先插卡再上电!

(2)连接 USB OTG 线生成6ULL设备

100ASK_IMX6ULL_PRO 接线、设置 USB 启动的方式如图

注意:USB 串口线可接可不接,接上只是为了观察烧写过程。

注意:设置为 USB 启动时,先不要接 TF 卡

       通过 USB 下载或是烧写程序时,需要把开发板的 OTG 口用 USB 线连接到电脑。一般都会自动安装驱动,烧写软件的绿灯不亮时,则很有可能是驱动程序没有安装好,在设备管理器中查看是否有此驱动程序

3.没有出现驱动的解决方法

(1)VMWARE 可能会截取 USB 设备导致烧写失败

如果你运行了 VMWARE,它会截取 USB 设备,可能会有如图

       要选择“连接到主机”,勾选“记住我的选择,以后不再询问”。也许你不慎点错 了“连接到虚拟机”,那也没关系,在 VMWARE 的菜单中把“Freescale SE Blank 6ULL”或“Netchip USB download gadget”断开连接

(2)USB 驱动没有自动安装

       通过 USB 下载或是烧写程序时,需要把开发板的 OTG 口用 USB 线连接到电 脑。IMX6ULL 开发板会通过这一个 OTG 口,模拟出 2 个 USB 设备(先后模拟,不是同时):“Freescale SE Blank 6ULL”、“USB download gadget”。一般会 自动安装好驱动程序,如果驱动程序没安装好,你可以去下载“zadig”来安装驱动。

       安装第 1 个驱动:只要开发板设为 USB 启动(不要插 SD/TF 卡)并上电,电脑 就会识别出“Freescale SE Blank 6ULL”设备,一般都会自动给它安装驱动程序。

       如果没有自动安装好驱动程序(“设备已连接”绿灯没亮),要使用 zadig 安装 libusb-win32 驱动。 先去 https://zadig.akeo.ie/下载 zadig 并运行进行如下操作。

       安装第 2 个驱动:当烧写工具的“设备已连接”绿灯亮起,就可以在“专业版”点击“运行”按钮,这时电脑会识别出“USB download gadget”设备,一 般都会自动给它安装驱动程序,如图

如 果 没 有 自 动 安 装 好 驱 动 程 序 ( “ 固 件 已 运 行 ” 绿 灯 没 亮 ) ,先去 https://zadig.akeo.ie/下载 zadig 并运行

如果一切正常,烧写工具的 2 个绿灯都会亮

这就表示所有驱动都安装好了,可以重启开发板

4.基础版烧写方法

       要更新某个文件,就把它复制到烧写工具的 files 目录,比如 zImage、 100ask_imx6ull-14x14.dtb。

       举例:要更新内核,先把新的 zImage 覆盖 files 目录下的 zImage,然后接线, 上电,选择设备,点击“更新内核”

板子复位或重新上电后,在 APP 里操作即可,一个图就可以列清楚所有步骤:

       当开发板设为 USB 模式,上图的烧写工具中“设备已连接”的绿灯亮起,就 可以通过按钮一键烧写了 ,各按钮作用如表。

5.烧写工具目录详解

       要留意的是 files 目录下的文件,各文件的作用在上图中列出来了,文件名不能改变,要更新某文件时需要覆盖旧文件。

        这个烧写工具不断更新,上述截图中 files 目录下内容可能会增加,更多文 件内容请看表

6.更新替换file文件中的内容

        要想烧写100ask-imx6ull-pro-512d-systemv-v1.img就得把emmc.img删除以后,将你要烧写的改名为emmc.img

开发板重新上电启动烧写整个系统

烧录完成后重新上电,一个完整的系统就成功烧录到开发板里了

[root@100ask:~]# cd /etc/init.d/


目录
相关文章
|
1天前
|
机器学习/深度学习 负载均衡 算法
深入探索Linux内核调度机制的优化策略###
本文旨在为读者揭开Linux操作系统中至关重要的一环——CPU调度机制的神秘面纱。通过深入浅出地解析其工作原理,并探讨一系列创新优化策略,本文不仅增强了技术爱好者的理论知识,更为系统管理员和软件开发者提供了实用的性能调优指南,旨在促进系统的高效运行与资源利用最大化。 ###
|
1天前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
25 7
|
3天前
|
算法 Linux 开发者
深入探究Linux内核中的内存管理机制
本文旨在对Linux操作系统的内存管理机制进行深入分析,探讨其如何通过高效的内存分配和回收策略来优化系统性能。文章将详细介绍Linux内核中内存管理的关键技术点,包括物理内存与虚拟内存的映射、页面置换算法、以及内存碎片的处理方法等。通过对这些技术点的解析,本文旨在为读者提供一个清晰的Linux内存管理框架,帮助理解其在现代计算环境中的重要性和应用。
|
1天前
|
缓存 网络协议 Linux
Linux操作系统内核
Linux操作系统内核 1、进程管理: 进程调度 进程创建与销毁 进程间通信 2、内存管理: 内存分配与回收 虚拟内存管理 缓存管理 3、驱动管理: 设备驱动程序接口 硬件抽象层 中断处理 4、文件和网络管理: 文件系统管理 网络协议栈 网络安全及防火墙管理
18 4
|
20小时前
|
Linux 数据库
Linux内核中的锁机制:保障并发操作的数据一致性####
【10月更文挑战第29天】 在多线程编程中,确保数据一致性和防止竞争条件是至关重要的。本文将深入探讨Linux操作系统中实现的几种关键锁机制,包括自旋锁、互斥锁和读写锁等。通过分析这些锁的设计原理和使用场景,帮助读者理解如何在实际应用中选择合适的锁机制以优化系统性能和稳定性。 ####
14 6
|
3天前
|
人工智能 算法 大数据
Linux内核中的调度算法演变:从O(1)到CFS的优化之旅###
本文深入探讨了Linux操作系统内核中进程调度算法的发展历程,聚焦于O(1)调度器向完全公平调度器(CFS)的转变。不同于传统摘要对研究背景、方法、结果和结论的概述,本文创新性地采用“技术演进时间线”的形式,简明扼要地勾勒出这一转变背后的关键技术里程碑,旨在为读者提供一个清晰的历史脉络,引领其深入了解Linux调度机制的革新之路。 ###
|
5天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
29 4
|
17天前
|
运维 安全 Linux
Linux中传输文件文件夹的10个scp命令
【10月更文挑战第18天】本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法,涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景,旨在帮助用户在不同情况下高效安全地完成文件传输任务。
121 5
|
17天前
|
Linux
Linux系统之expr命令的基本使用
【10月更文挑战第18天】Linux系统之expr命令的基本使用
53 4