Linux编译Rxtx(串口)源码
一、Rxtx环境配置
1、生成rxtx-2.2pre2.tar.gz
注:
源码rxtx-2.2pre2.zip,修改rxtx-2.2pre2/src目录下的SerialImp.c, RS485Imp.c, I2CImp.c, RawImp.c文件,分别添加
# include <linux/utsrelease.h>,生成rxtx-2.2pre2.tar.gz。
2、编译源码
$ tar zxvf rxtx-2.2pre2.tar.gz
$ cd rxtx-2.2pre2/
$ sudo -i
$ sh ./configure –build=arm-linux
$ make
$ make install
3、编译成功
(1)、so会拷贝到$JAVA_HOME/jre/lib/aarch64 目录下
(2)、RXTXcomm.jar会拷贝到$JAVA_HOME/jre/lib/ext目录下
(3)、可通过下面命令查看:
$cd $JAVA_HOME/jre/lib/aarch64
librxtxSerial.so和librxtxSerial-2.1.7.so
$cd $JAVA_HOME/jre/lib/ext
RXTXcomm.jar
二、问题
1、发现串口列表为空
$sudo chmod 666 /dev/ttyS*
或
$cd /etc/udev/rules.d
$vim 20-usb-serial.rules
添加内容:
KERNEL=="ttyUSB*" MODE="0777"
KERNEL=="ttyS*" MODE="0777"
保存
重启电脑
查看权限:ls -l /dev/ttyUSB*
ls -l /dev/ttyS*
2、串口使用
String comportidentifier = "/dev/ttyS0";
CommPortIdentifier portIdentifier =null;
portIdentifier = CommPortIdentifier.getPortIdentifier(comportidentifier);
三、参考
http://rxtx.qbang.org/wiki/index.php/Main_Page
https://blogs.oracle.com/jtc/java-serial-communications-revisited