Hallo Um den framebuffer zum laufen zu bringen habe ich diesbezüglich ziemlich viel gegooglet und rumprobiert, es aber noch nicht geschafft. Ich benutze den mit ubuntu kommenden 2.6.26-5-generic kernel.
1. mit v86d aus den quellen ich habe in die initramfs modulliste uvesafb hinzugefügt und upgedatet, in der /boot/grub/menu.lst steht nun bei mir folgendes:
kernel /boot/vmlinuz-2.6.26-5-generic root=//whatever// ro pci=assign-busses apicmaintimer acpi=noirq idle=poll video=uvesafb:1024x768-32,mtrr:3,ywrap
boote ich sehe ich die standartauflösung. dmesg sagt folgendes:
[ 2.552145] uvesafb: Unknown parameter `ywrap' [ 2.644143] uvesafb: failed to execute /sbin/v86d [ 2.644143] uvesafb: make sure that the v86d helper is installed and executable [ 2.644143] uvesafb: Getting VBE info block failed (eax=0x4f00, err=-2) [ 2.644143] uvesafb: vbe_init() failed with -22 [ 2.644143] uvesafb: probe of uvesafb.0 failed with error -22
Code
2. v86d selber bauen. Daraufhin wollte ich v86d selber bauen, und zwar mit der neueren version als in den quellen, nämlich der 0.1.6: Der dokumentation habe ich nämlich auch entnommen dass v86d gegen klib gebaut werden soll um von der initramfs umgebung genutzt zu werden und die version aus den Quellen ist ja gegen glibc gebaut. der erste versuch sieht folgendermaßen aus:
root@PrinzIP:/home/rafael/Desktop/v86d-0.1.6# make make -e -w -C libs/lrmi-0.10 liblrmi.a make[1]: Betrete Verzeichnis '/home/rafael/Desktop/ww/libs/lrmi-0.10' make[1]: »liblrmi.a« ist bereits aktualisiert. make[1]: Verlasse Verzeichnis '/home/rafael/Desktop/ww/libs/lrmi-0.10' klcc -Wall -g -O2 -I/lib/modules/2.6.26-5-generic/source/include -Ilibs/lrmi-0.10 -c -o v86.o v86.c In file included from v86.h:22, from v86.c:17: video/uvesafb.h:1: Fehler: expected »=«, »,«, »;«, »asm« or »__attribute__« before »--« token In Datei, eingefügt von v86.h:22, von v86.c:17: video/uvesafb.h:3:7: Fehler: zu viele Dezimalpunkte in Zahl video/uvesafb.h:6: Fehler: verirrtes »@« im Programm video/uvesafb.h:6: Fehler: verirrtes »@« im Programm video/uvesafb.h:6: Fehler: verirrtes »@« im Programm video/uvesafb.h:6: Fehler: verirrtes »@« im Programm video/uvesafb.h:7: Fehler: verirrtes »#« im Programm video/uvesafb.h:8: Fehler: verirrtes »#« im Programm video/uvesafb.h:28: Fehler: expected identifier or »(« before »+« token video/uvesafb.h:30: Fehler: verirrtes »#« im Programm video/uvesafb.h:31: Fehler: verirrtes »#« im Programm video/uvesafb.h:32: Fehler: verirrtes »#« im Programm video/uvesafb.h:33: Fehler: verirrtes »#« im Programm video/uvesafb.h:34: Fehler: verirrtes »#« im Programm video/uvesafb.h:41: Fehler: expected identifier or »(« before »+« token video/uvesafb.h:44: Fehler: verirrtes »#« im Programm video/uvesafb.h:45: Fehler: verirrtes »#« im Programm video/uvesafb.h:62: Warnung: Leere Deklaration video/uvesafb.h:63: Fehler: expected identifier or »(« before »+« token video/uvesafb.h:64: Fehler: verirrtes »#« im Programm video/uvesafb.h:78: Warnung: Leere Deklaration video/uvesafb.h:79: Fehler: expected identifier or »(« before »+« token video/uvesafb.h:80: Fehler: verirrtes »#« im Programm video/uvesafb.h:81: Fehler: verirrtes »#« im Programm video/uvesafb.h:82: Fehler: verirrtes »#« im Programm video/uvesafb.h:83: Fehler: verirrtes »#« im Programm video/uvesafb.h:84: Fehler: verirrtes »#« im Programm video/uvesafb.h:86: Fehler: verirrtes »#« im Programm video/uvesafb.h:146: Warnung: Leere Deklaration video/uvesafb.h:147: Fehler: expected identifier or »(« before »+« token video/uvesafb.h:148: Fehler: verirrtes »#« im Programm video/uvesafb.h:151: Fehler: verirrtes »#« im Programm video/uvesafb.h:154: Fehler: verirrtes »#« im Programm video/uvesafb.h:156: Fehler: verirrtes »#« im Programm video/uvesafb.h:157: Fehler: verirrtes »#« im Programm video/uvesafb.h:161: Warnung: Leere Deklaration video/uvesafb.h:162: Fehler: expected identifier or »(« before »+« token video/uvesafb.h:169: Fehler: expected identifier or »(« before »+« token video/uvesafb.h:171: Fehler: expected identifier or »(« before »+« token video/uvesafb.h:172: Fehler: verirrtes »#« im Programm video/uvesafb.h:173: Fehler: verirrtes »#« im Programm video/uvesafb.h:197: Fehler: expected identifier or »(« before »+« token video/uvesafb.h:198: Fehler: verirrtes »#« im Programm video/uvesafb.h:199: Fehler: verirrtes »#« im Programm In file included from v86.c:17: v86.h:37: Warnung: »struct v86_regs« innerhalb Parameterliste deklariert v86.h:37: Warnung: sein Gültigkeitsbereich umfasst nur diese Definition bzw. Deklaration, was Sie wahrscheinlich nicht wollten v86.h:38: Warnung: »struct uvesafb_task« innerhalb Parameterliste deklariert v86.c: In Funktion »req_exec«: v86.c:52: Fehler: Ungültige Anwendung von »sizeof« auf unvollständigen Typen »struct uvesafb_task« v86.c:54: Fehler: Dereferenzierung eines Zeigers auf unvollständigen Typen v86.c:54: Fehler: »TF_EXIT« nicht deklariert (erste Benutzung in dieser Funktion) v86.c:54: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt v86.c:54: Fehler: für jede Funktion in der er auftritt.) v86.c:57: Warnung: Übergabe des Arguments 1 von »v86_task« von inkompatiblem Zeigertyp v86.c: In Funktion »main«: v86.c:101: Warnung: Implizite Deklaration der Funktion »v86_init« make: *** [v86.o] Fehler 1
okay dachte ich und hab eine andere uvesafb.h benutzt http://www.linuxhq.com/kernel/v2.6/24/include/video/uvesafb.h und den c code an der stelle include angepasst, hat aber auch zu keinem erfolg geführt.
kann mir jemand weiterhelfen oder sagen wie ich v86d korrekt bauen kann?
lg rafael