Forum: PC Hard- und Software Kein Zugriff zum Programmer mit AVRDUDE unter Wine (Ubuntu 22.04)


von Tim 🔆 (solarlicht)


Angehängte Dateien:

Lesenswert?

LunaAVR + AVRDUDE + Pololu Programmer 2.1 funktionieren auf einem 32-bit 
Linux ohne Probleme.

Für Ubuntu 22.04 gibt es leider keine 32-bit Architektur mehr. Daher 
habe ich LunaAVR + AVRDUDE unter Wine installiert. Den Programmer als 
normale Linux-Installation, da er sich nicht unter Wine installieren 
lässt.

Leider bekomme ich keinen Zugriff zum Programmer. Das heißt ich kann 
keine Daten an die Schnittstelle (ttyACM0) senden.

Probiert habe ich folgendes:
- Mich in die Gruppe dialout eingetragen
- Rechte gewährt
- Einen Softlink von /dev/ttyACM0 nach .../wine/.../dosdevices/ttyACM0 
gesetzt
- Da gibt es aber schon Softlinks, die jedoch auch nicht funktionieren

Dann kam mir die Idee AVRDUDE unter Linux zu installieren und von 
LunaAVR über eine Windows-Batchdatei aufzurufen. Das funktioniert auch 
und ich kann mein Programm an den Controller übertragen. Jedoch gelingt 
es mir nicht die Parameter von LunaAVR an die Batchdatei zu übergeben. 
(Zum Test hatte ich die Parameter in die Batchdatei fest eingetragen, 
was aber keine Dauerlösung ist).

Inhalt der avrdude.bat: wineconsole cmd /c start /unix /bin/avrdude 
[Parameter]

So wie ich das verstehe, würde man die Parameter einfach hinter den 
Aufruf schreiben, also avrdude.bat p1, p2, p3 und in der Batchdatei mit 
%1, %2, %3, usw. übergeben. Funktioniert aber nicht.

Ja, ich wieder mit so einem speziellen Kram, aber vielleicht hat ja 
jemand eine Idee. Habe fast den ganzen Tag damit verbracht.

von Εrnst B. (ernst)


Lesenswert?

Siehe:
https://wiki.winehq.org/index.php?title=Wine_User%27s_Guide&oldid=2519#Serial_and_Parallel_Ports

die Links im "dosdevices" müssen dort "com1", "com2" usw. heißen.

In deinem Tool trägst du dann entsprechend "COM1" ein.

Tim 🔆 schrieb:
> Für Ubuntu 22.04 gibt es leider keine 32-bit Architektur mehr.

Sicher?
cat /var/lib/dpkg/arch
zeigt bei mir amd64 und i386.

evtl.
sudo dpkg --add-architecture i386
?

: Bearbeitet durch User
von Tim 🔆 (solarlicht)


Lesenswert?

Εrnst B. schrieb:
> Siehe:
> 
https://wiki.winehq.org/index.php?title=Wine_User%27s_Guide&oldid=2519#Serial_and_Parallel_Ports
>
> die Links im "dosdevices" müssen dort "com1", "com2" usw. heißen.

Ich habe das nun auch mit dem Registry-Eintrag versucht, aber es 
funktioniert bei mir nicht.

Es entspricht wohl der Methode in Linux einen Softlink mit ln -s zu 
setzen, was ich ja auch schon versucht hatte. com1 in dosdevices zu 
überschreiben brachte ebenfalls nichts.

von Tim 🔆 (solarlicht)


Lesenswert?

Εrnst B. schrieb:
> Sicher?
> cat /var/lib/dpkg/arch
> zeigt bei mir amd64 und i386.
>
> evtl.
> sudo dpkg --add-architecture i386
> ?

guifrmwrk.so: cannot open shared object file: No such file or directory

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

Tim 🔆 schrieb:
> Für Ubuntu 22.04 gibt es leider keine 32-bit Architektur mehr.
Und warum glaubst du, sollte das wichtig sein? AVRdude und co 
funktionieren auch super auf 64bit systemen. und zur not gibt es 
multilib. Kein Grund sich diesen Krampf mit Wine anzutun.

von Εrnst B. (ernst)


Lesenswert?

Tim 🔆 schrieb:
> guifrmwrk.so: cannot open shared object file: No such file or directory

mit ldd nachschauen, was das braucht, die fehlenden Sachen aus der 
i386-arch nachinstallieren.

Tim 🔆 schrieb:
> Ich habe das nun auch mit dem Registry-Eintrag versucht, aber es
> funktioniert bei mir nicht.

Gerade ausprobiert. Funktioniert bei mir.

