diff --git a/OLVASSEL.md b/OLVASSEL.md index 8c60c34..e2b96bb 100644 --- a/OLVASSEL.md +++ b/OLVASSEL.md @@ -25,8 +25,8 @@ memórialeképezéseket kezel, ami az 1-es protokoll szintnek felel meg. Gyors kipróbáláshoz találsz bootolható képfájlokat az [images](https://gitlab.com/bztsrc/bootboot/tree/master/images) mappában. -BOOTBOOT lefordítható [coreboot](https://coreboot.org) payloadként is, lásd *x86_64-cb* és *aarch64-cb*, de mivel ezek szorosan -kapcsolódnak a libpayload-hoz, nincs belőlük előre fordított bináris. +BOOTBOOT lefordítható [coreboot](https://gitlab.com/bztsrc/bootboot/tree/master/x86_64-cb) payloadként is, lásd *x86_64-cb* +és *aarch64-cb*, de mivel ezek szorosan kapcsolódnak a libpayload-hoz, nincs belőlük előre fordított bináris. BOOTBOOT Protokoll ================== diff --git a/README.md b/README.md index 25352c7..b4a4b1a 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,8 @@ static mappings which makes it a level 1 loader. For a quick test, you can find example bootable disk [images](https://gitlab.com/bztsrc/bootboot/tree/master/images) too. -BOOTBOOT can also be compiled as a [coreboot](https://coreboot.org) payload, see *x86_64-cb* and *aarch64-cb*, but since -they are tied strongly with libpayload, I do not provide binaries for those. +BOOTBOOT can also be compiled as a [coreboot](https://gitlab.com/bztsrc/bootboot/tree/master/x86_64-cb) payload, +see *x86_64-cb* and *aarch64-cb*, but since they are tied strongly with libpayload, I do not provide binaries for those. BOOTBOOT Protocol ================= diff --git a/aarch64-cb/OLVASSEL.md b/aarch64-cb/OLVASSEL.md index c824a06..c5f2c4e 100644 --- a/aarch64-cb/OLVASSEL.md +++ b/aarch64-cb/OLVASSEL.md @@ -43,6 +43,11 @@ $ make menuconfig alatta a 'Mainboard vendor' legyen '(Emulation)' alatta a 'Mainboard model' legyen 'QEMU AArch64' válaszd az 'Exit'-t + válaszd a 'Devices' menüt + válaszd a 'Display' menüt + alatta a 'Framebuffer mode' legyen 'Linear "high-resolution" framebuffer' + válaszd az 'Exit'-t + válaszd az 'Exit'-t válaszd a 'Payload' menüt válaszd az 'Add a Payload' opciót válaszd ki a 'BOOTBOOT'-ot @@ -50,6 +55,8 @@ $ make menuconfig válaszd az 'Exit'-t válaszd a 'Yes'-t ``` +Fontos, hogy a kijelzőt "linear framebuffer"-re állítsd, mert a BOOTBOOT nem kezeli az elavult, nem portolható VGA szöveges +módot. Sajnos a libpayload nem támogatja a futás időben való beállítást. ### 5. lépés - A coreboot fordítása @@ -61,7 +68,7 @@ $ make Bővebb információért lásd a [coreboot dokumentáció](https://doc.coreboot.org/mainboard/emulation/qemu-aarch64.html)t. ```sh -$ qemu-system-aarch64 -bios $(COREBOOT)/build/coreboot.rom -M virt,secure=on,virtualization=on -cpu cortex-a53 -m 1024M \ +$ qemu-system-aarch64 -bios build/coreboot.rom -M virt,secure=on,virtualization=on -cpu cortex-a53 -m 1024M \ -drive file=$(BOOTBOOT)/images/disk-rpi.img,format=raw -serial stdio ``` diff --git a/aarch64-cb/README.md b/aarch64-cb/README.md index 1bb3311..b31a747 100644 --- a/aarch64-cb/README.md +++ b/aarch64-cb/README.md @@ -43,6 +43,11 @@ $ make menuconfig Beside 'Mainboard vendor' should be '(Emulation)' Beside 'Mainboard model' should be 'QEMU AArch64' select 'Exit' + select 'Devices' menu + select 'Display' menu + Beside 'Framebuffer mode' should be 'Linear "high-resolution" framebuffer' + select 'Exit' + select 'Exit' select 'Payload' menu select 'Add a Payload' choose 'BOOTBOOT' @@ -50,6 +55,8 @@ $ make menuconfig select 'Exit' select 'Yes' ``` +It is important to set the display to "linear framebuffer", because BOOTBOOT does not handle the legacy, non-portable VGA +text mode. Sadly there's no way of configuring this in run-time with libpayload. ### Step 5 - Build coreboot @@ -61,7 +68,7 @@ $ make For more information, read [coreboot docs](https://doc.coreboot.org/mainboard/emulation/qemu-aarch64.html). ```sh -$ qemu-system-aarch64 -bios $(COREBOOT)/build/coreboot.rom -M virt,secure=on,virtualization=on -cpu cortex-a53 -m 1024M \ +$ qemu-system-aarch64 -bios build/coreboot.rom -M virt,secure=on,virtualization=on -cpu cortex-a53 -m 1024M \ -drive file=$(BOOTBOOT)/images/disk-rpi.img,format=raw -serial stdio ``` diff --git a/x86_64-cb/OLVASSEL.md b/x86_64-cb/OLVASSEL.md index 8254045..dc07ab4 100644 --- a/x86_64-cb/OLVASSEL.md +++ b/x86_64-cb/OLVASSEL.md @@ -69,7 +69,7 @@ $ make Bővebb információért lásd a [coreboot dokumentáció](https://doc.coreboot.org/mainboard/emulation/qemu-i440fx.html)t. Az [images](https://gitlab.com/bztsrc/bootboot/tree/master/images) mappában találsz lefordított coreboot.rom binárist. ```sh -$ qemu-system-x86_64 -bios $(COREBOOT)/build/coreboot.rom -drive file=$(BOOTBOOT)/images/disk-x86.img,format=raw -serial stdio +$ qemu-system-x86_64 -bios build/coreboot.rom -drive file=$(BOOTBOOT)/images/disk-x86.img,format=raw -serial stdio ``` Initrd hozzáadása a ROM-hoz @@ -82,12 +82,12 @@ $ ./mkbootimg myos.json initrd.bin ``` Ezután a coreboot repójában található `cbfstool` alkalmazással lehet az initrd lemezképet a ROM képhez hozzáadni: ```sh -$ ./build/util/cbfstool/cbfstool $(COREBOOT)/build/coreboot.rom add -t raw -f $(BOOTBOOT)/initrd.bin -n bootboot/initrd +$ ./build/cbfstool build/coreboot.rom add -t raw -f $(BOOTBOOT)/initrd.bin -n bootboot/initrd ``` Ehhez hasonlóan hozzá lehet adni egy alapértelmezett környezeti fájlt is (csak akkor használja, ha a szokásos helyeken nem találta): ```sh -$ ./build/util/cbfstool/cbfstool $(COREBOOT)/build/coreboot.rom add -t raw -f environment.txt -n bootboot/config +$ ./build/cbfstool build/coreboot.rom add -t raw -f environment.txt -n bootboot/config ``` Ez természetesen csak akkor működik, ha a libpayload `CONFIG_LP_CBFS=y` opcióval lett fordítva. Ennek hiányában az initrd egy "INITRD" nevű Flashmap partíción is elhelyezhető (bár az fmaptool és az fmd formátum kezelése nem kicsit pilótavizsgás). diff --git a/x86_64-cb/README.md b/x86_64-cb/README.md index 68a3b88..bb9861e 100644 --- a/x86_64-cb/README.md +++ b/x86_64-cb/README.md @@ -69,7 +69,7 @@ $ make For more information, read the [coreboot docs](https://doc.coreboot.org/mainboard/emulation/qemu-i440fx.html). In the [images](https://gitlab.com/bztsrc/bootboot/tree/master/images) directory you can find a precompiled coreboot.rom binary. ```sh -$ qemu-system-x86_64 -bios $(COREBOOT)/build/coreboot.rom -drive file=$(BOOTBOOT)/images/disk-x86.img,format=raw -serial stdio +$ qemu-system-x86_64 -bios build/coreboot.rom -drive file=$(BOOTBOOT)/images/disk-x86.img,format=raw -serial stdio ``` Adding Initrd to ROM @@ -82,11 +82,11 @@ $ ./mkbootimg myos.json initrd.bin ``` Then use the `cbfstool` utility in the coreboot repository to add the initrd image into the ROM image: ```sh -$ ./build/util/cbfstool/cbfstool $(COREBOOT)/build/coreboot.rom add -t raw -f $(BOOTBOOT)/initrd.bin -n bootboot/initrd +$ ./build/cbfstool build/coreboot.rom add -t raw -f $(BOOTBOOT)/initrd.bin -n bootboot/initrd ``` You can add a fallback environment configuration similarily (only used if environment cannot be loaded from the usual places): ```sh -$ ./build/util/cbfstool/cbfstool $(COREBOOT)/build/coreboot.rom add -t raw -f environment.txt -n bootboot/config +$ ./build/cbfstool build/coreboot.rom add -t raw -f $(BOOTBOOT)/environment.txt -n bootboot/config ``` Obviously this can only work if libpayload was compiled with `CONFIG_LP_CBFS=y`. Without you can still place the initrd on a Flashmap partition named "INITRD" (however using the fmaptool and dealing with the fmd format is a rocket science). @@ -106,5 +106,5 @@ Limitations ----------- - The CMOS nvram does not store timezone, so always GMT+0 returned in bootboot.timezone. - - Coreboot does not provide a way to set screen resolution, so "screen=" config option is skipped. + - Coreboot does not provide a way to set screen resolution, so "screen=" config option is not used. - Only supports SHA-XOR-CBC, no AES