How can I set up virtual serial ports (Linux null modem emulator) using tty0tty
Solution 1:
Installation
-
Download the tty0tty package from one of these sources:
-
http://sourceforge.net/projects/tty0tty/files/
-
clone the repo https://github.com/freemed/tty0tty:
git clone https://github.com/freemed/tty0tty
-
-
Extract it:
tar xf tty0tty-1.2.tgz
-
Build the kernel module from provided source:
cd tty0tty-1.2/module make
-
Copy the new kernel module into the kernel modules directory:
sudo cp tty0tty.ko /lib/modules/$(uname -r)/kernel/drivers/misc/
-
Load the module:
sudo depmod sudo modprobe tty0tty
You should see new serial ports in
/dev/
(ls /dev/tnt*
) -
Give appropriate permissions to the new serial ports:
sudo chmod 666 /dev/tnt*
You can now access the serial ports as /dev/tnt0
(1,2,3,4 etc)
Note that the consecutive ports are interconnected. For example, /dev/tnt0
and /dev/tnt1
are connected as if using a direct cable.
Persisting across boots
Edit the file /etc/modules
(Debian) or /etc/modules.conf
sudo nano /etc/modules.conf
and add the following line:
tty0tty
Warning
Note that this method will not make the module persist over kernel updates so if you ever update your kernel, make sure you build tty0tty again repeat the process.
If you don't move the module on every kernel update systemctl --failed
will return that service systemd-modules-load.service
ended "failed
". Also on journalctl -xe | grep "Failed to find"
.