Author: Kang Lin (kl222@126.com)
Chinese

Englisth

If you are satisfied, you can donate to me
If it cannot be displayed, please open:
RabbitCommon: https://github.com/KangLin/RabbitCommon
It can be downloaded to the same directory of the project.
If it is a different directory, set the environment variable RabbitCommon_ROOT
git clone https://github.com/KangLin/RabbitCommon.git
Download source code
git clone https://github.com/KangLin/SerialPortAssistant.git
RabbitCommon_ROOTDownload source code and the deplendence in same directory
git clone https://github.com/KangLin/RabbitCommon.git
git clone https://github.com/KangLin/SerialPortAssistant.git
Make the build directory in the project root directory
cd SerialPortAssistant
mkdir build
cd build
# cmake configure
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=`pwd`/install [-DRabbitCommon_ROOT=...]
# compiling
cmake --build . --config Release --target install
cd install # The program is installed in the install/bin directory
This script generates the deb package under linux. Before use, please make sure the following programs are installed
sudo apt-get install debhelper fakeroot build-essential cmake
Use system qt
qt6
sudo apt-get install \
qt6-tools-dev qt6-tools-dev-tools qt6-base-dev qt6-base-dev-tools \
qt6-l10n-tools qt6-translations-l10n qt6-scxml-dev \
qt6-webengine-dev qt6-webengine-dev-tools libqt6serialport6-dev
See: ubuntu.yml
qt5
sudo apt-get install qttools5-dev qttools5-dev-tools \
qtbase5-dev qtbase5-dev-tools qttranslations5-l10n \
libqt5scxml5-dev libqt5svg5-dev libqt5serialport5-dev \
qtwebengine5-dev qtwebengine5-dev-tools qtwebengine5-private-dev
build_appimage.sh
build AppImage. See: https://github.com/linuxdeploy/linuxdeploy/
Install socat
$ sudo apt update
$ sudo apt install socat
Create a pair of virtual serial ports
$ sudo socat -d -d pty,raw,echo=0 pty,raw,echo=0
After running, it will display:
2025/12/03 14:09:27 socat[31902] N PTY is /dev/pts/5
2025/12/03 14:09:27 socat[31902] N PTY is /dev/pts/6
2025/12/03 14:09:27 socat[31902] N starting data transfer loop with FDs [5,5] and [7,7]
Create symbolic links (optional, for better naming).
$ sudo ln -sf /dev/pts/2 /dev/ttyVCOM0
$ sudo ln -sf /dev/pts/3 /dev/ttyVCOM1
The above two steps can be combined into the following command.
$ sudo socat -d -d pty,link=/dev/ttyVCOM0,raw,echo=0 pty,link=/dev/ttyVCOM1,raw,echo=0
You can now use this program to open the serial port. /dev/pts/5(/dev/ttyVCOM0) and /dev/pts/6(/dev/ttyVCOM1).
Because these serial port names are non-standard, this program cannot find them.
You can enter the following in the “Serial Port” field: /dev/pts/5
Because the virtual serial port was created with root privileges, this program also needs to be run with root privileges.
$ sudo serialportassistant
Alternatively, authorize the serial port to the current user:
$ sudo chown $USER:tty /dev/pts/5
$ sudo chown $USER:tty /dev/pts/6
$ serialportassistant