Framebuffer
From ArmadeusWiki
On this page you will find usefull informations to have a working Linux Framebuffer on your board.
Kernel configuration
Framebuffer is already configured (for Sharp LQ043 LCD) in standard/default Armadeus kernel image.
Following instructions are only given as references or if you want to change the default LCD:
- launch Linux kernel configuration:
[armadeus]$ make linux26-menuconfig
- activates:
Device Drivers ---> Character devices ---> [*] Virtual terminal Device Drivers ---> Character devices ---> [*] Support for console on virtual terminal
- activates:
Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices ---> <*> Motorola i.MX LCD support
- and choose your LCD in:
LCD Panel (xxxx) --->
- activates:
Device Drivers ---> Graphics support ---> Console display driver support ---> <*> Framebuffer Console support
- deactivates VGA stuff & add some fonts, then choose Armadeus boot logo
Device Drivers ---> Graphics support ---> [*] Bootup logo ---> [*] 224-color Armadeus Linux logo
- recompiles the kernel:
[armadeus]$ make linux26
- now to have console on serial port, you will have to add "console=ttySMX0,115200n8" to your boot parameters
- reflash kernel image on your board and enjoy ! (you should see Linux logo on screen at startup)
Userland
Framebuffer device can be accessed with /dev/fb0.
You can activate some tools from the Buildroot's menuconfig:
$ make menuconfig Package Selection for the target ---> Graphic libraries and applications (graphic/text) ---> fbset/fbv/fbgrab
You have several test tools on yahoo groups to play a little with the framebuffer.
Tips
- To stop blinking cursor:
# echo 0 > /sys/class/graphics/fbcon/cursor_blink
- To make it blinking again:
# echo 1 > /sys/class/graphics/fbcon/cursor_blink
- To grab a screenshot of a running Framebuffer application, use FBGrab
- To enter in Framebuffer low power mode:
# echo 1 > /sys/class/graphics/fb0/blank
- To leave Framebuffer low power mode:
# echo 0 > /sys/class/graphics/fb0/blank
- To set low power mode entering time (where X is a time in minute; 0 = never):
# echo -e '\033[9;X]' > /dev/tty1 (from serial console)
or
# echo -e '\033[9;X]' (from framebuffer console)
or to set it at each boot, use /etc/inittab:
tty1::sysinit:echo -e '\033[9;X]'
Other usefull ESC sequences
- To (definitly) hide cursor:
# echo -e '\033[?17;0;0c' > /dev/tty1 (from serial console)
or
# echo -e '\033[?17;0;0c' (from framebuffer console)
- inverse screen on:
# echo -e '\033[?5h' > /dev/tty1
- inverse screen off:
# echo -e '\033[?5l' > /dev/tty1