Console and outputs: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(47 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Coreboot has various possible consoles: | Coreboot has various possible consoles: | ||
{| class="wikitable" border="1" | |||
* [[EHCI Debug Port| Console Over EHCI debug port]] | ! Output name | ||
* [[Spkmodem| Console trough spkmodem]] | ! direction (from the coreboot target machine point of view) | ||
* [[Network console]] | ! Requirements | ||
* [[Cbmem console]] | ! Compatibility with software loaded after coreboot, like OS and payloads | ||
|- | |||
* [[POST | ! [[Serial console]] | ||
(sends coreboot logs over the serial port) | |||
| | |||
* input | |||
* output | |||
| | |||
* A supported serial port: | |||
** it can be on the mainboard | |||
** it can also be a PCIe OXPCIe952 card with the 0x1415 and 0xc158 vendor and device ID (respectively). | |||
** USB serial ports are not supported by this driver, see EHCI debug port for that. | |||
| | |||
* seabios | |||
* grub as a payload | |||
* grub running after seabios | |||
* libpayload | |||
* linux kernel (loaded after the payload) | |||
* most GNU/Linux init systems(sysvinit, systemd, upstart etc...) | |||
|- | |||
! [[EHCI Debug Port| Console Over EHCI debug port]] | |||
(sends coreboot logs over the usb debug port) | |||
| | |||
* input? | |||
* output | |||
| | |||
* An USB debug port supported by coreboot. | |||
* To find on which usb connector it goes. | |||
* A supported dongle: | |||
** A GNU/Linux computer with usb peripheral or OTG and the g_dbpg driver. Single Board computers typically have that. | |||
| | |||
* grub | |||
* linux kernel in its early initialisation (I'm not sure that it can be kept afterward, because, after the early initialisation, by default it tries to initialise the USB port normally) | |||
|- | |||
! [[EHCI Debug Port| Console Over USB serial port through EHCI debug port]] | |||
(sends coreboot logs over the usb debug port) | |||
| | |||
* input (probably not in coreboot) | |||
* output | |||
| | |||
* An USB debug port supported by coreboot. | |||
* To find on which usb connector it goes. | |||
* A supported dongle: | |||
** FTDI FT232H Serial adapter | |||
| | |||
* grub | |||
* linux kernel | |||
|- | |||
! [[Spkmodem| Console trough spkmodem]] | |||
(sends coreboot logs over the sound card) | |||
| | |||
* output only | |||
| | |||
* A working sound card that can emmit beeps boot. | |||
* On some laptops it's necessary to make sure the sound is enabled and the volume is correct to work: | |||
** On many laptops it can be done beforehand in GNU/Linux. | |||
| | |||
For writting to it from the coreboot target computer: | |||
* coreboot's console | |||
* grub's console | |||
For reading it from a remote computer: | |||
* coreboot's/grub's spkmodem_recv uttilty (same uttility, but it's available in both git repositories) | |||
|- | |||
! [[Network console]] | |||
(sends coreboot logs over the network) | |||
| | |||
* output | |||
* probably no input | |||
| | |||
* A ne2k compatible ethernet card on the coreboot target system. | |||
* A network between the coreboot computer and the computer receiving the logs. | |||
| | |||
For sending the logs: | |||
* the linux kernel | |||
For receiving the logs: | |||
* nc and similar networking uttilities. | |||
|- | |||
! [[Cbmem console]] | |||
(Ram buffer, like dmesg) | |||
| | |||
* output only for coreboot. | |||
* output for grub. Can also print cbmem console content. | |||
* It requires the computer to be booted to retrive the logs. | |||
| | |||
* To be able to boot the computer to retrieve the logs, or to extract them from the RAM. | |||
| | |||
For writting to the buffer which is in the coreboot target computer: | |||
* coreboot console output | |||
* grub console output | |||
* seabios | |||
For reading the buffer on the coreboot target computer, after coreboot booted: | |||
* grub with the cbmemc command | |||
* coreboot's userspace cbmem -c uttility | |||
|- | |||
|- | |||
! [[POST card]] | |||
| | |||
* output only. | |||
| | |||
| | |||
|- | |||
|} | |||
If none of the above works for your case, you might consider: | |||
* Trying [[Developer_Manual/Tools#Flash_emulators_.28used_to_flash_and_debug.29 | Flash emulators]] to trace the code being accessed. | |||
* [[Developer_Manual/Tools#Oscilloscope| Osciloscopes]] for hardware related lower level debuging. | |||
* [https://www.serialice.com SerialICE] if you can add support for your board serial or [[EHCI Debug Port]] in [https://www.serialice.com SerialICE] |
Latest revision as of 17:01, 24 February 2018
Coreboot has various possible consoles:
Output name | direction (from the coreboot target machine point of view) | Requirements | Compatibility with software loaded after coreboot, like OS and payloads |
---|---|---|---|
Serial console
(sends coreboot logs over the serial port) |
|
|
|
Console Over EHCI debug port
(sends coreboot logs over the usb debug port) |
|
|
|
Console Over USB serial port through EHCI debug port
(sends coreboot logs over the usb debug port) |
|
|
|
Console trough spkmodem
(sends coreboot logs over the sound card) |
|
|
For writting to it from the coreboot target computer:
For reading it from a remote computer:
|
Network console
(sends coreboot logs over the network) |
|
|
For sending the logs:
For receiving the logs:
|
Cbmem console
(Ram buffer, like dmesg) |
|
|
For writting to the buffer which is in the coreboot target computer:
For reading the buffer on the coreboot target computer, after coreboot booted:
|
POST card |
|
If none of the above works for your case, you might consider:
- Trying Flash emulators to trace the code being accessed.
- Osciloscopes for hardware related lower level debuging.
- SerialICE if you can add support for your board serial or EHCI Debug Port in SerialICE