seabios现在是很多虚拟机的默认启动bios,这跟它的短小精干有很大关系,也跟它提供比较完备的legacy支持有关。

按照以下步骤把seabios制作成coreboot的payload,

  1. 下载seabios代码,

http://code.coreboot.org/p/seabios/downloads/

最新的代码是seabios v1.7.3.1
http://code.coreboot.org/p/seabios/downloads/31/

建议先试用seabios v1.7.2,因为下面提供的参考.config文件基于seabios v1.7.2。

  1. 解压后在Linux环境下运行“make menuconfig”

如果运行该命令时报错,一般可安装所需的library解决。

对于作为coreboot的payload,最重要的是选择是选择General Features->Build Target->Build from coreboot,并按照所需选择其他选项。

提醒:我曾经因为设置Debugging->Debug Level为9,seabios在运行中死机。如果你遇到类似现象,请试着降低Debug Level到3或者更小值。

提供一个seabios v1.7.2的.config文件作为参考,在这个configure文件里,只初始化了serial port,AHCI controller。该文件已经过实际硬件验证,能启动带Legacy boot支持的的Linux。

Automatically generated make config: don’t edit

SeaBIOS Configuration

Thu Aug 15 00:02:09 2013

General Features

CONFIG_COREBOOT=y

CONFIG_QEMU is not set

CONFIG_THREADS is not set

CONFIG_RELOCATE_INIT is not set

CONFIG_BOOTMENU is not set

CONFIG_BOOTORDER is not set

CONFIG_COREBOOT_FLASH is not set

Hardware support

CONFIG_ATA is not set

CONFIG_AHCI=y

CONFIG_MEGASAS is not set

CONFIG_FLOPPY is not set

CONFIG_USB is not set

CONFIG_SERIAL=y

CONFIG_LPT is not set

BIOS interfaces

CONFIG_DRIVES=y

CONFIG_CDROM_BOOT is not set

CONFIG_PCIBIOS is not set

CONFIG_APMBIOS is not set

CONFIG_PNPBIOS is not set

CONFIG_OPTIONROMS is not set

CONFIG_BOOT=y

CONFIG_KEYBOARD is not set

CONFIG_MOUSE is not set

CONFIG_S3_RESUME is not set

CONFIG_VGAHOOKS is not set

CONFIG_DISABLE_A20 is not set

VGA ROM

CONFIG_NO_VGABIOS=y

CONFIG_VGA_GEODEGX2 is not set

CONFIG_VGA_GEODELX is not set

CONFIG_BUILD_VGABIOS is not set

Debugging

CONFIG_DEBUG_LEVEL=3
CONFIG_DEBUG_SERIAL=y
CONFIG_DEBUG_SERIAL_PORT=0x3f8
复制代码

  1. 编译,使用“make”命令

编译完成后,生成的文件在out/目录下,作为payload的文件是bios.bin.elf,而bios.bin是普通意义上的bios文件。

  1. 把bios.bin.elf做为payload编译到coreboot中。

注意:在coreboot运行“make menuconfig”,payload中选择An ELF Executable payload(非seabios),然后指定bios.bin.elf的路径与文件名。

外部链接:

coreboot & seabios,
http://www.coreboot.org/SeaBIOS

seabios的wiki:
http://en.wikipedia.org/wiki/SeaBIOS

seabios:
http://www.seabios.org/SeaBIOS
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
1.seabios编译:make menuconfig ;make;
2.版本一直在更新,最新的2022-0502
3.三种target:可以和edk打包编译csm16.bin;也可以在虚拟机qemu作为单独的启动项bios.bin;把bios.bin.elf做为payload编译到coreboot中

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