Slim Bootloader简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangwei0512/article/details/83211438

什么是Slim Bootloader

Slim Bootloader是Intel推出的一款Bootloader,关于它的完整介绍可以在如下的网站找到:

https://www.intel.com/content/www/us/en/design/products-and-solutions/technologies/slim-bootloader/overview.html

可以认为它是Intel版的coreboot,在平台支持、安全、可扩展方面更偏向于x86平台。

Slim Bootloader跟其他的Bootloader一样,主要的作用当然是初始化硬件并加载OS。但是相比于其他的Bootloader,Slim Bootloader有如下的优点:

并且它支持各种常用的操作系统,而且还是开源的(使用BSD许可)。

Slim Bootloader的源代码可以在https://github.com/slimbootloader/slimbootloader下载到。

由于Slim Bootloader目前还在早期开发阶段,因此代码可能会因为更新而导致差异,请以实际下载到的代码为准。

本文后续提到的编译和运行都以在20181020下载到的版本为例,实际版本如下:

Slim Bootloader的编译

从上面的github下载到的代码结构如下:

可以看到其实跟EDK的结构很类似,下面介绍其中比较重要的部分:

关于上述的目录,还有一些额外的要求,以使得代码方便扩展和兼容

1. BootloaderCorePkg和PayloadPkg两者应该是独立的,互不相干。

2. PayloadPkg的代码不应该依赖于Platform或者Silicon。

3. PayloadPkg只应该依赖于BootloaderCommonPkg。

Windows下的编译

Windows下的编译需要准备如下的内容:

这里需要说明的是第一个和最后一个,而中间的几个在其它文章中都有说明,这里不再介绍。

cxFreeze是用来将Python脚本转换成Windows下的可执行文件的,这些可执行文件位于BaseTools\Bin\Win32目录下,默认源代码下是没有Win32这个目录的。

cxFreeze安装后的位置如下:

另外一个是openssl,Windows版本的openssl可以在http://gnuwin32.sourceforge.net/packages/openssl.htm下载到。

将下载到的压缩包中断bin目录放到C盘根目录下,并将bin重新命名为openssl,如下图所示:

由于没有实际的单板可以测试,所以这里只编译用于QEMU的Slim Bootloader用于测试,具体方法如下:

1. 进入源代码根目录,打开命令行窗口,运行如下的命令:

这里会先编译FSP(如果没有提前准备,这里会下载)。

关于FSP的介绍,可以参看BIOS/UEFI基础——FSP

编译完成后会将生成的文件放到如下的位置:

之后才正式开始编译Slim Bootloader,不过在此之前还是要先编译Win32下的工具(生成的工具位于BaseTools\Bin\Win32):

之后继续编译:

最后编译生成的二进制位于根目录下的Outputs目录:

Linux下的编译

暂不提供。

Slim Bootloader的使用

编译完成之后执行如下的命令:

qemu-system-x86_64 -machine q35 -m 256 -serial mon:stdio -boot order=d -pflash Outputs/qemu/SlimBootloader.bin

得到的结果如下:

注意在此之前需要已经安装了QEMU。

由于没有实际的系统可以启动所以只能看到如下的界面,但是Slim Bootloader算是正常启动了。

猜你喜欢

转载自blog.csdn.net/jiangwei0512/article/details/83211438