-
Framebuffer setup.
Hey everyone,
I'm trying to set up Gentoo with framebuffer and not having much success yet. uvesa has been compiled into the kernel and not as a module.
I'm using
Code:
x11-base/xorg-server-1.9.5
x11-drivers/nvidia-drivers-270.18
I see the error during boot but it flashes by way too fast. I grepped these from dmesg.
Code:
dmesg |grep uvesa
[ 0.000000] Kernel command line: root=/dev/sda2 video=uvesafb:mtrr:3,ywrap,1024x768-24@60
[ 0.275532] uvesafb: failed to execute /sbin/v86d
[ 0.275713] uvesafb: make sure that the v86d helper is installed and executable
[ 0.276058] uvesafb: Getting VBE info block failed (eax=0x4f00, err=-2)
[ 0.276240] uvesafb: vbe_init() failed with -22
[ 0.276420] uvesafb: probe of uvesafb.0 failed with error -22
As you can see here, v86d is indeed installed and executable.
Code:
emerge -s v86d
Searching...
[ Results for search key : v86d ]
[ Applications found : 1 ]
* sys-apps/v86d
Latest version available: 0.1.10
Latest version installed: 0.1.10
Size of files: 68 kB
Homepage: http://dev.gentoo.org/~spock/projects/uvesafb/
Description: A daemon to run x86 code in an emulated environment.
License: GPL-2
Code:
ls -la /sbin/v86d
-rwxr-xr-x 1 root root 19480 Apr 2 19:44 /sbin/v86d
-
Make sure to activate the framebuffer options in your kernel. Once you have done that, try building the v86d initramfs into the kernel binary itself.
CONFIG_INITRAMFS_SOURCE="/usr/share/v86d/initramfs"
It will be under:
Code:
-General Setup
---Initial RAM filesystem and RAM disk (initramfs/initrd) support
-----Initramfs source file(s)
Select that, and put
Code:
/usr/share/v86d/initramfs
in the input area.
Also, make sure to compile v86d and klibc against your kernel, then recompile your kernel so that it will be compiled against the newly compiled klibc.
Fair warning though, I do not use uvesafb anymore, I use the in kernel KMS because it autodetects pretty much everything (although it conflicts with the ati and nvidia binary drivers).
If that doesn't work, try using just the vesafb driver.
One more thing, is that you don't need all that extra cruft at the end of the kernel line, just a "vga=1024x768" statement will suffice. The other is to work better with gensplash or other framebuffer decorations. Also, the official binary drivers don't support all framebuffer resolutions so you may end up just having to deal with what they support.
-
Got it working, thanks Gruven. I needed to select some framebuffer options in the kernel and once I did that everything was hunky dory.
Connector - unified userspace <-> kernelspace linker and
Graphics support ---> Support for frame buffer devices ---> Userspace VESA VGA graphics support
Initial RAM filesystem and RAM disk (initramfs/initrd) support
and use /usr/share/v86d/initramfs in Initramfs source file(s).
(that's CONFIG_INITRAMFS_SOURCE="/usr/share/v86d/initramfs")
CONFIG_FRAMEBUFFER_CONSOLE=y needs to be enabled also.
-
So how do you like your nice new framebuffer and pretty font?
-
It's pretty frigging sweet! It makes things look more orderly.
-
Just for all you guys that use the proprietary driver, I have it working on both nvidia binary drivers and ati binary drivers.
Finally, a HowTo to come soon!
Except, it will be for Funtoo, and usable for gentoo distros, but other distros that don't build their own kernel will have a little problem, lol.