286浏览
查看: 286|回复: 1

[讨论分享] 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 adln
b.生成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,其中的BIOSAMI CodeBaseSlimBootloader.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”
Slimbootloader 在 LattePanda上启动 Ubuntu图1

d.从左上角的  Activities 打开一个 Terminal
Slimbootloader 在 LattePanda上启动 Ubuntu图2
a.     使用 lsblk列出当前的设备,LattePanda Mu 内置了 eMMC,这里是mmcblk0设备
Slimbootloader 在 LattePanda上启动 Ubuntu图3
a.     使用 sudo disk /dev/mmcblk0擦除硬盘,命令如下:
sudo gdisk/dev/mmcblk0
x
z
y

y

Slimbootloader 在 LattePanda上启动 Ubuntu图4

a.     创建GPT分区
sudo gdisk /dev/mmcblk0
o
y
w

y

Slimbootloader 在 LattePanda上启动 Ubuntu图5
a.     接下来即可进行Ubuntu安装了

b.     分区需要特别处理,划分出一个500MB 的FAT32分区用于引导
Slimbootloader 在 LattePanda上启动 Ubuntu图6
a.     剩余容量减去4GB 左右,设定为  Ext4 分区
Slimbootloader 在 LattePanda上启动 Ubuntu图7
a.     最后创建一个 4GB 的分区作为  SWAP 分区
Slimbootloader 在 LattePanda上启动 Ubuntu图8
a.     接下来都选择 Continue

b.     安装结束后,选择 Continue Testing
Slimbootloader 在 LattePanda上启动 Ubuntu图9


a.     接下来使用 lsblk
b.     输入如下命令:
Mkdir root
Sudo mount /dev/mmcblk0  root/
c.      插入另外的U盘其中放入三个脚本以及内容如下的 cmdline.txt
echo "root=/dev/ mmcblk0  ro quiet splash" > cmdline.txt

d.     运行如下批处理(其中的PEM文件来自编译SBL的代码中 )
  1. 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
  2. sudo cp sbl_os ./root/boot
  3. sudo umount ./root
复制代码

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



这里只是简单的第一步,自行编译BIOS并且启动了X86 Ubuntu,很多功能还没有调试,可能在使用中遇到问题(比如, X4 PCIE 支持, Audio 的支持)。如果你对性能和体积有一些要求,或者是对于BIOS定制有一些特别要求,不妨考虑 DFRobot推出的 LattePanda MU,它由一块核心板以及底板构成,厂家提供了电路图以及对应接口,可以很方便的实现定制。
Slimbootloader 在 LattePanda上启动 Ubuntu图10

参考:











zoologist  高级技匠
 楼主|

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

1.本文提到的代码可以在 https://gitee.com/willok/slimbootloader 下载到,由天杀提供。
2.本文“运行如下批处理(其中的PEM文件来自编译SBL的代码中 )”,可以在这里下载到
下载附件script.zip
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail