电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1299|回复: 2
收起左侧

Linux系统启动卡制作及系统固化

[复制链接]

678

主题

902

帖子

8293

积分

高级会员

Rank: 5Rank: 5

积分
8293
发表于 2020-9-17 16:07:34 | 显示全部楼层 |阅读模式
前言本指导文档适用开发环境:
Windows开发环境:Windows 7 64bit、Windows 10 64bit
Linux开发环境:Ubuntu 14.04.3 64bit
虚拟机:VMware14.1.1
Kernel:Linux-4.9.65、Linux-RT-4.9.65
Linux Processor SDK:ti-processor-sdk-linux-rt-am335x-evm-04.03.00.05
评估板支持通过Linux系统启动卡、eMMC、NAND FLASH三种方式启动。本文档主要演示Linux系统启动卡制作,以及将Linux系统固化到eMMC的方法。将Linux系统固化到NAND FLASH的方法,另见文档。


1.Linux系统启动卡制卡工具包说明1.1制卡工具包版本说明
产品资料“4-软件资料\Linux\Makesdboot\”目录下的mksdboot_AA_BB_CC_DD.tar.gz压缩文件是Linux系统启动卡制卡工具包,主要包含U-Boot、Linux内核、设备树镜像文件,以及文件系统压缩包等内容。AA_BB_CC_DD为制卡工具包的版本号,具体版本说明如下:
  • AA: U-Boot发布版本。详细信息请查看“4-软件资料\Linux\U-Boot\”目录下的特性支持说明文件。
  • BB:Linux内核发布版本。详细信息请查看“4-软件资料\Linux\Kernel\”目录下的特性支持说明文件。
  • CC:文件系统发布版本。详细信息请查看“4-软件资料\Linux\Filesystem\”目录下的特性支持说明文件。
  • DD:产品测试程序发布版本。在文件系统下执行“cat /opt/product-test/version.txt”命令可查看具体版本信息。
1.2制卡工具包目录说明
打开Ubuntu,将制卡工具包复制到“/home/tronlong/AM335x”工作目录下,进入制卡工具包所在路径将其解压到当前目录。工具包名称需根据实际情况修改。
Host# cd /home/tronlong/AM335x/
Host# tar -xvf mksdboot_21_21_21_14.tar.gz -C .

图 1

执行以下命令,查看解压后的制卡工具包具体内容。
Host# tree -L 5 mksdboot_21_21_21_14

图 2

boot目录
  • MLO文件:U-Boot一级启动镜像。
  • u-boot.img文件:U-Boot二级启动镜像。
  • README.md文件:制卡工具包、U-Boot、Linux内核、文件系统等版本信息说明文件。logo.bmp文件:LOGO图片。
filesystem目录
  • boot目录:主要包含Linux内核镜像zImage、Linux-RT内核镜像zImage-rt、基础设备树dtb文件、Linux-RT内核模块压缩包等。
  • firmware目录:主要包含动态设备树dtbo文件。
  • modules目录:主要存放Linux内核模块压缩包。
  • rootfs目录:主要存放文件系统压缩包。
  • tests目录:主要存放产品测试文件压缩包。
  • tools目录:主要存放Shell脚本压缩包。
mksdboot.sh文件:Linux系统启动卡制作脚本文件。


1.3Linux-RT内核版本Linux系统启动卡制作说明
​​​​​​​制卡工具包包含Linux内核镜像、Linux内核模块,以及Linux-RT内核镜像、Linux-RT内核模块。默认情况下,制作的是Linux内核版本的Linux系统启动卡。如需制作Linux-RT内核版本的Linux系统启动卡,请按照本小节方法替换内核镜像和内核模块,否则请跳过此小节内容。
进入制卡工具包“filesystem/boot/”目录,备份Linux内核镜像zImage,并使用Linux-RT内核镜像zImage-rt替换原来的zImage文件。
Host# cd filesystem/boot/
Host# cp zImage zImage-linux
Host# mv zImage-rt zImage
​
图片3.png
图 3

将制卡工具包“filesystem/modules/”文件夹备份,并使用“filesystem/boot/modules-rt/”文件夹将其替换,命令如下。
Host# mv ../modules ../modules-linux
Host# mv modules-rt ../modules

图 4

