hne
Joined: 11 Jul 2008 Posts: 210 Location: Hannover
|
Posted: 08.05.2012, 16:43 Post subject: Framebuffer im OPT/57V mit eSOM/2586 |
|
|
Aktivierung des Video-Framebuffers im OTP/57V bzw. EUI/57V
Diese Anleitung zeigt die Schritte, um den Framebuffer beim OTP/57V zu aktivieren. Vorausgesetzt werden geringe Linux-Kenntnisse beim Umgang mit Dateien und Installationen eines Debian.
Der Video-Controller im OPT/57V unterstützt Auflösungen von 640x480 mit 8, 16 oder 24 bit Farbtiefe. Alle möglichen Modi können mit dem Aufruf "hwinfo --vbe | grep Mode" angezeigt werden. Das Programm "hwinfo" muss allerdings vorher installiert werden.
1. Den automatischen Start des X-Servers beenden, und den Screensaver ausschalten, indem in der Datei /home/user/.bash_profile bearbeitet wird:
Code: | nano /home/user/.bash_profile |
dann in den unteren Zeilen "startx" auskommentieren, und eine Zeile mit setterm hinzu fügen:
Code: | # this starts xserver automatically if login is done on tty1
#if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
# /usr/bin/startx
#fi
# disable screensaver
setterm -blank 0 -powerdown 0
|
Editor mit CTRL-X, y, Enter beenden (Datei beenden und speichern).
2. Boot-Loader-Konfiguration ändern
Code: | mount /dev/sda1 /mnt
nano /mnt/syslinux.cfg |
Dort drei Zeilen mit vesafb über dem "PROMPT 0" einfügen, PROMPT auf 1 und TIMEOUT auf 30 ändern:
Code: | LABEL vesafb
kernel bzImage
append root=/dev/sda5 ro console=ttyS0,115200 pnpbios=off acpi=off rootdelay=6 ssvinit video=vesafb vga=0x301
PROMPT 1
TIMEOUT 30
|
Editor mit CTRL-X, y, Enter beenden (Datei beenden und speichern).
Für 16 Bit Farbtiefe ist "vga=0x311" und für 24 Bit ist "vga=0x312" zu benutzen. Weitere Formate sind in der Kernel-Dokumentation Documentation/fb/vesafb.txt beschrieben.
3. Sicher stellen, dass man das System per serieller Schnittstelle starten kann (RCM-Jumper stecken, COM1 mit Terminal auf 115200,n,8,1).
4. System neu starten
Code: | sync ; reboot ; exit |
5. Während der Bootmeldungen des Syslinux die Taste TAB im seriellen Terminal drücken, der Bootprompt bleibt dann stehen. Dort vesafb eingeben
6. Der Framebuffer ist im Kernel einkompiliert. Die Meldungen kann man sich nach dem Start anschauen:
Code: | dmesg | grep vesafb
Kernel command line: root=/dev/sda5 ro console=ttyS0,115200 pnpbios=off acpi=off rootdelay=6 ssvinit video=vesafb vga=769 BOOT_IMAGE=bzImage
vesafb: framebuffer at 0xf8000000, mapped to 0xc8880000, using 600k, total 65472k
vesafb: mode is 640x480x8, linelength=640, pages=24
vesafb: protected mode interface info at c000:791e
vesafb: pmi: set display start = c00c7958, set palette = c00c79ac
vesafb: scrolling: redraw
vesafb: Pseudocolor: size=6:6:6:6, shift=0:0:0:0 |
7. Device anlegen:
Code: | mknod /dev/fb0 c 29 0 |
8. Bildschirm löschen:
Code: | dd if=/dev/zero of=/dev/fb0 |
9. Ein Testprogramm aus dem Internet holen (z.B. hier), auf dem Entwicklungs-PC compilieren und auf dem eSOM/2586 ausführen.
10. Man kann man bei Bedarf das Programm fbview installieren, um Bilder per Framebuffer anzuzeigen:
Code: | apt-get install ppmtofb
apt-get install netpbm
apt-get install libjpeg-progs
fbview /usr/share/pixmaps/debian-logo.png
fbview /usr/share/doc/libtiff4/html/images/*
|
11. Wenn alles korrekt funktioniert, in der Datei syslinux.cfg in der obersten Zeile "DEFAULT vesafb" eintragen und "TIMEOUT 3" setzen, damit der Framebuffer bei jedem Start automatisch gestartet wird. _________________ Henry Nestler |
|