IoWarrior40 bekommt unter Linux keine gescheite Minor

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
Philipp
Posts: 2
Joined: Sat Apr 15, 2006 1:44 pm

IoWarrior40 bekommt unter Linux keine gescheite Minor

Post by Philipp »

Hallo allerseits,

auf meinem "Hauptrechner" habe ich den IOW schon zum laufen gebracht, aber auf der Kiste, wo der dann später mal gehen soll bekomme ich es einfach nicht hin:
Apr 15 13:49:07 imp-y-celyn kernel: /zeug/src/iow/LinuxSDK/Kernel_2.6/Driver/iowarrior.c: IOWarrior product=0x1500, serial= interface=0 now attached to iowarrior-208
Apr 15 13:49:07 imp-y-celyn kernel: /zeug/src/iow/LinuxSDK/Kernel_2.6/Driver/iowarrior.c: IOWarrior product=0x1500, serial= interface=1 now attached to iowarrior-207
Da in iowarrior.c diese Ausgabe sinngemäss ist:

Code: Select all

"iowarrior" + minor-MINORBASE
und MINORBASE auf 208 #define'd ist, schliesse ich daraus, dass die Devices die Nummer 0 und 1 zugeordnet bekamen. Und nicht, wie offenbar geplant, und wie das auch auf dem anderen PC klappt, 208 und 209.

Egal, ob ich jetzt die Devices 180, 0 oder 180, 208 erstelle (auf dem Ding läuft kein Udev) bekomme ich vom Beispielprogramm immer die Meldung "Failed to open device".

Wenn ich ein "cat /dev/iowarrior0" ausführe bekomme ich jenachdem, ob iowarrior0 Minor 0 oder 208 hat unterschiedliche Fehlermeldungen. Bei Minor 0 bekomme ich "Invalid Argument", bei 208 bekomme ich "No such device". Ich nehme also an, dass der Treiber schon richtig geladen wird, aber nicht ganz versteht, wenn er gemeint ist. Oder so.

Kann mir jemand helfen?

Vielen Dank und frohe Ostern,

Philipp Tölke
wayoda
Posts: 362
Joined: Fri Dec 19, 2003 12:00 pm
Location: Wuppertal/Germany

Post by wayoda »

Hallo Phillip,

das erste was mir an deiner Meldung

Code: Select all

Apr 15 13:49:07 imp-y-celyn kernel: /zeug/src/iow/LinuxSDK/Kernel_2.6/Driver/iowarrior.c: IOWarrior product=0x1500, serial= interface=0 now attached to iowarrior-208 
Apr 15 13:49:07 imp-y-celyn kernel: /zeug/src/iow/LinuxSDK/Kernel_2.6/Driver/iowarrior.c: IOWarrior product=0x1500, serial= interface=1 now attached to iowarrior-207 
auffällt ist schon mal das die Seriennummer des iowarrior serial= leer ist.
Ist das ein Fehler der beim Kopieren der Meldung entstanden ist oder kann der Treiber sie wirklich nicht auslesen?

Ich habe mal ein wenig nachgelesen und habe den Verdacht das im Kernel vielleicht unter
Miscellaneous USB Options
-> Dynamic USB Minor allocation

auf Yes gesetzt ist.
In meinem Kernel 2.6.13 ist diese Option noch als EXPERIMENTAL markiert.

Wenn diese Option gesetzt ist gibt es u.U. die folgenden Probleme:
All devices associated
with this driver are created with unique, increasing minor numbers beginning
with this value. Only 16 devices are allowed to be associated with this
driver at any one time unless the CONFIG_USB_DYNAMIC_MINORS configuration
option has been enabled for the kernel. If so, this variable is ignored, and all
minor numbers for the device are allocated on a first-come, first-served manner.
It is recommended that systems that have enabled this option use a program
such as udev to manage the device nodes in the system, as a static /dev tree will
not work properly.
"Linux Device Drivers 3rd Edition, Seite 353"

Ansonsten wäre natürlich deine Kernel-Version noch wichtig, und auf jeden Fall solltest Du das iowarrior-modul mit eingeschalteten Debug-Messages laden.
modprobe -qr iowarrior //zum entladen
modprobe iowarrior debug=1 //neu laden debugging eingeschaltet

Eventuelle Fehlermeldungen des Moduls kann man dann per dmsg anzeigen lassen.

Eberhard
Philipp
Posts: 2
Joined: Sat Apr 15, 2006 1:44 pm

Post by Philipp »

Hallo Eberhard,
wayoda wrote: Hallo Phillip,

das erste was mir an deiner Meldung auffällt ist schon mal das die Seriennummer des iowarrior serial= leer ist.
Ist das ein Fehler der beim Kopieren der Meldung entstanden ist oder kann der Treiber sie wirklich nicht auslesen?
Mein IOWarrior Version 1.0.0.3 hat noch keine Seriennummer. So hatte ich das zumindest verstanden. Auf meinem anderen Rechner zeigt er auch keine an.
wayoda wrote: Ich habe mal ein wenig nachgelesen und habe den Verdacht das im Kernel vielleicht unter
Miscellaneous USB Options
-> Dynamic USB Minor allocation

auf Yes gesetzt ist.
In meinem Kernel 2.6.13 ist diese Option noch als EXPERIMENTAL markiert.
In meinem 2.6.15.5 auch. Aber die Option war's.

Ich hatte sie aus irgendeinem Grund angekreuzt.

Vielen Dank!

Grüße,
Philipp
Guido Körber
Site Admin
Posts: 2876
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Seriennummern haben die Chips seit der V1.0.1.0.
Post Reply