Files
quectel-rgmii-toolkit/ipk-source/socat-at-bridge/root/etc/init.d/socat-at-bridge-smd7
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/ttySMD7IN,raw,echo=0,group=20,perm=660 \
pty,link=/dev/ttySMD7,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/smd7 → /dev/ttySMD7IN
procd_open_instance
procd_set_param command /bin/sh -c '
while [ ! -e /dev/ttySMD7IN ]; do sleep 0.1; done
exec cat /dev/smd7 > /dev/ttySMD7IN
'
procd_set_param respawn 0 0 0
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
# Instance 3: forward /dev/ttySMD7IN → /dev/smd7
procd_open_instance
procd_set_param command /bin/sh -c '
while [ ! -e /dev/ttySMD7IN ]; do sleep 0.1; done
exec cat /dev/ttySMD7IN > /dev/smd7
'
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/ttySMD7 /dev/ttySMD7IN
}