#729 r20160907 KCMA-D8 SeaBIOS Boot Menu Not Displayed

Closed
opened 8 months ago by and_who · 2 comments

The boot menu is not displayed over serial even with the following SeaBIOS runtime config set:

  • etc/show-boot-menu set to 1
  • etc/boot-menu-wait set to 5000

Questions:

  1. Possible issue with how SeaBIOS was built for r20160907? Is serial properly configured?
  2. Does this apply to the KGPE-D16 as well?
The boot menu is not displayed over serial even with the following SeaBIOS runtime config set: * `etc/show-boot-menu` set to `1` * `etc/boot-menu-wait` set to `5000` Questions: 1. Possible issue with how SeaBIOS was built for r20160907? Is serial properly configured? 2. Does this apply to the KGPE-D16 as well?
Andrew Robbins commented 6 months ago
Poster

Apparently serial console support was not added until a few months after the SeaBIOS revision used in release 20160907. As a result the only way to get a serial console is via SGABIOS (Serial Graphics Adapter BIOS) and setting some runtime configuration in CBFS. Only tested on the KCMA-D8 but should apply to the KGPE-D16 as well.

Instructions for setting up the serial console using SGABIOS are as follows.

Download sgabios hosted on Google Code and unzip:

$ wget https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/sgabios/source-archive.zip

cd to the sgabios/trunk directory and examine the sgabios.h file. Specifically, check that the defined serial port IO address and baud rate matches the one for your machine. By default sgabios assumes it is 0x3f8 and 115200, respectively, but you can easily check by examining dmesg(1) output:

$ dmesg | grep -ie ttyS0
[    7.782838] 00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A

If any changes are necessary, modify the sgabios.h file before building with make all. The only file that's important is sgabios.bin which will be copied to CBFS as a VGA ROM.

$ ./cbfstool yourrom.rom add -f /path/to/sgabios.bin -n vgaroms/sgabios.bin -t optionrom

Remove the VGA ROM already present in the release ROM as it's useless and does nothing (native graphics init does not exist for KCMA-D8/KGPE-D16 at this time).

$ ./cbfstool yourrom.rom remove -n vgaroms/vgabios.bin

Lastly, add the requisite runtime configuration to use the boot menu:

$ ./cbfstool yourrom.rom add-int -i 1 -n etc/show-boot-menu
$ ./cbfstool yourrom.rom add-int -i 5000 -n etc/boot-menu-wait
$ ./cbfstool yourrom.rom add-int -i 0 -n etc/screen-and-debug

Pad the image, if necessary, and reflash.

Apparently serial console support was not added until a few months after the SeaBIOS revision used in release 20160907. As a result the only way to get a serial console is via [SGABIOS](https://code.google.com/archive/p/sgabios) (Serial Graphics Adapter BIOS) and setting some runtime configuration in CBFS. Only tested on the KCMA-D8 but should apply to the KGPE-D16 as well. Instructions for setting up the serial console using SGABIOS are as follows. Download sgabios hosted on [Google Code](https://code.google.com/archive/p/sgabios/) and unzip: ``` $ wget https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/sgabios/source-archive.zip ``` cd to the `sgabios/trunk` directory and examine the `sgabios.h` file. Specifically, check that the defined serial port IO address and baud rate matches the one for your machine. By default sgabios assumes it is `0x3f8` and `115200`, respectively, but you can easily check by examining dmesg(1) output: ``` $ dmesg | grep -ie ttyS0 [ 7.782838] 00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A ``` If any changes are necessary, modify the `sgabios.h` file before building with `make all`. The only file that's important is `sgabios.bin` which will be copied to CBFS as a VGA ROM. ``` $ ./cbfstool yourrom.rom add -f /path/to/sgabios.bin -n vgaroms/sgabios.bin -t optionrom ``` Remove the VGA ROM already present in the release ROM as it's useless and does nothing (native graphics init does not exist for KCMA-D8/KGPE-D16 at this time). ``` $ ./cbfstool yourrom.rom remove -n vgaroms/vgabios.bin ``` Lastly, add the requisite runtime configuration to use the boot menu: ``` $ ./cbfstool yourrom.rom add-int -i 1 -n etc/show-boot-menu $ ./cbfstool yourrom.rom add-int -i 5000 -n etc/boot-menu-wait $ ./cbfstool yourrom.rom add-int -i 0 -n etc/screen-and-debug ``` Pad the image, if necessary, and reflash.
Andrew Robbins commented 6 months ago
Poster

Closing as the issue is resolved with the instructions above and retained with issue #736

Closing as the issue is resolved with the instructions above and retained with issue #736
Sign in to join this conversation.
Loading...
Cancel
Save
There is no content yet.