1. The mystery of what loads the fbcon driver on i915 systems without cryptsetup has been solved, the intel Xorg driver hardcodes a "modprobe fbcon" into it
2. The fbcon driver needs to be loaded when you have a framebuffer, but can't just be a "depends" of the modules since the KMS ones (i915, radeon, etc.) allow mode setting to be optional. A simple fix for this is a udev rule in 80-drivers.rules with the others:
Things found out so far:
1. The mystery of what loads the fbcon driver on i915 systems without cryptsetup has been solved, the intel Xorg driver hardcodes a "modprobe fbcon" into it
2. The fbcon driver needs to be loaded when you have a framebuffer, but can't just be a "depends" of the modules since the KMS ones (i915, radeon, etc.) allow mode setting to be optional. A simple fix for this is a udev rule in 80-drivers.rules with the others:
3. hooks/kernelextras could probably be massively simplified to just add the kms modules, it should not "force_load fbcon" and should just add it
4. vesafb is in a special /initrd directory, this can probably go away and be replaced by a manual_add_modules in hooks/kernelextras
5. scripts/ init-top/ framebuffer can mostly just go away, we should let udev load the graphics driver and thus fbcon
Unsolved things:
a. How should we load usplash when it's included in the initramfs? If we do this on a udev rule, that's fair enough.
b. But then, how do we load vesafb if we don't have a different graphics driver?