Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

The LinuxBoot project is working to enable Linux to replace your firmware on all platforms.

License

GPL-2.0, GPL-2.0 licenses found

Licenses found

GPL-2.0
LICENSE
GPL-2.0
COPYING
NotificationsYou must be signed in to change notification settings

linuxboot/linuxboot

The LinuxBoot project allows you to replace your server's firmware with Linux.

Supported server mainboards

  • qemu emulated Q35 systems
  • Intel S2600WF
  • Dell R630
  • Winterfell Open Compute node (works well)
  • Leopard Open Compute node (works well)
  • Tioga Pass Open Compute node (works well)
  • Monolake Open Compute node (not tested)

Build instructions

Make sure you have installed the dependenciesuuid-dev,nasm, andacpica-tools (or equivalent for your distribution).

You need to provide:

  • The vendor UEFI firmware for the mainboard
  • A Linux kernel built with theCONFIG_EFI_BDS option enabled
  • Aninitrd.cpio file with enough tools tokexec the rest of the system.

For theinitrd, theHeads firmware oru-root systems work well.Both will build minimal runtimes that can fit into the few megabytesof space available.

For everything except qemu, you'll need to copy the vendor ROM dumptoboards/$(BOARD)/$(BOARD).rom. Due to copyright restrictions, we can'tbundle the ROM images in this tree and you must supply your own ROM fromyour own machine. qemu can built its own ROM from theedk2 tree,so this is not necessary.

Configure the build system:

cp path/to/s2600wf.rom boards/s2600wf/make \BOARD=s2600wf \KERNEL=../path/to/bzImage \INITRD=../path/to/initrd.cpio.xz \configmake

This will write the values into the.config file so that you don'tneed to specify them each time. If all goes well you will end up witha file inbuild/$(BOARD)/linuxboot.rom that can be flashed to your machine.It will take a while since it also clones the LinuxBoot patched versionoftianocore/edk2 UDK2018 branchand build it.

Emulating with qemu

If you want to experiment with LinuxBoot you can run it under qemu.No ROM file is necessary, although you still need a Heads or NERF runtimekernel/initrd pair. You can launch the emulator by running:

make run

This will use your current terminal as the serial console, whichwill likely mess with the settings. After killing qemu by closingthe window you will need to runstty sane to restore the terminalsettings (echo is likely turned off, so you'll have to type this inthe blind).

Adding a new mainboard

CopyMakefile.board from one of the other mainboards and edit it to matchyour new board's ROM layout. The qemu one is not the best example since it hasto match the complex layout of OVMF; most real mainboards are not this messy.

You'll need to figure out which FVs have to be preserved, how much spacecan be recovered from the ME region, etc. The per-board makefile needsto set the following variables:

  • FVS: an ordered list of IFD, firmware volumes and padding
  • linuxboot-size: the final size of the ROM image in bytes (we should verify this against the real ROM instead)

Previous Implementations

For reference,earlier approaches are documented.Have a look at those in case you want to add a board that was already supported.There is knowledge in terms of what had to be done in order to deploy LinuxBoot.

More info

About

The LinuxBoot project is working to enable Linux to replace your firmware on all platforms.

Topics

Resources

License

GPL-2.0, GPL-2.0 licenses found

Licenses found

GPL-2.0
LICENSE
GPL-2.0
COPYING

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors28

Languages


[8]ページ先頭

©2009-2025 Movatter.jp