Update socat-at-bridge to 1.1.1

- Fixed an issue causing the bridge to not properly form at boot

- A single file is executed with procd now instead for each smd device (AT Coammnd stream)
This commit is contained in:
Cameron Thompson
2025-01-16 00:56:29 -05:00
parent 7810aed7d9
commit 0bb14ae09c
6 changed files with 80 additions and 45 deletions

View File

@@ -1,5 +1,5 @@
Package: socat-at-bridge
Version: 1.1.0
Version: 1.1.1
Depends: libc socat
Source: github/iamromulan/quectel-rgmii-toolkit
Section: utils

View File

@@ -2,6 +2,7 @@
echo "Disabling socat-at-bridge at startup"
service socat-at-bridge disable
service socat-at-bridge-smd7 disable
echo "Stopping socat-at-bridge"
service socat-at-bridge stop
service socat-at-bridge-smd7 stop

View File

@@ -1,33 +1,13 @@
#!/bin/sh /etc/rc.common
START=30
START=05
STOP=10
USE_PROCD=1
start_service() {
procd_open_instance
# Start socat to create /dev/ttySMD11IN and /dev/ttySMD11
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
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
# Start cat process for /dev/smd11 to /dev/ttySMD11IN
procd_open_instance
procd_set_param command sh -c "cat /dev/smd11 > /dev/ttySMD11IN"
procd_set_param respawn
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
# Start cat process for /dev/ttySMD11IN to /dev/smd11
procd_open_instance
procd_set_param command sh -c "cat /dev/ttySMD11IN > /dev/smd11"
procd_set_param command /usr/sbin/socat-at-bridge.sh
procd_set_param respawn
procd_set_param stdout 1
procd_set_param stderr 1

View File

@@ -1,33 +1,13 @@
#!/bin/sh /etc/rc.common
START=30
START=05
STOP=10
USE_PROCD=1
start_service() {
procd_open_instance
# Start socat to create /dev/ttySMD7IN and /dev/ttySMD7
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
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
# Start cat process for /dev/smd11 to /dev/ttySMD11IN
procd_open_instance
procd_set_param command sh -c "cat /dev/smd7 > /dev/ttySMD7IN"
procd_set_param respawn
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
# Start cat process for /dev/ttySMD7IN to /dev/smd7
procd_open_instance
procd_set_param command sh -c "cat /dev/ttySMD7IN > /dev/smd7"
procd_set_param command /usr/sbin/socat-at-bridge-smd7.sh
procd_set_param respawn
procd_set_param stdout 1
procd_set_param stderr 1

View File

@@ -0,0 +1,37 @@
#!/bin/ash
# Optional logging for debugging
LOGFILE="/var/log/socat-bridge-smd7.log"
# Start socat to create virtual TTY devices
echo "$(date): Starting socat..." >> "$LOGFILE"
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 &
SOCAT_PID=$!
# Allow socat to initialize
sleep 1
# Start forwarding data from /dev/smd7 to /dev/ttySMD7IN
echo "$(date): Starting forward from /dev/smd7 to /dev/ttySMD7IN..." >> "$LOGFILE"
cat /dev/smd7 > /dev/ttySMD7IN &
CAT1_PID=$!
# Start forwarding data from /dev/ttySMD7IN to /dev/smd7
echo "$(date): Starting forward from /dev/ttySMD7IN to /dev/smd7..." >> "$LOGFILE"
cat /dev/ttySMD7IN > /dev/smd7 &
CAT2_PID=$!
# Handle script termination and cleanup
cleanup() {
echo "$(date): Cleaning up processes..." >> "$LOGFILE"
kill "$SOCAT_PID" "$CAT1_PID" "$CAT2_PID" 2>/dev/null
wait
echo "$(date): All processes stopped." >> "$LOGFILE"
}
# Trap termination signals to run cleanup
trap cleanup INT TERM EXIT
# Wait for all background processes to finish
wait

View File

@@ -0,0 +1,37 @@
#!/bin/ash
# Optional logging for debugging
LOGFILE="/var/log/socat-bridge.log"
# Start socat to create virtual TTY devices
echo "$(date): Starting socat..." >> "$LOGFILE"
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 &
SOCAT_PID=$!
# Allow socat to initialize
sleep 1
# Start forwarding data from /dev/smd11 to /dev/ttySMD11IN
echo "$(date): Starting forward from /dev/smd11 to /dev/ttySMD11IN..." >> "$LOGFILE"
cat /dev/smd11 > /dev/ttySMD11IN &
CAT1_PID=$!
# Start forwarding data from /dev/ttySMD11IN to /dev/smd11
echo "$(date): Starting forward from /dev/ttySMD11IN to /dev/smd11..." >> "$LOGFILE"
cat /dev/ttySMD11IN > /dev/smd11 &
CAT2_PID=$!
# Handle script termination and cleanup
cleanup() {
echo "$(date): Cleaning up processes..." >> "$LOGFILE"
kill "$SOCAT_PID" "$CAT1_PID" "$CAT2_PID" 2>/dev/null
wait
echo "$(date): All processes stopped." >> "$LOGFILE"
}
# Trap termination signals to run cleanup
trap cleanup INT TERM EXIT
# Wait for all background processes to finish
wait