当前位置: 首页 > news >正文

Linux系统移植(7.4)

昨日回顾:

系统移植

一、linux系统:

1、u-boot        引导加载内核        2、zImage     内核镜像        3、.dbt设备树文件        4、rootfs        文件系统

二、硬件资源:

im6xull          芯片内部:96k        rom(原厂启动代码)、        128k        ram(在DDR初始化前为系统提供运行空间)        cache(i、d、L2)

                        芯片外部:512mb        DDR(运行空间)  、        8G        EMMC(启动代码)        三、启动过程:

1、选择启动模式

2、上电(运行0x00除代码,即96的ROM内的代码)

3、根据启动方式找到对应u-boot

4、将u-boot前面一段代码拷贝到内部128k的RAM运行

5、对DDR初始化

6、将完整的u-boot拷贝到DDR中运行

7、执行u-boot对硬件初始化

8、加载引导启动内核

9、执行0号内核进程

10、运行init进程

11、init进程作为父进程启动其余进程

12、实现文件系统挂载

13、找到用户对应的shell运行终端

四、烧录方法:

烧录地点:sd卡或者EMMC,

烧录软件地点:windows、ubantu

开发过程最佳方式:uboot直接烧录到SD卡

                                zImage、.dbt通过tftp传到DDR

                                 rootds通过nfs传到共享文件,让板子通过网络访问。

五、环境配置:

1、网络:nat网卡完成下载、        桥接网卡和开发板通信

2、安装apt-get工具集

3、安装minicom软件

4、tftp服务器软件

5、nfs服务器软件

今日学习:

一、开发过程linux系统最佳烧录方式----动态加载

        此方法主要是开发时使用,将uboot烧录到SD卡上,并设置为SD卡启动,开发板上电即可启动uboot,然后将zImage放入到tftp管理目录,通过tftp下载zImage和设备树文件到DDR中,并加载内核,最后将文件系统设置在nfs服务器上,内核挂载nfs服务器的文件系统,启动Linux系统。

这样做的目的在于每次下载的zImage和dts设备树文件都是最新裁剪出来的,减少了烧录固化的时间,并且文件系统也是最新版本的,所以这种模式主要用于开发时使用。

操作步骤:

1. 先完成《模式一:烧写到SD卡》,可以将uboot烧写到sd卡中

2. 将开发板设置为sd卡启动

3. 将《驱动资料包\实验镜像文件》中的zImage和imx6ull-alientek-emmc.dtb拷贝到Ubuntu的/home/linux/tftpboot目录下

4. 将《驱动资料包\实验镜像文件》 rootfs.tar.bz2解压到Ubuntu的/home/linux/nfs/rootfs目录下

5. 启动开发板,使用minicom进入uboot界面

6. 设置启动参数
 

env default -a
saveenv
setenv ipaddr 192.168.1.50
setenv ethaddr 00:04:9f:04:d2:35
setenv gatewayip 192.168.1.1
setenv netmask 255.255.255.0
setenv serverip 192.168.1.100
saveenv

这段代码完成了开发板的网络基础配置,包括IP地址、MAC地址、网关、子网掩码和服务器地址的设置,为后续通过TFTP下载文件或通过NFS挂载远程文件系统奠定了基础。修正拼写错误后,配置将更加可靠。

测试与Ubuntu是否能够ping通。(需要重启后,重新进一下uboot)

设置bootcmd,让uboot倒计时后通过tftp下载内核镜像和设备树文件。

setenv bootcmd 'tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000'
saveenv

设置bootargs对内核传参。

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs 
nfsroot=192.168.1.100:/home/linux/nfs/rootfs,proto=tcp rw 
ip=192.168.1.50:192.168.1.100:192.168.1.1:255.255.255.0::eth0:off'
saveenv

7. 重新启动开发板,即可进入开发板Linux系统

        1. 系统选择SD卡启动

        2. 通过加载SD卡中的uboot初始化一些硬件设备

        3. 设置uboot参数,并从Ubuntu服务器下载zImage内核镜像和imx6ull-alientek-emmc.dtb设备树文件

        4. 内核加载成功后,通过uboot传递给内核的bootargs参数,以nfs的形式挂载Ubuntu的文系统

        5. 启动Linux系统成功

http://www.dtcms.com/a/267913.html

相关文章:

  • C#实现CAN通讯接口
  • python-if结构、三目运算符
  • 一个简单的脚本,让pdf开启夜间模式
  • 【IOS】XCode创建firstapp并运行(成为IOS开发者)
  • Maixcam的使用3程序打包
  • 【机器学习笔记Ⅰ】13 正则化代价函数
  • 2025年6月AIGC发展全景:技术轻量化、Agent产业化与伦理新挑战
  • bottles安装网易云出现的问题01中文出现乱码问题
  • 等保测评-Apache Tomcat中间件
  • SpringMVC参数接收与数据返回详解
  • MySQL 8.0 主从复制原理分析与实战
  • 传统微商困境与开源链动2+1模式、AI智能名片及S2B2C商城小程序的转型破局
  • 数据挖掘:从理论到实践的深度探索
  • 基于腾讯云开发与“人·事·财·物”架构理念的家政预约小程序设计与实现
  • 【PyTorch】PyTorch中torch.nn模块的卷积层
  • 10.1《3步用ChatGPT+LangChain打造高质量私有数据集,模型效果提升200%》
  • Java多线程知识小结:Synchronized
  • Flink ClickHouse 连接器数据读取源码深度解析
  • G-sensor运动检测功能开源:打破技术壁垒,加速智能硬件开发!
  • Java JDBC的初步了解
  • 力扣网编程45题:跳跃游戏II之正向查找方法(中等)
  • 【深度学习新浪潮】AI在材料力学领域的研究进展一览
  • 基于51单片机智能婴儿床
  • SQL 一键生成 Go Struct!支持字段注释、类型映射、结构体命名规范
  • 从前端转go开发的学习路线
  • 3、Configuring Topics
  • I-Cache、D-Cache 和 SRAM 的区别与联系
  • 系统架构设计师论文分享-论软件体系结构的演化
  • Docker容器中安装MongoDB,导入数据
  • nvm常用指令汇总