<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://rxtx.qbang.org/wiki/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Rxtx - User contributions [en]</title>
		<link>http://rxtx.qbang.org/wiki/index.php/Special:Contributions/Sdhip</link>
		<description>From Rxtx</description>
		<language>en</language>
		<generator>MediaWiki 1.15.4</generator>
		<lastBuildDate>Tue, 09 Jun 2026 17:44:51 GMT</lastBuildDate>
		<item>
			<title>Installation</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Installation</link>
			<description>&lt;p&gt;Sdhip:&amp;#32;/* I Can Not Open the Port. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/*-------------------------------------------------------------------------&lt;br /&gt;
|   rxtx is a native interface to serial ports in Java.&lt;br /&gt;
|   Copyright 1997-2004 by Trent Jarvi taj@www.linux.org.uk&lt;br /&gt;
|&lt;br /&gt;
|   This library is free software; you can redistribute it and/or&lt;br /&gt;
|   modify it under the terms of the GNU Library General Public&lt;br /&gt;
|   License as published by the Free Software Foundation; either&lt;br /&gt;
|   version 2 of the License, or (at your option) any later version.&lt;br /&gt;
|&lt;br /&gt;
|   This library is distributed in the hope that it will be useful,&lt;br /&gt;
|   but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
|   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
|   Library General Public License for more details.&lt;br /&gt;
|&lt;br /&gt;
|   You should have received a copy of the GNU Library General Public&lt;br /&gt;
|   License along with this library; if not, write to the Free&lt;br /&gt;
|   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;
--------------------------------------------------------------------------*/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is the INSTALL file for RXTX.  Thu Jul  7 19:46:26 EDT 2005&lt;br /&gt;
&lt;br /&gt;
If, while following the instructions, you find this file unclear or incorrect &lt;br /&gt;
please make a note and email the details to taj@www.linux.org.uk.&lt;br /&gt;
&lt;br /&gt;
A note about rxtx 2.1:&lt;br /&gt;
&lt;br /&gt;
rxtx 2.1 replaces the entire CommAPI.  Every effort is made to conform to&lt;br /&gt;
CommAPI but out of respect for our friends at Sun the package name of 2.1 has&lt;br /&gt;
been moved to gnu.io.  A script is offered in contrib/ChangePackage.sh that&lt;br /&gt;
will switch source tree's between javax.comm and gnu.io.&lt;br /&gt;
&lt;br /&gt;
See Sun's CommAPI license for more details on why this decision was made.&lt;br /&gt;
&lt;br /&gt;
If you would like to use javax.comm, use rxtx 1.4 with Sun's CommAPI.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A note on Mac OS X:&lt;br /&gt;
&lt;br /&gt;
	Go to the MacOSX file for install instructions. &lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
=== INSTALL INSTRUCTIONS IN OTHER LANGUAGES ===&lt;br /&gt;
==== A.  Japanese ====&lt;br /&gt;
&lt;br /&gt;
	Instructions are available in Japanese at&lt;br /&gt;
&lt;br /&gt;
	The instructions are fairly old but should help.&lt;br /&gt;
&lt;br /&gt;
	http://www.geocities.co.jp/Technopolis/4789/settei.htm#id1&lt;br /&gt;
	Thanks to Masayuki &amp;quot;Tencho&amp;quot; Yamashita &amp;lt;tencho@venus.kanazawa-it.ac.jp&amp;gt;&lt;br /&gt;
	home page http://www.geocities.co.jp/Technopolis/4789/ &lt;br /&gt;
&lt;br /&gt;
	A copy of these install instructions is provided in &lt;br /&gt;
	install-japanese.html&lt;br /&gt;
	&lt;br /&gt;
	We will gladly include instructions in any language provided.  Tencho &lt;br /&gt;
	was the first to contribute instructions in another language.&lt;br /&gt;
&lt;br /&gt;
=== BUILDING COMMAPI SUPPORT ===&lt;br /&gt;
&lt;br /&gt;
	The following is concerned with building and installing commapi &lt;br /&gt;
	support with Sun's CommAPI package.  A full stand alone version of &lt;br /&gt;
	rxtx is in the CVS archive for interested developers.&lt;br /&gt;
&lt;br /&gt;
==== Quick Install ====&lt;br /&gt;
&lt;br /&gt;
	The following packages are used to build rxtx:&lt;br /&gt;
&lt;br /&gt;
		autoconf-2.59&lt;br /&gt;
		automake-1.9.5&lt;br /&gt;
		libtool-1.5.18&lt;br /&gt;
		gnu make-3.79.1         On some systems like FreeBSD this is&lt;br /&gt;
					called gmake&lt;br /&gt;
		jdk 1.3 or newer	&lt;br /&gt;
&lt;br /&gt;
	With the packages installed, proceed to build and install rxtx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
		$ tar -xzvf rxtx-2.1.tar.gz&lt;br /&gt;
		$ cd rxtx-2.1&lt;br /&gt;
		$ ./configure  (follow the instructions)&lt;br /&gt;
		$ make install (gmake if your system uses that convention)&lt;br /&gt;
		Read &amp;quot;R.  How can I use Lock Files with rxtx?&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	One catch that has showed up... you cannot have spaces in the path.&lt;br /&gt;
	for instance:  /home/jarvi/test build/rxtx/... will cause problems.&lt;br /&gt;
                                   ----^&lt;br /&gt;
	If that does not work or you do not want a script messing with the &lt;br /&gt;
	system, read on..&lt;br /&gt;
&lt;br /&gt;
==== Uninstalling Sun's comm.jar ====&lt;br /&gt;
&lt;br /&gt;
		Sun's comm.jar is not required.  It is a valid option on&lt;br /&gt;
		some platforms.  IT WILL CREATE CHAOS if you have it installed&lt;br /&gt;
		while trying to build rxtx 2.1.&lt;br /&gt;
&lt;br /&gt;
		http://java.sun.com/products/javacomm/index.html&lt;br /&gt;
		&lt;br /&gt;
==== Installing javax.comm.properties. ====&lt;br /&gt;
&lt;br /&gt;
		javax.comm.properties is not currently required by rxtx-2.1&lt;br /&gt;
&lt;br /&gt;
==== Add RXTXcomm.jar to your CLASSPATH. ====&lt;br /&gt;
&lt;br /&gt;
		jdk-1.1:&lt;br /&gt;
&lt;br /&gt;
			make sure /usr/local/java/lib/RXTXcomm.jar is in your&lt;br /&gt;
			CLASSPATH.  If you want to use apps that require&lt;br /&gt;
			RXTXcomm.jar.&lt;br /&gt;
&lt;br /&gt;
			in bash:&lt;br /&gt;
&lt;br /&gt;
			$ export CLASSPATH=${CLASSPATH}:/usr/local/java/lib/RXTXcomm.jar:.&lt;br /&gt;
&lt;br /&gt;
		jdk-1.2 and newer:&lt;br /&gt;
&lt;br /&gt;
			No changes are needed.&lt;br /&gt;
&lt;br /&gt;
==== Build and Install the jar. ====&lt;br /&gt;
&lt;br /&gt;
		configure       configure supports build directories.&lt;br /&gt;
				configure requires javac in its path or&lt;br /&gt;
				JAVA_HOME set to grab some java system&lt;br /&gt;
				properties.&lt;br /&gt;
		make    	to build RXTXcomm.jar and the libraries&lt;br /&gt;
		make install 	to place the jar and libraries in the correct &lt;br /&gt;
				location&lt;br /&gt;
&lt;br /&gt;
		You may select the JDK you wish to build with using $JAVA_HOME&lt;br /&gt;
		For example:&lt;br /&gt;
			export JAVA_HOME=/usr/local/java&lt;br /&gt;
		Otherwise, configure grabs the JDK from your PATH.&lt;br /&gt;
&lt;br /&gt;
==== Where did everything end up? ====&lt;br /&gt;
&lt;br /&gt;
		Lets assume the top java directory is /usr/local/java&lt;br /&gt;
&lt;br /&gt;
		jdk-1.2 the files go in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
			/usr/local/java/jre/lib/ext/RXTXcomm.jar&lt;br /&gt;
			/usr/local/java/jre/lib/$(ARCH)/librxtxSerial.so.&lt;br /&gt;
			/usr/local/java/jre/lib/$(ARCH)/librxtxParallel.so.&lt;br /&gt;
			/usr/local/java/jre/lib/$(ARCH)/lib/...&lt;br /&gt;
&lt;br /&gt;
		jdk-1.1.* the files go in &lt;br /&gt;
&lt;br /&gt;
			/usr/local/java/lib/RXTXcomm.jar&lt;br /&gt;
			/usr/lib/librxtxSerial.so.&lt;br /&gt;
			/usr/lib/librxtxParallel.so.&lt;br /&gt;
			/usr/lib/...&lt;br /&gt;
&lt;br /&gt;
			The librxtxSerial.so librxtxParallel.so are placed in &lt;br /&gt;
			/usr/lib so people don't have to change with their &lt;br /&gt;
			LD_LIBRARY_PATH.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compiling for Win32 support ====&lt;br /&gt;
&lt;br /&gt;
		Get the Sun CommAPI if you want a plug-in solution.  The code &lt;br /&gt;
		is provided for people that may have demanding needs and coding&lt;br /&gt;
		ability. &lt;br /&gt;
&lt;br /&gt;
		There is only serial port code at this time.&lt;br /&gt;
&lt;br /&gt;
		Three ways of compiling win32 libraries are offered:&lt;br /&gt;
&lt;br /&gt;
			mingw32 tools in DOS&lt;br /&gt;
			lcc tools in DOS&lt;br /&gt;
			cross-compiling from Linux&lt;br /&gt;
===== mingw32 tools in DOS =====&lt;br /&gt;
&lt;br /&gt;
		Install mingw32  http://www.mingw.org&lt;br /&gt;
		Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
		Make sure the ming32\bin and jdk\bin directories are in your&lt;br /&gt;
		path.&lt;br /&gt;
		In the rxtx top directory to the following:&lt;br /&gt;
		mkdir build&lt;br /&gt;
		copy Makefile.mingw32 build\Makefile&lt;br /&gt;
		cd build&lt;br /&gt;
		edit the Makefile and make sure the directories are correct.&lt;br /&gt;
		execute the following:&lt;br /&gt;
			make&lt;br /&gt;
			make install&lt;br /&gt;
	&lt;br /&gt;
===== lcc tools in DOS =====&lt;br /&gt;
&lt;br /&gt;
		Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
		Install lcc http://www.cs.virginia.edu/~lcc-win32/&lt;br /&gt;
&lt;br /&gt;
		A make file (Makefile.lcc) for compiling rxtx with lcc&lt;br /&gt;
		contributed by Valentin Pavlov&lt;br /&gt;
&lt;br /&gt;
		You will need a config.h file in the src directory.  Other&lt;br /&gt;
		builds usually generate them automatically.  The following&lt;br /&gt;
		should work.&lt;br /&gt;
&lt;br /&gt;
		#define HAVE_FCNTL_H&lt;br /&gt;
		#define HAVE_SIGNAL_H&lt;br /&gt;
		#undef HAVE_SYS_FCNTL_H&lt;br /&gt;
		#undef HAVE_SYS_FILE_H&lt;br /&gt;
		#undef HAVE_SYS_SIGNAL_H&lt;br /&gt;
		#undef HAVE_TERMIOS_H&lt;br /&gt;
		#undef HAVE_SYS_TIME_H&lt;br /&gt;
&lt;br /&gt;
		if you know how to create the above in a dos Makefile send in			the changes.&lt;br /&gt;
&lt;br /&gt;
		the following commands should then work fine on the command&lt;br /&gt;
		line.&lt;br /&gt;
&lt;br /&gt;
		cd src&lt;br /&gt;
		make -f ..\Makefile.lcc&lt;br /&gt;
&lt;br /&gt;
===== cross-compiling from Linux =====&lt;br /&gt;
&lt;br /&gt;
		Grab ming32:&lt;br /&gt;
&lt;br /&gt;
		Wayne Roberts contributed the version used by the maintainer.&lt;br /&gt;
		(Wayne is largely responsible for bringing rxtx back to win32.)&lt;br /&gt;
		http://www.linuxgrrls.org/~taj/crossmingw32-2.95-1.i386.rpm&lt;br /&gt;
		A more current version can be obtained:&lt;br /&gt;
		http://www.devolution.com/~slouken/SDL/Xmingw32/crossgcc/index.html&lt;br /&gt;
		prebuilt Binaries:&lt;br /&gt;
		http://www.devolution.com/~slouken/SDL/Xmingw32/mingw32-linux-x86-glibc-2.1.tar.gz&lt;br /&gt;
&lt;br /&gt;
		I built the dll with jdk-1.2.2 for linux using jdk-1.2.2 &lt;br /&gt;
		include files from the win32 JDK.&lt;br /&gt;
&lt;br /&gt;
		Make sure that ming32 bin dir is the first in your path (at &lt;br /&gt;
		least before /usr/bin/gcc)&lt;br /&gt;
&lt;br /&gt;
			$ export PATH=&amp;quot; \&lt;br /&gt;
				/usr/local/cross-tools/i386-mingw32/bin/: \&lt;br /&gt;
				$PATH:/usr/X11R6/bin:/usr/local/java/bin: \&lt;br /&gt;
				/usr/local/java/jre/bin/:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		Place Sun jdk 1.2.2 win32 include files in a known location.&lt;br /&gt;
&lt;br /&gt;
			$ mkdir /home/jarvi/win32java&lt;br /&gt;
			$ cp -r /mnt/win98//java/include /home/jarvi/win32java&lt;br /&gt;
&lt;br /&gt;
			If you are developing win32 support you may want to&lt;br /&gt;
			export the location to make the config script&lt;br /&gt;
			non interactive&lt;br /&gt;
&lt;br /&gt;
			$ export WIN32INCLUDE=/home/jarvi/tools/win32-include&lt;br /&gt;
&lt;br /&gt;
		run configure to generate a Makefile&lt;br /&gt;
&lt;br /&gt;
			$ cd /home/jarvi/rxtx-*&lt;br /&gt;
			$ mkdir build&lt;br /&gt;
			$ cd build&lt;br /&gt;
			$ ../configure --target=i386-mingw32  \&lt;br /&gt;
				--host=i386-redhat-linux&lt;br /&gt;
