
Hallo Leute, ich habe vorhin Plex86 [1] compiliert (CVS-tarball, vor 3 Tagen heruntergeladen) Der Aufruf von configure und make lief durch (wenn auch mit einigen Warnings, aber keine Errors) Die Ausgaben von configure und make liegen "ab gleich" auf http://tux.boltz.de.vu/linux/plex86/ (wäre nett, wenn das mal jemand überfliegt, da ich zum erstenmal ein Linux-Programm kompiliert habe ;-) Jetzt habe ich das Problem, dass sich das Kernelmodul plex86.o nicht laden lässt. Das ganze erfolgt über ein Script, das plex86 beiliegt. Dieses Script ruft insmod auf: --------- load_module.sh ------------------------ #! /bin/bash # A simple script to load up the kernel module and create the device # nodes for it. # this must be run as root # Work out where the module is kmodule="`dirname $0`/../kernel/plex86.o" # Check that root is executing us [...] # Check if the module exists if [ ! -f "$kmodule" ]; then [...] # Check if the module is already loaded if [ "x`grep plex86 /proc/devices`" != "x" ]; then echo "The kernel module is already loaded!" exit -1 fi # Remove any stale device nodes # (extend for any minor devices created in the future) rm -f /dev/plex86 # Load up the module with insmod /sbin/insmod $kmodule # Check if the module loaded major=`grep plex86 /proc/devices | awk '/plex86/ {print $1;}'` if [ "x$major" = "x" ]; then echo "The kernel module failed to load!" exit -1 fi # Create the device node and set its permissions [...] ------------------------------------------------- Ergebnis des Scriptaufrufs: # ./load_module.sh ./../kernel/plex86.o: init_module: Invalid argument Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters The kernel module failed to load! Auch ein manuelles insmod bringt die gleiche Fehlermeldung. Gleichzeitig erscheint in /var/log/messages: May 20 21:05:03 tux kernel: retrieve_vm_pages returned error. May 20 21:05:03 tux kernel: retrieve_monitor_pages returned error Das Laden des Moduls mit modprobe funktioniert ebenfalls nicht. Die Fehlermeldung lautet bei modprobe: # modprobe ./plex86.o modprobe: Can't locate module ./plex86.o Wobei das "Can't locate..." nicht stimmt, die Moduldatei ist definitiv da ;-) Ich verwende Kernel 2.4.16-4GB von SuSE. Kennt irgendjemand das Problem und kann mir weiterhelfen? google hat mir bisher nichts brauchbares ausgespuckt; auf der Mailingliste zu plex86 ist das Problem schon mal aufgetaucht, aber es gibt noch keine Lösung dafür. (Ich habe gestern mal bei Thomas Breitfeld angefragt, er hat das Problem ebenfalls, wenn auch auf einem 2.4.10er Kernel. Eine Lösung hat er bisher nicht gefunden.) Nunja, auf dieser Liste gibt es wohl mehr Augen, die sich das ganze mal ansehen können ;-) Gruß Christian Boltz [1] für die, die es nicht kennen: plex86 ist eine freie Implementierung einer virtuellen Maschine, ähnlich vmware PS: Es wäre schön, wenn plex86 laufen würde, denn... -- Linux - life is too short for reboots. Registrierter Linux-Nutzer #239431

Hallo, On Wed, 22 May 2002, Christian Boltz wrote:
ich habe vorhin Plex86 [1] compiliert (CVS-tarball, vor 3 Tagen heruntergeladen)
Hab ich gerade eben auch gemacht ;)
Sieht bei mir aehnlich aus, bis auf ein paar Warnings die ich abgeschaltet habe (-Wno-unused z.B. ;)
Jetzt habe ich das Problem, dass sich das Kernelmodul plex86.o nicht laden lässt.
Bei mir klappt das (scheitert dann aber am fehlenden HDD-Image, das ist aber nur logisch, das das Image nicht existiert). Das Kernelmodul wird anstantslos geladen (und scheint zu funktionieren).
# Work out where the module is kmodule="`dirname $0`/../kernel/plex86.o"
Wo genau rufst du wie das script auf? dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ su -c ./load_module.sh Password: The kernel module is sucessfully installed. dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ grep plex /proc/devices 254 plex86 dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ /newsw3/Build/plex86/ ist das Stamm-Verzeichnis der entpackten/CVS Sourcen, das mit dem configure... dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ cd ../user/ dh@slarty[4]:/newsw3/Build/plex86/user (0) $ ./plex86 -f ../conf/win95 Processing command-line options Opening VM (/dev/plex86) Processing config file ../conf/win95... Allocating 16MB of physical memory in VM Mapping virtualized physical memory into monitor Zeroing virtualized physical memory Mapping monitor print buffer into user mem. bochs: [cmos] Setting initial clock to: Wed Sep 29 07:12:13 1999 bochs: font_width = 8 bochs: font_height = 16 bochs: default_depth = 24 bochs: waiting for MapNotify bochs: MapNotify found. bochs: vga: interval=200000 bochs: TTY not used, serial port is not connected bochs: bx_options.floppy_command_delay = 500 bochs: Opening image for device 0 bochs: panic, could not open hard drive image file '../../62M.980115' Shutting down plugins bochs: Note: X11: bx_gui_c::exit() not implemented yet. Unmapping guest physical memory. Unmapping monitor print buffer. Tearing down VM Closing VM dh@slarty[4]:/newsw3/Build/plex86/user (0) $ cd ../misc/ dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ su -c ./unload_module.sh Password: The kernel module is no longer installed. dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ Das "panic, ..." ist klar. Wo kein Image ist, kann nix geoeffnet werden ;) Da muss ich mind. die conf noch anpassen bzw. mal createdisk.sh aufrufen :)
Ich verwende Kernel 2.4.16-4GB von SuSE.
2.4.16-2 (Vanilla Kernel, 2te config ;) Da es also auf meinem (recht chaotischen) System klappt, kannst du mal mehr "Input" liefern? - obige Frage: wo und wie genau rufst du das script auf? - Falls es bei dir nach obigem Muster nicht klappt: Aender mal die Zeile /sbin/insmod $kmodule in 'misc/load_module.sh' um in /sbin/insmod -v $kmodule und maile das Ergebnis hier. Vielleicht fehlt dir ein anderes Modul oder sonstwas... -dnh PS: ich wollte plex86 eh schon lange mal testen, falls es halbwegs laeuft (sagen wir mal "DOS kommt hoch"), dann bastel ich evtl. ein "install" und bessere scripte ;) PPS: *hehe* Disk-Image mal eben erzeugt... loeppt soweit: "Error loading operating System", was ja bei nem genullten Image klar ist *g* --

