SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Just wanted to share this with the community. Like a lot of slackers I still use the console a lot and having always used vesa for my framebuffer because you can't use the nvidia fb with the nvidia 3d driver so I have always been stuck at 1024x768 on my 1680x1050 widescreen monitor. I decided to give the new uvesafb a try since its now stable and in the official kernel. It took me a few hours because I made some mistakes but now that I got it running I can't imagine living with out... having a 1680x1050 console framebuffer is the only way to go . You should definitely give it a try if you still use console.
Actually, I have been able to use higher resolutions with nvidia-card and vesa as well. You just have to define the correct vesa-modes, which are indeed not very easy to find. I had an app for this once called vbetest, it comes with lrmi and is also included in mplayer's vesautils. It lists the supported vesa-modes for your graphics card.
Please supply more information about either method. My monitor is a
20" digital LCD, and Linux makes it look like some hobby kit compared
to ... well, the other 2 OSes.
Actually, I have been able to use higher resolutions with nvidia-card and vesa as well. You just have to define the correct vesa-modes, which are indeed not very easy to find. I had an app for this once called vbetest, it comes with lrmi and is also included in mplayer's vesautils. It lists the supported vesa-modes for your graphics card.
I heard that you can get higher resolutions with vesa but I thought that you couldn't get widescreen resolutions with it. Is that true?
Please supply more information about either method. My monitor is a
20" digital LCD, and Linux makes it look like some hobby kit compared
to ... well, the other 2 OSes.
First thing you need to do is recompile the kernel with support for uvesafb and Connector - unified userspace <-> kernelspace linker. You will also need to add support for initial ram disk (this is in the default slackware kernel). However uvesafb relies on an external helper that will have to be loaded at boot, you can make your own initrd for this but I found a lot easier just to use the one provided and compile it into the kernel so we don't have to worry about it, to do this under "initramfs source file(s):" add the line /usr/share/v86d/initramfs... we will get to this part in a minute..
see the screenshot for a better description http://webpages.charter.net/daedra/ram.jpg
Once your kernel is recompiled and working now we need to install kilbc, you will to go ahead and install version 1.5.9 because you need at least 1.5.8 for this to work, grab the source and I used a slackbuild that I found at http://darkstar.ist.utl.pt/slackware...klibc/1.5/src/ I just edited the slackbuild to use version 1.5.9 and the kernel I was using.
Once you have klibc installed now you have to install the userspace helper for uvesafb called v86d, grab the source from http://dev.gentoo.org/~spock/projects/uvesafb/ and compile it using these options
./configure --with-klibc
make
make install (used trackinstall utulity that comes with src2pkg so that I could have a clean slackware package). Now when you unpacked the v86d source there should be a folder called "misc" in this folder is the initramfs file we need to load v86d at boot time so that uvesafb will work correctly. go ahead and open the folder and inside you will see the initramfs file, go ahead and copy that to /usr/share/v86d (remember we put this line in kernel load initrams file).
The last step is to edit /etc/lilo.conf and first thing is to uncomment any line relating to the VGA modes, like VGA=791, these are the way video modes are set using the traditional vesafb. to set uvesafb you need to add a line similiar to this
# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/sda2
label = Linux
read-only
append = "video=uvesafb:1024x768-32,mtrr:3,ywrap"
# Linux bootable partition config ends
I recommend that you only do 1024x768 at first boot because we need to test that uvesafb is working correctly and the available modes are dependent on what your video cards bios can handle. Ok after you reboot you it should be working now. Once you are loaded run this command to confirm success
dmesg | grep uvesafb
this is my output
root@slackware:~# dmesg | grep uvesafb
Kernel command line: BOOT_IMAGE=Linux ro root=802 video=uvesafb:1680x1050-32,mtrr:3,ywrap
uvesafb: NVIDIA Corporation, G92 Board - 03930004, Chip Rev , OEM: NVIDIA, VBE v3.0
uvesafb: protected mode interface info at c000:b430
uvesafb: pmi: set display start = c00cb493, set palette = c00cb4ee
uvesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da
uvesafb: VBIOS/hardware supports DDC2 transfers
uvesafb: monitor limits: vf = 75 Hz, hf = 83 kHz, clk = 150 MHz
uvesafb: scrolling: ywrap using protected mode interface, yres_virtual=2100
uvesafb: framebuffer at 0xfb000000, mapped to 0xf8880000, using 13781k, total 14336k
[<c0300000>] uvesafb_init+0x18c/0x357
which confirms that it is working. So if everything is now working and you want to increase the resolution of your console first we need to see what resolutions your card can handle, to check this do
So I guess I now have the opportunity to run 1280x768 in my console? If so, I am definitely installing this.
you can run 1024x768 with the standard vesafb, in fact it should give you the option when you installed slackware. You can check it by running "pkgtool" and re-running the lilo install script, 1024x768 should be an available option. As far as uvesafb goes, the resolutions that it will run are completely dependent on what your video cards bios can handle, I would say any card 6 years old (probably older) or newer should be able to handle a 1024x768 console.
I do know that 1024x768 is already available with the standard vesafb; I'm actually running my framebuffer console at that resolution right. It's just nice to know now that somebody has taken the liberty of creating a new vesa driver that can support widescreen resolutions like 1280x768 (my laptop's native resolution).
ooops, lol. I see now what you mean, I read your post wrong , there is a good chance that it will work if your video card bios supports, might be a worth a try, it's pretty easy to get going
Thanks for your excellent tutorial. I followed all the steps, but encountered one problem: Installing klibc (make install) didn't copy the header files in /usr/lib/klibc/include - I had to manually do it, after which v86d compiled successfully. I suppose you can add this into your tutorial (this is a known problem with klibc)
Now I am encountering a new problem uvesafb does seem to load, but gives me a lot of errors:
uvesafb: moode switch failed (eax=0x34f, err=0)
Thanks for your excellent tutorial. I followed all the steps, but encountered one problem: Installing klibc (make install) didn't copy the header files in /usr/lib/klibc/include - I had to manually do it, after which v86d compiled successfully. I suppose you can add this into your tutorial (this is a known problem with klibc)
Now I am encountering a new problem uvesafb does seem to load, but gives me a lot of errors:
uvesafb: moode switch failed (eax=0x34f, err=0)
Do you also get something similar?
Hmm, I wasn't aware that there was a problem with that. I used a buildscruipt over at slacky.eu and it worked fine for me, but I guess I can make a note of that. did you check to see what supported resolutions your video bios can handle? Because if you are trying to run a resolution that isn't supported it will fail. did you compile the v86d initrd into the kernel or are you running seperate?
I just edit this post to say that I did also get this error before but it was before I installed klibc and built v86d with the -with-klibc option. You could give the buildscripts in the above post a try and see if they work for you. I suppose there is a small possibility something is missing in the kilbc install
this is an excellent article; thanks for taking the time to post it!
I will be looking into this myself, but have no timeline on this yet. LOL, I have never even used an initrd, so I have a little more learning to do before getting to this stage.
But 1680x1050 on my framebuffer/console would really be nice!
Now, if ONLY I could find a way (believe me, I have done my searching) to activate and use my additional monitor(s) when in console mode, I'd be tickled
Sasha
PS - yes, I have necroposted, but this thread is worth revisiting IMHO.
Last edited by GrapefruiTgirl; 08-05-2009 at 03:20 PM.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.