Еще одна тема осталась недораскрытой. Поскольку sfs упоминал, что в существующем инитрд vga_detect практически не работает из-за устаревших сигнатур видеокарт, надо это как-то чинить.
Попробовал я делать такие вещи:
cat /sys/bus/pci/devices/*/modalias >pci.aliases
modinfo i915 |awk '/^alias:/{gsub(/\*/,".*",$2); print $2}' >video_intel.aliases
grep -f video_intel.aliases pci.aliases
==>pci:v00008086d00000F31sv00008086sd00000F31bc03sc00i00
То есть наличие интеловской видеокарты, обслуживаемой модулем i915 таким образом легко определяется.
Других видеокарт у меня нет так что попробовать определить таким образом nvidia или amd надо кому-нибудь, у кого они есть.
Если с ними сработает, то можно в инитрд вместо lspci и сигнатур пользоваться video_*.aliases и grep
Дальше придется решать, куда эти файлики включить. Можно в инитрд, они небольшие, но тогда по мере появления новых карт и драйверов придется время от времени инитрд перебирать, заменяя файлы свежими. Можно в сами nvidia-*.pfs включить и в процессе загрузки доставать оттуда. Пробовал делать modinfo в процессе загрузки - не сработало, в busybox modinfo другой.