Comment 26 for bug 447765

Revision history for this message
chrisp (rhein-ufer-weg) wrote :

I have had the same problem on my LG P300 with an nvidia chip. IMHO this is a problem related to GRUB2, a graphical console and the initrd:

1. I can boot with grub-legacy and the parameter vga=0x0361 no problems (I read the kernel and initrd from an ext3 partition, but set root=(my karmic ext4-partition). grub2 no longer supports 'vga=', you need to use 'set gfxpayload='.

2. If I boot with grub2 and 'set gfxpayload=1280x800', I get the garbled console.

3. grub2 itself works all right in 1280x800 ('set gfxmode=1280x800').

My solution:

It seems that the kernel needs some framebuffer-modules to set the gfxpayload correctly:

a) Edit /etc/initramfs-tools/modules and insert the modules
fbcon
vesafb
vga16fb

b) Edit /etc/modprobe.d/blacklist-framebuffer.conf and comment out with a # the lines
blacklist vesafb
blacklist vga16fb

after editing the lines should look like this:

# blacklist vesafb
# blacklist vga16fb

The kernel does not load the added modules unless you comment the out in the blacklist.

c) Update your initrd:
First make a backup of your current initrd:
cd /boot
sudo cp initrd.img-$(uname -r) initrd.img-$(uname -r).orig
The do the actual update:
sudo update-initramfs -u

d) 'ls -l /boot/initrd.img-$(uname -r)' should now show you your new initrd (check if the date and time are very recent)

e) reboot. You should now have your console back in the mode that you chose with 'set gfxpayload='

f) If anything goes wrong with your reboot because of the new initrd, you need to choose the old initrd in grub2:
when in grub2, press 'e' so you can edit the commands
go to the line starting with 'initrd'
after the file name, add '.orig' so the original file is used
now you should be able to boot