&lt;br /&gt;
		build the class files and dll.&lt;br /&gt;
&lt;br /&gt;
			$ make&lt;br /&gt;
&lt;br /&gt;
		the files will be located in&lt;br /&gt;
&lt;br /&gt;
			rxtx-*/build/...&lt;br /&gt;
&lt;br /&gt;
		If you're looking at rxtx as an example of cross-compiling you &lt;br /&gt;
		may be interested in looking at the examples provided at:&lt;br /&gt;
&lt;br /&gt;
			ftp.xraylith.wisc.edu&lt;br /&gt;
			/pub/khan/gnu-win32/mingw32/misc/java-jni-examples.zip&lt;br /&gt;
&lt;br /&gt;
=== COMMON PROBLEMS ===&lt;br /&gt;
&lt;br /&gt;
==== I get java.lang.UnsatisfiedLinkError: nSetOwner while loading driver gnu.io.RXTXCommDriver when using rxtx. ====&lt;br /&gt;
&lt;br /&gt;
	SetOwner appears to be some win32 call.&lt;br /&gt;
	Do not use Sun's win32 CommAPI files.  Get the Solaris version.&lt;br /&gt;
	&amp;quot;javacomm20-x86.tar.Z&amp;quot; and rxtx-1.4 if you want Sun's solution.&lt;br /&gt;
&lt;br /&gt;
	See Also: 2-B.  Installing Sun's comm.jar (IE its not needed at all)&lt;br /&gt;
&lt;br /&gt;
==== Exception in thread &amp;quot;main&amp;quot; java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path ====&lt;br /&gt;
&lt;br /&gt;
librxtxSerial.so is located in the wrong directory.  Here is an example&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	$ mv /usr/local/java/jre/lib/i386/librxtxSerial* /usr/local/lib&lt;br /&gt;
	$ java BlackBox&lt;br /&gt;
	Exception in thread &amp;quot;main&amp;quot; java.lang.UnsatisfiedLinkError: no rxtxSerial&lt;br /&gt;
	in java.library.path&lt;br /&gt;
		at java.lang.ClassLoader.loadLibrary(Compiled Code)&lt;br /&gt;
		at java.lang.Runtime.loadLibrary0(Compiled Code)&lt;br /&gt;
		at java.lang.System.loadLibrary(Compiled Code)&lt;br /&gt;
		at gnu.io.NativePort.&amp;lt;clinit&amp;gt;(NativePort.java:32)&lt;br /&gt;
		at gnu.io.RXTXPort.&amp;lt;init&amp;gt;(Compiled Code)&lt;br /&gt;
		at gnu.io.RXTXCommDriver.getCommPort(Compiled Code)&lt;br /&gt;
		at gnu.io.CommPortIdentifier.open(Compiled Code)&lt;br /&gt;
		at SerialPortDisplay.openBBPort(Compiled Code)&lt;br /&gt;
		at SerialPortDisplay.&amp;lt;init&amp;gt;(Compiled Code)&lt;br /&gt;
		at BlackBox.addPort(Compiled Code)&lt;br /&gt;
		at BlackBox.main(Compiled Code)&lt;br /&gt;
&lt;br /&gt;
		... lets fix it.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Solution 1: move the file to a place that works&lt;br /&gt;
&lt;br /&gt;
         $ mv /usr/local/lib/librxtxSerial.* /usr/local/java/jre/lib/i386/&lt;br /&gt;
&lt;br /&gt;
Solution 2: add the location of librxtxSerial to LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
         $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/&lt;br /&gt;
&lt;br /&gt;
Solution 3: pass the location in on the command line&lt;br /&gt;
&lt;br /&gt;
         $ java -Djava.library.path=/usr/local/lib/ ...&lt;br /&gt;
&lt;br /&gt;
==== I Can Not Open the Port. ====&lt;br /&gt;
&lt;br /&gt;
If you're not able to open the port (read the errors carefully) then you &lt;br /&gt;
may not have permission to use the device.  &lt;br /&gt;
&lt;br /&gt;
In particular, Red Hat Linux ships with the following permissions on the /dev/ttyS* device files:&lt;br /&gt;
&lt;br /&gt;
        crw-rw----  1 root uucp /dev/ttyS*&lt;br /&gt;
&lt;br /&gt;
Which means that generally, users do not have read or write access to the serial device.&lt;br /&gt;
&lt;br /&gt;
You could increase the device files' access permissions. Log in as root, then run:&lt;br /&gt;
&lt;br /&gt;
        chmod o+rw /dev/ttyS*&lt;br /&gt;
&lt;br /&gt;
Now everyone can read and write the serial devices:&lt;br /&gt;
&lt;br /&gt;
        crw-rw-rw-  1 root uucp /dev/ttyS*&lt;br /&gt;
&lt;br /&gt;
However, this is probably not the ideal situation. At the next reboot, the &lt;br /&gt;
permissions may have been reset. You may want to have only some users access the device.&lt;br /&gt;
&lt;br /&gt;
Another way of proceeding is to add the user that wants to access /dev/ttyS* to the&lt;br /&gt;
&amp;quot;uucp&amp;quot; group as (as can be seen above) group &amp;quot;uucp&amp;quot; has read/write access to the file.              &lt;br /&gt;
&lt;br /&gt;
This is done with the command &amp;quot;usermod&amp;quot; or by directly editing &amp;quot;/etc/group&amp;quot; with &amp;quot;vigr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
        usermod -G uucp &amp;lt;user-that-wants-access&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to check the file &amp;quot;CommAPI&amp;quot; for common mistakes.&lt;br /&gt;
&lt;br /&gt;
Also make sure that the user can create lock files.&lt;br /&gt;
See [[Installation#How_can_I_use_Lock_Files_with_rxtx.3F|Lockfiles]].&lt;br /&gt;
Take note, particularly if you are trying to get 2.1-7r2(final) working on Mac Os X!&lt;br /&gt;
&lt;br /&gt;
==== java.lang.NoClassDefFoundError: gnu/io/CommPort ====&lt;br /&gt;
&lt;br /&gt;
	RXTXcomm.jar is probably not in your classpath or not located in&lt;br /&gt;
	the proper directory.&lt;br /&gt;
&lt;br /&gt;
	for example, lets not include RXTXcomm.jar&lt;br /&gt;
&lt;br /&gt;
	export CLASSPATH=../java/lib/classes.zip&lt;br /&gt;
	$ java BlackBoxException in thread &amp;quot;main&amp;quot;&lt;br /&gt;
	java.lang.NoClassDefFoundError: gnu/io/CommPort&lt;br /&gt;
&lt;br /&gt;
==== The Compiler Cannot Find Java Include Files ====&lt;br /&gt;
&lt;br /&gt;
	Check to top of the Makefile to make sure we agree on the location of&lt;br /&gt;
	the include files that came with the jdk.  Specifically:&lt;br /&gt;
&lt;br /&gt;
	JAVAINCLUDE =  -I /usr/local/java/include/&lt;br /&gt;
	JAVANATINC =  -I /usr/local/java/include/genunix&lt;br /&gt;
	also check the classpath&lt;br /&gt;
	CLASSPATH = ...&lt;br /&gt;
&lt;br /&gt;
==== Configure says 'unterminated sed command' and stops ==== &lt;br /&gt;
&lt;br /&gt;
	Unterminated sed command errors usually result from `find` producing &lt;br /&gt;
	unexpected results.   If you are unsure remove all comm.jar and &lt;br /&gt;
	configure to place in in the correct place. &lt;br /&gt;
&lt;br /&gt;
==== Java Can Not Find libstdc++-libc6.0-1.so.2 ====&lt;br /&gt;
&lt;br /&gt;
	jdk-1.2 on redhat systems may note that Java complains about not being&lt;br /&gt;
	able to find libstdc++-libc6.0-1.so.2.  A symbolic link can be used to &lt;br /&gt;
	get around this feature.&lt;br /&gt;
&lt;br /&gt;
	ln -s /usr/lib/libstdc++ /usr/lib/libstdc++-libc6.0-1.so.2&lt;br /&gt;
	ls -l /usr/lib/libstdc++-libc6.0-1.so.2&lt;br /&gt;
 	/usr/lib/libstdc++-libc6.0-1.so.2 -&amp;gt; libstdc++.so.2.8.0&lt;br /&gt;
&lt;br /&gt;
==== BlackBox Can Not Handle all the ports! ====&lt;br /&gt;
&lt;br /&gt;
	BlackBox has a hard coded limit in BlackBox.java that prevents it from &lt;br /&gt;
	running if you don't specify a port.  We are considering alternative &lt;br /&gt;
	ways of handling the large number of port names in Unix.  The line in &lt;br /&gt;
	question&lt;br /&gt;
&lt;br /&gt;
	is:&lt;br /&gt;
&lt;br /&gt;
		portDisp = new SerialPortDisplay[50];&lt;br /&gt;
		&lt;br /&gt;
	just change 50 to say 256.&lt;br /&gt;
&lt;br /&gt;
==== Illegal use of nonvirtal function call! ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	Exception in thread &amp;quot;main&amp;quot; java.lang.VerifyError: (class: &lt;br /&gt;
	gnu/io/RXTXPort$SerialOutputStream, method: flush signature: ()V) &lt;br /&gt;
	Illegal use of nonvirtual function call&lt;br /&gt;
		at gnu.io.RXTXCommDriver.getCommPort(Compiled Code)&lt;br /&gt;
		at gnu.io.CommPortIdentifier.open(Compiled Code)&lt;br /&gt;
		at SerialPortDisplay.openBBPort(Compiled Code)&lt;br /&gt;
		at SerialPortDisplay.&amp;lt;init&amp;gt;(Compiled Code)&lt;br /&gt;
		at BlackBox.addPort(Compiled Code)&lt;br /&gt;
		at BlackBox.main(Compiled Code)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&amp;quot;1.1 compilers sometimes generate code that won't verify under 1.2.&lt;br /&gt;
&lt;br /&gt;
	If you don't have the sources for the offending class to recompile with&lt;br /&gt;
	a 1.2 javac, the only solution I know of is to launch the VM with the&lt;br /&gt;
	-noverify option.&lt;br /&gt;
&lt;br /&gt;
	Louis&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	In other words start with a fresh build directory, rebuild, and &lt;br /&gt;
	reinstall to avoid the problem.&lt;br /&gt;
&lt;br /&gt;
==== My libc5 Linux system is generating SIGSEGV ====&lt;br /&gt;
&lt;br /&gt;
	Older Linux Systems (libc5) should upgrade to a glibc system with &lt;br /&gt;
	libpthread-0.7 or newer.  We have run into many problems with older &lt;br /&gt;
	libraries.  SIGSEGV was the most common symptom.  Reported by  Peter &lt;br /&gt;
	Bennett &amp;lt;bencom at bencom.co.nz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== AM_PROG_LIBTOOL not found in library ====&lt;br /&gt;
&lt;br /&gt;
	cd. &amp;amp;&amp;amp; aclocal&lt;br /&gt;
	aclocal:configure.in: 23: macro 'AM_PROG_LIBTOOL' not found in library&lt;br /&gt;
	make:***[aclocal.m4]Error 1&lt;br /&gt;
&lt;br /&gt;
	If you're positive things are setup right you may try the autogen.sh &lt;br /&gt;
	script to try regenerating the scripts with your tools.&lt;br /&gt;
&lt;br /&gt;
==== Problems with RMISecurityManager() ====&lt;br /&gt;
&lt;br /&gt;
	Please see the file RMISecurityManager.html &lt;br /&gt;
&lt;br /&gt;
==== Which Wires Should be Connected ====&lt;br /&gt;
&lt;br /&gt;
	With the DB25 use 2 (TX), 3 (RX) and 7 (GD) to connect to the device.&lt;br /&gt;
	With the DB9  use 2 (RX), 3 (TX) and 5 (GD) to connect to the device.&lt;br /&gt;
&lt;br /&gt;
	You will need to hook up more than that for hardware flow control.&lt;br /&gt;
&lt;br /&gt;
==== Which Device Should be Used? ====&lt;br /&gt;
&lt;br /&gt;
	Linux serial ports should use /dev/ttyS?&lt;br /&gt;
	specialx, cyclades and isdn4 linux have been reported to work.&lt;br /&gt;
	as many as 64 ports have worked at one time.&lt;br /&gt;
        FreeBSD uses cuaa?&lt;br /&gt;
	netbsd uses tty0?&lt;br /&gt;
	Irix  uses ttyd? ttym? ttyf?&lt;br /&gt;
	HP-UX uses tty0p? tty1p?&lt;br /&gt;
	BeOS uses /dev/ports/serial?&lt;br /&gt;
	Win32 uses COM?&lt;br /&gt;
  &lt;br /&gt;
==== It Did Not Work! ====&lt;br /&gt;
&lt;br /&gt;
	There are sure to be bugs.  The goal is to make the install as painless&lt;br /&gt;
	as possible.  Send back comments if something could be easier.&lt;br /&gt;
&lt;br /&gt;
	If you run into a problem building the rxtx package please include the&lt;br /&gt;
	output generated by the following script.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        ---------------clip-----------------&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
which java&lt;br /&gt;
java -version&lt;br /&gt;
uname -a&lt;br /&gt;
autoconf --version&lt;br /&gt;
automake --version&lt;br /&gt;
libtool --version&lt;br /&gt;
make --version&lt;br /&gt;
        ---------------clip-----------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	Here's what's on my system for comparison.  Older make is known to cause&lt;br /&gt;
	problems.&lt;br /&gt;
&lt;br /&gt;
		java 1.4&lt;br /&gt;
		autoconf-2.53&lt;br /&gt;
		automake-1.6.3&lt;br /&gt;
		libtool-1.4.2&lt;br /&gt;
		gnu make-3.79.1  &lt;br /&gt;
&lt;br /&gt;
	mail any bugs to taj@www.linux.org.uk.&lt;br /&gt;
&lt;br /&gt;
==== Which jdk should be used? ====&lt;br /&gt;
&lt;br /&gt;
	This is dated.&lt;br /&gt;
&lt;br /&gt;
	Ideally any jdk would be fine.  Here is a list of jdk's tried on&lt;br /&gt;
	RedHat 6.0/kernel 2.2.17pre13 with various versions of glibc.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 Sun            IBM           Blackdown&lt;br /&gt;
                 2.1.2_006      1.3.0         1.1.8v1&lt;br /&gt;
                 green  native  green native  green native&lt;br /&gt;
                 ------------------------------------------&lt;br /&gt;
glibc-2.1.1-6   | OK   | *1   | *2   | *2   | OK   | *3   |&lt;br /&gt;
                -------------------------------------------&lt;br /&gt;
glibc-2.1.2-11  | OK   | *1   | OK   | OK   | OK   | OK   |&lt;br /&gt;
                -------------------------------------------&lt;br /&gt;
glibc-2.1.2-17  | OK   | *1   | OK   | OK   | OK   | OK   |&lt;br /&gt;
                -------------------------------------------&lt;br /&gt;
glibc-2.1.3-15  | OK   | *1   | OK   | OK   | OK   | OK   |&lt;br /&gt;
                -------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
1) BlackBox (a demo application shipped with CommAPI locks after multiple open()/close()&lt;br /&gt;
&lt;br /&gt;
2) java wont start &amp;quot;Unable to load /usr/local/java/jre/bin/libhpi.so: symbol&lt;br /&gt;
sem_wait, version GLIBC_2.1 not defined in file libpthread.so.0 with link time&lt;br /&gt;
reference Could not create the Java virtual machine.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3) java wont start &amp;quot;error in loading shared libraries:&lt;br /&gt;
/usr/local/java/bin/../lib/i686/native_threads/libjava.so: symbol sem_init,&lt;br /&gt;
version GLIBC_2.1 not defined in file libpthread.so.0 with link time reference&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Conclusion?  Avoid Sun's native threads unless you can figure out whats going wrong. (this is dated)&lt;br /&gt;
 &lt;br /&gt;
