I’ve had some troubles getting my home system use highresolution consoles, virtual-terminals, framebuffers or whatever the official name is… 🙂
It started out as installation troubles. I went out and bought SuSE 8.2 Professional, but when I started the installation (which defaults to graphical) my screen went black. I thought that it was that I had a too new graphics card – GeForce4 Ti 4800 SE, but it’s not it’s the amount of memory in the system that screws this up.
And I have now finally found the solution.
The problem is that the sourcecode for the vesa framebuffer within the kernel-source can’t handle the memory if it’s equal to or more than 1GB (I have 1GB in my home system).
After a text-based installation and then forcing the system to use the framebuffer by adding “vga=0x31B video=vesafb” at the bootprompt, the symptoms are black screen at boot until the xdm/kdm/gdm starts, then the system is usable through X but if you switch to one of the virtual terminals with Ctrl Alt F1-6 the screen goes black.
You will also get something like this message in /var/log/messages and if you look through dmesg:
vesafb: abort, cannot ioremap video memory 0x8000000 @ 0xf0000000
The solution is to apply this patch, that I found in this message, to /usr/src/linux/drivers/video/vesafb.c:
*** vesafb.c 2003-05-01 11:59:23.000000000 +0200
— vesafb.c.orig 2003-05-01 11:47:52.000000000 +0200
***************
*** 521,525 ****
video_height = screen_info.lfb_height;
video_linelength = screen_info.lfb_linelength;
! video_size = screen_info.lfb_width * screen_info.lfb_height * video_bpp;
video_visual = (video_bpp == 8) ?
FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_TRUECOLOR;
— 521,525 —-
video_height = screen_info.lfb_height;
video_linelength = screen_info.lfb_linelength;
! video_size = screen_info.lfb_size * 65536;
video_visual = (video_bpp == 8) ?
FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_TRUECOLOR;
Then rebuild your kernel, install it and reboot.