Symlink /dev/ttyUSB0 -> com6 ist im dosdevices, Windows - hterm.exe 
heruntergeladen
( https://www.der-hammer.info/pages/terminal.html )
wine hterm.exe, COM6 wählen, connect, geht.

von Tim 🔆 (solarlicht)


Lesenswert?

Kaj G. schrieb:
> Und warum glaubst du, sollte das wichtig sein? AVRdude und co
> funktionieren auch super auf 64bit systemen. und zur not gibt es
> multilib. Kein Grund sich diesen Krampf mit Wine anzutun.

LunaAVR ist das eigentliche Problem, das funktioniert nicht auf 64-bit.

AVRDUDE funktioniert, siehe hier:

Tim 🔆 schrieb:
> Dann kam mir die Idee AVRDUDE unter Linux zu installieren und von
> LunaAVR über eine Windows-Batchdatei aufzurufen. Das funktioniert auch
> und ich kann mein Programm an den Controller übertragen. Jedoch gelingt
> es mir nicht die Parameter von LunaAVR an die Batchdatei zu übergeben.
> (Zum Test hatte ich die Parameter in die Batchdatei fest eingetragen,
> was aber keine Dauerlösung ist).

von Tim 🔆 (solarlicht)


Lesenswert?

Εrnst B. schrieb:
> Gerade ausprobiert. Funktioniert bei mir.
>
> Symlink /dev/ttyUSB0 -> com6 ist im dosdevices, Windows - hterm.exe
> heruntergeladen
> ( https://www.der-hammer.info/pages/terminal.html )
> wine hterm.exe, COM6 wählen, connect, geht.

Seltsam, bei mir nicht.

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Tim 🔆 schrieb:
> LunaAVR ist das eigentliche Problem, das funktioniert nicht auf 64-bit.

64-Bit Linux kann 32-Bit-Programme ausführen. Du musst nur die 
Bibliotheken, die das 32-Bit-Programm braucht, auch in einer 
32-Bit-Version installiert haben.

Normalerweise kümmert sich der Paketmanager darum automatisch. Wenn du 
eine distributions-fremde Applikation zum laufen bringen willst, musst 
du das selber und von Hand erledigen.

Deshalb: mit "ldd" nachsehen, welche SO-Dateien fehlen, dann mit apt 
search rausfinden, in welchen Paketen die sind, dann mit apt install 
paketname:i386 installieren.

1
ldd guifrmwrk.so 
2
        linux-gate.so.1 (0xf7f1d000)
3
        libgtk-x11-2.0.so.0 => not found
4
        libgdk-x11-2.0.so.0 => not found
5
        libatk-1.0.so.0 => not found
6
        libgdk_pixbuf-2.0.so.0 => /lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0 (0xf7bcd000)
7
        libpangocairo-1.0.so.0 => /lib/i386-linux-gnu/libpangocairo-1.0.so.0 (0xf7edd000)
8
        libfontconfig.so.1 => /lib/i386-linux-gnu/libfontconfig.so.1 (0xf7b7a000)
9
        libXext.so.6 => /lib/i386-linux-gnu/libXext.so.6 (0xf7b64000)
10
#usw.

also: gtk-x11,gdk und atk fehlen bei mir in 32 Bit.
1
dpkg -S libgtk-x11-2.0.so.0
2
libgtk2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
3
libgtk2.0-0:amd64: /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.33

Hey, ich habe eine 64-Bit-Version davon, aus libgtk2.0-0. Ich nehm 
einfach mal an, dass die 32-Bit-Version genauso heißt und installier 
die.
1
sudo apt install libgtk2.0-0:i386
Und hey, apt zieht als dependency gleich die atk mit hinein.

Dann also das ganze von vorne, schauen ob noch was anderes fehlt.
1
ldd guifrmwrk.so 
2
--> Fehlt (bei mir) nix mehr

Probieren:
./LunaStudio

Startet.
Ob' auch alle Teile funktionieren, hab ich nicht getestet, Benutze das 
sonst nicht.

: Bearbeitet durch User
von Tim 🔆 (solarlicht)


Lesenswert?

Εrnst B. schrieb:
> Deshalb: mit "ldd" nachsehen, welche SO-Dateien fehlen, dann mit apt
> search rausfinden, in welchen Paketen die sind, dann mit apt install
> paketname:i386 installieren.

Vielen Dank!!! Hab wieder was gelernt und LunaAVR läuft jetzt! Auch mit 
dem Programmer.

Tim 🔆 schrieb:
> Εrnst B. schrieb:
>> Gerade ausprobiert. Funktioniert bei mir.
>> wine hterm.exe, COM6 wählen, connect, geht.
>
> Seltsam, bei mir nicht.

Auch wenn es sich erübrigt hat, ich wollte das einfach noch wissen und 
mit einem anderen USB-Device funktioniert hterm über Wine auch bei mir.

PS: Warum Dein Beitrag von jemandem negativ bewertet wurde ist mir ein 
Rätsel. Da gefiel wohl jemandem nicht, dass einem Dummy wie mir geholfen 
wurde. Wenn es ginge, würde ich dir für dein Engagement 10 Positive 
geben.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.