PonyProg2000 unter Linux

Im Unterforum Erfahrungsaustausch - Beschreibung: Fragen und Antworten von User zu User zu allen elektrischen und elektronischen Geräten

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 18 4 2026  11:59:25      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Oszilloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Erfahrungsaustausch        Erfahrungsaustausch : Fragen und Antworten von User zu User zu allen elektrischen und elektronischen Geräten

Gehe zu Seite ( 1 | 2 Nächste Seite )      


Autor
PonyProg2000 unter Linux

    







BID = 441093

Morgoth

Schreibmaschine



Beiträge: 2930
Wohnort: Rockenhausen (Pfalz)
 

  


Hallo Zusammen!
Hat sich hier schonmal jemand die Mühe gemacht PonyProg2000 unter Linux zu compilieren?

Ich habe das gestern endlich erfolgreich hingekriegt (zuerst waren nicht alle Pakete installiert, die man braucht um loscompilieren zu können, und die werden längst nicht alle in der Anleitung erwähnt).
Natürlich funktionierte dann erstmal noch garnichts, weil ich nen USB-RS232-Adapter verwende, und der muss ja zuerst mal den richtigen Port zugeordnet bekommen... Nun, das habe ich inzwischen erfolgreich hingekriegt (wenn man mal weiß wie's am besten geht ganz einfach...), der Adapter hört jetzt auf "ttyS0", was ja COM1 unter Windows entspricht (So steht es sogar im Quelltext von PonyProg, also sollte sich das programm ja auch daran halten...). Er lässt sich auch ansprechen, und tut was er soll.
Nur Ponyprog tut nicht was es soll... wenn ich da meinen "SI-Prog I/O" anwähle und dann noch COM1, schlägt "Probe" fehl, auch wenn ich alle andern Variationen von Programmer und COM-Port durchprobiere.

Langer Rede kurzer Sinn:
Ponyprog2000 weigert sich/ist unfähig meinen RS2323-Port anzusprechen.
Hat zufällig jemand ne Idee was da noch im Wege stehen könnte?


Meine Linux Distribution ist Ubuntu 6.06.1,
Der Adapter hat unter WindowsXP mit Ponyprog2000 und dem SI-Prog funktioniert.

Grüße
Tobias


_________________
Es irrt der Mensch solang er strebt

BID = 441132

faustian.spirit

Schreibmaschine



Beiträge: 1388
Wohnort: Dortmund

 

  

Hat denn der Benutzer, unter dem Du das Programm ausführst, überhaupt entsprechende Rechte an /dev/ttyS0 bzw /dev/ttyS1 (gelegentlich sind die unter Linux verdreht, da hab ich schon einiges erlebt)?

BID = 441136

Dombrowski

Stammposter



Beiträge: 450

Moin.

Du musst "SI Prog API" nehmen. "/dev/ttyS0" heißt ja gerade, dass der Zugriff über das API geht. "SI Prog I/O" und die anderen "xyz I/O" sind unter Linux bähbäh.

Dass es inzwischen (...seit 2 Monaten) ein PonyProg2000 V2.07a gibt, ist bekannt, ja?

D.

BID = 441147

Morgoth

Schreibmaschine



Beiträge: 2930
Wohnort: Rockenhausen (Pfalz)

Das habe ich eigentlich schon alles probiert...
Die passende Rechte habe ich wie ich gerade rausgefunden habe immer noch nicht (hatte aber immer mit sudo gestartet, bzw den Port angesprochen), obwohl ich mich eigentlich in die passenden Gruppen eingetragen habe.
Und wie ich oben schrieb HÖRT der Port auf ttySO, das heißt, wenn ich da nen Text an ttyS0 rausschicke kommt er auch raus.
Meine Version ist natürlich die neuste (diese Woche nochmal frisch runtergeladen), aber die fängt ja auch mit 2000 an (Die fertig compilierte bin heißt ja dann auch einfach "ponyprog2000")
Wenn ich PonyProg ohne sudo starte dagt er dass ich keine I/O rechte habe. Mit sudo und API-Auswahl sagt er, wenn ich den Chip lesen will: "Communication Port not available (-16)".

Wie es scheint muss ich heute Nachmittag noch ein bissel an den Rechten basteln...

Danke für die Hinweise

_________________
Es irrt der Mensch solang er strebt

BID = 441153

faustian.spirit

Schreibmaschine



Beiträge: 1388
Wohnort: Dortmund

Zu den Rechten gibt es zwei Dinge zu beachten:

-Ein Eintragen in Gruppen ist nicht sofort wirksam sondern erst ab dem nächsten login (eine ssh-Schleife oder ein Zweitlogin tun es aber!), da die Gruppen dem "logischen" Benutzer aus Kernelsicht nur genau einmal beim Login "angeknotet" werden (das hat sehr gute technische Gründe).

-Heutzutage hat man auf vielen Systemen ein /dev-Managementsystem wie udev (wahrscheinlich! Ist bei Ubuntu Standard) oder devfs installiert, was /dev zum Flurförderzeugbereich macht. Oft werden vermeintliche Änderungen schnell automatisch rückgängig gemacht.

BID = 441156

Dombrowski

Stammposter



Beiträge: 450

Moin.

Via USB emulierte serielle Schnittstellen werden ja normalerweise über /dev/ttyUSBn angesprochen... Wie hast du das hingekriegt, dass es trotzdem über ttySn geht? Ich wüsste nicht, wie man so einen Bezeichner /dev/ttyUSBn in Ponyprog integriert - außer durch Ändern vom Quellcode.

Einstellung "I/O" geht bei emulierten Schnittstellen schon mal gar nicht. Das kann nicht funktionieren, denn die betreffenden I/O Ports existieren ja nicht, und Abfangen von Portzugriffen zu Emulationszwecken wird AFAIK unter Linux nicht gemacht.

Die Sache mit den Rechten ist sicher lösbar, denn mit sudo u.ä. hantiert man nur im äußersten Notfall herum. Deswegen "bähbäh". "ls -l /dev/ttyS*" (oder welches Device auch immer) zeigt die Rechte ja. Wenn es nicht über Gruppenzugehörigkeit geht und falls die Devices bei dir dynamisch erzeugt werden, musst du Änderungen wohl über udev machen. Damit kenne ich mich aber nicht aus, nur mit devfs.

Neue Ponyprog-Version meinte ich vor allem wegen neuer Features (tiny13 etc.), nicht wg. evtl. Fehlerbeseitigung.

D.

BID = 441161

Morgoth

Schreibmaschine



Beiträge: 2930
Wohnort: Rockenhausen (Pfalz)

Über udev kann man mittels
einer .rules-Datei mit dem Inhalt


Code :

KERNEL=="ttyUSB0", NAME="ttyS0"


hinkriegen, dass man den Adapter über "ttyS0" ansprechen kann. Das funktioniert auch perfekt, wie gesagt, ich kann ohne weiteres einen Text an ttyS0 schicken und er kommt aus dem Adapter "raus"
Das mit den Rechten kann ich erst heute nachmittag nachgucken.

_________________
Es irrt der Mensch solang er strebt

BID = 441214

Dombrowski

Stammposter



Beiträge: 450

Moin.

Ahso.

"Communication Port not available (-16)" kann an etlichen Stellen getriggert werden. Um dem Ursprung auf die Spur zu kommen, aktivier mal User Debug 1-3 unter File->Debug; vielleicht reicht auch schon User Debug 1. Dann werden Namen von Funktionen, Return Codes, usw. ausgegeben. Dazu Ponyprog vorher von einer Konsole aus starten.

D.

BID = 441224

Morgoth

Schreibmaschine



Beiträge: 2930
Wohnort: Rockenhausen (Pfalz)

Hi, hier die Ausgabe, wenn ich zuerst SI-Prog API anwähle, dann einmal "probe" und danach noch versuche den Chip zu lesen.


Code :

e2Dialog::UpdateDialog() IN *** init=1, type=0 

e2Dialog::Test() IN *** p=1, open_only=1
e2App::TestPort(port=1, open_only=1)
BusInterface::TestOpen(1) IN
BusInterface::TestSave(1) IN
SIProgInterface::Close() IN *** Inst=0
SIProgInterface::Close() OUT
SIProgInterface::Open(1) IN *** Inst=0
RS232Interface::OpenSerial(1) I
RS232Interface::OpenSerial() now lock the device /var/lock/uucp/LCK..ttyS0
RS232Interface::OpenSerial Can't lock port 0
SIProgInterface::Open() = -16 OUT
BusInterface::TestSave() = -16 OUT
BusInterface::TestRestore() IN *** Inst=0
BusInterface::TestRestore() OUT
BusInterface::TestOpen() = -16 OUT
e2App::TestPort() = -16
e2Dialog::Test() = -16 *** OUT
e2Dialog::Test() IN *** p=2, open_only=1
e2App::TestPort(port=2, open_only=1)
BusInterface::TestOpen(2) IN
BusInterface::TestSave(2) IN
SIProgInterface::Close() IN *** Inst=0
SIProgInterface::Close() OUT
SIProgInterface::Open(2) IN *** Inst=0
RS232Interface::OpenSerial(2) I
RS232Interface::OpenSerial() now lock the device /var/lock/uucp/LCK..ttyS1
RS232Interface::OpenSerial Can't lock port 1
SIProgInterface::Open() = -16 OUT
BusInterface::TestSave() = -16 OUT
BusInterface::TestRestore() IN *** Inst=0
BusInterface::TestRestore() OUT
BusInterface::TestOpen() = -16 OUT
e2App::TestPort() = -16
e2Dialog::Test() = -16 *** OUT
e2Dialog::Test() IN *** p=3, open_only=1
e2App::TestPort(port=3, open_only=1)
BusInterface::TestOpen(3) IN
BusInterface::TestSave(3) IN
SIProgInterface::Close() IN *** Inst=0
SIProgInterface::Close() OUT
SIProgInterface::Open(3) IN *** Inst=0
RS232Interface::OpenSerial(3) I
RS232Interface::OpenSerial() now lock the device /var/lock/uucp/LCK..ttyS2
RS232Interface::OpenSerial Can't lock port 2
SIProgInterface::Open() = -16 OUT
BusInterface::TestSave() = -16 OUT
BusInterface::TestRestore() IN *** Inst=0
BusInterface::TestRestore() OUT
BusInterface::TestOpen() = -16 OUT
e2App::TestPort() = -16
e2Dialog::Test() = -16 *** OUT
e2Dialog::Test() IN *** p=4, open_only=1
e2App::TestPort(port=4, open_only=1)
BusInterface::TestOpen(4) IN
BusInterface::TestSave(4) IN
SIProgInterface::Close() IN *** Inst=0
SIProgInterface::Close() OUT
SIProgInterface::Open(4) IN *** Inst=0
RS232Interface::OpenSerial(4) I
RS232Interface::OpenSerial() now lock the device /var/lock/uucp/LCK..ttyS3
RS232Interface::OpenSerial Can't lock port 3
SIProgInterface::Open() = -16 OUT
BusInterface::TestSave() = -16 OUT
BusInterface::TestRestore() IN *** Inst=0
BusInterface::TestRestore() OUT
BusInterface::TestOpen() = -16 OUT
e2App::TestPort() = -16
e2Dialog::Test() = -16 *** OUT
e2Dialog::UpdateDialog() OUT ***
e2Dialog::Test() IN *** p=0, open_only=0
e2App::TestPort(port=1, open_only=0)
SIProgInterface::TestPort(1) IN
BusInterface::TestSave(1) IN
SIProgInterface::Close() IN *** Inst=0
SIProgInterface::Close() OUT
SIProgInterface::Open(1) IN *** Inst=0
RS232Interface::OpenSerial(1) I
RS232Interface::OpenSerial() now lock the device /var/lock/uucp/LCK..ttyS0
RS232Interface::OpenSerial Can't lock port 0
SIProgInterface::Open() = -16 OUT
BusInterface::TestSave() = -16 OUT
BusInterface::TestRestore() IN *** Inst=0
BusInterface::TestRestore() OUT
SIProgInterface::TestPort() = -16 OUT
e2App::TestPort() = -16
e2Dialog::Test() = -16 *** OUT
e2ProgressDialog::UpdateDialog() closing...
e2ProgressDialog::UpdateDialog() showing... (Reading...)
e2AppWinInfo::Read(1,1,0) - IN
e2App::OpenBus(80e5488h)
SIProgInterface::Close() IN *** Inst=0
SIProgInterface::Close() OUT
e2App::OpenBus() ** Close
SIProgInterface::Open(1) IN *** Inst=0
RS232Interface::OpenSerial(1) I
RS232Interface::OpenSerial() now lock the device /var/lock/uucp/LCK..ttyS0
RS232Interface::OpenSerial Can't lock port 0
SIProgInterface::Open() = -16 OUT
e2App::OpenBus() ** Open = -16
e2App::OpenBus() = -16
e2AppWinInfo::Read() ** OpenBus = -16
e2AppWinInfo::Read() = -16 - OUT
CmdWindow->Read -- Error


Ich bin mittlerweile automatisch Besitzer von ttyS0, daran lag es aber wohl nicht (nur)...

_________________
Es irrt der Mensch solang er strebt

BID = 441229

faustian.spirit

Schreibmaschine



Beiträge: 1388
Wohnort: Dortmund

Also ich würde den Locking-Mechanismus vermuten... vielleicht existiert das Verzeichnis /var/lock/uucp ja gar nicht, oder die Rechte sind falsch.

Ansonsten: apt-get install strace && man strace

BID = 441232

Morgoth

Schreibmaschine



Beiträge: 2930
Wohnort: Rockenhausen (Pfalz)


Zitat :
faustian.spirit hat am  5 Jul 2007 15:38 geschrieben :

Also ich würde den Locking-Mechanismus vermuten... vielleicht existiert das Verzeichnis /var/lock/uucp ja gar nicht,...

Volltreffer!
Nur was fange ich mit dieser Information an? Einfach erstellen wird nicht sein...
Beim compilieren gab es ähnliche Probleme, die sich durch nur durch installation einiger pakete beheben ließen... Welches Paket ist es wohl diesmal?

_________________
Es irrt der Mensch solang er strebt

BID = 441236

faustian.spirit

Schreibmaschine



Beiträge: 1388
Wohnort: Dortmund

Doch. Erstellen könnte tatsächlich enorm helfen.

BID = 441238

Morgoth

Schreibmaschine



Beiträge: 2930
Wohnort: Rockenhausen (Pfalz)


Tatsächlich...

DANKE!!!

Aber laaaaaaaaaaaaaaaaangsam ist dieser Adapter... aber das war er ja schon unter Windows

_________________
Es irrt der Mensch solang er strebt

[ Diese Nachricht wurde geändert von: Morgoth am  5 Jul 2007 16:06 ]

BID = 441310

Dombrowski

Stammposter



Beiträge: 450

Moin.

Okay, gut dass es geht.

Das gegenseitige Blockieren gelingt nur, wenn verschiedenste Programme im System die gleichen Lockfiles benutzen - gleicher Name, gleiches Verzeichnis. /var/lock/uucp als Standort für Lockfiles ist anscheinend uralt. In /usr/src/linux/Documentation/devices.txt steht ganz hinten der Hinweis, als Lockfiles für die seriellen Ports /var/lock/LCK..ttySn zu benutzen. Auch schon in Kernel-2.2.1 von 1999, den ich mal als alte Referenz genommen habe. Aktuelle Beispiele: minicom und irrecord (von LIRC) halten sich an den Hinweis; in deren Binaries sind die Zeichenfolgen "/var/lock" u. "LCK.." zu finden, aber kein "uucp". Deshalb schlage ich vor, auch in den PonyProg Sourcen das uucp aus der Definition von LOCK_DIR zu streichen (oben in rs232int.cpp).

D.

BID = 441340

Morgoth

Schreibmaschine



Beiträge: 2930
Wohnort: Rockenhausen (Pfalz)

Jo, das könnte sinnvoll sein, wenn ich schon dabei bin kann ich ja direkt den Serial-port umtaufen.
Aber das hat jetzt zuerst mal Zeit...

_________________
Es irrt der Mensch solang er strebt


      Nächste Seite
Gehe zu Seite ( 1 | 2 Nächste Seite )
Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 11 Beiträge im Durchschnitt pro Tag       heute wurden bisher 6 Beiträge verfasst
© x sparkkelsputz        Besucher : 191284538   Heute : 10096    Gestern : 20383    Online : 446        18.4.2026    11:59
25 Besucher in den letzten 60 Sekunden        alle 2.40 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0531628131866