i've recently been struggling with the task of setting up my framebuffer and though i've made some progress, i still have a few problems.
i've got vesafb, vga16fb, intelfb, and i810fb compiled into my kernel(i would have to use an initrd image or something if they were modules, right?) and when i boot up, it tries to load all three drivers. so if i look at /proc/fb, it reads:
Code:
0 VESA VGA
1 VGA16 VGA
intelfb didnt load because it's screwy, but there is evidence in dmesg that the kernel tried to use it. it doesnt bother with i810fb for some reason, dont know why. what i really dont understand is why it tries to load all of these, shouldnt it just use one? how can i stop this?
according to /proc/fb, i have two framebuffer devices, one for each driver loaded, how is this possible? how do i know which framebuffer device is being used?
it seems that the second driver that is loaded, vga16fb, is not really being used, or at least the device thats using it, fb1, isn't used. fb0, with vesafb seems to be what my console uses, but what if i want to change things up and make fb0 use vga16fb? i've been told that the video= boot parameter will let me pick which driver to use for the framebuffer, but i seem to have two framebuffers, so which one would it specify the driver for?
i cant seem to get this parameter to work anyway though. i've tried entering this at lilo:
Code:
boot: mykernel video=vga16fb
the framebuffer(fb0, i think) should use the vga16fb driver. instead, what happens is what i've described above, every fb driver i have is loaded up. i've also tried testing it to give options to vesafb, since i cant switch drivers, so i enter this:
Code:
boot: mykernel video=vesafb:800-600-256
the screen resolution should be 800x600 with 256 colors, but instead it's 1024x768 with 256. if i dont enter a vga= parameter in lilo.conf or i enter vga=normal at boot, vesa has an error at startup and vga16fb is used.