替换完成后,即可继续参照后续章节方法制作Linux-RT内核版本的Linux系统启动卡。
​​​​​​​
2.Linux系统启动卡制作评估板出厂时,默认提供一张配套的Micro SD卡,此卡为可正常使用的Linux系统启动卡。本章节主要说明Linux系统启动卡的制作方法,可使用配套的Linux系统启动卡,或者使用新的空白Micro SD卡。如下步骤使用配套的Linux系统启动卡进行操作,如使用空白Micro SD卡,步骤类似。
2.1 Micro SD卡挂载
将Micro SD卡通过读卡器连接到PC机,Ubuntu系统识别后,一般会自动挂载Micro SD卡分区,如下图所示。

图 5

如果Ubuntu系统没有自动识别,请右击右下角的USB大容量存储设备图标,再点击“Connect (Disconnect from Host)”进行识别。

图 6

如果没有以上图标或者连接不成功,请尝试如下方法:
  • 请将Micro SD卡通过读卡器插到PC机USB 2.0接口,而不是USB 3.0接口,部分版本VMware可能不兼容USB 3.0。
  • 请将Micro SD卡插在PC机上,然后重启Ubuntu,在Ubuntu重启过程中不要取出。Ubuntu系统重启后,存储设备图标会重新出现。​​​​​​​

2.2Micro SD卡设备节点名确认
执行如下命令,确认Micro SD卡在Ubuntu系统的设备节点名。
Host#sudo fdisk -l

图 7

可以看到Micro SD卡设备节点是“/dev/sdb”,并且有三个分区,分别为sdb1、sdb2和sdb3分区。设备节点名字是可变的,一般插拔多次或者使用不同的卡插拔后,可能会显示sdc或者sdd。

2.3PV工具安装
PV(Pipe Viewer)是一种基于终端的工具,用于通过管道监测数据的进度。
为了更直观地显示系统启动卡的制作进度,Linux系统启动卡制作过程中会使用到PV工具。请执行如下命令通过网络安装PV工具,如未安装PV工具将会导致系统启动卡制作失败。
Host#sudo apt-get install pv

图 8

2.4Linux系统启动卡制作
如下为Linux系统启动卡制作命令。命令中“/dev/sdb”为Micro SD卡设备节点,如错误输入其他存储介质设备节点,将会造成存储介质数据损坏,请确认命令中设备节点无误后,再执行命令。
Host#sudo ./mksdboot.sh -d /dev/sdb

图 9

根据提示按回车键,进行Linux系统启动卡制作。

图 10

耗时约5~10min,Linux系统启动卡制作完成。同时,系统会打印提示信息,如下图所示。制作时间与Linux系统大小、Micro SD卡容量和接口性能有关。

图 11

执行如下命令,可看到新制作的Linux系统启动卡共有BOOT、rootfs和rootfs-backup三个分区。其中BOOT分区为FAT32格式,rootfs分区和rootfs-backup分区为EXT4格式。FAT32格式分区在Windows系统下可见,EXT4格式分区在Windows系统下不可见,三个分区在Linux系统下均可见。

图 12

BOOT分区:主要存放U-Boot镜像MLO、u-boot.img、LOGO等文件,从制卡工具包boot目录复制而来。使用Linux系统启动卡启动系统时,将使用此目录的MLO、u-boot.img文件启动U-Boot。
rootfs分区:存放文件系统。rootfs分区boot目录主要存放内核镜像、基础设备树文件等文件,从制卡工具包“filesystem/boot/”目录复制而来。使用Linux系统启动卡启动系统时,将使用此目录的zImage、tl335x-evm.dtb文件启动内核。
rootfs-backup分区:存放文件系统备份文件。系统固化时,将其内容固化到eMMC或NAND FLASH。
点击右下角的大容量存储设备图标,选择“Disconnect(Connect to host)”选项(如下图),断开Micro SD卡和Ubuntu的连接,完成Linux系统启动卡制作。

图 13

2.5从Linux系统启动卡启动系统
评估板断电,将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板丝印将拨码开关拨为00010(1~5),此档位为SD卡启动模式。使用Micro USB线连接评估板的USB TO UART3调试串口到PC机,然后将评估板上电启动,串口调试终端会打印以下类似启动信息。

图 14


图 15

系统启动后会自动登陆root用户,说明使用Linux系统启动卡启动评估板成功。

图 16

可执行如下命令查看当前Linux内核版本信息。
Host#cat /proc/version

图 17 Linux内核


图 18 Linux-RT内核

