IO-Warrior RaspberryPi4 und 64bit Kernel

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
wuppi52
Posts: 3
Joined: Tue Jun 27, 2023 4:23 pm

IO-Warrior RaspberryPi4 und 64bit Kernel

Post by wuppi52 »

Hallo zusammen,
ich betreibe seit einiger Zeit einen IO-Warrior 56 an einem Raspberry-Pi400.

Nach dem letzten Softwareupdate des Raspberry war der IO-Warrior nicht mehr ansteuerbar.

Nach einigen Recherchen habe ich folgendes herausgefunden:

Durch das Softwareupdate wurde auch der Kernel auf die 64bit Version (aarch64) umgestellt.
Lässt sich mit „uname -a“ im Terminalfenster überprüfen.
Die API des IO-Warrior scheint hier nicht mehr kompatibel zu sein.

Lösung:
Nachschauen ob im Verzeichnis „/boot“ der Kernel „arm71.img“ vorhanden ist (sollte eigentlich vorhanden sein).
Mit dem Eintrag „arm_64=0“ in der „/boot/config.txt“ und einem Neustart wird dann der Kernel wieder auf die 32bit Version (arm71) umgestellt.

Hiernach war der IO-Warrior wieder ansteuerbar.

LG
User avatar
Christoph Jung
Posts: 673
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IO-Warrior RaspberryPi4 und 64bit Kernel

Post by Christoph Jung »

Hallo,

danke für die Info, das war uns bisher nicht bewusst, dass es dort Probleme gibt.
Wir testen das mal, denn eigenltich spricht nichts dagegen, dass die IO-Warrior unter 64Bit laufen sollten.
Evtl. muss die iowkit API einfach nur neu kompiliert werden für den aarch64.
Ich muss nur einen Raspi 4 in die Finger bekommen, was im Moment eher schwierig ist.

War denn der IO-Warrior vom System erkannt worden? Sprich hat "lsusb" den IO-Warrior gefunden?
Weil die Treiber für die IOWs sind alle bestandteil der Kernels.
Software developer
User avatar
Christoph Jung
Posts: 673
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IO-Warrior RaspberryPi4 und 64bit Kernel

Post by Christoph Jung »

So ich habe einen Raspi4 aufgetrieben (CM4 Modul) und dort mal die aktuelle 64Bit Version, die man mit dem "Rpi-Imager" installieren kann bespielt.
Und ja es hat etwas gehakt, aber nach kurzem Hin und Her läuft es bei mir.

Folgendes habe ich machen müssen:

1. Das iowkit API laden: https://github.com/codemercs-com/io-warrior-linux
2. Dort musste ich die "config.guess" Datei tauschen. Die war bei mir der Show-Stopper. Dafür muss man sich das Paket "automake" installieren, falls man das noch nicht hat: sudo apt install automake
3. Dann in das Verzeichnis hier gehen: /usr/share/automake*/ (für * sollte da eine Versionsnummer stehen. Bei mir ist es Stand heute 1.16)
Dort die config.guess in das iowkit API Verzeichnis "libiowkit-1.7.0" kopieren, bzw. überschreiben.
4. Dann die API neu bauen lassen mit ./configure, make, sudo make install

Nach dem ganzen konnte ich die Beispiele kompilieren und auch ausführen.
Ich habe noch die 10-iowarrior.rules Datei nach /etc/udev/rules.d kopiert, damit das rum gesudoere nicht sein muss.
Software developer
wuppi52
Posts: 3
Joined: Tue Jun 27, 2023 4:23 pm

Re: IO-Warrior RaspberryPi4 und 64bit Kernel

Post by wuppi52 »

Hallo, und besten Dank für ihre Bemühungen.
Ich werde das auch mal nach ihrer Beschreibung ausprobieren.
Ich melde mich dann.

LG
wuppi52
Posts: 3
Joined: Tue Jun 27, 2023 4:23 pm

Re: IO-Warrior RaspberryPi4 und 64bit Kernel

Post by wuppi52 »

Hallo Herr Jung,

ich habe meine Anwendung nach ihrer Beschreibung auf dem 64 Bit bullseye Pi OS zum Laufen bekommen. Es mussten lediglich noch die Pfade zu den von mir benötigten GTK-Libraries angepasst werden.

Allerdings habe ich mich wohl im meinem ersten Post etwas unklar ausgedrückt.

Meine Ausführungen bezogen sich auf das 32 Bit bullseye Pi OS. Bei diesem wurde mit dem letzten Update der Kernel auf 64 Bit umgestellt.
Ich habe auch in diversen Foren Diskussionen über dieses Thema gefunden (z.B. https://github.com/raspberrypi/firmware/issues/1795).

Dort ist man über unangekündigte Änderungen dieser Art, die Probleme verursachen, auch nicht sonderlich begeistert.

Es ist mir bisher auch nicht gelungen die Beispiele für den IO-Warrior mit dem 64 Bit Kernel des 32 Bit bullseye Pi OS zum Laufen zu bringen.
Meldung: „Failed to open device“, obwohl „lsmod“ den Treiber als geladen meldet und Schreibrechte bestehen.

xxx@PI400M2:~ $ cd /dev/usb
xxx@PI400M2:/dev/usb $ ls -l
insgesamt 0
crw-rw-rw- 1 pi pi 180, 208 1. Jul 13:28 iowarrior0
crw-rw-rw- 1 pi pi 180, 209 1. Jul 13:28 iowarrior1

Für mich ist aber die Lösung durch Hinzufügen von „arm_64bit=0“ zur config.txt, um zum 32-Bit-Kernel zurückkehren, ausreichend.

Hintergrund ist, dass ich auf einem Pi400 entwickle und dann die Anwendung 24/7 auf einem Pi3B+ laufen lasse.

MfG
User avatar
Christoph Jung
Posts: 673
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IO-Warrior RaspberryPi4 und 64bit Kernel

Post by Christoph Jung »

Da ich hier auf einem Raspi 3B+ meine Testprogramme und Beispiele entwickel, ist es mir gar nicht aufgefallen, dass es bei den PRI4
zu dem 64Bit (zwangs-)sprung kam. Danke für den Hinweis, wir werden das mal im Auge behalten. So laufen andere User nicht in die selbe Sackgasse, wenn Sie auf das Problem treffen.
Es ist mir bisher auch nicht gelungen die Beispiele für den IO-Warrior mit dem 64 Bit Kernel des 32 Bit bullseye Pi OS zum Laufen zu bringen.
Meldung: „Failed to open device“, obwohl „lsmod“ den Treiber als geladen meldet und Schreibrechte bestehen.
Ehrlich, keine Ahnung warum das auftritt.
Wenn sich das ähnlich wie bei Windows (64Bit/32Bit) mit der iowkit.dll verhält, dann mag er es wohl nicht, wenn man versucht unter 32Bit eine 64Bit API zu laden. Ist aber nur eine Vermutung und ich kann es nicht so richtig testen. Das CM4 Modul hier ist nur eine Leihgabe und da will ich nicht zu viel rumbasteln (hat nen EEPROM drauf, ist etwas umständlich das zu bespielen).
Software developer
Post Reply