Hallo David, hallo Leute, Am Donnerstag, 23. Mai 2002 04:21 schrieb David Haller:
Das verstehe ich mal so, dass Du meine configure- und make-Logs mal überflogen hast. Wie gesagt, plex86 ist das erste Programm, das ich selbst kompiliere. Da kann man schnell einen Fehler übersehen.
Schön wärs ;-)
genau so (nur dass es bei mir in /home/cb/plex86/plex86-current-2002-05-20/misc liegt) Ich habe es auch schon mit su - ./load_module.sh probiert -> gleicher Fehler.
Password: The kernel module is sucessfully installed.
Bei Dir...
dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ grep plex /proc/devices 254 plex86
Gibt bei mir leider nichts aus :-(
Da beklagt sich plex86 bei mir, dass das Kernelmodul nicht geladen ist (was ja auch stimmt) :-(
Ich verwende Kernel 2.4.16-4GB von SuSE.
2.4.16-2 (Vanilla Kernel, 2te config ;)
Hat SuSE da was kaputtgepatcht? Kannst Du mit diesen Meldungen aus /var/log/messages was anfangen? May 20 21:05:03 tux kernel: retrieve_vm_pages returned error. May 20 21:05:03 tux kernel: retrieve_monitor_pages returned error Beim Greppen hatte ich Fundstellen in folgenden Dateien: - ChangeLog - ein Uralteintrag - kernel/host-linux.o und kernel/plex86.o sind Binaries. (wohl vom Compiler erzeugte Zwischendateien) - kernel/host-linux.c - dort sind die Funktionen retrieve_vm_pages und retrieve_monitor_pages definiert -> hier wäre ein Ansatzpunkt. Wenn Du Debug-Code einbauen möchtest, um den Fehler zu lokalisieren: Mein Compiler meldet sich freiwillig zum Testen ;-) Leider habe ich von C bisher keine Ahnung, sodass ich es nicht selbst testen kann.
Im Prinzip wie Du auch (siehe oben) Ich habe auch schon probiert, insmod manuell aufzurufen, auch das liefert den bekannten Fehler.
-v: done. su -c ./load_module.sh Password: ./../kernel/plex86.o: init_module: Invalid argument Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters The kernel module failed to load! insmod ist also nicht gesprächiger geworden. Aufgrund der Fehlermeldungen und der Fundstellen von grep würde ich den Fehler in plex86.o bzw. host-linux.c suchen.
Dann solltest Du mal die plex86-devel ML subscriben, falls nicht schon geschehen. Ich lese dort seit gestern mit (eigentlich falsch, ich möchte mitlesen, bisher gab es aber noch nichts zu lesen ;-) Gruß Christian Boltz -- Registrierter Linux-Nutzer #239431 Linux - life is too short for reboots.

Hallo, On Sat, 25 May 2002, Christian Boltz wrote:
Jep.
Hm. [..]
Steht vor diesen Meldungen noch was?
Objektdateien, um genau zu sein.
- kernel/host-linux.c - dort sind die Funktionen retrieve_vm_pages und retrieve_monitor_pages definiert -> hier wäre ein Ansatzpunkt.
Genau. Da findet sich dann auch, dass plex86 davor bei Fehlern jew. ein KERN_WARNING ausspuckt, das muesste dann eine der folgenden sein: printk(KERN_WARNING "plex86: retrieve_vm_pages: addr NULL!\n"); printk(KERN_WARNING "plex86: retrieve_vm_pages: not enough pages!\n"); printk(KERN_WARNING " npages(%u) > max_pages(%u)\n", n_pages, max_pages); printk(KERN_WARNING "plex86: page list is too small!\n"); printk(KERN_WARNING "n_pages=%u, max_pages=%u\n", n_pages, max_pages); (n_pages und max_pages sind dabei irgendwelche Zahlen, im log landet das dann im ueblichen Format mit "Timestamp tux kernel: " + der jew. Meldung oben jew. nach dem 'KERN_WARNING '). Such danach mal in /var/log/messages und /var/log/warn. Oder mach ein tail -f auf beide Dateien und versuch nochmal das Modul zu laden. Eine der Meldungen muesste eigentlich auftauchen.
Wenn Du Debug-Code einbauen möchtest, um den Fehler zu lokalisieren: Mein Compiler meldet sich freiwillig zum Testen ;-)
*g* Erstmal das, was es schon gibt ausnuetzen ;)
Aufgrund der Fehlermeldungen und der Fundstellen von grep würde ich den Fehler in plex86.o bzw. host-linux.c suchen.
host-linux.o wird aus host-linux.c erstellt, und das zusammen mit anderen .o Dateien dann zu plex86.o. host-linux.c ist also die richtige Stelle, genauer die Funktion 'retrieve_vm_pages' in dieser.
Jo, stimmt, mach ich dann ggfs. :) -dnh -- 11. The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better. --- Eric S. Raymond, "The Cathedral and the Bazaar"

Hallo David, hallo Leute, Am Samstag, 25. Mai 2002 10:54 schrieb David Haller:
Leider nein (nur das su, danach kommt auch gleich wieder, dass die su-Sitzung beendet wurde). Ich habe auch schon tail -f mitlaufen lassen und ein paarmal Return gedrückt. Es kommen nur diese beiden Zeilen. [1] Immerhin habe ich die Quellen ausfindig gemacht: host-linux.c, ab Zeile 229 (init_module) /* retrieve the monitor physical pages */ if (!retrieve_monitor_pages()) { printk(KERN_ERR "retrieve_monitor_pages returned error\n"); err = -EINVAL; goto fail_retrieve_pages; } host-linux.c, ab Zeile 911 (retrieve_monitor_pages) if (n_pages == 0) { printk(KERN_ERR "retrieve_vm_pages returned error.\n"); return( 0 ); /* Error. */ } Da sollte man wohl an die entsprechenden Stellen ein paar printk setzen... (oder in eine andere Datei schreiben, aber da weiß ich (noch) nicht, wie das geht ;-)
leider nichts in /var/log/messages oder warn zu finden :-( Die Funktionen scheinen also vorher abgebrochen zu werden, oder?
Gruß Christian Boltz [1] Ich habe gerade nochmal in der plex-devel ML nachgesehen, dort kam vorher noch [...] schlepptop kernel: plex86: retrieve_vm_pages: ret with n=0 Die Fehlermeldung stammt von Thomas Breitfeld, mehr kann ich dazu nicht sagen ;-) -- Registrierter Linux-Nutzer #239431 Linux - life is too short for reboots.

Hallo David, hallo Leute, noch ein paar Ergänzungen zu meiner letzten Mail. Ich mache "Fortschritte" nach dem Motto: Drei Schritte vor und zwei zurück ;-) Am Samstag, 25. Mai 2002 20:47 schrieb Christian Boltz:
Scheint so :-( Inzwischen lässt sich das Modul manchmal (!) laden. Also: cd /verzeichnis/zu/plex86/misc su for i in `seq 1 100` ; do ./load_module.sh ; done geht meistens ;-) Das kann doch nicht die Lösung sein, oder?
Inzwischen habe ich host_linux.c - InitModule() mit ein wenig Gesprächsbereitschaft kompiliert. Die jeweiligen Ausgaben (im Fehlerfall) stehen in /* */ jeweils in der Folgezeile. /* register the device with the kernel */ err = register_chrdev(plex_major, "plex86", &plex86_fops); printk(KERN_WARNING "plex86 cb1: err = %d\n", err); /* err = 254, also eigentlich kein Fehler */ printk(KERN_WARNING "plex86 cb1: plex_major = %d\n", plex_major); /* plex_major = 0 */ if (err < 0) { [...] } [...] /* register the /proc entry */ #ifdef CONFIG_PROC_FS #if LINUX_VERSION_CODE >= VERSION_CODE(2,3,25) if (!create_proc_info_entry("driver/plex86", 0, NULL, plex86_read_procmem)) printk(KERN_ERR "plex86: registering /proc/driver/plex86 failed\n"); printk(KERN_WARNING "plex86 cb2: executed cb 2\n"); /* wird ausgeführt */ #else proc_register_dynamic(&proc_root, &plex86_proc_entry); printk(KERN_WARNING "plex86 cb3: executed cb 3\n"); /* wird _nicht_ ausgeführt */ #endif #endif /* register /dev/misc/plex86 with devfs */ #ifdef CONFIG_DEVFS_FS printk(KERN_WARNING "plex86 cb4: executed\n"); /* wird _nicht_ ausgeführt */ my_devfs_entry = [...] if (!my_devfs_entry) printk(KERN_ERR "plex86: registering misc/plex86 devfs entry failed\n"); #endif /* retrieve the monitor physical pages */ printk(KERN_WARNING "plex86 cb5: executed (mark)\n"); /* wird ausgeführt */ if (!retrieve_monitor_pages()) { printk(KERN_ERR "retrieve_monitor_pages returned error\n"); err = -EINVAL; printk(KERN_WARNING "plex86 cb6: err = %d \n", err); /* err = -22 */ goto fail_retrieve_pages; [...] In /var/log/messages erscheinen außer meinen Meldungen weiterhin nur die bereits genannten 2 Fehlermeldungen. Falls sich das Modul tatsächlich einmal laden lässt, steht folgendes in /var/log/messages: May 26 19:11:20 tux kernel: plex86 cb1: err = 254 May 26 19:11:20 tux kernel: plex86 cb1: plex_major = 0 May 26 19:11:20 tux kernel: plex86 cb2: executed cb 2 May 26 19:11:20 tux kernel: plex86 cb5: executed (mark) May 26 19:11:20 tux kernel: 1 monitor pages located May 26 19:11:20 tux kernel: host CR0=0x8005003B May 26 19:11:20 tux kernel: und beim Versuch, ein (nicht existierendes) Image zu booten: May 26 19:12:28 tux kernel: plex86: vm_t size is 265224 May 26 19:12:28 tux kernel: guest_cpu.cr0 = 0x60000010 May 26 19:12:28 tux kernel: Using 174/1024 PTE slots in 4Meg monitor range. May 26 19:12:28 tux kernel: Soweit, so gut. Dann habe ich mal mit dem createdisk-Script ein Diskimage (500 MB) erzeugt und mit fdisk die CHS-Werte eingetragen. Anschließend habe ich die conf/win95 angepasst und ./plex86 -f ../conf/win95 aufgerufen. Das Ergebnis war ein sofortiger Reboot meines Pinguins :-( Er hatte nichtmal Zeit, irgendeine Logdatei zu schreiben. So langsam habe ich das Gefühl, dass ich auf einen Vanilla-Kernel umsteigen muss... Für weitere Tips bin ich natürlich dankbar. Gruß Christian Boltz -- Registrierter Linux-Nutzer #239431 Linux - life is too short for reboots.

Hallo David, hallo Leute, Am Dienstag, 28. Mai 2002 01:15 schrieb Christian Boltz:
noch ein paar Ergänzungen zu meiner letzten Mail. Ich mache "Fortschritte" nach dem Motto: Drei Schritte vor und zwei zurück ;-)
Meine Fortschritte werden größer...
Inzwischen habe ich das linux-src.rpm von den SuSE 8.0-CDs (Kernel 2.4.18) installiert, entpackt, den Kernel anhand der /proc/config.gz von 2.4.16-4GB (SuSE-Kernel) konfiguriert (Config kaum verändert). Man braucht eben einen Grund, mal einen Kernel zu kompilieren, auch wenn er mit der SuSE-einfach-alles-Config gebaut ist ;-) Dann habe ich plex86 neu kompiliert... läuft :-))) Jetzt muss ich nur noch Windows ins Fenster sperren... Ein Wehrmutstropfen bleibt: Momentan habe ich die Auswahl [1], ob ich - 2.4.18-cb booten möchte, mit dem plex86 läuft, oder - 2.4.16-4GB-SuSE, bei dem der Soundtreiber vorhanden ist. Aber das finde ich wohl auch noch raus, wie ich dem 2.4.18 die Flötentöne beibringe ;-) Gruß Christian Boltz [1] dank Davids Multikernel-HowTo - wirklich hilfreich! -- Registrierter Linux-Nutzer #239431 Linux - life is too short for reboots.

Hallo Christian, Sorry, ich war irgendwie leicht "indisponiert" oder so ;( On Fri, 31 May 2002, Christian Boltz wrote:
*g*
s.u.
Man braucht eben einen Grund, mal einen Kernel zu kompilieren, auch wenn er mit der SuSE-einfach-alles-Config gebaut ist ;-)
*lol* Jup. Oder auch nicht :)
Dann habe ich plex86 neu kompiliert... läuft :-)))
*Wow*. Freut mich. Waere nun echt mal interessant, an was es lag... Leider kenn (und habe) ich keine SuSE Kernels neuer als 2.2.10...
Jetzt muss ich nur noch Windows ins Fenster sperren...
? Meinst du: Win halt auf das Image bringen? Oder laeuft plex bei dir nur Fullscreen? Ich nehm mal ersteres an, das hab ich auch noch vor mir :)
Ohem, jo, warum nicht. Wundert mich zwar, da du von der SuSE-config ausgegangen bist, aber so ganz spontan wuerde ich tippen, dass du ALSA verwendest und das muss seperat kompiliert werde (ich kenn mich damit aber nicht aus, da fuer meine Mozart mit OPTi Chip von anno '95 der Treiber im Kernel am besten "funzt" ;) Das heisst, du musst vermutlich ALSA fuer den neuen Kernel nachkompilieren. Ansonsten melde dich nochmal. Und falls du bei der Gelegenheit den Kernel auch mal abspecken[2] und die initrd loswerden willst, dito ;) Wenn ich mich recht an das letzte SuSE .config erinnere, da ist ein Haufen unnoetiges Zeug mit dabei...
[1] dank Davids Multikernel-HowTo - wirklich hilfreich!
Oh, merci vielmals!!! Und das erinnert mich, dass ich das doch schon ewig endlich updaten will... *grummel* (u.a. mit einem Hinweis bzgl. Nutzen/Ueberfluessigkeit der initrd)... Apropos: Danke an alle, die zu o.g. "HOWTO" Info-Schnipsel beigetragen haben! IIRC kam einer der entscheidenden hier ueber die Liste, leider weiss ich nicht mehr was und von wem. Aber die alten Hasen hier, die dafuer in Frage kommen haben sowieso (pauschal) ein Lob verdient :) -dnh, seit, aehm, fast "schon immer" nur vanilla-kernel direkt von (de.)kernel.org verwendend, teilweise (z.B. mit reiserfs) zurechtgepatcht ;) [1] NMF (s.o.) [2] Mein aktueller Kernel (relativ viel fest einkompiliert)[3] hat: # ls -l /boot/bzImage-`uname -r`; du -hs /lib/modules/`uname -r` -rw-r--r-- 1 root root 1017606 Apr 8 20:17 /boot/bzImage-2.4.16-2 5.0M /lib/modules/2.4.16-2 Und von den Modulen ist im Normalbetrieb eher wenig geladen, da ich doch einiges unnoetiges mitkompiliert habe[4]. # lsmod | awk '{print $2}' | xargs echo | \ sed 's/Size//;s/ /+/g;s/^+//' | bc 485232 Das sind: die SCSI+CDROM, Firewall-, Sound- und TV-Module [3] Im Vergleich zu -1 habe ich nur devfs wieder rausgenommen... Ich kompiliere wirklich nicht viele Kernel (und noch weniger verwende ich dann ;) Die letzten, die hier im "Betrieb" liefen waren: 905903 Jun 29 2000 /boot/bzImage-2.4.0-test1 [wg. HW-Aenderung!] 844591 Jul 31 2000 /boot/bzImage-2.4.0-test1-1 [dito/fine-tuning] 742288 Aug 3 2000 /boot/bzImage-2.4.0-test4-1 [dito] 822401 Sep 19 2001 /boot/bzImage-2.4.0-test4-2 [dito] 1030080 Dec 14 02:33 /boot/bzImage-2.4.16-1 [wg. HW-Aenderung!] 1017606 Apr 8 20:17 /boot/bzImage-2.4.16-2 [fine-tuning, s.o.] Apropos: ich hab die Tage mal in den Changelogs des 2.5.* rumgewuehlt, der scheint z.Z. wirklich noch _ziemlich_ experimentell, da aendert sich einiges gegenueber 2.4.x... z.Z. fuer nicht Kernel-Entwickler ganz sicher nicht zu empfehlen ;) Ich hoffe nur, dass der Sprung zu 2.6/2.7 konsequenter durchgefuehrt wird, als der von 2.2 zu 2.4... 2.5 wurde IMO zu spaet von 2.4 abgespalten (ich sach nur "VM")... Zum Glueck hab ich die Misere komplett verpasst (s.o. von 2.4.0-test{1,4} zum IME stabilen 2.4.16 :)) [4] u.a. _alle_ nls_ Module, das sind allein schon ca. 700kb ;) -- Ceci n'est pas une .signature.

Hallo David, hallo Leute, Am Samstag, 1. Juni 2002 04:58 schrieb David Haller:
Ohne zwingenden Grund siegte bisher meine angeborene Faulheit ;-)
Du kannst gern mit SuSE-2.4.16-4GB testen, der sollte im Updateverzeichnis der 7.3 liegen und hat sich definitiv nicht mit plex86 vertragen. Allerdings dürfte die Fehlersuche ein wenig schwierig werden, wenn man gegen die Weltmeister im Kernelpatchen antritt ;-)
Jetzt muss ich nur noch Windows ins Fenster sperren...
? Meinst du: Win halt auf das Image bringen?
Ganz genau. Nur schade, dass die Doku so knapp ist. Da muss wohl mal wieder Google ran...
Oder laeuft plex bei dir nur Fullscreen?
Die Option hab ich noch gar nicht gefunden...
Ich nehm mal ersteres an, das hab ich auch noch vor mir :)
Hast Du zum Installieren eines OS in plex86 irgendwas an Doku gefunden? In der Doku zu plex86 sieht es etwas schwach aus :-(
Dürfte es wohl sein. Beim booten wird alsasound als failed angemeckert ;-) Ich habe heute probiert, alsa per rpm --rebuild neu zu kompilieren. Da anscheinend bei der 7.3 der alsa-source Bestandteil des (SuSE)-Kernel-Source ist (ich habe zumindest kein src.rpm auf den CDs entdeckt), habe ich es mit dem src.rpm der 8.0 probiert - Fehlanzeige. Nach dieser problematischen Variante habe ich einfach mal ein locate 1371 gemacht - Tataa, es gibt ein Kernelmodul für meine Soundkarte. Nach einem modprobe es1371 und Start eines Mixers wurde mein Pinguin wieder etwas lauter ;-) Jetzt brauche ich nur noch ein Startscript, das beim Booten das Modul lädt und die Soundeinstellungen vornimmt (z. B. sollte Line in voll aufgedreht sein, da schleife ich die Stereoanlage durch. Nicht zu vergessen: Master Volume ;-) aumix scheint dafür ganz brauchbar zu sein. Also: Auf Wiedersehen, ALSA!
Ansonsten melde dich nochmal. Und falls du bei der Gelegenheit den Kernel auch mal abspecken[2] und die initrd loswerden willst, dito ;)
Welche initrd? *g* Soviel habe ich schon verändert, dass ext3 und jbd fest einkompiliert sind. Dann blieben im Vergleich zur alten initrd von SuSE 2.4.16-4GB noch zwei Module: - ne (ne2000-ISA-Netzwerkkarte) -> da ich das Netzwerk erst im Runlevel 3 brauche, habe ich das vorläufig als Modul gelassen. Wie ist es eigentlich, wenn ich dieses Modul fest einkompiliere? Wie werden dann Parameter zu IO-Port und IRQ übergeben? modules.conf? - usbcore brauche ich gar nicht, da keine USB-Geräte vorhanden ;-) Ach so, der schöne bunte Rahmen um tty1, der beim SuSE-Kernel auch in der initrd liegt, ist bei meinem selbstkompilierten Kernel auch nicht vorhanden. Kann man den wieder irgendwie hinbekommen?
Wenn ich mich recht an das letzte SuSE .config erinnere, da ist ein Haufen unnoetiges Zeug mit dabei...
Stimmt. Das Problem ist nur, dass ich noch nicht so recht weiß, _was_ davon überflüssig ist ;-)
Ich denke, da kommen die meisten selbst drauf - spätestens, wenn sie reiserFS nutzen und vergessen haben, die initrd zu erstellen... ;-)
Und welche Patches empfiehlt der Fachmann derzeit? Bisher habe ich nichts vermisst. Das liegt aber wohl daran, dass ich den neuen Kernel erst 2x gebootet habe.
Bei mir hat der Kernel "nur" 890k, dafür aber rund 24 MB in /lib/modules/2.4.18-cb. Ja, ich sollte die Kernelconfig wohl mal aufräumen ;-)
Bei mir: 379728, und zwar Module Size Used by es1371 25984 1 gameport 1328 0 [es1371] ac97_codec 9312 0 [es1371] soundcore 3280 4 [es1371] nfsd 65008 4 (autoclean) parport_pc 25376 1 (autoclean) lp 5856 0 (autoclean) parport 21856 1 (autoclean) [parport_pc lp] ipv6 123392 -1 (autoclean) ne 6416 1 (autoclean) 8390 5856 0 (autoclean) [ne] isa-pnp 27824 0 (autoclean) [ne] ipt_REJECT 2784 1 (autoclean) ipt_LOG 3152 1 (autoclean) iptable_nat 12752 0 (autoclean) (unused) ip_conntrack 12624 1 (autoclean) [iptable_nat] iptable_filter 1728 1 (autoclean) ip_tables 10400 6 [ipt_REJECT ipt_LOG iptable_nat iptable_filter] ide-scsi 7536 0 nls_iso8859-1 2880 3 (autoclean) nls_cp437 4384 3 (autoclean) David, erstmal vielen Dank für Deine Hilfe. Ohne Deine Bestätigung, dass plex86 gestartet werden kann, hätte ich wohl immer noch keinen Kernel kompiliert und die Versuche mit plex86 vorerst aufgegeben. Bezüglich der Verträglichkeit von plex86 und SuSE-Kerneln werde ich eine Mail an feedback@suse.de schreiben. Die dürften sich freuen, mal wieder von mir zu hören. Im Gegensatz zur verbreiteten Meinung ist feedback@suse.de nämlich nicht immer nur ein schwarzes Loch ;-) Gruß Christian Boltz -- Registrierter Linux-Nutzer #239431 Linux - life is too short for reboots.

Hallo Christian, On Sun, 02 Jun 2002, Christian Boltz wrote:
*g* Ist bei mir ja auch so, aber v.a. als ich die ersten Kernel selbst kompiliert hab, hab ich relativ haeufig neukompiliert[1] und bei der Gelegenheit eben ggfs. auch gleich den aktuellen Kernel genommen. Der eigentlicher Anlass war aber so in den letzten 2-3 Jahren immer eine Hardware Aenderung bzw. z.B. beim Umstieg von 2.2.x auf 2.4.0-test1 war, dass meine SCSI-Karte von dem dann unterstuetzt wurde ;) Allerdings habe ich zwischendurch auch mal testhalber Kernel kompiliert.
*g* Ne danke, nen 2.4.16 hab ich selbst am laufen und wozu brauch ich bei 320 MB Ram die config fuer 1-4 GB? (oder waren's 2-4?)
Jo. Das hab ich auch noch vor mir... Hab mich die letzten Tage allerdings auch nicht weiter damit beschaeftigt...
Oder laeuft plex bei dir nur Fullscreen?
Die Option hab ich noch gar nicht gefunden...
Oh, keine Ahnung ob's die gibt :)
Stimmt. Naja, im Prinzip halt wie mit ner HDD, ich frickel mir evtl. was mit dd und/oder nem hexeditor zusammen, das wuerde ich dir aber nicht unbedingt empfehlen... Ich weiss jetzt leider noch nicht, wie das Image in plex angesprochen wird, d.h. wie's mit dem partitionieren bzw. formatieren angeht, dann brauch man eben noch passende Bootsektoren (mit mkdosfs wird leider kein passender BR in die Partition geschrieben, bei ner HD braucht man dann noch ein 'sys'). Mehr verlagern wir evtl. besser zu PMs ;)
Treffer versenkt :))
Soweit ich hier mitbekommen habe, ist Alsa eigentlich recht einfach neuzukompilieren, aber meine Karte kennt das eh net, und somit hab ich mich nie damit beschaeftigt ;)
'aumix -L', steht bei mir in der ~/.profile :) Wie man abspeichert, weiss ich grad nicht mehr, IIRC ist's aber aus der TUI heraus moeglich.
*hehe*
Ich habe meine Karte auch als Modul konfiguriert, konkret lade (und entlade) das Modul sogar jew. beim online/offline gehen (ist nur die fuer ADSL) im (selbstgeschriebenen) pppoe[2] init-script ;)
Als Kernelparameter beim booten, mit LILO also per append-Zeile oder direkt am LILO prompt. Je nachdem wie die Optionen aussehen... Aber lasse es doch einfach als Modul, oder mountest du z.B. /home via NFS? *g*
- usbcore brauche ich gar nicht, da keine USB-Geräte vorhanden ;-)
Dito. Und so Zeug wie der HAM-Kram o.ae. sowieso nicht :)
Ist nen Kernelpatch, der wurde "neulich" sogar in der c't beschrieben, der Name ist mir aber natuerlich propmt entfallen, aber IIRC gibt's nen SDB Eintrag zum Thema, heisst irgendwas mit *bootsplash*.html (oder nur splash)... Achso, den Framebuffer brauchst du dazu auch noch. Ich frag mich aber sowieso wozu das ganze ;) Auch bei Win* druecke ich meist auf ESC um den Splash wegzubekommen *g*
Koennen wir wg. mir gern mal per PM durchgehen. [Multikernel-HowTo updaten]
*hehe* Ja, aber ich bekam auch von anderen gute Argumente, weswegen ich zumindest einen Hinweis einbauen sollte. Hab ich sogar schon so gut wie fertig formulliert...
Die die noetig sind :) z.Z. ist das bei mir, ohem, *gruebel*, ich glaub nur einer von mir selbst (nicht veroeffentlich oder so), mit dem ich einen Test auf ein buggy FXSR-Aligment abschalte[3], die Kernels laufen stabil wie eh und je (der Test kam irgendwann mal dazu) -- leider weiss ich gerade nicht mehr genau was der Grund war, hat IIRC was mit der Kombination Compiler/CPU zu tun, und evtl. erkennt der Test das bei meinem gepatchten gcc flasch, jedenfalls laufen die so gepatchten Kernel so seit bald nem Jahr.
Bisher habe ich nichts vermisst. Das liegt aber wohl daran, dass ich den neuen Kernel erst 2x gebootet habe.
*g*
*g* Apropos: Ne Nummer (ne laufende, oder z.B. das Datum) wuerde ich schon noch anhaengen, also z.B. -cb-1 oder -cb-20020501 (oder so) :)
Ja, ich sollte die Kernelconfig wohl mal aufräumen ;-)
Ja. Und s.o.
Brauchst du den? [Parport/lp] Der Kram ist bei mir auch als Modul, aber eben normalerweise nicht geladen.
ipv6 123392 -1 (autoclean)
Whut? Du verwendest schon IPv6 in der Praxis??? Solltest du IMO zumindest so konfigurieren, dass das nur bei Bedarf geladen wird, dazu musst du wohl z.B. das ::1 (oder so) aus der /etc/hosts rausschmeissen. [Ethernet]
isa-pnp 27824 0 (autoclean) [ne]
Hab ich fest drin. [iptables] Hab ich ebenso ;) laden/entladen mach ich explizit (v.a. eben das entladen) im init-script der FW :)
ide-scsi 7536 0
Das wird unnoetigerweise geladen: ich hab kein Modul gesehen, dass das verwenden wuerde. Als entweder (auch) fest in den Kernel oder den Rest auch als Modul und dann so konfigurieren, dass es nur bei Bedarf geladen wird (was bei mir klappt --> config-Tips/Abgleich evtl. per PM). # lsmod | grep -i 'ide\|scsi\|cd\|sr' videodev 4832 3 (autoclean) [bttv] #### ja, ich hab 'videodev' grad noch verwendet ;) # mount /cdrom # lsmod | grep -i 'ide\|scsi\|cd\|sr' sr_mod 14960 2 (autoclean) ide-scsi 7920 1 (autoclean) cdrom 29216 0 (autoclean) [sr_mod] scsi_mod 92656 2 (autoclean) [sr_mod ide-scsi] videodev 4832 3 (autoclean) [bttv] So sollte das sein :)
nls_iso8859-1 2880 3 (autoclean) nls_cp437 4384 3 (autoclean)
Huch? latin1 nicht fest im Kernel? Das wird ja wohl immernoch praktisch immer gebraucht. nls_cp437 braucht man z.B. um FAT- Partitionen zu mounten, hab ich aber auch als Modul: # lsmod | grep nls # mount /winc # lsmod | grep nls nls_cp437 4384 1 (autoclean)
David, erstmal vielen Dank für Deine Hilfe.
Bitte, bitte. Macht mir (so) ja auch Spass, und nebenbei lerne ich auch immer wieder was :)
*g* s.o. Ohne deine Anregung waere plex86 bei mir wohl noch laenger unkompiliert/-installiert vergammelt :)
Oh, dann muss ich das bei Gegebenheit auch mal wieder probieren, meine Erfahrungen waren bisher eben leider anders geartet -- ist allerdings auch schon ne Weile her, und mag ja sein, dass u.a. mein (und das anderer) Gejammer hier was geholfen hat *g* (und *eg* Richtung SuSE ;) -dnh [1] Ich habe mich HW/Treiber-maessig "vorgetastet" und bis alles dann lief waren diverse neue Kernel faellig, mit den ersten Kernels ging nicht viel mehr als booten ;) Mit der Zeit kam dann Treiber fuer Treiber dazu :) [2] Kernel-Treiber: Weder smpppd noch pppoed, nur die Kernelmodule (pppoe und pppox) sowie der gepatchte pppd-2.4.1 mit pppoe-Modul. [3] Der Test wurde irgendwann zwischen 2.4.0-test4 und 2.4.10 so geaendert, dass der Kernel bei mir nicht mehr kompilierte... Ich hab ein #ifdef drumrumgehaengt, und teste das also einfach nicht mehr, da ja die etwas aelteren 2.4.x liefen. Und offenbar auch die neueren. Obwohl ich davon eigentlich auch keine Ahnung habe, glaube ich, dass da der header include/asm-i386/bugs.h zu gcc-vanilla/Intel-spezifisch ist, das ganze ist in check_fpu()... Ich muesste mich da wohl mal mit dem passenden Autor kurzschliessen, woran es liegt oder so ;) Mein Kommentar (der im 'if') zum #ifdef: ==== schnipp ==== /* Enable FXSR and company _before_ testing for FP problems. */ /* * Verify that the FXSAVE/FXRSTOR data will be 16-byte aligned. */ if (offsetof(struct task_struct, thread.i387.fxsave) & 15) { /* Do EXPECT Oopses all over the place, if you define * NO_FXSR_ALIGNMENT_CHECK and have a broken compiler that * this is supposed to catch! */ #ifndef NO_FXSR_ALIGNMENT_CHECK extern void __buggy_fxsr_alignment(void); __buggy_fxsr_alignment(); #endif } if (cpu_has_fxsr) { ==== schnapp ==== Und nein, ich verrate jetzt nicht wie man das passende define definiert *eg* Ok, Philipp, du darfst mich jetzt "schlagen" *lol* -- Merke: Wenn eine Frage nicht mit 42 beantwortet werden kann, ist die Frage ungültig. [Christopher Splinter in dag°]

Hallo David, hallo Leute, Am Montag, 3. Juni 2002 06:50 schrieb David Haller:
zur Vorsorge - falls Du mal ein paar RAM-Riegel findest ;-) Ich habe übrigens mal die Unverträglichkeit von plex86 und SuSE-Kerneln in die plex86-ML gepostet. Die entsprechende Mail und die zugehörige Antwort leite ich mal vorsorglich an Dich weiter, falls Du noch nicht subscribed bist ;-)
Ich hab vorhin noch was gefunden: http://www.plex86.org/cgi-bin/cvsweb.cgi/plex86/docs/txt/DOS622.HOWTO?annota... Darin geht es zwar darum, DOS zu installieren. Theoretisch müsste es wohl klappen, plex86 von einer DOS/Windows-Startdiskette zu booten (?) Vom Linuxtag 2001 habe ich noch ein pdf zu plex86, da gabs einen Vortrag dazu. Ich müsste nur mal reinschauen, was alles drinsteht ;-) Apropos Linuxtag - wer kommt alles nach Karlsruhe? Ich bin voraussichtlich am Samstag da.
*g*
Im Verzeichnis misc liegt ein createdisk.sh (und createdisk.README). Das Script hat zwar das Problem, nur virtuelle Platten bis 504 MB zu erstellen (1024 C/16 H/63 S). Das Image wird anschließend einfach mit fdisk partitioniert, statt /dev/hdx einfach ./diskimage angeben. Ach ja, in fdisk vorher die CHS-Werte auf das setzen, was das createdisk.sh ausgespuckt hat.
Mehr verlagern wir evtl. besser zu PMs ;)
Gern.
Tja, das src.rpm von SuSE 8.0 scheint nicht mit der 7.3 zu wollen ;-) Was solls, das Kernelmodul tuts ja auch.
Nö, wieso sollte ich? Anders ausgedrückt: Mein Gelegenheitsserver hat zu wenig Platz. Der würde wohl schon mit dem Listenarchiv überladen, hat eben nur eine 540MB-Platte. Abzüglich der Linux-Installation incl. Apache, Samba, ... bleibt da nicht mehr allzuviel übrig ;-)
- usbcore brauche ich gar nicht, da keine USB-Geräte vorhanden ;-)
Dito. Und so Zeug wie der HAM-Kram o.ae. sowieso nicht :)
Stimmt, da ist wohl ausmisten angesagt ;-)
Wäre schön, wenn Du das "zufällig" rausfindest, wie der Patch heißt ;-) In der SDB steht zwar, wie man den Splashscreen ändert - aber eben für den SuSE-Kernel, sprich, ein anderes Bild in die initrd kopieren...
Achso, den Framebuffer brauchst du dazu auch noch.
Framebuffer ist schon im Kernel drin, da seh ich wenigstens den Pinguin.
Ich frag mich aber sowieso wozu das ganze ;) Auch bei Win* druecke ich meist auf ESC um den Splash wegzubekommen *g*
Der Splash verdeckt die Bootmeldungen nicht. Stell ihn Dir einfach wie einen Bilderrahmen vor, da ist das Bild (=Bootmeldungen / Konsole) ja auch noch sichtbar ;-) Allerdings kam auch schon vereinzelt der Wunsch auf, die Bootmeldungen "auszublenden". Das geht auch, wenn man eben den freien Bereich als 1x1 Pixel groß definiert ;-)
Mal sehen. Im Moment ist meine Zeit ein wenig knapp bemessen.
Korrektur, heute der 3. Start. Läuft immer noch. Hatte auch nichts anderes erwartet ;-)
notiert.
Ja, ich sollte die Kernelconfig wohl mal aufräumen ;-)
Gelegentlich ja. z. B., wenn ich meinen Gelegenheitsserver mit den neuesten Updates versorgen möchte ;-)
Da läuft der Drucker drüber. Außerdem hängt am gleichen Parallelport noch mein Scanner (Medion MD9890 von Aldi), der unter Linux allerdings noch nicht läuft. Google war nicht sonderlich ergiebig und die Anfrage bei Medion hat sein Monaten ein Timeout ;-) Von daher werde ich IMHO nicht auf das parport-Modul verzichten können.
ipv6 verwende ich bisher nicht. von daher -> notiert.
Wird eben zum CD-Brennen per IDE-Brenner benötigt (und wohl auch dann, wenn man eine CD im Brenner mounten will) Die SDB empfiehlt einfach ein modprobe in der boot.local, was wohl der einfachste Weg ist. Wenn Du es per modules.conf eingebunden hast, würde mich die Config-Zeile mal interessieren.
*g* Wobei man jetzt wieder behaupten könnte, das nachladen der Module benötigt $little Millisekunden ;-)
Das ist von der SuSE-einfach-alles-Config. Für den nächsten Kernel gelobe ich Besserung ;-)
*g*
Erwarte aber bitte nicht bei _jeder_ Mail eine Antwort ;-) Die Mail bezüglich plex86 und SuSE-Kernel ging gestern an feedback@suse.de - mal sehen, ob eine Antwort kommt... Ach ja, eine Antwort kommt garantiert immer: das Ticket [$bignum] von feedback. Gelegentlich habe ich aber auch schon echte, handgetippte ;-) Antworten bekommen. Gute Nacht Christian Boltz -- Registrierter Linux-Nutzer #239431 Linux - life is too short for reboots.

Am Freitag, 31. Mai 2002 21:10 schrieb Christian Boltz:
Aber das finde ich wohl auch noch raus, wie ich dem 2.4.18 die Flötentöne beibringe ;-)
ich habe bei mir meine Soundkarte in den Kernel kompillert. das funktioniert super, zumidest bei mir. Hab einen SB live. Probier das doch auch noch. Gruß Matthias -- Matthias Nattrodt Olching http://www.olching-net.de

Hallo, On Wed, 22 May 2002, Christian Boltz wrote:
ich habe vorhin Plex86 [1] compiliert (CVS-tarball, vor 3 Tagen heruntergeladen)
Hab ich gerade eben auch gemacht ;)
Sieht bei mir aehnlich aus, bis auf ein paar Warnings die ich abgeschaltet habe (-Wno-unused z.B. ;)
Jetzt habe ich das Problem, dass sich das Kernelmodul plex86.o nicht laden lässt.
Bei mir klappt das (scheitert dann aber am fehlenden HDD-Image, das ist aber nur logisch, das das Image nicht existiert). Das Kernelmodul wird anstantslos geladen (und scheint zu funktionieren).
# Work out where the module is kmodule="`dirname $0`/../kernel/plex86.o"
Wo genau rufst du wie das script auf? dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ su -c ./load_module.sh Password: The kernel module is sucessfully installed. dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ grep plex /proc/devices 254 plex86 dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ /newsw3/Build/plex86/ ist das Stamm-Verzeichnis der entpackten/CVS Sourcen, das mit dem configure... dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ cd ../user/ dh@slarty[4]:/newsw3/Build/plex86/user (0) $ ./plex86 -f ../conf/win95 Processing command-line options Opening VM (/dev/plex86) Processing config file ../conf/win95... Allocating 16MB of physical memory in VM Mapping virtualized physical memory into monitor Zeroing virtualized physical memory Mapping monitor print buffer into user mem. bochs: [cmos] Setting initial clock to: Wed Sep 29 07:12:13 1999 bochs: font_width = 8 bochs: font_height = 16 bochs: default_depth = 24 bochs: waiting for MapNotify bochs: MapNotify found. bochs: vga: interval=200000 bochs: TTY not used, serial port is not connected bochs: bx_options.floppy_command_delay = 500 bochs: Opening image for device 0 bochs: panic, could not open hard drive image file '../../62M.980115' Shutting down plugins bochs: Note: X11: bx_gui_c::exit() not implemented yet. Unmapping guest physical memory. Unmapping monitor print buffer. Tearing down VM Closing VM dh@slarty[4]:/newsw3/Build/plex86/user (0) $ cd ../misc/ dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ su -c ./unload_module.sh Password: The kernel module is no longer installed. dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ Das "panic, ..." ist klar. Wo kein Image ist, kann nix geoeffnet werden ;) Da muss ich mind. die conf noch anpassen bzw. mal createdisk.sh aufrufen :)
Ich verwende Kernel 2.4.16-4GB von SuSE.
2.4.16-2 (Vanilla Kernel, 2te config ;) Da es also auf meinem (recht chaotischen) System klappt, kannst du mal mehr "Input" liefern? - obige Frage: wo und wie genau rufst du das script auf? - Falls es bei dir nach obigem Muster nicht klappt: Aender mal die Zeile /sbin/insmod $kmodule in 'misc/load_module.sh' um in /sbin/insmod -v $kmodule und maile das Ergebnis hier. Vielleicht fehlt dir ein anderes Modul oder sonstwas... -dnh PS: ich wollte plex86 eh schon lange mal testen, falls es halbwegs laeuft (sagen wir mal "DOS kommt hoch"), dann bastel ich evtl. ein "install" und bessere scripte ;) PPS: *hehe* Disk-Image mal eben erzeugt... loeppt soweit: "Error loading operating System", was ja bei nem genullten Image klar ist *g* --

Hallo David, hallo Leute, Am Donnerstag, 23. Mai 2002 04:21 schrieb David Haller:
Das verstehe ich mal so, dass Du meine configure- und make-Logs mal überflogen hast. Wie gesagt, plex86 ist das erste Programm, das ich selbst kompiliere. Da kann man schnell einen Fehler übersehen.
Schön wärs ;-)
genau so (nur dass es bei mir in /home/cb/plex86/plex86-current-2002-05-20/misc liegt) Ich habe es auch schon mit su - ./load_module.sh probiert -> gleicher Fehler.
Password: The kernel module is sucessfully installed.
Bei Dir...
dh@slarty[4]:/newsw3/Build/plex86/misc (0) $ grep plex /proc/devices 254 plex86
Gibt bei mir leider nichts aus :-(
Da beklagt sich plex86 bei mir, dass das Kernelmodul nicht geladen ist (was ja auch stimmt) :-(
Ich verwende Kernel 2.4.16-4GB von SuSE.
2.4.16-2 (Vanilla Kernel, 2te config ;)
Hat SuSE da was kaputtgepatcht? Kannst Du mit diesen Meldungen aus /var/log/messages was anfangen? May 20 21:05:03 tux kernel: retrieve_vm_pages returned error. May 20 21:05:03 tux kernel: retrieve_monitor_pages returned error Beim Greppen hatte ich Fundstellen in folgenden Dateien: - ChangeLog - ein Uralteintrag - kernel/host-linux.o und kernel/plex86.o sind Binaries. (wohl vom Compiler erzeugte Zwischendateien) - kernel/host-linux.c - dort sind die Funktionen retrieve_vm_pages und retrieve_monitor_pages definiert -> hier wäre ein Ansatzpunkt. Wenn Du Debug-Code einbauen möchtest, um den Fehler zu lokalisieren: Mein Compiler meldet sich freiwillig zum Testen ;-) Leider habe ich von C bisher keine Ahnung, sodass ich es nicht selbst testen kann.
Im Prinzip wie Du auch (siehe oben) Ich habe auch schon probiert, insmod manuell aufzurufen, auch das liefert den bekannten Fehler.
-v: done. su -c ./load_module.sh Password: ./../kernel/plex86.o: init_module: Invalid argument Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters The kernel module failed to load! insmod ist also nicht gesprächiger geworden. Aufgrund der Fehlermeldungen und der Fundstellen von grep würde ich den Fehler in plex86.o bzw. host-linux.c suchen.
Dann solltest Du mal die plex86-devel ML subscriben, falls nicht schon geschehen. Ich lese dort seit gestern mit (eigentlich falsch, ich möchte mitlesen, bisher gab es aber noch nichts zu lesen ;-) Gruß Christian Boltz -- Registrierter Linux-Nutzer #239431 Linux - life is too short for reboots.

Hallo, On Sat, 25 May 2002, Christian Boltz wrote:
Jep.
Hm. [..]
Steht vor diesen Meldungen noch was?
Objektdateien, um genau zu sein.
- kernel/host-linux.c - dort sind die Funktionen retrieve_vm_pages und retrieve_monitor_pages definiert -> hier wäre ein Ansatzpunkt.
Genau. Da findet sich dann auch, dass plex86 davor bei Fehlern jew. ein KERN_WARNING ausspuckt, das muesste dann eine der folgenden sein: printk(KERN_WARNING "plex86: retrieve_vm_pages: addr NULL!\n"); printk(KERN_WARNING "plex86: retrieve_vm_pages: not enough pages!\n"); printk(KERN_WARNING " npages(%u) > max_pages(%u)\n", n_pages, max_pages); printk(KERN_WARNING "plex86: page list is too small!\n"); printk(KERN_WARNING "n_pages=%u, max_pages=%u\n", n_pages, max_pages); (n_pages und max_pages sind dabei irgendwelche Zahlen, im log landet das dann im ueblichen Format mit "Timestamp tux kernel: " + der jew. Meldung oben jew. nach dem 'KERN_WARNING '). Such danach mal in /var/log/messages und /var/log/warn. Oder mach ein tail -f auf beide Dateien und versuch nochmal das Modul zu laden. Eine der Meldungen muesste eigentlich auftauchen.
Wenn Du Debug-Code einbauen möchtest, um den Fehler zu lokalisieren: Mein Compiler meldet sich freiwillig zum Testen ;-)
*g* Erstmal das, was es schon gibt ausnuetzen ;)
Aufgrund der Fehlermeldungen und der Fundstellen von grep würde ich den Fehler in plex86.o bzw. host-linux.c suchen.
host-linux.o wird aus host-linux.c erstellt, und das zusammen mit anderen .o Dateien dann zu plex86.o. host-linux.c ist also die richtige Stelle, genauer die Funktion 'retrieve_vm_pages' in dieser.
Jo, stimmt, mach ich dann ggfs. :) -dnh -- 11. The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better. --- Eric S. Raymond, "The Cathedral and the Bazaar"

Hallo David, hallo Leute, Am Samstag, 25. Mai 2002 10:54 schrieb David Haller:
Leider nein (nur das su, danach kommt auch gleich wieder, dass die su-Sitzung beendet wurde). Ich habe auch schon tail -f mitlaufen lassen und ein paarmal Return gedrückt. Es kommen nur diese beiden Zeilen. [1] Immerhin habe ich die Quellen ausfindig gemacht: host-linux.c, ab Zeile 229 (init_module) /* retrieve the monitor physical pages */ if (!retrieve_monitor_pages()) { printk(KERN_ERR "retrieve_monitor_pages returned error\n"); err = -EINVAL; goto fail_retrieve_pages; } host-linux.c, ab Zeile 911 (retrieve_monitor_pages) if (n_pages == 0) { printk(KERN_ERR "retrieve_vm_pages returned error.\n"); return( 0 ); /* Error. */ } Da sollte man wohl an die entsprechenden Stellen ein paar printk setzen... (oder in eine andere Datei schreiben, aber da weiß ich (noch) nicht, wie das geht ;-)
leider nichts in /var/log/messages oder warn zu finden :-( Die Funktionen scheinen also vorher abgebrochen zu werden, oder?
Gruß Christian Boltz [1] Ich habe gerade nochmal in der plex-devel ML nachgesehen, dort kam vorher noch [...] schlepptop kernel: plex86: retrieve_vm_pages: ret with n=0 Die Fehlermeldung stammt von Thomas Breitfeld, mehr kann ich dazu nicht sagen ;-) -- Registrierter Linux-Nutzer #239431 Linux - life is too short for reboots.

Hallo David, hallo Leute, noch ein paar Ergänzungen zu meiner letzten Mail. Ich mache "Fortschritte" nach dem Motto: Drei Schritte vor und zwei zurück ;-) Am Samstag, 25. Mai 2002 20:47 schrieb Christian Boltz:
Scheint so :-( Inzwischen lässt sich das Modul manchmal (!) laden. Also: cd /verzeichnis/zu/plex86/misc su for i in `seq 1 100` ; do ./load_module.sh ; done geht meistens ;-) Das kann doch nicht die Lösung sein, oder?
Inzwischen habe ich host_linux.c - InitModule() mit ein wenig Gesprächsbereitschaft kompiliert. Die jeweiligen Ausgaben (im Fehlerfall) stehen in /* */ jeweils in der Folgezeile. /* register the device with the kernel */ err = register_chrdev(plex_major, "plex86", &plex86_fops); printk(KERN_WARNING "plex86 cb1: err = %d\n", err); /* err = 254, also eigentlich kein Fehler */ printk(KERN_WARNING "plex86 cb1: plex_major = %d\n", plex_major); /* plex_major = 0 */ if (err < 0) { [...] } [...] /* register the /proc entry */ #ifdef CONFIG_PROC_FS #if LINUX_VERSION_CODE >= VERSION_CODE(2,3,25) if (!create_proc_info_entry("driver/plex86", 0, NULL, plex86_read_procmem)) printk(KERN_ERR "plex86: registering /proc/driver/plex86 failed\n"); printk(KERN_WARNING "plex86 cb2: executed cb 2\n"); /* wird ausgeführt */ #else proc_register_dynamic(&proc_root, &plex86_proc_entry); printk(KERN_WARNING "plex86 cb3: executed cb 3\n"); /* wird _nicht_ ausgeführt */ #endif #endif /* register /dev/misc/plex86 with devfs */ #ifdef CONFIG_DEVFS_FS printk(KERN_WARNING "plex86 cb4: executed\n"); /* wird _nicht_ ausgeführt */ my_devfs_entry = [...] if (!my_devfs_entry) printk(KERN_ERR "plex86: registering misc/plex86 devfs entry failed\n"); #endif /* retrieve the monitor physical pages */ printk(KERN_WARNING "plex86 cb5: executed (mark)\n"); /* wird ausgeführt */ if (!retrieve_monitor_pages()) { printk(KERN_ERR "retrieve_monitor_pages returned error\n"); err = -EINVAL; printk(KERN_WARNING "plex86 cb6: err = %d \n", err); /* err = -22 */ goto fail_retrieve_pages; [...] In /var/log/messages erscheinen außer meinen Meldungen weiterhin nur die bereits genannten 2 Fehlermeldungen. Falls sich das Modul tatsächlich einmal laden lässt, steht folgendes in /var/log/messages: May 26 19:11:20 tux kernel: plex86 cb1: err = 254 May 26 19:11:20 tux kernel: plex86 cb1: plex_major = 0 May 26 19:11:20 tux kernel: plex86 cb2: executed cb 2 May 26 19:11:20 tux kernel: plex86 cb5: executed (mark) May 26 19:11:20 tux kernel: 1 monitor pages located May 26 19:11:20 tux kernel: host CR0=0x8005003B May 26 19:11:20 tux kernel: und beim Versuch, ein (nicht existierendes) Image zu booten: May 26 19:12:28 tux kernel: plex86: vm_t size is 265224 May 26 19:12:28 tux kernel: guest_cpu.cr0 = 0x60000010 May 26 19:12:28 tux kernel: Using 174/1024 PTE slots in 4Meg monitor range. May 26 19:12:28 tux kernel: Soweit, so gut. Dann habe ich mal mit dem createdisk-Script ein Diskimage (500 MB) erzeugt und mit fdisk die CHS-Werte eingetragen. Anschließend habe ich die conf/win95 angepasst und ./plex86 -f ../conf/win95 aufgerufen. Das Ergebnis war ein sofortiger Reboot meines Pinguins :-( Er hatte nichtmal Zeit, irgendeine Logdatei zu schreiben. So langsam habe ich das Gefühl, dass ich auf einen Vanilla-Kernel umsteigen muss... Für weitere Tips bin ich natürlich dankbar. Gruß Christian Boltz -- Registrierter Linux-Nutzer #239431 Linux - life is too short for reboots.

Hallo David, hallo Leute, Am Dienstag, 28. Mai 2002 01:15 schrieb Christian Boltz:
noch ein paar Ergänzungen zu meiner letzten Mail. Ich mache "Fortschritte" nach dem Motto: Drei Schritte vor und zwei zurück ;-)
Meine Fortschritte werden größer...
Inzwischen habe ich das linux-src.rpm von den SuSE 8.0-CDs (Kernel 2.4.18) installiert, entpackt, den Kernel anhand der /proc/config.gz von 2.4.16-4GB (SuSE-Kernel) konfiguriert (Config kaum verändert). Man braucht eben einen Grund, mal einen Kernel zu kompilieren, auch wenn er mit der SuSE-einfach-alles-Config gebaut ist ;-) Dann habe ich plex86 neu kompiliert... läuft :-))) Jetzt muss ich nur noch Windows ins Fenster sperren... Ein Wehrmutstropfen bleibt: Momentan habe ich die Auswahl [1], ob ich - 2.4.18-cb booten möchte, mit dem plex86 läuft, oder - 2.4.16-4GB-SuSE, bei dem der Soundtreiber vorhanden ist. Aber das finde ich wohl auch noch raus, wie ich dem 2.4.18 die Flötentöne beibringe ;-) Gruß Christian Boltz [1] dank Davids Multikernel-HowTo - wirklich hilfreich! -- Registrierter Linux-Nutzer #239431 Linux - life is too short for reboots.
participants (3)
-
Christian Boltz
-
David Haller
-
Matthias Nattrodt