PLEASE NOTE: This article is obsolete or related to a discontinued product.


by John Crispin

Information on the Phrozen Framebuffer for the Fox VHDL


This page is concerned with the framebuffer (FB) module for the FOX-VHDL board. The FB supports a resolution of 640 x 400 pixels at a color depth of 16 bit. At the moment the code blits the screen 4 times every second. However, more than 10 frames are possible. I have chosen 4 randomly for testing. The current version of the code is still pre-alpha, there will be a number of custom ioctls added soonish.


I have written a small tool for making bmp screenshot of the framebuffer.

To make a screenshot simply type :

# fox_fbgrab /mnt/flash/screen1.bmp

Keyboard Layout

As we are an international group of linux geeks, We want to be able to use different keyboard layout. Loadkmap has hence been compiled into the busybox executable. To load you keymap, simply type
# loadkmap < XX.bkmap
where XX needs to be replaced with your countries initials. It is a bit complicated to create one of the binary keymap files. I found a howto and here is what you need to do :
tar xvfz kbd-1.12.tar.gz
cd kbd-1.12
patch -p1 < ../kbd-bkeymap.patch
make install
dumpkeys > XX.kmap
loadkeys -b < XX.kmap > XX.bkmap
  • the keyboard now has your custom map loaded :)
There are currently the following languages available. If you have a keymap for an additional language, please send it to me, so i can include it in future sdk patches.
  • english (default)
  • french (thanks Michel)
  • german
  • italian (thanks Fabio)

Virtual Terminals

There are 4 VTs available
  • tty0, tty2 and tty3 or on the FB and can be accessed using the normal Alt + F(1-3) shortcut
  • ttyS0 on J10 this is also where the printks go to. This can however be changed in syslogd.conf

Boot Logo

It is possible to replace the standard boot logo of the FB. I have made a simple ACME one.

Controlling the framebuffer

I have written yet another small tool for controlling the framebuffer. With this tool you can enable and disable the actual framebuffer. Also you can set the refresh rate used by the driver. Note that the higher the refresh rate is, the more CPU time it will use. per default the rate is set to 6 frames per second. The following options are available.
# fbctl
Usage : fbctl -[der]
        -e    Enable framebuffer
        -d    Disable framebuffer
        -rX   framebuffer refreshrate (1-9)/s