3.固化Linux系统(SPI FLASH+eMMC)本小节介绍Linux系统固化过程,固化过程包含固化U-Boot到SPI FLASH和固化文件系统到eMMC。固化成功后,评估板从SPI FLASH启动U-Boot,然后从eMMC加载内核、设备树和文件系统。

3.1挂载信息和SPI FLASH分区说明
进入评估板系统后执行如下命令,分别查看系统启动卡和eMMC挂载详细信息,以及SPI FLASH分区信息。
Target#df -h
Target#cat /proc/mtd

图 19

表 1
Linux系统启动卡
BOOT分区
设备节点:/dev/mmcblk0p1
挂载路径:/run/media/mmcblk0p1
rootfs-backup分区
设备节点:/dev/mmcblk0p3
挂载路径:/run/media/mmcblk0p3
eMMC设备
BOOT分区
设备节点:/dev/mmcblk1p1
挂载路径:/run/media/mmcblk1p1
rootfs分区
设备节点:/dev/mmcblk1p2
挂载路径:/run/media/mmcblk1p2
data分区(用户分区)
设备节点:/dev/mmcblk1p3
挂载路径:/run/media/mmcblk1p3
SPI FLASH
MTD0
spi.spl:存放U-Boot第一阶段启动文件MLO
MTD1
spi.u-boot:存放U-Boot第二阶段启动文件u-boot.img
MTD2
spi.env:存放环境变量
MTD3
spi.devicetree:存放基础设备树文件(暂未使用)
MTD4
spi.kernel:存放内核镜像(暂未使用)


3.2固化Linux系统
Linux系统启动卡制作时,已将系统固化的脚本文件mkemmcboot.sh复制到了Linux系统启动卡文件系统的“/opt/tools/make-system”目录下。

图 20

执行如下命令进行一键固化。
Target#/opt/tools/make-system/mkemmcboot.sh

图 21

脚本会进行如下操作:
  • 擦除SPI FLASH。
  • 将eMMC格式化为BOOT、rootfs和data分区。
  • 将Linux系统启动卡BOOT分区中的U-Boot固化到SPI FLASH对应分区。
  • 将Linux系统启动卡BOOT分区中的LOGO文件固化到eMMC的BOOT分区。
  • 将Linux系统启动卡rootfs-backup分区中的文件系统固化到eMMC的rootfs分区,[url=]包括内核镜像和基础设备树文件。[/url]
用时约3 min, Linux系统固化成功,同时串口调试终端打印提示信息。
备注:脚本会将内核镜像、基础设备树文件固化到SPI FLASH中,实际启动并不会从SPI FLASH中加载内核镜像和基础设备树文件。

3.3从SPI+eMMC启动系统
评估板断电,将Linux系统启动卡从评估板Micro SD卡槽中取出,根据评估底板丝印将拨码开关拨为10010(1~5),此档位为SPI FLASH启动模式。评估板上电,串口调试终端将会打印如下类似启动信息。

图 22


图 23


3.4动态设备树dtbo文件加载方法
评估板设备树文件包含基础设备树dtb文件和动态设备树dtbo文件,Linux系统启动时会自动加载dtb文件,dtbo文件需要在文件系统下进行加载。本章节以tl335x-evm-lcd-overlay.dtbo动态设备树为例,演示动态设备树文件的方法。
Linux系统启动卡制作时,已将动态设备树dtbo文件拷贝到文件系统的“/lib/firmware/”目录下。将需要加载其他dtbo文件,请将其拷贝到文件系统“/lib/firmware/”目录下。

图 24

文件系统下依次执行如下命令,加载tl335x-evm-lcd-overlay.dtbo动态设备树文件。
Target#mkdir /configfs //创建configfs文件夹,如已存在,则无需重复创建
Target#mount -t configfs configfs /configfs
Target#mkdir /configfs/device-tree/overlays/full //创建full目录,根据实际需要修改
Target#echo -n "tl335x-evm-lcd-overlay.dtbo" > /configfs/device-tree/overlays/full/path

图 25

正常加载动态设备树文件后,系统会打印驱动加载的相关信息,部分驱动也有可能不打印任何信息。可执行如下命令查看动态设备树文件的加载状态。
Target#cat /configfs/device-tree/overlays/full/status
Target#cat /configfs/device-tree/overlays/full/path

图 26

嵌入式DSP、ARM、FPGA多核技术开发,学习资料下载:http://site.tronlong.com/pfdownload
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条


联系客服 关注微信 下载APP 返回顶部 返回列表