Skip to content

philmb3487/beastie-boot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

beastie boot

A project written in C++ that boots FreeBSD on Linux using Kexec

Beastie is a tool for booting FreeBSD. The main value of this program is adding support for FreeBSD within UEFI bootloader's. It was originally written to add FreeBSD support to ZFS Boot Menu.

How to build

cmake -B build -S .
cmake --build build -j30

If you want the disassembler listing (for debugging the boot ROM):

cmake -B build -S . -DBEASTIE_USE_LLVM=true
cmake --build build -j30

Example usage

beastie /mnt/freebsd-root

Debugging

Debugging variables can be inspected,

beastie --debug --pretend /mnt/freebsd-root

There is a lot to write about the art of debugging. A basic starting point is to run qemu with a debug server, qemu-system-x86_64 -s -S, connect to it using gdb -iex "target remote :1234" and then set a breakpoint:

symbol-file /mnt/freebsd-root/boot/kernel/kernel
hbreak hammer_time
continue

Screenshots

Running Beastie

Running beastie

FreeBSD Booting, with Font Support

FreeBSD booting

Waiting for Root Device

FreeBSD booting

Welcome!

FreeBSD booting

Known Problems

Graphics Cards and Framebuffers are Complicated

QEMU in VGA mode seems to work well. VMWare Workstation1 also seems to work well in its native VMSVGAII mode. However beastie does not seem to work yet on real hardware. This is because of VGA issues. Work is ongoing and I hope to add more support for different systems.

  • QEMU VGA
  • VMware SVGA-II
  • Alienware M18 R2 (Xe card)

Footnotes

  1. VMware Fusion and Workstation are Now Free for All Users

About

beastie is a tool for booting FreeBSD

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published