==== How does rxtx detect ports?  Can I override it? ====&lt;br /&gt;
&lt;br /&gt;
rxtx tries to detect ports on by scanning /dev for files matching any&lt;br /&gt;
of a set of known-good prefixes, such as 'ttyS', 'ttym', and so on.&lt;br /&gt;
Any ones that exist, are supposed to be good for the current operating&lt;br /&gt;
system, and that can be read and written are offered back from&lt;br /&gt;
CommPortIdentifier.getPortIdentifiers(), and only these can be used as&lt;br /&gt;
ports.&lt;br /&gt;
&lt;br /&gt;
If you wish, you can set the system properties gnu.io.rxtx.SerialPorts&lt;br /&gt;
and gnu.io.rxtx.ParallelPorts.  If either of these is set, then no&lt;br /&gt;
scanning will be carried out and only the specified ports will be&lt;br /&gt;
available.  You can use this to make one platform look like another,&lt;br /&gt;
to restrict Java access to ports, or possibly for other reasons.  For&lt;br /&gt;
example&lt;br /&gt;
&lt;br /&gt;
	java -Dgnu.io.rxtx.SerialPorts=/dev/cua/a:/dev/cua/b com.foo.MyApp&lt;br /&gt;
&lt;br /&gt;
will look kind of like Solaris, if you have created the appropriate&lt;br /&gt;
device nodes.&lt;br /&gt;
&lt;br /&gt;
A note on Linux port enumeration.  We have set most ports aside.  Once the&lt;br /&gt;
number of possible devices started getting into the thousands, checking them&lt;br /&gt;
all made little sense.  Look in RXTXCommDriver.java and search for Linux.&lt;br /&gt;
&lt;br /&gt;
You will see that only /dev/ttyS* is searched but the possible addition ports&lt;br /&gt;
that can be used are listed under it.  Just copy the few you need.&lt;br /&gt;
&lt;br /&gt;
A brief note on '''How to add new enumeration to existing list of ports in Linux?'''&lt;br /&gt;
&lt;br /&gt;
The RXTXcomm.jar file contains all the required classes that work with javax.comm API. &lt;br /&gt;
One of them is RXTXCommDriver.class. RXTXCommDriver.java is available in ftp://ftp.qbang.org/pub/rxtx/rxtx-2.0-7pre2/src/&lt;br /&gt;
Download the RXTXCommDriver.java. In this code, you will find &lt;br /&gt;
&lt;br /&gt;
	if (osName.equals (&amp;quot;Linux&amp;quot;))&lt;br /&gt;
	  {&lt;br /&gt;
	    String[]Temp =&lt;br /&gt;
	    {&lt;br /&gt;
	      &amp;quot;ttyS&amp;quot;,		// linux Serial Ports&lt;br /&gt;
		&amp;quot;ttySA&amp;quot;		// for the IPAQs&lt;br /&gt;
	    };&lt;br /&gt;
	    CandidatePortPrefixes = Temp;&lt;br /&gt;
&lt;br /&gt;
Replace this code with &lt;br /&gt;
&lt;br /&gt;
	if (osName.equals (&amp;quot;Linux&amp;quot;))&lt;br /&gt;
	  {&lt;br /&gt;
	    String[]Temp =&lt;br /&gt;
	    {&lt;br /&gt;
	      &amp;quot;ttyS&amp;quot;, &amp;quot;ttyUSB&amp;quot;,		// linux Serial Ports&lt;br /&gt;
		&amp;quot;ttySA&amp;quot;		// for the IPAQs&lt;br /&gt;
	    };&lt;br /&gt;
	    CandidatePortPrefixes = Temp;&lt;br /&gt;
	  } &lt;br /&gt;
&lt;br /&gt;
Compile the RXTXCommDriver.java and add the resulting RXTXCommDriver.class file to RXTXcomm.jar in&lt;br /&gt;
/usr/java/jdk1.5.0_07/jre/lib/ext/RXTXcomm.jar&lt;br /&gt;
&lt;br /&gt;
P.S. : RXTXcomm.jar has two sub directories. gnu-&amp;gt;io-&amp;gt;RXTXCommDriver.class. Make sure the new compiled file goes into the right place. One way is to extract all files from RXTXcomm.jar. Replace the RXTXCommDriver.class with the new file. Create a new RXTXcomm.jar file using the following command&lt;br /&gt;
&lt;br /&gt;
#jar cvf RXTXcomm.jar gnu META-INF &lt;br /&gt;
&lt;br /&gt;
Replace this new updated jar file with the old one. Then USB to Serial Converters should work great.&lt;br /&gt;
&lt;br /&gt;
==== How can I use Lock Files with rxtx? ====&lt;br /&gt;
&lt;br /&gt;
RXTX uses lock files by default. Lock files are used to prevent more than one program accessing a port at a&lt;br /&gt;
time. Lock files may require a bit of sysadmin to work properly.&lt;br /&gt;
&lt;br /&gt;
If you do not want to use lockfiles in RXTX, run 'configure' with option '--disable-lockfiles'.&lt;br /&gt;
It is however strongly recommended that you do use lock files to prevent RXTX from stomping on&lt;br /&gt;
other programs that might use the serial ports concurrently.&lt;br /&gt;
&lt;br /&gt;
(Don't know if the following is still current. Trent?)&lt;br /&gt;
&lt;br /&gt;
RXTX has support for lock files on Linux only.  It may work on other&lt;br /&gt;
platforms but read the source before blindly trying it. &lt;br /&gt;
&lt;br /&gt;
The lock file code does not support kermit style lock files or lock files in&lt;br /&gt;
'/var/spool'. It is sure to fail if you're using subdirectories in '/dev' or do not&lt;br /&gt;
have '/dev'.&lt;br /&gt;
&lt;br /&gt;
Before you use lock files you need to do one of two things:&lt;br /&gt;
&lt;br /&gt;
# Be user 'root' or user 'uucp' on your machine whenever you use RXTX .. or ..&lt;br /&gt;
# Add the specific user that needs to use RXTX to the group 'uucp' (preferred)&lt;br /&gt;
&lt;br /&gt;
(On Red Hat, use group 'lock' in addition to 'uucp', see further below.)&lt;br /&gt;
&lt;br /&gt;
To add a user to the 'uucp' group edit '/etc/group' as 'root' (using 'vigr' or your&lt;br /&gt;
preferred editor) and change the following:&lt;br /&gt;
&lt;br /&gt;
   uucp::14:uucp&lt;br /&gt;
&lt;br /&gt;
to something like:&lt;br /&gt;
&lt;br /&gt;
   uucp::14:uucp,jarvi&lt;br /&gt;
&lt;br /&gt;
It may be simpler to just run&lt;br /&gt;
&lt;br /&gt;
   usermod -G uucp jarvi&lt;br /&gt;
&lt;br /&gt;
which does exactly the same.&lt;br /&gt;
&lt;br /&gt;
In this case 'jarvi' is the login name for the user that needs to use lock files.&lt;br /&gt;
Do not change the number (14).  Whatever is in your group file is correct. (On&lt;br /&gt;
Red Hat, do this also for group 'lock')&lt;br /&gt;
&lt;br /&gt;
User 'jarvi' in this case can now use RXTX with lock files.&lt;br /&gt;
&lt;br /&gt;
===== Red Hat users ===== &lt;br /&gt;
&lt;br /&gt;
In Red Hat, lock files are supposed to be handled by group 'lock' instead of group 'uucp'.&lt;br /&gt;
&lt;br /&gt;
Why: from Red Hat 7.2 upwards. the directory into which lock files are written, '/var/lock',&lt;br /&gt;
can only be written to by members of group 'lock'. On the other hand, the serial device&lt;br /&gt;
files are owned by group 'uucp' and are not world-writeable by default.&lt;br /&gt;
&lt;br /&gt;
Thus any user (which may or may not actually be using [http://www.uucp.org/index.shtml uucp] ... do people still know what &lt;br /&gt;
that was?) that accesses the serial device files must belong to group 'lock' (to create lockfiles) and to group 'uucp'&lt;br /&gt;
(to access the device files proper). See also [[Installation#I_Can_Not_Open_the_Port.|I cannot open the port.]]&lt;br /&gt;
&lt;br /&gt;
===== Mandrake users =====&lt;br /&gt;
&lt;br /&gt;
'/var/lock' needs to be owned by group 'uucp'.&lt;br /&gt;
&lt;br /&gt;
===== Mac OS X users =====&lt;br /&gt;
&lt;br /&gt;
You may need to create the lock directory with group 'uucp' ownership. There is a script&lt;br /&gt;
in 'contrib' called 'fixperm.sh' to help with this on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
In 2.1-7r2(final) there is a mis-match between the lock file directory given in 'fixperm.sh' that in the source file SerialImp.h (/var/spool/uucp and /var/lock respectively).  If you want the binaries to work, you need to replace /var/spool/uucp by /var/lock in fixperm.sh, and run that as root.&lt;br /&gt;
&lt;br /&gt;
===== Lock File server =====&lt;br /&gt;
&lt;br /&gt;
As another option it is possible to use a Lock File Server.  In this case,&lt;br /&gt;
a server runs in group 'uucp' or 'lock' and rxtx then connects to localhost&lt;br /&gt;
to lock and unlock the port.  The server and install instructions can be&lt;br /&gt;
found in 'src/lfd'. RXTX will need to be configured to use the server:&lt;br /&gt;
&lt;br /&gt;
     configure --enable-lockfile_server&lt;br /&gt;
&lt;br /&gt;
Any user can then lock the ports if they are not already locked.&lt;br /&gt;
&lt;br /&gt;
===== Arcana =====&lt;br /&gt;
&lt;br /&gt;
Still cant get things to run under a root account?&lt;br /&gt;
&lt;br /&gt;
Vadim Tkachenko writes:&lt;br /&gt;
	&lt;br /&gt;
&amp;quot;Maybe you remember - couple of months back I've run into inability to&lt;br /&gt;
run the JDK 1.3+ from under root account.&lt;br /&gt;
&lt;br /&gt;
Today, absolutely suddenly, something clicked in my head and the cause&lt;br /&gt;
was found: libsafe. To make JDK work, it is enough to disable libsafe&lt;br /&gt;
(unset LD_PRELOAD).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== How can I tell which version of rxtx is installed? ====&lt;br /&gt;
&lt;br /&gt;
Version information is not documented in Sun's CommAPI so this is probably&lt;br /&gt;
unique to RXTX.&lt;br /&gt;
&lt;br /&gt;
As of rxtx-1.5-4 and rxtx-1.4-6 a class has been added to allow developers to &lt;br /&gt;
check which version of rxtx is installed.  The class is RXTXVersion.  &lt;br /&gt;
&lt;br /&gt;
The static method: System.out.println(RXTXVersion.getVersion());&lt;br /&gt;
&lt;br /&gt;
will print the rxtx version as a String in the following format:&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;RXTX-MAJOR.MINOR-PATCH&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
an example would be:&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;RXTX-1.5-4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A change in the MAJOR version would suggest you're in trouble.&lt;br /&gt;
&lt;br /&gt;
Odd MINOR version are reserved for development.  Even MINOR versions are&lt;br /&gt;
reserved for 'stable' releases.&lt;br /&gt;
&lt;br /&gt;
PATCH is used to differentiate incremental releases of the MINOR releases.&lt;br /&gt;
&lt;br /&gt;
CommPortIdentifier is expected to support getVersion() in the RXTX-1.5 series.&lt;br /&gt;
&lt;br /&gt;
==== What Type of Latency can I expect with RXTX ====&lt;br /&gt;
&lt;br /&gt;
	frantz &amp;lt;fcapiez at club-internet.fr&amp;gt; put RXTX under a scope and found&lt;br /&gt;
	the following:&lt;br /&gt;
&lt;br /&gt;
	RXTX currently has a latency of 150-200ms on a PII at 450mhz.&lt;br /&gt;
	The latency can be reduced to 70-80ms by reducing the usleep()&lt;br /&gt;
	value in SerialImp.c:eventLoop() to usleep(5000)).&lt;br /&gt;
&lt;br /&gt;
	Much lower latencies should be possible but the maintainer does not&lt;br /&gt;
	have equipment to test changes.&lt;br /&gt;
&lt;br /&gt;
	He is going to look at this further.  He needs 20 ms or less latency.&lt;br /&gt;
	&lt;br /&gt;
==== I got rxtx working on a new OS but I can't read from the port ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; Now my java program starts up nicely without complaining. However, it does&lt;br /&gt;
&amp;gt; never read any data from the serial port. It looks like it can write data,&lt;br /&gt;
&amp;gt; because if I start a terminal program after I tried to run my program, I get&lt;br /&gt;
&amp;gt; all the return stuff from the modem that my program wrote.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; I hacked around abit and found out that it hangs in the select() call which&lt;br /&gt;
&amp;gt; simply never returns.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
On Sun, 28 Jan 2001, Baldur Norddahl wrote:&lt;br /&gt;
&amp;gt; HPUX 11:&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; As I wrote to the mailinglist I had some wierd problems where it apparently&lt;br /&gt;
&amp;gt; could write data to the modem, but not read anything back. My terminal&lt;br /&gt;
&amp;gt; programs had no problem using the port. A few days after I reported the&lt;br /&gt;
&amp;gt; problem to the mailinglist, I had given up for now, but then I noticed that&lt;br /&gt;
&amp;gt; it suddenly worked! So it remains a mystery what was wrong as I did not&lt;br /&gt;
&amp;gt; change anything at all, neither in my program nor on the host.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; Baldur&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I suspect two java applications had the port open.  Its easy to do while &lt;br /&gt;
developing.  Perhaps &amp;lt;ctl&amp;gt; z instead of &amp;lt;ctl&amp;gt; c was entered.&lt;br /&gt;
&lt;br /&gt;
This is the reason for adding lockfile support to rxtx.  If another application&lt;br /&gt;
has opened the port, a second application will appear to not be able to &lt;br /&gt;
read or get only part of the data.  ..because the first one is reading.  Only&lt;br /&gt;
one of the select()s are waken.&lt;br /&gt;
&lt;br /&gt;
Its possible to put lockfile support in for HPUX if it is known where other&lt;br /&gt;
applications place their lockfiles.   The easiest way to find out where is&lt;br /&gt;
to fire up minicom, kermit, ... and see where its lockfile is placed.&lt;br /&gt;
&lt;br /&gt;
Here are the known suspects:&lt;br /&gt;
&lt;br /&gt;
const char *lockdirs[]={ &amp;quot;/etc/locks&amp;quot;, &amp;quot;/usr/spool/kermit&amp;quot;,&lt;br /&gt;
                &amp;quot;/usr/spool/locks&amp;quot;, &amp;quot;/usr/spool/uucp&amp;quot;, &amp;quot;/usr/spool/uucp/&amp;quot;,&lt;br /&gt;
                &amp;quot;/usr/spool/uucp/LCK&amp;quot;, &amp;quot;/var/lock&amp;quot;, &amp;quot;/var/lock/modem&amp;quot;,&lt;br /&gt;
                &amp;quot;/var/spool/lock&amp;quot;, &amp;quot;/var/spool/locks&amp;quot;, &amp;quot;/var/spool/uucp&amp;quot;,NULL&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
freebsd uses /var/spool/uucp/, linux uses /var/lock those are the only two&lt;br /&gt;
I've done so far.  Adding the support is trivial once a directory is&lt;br /&gt;
decided upon.&lt;br /&gt;
&lt;br /&gt;
Lockfiles are rather simple.  when an application opens a port it first checks&lt;br /&gt;
if there is a file with the ports name.  If there is it grabs the PID from the&lt;br /&gt;
file.  If that PID is still active the application does not open the port.&lt;br /&gt;
&lt;br /&gt;
If the PID is not active or there is no lockfile, the application creates one&lt;br /&gt;
with its own PID in it.&lt;br /&gt;
&lt;br /&gt;
The confusion starts when you have to decide where (see above) to put the&lt;br /&gt;
lockfile, what the name format is for the file and how to store the PID.&lt;br /&gt;
&lt;br /&gt;
rxtx follows The File System Hierarchy Standard http://www.pathname.com/fhs/&lt;br /&gt;
on linux.  I'm not positive what is normal on other OS's.&lt;br /&gt;
&lt;br /&gt;
                more reading:&lt;br /&gt;
&lt;br /&gt;
                The File System Hierarchy Standard&lt;br /&gt;
                http://www.pathname.com/fhs/&lt;br /&gt;
&lt;br /&gt;
                FSSTND&lt;br /&gt;
                ftp://tsx-11.mit.edu/pub/linux/docs/linux-standards/fsstnd/&lt;br /&gt;
&lt;br /&gt;
                Proposed Changes to the File System Hierarchy Standard&lt;br /&gt;
                ftp://scicom.alphacdc.com/pub/linux/devlock-0.X.tgz&lt;br /&gt;
&lt;br /&gt;
                &amp;quot;UNIX Network Programming&amp;quot;, W. Richard Stevens,&lt;br /&gt;
                Prentice-Hall, 1990, pages 96-101.&lt;br /&gt;
                more reading:&lt;br /&gt;
&lt;br /&gt;
==== My ThinkPad is Not Working! ====&lt;br /&gt;
&lt;br /&gt;
	Scott Burleigh &amp;lt;Scott.Burleigh at jpl.nasa.gov&amp;gt; writes:&lt;br /&gt;
&lt;br /&gt;
		For your files, and in case anybody asks in the &lt;br /&gt;
		future, IBM Thinkpads ship with the external serial port&lt;br /&gt;
		*disabled* by default.  The Thinkpad configuration utility&lt;br /&gt;
		supplied with the machine (under Windows) says it's enabled,&lt;br /&gt;
		and the device manager in the System dialog of the Control&lt;br /&gt;
		panel says it's enabled, but they lie.  In order to enable the&lt;br /&gt;
		port you have to use the old DOS ps2.exe bios configuration &lt;br /&gt;
		utility which, under Windows 2000, is in&lt;br /&gt;
		c:\Program Files\Thinkpad\utilities:&lt;br /&gt;
&lt;br /&gt;
			ps2 sera enable&lt;br /&gt;
&lt;br /&gt;
		Until you do, &amp;quot;setserial -ga /dev/ttyS0&amp;quot; will always tell you&lt;br /&gt;
		the UART is unknown.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== APPLETS ===&lt;br /&gt;
&lt;br /&gt;
More info is needed on signing applets.  This is an exchange from the rxtx mail-&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
==== Using Applets ====&lt;br /&gt;
&lt;br /&gt;
prashantg10 at yahoo.com asked:&lt;br /&gt;
&lt;br /&gt;
	Hi All !&lt;br /&gt;
&lt;br /&gt;
	I am trying to use applet on thin terminal which has&lt;br /&gt;
	Linux base Kernel.For testing I am using Linux&lt;br /&gt;
	machine.I have install all the required components.&lt;br /&gt;
	e.g. JDK, RXTX. Everthing is fine. BlackBox runs ,even&lt;br /&gt;
	my application runs. When It comes to applet,&lt;br /&gt;
	everything is halts. It does not even show the listing&lt;br /&gt;
	of ports. Is it because applet can't run under root&lt;br /&gt;
	account or what might be the reasons. Can anybody tell&lt;br /&gt;
	me solution.&lt;br /&gt;
&lt;br /&gt;
Son To &amp;lt;son@openbx.net&amp;gt; replied:&lt;br /&gt;
&lt;br /&gt;
	Java applets run withing the sandbox of the security manager.&lt;br /&gt;
	Applets must be signed to access the com port, but for development &lt;br /&gt;
	purposes you can put&lt;br /&gt;
&lt;br /&gt;
	user_pref(&amp;quot;signed.applets.codebase_principal_support&amp;quot;, true);&lt;br /&gt;
&lt;br /&gt;
	in your prefs.js located in ~/.mozilla/default/XYYrandomDirName&lt;br /&gt;
	&lt;br /&gt;
	I didn't use Java applet for my application. I used XUL and CSS for&lt;br /&gt;
	the GUI development and used mozilla Javascript SOAP library to&lt;br /&gt;
	communicate with apache Axis webservice backend which uses RXTX to&lt;br /&gt;
	access the com port.&lt;br /&gt;
&lt;br /&gt;
-- &lt;br /&gt;
Trent Jarvi&lt;br /&gt;
taj@www.linux.org.uk&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
You made it this far.. what is one more line.&lt;br /&gt;
&lt;br /&gt;
Sun, Solaris and Java are registered trademarks of Sun Microsystems, Inc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
reminder:&lt;br /&gt;
&lt;br /&gt;
redhat 7.1 needs:&lt;br /&gt;
export LD_ASSUME_KERNEL=2.2.5&lt;br /&gt;
&lt;br /&gt;
=== User stories ===&lt;br /&gt;
&lt;br /&gt;
==== RXTX and the Equinox SST-4P/LP ====&lt;br /&gt;
&lt;br /&gt;
A note for those who shall try to install an Equinox board (in this case &amp;quot;SST-4P/LP&amp;quot;) and try to&lt;br /&gt;
run it with RXTX under Linux (in this case, Red Hat ES 4)&lt;br /&gt;
&lt;br /&gt;
Get the driver source from the [http://www.equinox.com/support/download-drivers/ www.equinox.com driver page] and&lt;br /&gt;
compile it as described therein.&lt;br /&gt;
&lt;br /&gt;
The four serial ports of the Equinox SST-4P are available as the device files:&lt;br /&gt;
&lt;br /&gt;
   /dev/ttyQ1a1 ... /dev/ttyQ1a4&lt;br /&gt;
&lt;br /&gt;
These device files are created by the 'ssmkn' (alias 'make device nodes') executable. &lt;br /&gt;
&lt;br /&gt;
In order to make things work, you have to:&lt;br /&gt;
&lt;br /&gt;
Modify the 'eqnx' startup script '/etc/rc.d/init.d/eqnx'&lt;br /&gt;
and make it set the permissions of the devices files in the&lt;br /&gt;
'start' section, immediately after the call to 'ssmkn':&lt;br /&gt;
&lt;br /&gt;
        # create device files&lt;br /&gt;
        /usr/bin/ssmkn&lt;br /&gt;
        # fix rights on device files&lt;br /&gt;
        LIST=`ls /dev/ttyQ*`&lt;br /&gt;
        for DEV in $LIST; do&lt;br /&gt;
          chown root.uucp $DEV&lt;br /&gt;
          chmod 660 $DEV&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
Modify 'src/RXTXCommDriver.java' in the RXTX distribution. Add&lt;br /&gt;
the 'ttyQ1a' radical to the list of port radicals that RXTX checks:&lt;br /&gt;
&lt;br /&gt;
        if(osName.equals(&amp;quot;Linux&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
           String[] Temp = {&lt;br /&gt;
                &amp;quot;ttyS&amp;quot;, // linux Serial Ports&lt;br /&gt;
                &amp;quot;ttySA&amp;quot;, // for the IPAQs&lt;br /&gt;
                &amp;quot;ttyUSB&amp;quot;, // for USB frobs&lt;br /&gt;
                &amp;quot;ttyQ1a&amp;quot; // Equinox&lt;br /&gt;
           };&lt;br /&gt;
           CandidatePortPrefixes=Temp;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
Then recompile and reinstall.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;id90446c052120bf9ce69cb03f0c7052bd&amp;quot; style=&amp;quot;overflow:auto;height:1px;&amp;quot;&amp;gt;&lt;br /&gt;
[http://casino-games-wiki.com/index.php/casino_games casino games]&lt;br /&gt;
[http://casino-games-wiki.com/index.php/online_casino_games online casino games]&lt;br /&gt;
[http://casino-games-wiki.com/index.php/casino_games_online casino games online]&lt;br /&gt;
[http://adipex-wiki.com/index.php/adipex adipex]&lt;br /&gt;
[http://adipex-wiki.com/index.php/buy_adipex buy adipex]&lt;br /&gt;
[http://adipex-wiki.com/index.php/adipex_online adipex online]&lt;br /&gt;
[http://tramadol-wiki.com/index.php/tramadol tramadol]&lt;br /&gt;
[http://tramadol-wiki.com/index.php/cheap_tramadol cheap tramadol]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div  style=&amp;quot;display:none&amp;quot;&amp;gt;&lt;br /&gt;
[l_sp_22]&lt;br /&gt;
[http://urlzip.de/5k9 500mg naproxen]&lt;br /&gt;
[http://flingk.com/17pwgme3 apo naproxen]&lt;br /&gt;
[http://flingk.com/10dah3ep trazodone 50mg]&lt;br /&gt;
[http://urlzip.de/5ka trazodone for sleep]&lt;br /&gt;
[http://flingk.com/qpzm7pz diovan hct]&lt;br /&gt;
[http://flingk.com/19k1yi7m skelaxin 800 mg]&lt;br /&gt;
[http://urlzip.de/5kb albuterol inhaler]&lt;br /&gt;
[http://flingk.com/jtx05om amoxicillin 500mg]&lt;br /&gt;
[http://flingk.com/bk89oth augmentin xr]&lt;br /&gt;
[http://symy.jp/?Hpt installing laminate floor]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://z.la/sl4qz carisoprodol dia siguiente]&lt;br /&gt;
[http://z.la/7h939 carisoprodol durante noche]&lt;br /&gt;
[http://z.la/9is4r carisoprodol overnight delivery]&lt;br /&gt;
[http://z.la/8loyz tramadol durante noche]&lt;br /&gt;
[http://z.la/lmjt6 tramadol dia siguiente]&lt;br /&gt;
[http://z.la/8xx50 fioricet dia siguiente]&lt;br /&gt;
[http://z.la/41smo fioricet durante noche]&lt;br /&gt;
[http://z.la/8nfht zenegra fioricet]&lt;br /&gt;
[http://kafder.org.tr/mixa/ installing laminate flooring]&lt;br /&gt;
[http://z.la/7lhlp installing laminate flooring]&lt;br /&gt;
[http://z.la/fgebr dupont laminate flooring]&lt;br /&gt;
[http://z.la/enhll wilsonart laminate]&lt;br /&gt;
[http://z.la/6g9eg homecoming and prom dresses]&lt;/div&gt;</description>
			<pubDate>Mon, 02 Apr 2007 15:48:30 GMT</pubDate>			<dc:creator>Sdhip</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Installation</comments>		</item>
		<item>
			<title>Installation</title>
			<link>http://rxtx.qbang.org/wiki/index.php/Installation</link>
			<description>&lt;p&gt;Sdhip:&amp;#32;/* Mac OS X users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/*-------------------------------------------------------------------------&lt;br /&gt;
|   rxtx is a native interface to serial ports in Java.&lt;br /&gt;
|   Copyright 1997-2004 by Trent Jarvi taj@www.linux.org.uk&lt;br /&gt;
|&lt;br /&gt;
|   This library is free software; you can redistribute it and/or&lt;br /&gt;
|   modify it under the terms of the GNU Library General Public&lt;br /&gt;
|   License as published by the Free Software Foundation; either&lt;br /&gt;
|   version 2 of the License, or (at your option) any later version.&lt;br /&gt;
|&lt;br /&gt;
|   This library is distributed in the hope that it will be useful,&lt;br /&gt;
|   but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
|   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU&lt;br /&gt;
|   Library General Public License for more details.&lt;br /&gt;
|&lt;br /&gt;
|   You should have received a copy of the GNU Library General Public&lt;br /&gt;
|   License along with this library; if not, write to the Free&lt;br /&gt;
|   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br /&gt;
--------------------------------------------------------------------------*/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is the INSTALL file for RXTX.  Thu Jul  7 19:46:26 EDT 2005&lt;br /&gt;
&lt;br /&gt;
If, while following the instructions, you find this file unclear or incorrect &lt;br /&gt;
please make a note and email the details to taj@www.linux.org.uk.&lt;br /&gt;
&lt;br /&gt;
A note about rxtx 2.1:&lt;br /&gt;
&lt;br /&gt;
rxtx 2.1 replaces the entire CommAPI.  Every effort is made to conform to&lt;br /&gt;
CommAPI but out of respect for our friends at Sun the package name of 2.1 has&lt;br /&gt;
been moved to gnu.io.  A script is offered in contrib/ChangePackage.sh that&lt;br /&gt;
will switch source tree's between javax.comm and gnu.io.&lt;br /&gt;
&lt;br /&gt;
See Sun's CommAPI license for more details on why this decision was made.&lt;br /&gt;
&lt;br /&gt;
If you would like to use javax.comm, use rxtx 1.4 with Sun's CommAPI.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A note on Mac OS X:&lt;br /&gt;
&lt;br /&gt;
	Go to the MacOSX file for install instructions. &lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
=== INSTALL INSTRUCTIONS IN OTHER LANGUAGES ===&lt;br /&gt;
==== A.  Japanese ====&lt;br /&gt;
&lt;br /&gt;
	Instructions are available in Japanese at&lt;br /&gt;
&lt;br /&gt;
	The instructions are fairly old but should help.&lt;br /&gt;
&lt;br /&gt;
	http://www.geocities.co.jp/Technopolis/4789/settei.htm#id1&lt;br /&gt;
	Thanks to Masayuki &amp;quot;Tencho&amp;quot; Yamashita &amp;lt;tencho@venus.kanazawa-it.ac.jp&amp;gt;&lt;br /&gt;
	home page http://www.geocities.co.jp/Technopolis/4789/ &lt;br /&gt;
&lt;br /&gt;
	A copy of these install instructions is provided in &lt;br /&gt;
	install-japanese.html&lt;br /&gt;
	&lt;br /&gt;
	We will gladly include instructions in any language provided.  Tencho &lt;br /&gt;
	was the first to contribute instructions in another language.&lt;br /&gt;
&lt;br /&gt;
=== BUILDING COMMAPI SUPPORT ===&lt;br /&gt;
&lt;br /&gt;
	The following is concerned with building and installing commapi &lt;br /&gt;
	support with Sun's CommAPI package.  A full stand alone version of &lt;br /&gt;
	rxtx is in the CVS archive for interested developers.&lt;br /&gt;
&lt;br /&gt;
==== Quick Install ====&lt;br /&gt;
&lt;br /&gt;
	The following packages are used to build rxtx:&lt;br /&gt;
&lt;br /&gt;
		autoconf-2.59&lt;br /&gt;
		automake-1.9.5&lt;br /&gt;
		libtool-1.5.18&lt;br /&gt;
		gnu make-3.79.1         On some systems like FreeBSD this is&lt;br /&gt;
					called gmake&lt;br /&gt;
		jdk 1.3 or newer	&lt;br /&gt;
&lt;br /&gt;
	With the packages installed, proceed to build and install rxtx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
		$ tar -xzvf rxtx-2.1.tar.gz&lt;br /&gt;
		$ cd rxtx-2.1&lt;br /&gt;
		$ ./configure  (follow the instructions)&lt;br /&gt;
		$ make install (gmake if your system uses that convention)&lt;br /&gt;
		Read &amp;quot;R.  How can I use Lock Files with rxtx?&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	One catch that has showed up... you cannot have spaces in the path.&lt;br /&gt;
	for instance:  /home/jarvi/test build/rxtx/... will cause problems.&lt;br /&gt;
                                   ----^&lt;br /&gt;
	If that does not work or you do not want a script messing with the &lt;br /&gt;
	system, read on..&lt;br /&gt;
&lt;br /&gt;
==== Uninstalling Sun's comm.jar ====&lt;br /&gt;
&lt;br /&gt;
		Sun's comm.jar is not required.  It is a valid option on&lt;br /&gt;
		some platforms.  IT WILL CREATE CHAOS if you have it installed&lt;br /&gt;
		while trying to build rxtx 2.1.&lt;br /&gt;
&lt;br /&gt;
		http://java.sun.com/products/javacomm/index.html&lt;br /&gt;
		&lt;br /&gt;
==== Installing javax.comm.properties. ====&lt;br /&gt;
&lt;br /&gt;
		javax.comm.properties is not currently required by rxtx-2.1&lt;br /&gt;
&lt;br /&gt;
==== Add RXTXcomm.jar to your CLASSPATH. ====&lt;br /&gt;
&lt;br /&gt;
		jdk-1.1:&lt;br /&gt;
&lt;br /&gt;
			make sure /usr/local/java/lib/RXTXcomm.jar is in your&lt;br /&gt;
			CLASSPATH.  If you want to use apps that require&lt;br /&gt;
			RXTXcomm.jar.&lt;br /&gt;
&lt;br /&gt;
			in bash:&lt;br /&gt;
&lt;br /&gt;
			$ export CLASSPATH=${CLASSPATH}:/usr/local/java/lib/RXTXcomm.jar:.&lt;br /&gt;
&lt;br /&gt;
		jdk-1.2 and newer:&lt;br /&gt;
&lt;br /&gt;
			No changes are needed.&lt;br /&gt;
&lt;br /&gt;
==== Build and Install the jar. ====&lt;br /&gt;
&lt;br /&gt;
		configure       configure supports build directories.&lt;br /&gt;
				configure requires javac in its path or&lt;br /&gt;
				JAVA_HOME set to grab some java system&lt;br /&gt;
				properties.&lt;br /&gt;
		make    	to build RXTXcomm.jar and the libraries&lt;br /&gt;
		make install 	to place the jar and libraries in the correct &lt;br /&gt;
				location&lt;br /&gt;
&lt;br /&gt;
		You may select the JDK you wish to build with using $JAVA_HOME&lt;br /&gt;
		For example:&lt;br /&gt;
			export JAVA_HOME=/usr/local/java&lt;br /&gt;
		Otherwise, configure grabs the JDK from your PATH.&lt;br /&gt;
&lt;br /&gt;
==== Where did everything end up? ====&lt;br /&gt;
&lt;br /&gt;
		Lets assume the top java directory is /usr/local/java&lt;br /&gt;
&lt;br /&gt;
		jdk-1.2 the files go in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
			/usr/local/java/jre/lib/ext/RXTXcomm.jar&lt;br /&gt;
			/usr/local/java/jre/lib/$(ARCH)/librxtxSerial.so.&lt;br /&gt;
			/usr/local/java/jre/lib/$(ARCH)/librxtxParallel.so.&lt;br /&gt;
			/usr/local/java/jre/lib/$(ARCH)/lib/...&lt;br /&gt;
&lt;br /&gt;
		jdk-1.1.* the files go in &lt;br /&gt;
&lt;br /&gt;
			/usr/local/java/lib/RXTXcomm.jar&lt;br /&gt;
			/usr/lib/librxtxSerial.so.&lt;br /&gt;
			/usr/lib/librxtxParallel.so.&lt;br /&gt;
			/usr/lib/...&lt;br /&gt;
&lt;br /&gt;
			The librxtxSerial.so librxtxParallel.so are placed in &lt;br /&gt;
			/usr/lib so people don't have to change with their &lt;br /&gt;
			LD_LIBRARY_PATH.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compiling for Win32 support ====&lt;br /&gt;
&lt;br /&gt;
		Get the Sun CommAPI if you want a plug-in solution.  The code &lt;br /&gt;
		is provided for people that may have demanding needs and coding&lt;br /&gt;
		ability. &lt;br /&gt;
&lt;br /&gt;
		There is only serial port code at this time.&lt;br /&gt;
&lt;br /&gt;
		Three ways of compiling win32 libraries are offered:&lt;br /&gt;
&lt;br /&gt;
			mingw32 tools in DOS&lt;br /&gt;
			lcc tools in DOS&lt;br /&gt;
			cross-compiling from Linux&lt;br /&gt;
===== mingw32 tools in DOS =====&lt;br /&gt;
&lt;br /&gt;
		Install mingw32  http://www.mingw.org&lt;br /&gt;
		Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
		Make sure the ming32\bin and jdk\bin directories are in your&lt;br /&gt;
		path.&lt;br /&gt;
		In the rxtx top directory to the following:&lt;br /&gt;
		mkdir build&lt;br /&gt;
		copy Makefile.mingw32 build\Makefile&lt;br /&gt;
		cd build&lt;br /&gt;
		edit the Makefile and make sure the directories are correct.&lt;br /&gt;
		execute the following:&lt;br /&gt;
			make&lt;br /&gt;
			make install&lt;br /&gt;
	&lt;br /&gt;
===== lcc tools in DOS =====&lt;br /&gt;
&lt;br /&gt;
		Install a jdk    http://java.sun.com/j2se&lt;br /&gt;
		Install lcc http://www.cs.virginia.edu/~lcc-win32/&lt;br /&gt;
&lt;br /&gt;
		A make file (Makefile.lcc) for compiling rxtx with lcc&lt;br /&gt;
		contributed by Valentin Pavlov&lt;br /&gt;
&lt;br /&gt;
		You will need a config.h file in the src directory.  Other&lt;br /&gt;
		builds usually generate them automatically.  The following&lt;br /&gt;
		should work.&lt;br /&gt;
&lt;br /&gt;
		#define HAVE_FCNTL_H&lt;br /&gt;
		#define HAVE_SIGNAL_H&lt;br /&gt;
		#undef HAVE_SYS_FCNTL_H&lt;br /&gt;
		#undef HAVE_SYS_FILE_H&lt;br /&gt;
		#undef HAVE_SYS_SIGNAL_H&lt;br /&gt;
		#undef HAVE_TERMIOS_H&lt;br /&gt;
		#undef HAVE_SYS_TIME_H&lt;br /&gt;
&lt;br /&gt;
		if you know how to create the above in a dos Makefile send in			the changes.&lt;br /&gt;
&lt;br /&gt;
		the following commands should then work fine on the command&lt;br /&gt;
		line.&lt;br /&gt;
&lt;br /&gt;
		cd src&lt;br /&gt;
		make -f ..\Makefile.lcc&lt;br /&gt;
&lt;br /&gt;
===== cross-compiling from Linux =====&lt;br /&gt;
&lt;br /&gt;
		Grab ming32:&lt;br /&gt;
&lt;br /&gt;
		Wayne Roberts contributed the version used by the maintainer.&lt;br /&gt;
		(Wayne is largely responsible for bringing rxtx back to win32.)&lt;br /&gt;
		http://www.linuxgrrls.org/~taj/crossmingw32-2.95-1.i386.rpm&lt;br /&gt;
		A more current version can be obtained:&lt;br /&gt;
		http://www.devolution.com/~slouken/SDL/Xmingw32/crossgcc/index.html&lt;br /&gt;
		prebuilt Binaries:&lt;br /&gt;
		http://www.devolution.com/~slouken/SDL/Xmingw32/mingw32-linux-x86-glibc-2.1.tar.gz&lt;br /&gt;
&lt;br /&gt;
		I built the dll with jdk-1.2.2 for linux using jdk-1.2.2 &lt;br /&gt;
		include files from the win32 JDK.&lt;br /&gt;
&lt;br /&gt;
		Make sure that ming32 bin dir is the first in your path (at &lt;br /&gt;
		least before /usr/bin/gcc)&lt;br /&gt;
&lt;br /&gt;
			$ export PATH=&amp;quot; \&lt;br /&gt;
				/usr/local/cross-tools/i386-mingw32/bin/: \&lt;br /&gt;
				$PATH:/usr/X11R6/bin:/usr/local/java/bin: \&lt;br /&gt;
				/usr/local/java/jre/bin/:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		Place Sun jdk 1.2.2 win32 include files in a known location.&lt;br /&gt;
&lt;br /&gt;
			$ mkdir /home/jarvi/win32java&lt;br /&gt;
			$ cp -r /mnt/win98//java/include /home/jarvi/win32java&lt;br /&gt;
&lt;br /&gt;
			If you are developing win32 support you may want to&lt;br /&gt;
			export the location to make the config script&lt;br /&gt;
			non interactive&lt;br /&gt;
&lt;br /&gt;
			$ export WIN32INCLUDE=/home/jarvi/tools/win32-include&lt;br /&gt;
&lt;br /&gt;
		run configure to generate a Makefile&lt;br /&gt;
&lt;br /&gt;
			$ cd /home/jarvi/rxtx-*&lt;br /&gt;
			$ mkdir build&lt;br /&gt;
			$ cd build&lt;br /&gt;
			$ ../configure --target=i386-mingw32  \&lt;br /&gt;
				--host=i386-redhat-linux&lt;br /&gt;
&lt;br /&gt;
		build the class files and dll.&lt;br /&gt;
&lt;br /&gt;
			$ make&lt;br /&gt;
&lt;br /&gt;
		the files will be located in&lt;br /&gt;
&lt;br /&gt;
			rxtx-*/build/...&lt;br /&gt;
&lt;br /&gt;
		If you're looking at rxtx as an example of cross-compiling you &lt;br /&gt;
		may be interested in looking at the examples provided at:&lt;br /&gt;
&lt;br /&gt;
			ftp.xraylith.wisc.edu&lt;br /&gt;
			/pub/khan/gnu-win32/mingw32/misc/java-jni-examples.zip&lt;br /&gt;
&lt;br /&gt;
=== COMMON PROBLEMS ===&lt;br /&gt;
&lt;br /&gt;
==== I get java.lang.UnsatisfiedLinkError: nSetOwner while loading driver gnu.io.RXTXCommDriver when using rxtx. ====&lt;br /&gt;
&lt;br /&gt;
	SetOwner appears to be some win32 call.&lt;br /&gt;
	Do not use Sun's win32 CommAPI files.  Get the Solaris version.&lt;br /&gt;
	&amp;quot;javacomm20-x86.tar.Z&amp;quot; and rxtx-1.4 if you want Sun's solution.&lt;br /&gt;
&lt;br /&gt;
	See Also: 2-B.  Installing Sun's comm.jar (IE its not needed at all)&lt;br /&gt;
&lt;br /&gt;
==== Exception in thread &amp;quot;main&amp;quot; java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path ====&lt;br /&gt;
&lt;br /&gt;
librxtxSerial.so is located in the wrong directory.  Here is an example&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	$ mv /usr/local/java/jre/lib/i386/librxtxSerial* /usr/local/lib&lt;br /&gt;
	$ java BlackBox&lt;br /&gt;
	Exception in thread &amp;quot;main&amp;quot; java.lang.UnsatisfiedLinkError: no rxtxSerial&lt;br /&gt;
	in java.library.path&lt;br /&gt;
		at java.lang.ClassLoader.loadLibrary(Compiled Code)&lt;br /&gt;
		at java.lang.Runtime.loadLibrary0(Compiled Code)&lt;br /&gt;
		at java.lang.System.loadLibrary(Compiled Code)&lt;br /&gt;
		at gnu.io.NativePort.&amp;lt;clinit&amp;gt;(NativePort.java:32)&lt;br /&gt;
		at gnu.io.RXTXPort.&amp;lt;init&amp;gt;(Compiled Code)&lt;br /&gt;
		at gnu.io.RXTXCommDriver.getCommPort(Compiled Code)&lt;br /&gt;
		at gnu.io.CommPortIdentifier.open(Compiled Code)&lt;br /&gt;
		at SerialPortDisplay.openBBPort(Compiled Code)&lt;br /&gt;
		at SerialPortDisplay.&amp;lt;init&amp;gt;(Compiled Code)&lt;br /&gt;
		at BlackBox.addPort(Compiled Code)&lt;br /&gt;
		at BlackBox.main(Compiled Code)&lt;br /&gt;
&lt;br /&gt;
		... lets fix it.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Solution 1: move the file to a place that works&lt;br /&gt;
&lt;br /&gt;
         $ mv /usr/local/lib/librxtxSerial.* /usr/local/java/jre/lib/i386/&lt;br /&gt;
&lt;br /&gt;
Solution 2: add the location of librxtxSerial to LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
         $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/&lt;br /&gt;
&lt;br /&gt;
Solution 3: pass the location in on the command line&lt;br /&gt;
&lt;br /&gt;
         $ java -Djava.library.path=/usr/local/lib/ ...&lt;br /&gt;
&lt;br /&gt;
==== I Can Not Open the Port. ====&lt;br /&gt;
&lt;br /&gt;
If you're not able to open the port (read the errors carefully) then you &lt;br /&gt;
may not have permission to use the device.  &lt;br /&gt;
&lt;br /&gt;
In particular, Red Hat Linux ships with the following permissions on the /dev/ttyS* device files:&lt;br /&gt;
&lt;br /&gt;
        crw-rw----  1 root uucp /dev/ttyS*&lt;br /&gt;
&lt;br /&gt;
Which means that generally, users do not have read or write access to the serial device.&lt;br /&gt;
&lt;br /&gt;
You could increase the device files' access permissions. Log in as root, then run:&lt;br /&gt;
&lt;br /&gt;
        chmod o+rw /dev/ttyS*&lt;br /&gt;
&lt;br /&gt;
Now everyone can read and write the serial devices:&lt;br /&gt;
&lt;br /&gt;
        crw-rw-rw-  1 root uucp /dev/ttyS*&lt;br /&gt;
&lt;br /&gt;
However, this is probably not the ideal situation. At the next reboot, the &lt;br /&gt;
permissions may have been reset. You may want to have only some users access the device.&lt;br /&gt;
&lt;br /&gt;
Another way of proceeding is to add the user that wants to access /dev/ttyS* to the&lt;br /&gt;
&amp;quot;uucp&amp;quot; group as (as can be seen above) group &amp;quot;uucp&amp;quot; has read/write access to the file.              &lt;br /&gt;
&lt;br /&gt;
This is done with the command &amp;quot;usermod&amp;quot; or by directly editing &amp;quot;/etc/group&amp;quot; with &amp;quot;vigr&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
        usermod -G uucp &amp;lt;user-that-wants-access&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Be sure to check the file &amp;quot;CommAPI&amp;quot; for common mistakes.&lt;br /&gt;
&lt;br /&gt;
Also make sure that the user can create lock files. See [[Installation#How_can_I_use_Lock_Files_with_rxtx.3F|Lockfiles]].&lt;br /&gt;
&lt;br /&gt;
==== java.lang.NoClassDefFoundError: gnu/io/CommPort ====&lt;br /&gt;
&lt;br /&gt;
	RXTXcomm.jar is probably not in your classpath or not located in&lt;br /&gt;
	the proper directory.&lt;br /&gt;
&lt;br /&gt;
	for example, lets not include RXTXcomm.jar&lt;br /&gt;
&lt;br /&gt;
	export CLASSPATH=../java/lib/classes.zip&lt;br /&gt;
	$ java BlackBoxException in thread &amp;quot;main&amp;quot;&lt;br /&gt;
	java.lang.NoClassDefFoundError: gnu/io/CommPort&lt;br /&gt;
&lt;br /&gt;
==== The Compiler Cannot Find Java Include Files ====&lt;br /&gt;
&lt;br /&gt;
	Check to top of the Makefile to make sure we agree on the location of&lt;br /&gt;
	the include files that came with the jdk.  Specifically:&lt;br /&gt;
&lt;br /&gt;
	JAVAINCLUDE =  -I /usr/local/java/include/&lt;br /&gt;
	JAVANATINC =  -I /usr/local/java/include/genunix&lt;br /&gt;
	also check the classpath&lt;br /&gt;
	CLASSPATH = ...&lt;br /&gt;
&lt;br /&gt;
==== Configure says 'unterminated sed command' and stops ==== &lt;br /&gt;
&lt;br /&gt;
	Unterminated sed command errors usually result from `find` producing &lt;br /&gt;
	unexpected results.   If you are unsure remove all comm.jar and &lt;br /&gt;
	configure to place in in the correct place. &lt;br /&gt;
&lt;br /&gt;
==== Java Can Not Find libstdc++-libc6.0-1.so.2 ====&lt;br /&gt;
&lt;br /&gt;
	jdk-1.2 on redhat systems may note that Java complains about not being&lt;br /&gt;
	able to find libstdc++-libc6.0-1.so.2.  A symbolic link can be used to &lt;br /&gt;
	get around this feature.&lt;br /&gt;
&lt;br /&gt;
	ln -s /usr/lib/libstdc++ /usr/lib/libstdc++-libc6.0-1.so.2&lt;br /&gt;
	ls -l /usr/lib/libstdc++-libc6.0-1.so.2&lt;br /&gt;
 	/usr/lib/libstdc++-libc6.0-1.so.2 -&amp;gt; libstdc++.so.2.8.0&lt;br /&gt;
&lt;br /&gt;
==== BlackBox Can Not Handle all the ports! ====&lt;br /&gt;
&lt;br /&gt;
	BlackBox has a hard coded limit in BlackBox.java that prevents it from &lt;br /&gt;
	running if you don't specify a port.  We are considering alternative &lt;br /&gt;
	ways of handling the large number of port names in Unix.  The line in &lt;br /&gt;
	question&lt;br /&gt;
&lt;br /&gt;
	is:&lt;br /&gt;
&lt;br /&gt;
		portDisp = new SerialPortDisplay[50];&lt;br /&gt;
		&lt;br /&gt;
	just change 50 to say 256.&lt;br /&gt;
&lt;br /&gt;
==== Illegal use of nonvirtal function call! ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	Exception in thread &amp;quot;main&amp;quot; java.lang.VerifyError: (class: &lt;br /&gt;
	gnu/io/RXTXPort$SerialOutputStream, method: flush signature: ()V) &lt;br /&gt;
	Illegal use of nonvirtual function call&lt;br /&gt;
		at gnu.io.RXTXCommDriver.getCommPort(Compiled Code)&lt;br /&gt;
		at gnu.io.CommPortIdentifier.open(Compiled Code)&lt;br /&gt;
		at SerialPortDisplay.openBBPort(Compiled Code)&lt;br /&gt;
		at SerialPortDisplay.&amp;lt;init&amp;gt;(Compiled Code)&lt;br /&gt;
		at BlackBox.addPort(Compiled Code)&lt;br /&gt;
		at BlackBox.main(Compiled Code)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	&amp;quot;1.1 compilers sometimes generate code that won't verify under 1.2.&lt;br /&gt;
&lt;br /&gt;
	If you don't have the sources for the offending class to recompile with&lt;br /&gt;
	a 1.2 javac, the only solution I know of is to launch the VM with the&lt;br /&gt;
	-noverify option.&lt;br /&gt;
&lt;br /&gt;
	Louis&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	In other words start with a fresh build directory, rebuild, and &lt;br /&gt;
	reinstall to avoid the problem.&lt;br /&gt;
&lt;br /&gt;
==== My libc5 Linux system is generating SIGSEGV ====&lt;br /&gt;
&lt;br /&gt;
	Older Linux Systems (libc5) should upgrade to a glibc system with &lt;br /&gt;
	libpthread-0.7 or newer.  We have run into many problems with older &lt;br /&gt;
	libraries.  SIGSEGV was the most common symptom.  Reported by  Peter &lt;br /&gt;
	Bennett &amp;lt;bencom at bencom.co.nz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== AM_PROG_LIBTOOL not found in library ====&lt;br /&gt;
&lt;br /&gt;
	cd. &amp;amp;&amp;amp; aclocal&lt;br /&gt;
	aclocal:configure.in: 23: macro 'AM_PROG_LIBTOOL' not found in library&lt;br /&gt;
	make:***[aclocal.m4]Error 1&lt;br /&gt;
&lt;br /&gt;
	If you're positive things are setup right you may try the autogen.sh &lt;br /&gt;
	script to try regenerating the scripts with your tools.&lt;br /&gt;
&lt;br /&gt;
==== Problems with RMISecurityManager() ====&lt;br /&gt;
&lt;br /&gt;
	Please see the file RMISecurityManager.html &lt;br /&gt;
&lt;br /&gt;
==== Which Wires Should be Connected ====&lt;br /&gt;
&lt;br /&gt;
	With the DB25 use 2 (TX), 3 (RX) and 7 (GD) to connect to the device.&lt;br /&gt;
	With the DB9  use 2 (RX), 3 (TX) and 5 (GD) to connect to the device.&lt;br /&gt;
&lt;br /&gt;
	You will need to hook up more than that for hardware flow control.&lt;br /&gt;
&lt;br /&gt;
==== Which Device Should be Used? ====&lt;br /&gt;
&lt;br /&gt;
	Linux serial ports should use /dev/ttyS?&lt;br /&gt;
	specialx, cyclades and isdn4 linux have been reported to work.&lt;br /&gt;
	as many as 64 ports have worked at one time.&lt;br /&gt;
        FreeBSD uses cuaa?&lt;br /&gt;
	netbsd uses tty0?&lt;br /&gt;
	Irix  uses ttyd? ttym? ttyf?&lt;br /&gt;
	HP-UX uses tty0p? tty1p?&lt;br /&gt;
	BeOS uses /dev/ports/serial?&lt;br /&gt;
	Win32 uses COM?&lt;br /&gt;
  &lt;br /&gt;
==== It Did Not Work! ====&lt;br /&gt;
&lt;br /&gt;
	There are sure to be bugs.  The goal is to make the install as painless&lt;br /&gt;
	as possible.  Send back comments if something could be easier.&lt;br /&gt;
&lt;br /&gt;
	If you run into a problem building the rxtx package please include the&lt;br /&gt;
	output generated by the following script.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        ---------------clip-----------------&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
which java&lt;br /&gt;
java -version&lt;br /&gt;
uname -a&lt;br /&gt;
autoconf --version&lt;br /&gt;
automake --version&lt;br /&gt;
libtool --version&lt;br /&gt;
make --version&lt;br /&gt;
        ---------------clip-----------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
	Here's what's on my system for comparison.  Older make is known to cause&lt;br /&gt;
	problems.&lt;br /&gt;
&lt;br /&gt;
		java 1.4&lt;br /&gt;
		autoconf-2.53&lt;br /&gt;
		automake-1.6.3&lt;br /&gt;
		libtool-1.4.2&lt;br /&gt;
		gnu make-3.79.1  &lt;br /&gt;
&lt;br /&gt;
	mail any bugs to taj@www.linux.org.uk.&lt;br /&gt;
&lt;br /&gt;
==== Which jdk should be used? ====&lt;br /&gt;
&lt;br /&gt;
	This is dated.&lt;br /&gt;
&lt;br /&gt;
	Ideally any jdk would be fine.  Here is a list of jdk's tried on&lt;br /&gt;
	RedHat 6.0/kernel 2.2.17pre13 with various versions of glibc.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 Sun            IBM           Blackdown&lt;br /&gt;
                 2.1.2_006      1.3.0         1.1.8v1&lt;br /&gt;
                 green  native  green native  green native&lt;br /&gt;
                 ------------------------------------------&lt;br /&gt;
glibc-2.1.1-6   | OK   | *1   | *2   | *2   | OK   | *3   |&lt;br /&gt;
                -------------------------------------------&lt;br /&gt;
glibc-2.1.2-11  | OK   | *1   | OK   | OK   | OK   | OK   |&lt;br /&gt;
                -------------------------------------------&lt;br /&gt;
glibc-2.1.2-17  | OK   | *1   | OK   | OK   | OK   | OK   |&lt;br /&gt;
                -------------------------------------------&lt;br /&gt;
glibc-2.1.3-15  | OK   | *1   | OK   | OK   | OK   | OK   |&lt;br /&gt;
                -------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
1) BlackBox (a demo application shipped with CommAPI locks after multiple open()/close()&lt;br /&gt;
&lt;br /&gt;
2) java wont start &amp;quot;Unable to load /usr/local/java/jre/bin/libhpi.so: symbol&lt;br /&gt;
sem_wait, version GLIBC_2.1 not defined in file libpthread.so.0 with link time&lt;br /&gt;
reference Could not create the Java virtual machine.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3) java wont start &amp;quot;error in loading shared libraries:&lt;br /&gt;
/usr/local/java/bin/../lib/i686/native_threads/libjava.so: symbol sem_init,&lt;br /&gt;
version GLIBC_2.1 not defined in file libpthread.so.0 with link time reference&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Conclusion?  Avoid Sun's native threads unless you can figure out whats going wrong. (this is dated)&lt;br /&gt;
 &lt;br /&gt;
==== How does rxtx detect ports?  Can I override it? ====&lt;br /&gt;
&lt;br /&gt;
rxtx tries to detect ports on by scanning /dev for files matching any&lt;br /&gt;
of a set of known-good prefixes, such as 'ttyS', 'ttym', and so on.&lt;br /&gt;
Any ones that exist, are supposed to be good for the current operating&lt;br /&gt;
system, and that can be read and written are offered back from&lt;br /&gt;
CommPortIdentifier.getPortIdentifiers(), and only these can be used as&lt;br /&gt;
ports.&lt;br /&gt;
&lt;br /&gt;
If you wish, you can set the system properties gnu.io.rxtx.SerialPorts&lt;br /&gt;
and gnu.io.rxtx.ParallelPorts.  If either of these is set, then no&lt;br /&gt;
scanning will be carried out and only the specified ports will be&lt;br /&gt;
available.  You can use this to make one platform look like another,&lt;br /&gt;
to restrict Java access to ports, or possibly for other reasons.  For&lt;br /&gt;
example&lt;br /&gt;
&lt;br /&gt;
	java -Dgnu.io.rxtx.SerialPorts=/dev/cua/a:/dev/cua/b com.foo.MyApp&lt;br /&gt;
&lt;br /&gt;
will look kind of like Solaris, if you have created the appropriate&lt;br /&gt;
device nodes.&lt;br /&gt;
&lt;br /&gt;
A note on Linux port enumeration.  We have set most ports aside.  Once the&lt;br /&gt;
number of possible devices started getting into the thousands, checking them&lt;br /&gt;
all made little sense.  Look in RXTXCommDriver.java and search for Linux.&lt;br /&gt;
&lt;br /&gt;
You will see that only /dev/ttyS* is searched but the possible addition ports&lt;br /&gt;
that can be used are listed under it.  Just copy the few you need.&lt;br /&gt;
&lt;br /&gt;
A brief note on '''How to add new enumeration to existing list of ports in Linux?'''&lt;br /&gt;
&lt;br /&gt;
The RXTXcomm.jar file contains all the required classes that work with javax.comm API. &lt;br /&gt;
One of them is RXTXCommDriver.class. RXTXCommDriver.java is available in ftp://ftp.qbang.org/pub/rxtx/rxtx-2.0-7pre2/src/&lt;br /&gt;
Download the RXTXCommDriver.java. In this code, you will find &lt;br /&gt;
&lt;br /&gt;
	if (osName.equals (&amp;quot;Linux&amp;quot;))&lt;br /&gt;
	  {&lt;br /&gt;
	    String[]Temp =&lt;br /&gt;
	    {&lt;br /&gt;
	      &amp;quot;ttyS&amp;quot;,		// linux Serial Ports&lt;br /&gt;
		&amp;quot;ttySA&amp;quot;		// for the IPAQs&lt;br /&gt;
	    };&lt;br /&gt;
	    CandidatePortPrefixes = Temp;&lt;br /&gt;
&lt;br /&gt;
Replace this code with &lt;br /&gt;
&lt;br /&gt;
	if (osName.equals (&amp;quot;Linux&amp;quot;))&lt;br /&gt;
	  {&lt;br /&gt;
	    String[]Temp =&lt;br /&gt;
	    {&lt;br /&gt;
	      &amp;quot;ttyS&amp;quot;, &amp;quot;ttyUSB&amp;quot;,		// linux Serial Ports&lt;br /&gt;
		&amp;quot;ttySA&amp;quot;		// for the IPAQs&lt;br /&gt;
	    };&lt;br /&gt;
	    CandidatePortPrefixes = Temp;&lt;br /&gt;
	  } &lt;br /&gt;
&lt;br /&gt;
Compile the RXTXCommDriver.java and add the resulting RXTXCommDriver.class file to RXTXcomm.jar in&lt;br /&gt;
/usr/java/jdk1.5.0_07/jre/lib/ext/RXTXcomm.jar&lt;br /&gt;
&lt;br /&gt;
P.S. : RXTXcomm.jar has two sub directories. gnu-&amp;gt;io-&amp;gt;RXTXCommDriver.class. Make sure the new compiled file goes into the right place. One way is to extract all files from RXTXcomm.jar. Replace the RXTXCommDriver.class with the new file. Create a new RXTXcomm.jar file using the following command&lt;br /&gt;
&lt;br /&gt;
#jar cvf RXTXcomm.jar gnu META-INF &lt;br /&gt;
&lt;br /&gt;
Replace this new updated jar file with the old one. Then USB to Serial Converters should work great.&lt;br /&gt;
&lt;br /&gt;
==== How can I use Lock Files with rxtx? ====&lt;br /&gt;
&lt;br /&gt;
RXTX uses lock files by default. Lock files are used to prevent more than one program accessing a port at a&lt;br /&gt;
time. Lock files may require a bit of sysadmin to work properly.&lt;br /&gt;
&lt;br /&gt;
If you do not want to use lockfiles in RXTX, run 'configure' with option '--disable-lockfiles'.&lt;br /&gt;
It is however strongly recommended that you do use lock files to prevent RXTX from stomping on&lt;br /&gt;
other programs that might use the serial ports concurrently.&lt;br /&gt;
&lt;br /&gt;
(Don't know if the following is still current. Trent?)&lt;br /&gt;
&lt;br /&gt;
RXTX has support for lock files on Linux only.  It may work on other&lt;br /&gt;
platforms but read the source before blindly trying it. &lt;br /&gt;
&lt;br /&gt;
The lock file code does not support kermit style lock files or lock files in&lt;br /&gt;
'/var/spool'. It is sure to fail if you're using subdirectories in '/dev' or do not&lt;br /&gt;
have '/dev'.&lt;br /&gt;
&lt;br /&gt;
Before you use lock files you need to do one of two things:&lt;br /&gt;
&lt;br /&gt;
# Be user 'root' or user 'uucp' on your machine whenever you use RXTX .. or ..&lt;br /&gt;
# Add the specific user that needs to use RXTX to the group 'uucp' (preferred)&lt;br /&gt;
&lt;br /&gt;
(On Red Hat, use group 'lock' in addition to 'uucp', see further below.)&lt;br /&gt;
&lt;br /&gt;
To add a user to the 'uucp' group edit '/etc/group' as 'root' (using 'vigr' or your&lt;br /&gt;
preferred editor) and change the following:&lt;br /&gt;
&lt;br /&gt;
   uucp::14:uucp&lt;br /&gt;
&lt;br /&gt;
to something like:&lt;br /&gt;
&lt;br /&gt;
   uucp::14:uucp,jarvi&lt;br /&gt;
&lt;br /&gt;
It may be simpler to just run&lt;br /&gt;
&lt;br /&gt;
   usermod -G uucp jarvi&lt;br /&gt;
&lt;br /&gt;
which does exactly the same.&lt;br /&gt;
&lt;br /&gt;
In this case 'jarvi' is the login name for the user that needs to use lock files.&lt;br /&gt;
Do not change the number (14).  Whatever is in your group file is correct. (On&lt;br /&gt;
Red Hat, do this also for group 'lock')&lt;br /&gt;
&lt;br /&gt;
User 'jarvi' in this case can now use RXTX with lock files.&lt;br /&gt;
&lt;br /&gt;
===== Red Hat users ===== &lt;br /&gt;
&lt;br /&gt;
In Red Hat, lock files are supposed to be handled by group 'lock' instead of group 'uucp'.&lt;br /&gt;
&lt;br /&gt;
Why: from Red Hat 7.2 upwards. the directory into which lock files are written, '/var/lock',&lt;br /&gt;
can only be written to by members of group 'lock'. On the other hand, the serial device&lt;br /&gt;
files are owned by group 'uucp' and are not world-writeable by default.&lt;br /&gt;
&lt;br /&gt;
Thus any user (which may or may not actually be using [http://www.uucp.org/index.shtml uucp] ... do people still know what &lt;br /&gt;
that was?) that accesses the serial device files must belong to group 'lock' (to create lockfiles) and to group 'uucp'&lt;br /&gt;
(to access the device files proper). See also [[Installation#I_Can_Not_Open_the_Port.|I cannot open the port.]]&lt;br /&gt;
&lt;br /&gt;
===== Mandrake users =====&lt;br /&gt;
&lt;br /&gt;
'/var/lock' needs to be owned by group 'uucp'.&lt;br /&gt;
&lt;br /&gt;
===== Mac OS X users =====&lt;br /&gt;
&lt;br /&gt;
You may need to create the lock directory with group 'uucp' ownership. There is a script&lt;br /&gt;
in 'contrib' called 'fixperm.sh' to help with this on Mac OS X.&lt;br /&gt;
&lt;br /&gt;
In 2.1-7r2(final) there is a mis-match between the lock file directory given in 'fixperm.sh' that in the source file SerialImp.h (/var/spool/uucp and /var/lock respectively).  If you want the binaries to work, you need to replace /var/spool/uucp by /var/lock in fixperm.sh, and run that as root.&lt;br /&gt;
&lt;br /&gt;
===== Lock File server =====&lt;br /&gt;
&lt;br /&gt;
As another option it is possible to use a Lock File Server.  In this case,&lt;br /&gt;
a server runs in group 'uucp' or 'lock' and rxtx then connects to localhost&lt;br /&gt;
to lock and unlock the port.  The server and install instructions can be&lt;br /&gt;
found in 'src/lfd'. RXTX will need to be configured to use the server:&lt;br /&gt;
&lt;br /&gt;
     configure --enable-lockfile_server&lt;br /&gt;
&lt;br /&gt;
Any user can then lock the ports if they are not already locked.&lt;br /&gt;
&lt;br /&gt;
===== Arcana =====&lt;br /&gt;
&lt;br /&gt;
Still cant get things to run under a root account?&lt;br /&gt;
&lt;br /&gt;
Vadim Tkachenko writes:&lt;br /&gt;
	&lt;br /&gt;
&amp;quot;Maybe you remember - couple of months back I've run into inability to&lt;br /&gt;
run the JDK 1.3+ from under root account.&lt;br /&gt;
&lt;br /&gt;
Today, absolutely suddenly, something clicked in my head and the cause&lt;br /&gt;
was found: libsafe. To make JDK work, it is enough to disable libsafe&lt;br /&gt;
(unset LD_PRELOAD).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== How can I tell which version of rxtx is installed? ====&lt;br /&gt;
&lt;br /&gt;
Version information is not documented in Sun's CommAPI so this is probably&lt;br /&gt;
unique to RXTX.&lt;br /&gt;
&lt;br /&gt;
As of rxtx-1.5-4 and rxtx-1.4-6 a class has been added to allow developers to &lt;br /&gt;
check which version of rxtx is installed.  The class is RXTXVersion.  &lt;br /&gt;
&lt;br /&gt;
The static method: System.out.println(RXTXVersion.getVersion());&lt;br /&gt;
&lt;br /&gt;
will print the rxtx version as a String in the following format:&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;RXTX-MAJOR.MINOR-PATCH&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
an example would be:&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;RXTX-1.5-4&amp;quot;&lt;br /&gt;
&lt;br /&gt;
A change in the MAJOR version would suggest you're in trouble.&lt;br /&gt;
&lt;br /&gt;
Odd MINOR version are reserved for development.  Even MINOR versions are&lt;br /&gt;
reserved for 'stable' releases.&lt;br /&gt;
&lt;br /&gt;
PATCH is used to differentiate incremental releases of the MINOR releases.&lt;br /&gt;
&lt;br /&gt;
CommPortIdentifier is expected to support getVersion() in the RXTX-1.5 series.&lt;br /&gt;
&lt;br /&gt;
==== What Type of Latency can I expect with RXTX ====&lt;br /&gt;
&lt;br /&gt;
	frantz &amp;lt;fcapiez at club-internet.fr&amp;gt; put RXTX under a scope and found&lt;br /&gt;
	the following:&lt;br /&gt;
&lt;br /&gt;
	RXTX currently has a latency of 150-200ms on a PII at 450mhz.&lt;br /&gt;
	The latency can be reduced to 70-80ms by reducing the usleep()&lt;br /&gt;
	value in SerialImp.c:eventLoop() to usleep(5000)).&lt;br /&gt;
&lt;br /&gt;
	Much lower latencies should be possible but the maintainer does not&lt;br /&gt;
	have equipment to test changes.&lt;br /&gt;
&lt;br /&gt;
	He is going to look at this further.  He needs 20 ms or less latency.&lt;br /&gt;
	&lt;br /&gt;
==== I got rxtx working on a new OS but I can't read from the port ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; Now my java program starts up nicely without complaining. However, it does&lt;br /&gt;
&amp;gt; never read any data from the serial port. It looks like it can write data,&lt;br /&gt;
&amp;gt; because if I start a terminal program after I tried to run my program, I get&lt;br /&gt;
&amp;gt; all the return stuff from the modem that my program wrote.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; I hacked around abit and found out that it hangs in the select() call which&lt;br /&gt;
&amp;gt; simply never returns.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
On Sun, 28 Jan 2001, Baldur Norddahl wrote:&lt;br /&gt;
&amp;gt; HPUX 11:&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; As I wrote to the mailinglist I had some wierd problems where it apparently&lt;br /&gt;
&amp;gt; could write data to the modem, but not read anything back. My terminal&lt;br /&gt;
&amp;gt; programs had no problem using the port. A few days after I reported the&lt;br /&gt;
&amp;gt; problem to the mailinglist, I had given up for now, but then I noticed that&lt;br /&gt;
&amp;gt; it suddenly worked! So it remains a mystery what was wrong as I did not&lt;br /&gt;
&amp;gt; change anything at all, neither in my program nor on the host.&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;gt; Baldur&lt;br /&gt;
&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I suspect two java applications had the port open.  Its easy to do while &lt;br /&gt;
developing.  Perhaps &amp;lt;ctl&amp;gt; z instead of &amp;lt;ctl&amp;gt; c was entered.&lt;br /&gt;
&lt;br /&gt;
This is the reason for adding lockfile support to rxtx.  If another application&lt;br /&gt;
has opened the port, a second application will appear to not be able to &lt;br /&gt;
read or get only part of the data.  ..because the first one is reading.  Only&lt;br /&gt;
one of the select()s are waken.&lt;br /&gt;
&lt;br /&gt;
Its possible to put lockfile support in for HPUX if it is known where other&lt;br /&gt;
applications place their lockfiles.   The easiest way to find out where is&lt;br /&gt;
to fire up minicom, kermit, ... and see where its lockfile is placed.&lt;br /&gt;
&lt;br /&gt;
Here are the known suspects:&lt;br /&gt;
&lt;br /&gt;
const char *lockdirs[]={ &amp;quot;/etc/locks&amp;quot;, &amp;quot;/usr/spool/kermit&amp;quot;,&lt;br /&gt;
                &amp;quot;/usr/spool/locks&amp;quot;, &amp;quot;/usr/spool/uucp&amp;quot;, &amp;quot;/usr/spool/uucp/&amp;quot;,&lt;br /&gt;
                &amp;quot;/usr/spool/uucp/LCK&amp;quot;, &amp;quot;/var/lock&amp;quot;, &amp;quot;/var/lock/modem&amp;quot;,&lt;br /&gt;
                &amp;quot;/var/spool/lock&amp;quot;, &amp;quot;/var/spool/locks&amp;quot;, &amp;quot;/var/spool/uucp&amp;quot;,NULL&lt;br /&gt;
        };&lt;br /&gt;
&lt;br /&gt;
freebsd uses /var/spool/uucp/, linux uses /var/lock those are the only two&lt;br /&gt;
I've done so far.  Adding the support is trivial once a directory is&lt;br /&gt;
decided upon.&lt;br /&gt;
&lt;br /&gt;
Lockfiles are rather simple.  when an application opens a port it first checks&lt;br /&gt;
if there is a file with the ports name.  If there is it grabs the PID from the&lt;br /&gt;
file.  If that PID is still active the application does not open the port.&lt;br /&gt;
&lt;br /&gt;
If the PID is not active or there is no lockfile, the application creates one&lt;br /&gt;
with its own PID in it.&lt;br /&gt;
&lt;br /&gt;
The confusion starts when you have to decide where (see above) to put the&lt;br /&gt;
lockfile, what the name format is for the file and how to store the PID.&lt;br /&gt;
&lt;br /&gt;
rxtx follows The File System Hierarchy Standard http://www.pathname.com/fhs/&lt;br /&gt;
on linux.  I'm not positive what is normal on other OS's.&lt;br /&gt;
&lt;br /&gt;
                more reading:&lt;br /&gt;
&lt;br /&gt;
                The File System Hierarchy Standard&lt;br /&gt;
                http://www.pathname.com/fhs/&lt;br /&gt;
&lt;br /&gt;
                FSSTND&lt;br /&gt;
                ftp://tsx-11.mit.edu/pub/linux/docs/linux-standards/fsstnd/&lt;br /&gt;
&lt;br /&gt;
                Proposed Changes to the File System Hierarchy Standard&lt;br /&gt;
                ftp://scicom.alphacdc.com/pub/linux/devlock-0.X.tgz&lt;br /&gt;
&lt;br /&gt;
                &amp;quot;UNIX Network Programming&amp;quot;, W. Richard Stevens,&lt;br /&gt;
                Prentice-Hall, 1990, pages 96-101.&lt;br /&gt;
                more reading:&lt;br /&gt;
&lt;br /&gt;
==== My ThinkPad is Not Working! ====&lt;br /&gt;
&lt;br /&gt;
	Scott Burleigh &amp;lt;Scott.Burleigh at jpl.nasa.gov&amp;gt; writes:&lt;br /&gt;
&lt;br /&gt;
		For your files, and in case anybody asks in the &lt;br /&gt;
		future, IBM Thinkpads ship with the external serial port&lt;br /&gt;
		*disabled* by default.  The Thinkpad configuration utility&lt;br /&gt;
		supplied with the machine (under Windows) says it's enabled,&lt;br /&gt;
		and the device manager in the System dialog of the Control&lt;br /&gt;
		panel says it's enabled, but they lie.  In order to enable the&lt;br /&gt;
		port you have to use the old DOS ps2.exe bios configuration &lt;br /&gt;
		utility which, under Windows 2000, is in&lt;br /&gt;
		c:\Program Files\Thinkpad\utilities:&lt;br /&gt;
&lt;br /&gt;
			ps2 sera enable&lt;br /&gt;
&lt;br /&gt;
		Until you do, &amp;quot;setserial -ga /dev/ttyS0&amp;quot; will always tell you&lt;br /&gt;
		the UART is unknown.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== APPLETS ===&lt;br /&gt;
&lt;br /&gt;
More info is needed on signing applets.  This is an exchange from the rxtx mail-&lt;br /&gt;
list.&lt;br /&gt;
&lt;br /&gt;
==== Using Applets ====&lt;br /&gt;
&lt;br /&gt;
prashantg10 at yahoo.com asked:&lt;br /&gt;
&lt;br /&gt;
	Hi All !&lt;br /&gt;
&lt;br /&gt;
	I am trying to use applet on thin terminal which has&lt;br /&gt;
	Linux base Kernel.For testing I am using Linux&lt;br /&gt;
	machine.I have install all the required components.&lt;br /&gt;
	e.g. JDK, RXTX. Everthing is fine. BlackBox runs ,even&lt;br /&gt;
	my application runs. When It comes to applet,&lt;br /&gt;
	everything is halts. It does not even show the listing&lt;br /&gt;
	of ports. Is it because applet can't run under root&lt;br /&gt;
	account or what might be the reasons. Can anybody tell&lt;br /&gt;
	me solution.&lt;br /&gt;
&lt;br /&gt;
Son To &amp;lt;son@openbx.net&amp;gt; replied:&lt;br /&gt;
&lt;br /&gt;
	Java applets run withing the sandbox of the security manager.&lt;br /&gt;
	Applets must be signed to access the com port, but for development &lt;br /&gt;
	purposes you can put&lt;br /&gt;
&lt;br /&gt;
	user_pref(&amp;quot;signed.applets.codebase_principal_support&amp;quot;, true);&lt;br /&gt;
&lt;br /&gt;
	in your prefs.js located in ~/.mozilla/default/XYYrandomDirName&lt;br /&gt;
	&lt;br /&gt;
	I didn't use Java applet for my application. I used XUL and CSS for&lt;br /&gt;
	the GUI development and used mozilla Javascript SOAP library to&lt;br /&gt;
	communicate with apache Axis webservice backend which uses RXTX to&lt;br /&gt;
	access the com port.&lt;br /&gt;
&lt;br /&gt;
-- &lt;br /&gt;
Trent Jarvi&lt;br /&gt;
taj@www.linux.org.uk&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
You made it this far.. what is one more line.&lt;br /&gt;
&lt;br /&gt;
Sun, Solaris and Java are registered trademarks of Sun Microsystems, Inc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
reminder:&lt;br /&gt;
&lt;br /&gt;
redhat 7.1 needs:&lt;br /&gt;
export LD_ASSUME_KERNEL=2.2.5&lt;br /&gt;
&lt;br /&gt;
=== User stories ===&lt;br /&gt;
&lt;br /&gt;
==== RXTX and the Equinox SST-4P/LP ====&lt;br /&gt;
&lt;br /&gt;
A note for those who shall try to install an Equinox board (in this case &amp;quot;SST-4P/LP&amp;quot;) and try to&lt;br /&gt;
run it with RXTX under Linux (in this case, Red Hat ES 4)&lt;br /&gt;
&lt;br /&gt;
Get the driver source from the [http://www.equinox.com/support/download-drivers/ www.equinox.com driver page] and&lt;br /&gt;
compile it as described therein.&lt;br /&gt;
&lt;br /&gt;
The four serial ports of the Equinox SST-4P are available as the device files:&lt;br /&gt;
&lt;br /&gt;
   /dev/ttyQ1a1 ... /dev/ttyQ1a4&lt;br /&gt;
&lt;br /&gt;
These device files are created by the 'ssmkn' (alias 'make device nodes') executable. &lt;br /&gt;
&lt;br /&gt;
In order to make things work, you have to:&lt;br /&gt;
&lt;br /&gt;
Modify the 'eqnx' startup script '/etc/rc.d/init.d/eqnx'&lt;br /&gt;
and make it set the permissions of the devices files in the&lt;br /&gt;
'start' section, immediately after the call to 'ssmkn':&lt;br /&gt;
&lt;br /&gt;
        # create device files&lt;br /&gt;
        /usr/bin/ssmkn&lt;br /&gt;
        # fix rights on device files&lt;br /&gt;
        LIST=`ls /dev/ttyQ*`&lt;br /&gt;
        for DEV in $LIST; do&lt;br /&gt;
          chown root.uucp $DEV&lt;br /&gt;
          chmod 660 $DEV&lt;br /&gt;
        done&lt;br /&gt;
&lt;br /&gt;
Modify 'src/RXTXCommDriver.java' in the RXTX distribution. Add&lt;br /&gt;
the 'ttyQ1a' radical to the list of port radicals that RXTX checks:&lt;br /&gt;
&lt;br /&gt;
        if(osName.equals(&amp;quot;Linux&amp;quot;))&lt;br /&gt;
        {&lt;br /&gt;
           String[] Temp = {&lt;br /&gt;
                &amp;quot;ttyS&amp;quot;, // linux Serial Ports&lt;br /&gt;
                &amp;quot;ttySA&amp;quot;, // for the IPAQs&lt;br /&gt;
                &amp;quot;ttyUSB&amp;quot;, // for USB frobs&lt;br /&gt;
                &amp;quot;ttyQ1a&amp;quot; // Equinox&lt;br /&gt;
           };&lt;br /&gt;
           CandidatePortPrefixes=Temp;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
Then recompile and reinstall.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;id90446c052120bf9ce69cb03f0c7052bd&amp;quot; style=&amp;quot;overflow:auto;height:1px;&amp;quot;&amp;gt;&lt;br /&gt;
[http://casino-games-wiki.com/index.php/casino_games casino games]&lt;br /&gt;
[http://casino-games-wiki.com/index.php/online_casino_games online casino games]&lt;br /&gt;
[http://casino-games-wiki.com/index.php/casino_games_online casino games online]&lt;br /&gt;
[http://adipex-wiki.com/index.php/adipex adipex]&lt;br /&gt;
[http://adipex-wiki.com/index.php/buy_adipex buy adipex]&lt;br /&gt;
[http://adipex-wiki.com/index.php/adipex_online adipex online]&lt;br /&gt;
[http://tramadol-wiki.com/index.php/tramadol tramadol]&lt;br /&gt;
[http://tramadol-wiki.com/index.php/cheap_tramadol cheap tramadol]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div  style=&amp;quot;display:none&amp;quot;&amp;gt;&lt;br /&gt;
[l_sp_22]&lt;br /&gt;
[http://urlzip.de/5k9 500mg naproxen]&lt;br /&gt;
[http://flingk.com/17pwgme3 apo naproxen]&lt;br /&gt;
[http://flingk.com/10dah3ep trazodone 50mg]&lt;br /&gt;
[http://urlzip.de/5ka trazodone for sleep]&lt;br /&gt;
[http://flingk.com/qpzm7pz diovan hct]&lt;br /&gt;
[http://flingk.com/19k1yi7m skelaxin 800 mg]&lt;br /&gt;
[http://urlzip.de/5kb albuterol inhaler]&lt;br /&gt;
[http://flingk.com/jtx05om amoxicillin 500mg]&lt;br /&gt;
[http://flingk.com/bk89oth augmentin xr]&lt;br /&gt;
[http://symy.jp/?Hpt installing laminate floor]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://z.la/sl4qz carisoprodol dia siguiente]&lt;br /&gt;
[http://z.la/7h939 carisoprodol durante noche]&lt;br /&gt;
[http://z.la/9is4r carisoprodol overnight delivery]&lt;br /&gt;
[http://z.la/8loyz tramadol durante noche]&lt;br /&gt;
[http://z.la/lmjt6 tramadol dia siguiente]&lt;br /&gt;
[http://z.la/8xx50 fioricet dia siguiente]&lt;br /&gt;
[http://z.la/41smo fioricet durante noche]&lt;br /&gt;
[http://z.la/8nfht zenegra fioricet]&lt;br /&gt;
[http://kafder.org.tr/mixa/ installing laminate flooring]&lt;br /&gt;
[http://z.la/7lhlp installing laminate flooring]&lt;br /&gt;
[http://z.la/fgebr dupont laminate flooring]&lt;br /&gt;
[http://z.la/enhll wilsonart laminate]&lt;br /&gt;
[http://z.la/6g9eg homecoming and prom dresses]&lt;/div&gt;</description>
			<pubDate>Mon, 02 Apr 2007 15:39:53 GMT</pubDate>			<dc:creator>Sdhip</dc:creator>			<comments>http://rxtx.qbang.org/wiki/index.php/Talk:Installation</comments>		</item>
	</channel>
</rss>