【系统移植】制作SD卡启动——将uboot烧写到SD卡

发布于:2025-02-11 ⋅ 阅读:(80) ⋅ 点赞:(0)

在开发板上启动Linux内核,一般有两种方法,一种是从EMMC启动,还有一种就是从SD卡启动,不断哪种启动方法,当开发板上电之后,首先运行的是uboot。

制作SD卡启动,首先要将uboot烧写到SD卡,我们既可以在Linux环境下完成烧写,也可以在Windows环境下完成烧写。

在Linux环境下将uboot烧写到SD卡

一、将SD卡接入到虚拟机上的Linux系统

通过读卡器将SD插入到主机上,虚拟机上一般会弹出下面的窗口,选择连接到虚拟机,点击确定。

在虚拟机选卡中选择:可移动设备->USB Storage->连接 (断开与主机的连接)

在终端输入下面命令(按Tab键补齐),得到的结果中有sdb,则说明连接成功:

$ ls /dev/sd

也可以通过linux的图形界面,在Disks中查看:

二、将准备好的文件拷贝到Linux环境下,并解压

存放文件的目录因人而异,按自己选择的来就可以。

将u-boot-fs4412.bin文件也拷贝到sdfuse_q/目录下:

三、给sh脚本文件加上可执行权限

此时,sdfuse目录下的mkuboot.sh和sd_fusing_exynos4x12.sh文件没有执行权限,需要通过chmod命令为其加上执行权限:

sudo chmod +x *.sh

四、执行mkuboot.sh文件,烧写

最后,用sudo权限执行mkuboot.sh烧写,显示如下信息,则说明烧写成功:

 至此,已成功将uboot烧写到了SD卡上面。

考虑到有些虚拟机无法识别SD卡,所以我们有必要学习下如何在Windows环境下将uboot烧写到SD卡。

在Windows环境下将uboot烧写到SD卡 

如果之前SD卡是连接到虚拟机,在进行Windows环境下的SD卡烧写之前,要将SD卡与虚拟机断开,让其连接到主机

一、将准备好的u-boot-fs4412.bin文件拷贝到家目录下(当然也可以是其他目录)

二、制作一个512字节的空镜像文件

做这一步的原因是,在windows环境下,我们要使用Win32DiskImager工具来烧写,而这个工具是从0扇区开始烧写,为了在uboot前面留下1个空扇区,我们先要烧写512个字节到SD卡。

输入下面命令,生成一个512字节的空镜像:

sudo dd if=/dev/zero of=zero.bin count=1

显示如下信息,则说明zero.bin文件制作成功: 

三、将uboot追加到zero.bin之后,生成win-u-boot-fs4412.bin

 用cat命令将u-boot-fs4412.bin追加到zero.bin之后,生成win-u-boot-fs4412.bin。

$ cat zero.bin u-boot-fs4412.bin > win-u-boot-fs4412.bin

四、制作1M空镜像擦除SD卡中原有数据

这一步并非一定要做,但为了保险起见,可以做一下,通过dd命令制作一个1M的空镜像clear.bin,用来擦除SD卡中原有数据 

五、将制作好的win-u-boot-fs4412.bin和clear.bin拷贝到Windows环境下

通过cp命令将win-u-boot-fs4412.bin和clear.bin拷贝共享目录share下,也就到了Windows环境下。

 六、将SD卡通过读卡器插入主机,查看状态(如Windows下无法识别,可能是因为连接到了虚拟机,断开即可)

七、使用Win32DiskImager工具烧写

 先烧写clear.bin文件到SD,擦除原有的数据:

确认选择的文件是clear.bin和烧写到的SD卡盘符,点击“Write” 

在弹出的对话框中点击“Yes” 

弹出烧写成功的对话框,表明已经烧写完成 

用同样的方法,将win-u-boot-fs4412.bin烧写到SD卡 

至此,成功将win-u-boot-fs4412.bin烧写到了SD。

将开发板连接到主机,SD卡插入开发板,将开发板的启动方式调至SD卡,查看启动状态 


网站公告

今日签到

点亮在社区的每一天
去签到