Record of some of the computer tech I deal with so that it's documented at least somewhere.

Monday 2 August 2010

UvesaFB

just a mirror of

http://dev.gentoo.org/~spock/projects/uvesafb/

in case it ever disappears

projects::uvesafb

uvesafb is a generic framebuffer driver for Linux systems and the direct successor of vesafb-tng. Its main features are:

* works on non-x86 systems,
* the Video BIOS code is run in userspace by a helper application,
* can be compiled as a module,
* adjustable refresh rates with VBE 3.0-compliant graphic cards.

uvesafb has been available as a part of the mainline Linux kernel since 2.6.24.
uvesafb::v86d

v86d is the userspace helper that runs x86 code in an emulated environment. uvesafb will not work without v86d. v86d currently supports the x86 and amd64 (x86-64) architectures.
Latest version v86d-0.1.9.tar.bz2
GIT repository v86d.git
uvesafb::installation instructions

uvesafb is included in gentoo-sources >= 2.6.23 and from 2.6.24 onwards also in the mainline kernel. If you happen to be using any of these, you don't have to patch your kernel manually. Otherwise, just download the patch using the link above and run cd /usr/src/linux ; cat uvesafb-0.1-rc3-2.6.23-rc3.patch | patch -p1

The guide below assumes you're using Gentoo Linux. If you happen do be using another distro, replace all emerge steps with unpack ; ./configure ; make ; make install or similar.

1. cd /usr/src/linux
2. configure the kernel; in the "Device Drivers" section select:
Connector - unified userspace <-> kernelspace linker and
Graphics support ---> Support for frame buffer devices ---> Userspace VESA VGA graphics support
(that's CONFIG_CONNECTOR=y and CONFIG_FB_UVESA=y)
3. build the kernel: make
4. remerge klibc: emerge klibc
note: This step is necessary because klibc has to be compiled against a kernel tree that includes uvesafb. You only need to do this once, i.e. you won't have to remerge klibc every time you install a new kernel or a new kernel module.
5. install v86d: emerge v86d
6. reconfigure your kernel; in the "General Setup" section select:
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")
7. rebuild the kernel: make, and install it
8. add video=uvesafb:1024x768-32,mtrr:3,ywrap (or similar) to your kernel command line
9. reboot and enjoy uvesafb :)

NOTE: The older versions of klibc seem to have problems with the new unified arches in the kernel (2.6.24). To avoid these issues, use klibc-1.5.8 or newer. Thanks to David Raison for pointing this out.

No comments: