IO Warrior 40 und Debian Sarge mit Kernel 2.6.12
Moderator: Guido Körber
-
- Posts: 35
- Joined: Mon Oct 17, 2005 9:51 am
- Location: Aachen, Germany
- Contact:
IO Warrior 40 und Debian Sarge mit Kernel 2.6.12
Hallo,
ich habe versucht das LinuxSDK ( 21.7.05) zu compilieren ....
ich habe die Kernel sourcen unter /usr/src/linux-...
in /lib/modules/2.6.12/build als link auf die kernel sourcen
wenn ich dann im LinuxSDK source Verzeichnis ein make ausführe
hagelt es seitenweise Fehlermeldungen über falsche Symbole etc.
Hmmm.
Was mache ich falsch ?
Auch das Makefile aus einem anderen Posting hier im Forum hat nicht geholfen.
Tips ? Ideen ? oder besser fertige module
ich habe versucht das LinuxSDK ( 21.7.05) zu compilieren ....
ich habe die Kernel sourcen unter /usr/src/linux-...
in /lib/modules/2.6.12/build als link auf die kernel sourcen
wenn ich dann im LinuxSDK source Verzeichnis ein make ausführe
hagelt es seitenweise Fehlermeldungen über falsche Symbole etc.
Hmmm.
Was mache ich falsch ?
Auch das Makefile aus einem anderen Posting hier im Forum hat nicht geholfen.
Tips ? Ideen ? oder besser fertige module
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
Re: IO Warrior 40 und Debian Sarge mit Kernel 2.6.12
Geht es um das Kernel-Modul, die Iowkit-Lib, oder beides?l_netwalker wrote: ich habe versucht das LinuxSDK ( 21.7.05) zu compilieren ....
Kann man ohne die Fehlermeldungen nicht sagen.l_netwalker wrote: ich habe die Kernel sourcen unter /usr/src/linux-...
in /lib/modules/2.6.12/build als link auf die kernel sourcen
wenn ich dann im LinuxSDK source Verzeichnis ein make ausführe
hagelt es seitenweise Fehlermeldungen über falsche Symbole etc.
Was mache ich falsch ?
Vielleicht kann man ja einen Teil hier Posten?
Beim Kernel-modul geht das nicht, da hier die Versionenl_netwalker wrote: Tips ? Ideen ? oder besser fertige module :)
(Linux-Kernel /iowarrior Modul)
bis aufs i-Tüpfelchen zusammen passen müssen.
Eberhard
-
- Posts: 35
- Joined: Mon Oct 17, 2005 9:51 am
- Location: Aachen, Germany
- Contact:
Re: IO Warrior 40 und Debian Sarge mit Kernel 2.6.12
Ich habe zuerst mal nur das Kernel Modul versucht zu kompilierenwayoda wrote:Geht es um das Kernel-Modul, die Iowkit-Lib, oder beides?l_netwalker wrote: ich habe versucht das LinuxSDK ( 21.7.05) zu compilieren ....
die Iowkit-Lib habe ich noch gar nicht versucht.
ist das denn richtig mit dem link, bei Debian gibts das Verzeichnis gar nichtwayoda wrote:l_netwalker wrote: ich habe die Kernel sourcen unter /usr/src/linux-...
in /lib/modules/2.6.12/build als link auf die kernel sourcen
etwas vom Anfang:wayoda wrote:Kann man ohne die Fehlermeldungen nicht sagen.l_netwalker wrote: wenn ich dann im LinuxSDK source Verzeichnis ein make ausführe
hagelt es seitenweise Fehlermeldungen über falsche Symbole etc.
Was mache ich falsch ?
Vielleicht kann man ja einen Teil hier Posten?
Code: Select all
hucky@netwalker:~/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6/Dri
ver $ make
make -C /lib/modules/2.6.12-1-686/build SUBDIRS=/home/hucky/source/sps/h
ardware/IO-Warrior/LinuxSDK/Kernel_2.6/Driver modules
make[1]: Entering directory `/usr/src/linux-source-2.6.12'
Makefile:485: .config: No such file or directory
WARNING: Symbol version dump /usr/src/linux-source-2.6.12/Module.symve
rs
is missing; modules will have no dependencies and modversions
.
CC [M] /home/hucky/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6
/Driver/iowarrior.o
In file included from include/linux/module.h:9,
from /home/hucky/source/sps/hardware/IO-Warrior/LinuxSD
K/Kernel_2.6/Driver/iowarrior.c:24:
include/linux/config.h:4:28: linux/autoconf.h: No such file or directory
In file included from include/linux/module.h:10,
from /home/hucky/source/sps/hardware/IO-Warrior/LinuxSD
K/Kernel_2.6/Driver/iowarrior.c:24:
include/linux/sched.h:4:37: asm/param.h: No such file or directory
In file included from include/linux/posix_types.h:47,
from include/linux/types.h:13,
from include/linux/capability.h:16,
from include/linux/sched.h:7,
from include/linux/module.h:10,
from /home/hucky/source/sps/hardware/IO-Warrior/LinuxSD
K/Kernel_2.6/Driver/iowarrior.c:24:
/usr/lib/gcc-lib/i486-linux/3.3.5/include/asm/posix_types.h:13:22: featu
res.h: No such file or directory
/usr/lib/gcc-lib/i486-linux/3.3.5/include/asm/posix_types.h:14:35: no in
clude path in which to find asm/posix_types.h
In file included from include/linux/capability.h:16,
from include/linux/sched.h:7,
from include/linux/module.h:10,
from /home/hucky/source/sps/hardware/IO-Warrior/LinuxSD
K/Kernel_2.6/Driver/iowarrior.c:24:
include/linux/types.h:14:23: asm/types.h: No such file or directory
In file included from include/linux/capability.h:16,
from include/linux/sched.h:7,
from include/linux/module.h:10,
from /home/hucky/source/sps/hardware/IO-Warrior/LinuxSD
K/Kernel_2.6/Driver/iowarrior.c:24:
include/linux/types.h:18: error: parse error before "__kernel_dev_t"
include/linux/types.h:18: warning: data definition has no type or storag
e class
include/linux/types.h:21: error: parse error before "dev_t"
include/linux/types.h:21: warning: data definition has no type or storag
e class
include/linux/types.h:22: error: parse error before "ino_t"
include/linux/types.h:22: warning: data definition has no type or storag
e class
include/linux/types.h:23: error: parse error before "mode_t"
include/linux/types.h:23: warning: data definition has no type or storag
e class
include/linux/types.h:24: error: parse error before "nlink_t"
include/linux/types.h:24: warning: data definition has no type or storag
e class
include/linux/types.h:25: error: parse error before "off_t"
include/linux/types.h:25: warning: data definition has no type or storag
e class
include/linux/types.h:26: error: parse error before "pid_t"
include/linux/types.h:26: warning: data definition has no type or storag
e class
include/linux/types.h:27: error: parse error before "daddr_t"
include/linux/types.h:27: warning: data definition has no type or storag
e class
und das Ende:
Code: Select all
warrior.c:733: error: dereferencing pointer to incomplete type
/home/hucky/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6/Driver/iowarrior.c:734: error: dereferencing pointer to incomplete type
/home/hucky/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6/Driver/iowarrior.c:736: error: dereferencing pointer to incomplete type
/home/hucky/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6/Driver/iowarrior.c: At top level:
include/linux/elf.h:441: warning: array `_DYNAMIC' assumed to have one element
/home/hucky/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6/Driver/iowarrior.c:123: warning: array `iowarrior_ids' assumed to have one element
include/linux/sched.h:228: error: storage size of `mmap_sem' isn't known
include/linux/sched.h:266: error: storage size of `default_kioctx' isn't known
include/linux/sched.h:274: error: storage size of `action' isn't known
include/linux/sched.h:295: error: storage size of `shared_pending' isn't known
include/linux/sched.h:358: error: storage size of `rlim' isn't known
include/linux/sched.h:645: error: storage size of `start_time' isn't known
include/linux/sched.h:673: error: storage size of `thread' isn't known
include/linux/sched.h:685: error: storage size of `pending' isn't known
include/linux/stat.h:68: error: storage size of `atime' isn't known
include/linux/stat.h:69: error: storage size of `mtime' isn't known
include/linux/stat.h:70: error: storage size of `ctime' isn't known
include/linux/fs.h:279: error: storage size of `ia_atime' isn't known
include/linux/fs.h:280: error: storage size of `ia_mtime' isn't known
include/linux/fs.h:281: error: storage size of `ia_ctime' isn't known
include/linux/quota.h:223: error: storage size of `dq_dqb' isn't known
include/linux/fs.h:364: error: storage size of `bd_sem' isn't known
include/linux/fs.h:365: error: storage size of `bd_mount_sem' isn't known
include/linux/fs.h:440: error: storage size of `i_atime' isn't known
include/linux/fs.h:441: error: storage size of `i_mtime' isn't known
include/linux/fs.h:442: error: storage size of `i_ctime' isn't known
include/linux/fs.h:449: error: storage size of `i_sem' isn't known
include/linux/fs.h:450: error: storage size of `i_alloc_sem' isn't known
include/linux/fs.h:586: error: storage size of `f_owner' isn't known
include/linux/fs.h:772: error: storage size of `s_umount' isn't known
include/linux/fs.h:773: error: storage size of `s_lock' isn't known
include/linux/fs.h:802: error: storage size of `s_vfs_rename_sem' isn't known
include/linux/usb.h:290: error: storage size of `class_dev' isn't known
/home/hucky/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6/Driver/iowarrior.c:123: error: storage size of `iowarrior_ids' isn't known
/home/hucky/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6/Driver/iowarrior.c:140: error: storage size of `iowarrior_fops' isn't known
/home/hucky/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6/Driver/iowarrior.c:163: error: storage size of `iowarrior_class' isn't known
make[2]: *** [/home/hucky/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6/Driver/iowarrior.o] Error 1
make[1]: *** [_module_/home/hucky/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6/Driver] Error 2
make[1]: Leaving directory `/usr/src/linux-source-2.6.12'
make: *** [default] Error 2
Das ist richtig, aber vielleicht hat ja schon ein Debianer das Modul fürwayoda wrote:Beim Kernel-modul geht das nicht, da hier die Versionenl_netwalker wrote: Tips ? Ideen ? oder besser fertige module
(Linux-Kernel /iowarrior Modul)
bis aufs i-Tüpfelchen zusammen passen müssen.
einen 2.6.12 Debian Standard Kernel gebaut
Re: IO Warrior 40 und Debian Sarge mit Kernel 2.6.12
Ok, ich glaube ich weiss schon was es ist.l_netwalker wrote: Ich habe zuerst mal nur das Kernel Modul versucht zu kompilieren
die Iowkit-Lib habe ich noch gar nicht versucht.
Das ist schon mal wichtig, dass die sourcen des kernels da sind.l_netwalker wrote: ich habe die Kernel sourcen unter /usr/src/linux-...
in /lib/modules/2.6.12/build als link auf die kernel sourcen
Um ein Modul oder den ganzen Kernel zu uebersetzen braucht man die aktuelle Konfiguration des Kernel.
In den von Dir installierten Quellen ist nur eine default-Konfiguration vorhanden.
Aber es gibt eine relativ leicht Abhilfe.
Die folgenden Befehle als root ausgeführt, lesen die Konfiguration des aktuell laufenden Kernels und erzeugen die Datei /usr/src/linux/.config die ganz am Anfang deiner Fehlermeldungen als nicht vorhanden aufgeführt ist.
Code: Select all
cd /usr/src/linux
zcat /proc/config.gz > .config
make oldconfig
und nun kannst Du noch mal versuchen das Kernel-Modul zu kompilieren.
Bei mir, was aber Suse war, hats immer so geklappt!.
Eberhard
-
- Posts: 35
- Joined: Mon Oct 17, 2005 9:51 am
- Location: Aachen, Germany
- Contact:
Hallo
erstmal danke Eberhard, Du hast mich auf den richtigen Weg geschickt.
Zum einen hat die Kernel Konfiguration gefehlt.
Allerdings installiert Debian die Konfiguration des installierten Kernels in
/boot, die muss einfach kopiert werden.
Desweiteren die Fehlermeldungen bezüglich der Symboltabellen:
" WARNING: Symbol version dump ..."
zeigt das es eventuell ratsam ist, einmal die normalen Kernelmodule zu übersetzen. ( make modules )
Danach hat es ohne Probleme funktioniert.
Als Zusammenfassung hier nochmal die wesentlichen Schritte:
erstmal danke Eberhard, Du hast mich auf den richtigen Weg geschickt.
Zum einen hat die Kernel Konfiguration gefehlt.
Allerdings installiert Debian die Konfiguration des installierten Kernels in
/boot, die muss einfach kopiert werden.
Desweiteren die Fehlermeldungen bezüglich der Symboltabellen:
" WARNING: Symbol version dump ..."
zeigt das es eventuell ratsam ist, einmal die normalen Kernelmodule zu übersetzen. ( make modules )
Danach hat es ohne Probleme funktioniert.
Als Zusammenfassung hier nochmal die wesentlichen Schritte:
Code: Select all
apt-get install linux-tree-2.6.12
cd /usr/src/
tar -xjvf linux-source-2.6.12.tar.bz2
ln -s /usr/src/linux-source-2.6.12 /lib/modules/2.6.12-1-686/build
cp /boot/config-2.6.12-1-686 /lib/modules/2.6.12-1-686/build/.config
cd /lib/modules/2.6.12-1-686/build
make oldconfig
cd include/
ln -s asm-i386 asm
cd ..
make modules
cd /home/hucky/source/sps/hardware/IO-Warrior/LinuxSDK/Kernel_2.6/Driver/
make
-
- Posts: 35
- Joined: Mon Oct 17, 2005 9:51 am
- Location: Aachen, Germany
- Contact:
Leider, leider...
Ich kann mit oben beschriebenen Anweisungen zwar den Driver
compilieren, aber beim Versuch mit modprobe den Treiber zu laden
bekomme ich folgende Meldung
Nach etwas stöbern vermute ich, dass ich die falsche gcc Version benutze.
gcc version 3.3.5 (Debian 1:3.3.5-12)
Mit welcher gcc Version habt ihr das hinbekommen ?
Ich kann mit oben beschriebenen Anweisungen zwar den Driver
compilieren, aber beim Versuch mit modprobe den Treiber zu laden
bekomme ich folgende Meldung
Code: Select all
FATAL: Error inserting iowarrior (/lib/modules/2.6.12-1-686/kernel/drivers/usb/misc/iowarrior.ko): Invalid module format
gcc version 3.3.5 (Debian 1:3.3.5-12)
Mit welcher gcc Version habt ihr das hinbekommen ?
-
- Posts: 543
- Joined: Mon Dec 01, 2003 6:09 pm
Ich benutze Suse 9.3 und damit gcc 3.5 genau wie Du, das scheint nicht das Problem zu sein.
Ich vermute mal, dass es an den neuen Kernel-Quellen liegen könnte, die du per apt-get installiert hast.
Ich kenne mich leider nicht mit Debian aus, aber ist es vielleicht so, dass 'linux-tree-2.6.12' die letzte, neueste Release bezeichnet?
Die aktuell laufende Version deines Kernels zeigt dir der Befehl uname -r. Bei mir ist das z.B. 2.6.11.4-21.9-default . Wenn aber nun apt-get version 2.6.11-28.12 installiert hat, wurde dein iowarrior-modul mit der neuen Versions-Nummer gebaut.
Lange Rede kurzer Sinn: Um das 'iowarrior-modul' mit der richtigen Version zu kompilieren und einzubinden, müssen die installierten Quellen und der laufende Kernel zusammen passen.
Falls Du also Zeit hast, wuerde ich empfehlen einen komplett neuen Kernel incl. Module aus deinen neuen Quellen zu kompilieren und installieren und es dann noch mal mit dem iowarrior zu versuchen.
Eine einfachre Loesung sehe ich leider nicht ...
Eberhard
Ich vermute mal, dass es an den neuen Kernel-Quellen liegen könnte, die du per apt-get installiert hast.
Ich kenne mich leider nicht mit Debian aus, aber ist es vielleicht so, dass 'linux-tree-2.6.12' die letzte, neueste Release bezeichnet?
Die aktuell laufende Version deines Kernels zeigt dir der Befehl uname -r. Bei mir ist das z.B. 2.6.11.4-21.9-default . Wenn aber nun apt-get version 2.6.11-28.12 installiert hat, wurde dein iowarrior-modul mit der neuen Versions-Nummer gebaut.
Lange Rede kurzer Sinn: Um das 'iowarrior-modul' mit der richtigen Version zu kompilieren und einzubinden, müssen die installierten Quellen und der laufende Kernel zusammen passen.
Falls Du also Zeit hast, wuerde ich empfehlen einen komplett neuen Kernel incl. Module aus deinen neuen Quellen zu kompilieren und installieren und es dann noch mal mit dem iowarrior zu versuchen.
Eine einfachre Loesung sehe ich leider nicht ...
Eberhard
-
- Posts: 35
- Joined: Mon Oct 17, 2005 9:51 am
- Location: Aachen, Germany
- Contact:
Jetzt funktionierts:
Das letzte verbliebene Problem mit dem flaschen Format des IOWarrior Moduls erklärt sich für mich wie folgt:
Der von Debian fertig installierte Kernel 2.6.12 wurde mit gcc 4.0
übersetzt.
Ich habe die Kernel Quellen von 2.6.12 sowie das IOwarrior Modul mit
gcc 3.5 compiliert, was dann zu dem laufenden ( mit gcc 4.0 ) compilierten
Kernel einfach nicht gepasst hat.
Die Lösung:
gcc 4.0 via apt-get installiert, den link /usr/bin/gcc von gcc-3.5 auf gcc-4.0
umgestellt und das IOwarrior Modul nochmals neu gebaut.
Damit funktioniert es jetzt ( zumindest lässt sich das Modul laden).
Erstmal also vielen Dank für Eure Mithilfe, wie immer bringen einen die
Tips eines dritten erst auf den richtigen Weg.
Dank und Gruss
Hartmut
Das letzte verbliebene Problem mit dem flaschen Format des IOWarrior Moduls erklärt sich für mich wie folgt:
Der von Debian fertig installierte Kernel 2.6.12 wurde mit gcc 4.0
übersetzt.
Ich habe die Kernel Quellen von 2.6.12 sowie das IOwarrior Modul mit
gcc 3.5 compiliert, was dann zu dem laufenden ( mit gcc 4.0 ) compilierten
Kernel einfach nicht gepasst hat.
Die Lösung:
gcc 4.0 via apt-get installiert, den link /usr/bin/gcc von gcc-3.5 auf gcc-4.0
umgestellt und das IOwarrior Modul nochmals neu gebaut.
Damit funktioniert es jetzt ( zumindest lässt sich das Modul laden).
Erstmal also vielen Dank für Eure Mithilfe, wie immer bringen einen die
Tips eines dritten erst auf den richtigen Weg.
Dank und Gruss
Hartmut
-
- Posts: 2
- Joined: Tue Feb 07, 2006 2:32 pm
- Location: Dortmund
- Contact:
Hallöchen,
ich konnte mit diesem Thread und Erfolg das Modul für den IO-Warrior, unter Debian sarge mit einem 2.6.8er Kernel übersetzen.
Musste nur leicht das Makefile anpassen.
Als nächstes muss ich das iowkit durch den Kompiler jagen.
Habs mal eben in der Mittagspause probiert, er wirft ein paar Fehlermeldung raus. Konnte davon ein paar beheben (Pfade angepasst), stimmt leider immer noch nicht was. Gucke ich mir aber später genauer an.
Das habe ich aber richtig verstanden, dass ich das KDevelop nicht zum übersetzen brauch, richtig? Auf der Kiste habe ich nämlich gar kein X. Ist ein reines Consolen System.
-David
ich konnte mit diesem Thread und Erfolg das Modul für den IO-Warrior, unter Debian sarge mit einem 2.6.8er Kernel übersetzen.
Musste nur leicht das Makefile anpassen.
Als nächstes muss ich das iowkit durch den Kompiler jagen.
Habs mal eben in der Mittagspause probiert, er wirft ein paar Fehlermeldung raus. Konnte davon ein paar beheben (Pfade angepasst), stimmt leider immer noch nicht was. Gucke ich mir aber später genauer an.
Das habe ich aber richtig verstanden, dass ich das KDevelop nicht zum übersetzen brauch, richtig? Auf der Kiste habe ich nämlich gar kein X. Ist ein reines Consolen System.
-David
-
- Posts: 35
- Joined: Mon Oct 17, 2005 9:51 am
- Location: Aachen, Germany
- Contact:
Hallo David,David Mika wrote:Als nächstes muss ich das iowkit durch den Kompiler jagen.
Habs mal eben in der Mittagspause probiert, er wirft ein paar Fehlermeldung raus. Konnte davon ein paar beheben (Pfade angepasst), stimmt leider immer noch nicht was. Gucke ich mir aber später genauer an.
Das habe ich aber richtig verstanden, dass ich das KDevelop nicht zum übersetzen brauch, richtig? Auf der Kiste habe ich nämlich gar kein X. Ist ein reines Consolen System.
-David
soweit ich mich erinnere brauchst Du nicht wirklich KDevelop.
Ich hatte Schwierigkeiten mit Java meine Notizen zeigen leider
die Details nicht mehr:
* cmake besorgen und installieren
* in kdevelop die Pfade anpassen
* die Header Files von Java per symlink ins src Verzeichnis pusseln
* übersetzen
Das hatte ich mir notiert. Falls Du es nicht hinbekommst, kann ich Dir ja meine Lib schicken, vielleicht funktionierts ja.
Gruss Hartmut
-
- Posts: 2
- Joined: Tue Feb 07, 2006 2:32 pm
- Location: Dortmund
- Contact:
Hallo Hartmut,
Danke für Deinen Antwort && Hilfe.
Konnte das iowkit erfolgreich übersetzen. Hab die Java Header in das entsprechende Verzeichnis reingelegt. das Makefile paar mal angepasst und fertig. Habe ein iowkittest Programm ausgeführt und die Hardware klackerte und blinkte ;-)
Jedoch hatte ich ein Problem, ich muss nach einem reboot
den ohci_hcd von Hand entladen und wieder laden.
Zur Körnung das IO-Warrior Modul laden. Scheint aber eher an der Konfiguration des Rechners zu liegen. Werde mir ein init skript
basteln.
Danke für den Support.
Danke für Deinen Antwort && Hilfe.
Konnte das iowkit erfolgreich übersetzen. Hab die Java Header in das entsprechende Verzeichnis reingelegt. das Makefile paar mal angepasst und fertig. Habe ein iowkittest Programm ausgeführt und die Hardware klackerte und blinkte ;-)
Jedoch hatte ich ein Problem, ich muss nach einem reboot
den ohci_hcd von Hand entladen und wieder laden.
Zur Körnung das IO-Warrior Modul laden. Scheint aber eher an der Konfiguration des Rechners zu liegen. Werde mir ein init skript
basteln.
Danke für den Support.