久しぶりに gentoo やってみたら、 boot のところでおおいにはまる。
`gentoo-sources-6.6.21 & Full manual approach
Loading Linux newlinux ...
Loading initial ramdisk ...
_
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
で固まって何も出力されない。 エラーメッセージ出てくれー。難易度が高すぎる。
env
Ubuntu-22.04 の母艦で空きパーティションに gentoo を入れる
EFIパーティションは共有
frame buffer ?
video output が無くて出力が消えていると推測。 vesa とか efi framebuffer などの kernel 機能を組み込んでみるが 変わらず。
vanilla-6.8.9
カーネルのバージョンを変えてみる。 変わらず。
efi stub ?
EFI stub と 非EFI stub 両方とも出力が無い。
version 問題?
nokaslr はどうかと書いてあるのでやってみた。
ちょっと前進?
No suitable video mode found. Booting in blind mode
と出た。 やはり frame buffer 出力できていないぽい?
gentoo-sources-6.1.90
6.6 から問題があるような気がするので、それより古いソースを選ぶ。
make defconfig
LOCALVERSION=-custom make -j8
make modules_install
make install
変わらず。
no output と initrd で検索
CONFIG_EARLY_PRINTK_EFI=y # 見つからず
CONFIG_FB_EFI=y
CONFIG_FRAMEBUFFER_CONSOLE=y
できたー。
たぶん、
CONFIG_FRAMEBUFFER_CONSOLE=y
だ。
gentoo-sources-6.6.21 でやりなおし。
# eselect kernel list
Available kernel symlink targets:
[1] linux-6.1.90-gentoo *
[2] linux-6.6.21-gentoo
[3] linux-6.8.9
掃除して。。。
# eselect kernel list
Available kernel symlink targets:
[1] linux-6.6.21-gentoo *
# ls /boot
grub
build
# cd /usr/src/linux
# make defconfig
# make menuconfig
Device Drivers > Graphics support
Frame buffer Devices
<*> Support for frame buffer device drivers
[*] VESA VGA graphics support
[*] EFI-based Framebuffer Support
Console display driver support
[*] Framebuffer Console support
# LOCALVERSION=-fbconsole make -j8 && make modules_install && make install
Framebuffer Console support に関しては、 チェックボックスがあるときと自動で有効になっているときがあった。 条件はわからない。
/etc/default/grub も掃除
GRUB_DISTRIBUTOR="Gentoo"
GRUB_CMDLINE_LINUX=""
# grub-mkconfig -o /boot/grub/grub.cfg
# lsblk
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 512M 0 part /efi
├─sda2 8:2 0 465.7G 0 part
├─sda3 8:3 0 93.1G 0 part
├─sda4 8:4 0 93.1G 0 part /
reboot
Loading Linux newlinux ...
Loading initial ramdisk ...
_
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
あれ?
nokaslr もだめ。つまり、6.1.90 かつ CONFIG_FRAMEBUFFER_CONSOLE が必要だ。
gentoo-sources-6.1.90 でやりなおし。
# eselect kernel list
Available kernel symlink targets:
[1] linux-6.1.90-gentoo *
gentoo-sources-6.6.21 と同じ手順。
動いた。 やっとスタート地点に来た。 疲れたぞ。