
jmri fail when...???
The device is recognised:
anotheruser@dnpp:/dev$dmesg:
[ 2019.583226] ftdi_sio 6-2:1.0: FTDI USB Serial Device converter detected
[ 2019.583271] usb 6-2: Detected FT232RL
…
[ 2019.584338] usb 6-2: FTDI USB Serial Device converter now attached to ttyUSB0
And we are in the correct group and the device has ‘rw’ permissions to us:
anotheruser@dnpp:/dev$ ls /dev/ttyU* -al
crw-rw—- 1 root dialout 188, 0 2011-02-17 23:13 /dev/ttyUSB0
anotheruser@dnpp:/dev$ groups
anotheruser adm dialout cdrom plugdev lpadmin admin
But there is a lock file, and we don’t have rights to remove it (since the first user logged out):
anotheruser@dnpp:/var/lock$ ls -l
total 4
-r–r–r– 1 firstuser firstuser 11 2011-02-17 23:14 LCK..ttyUSB0
anotheruser@dnpp:/var/lock$ rm LCK..ttyUSB0
rm: remove write-protected regular file `LCK..ttyUSB0′? y
rm: cannot remove `LCK..ttyUSB0′: Operation not permitted
And neither does JMRI as shown in the JMRI System Console, except that the error message chases you down the no USB or no permission path for hours:
log4j:ERROR setFile(null,false) call failed.
java.io.FileNotFoundException: messages.log (Permission denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:209)
…
(but confusingly this is added)
688 gridconnect.GcSerialDriverAdapter ERROR – Serial port /dev/ttyUSB0 not found [main]
690 configurexml.ErrorHandler ERROR - /dev/ttyUSB0 not found while opening connection [main]
But from the command line, you can see more information interleaved between the log entries:
RXTX Warning: Removing stale lock file. /var/lock/LCK..ttyUSB0
RXTX Error: Unable to remove stale lock file: /var/lock/LCK..ttyUSB0
RXTX Warning: Removing stale lock file. /var/lock/LCK..ttyUSB0
RXTX Error: Unable to remove stale lock file: /var/lock/LCK..ttyUSB0
So maybe JMRI is not the source of the problem, but rather RxTx?!?
The bigger question is however, why does JMRI (or RxTx) leave a “stale lock file” every time it exits? If you run JMRI the very first time, you create the lock file, so when you run it again, you have permission to remove the lock file…unfortunately when someone else tries to run JMRI, they can’t delete your stale lock file!
Posted in it, JMRI, linux, trains