mirror of
https://gitlab.com/bztsrc/bootboot.git
synced 2023-02-13 20:54:32 -05:00
Updated docs
This commit is contained in:
parent
7914657ce5
commit
d475acef85
6 changed files with 27 additions and 13 deletions
|
@ -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.
|
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
|
BOOTBOOT lefordítható [coreboot](https://gitlab.com/bztsrc/bootboot/tree/master/x86_64-cb) payloadként is, lásd *x86_64-cb*
|
||||||
kapcsolódnak a libpayload-hoz, nincs belőlük előre fordított bináris.
|
és *aarch64-cb*, de mivel ezek szorosan kapcsolódnak a libpayload-hoz, nincs belőlük előre fordított bináris.
|
||||||
|
|
||||||
BOOTBOOT Protokoll
|
BOOTBOOT Protokoll
|
||||||
==================
|
==================
|
||||||
|
|
|
@ -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.
|
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
|
BOOTBOOT can also be compiled as a [coreboot](https://gitlab.com/bztsrc/bootboot/tree/master/x86_64-cb) payload,
|
||||||
they are tied strongly with libpayload, I do not provide binaries for those.
|
see *x86_64-cb* and *aarch64-cb*, but since they are tied strongly with libpayload, I do not provide binaries for those.
|
||||||
|
|
||||||
BOOTBOOT Protocol
|
BOOTBOOT Protocol
|
||||||
=================
|
=================
|
||||||
|
|
|
@ -43,6 +43,11 @@ $ make menuconfig
|
||||||
alatta a 'Mainboard vendor' legyen '(Emulation)'
|
alatta a 'Mainboard vendor' legyen '(Emulation)'
|
||||||
alatta a 'Mainboard model' legyen 'QEMU AArch64'
|
alatta a 'Mainboard model' legyen 'QEMU AArch64'
|
||||||
válaszd az 'Exit'-t
|
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 a 'Payload' menüt
|
||||||
válaszd az 'Add a Payload' opciót
|
válaszd az 'Add a Payload' opciót
|
||||||
válaszd ki a 'BOOTBOOT'-ot
|
válaszd ki a 'BOOTBOOT'-ot
|
||||||
|
@ -50,6 +55,8 @@ $ make menuconfig
|
||||||
válaszd az 'Exit'-t
|
válaszd az 'Exit'-t
|
||||||
válaszd a 'Yes'-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
|
### 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.
|
Bővebb információért lásd a [coreboot dokumentáció](https://doc.coreboot.org/mainboard/emulation/qemu-aarch64.html)t.
|
||||||
```sh
|
```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
|
-drive file=$(BOOTBOOT)/images/disk-rpi.img,format=raw -serial stdio
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,11 @@ $ make menuconfig
|
||||||
Beside 'Mainboard vendor' should be '(Emulation)'
|
Beside 'Mainboard vendor' should be '(Emulation)'
|
||||||
Beside 'Mainboard model' should be 'QEMU AArch64'
|
Beside 'Mainboard model' should be 'QEMU AArch64'
|
||||||
select 'Exit'
|
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 'Payload' menu
|
||||||
select 'Add a Payload'
|
select 'Add a Payload'
|
||||||
choose 'BOOTBOOT'
|
choose 'BOOTBOOT'
|
||||||
|
@ -50,6 +55,8 @@ $ make menuconfig
|
||||||
select 'Exit'
|
select 'Exit'
|
||||||
select 'Yes'
|
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
|
### Step 5 - Build coreboot
|
||||||
|
|
||||||
|
@ -61,7 +68,7 @@ $ make
|
||||||
|
|
||||||
For more information, read [coreboot docs](https://doc.coreboot.org/mainboard/emulation/qemu-aarch64.html).
|
For more information, read [coreboot docs](https://doc.coreboot.org/mainboard/emulation/qemu-aarch64.html).
|
||||||
```sh
|
```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
|
-drive file=$(BOOTBOOT)/images/disk-rpi.img,format=raw -serial stdio
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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
|
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.
|
[images](https://gitlab.com/bztsrc/bootboot/tree/master/images) mappában találsz lefordított coreboot.rom binárist.
|
||||||
```sh
|
```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
|
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:
|
Ezután a coreboot repójában található `cbfstool` alkalmazással lehet az initrd lemezképet a ROM képhez hozzáadni:
|
||||||
```sh
|
```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
|
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):
|
találta):
|
||||||
```sh
|
```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
|
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).
|
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).
|
||||||
|
|
|
@ -69,7 +69,7 @@ $ make
|
||||||
For more information, read the [coreboot docs](https://doc.coreboot.org/mainboard/emulation/qemu-i440fx.html). In the
|
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.
|
[images](https://gitlab.com/bztsrc/bootboot/tree/master/images) directory you can find a precompiled coreboot.rom binary.
|
||||||
```sh
|
```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
|
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:
|
Then use the `cbfstool` utility in the coreboot repository to add the initrd image into the ROM image:
|
||||||
```sh
|
```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):
|
You can add a fallback environment configuration similarily (only used if environment cannot be loaded from the usual places):
|
||||||
```sh
|
```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
|
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).
|
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.
|
- 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
|
- Only supports SHA-XOR-CBC, no AES
|
||||||
|
|
Loading…
Reference in a new issue