如何制作启动卡

本文详细介绍了在Linux系统下如何操作SD卡,包括查找SD卡设备、删除分区、新建分区、烧写uboot、拷贝映像文件以及系统升级过程。在烧录过程中,由于缺少根文件系统映像导致无法进入烧写模式,补全后成功烧录并验证了版本。整个流程对于Linux系统和设备固件升级具有指导意义。
摘要由CSDN通过智能技术生成

一、Linux下SD卡设备

示例:插上读卡器,在linux下找到sd卡及读卡器设备:

root@wsl-VirtualBox:~# cat /proc/partitions

SD卡的设备文件节点是:/dev/sdb
在这里插入图片描述

二、删除sd卡分区

root@wsl-VirtualBox:~# sudo fdisk /dev/sdb

在这里插入图片描述
输入:d, 删除所有分区:
在这里插入图片描述

三、给sd卡进行分区

安装gparted 工具:

root@wsl-VirtualBox:~# sudo apt-get install gparted

弹出页面:
选择"分区"–>“新建”,“之前的空余空间”–>选择"256MB" —>“文件系统”–>选择"fat32"—>“添加”—>“对号”–>保存。

#sudo gparted /dev/sdb

使用gparted 工具分区,预留256MB给uboot映像。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

四、烧写uboot

将之前编译出来的 uboo.bin t烧写到SD卡:

root@wsl-VirtualBox:/home/Tmp/6818GEC/out/release# ./GEC6818-sdmmc.sh /dev/sdb GECuboot.bin

在这里插入图片描述

五、拷贝映像文件到sd卡

进入SD卡挂载的目录:

wsl@wsl-VirtualBox:/$ cd media/wsl/5305-7F9C/

在SD中创建GEC6818-qt目录,GEC6818-qt目录用于存放将要恢复的映像文件:

wsl@wsl-VirtualBox:/media/wsl/5305-7F9C$ mkdir GEC6818-qt

将之前内核编译阶段输出的映像文件拷贝到GEC6818-qt目录,GEC6818-qt目录下放如下文件:
GECuboot.bin boot.img qt-rootfs.img env.txt

wsl@wsl-VirtualBox:/media/wsl/5305-7F9C$ cp /home/Tmp/6818GEC/out/release/* ./GEC6818-qt/

在这里插入图片描述env.txt文件内容:
在这里插入图片描述

板子启动

4、将 SD 卡插到开发板的 SD0 卡槽,打开开发板电源,这时系统将会自动升级。等待数秒 后,开发板会自动进行烧写。烧写完毕将会自动重启,进入 Linux 系统。
**说明:**默认 uboot 会自动判断 SD 卡的 gec-Linux 目录中的映像文件是否有更新,一旦发现 映像和烧写到开发板上的不同,则会自动更新映像,否则不会再次更新;如果需要强制进入升 级模式,开机上电时按住返回键(K2,调试串口中会打印 force update)即可重新进入 SD 卡 烧写模式,开始自动烧写。

问题:但是按照上面操作后发现还是无法进入SD卡烧写模式;
解决:经检查后发现前面拷贝映像文件到SD卡的GEC6818-qt目录下少了个根文件文件系统的映像(qt-rootfs.img),因此在将其拷入即可。

烧录过程:

## Booting 
Update key pressed, Force update
DONE: Logo bmp 311 by 300 (3bpp), len=280854 
DRAW: 0x47000000 -> 0x46000000 
Read 333792 (0x000517e0) bytes
Flash : ubootpak
head boot dev  = 2
update mmc.2 type 2ndboot = 0x200(0x1) ~ 0x517e0(0x28c): Done
Flash : ubootpak - DONE  ------------》 烧写 uboot 映像完成
Read 17252584 (0x010740e8) bytes
Flash : boot
Flash : boot - DONE   ------------》 烧写 boot(inux内核的映像) 完成
Read 367001600 (0x15e00000) bytes
Flash : system
write image to 0x4100000(0x20800), 0x15e00000(0x20800)
Flash : system - DONE   ------------》 烧写 system 完成
Writing to MMC(2)... done
bootcmd=ext4load mmc 2:1 0x48000000 uImage;bootm 0x48000000
Writing to MMC(2)... done
bootargs=lcd=at070tn92 tp=ft5x06-linux root=/dev/mmcblk0p2 rw rootfstype=ext4 cam=OV5645
Writing to MMC(2)... done
DONE: Logo bmp 300 by 300 (3bpp), len=270056 
DRAW: 0x47000000 -> 0x46000000 
resetting ... ------------------》重启uboot

查看版本确认成功烧录:

#uboot模式下:
GEC6818# version

U-Boot 2014.07 (Apr 27 2021 - 23:30:49)
arm-eabi-gcc (GCC) 4.8
GNU ld (GNU Binutils) 2.23.2

#Linux 下:
[root@GEC6818 /]#uname -a
Linux GEC6818 3.4.39-gec #4 SMP PREEMPT Sat May 1 18:59:47 CST 2021 armv7l GNU/Linux
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值