qboot:Minimal x86 firmware for booting Linux kernels

Minimal x86 firmware for booting Linux kernels

分支1Tags0
文件最后提交记录最后更新时间
3 年前
10 年前
6 年前
7 年前
6 年前
6 年前
6 年前
6 年前
9 年前
3 年前
6 年前
3 年前
6 年前
6 年前
5 年前
6 年前
6 年前
6 年前
6 年前
6 年前
6 年前

一个简单的x86固件,能够启动Linux。

QEMU启动时间大部分花在:

  • 动态链接器上。通过编译精简版的QEMU,可以减少150毫秒:

    ./configure --disable-libssh2 --disable-tcmalloc --disable-glusterfs
    --disable-seccomp --disable-{bzip2,snappy,lzo} --disable-usb-redir
    --disable-libusb --disable-smartcard-nss --disable-libnfs
    --disable-libiscsi --disable-rbd --disable-spice --disable-attr
    --disable-cap-ng --disable-linux-aio --disable-brlapi
    --disable-vnc-{jpeg,tls,sasl,png,ws} --disable-rdma --disable-bluez
    --disable-fdt --disable-curl --disable-curses --disable-sdl
    --disable-gtk --disable-tpm --disable-vte --disable-vnc
    --disable-xen --disable-opengl --target-list=x86_64-softmmu

  • BIOS中。使用qboot可再节省150毫秒。

  • 对于QEMU 2.7+版本,在fw_cfg中。qboot利用DMA接口,几乎瞬间完成。

编译qboot

克隆源代码:

$ git clone https://github.com/bonzini/qboot.git

编译qboot固件(可能需要安装相应的构建依赖库):

$ meson build && ninja -C build

结果将在build/目录下生成一个名为bios.bin的64K文件。

使用方法

$ qemu-kvm -bios bios.bin
-kernel /boot/vmlinuz-4.0.3-300.fc22.x86_64
-serial mon:stdio -append 'console=ttyS0,115200,8n1'

待办事项

  • 添加配置中断控制器和PCI桥接初始化的可能性

项目介绍

Minimal x86 firmware for booting Linux kernels

定制我的领域