# javax.comm unter Linux



## lanzelot83 (25. Okt 2006)

Hallo

Habe ein Programm in Eclipse auf einem Windows Rechner geschrieben. Nun will ich an diesem Programm auf einem Linuxrechner weiterarbeiten. Auf Windowsrechner hats funktioniert. Auf dem Linuxrechner bekomme ich Fehlermeldungen. Verwende natürlich das Linux Package für den Linux Rechner (java.comm).

Linuxrechner: Suse 10.1, JRE: 1.0.5_07-b03, Eclipse 3.2.1, javax.comm 3.0

Fehler:

```
Exception in thread "main" java.io.IOException: Not all params are supported by kernel
	at com.sun.comm.LinuxSerial.nativeSetSerialPortParams(Native Method)
	at com.sun.comm.LinuxSerial.setSerialPortParams(LinuxSerial.java:346)
```

Das javax.comm Package findet er auf jeden Fall, hätte ich einen Syntaxfehler. Ich bekomme jedoch einen Laufzeitfehler

Hat jemand eine Ahnung, an was es liegen könnte? Fehlendes Package...?

Besten Dank

Lanzelot


----------



## foobar (25. Okt 2006)

Auch auf die Gefahr hin, daß ich mich wiederhole: javax.comm wird von Sun nicht mehr supported. Daher wird es schwierig werden die selben Versionen für Linux und Windows zu finden.
RXTX ist dein Freund 
http://www.rxtx.org/


----------



## Guest (26. Okt 2006)

Danke für deine rasche Antwort. Kannst du mir sagen, ob man besser die Datei mit oder ohne der Sun API herunterladen soll? ???:L 

Gruss Lanzelot


----------



## foobar (26. Okt 2006)

Nimm die neuste Version mit den gnu packages. Die ältere Version wird nur für abwärtskompatible Systeme verwendet.


----------



## lanzelot83 (26. Okt 2006)

Ok, werde sie gleich mal runter laden.

Thanx


----------



## lanzelot83 (26. Okt 2006)

In der Version 2.1.7 befinden sich für Linux 3 Ordner:
-i686...
-ia64...
-x86_64...

Ich habe einen Intel Pentium III 500MHz. 

Aus welchem Ordner soll ich die Datei librxtxSerial.so beziehen? Ich hätte auf den 3 Ordner getippt wegen dem x86, jedoch irritiert mich die zahl 64 etwas (Busbreite???) der Prozessor hat ja nur 32 bit Busbreite.

Gruss Lanzelot


----------



## hupfdule (27. Okt 2006)

x86_64 ist für 64bit Prozessoren. Hast du nen 32bi Prozessor, nimm i686.


----------



## foobar (27. Okt 2006)

> x86_64 ist für 64bit Prozessoren. Hast du nen 32bi Prozessor, nimm i686.


Genau, für einen X86er brauchst du immer ein i386 oder i686 Paket.


----------



## lanzelot83 (27. Okt 2006)

Besten Dank, die Packete werden schon mal erkannt von Eclipse. Das ist schon mal sehr gut. 

Folgender Punkt bereitet mir jedoch etwas mühe:


> Make sure the user is in group uucp so lockfiles work.
> 
> A person is added to group lock or uucp by editing /etc/groups.  Distributions
> have various tools but this works:
> ...



Habe in "/etc/group" den Eintrag "lock:x:53:jarvi,taj" gemacht.("lock:x:54:" stand nicht drin???).
Bekomme den Fehler "gnu.io.NoSuchPortException". 

Nun habe ich folgende Fragen:
-ist der Eintrag "lock:x:53:jarvi,taj" richtig?
-wo befinden sich die Dateien "jarvi" und "taj"? (mit dem Befehl "find -name 'jarvi' ; find -name 'taj'
" habe ich nichts gefunden)

Bin froh um jeden Hinweis.

Gruss Lanzelot


----------



## foobar (28. Okt 2006)

Also die Literale jarvi und taj sind die Namen des Entwicklers und sollen nur als Beispiel dienen. 



> gnu.io.NoSuchPortException


Es gibt den Port eben nicht. Probier es mal mit /dev/ttyS0 - /dev/ttyS2, je nachdem wieviele V24 du in deinem System hast.



> lock:x:53:jarvi,ta


Weißt du was der Eintrag bedeutet?




> -wo befinden sich die Dateien "jarvi" und "taj"? (mit dem Befehl "find -name 'jarvi' ; find -name 'taj'
> " habe ich nichts gefunden)


Das sind keine Dateien. Du hast die User jarvi und taj der Gruppe lock zugewiesen.


----------



## lanzelot83 (29. Okt 2006)

Es funktioniert   
Habe die "gnu.io.NoSuchPortException" bekommen, weil ich dem Port (/dev/ttyS0) die Zugriffsrechte nicht vergeben habe. Mit "chmod 777 /dev/ttyS0" hats dann funktioniert. (obwohl ich beim javax.comm eine andere Exception bekam. noPermissionException oder sowas). 

Etwas unschön ist noch die Warnung am Anfang:"RXTX Warning:  Removing stale lock file. /var/lock/LCK..ttyS2". Offenbar sollte man beim schliessen des Programms noch diese Datei löschen, damit diese Warnung beim Start nicht erscheint?! Funktionieren tuts aber auch trotz dieser Warnung.

Vielen Dank für die schnelle und Professionelle Hilfe.

Gruss Lanzelot


----------



## foobar (30. Okt 2006)

> Offenbar sollte man beim schliessen des Programms noch diese Datei löschen


Nein, das brauchst/darfst du nicht. Die Datei wird vom OS angelegt, wenn der Port geöffnet wird. Wenn du vergisst den Port zu schliessen, wird diese Datei nicht gelöscht und du bekommst diese Meldung. Also immer schön den Port schliessen, wenn du feddisch bist ;-)


----------

