| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> IMX6Q的SD卡启动使用教程【超完整】(1):uboot与kernel编译移植 -> 正文阅读 |
|
[系统运维]IMX6Q的SD卡启动使用教程【超完整】(1):uboot与kernel编译移植 |
本文主要介绍的是NXP官方开发板 前言本文操作环境为ubutnu18,需要准备好交叉编译工具链(本文不讨论)。启动资源版本:
一、准备启动SD卡在进行资源编译移植时,需要准备一卡能够启动的SD卡,进行合适的SD卡分区与格式化。其过程主要使用到linux在的 本文不再介绍如何格式化SD卡,可参考大佬的教程:基于Ubuntu的linux环境制作嵌入式SD/TF启动卡 二、编译移植uboot2.1 uboot下载IMX6Q官方uboot地址为:https://source.codeaurora.org/external/imx/uboot-imx/ 其中包括多个版本,供选下载,以下载最新的uboot2021为例: 下载命令为:
下载结果为:
2.2 uboot编译2.2.1 修改顶层Makefile修改顶层Makefile,添加自己的交叉编译工具。如下图 2.2.2 编译配置执行编译配置命令
2.2.3 编译执行编译命令
编译完成后,在uboot顶层目录生成uboot镜像 2.3 uboot烧录将生成的uboot镜像烧录至准备好的SD中,其命令为
其中参数为含义为:
至此,将SD卡插入开发板,设置为SD启动,上电就能打印uboot的启动log。 三、编译移植kernel3.1 kernel下载IMX6Q官方linux地址为:https://source.codeaurora.org/external/imx/linux-imx/ 其中包括多个版本,供选下载,以下载linux5.4为例,下载命令为
下载结果为
3.2 kernel编译3.2.1 编译方法kernel编译使用脚本形式,在顶层目录下创建shell脚本文件
3.2.2 编译后的产物执行完编译命令后,会生设备树与kernel的镜像,其路径分别为 设备树: kernel: 四、kernel加载方法编译完成的kernel镜像,需要加载至DDR中运行,此过程有uboot完成,作为开发者只需要在uboot中配置好加载方式,一般的加载方法有
无论是哪种方式,只需要设置好uboot的环境变量即可。 4.1 TFTP方式加载kernel在uboot启动后,进入交互模式,修改化境变量。修改uboot环境变量的命令主要有 4.1.1 方法简述IMX6Q uboot通过TFTP网络加载kernel,首先在虚拟机开启TFTP服务器,并创建TFTP文件夹,将kernel与设备树镜像拷贝至TFTP文件夹,此过程可参考正点原子教程。然后设置开发板的IP地址信息,最后使用ping命令,从虚拟机ping开发板。 其中设置虚拟机为TFTP服务器,并ping通开发板的步骤很重要,网上教程较多,限于文章篇幅,以后单独说明。 4.1.2 修改开发板IP修改为自己环境的IP地址,命令为
设置完IP后,重新启动,在虚拟机上ping开发板。能通,万事大吉!怎样都不通,不要放弃,参考SD加载kernel的方式,直接到4.2小节。 4.1.3 设置TFTP加载方式修改环境变量,设置TFTP加载方式,涉及到的环境变量为
上述内容中,主要分为三个步骤:
4.2 SD卡加载kernel在无网络的情况下,使用此方法,会减少开发难度。 SD卡分区且格式化完成后,将kernel与设备树镜像拷贝至分区中(任意分区,推荐第一个分区)即可。默认的
五,根文件系统加载嵌入式系统的三大件: 5.1 制作根文件系统
制作 本节主要介绍的是根文件系统加载方法,主要有
在uboot启动后,进入交互模式,修改化境变量,设置启动方式。 5.2 NFS挂载根文件系统5.2.1 方法简述此方法的前提是,开发板能够与虚拟机ping通。 IMX6Q 通过NFS挂载根文件系统,首先要在虚拟机开启NFS功能,此过程可参考正点原子教程。然后创建NFS目录,并根文件系统复制到NFS目录中。 虚拟机开启NFS功能,设置NFS挂载环境,网上教程较多,本文不再描述,后续系列文章会补充。(如果时间) 5.2.2 修改uboot环境变量主要修改的是
修改 5.3 SD加载根文件系统如果网络不通,可使用SD加载根文件系统。修改uboot中的
其中 总结经过上述5个步骤,即可实现uboot引导linux,加载文件系统的工作。整个流程是一个linux嵌入式工程师必备技能,其中会遇到很多问题,需要自己一一解决并总结。幸运的是大部分问题网上都能找到解决方案,重要的是坚持! 后续会补充文中没有详细展开的内容,包括根文件系统制作、NFS\TFPT启动等。 还准备手把手教如何在IMX6Q上移植ubuntu20根文件系统并安装桌面,制作属于自己的嵌入式开发板环境。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 2:53:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |