[wellylug] Framebuffer troubles
pete at marchingcubes.com
Sat Jan 8 13:17:38 NZDT 2005
Richard Hector wrote:
>On Fri, Jan 07, 2005 at 01:17:55PM +1300, jumbophut wrote:
>>I've been doing some more digging. My current understanding is:
>>1) The vesafb code needs to be run in real mode, which means early in
>>the kernel boot (see vesafb.c in the kernel source).
>>2) Only one kernel is ever loaded, whether initrd is used or not. It
>>loads completely before the initrd file system is mounted, which -- I
>>understand -- is well after the kernel switches from real to protected
>>3) The initrd just runs a shell script (linuxrc), which attempts to
>>load modules, mount the real root file system and change the root to
>>the real root file system.
>>4) All the modules load fine, except vesafb, which can't load because
>>the kernel has switched to protected mode some time ago.
>>I wondered if I might be missing some trick to load the module in
>>protected mode (e.g. BIOS emulation, or using Gentoo vesafb-tng
>>patches). If not, I just don't understand why the stock Debian
>>2.6.8-1 kernel, which _requires_ initrd, would make vesafb a module
>>rather than compiling it in.
>If it has to load that early, then compiling it as a module at all would
>be pointless, because AFAIK there's no way to load modules that early,
>whether using initrd or not. So if it is compilable as a module, then
>I'd assume it can be loaded later somehow.
As I understand it passing vga=XXX params to the kernel will make it
reserve it's framebuffer memory etc. and continue booting (though no
output will be viewable on screen until the framebuffer module is loaded
at some point during the boot process) - so it is unimportant when the
module is actually loaded, however the kernel needs to be told to boot
in framebuffer mode with the correct params whether the framebuffer code
is compiled in or loaded as a module.
If the Kernel doesn't know it is to boot in framebuffer mode, then
framebuffer memory is never reserved while in real mode, and attempting
to insmod the module later will fail.
However, I know the framebuffer stuff is in a state of flux at the
moment, and whether it is actually modularizable with the latest kernels
is something it is difficult to get a straight answer on..
Personally, I have always simply compiled in the framebuffer support if
i require it.
Hope that helps
More information about the wellylug