Ubuntu 13.10 console resolution

Switching to the binary Nvidia driver usually ‘break’ the nice boot splash and console resolution in Ubuntu. It has something to do with Linux being gpl licensed and the kernel code will be tainted if you integrate non-gpl code / or the kernel crew simply won’t integrate binary code, which I personally respect .

I’ve been using some VESA framebuffer since like for many years, and for the last 3-4 years I’ve been using the uvesafb module to get high resolution console and boot splash on my desktop.
I just noticed my ‘howto’ for getting this stuff setup in Ubuntu 13.10 no longer works, well it did actually work but I was put off when the ‘hwinfo’ package no longer was available.

I google’ed this for about 20 minutes, and tried a couple solutions that didn’t work, so I’m pasting my personal ‘howto’ on how I got this working on my 13.10.

# apt-get install v86d

Reboot, and in grub type ‘c’, then type ‘vbeinfo’ to list resolutions supported by your card.

Edit your /etc/default/grub file and make sure you use your desired resolution and bit depth listed from ‘vbeinfo’

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1280x800x32,mtrr=3,scroll=ywrap"

Now scroll down a bit in that file and edit this line also to match your previous change

GRUB_GFXMODE=1280x800

Now force the use of framebuffer

# echo FRAMEBUFFER=y | tee /etc/initramfs-tools/conf.d/splash

Now update grub and your initramfs image and you’re done!

# update-grub2 && update-initramfs -u

What I used to do was installing hwinfo which would show me supported console resolutions from terminal in my X session (Unity in my case), but since Ubuntu 13.10 has dropped support for HAL ( if I got it right) that package is no longer available.
I kind of solved it with vbeinfo from within grub, but that isn’t really optimal since vbeinfo listed a lot more resolutions than could fit within 1 page, and I couldn’t pipe that command to less. Luckily I saw one of the resolutions I wanted to use so that wasn’t really a problem after all.

Note that since I’m using the uvesafb, I don’t get like really hardware accelerated console, and that if I use 1920x1080x32 which my card supports as a maximum, stuff get imho a bit slow. That is, text rolling off screen is slow and a bit stuttering.
I’ve found that 1280×800 is a perfect compromise in my case.

5 comments on “Ubuntu 13.10 console resolution

  1. fiddlefingers December 30, 2013 12:10 am

    You made the comment that vbeinfo listed more than the screen. In grub enter the command “set pager=1″ and then enter “cbeinfo”. This will pause the output so you can read it.

  2. ubu April 28, 2014 1:32 am

    This doesn’t seem to be working for me. I have a GTX 760 with dual monitors connected and according vbeinfo my monitor supports 1680×1050 so my line is
    “video=uvesafb:mode_option=1680×1050,mtrr=3,scroll=ywrap”
    and my other line is
    GRUB_GFXMODE=1680×1050

    When I issue ps aux | grep tty I can see /sbin/getty -8 38400 tty4, 1 thru 7 but when I go to tty1 there’s only kernel boot info and I can’t type anything and tty2 thru 6 are just black screens.

    Any thoughts?

    • Joar Jegleim April 28, 2014 9:34 am

      Hi !

      this console resolution in Ubuntu is getting harder and harder, I guess people see the nouveau driver as the future Nvidia driver and don’t maintain proper workarounds for people using the proprietary driver any longer (imho).
      The above steps work fine on my HP laptop with a quadro 1000m card, but I can’t seem to get this to work on my workstation at work, where I also have a quadro card actually (?)

      I’ve tried a couple times to figure this stuff out, but to be frank I’m getting a bit tired of getting this thing to work + I hardly ever have to go to tty[1-6] anymore :p
      But this is what I did on my workstation at work:
      In /etc/default/grub:
      GRUB_CMDLINE_LINUX_DEFAULT=”quiet” # I had to remove splash because my (whole)drive is encrypted and password dialog doesn’t show with binary blob + uvesafb (?)
      GRUB_GFXPAYLOAD_LINUX=”1600x1200x24″
      In /etc/initramfs-tools/modules
      uvesafb
      In /etc/modprobe.d/uvesafb.conf
      options uvesafb mode_option=1600×1200-24 scroll=ywrap

      I found this in some debian forum, haven’t got the link here, sorry.
      But even with this setup my tty’s doesn’t get the correct resolution but then I noticed that uvesafb depend on /sbin/v86d which is on my encrypted drive which led me to believe that might be the culprit, I never followed that idea trying to fix it, instead I wrote a little bash script to set resolution manually after boot ( I hardly ever boot my workstation at work, so this works for me) .

      # cat myfb.sh 
      #!/bin/bash
      
      
      fbset -g 1600 1200 1600 1200 24 --all
      
      # 
      
    • Joar Jegleim April 28, 2014 9:40 am

      oh by the way if your tty’s are all black I think mabye you’ve set a resolution that isn’t supported.
      Did you run vbeinfo at the grub prompt ? ( see above) + check out fbset’s man page on how to probe for supported resolutions. I think uvesafb must be loaded and functioning for fbset to work, so try setting resolution to 640×480 for uvesafb so you get txt in tty1, then use fbset to find a resolution that work for your card :)

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>