zoologist 发表于 2024-9-15 17:04:35

Slimbootloader 在 LattePanda上启动 Ubuntu

这次带来是全网唯一的开源 X86 BIOS 方案,通过它能够在 Latte Panda Mu上引导启动 Ubuntu。为了在Latte Panda Mu使用SlimBootLoader,还需要额外准备如下硬件:1.   烧写IFWI的硬件工具,比如:SF100烧录器;2.   查看串口Log 的工具,比如:CH343 串口转 USB工具,用于配置安装Ubuntu;3.   准备2个U盘,一个用于制作 Ubuntu安装盘,我这边使用64GB 的金邦U盘,使用DiskGuinus格式化为 FAT32(注意不要使用 exFat)。将 Ubuntu 解压后全部放入 U盘根目录即可;另外U盘一个用于制作引导脚本。 第一步,生成能够启动的 Latte Panda Mu 的 IFWI。根据【参考1】,配置编译环境,首先确保能够编译通过 QEMU。a.编译 BIOS 代码:Python BuildLoader.py build adlnb.生成IFWI,这里没有使用 mFIT 而是直接使用代码替换原代码中的 BIOS Region。python Platform/AlderlakeBoardPkg/Script/StitchLoader.py-i LattePanda.bin -s Outputs/adln/SlimBootloader.bin -o LattePanda_ifwi.bin -p0xAA000007上述的命令中,LattePanda.bin 是DFRobot 提供的原始的IFWI,其中的BIOS是AMI CodeBase;SlimBootloader.bin 是前面从 SBL Build出来的BIOS;最后的LattePanda_ifwi.bin就是生成的新的 IFWI。d.关机状态下,将USB 转串口工具连接到LattePanda Mu 的PCH UART0 上c.使用 SF100或者其他烧录器将LattePanda_ifwi.bin烧录到 LattePanda Mu上d.启动LattePanda Mu后,会很快完成启动显示SBL Logo。 这时候 SBL 并不会从屏幕和键盘进行交互,而是通过串口。在另外一台电脑上打开串口工具即可看到一个文本的Shell界面,输入 boot 命令,然后调整从USB 设备启动例如:至此,Firmware 方面的准备已经完成。第二步,安装 Ubuntu 以及设定【参考2】。a.   其中需要一些时间,请耐心等待,之后进入下面这个界面。左边是直接在U盘提供的Live Linux 中工作,右边是进行安装,这里需要选择左侧按钮“Try Ubuntu”
d.从左上角的Activities 打开一个 Terminala.   使用 lsblk列出当前的设备,LattePanda Mu 内置了 eMMC,这里是mmcblk0设备a.   使用 sudo disk /dev/mmcblk0擦除硬盘,命令如下:sudo gdisk/dev/mmcblk0xzy
y

a.   创建GPT分区sudo gdisk /dev/mmcblk0oyw
y
a.   接下来即可进行Ubuntu安装了
b.   分区需要特别处理,划分出一个500MB 的FAT32分区用于引导a.   剩余容量减去4GB 左右,设定为Ext4 分区a.   最后创建一个 4GB 的分区作为SWAP 分区a.   接下来都选择 Continue
b.   安装结束后,选择 Continue Testing

a.   接下来使用 lsblkb.   输入如下命令:Mkdir rootSudo mount /dev/mmcblk0root/c.      插入另外的U盘其中放入三个脚本以及内容如下的 cmdline.txtecho "root=/dev/ mmcblk0ro quiet splash" > cmdline.txt
d.   运行如下批处理(其中的PEM文件来自编译SBL的代码中 )python3 GenContainer.py create -cl CMDL:cmdline.txt KRNL:./root/boot/vmlinuz-<kernel-version> INRD:./root/boot/initrd.img-<kernel-version> -k ./SblKeys/OS1_TestKey_Priv_RSA3072.pem -a RSA3072_PKCS1_SHA2_384 -t CLASSIC -o sbl_os
sudo cp sbl_os ./root/boot
sudo umount ./root

a.   最终,拔掉U盘,即可启动上述操作的完整视频:

https://www.bilibili.com/video/BV18wHoesE3H/
这里只是简单的第一步,自行编译BIOS并且启动了X86的 Ubuntu,很多功能还没有调试,可能在使用中遇到问题(比如, X4 PCIE 支持, Audio 的支持)。如果你对性能和体积有一些要求,或者是对于BIOS定制有一些特别要求,不妨考虑 DFRobot推出的 LattePanda MU,它由一块核心板以及底板构成,厂家提供了电路图以及对应接口,可以很方便的实现定制。
参考:1.   https://www.lab-z.com/sblb/
2.   https://slimbootloader.github.io/how-tos/boot-ubuntu.html#setup-spn-os-container-boot









zoologist 发表于 2024-9-15 17:08:31

1.本文提到的代码可以在 https://gitee.com/willok/slimbootloader 下载到,由天杀提供。
2.本文“运行如下批处理(其中的PEM文件来自编译SBL的代码中 )”,可以在这里下载到
页: [1]
查看完整版本: Slimbootloader 在 LattePanda上启动 Ubuntu