2023-09-01 (Fr) [長年日記]
_ GRUB2 のデバッグの仕方
virtualbox のシリアルが使える。
-
コード
#include <grub/serial.h>
しておいて、
static struct grub_serial_port *debug_ser = NULL; static void debug_init(void) { debug_ser = grub_serial_find("com0"); }
この関数を
GRUB_MOD_INIT(gfxterm) { grub_term_register_output ("gfxterm", &grub_video_term); debug_init(); }
みたいに追加で呼んでやる。
文字を送信する時には、以下のようにする。
static void debug_putchar(int c) { if (debug_ser) grub_serial_port_put(debug_ser, c); }
必要な時に必要な文字をこれで送る。
-
virtualbox
- シリアルポートの設定で COM1 を Raw ファイルにして、/tmp/serial とかに設定する。
- 仮想マシンを起動して
tail -f /tmp/serial
すると、シリアル経由で送られてきたものが見える。
な〜んて便利!
で……
GRUB2 の端末部分って index color なのか… びっくりだ。
[ツッコミを入れる]