Files
quectel-rgmii-toolkit/ipk-source/socat-at-bridge/root/etc/init.d/socat-at-bridge
2025-08-04 23:51:51 -04:00

45 lines
1.2 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
START=05
STOP=10
USE_PROCD=1
start_service() {
# Instance 1: create PTY pair
procd_open_instance
procd_set_param command socat -d -d pty,link=/dev/ttySMD11IN,raw,echo=0,group=20,perm=660 \
pty,link=/dev/ttySMD11,raw,echo=1,group=20,perm=660
procd_set_param respawn 0 0 0
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
# Instance 2: forward /dev/smd11 → /dev/ttySMD11IN
procd_open_instance
procd_set_param command /bin/sh -c '
while [ ! -e /dev/ttySMD11IN ]; do sleep 0.1; done
exec cat /dev/smd11 > /dev/ttySMD11IN
'
procd_set_param respawn 0 0 0
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
# Instance 3: forward /dev/ttySMD11IN → /dev/smd11
procd_open_instance
procd_set_param command /bin/sh -c '
while [ ! -e /dev/ttySMD11IN ]; do sleep 0.1; done
exec cat /dev/ttySMD11IN > /dev/smd11
'
procd_set_param respawn 0 0 0
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
stop_service() {
echo "Stopping socat bridge and cleaning up..."
rm -f /dev/ttySMD11 /dev/ttySMD11IN
}