WSL2下Ubuntu22.04使用Qemu搭建虚拟Vexpress-A9开发板(六)——U-boot+emmc启动

本文介绍了如何将U-boot的环境变量存储在emmc中,以便与Linux内核、设备树分开,并详细描述了制作emmc镜像、修改U-boot配置、以及使用qemu进行启动过程。

        在第四部分《通过U-boot引导加载内核》中,我们发现U-boot的环境变量修改后无法保存,需要修改源代码来固化环境变量,对启动参数的修改造成了不便。因此本节将继续深入探讨如何将U-boot的环境变量存储在emmc内,同时使用emmc存储Linux内核、设备树以及根文件系统,并在此基础上尝试引导启动最小Linux操作系统。

制作emmc镜像文件

        本节制作的emmc镜像文件共256MB,分为两个部分,第一部分存放uImage和dtb,大小为32MB,第二部分存放根文件系统,大小为224MB。

创建挂载路径

sudo mkdir /mnt/rootfs
sudo mkdir /mnt/uboot

创建自动打包脚本

cd /home/workspace/objects
vim makefs-arm32.sh

# 将makefs-arm32.sh的内容替换为以下内容
dd if=/dev/zero of=rootfs-arm.ext3 bs=1M count=256

echo "hard disk partition!"
sgdisk -n 0:0:+32M -c 0:uboot rootfs-arm.ext3
sgdisk -n 0:0:0 -c 0:rootfs rootfs-arm.ext3
sgdisk -p rootfs-arm.ext3

echo "mount loop device!"
LOOPDEV=`losetup -f`
echo $LOOPDEV
sudo losetup $LOOPDEV  rootfs-arm.ext3
sudo partprobe $LOOPDEV
sudo losetup -l
ls -l /dev/loop*

echo "format disk to ext3"
echo ${LOOPDEV}p1
echo ${LOOPDEV}p2
sudo mkfs.ext3 ${L
WSL2上安装并使用稳定版本的Ubuntu 22.04,可按以下步骤操作: ### 前期准备 在Windows上安装WSL2前,要确保虚拟化选项已经开启。打开任务管理器,选择“性能”,选中CPU,查看右下角“虚拟化”是否已经启用。若未开启,需进入电脑的BIOS设置里开启,可搜索对应品牌的电脑如何在BIOS中开启虚拟化[^4]。 ### 安装Ubuntu 22.04 安装完成后,若正在进行WSL(Windows Subsystem for Linux)的首次初始化,需要创建一个默认的UNIX用户账户,该账户用于WSL中的日常操作[^1]。 ### 磁盘空间调整(可选) 若C盘存储空间吃紧,可将Ubuntu-22.04系统迁移到D盘: 1. 导出Ubuntu-22.04系统,执行命令 `wsl --export Ubuntu-22.04 D:\wsl-data\Ubuntu-22.04.tar`。 2. 注销之前的Ubuntu-22.04系统,执行命令 `wsl --unregister Ubuntu-22.04`。 3. 导入第1步导出的Ubuntu-22.04系统,执行命令 `wsl --import Ubuntu-22.04 D:\wsl-data\Ubuntu-22.04 D:\wsl-data\Ubuntu-22.04.tar` [^2]。 ### 启动与管理 - **命令行启动**:使用命令 `wsl -d Ubuntu-22.04` 启动Ubuntu 22.04- **查看启动情况**:执行命令 `wsl --list --verbose` 查看启动情况。 - **开机自启动**:可以将以下PowerShell脚本内容保存为 `C:\Users\make.han\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\wsl.vbs` 文件,实现开机自启动。 ```powershell $wslvbs = @" CreateObject("Wscript.Shell").run "wsl -d Ubuntu-22.04 -u ubuntu", vbhide "@ $wslvbs | Out-File "C:\Users\make.han\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\wsl.vbs" -Encoding ASCII ``` - **删除与取消注册**:若要删除Ubuntu Linux子系统,可执行命令 `wsl --terminate Ubuntu-22.04` 和 `wsl --unregister Ubuntu-22.04`;若要卸载Microsoft Store中的Ubuntu,可使用以下命令: ```powershell $check_remove_name = Get-AppxPackage | Where-Object {$_.Name -like "*Ubuntu22.04*" } $check_remove_name | Remove-AppxPackage ``` [^3]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值