socket-uart: provide uart, kline and lin serial interfaces from one recipe
Start systemd services for providing serial interfaces of remote machine: - UART (ttyUM0) - KLINE (ttyUM1) - LIN (ttyUM2) Caution: UserModule connection settings are hardcoded within the services! BugzID: 56441 Signed-off-by: Ramon Moesching <ramon.moesching@netmodule.com>
This commit is contained in:
parent
e244e992e8
commit
fa73575c29
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
ping $SOCAT_SOCKET_KLINE_IP -w 3 -c 1
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]
|
||||||
|
then
|
||||||
|
|
||||||
|
if [ -x "$(command -v socat)" ]; then
|
||||||
|
echo "start listening socket-uart services with server IP $SOCAT_SOCKET_KLINE_IP on port $SOCAT_SOCKET_KLINE_PORT"
|
||||||
|
cmd='socat -s pty,link=/dev/ttyUM1,raw,echo=0,b19200 tcp:$SOCAT_SOCKET_KLINE_IP:$SOCAT_SOCKET_KLINE_PORT'
|
||||||
|
|
||||||
|
if [[ -n $SOCAT_SOCKET_KLINE_MSS ]]; then
|
||||||
|
eval $cmd,mss=$SOCAT_SOCKET_KLINE_MSS
|
||||||
|
else
|
||||||
|
eval $cmd
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "socat command not available on your target or environment"
|
||||||
|
# return 1 so that systemd knows the service failed to start
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
exit 1
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
ping $SOCAT_SOCKET_LIN_IP -w 3 -c 1
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]
|
||||||
|
then
|
||||||
|
|
||||||
|
if [ -x "$(command -v socat)" ]; then
|
||||||
|
echo "start listening socket-uart services with server IP $SOCAT_SOCKET_LIN_IP on port $SOCAT_SOCKET_LIN_PORT"
|
||||||
|
cmd='socat -s pty,link=/dev/ttyUM2,raw,echo=0 tcp:$SOCAT_SOCKET_LIN_IP:$SOCAT_SOCKET_LIN_PORT'
|
||||||
|
|
||||||
|
if [[ -n $SOCAT_SOCKET_LIN_MSS ]]; then
|
||||||
|
eval $cmd,mss=$SOCAT_SOCKET_LIN_MSS
|
||||||
|
else
|
||||||
|
eval $cmd
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "socat command not available on your target or environment"
|
||||||
|
# return 1 so that systemd knows the service failed to start
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi
|
||||||
|
exit 1
|
||||||
|
|
@ -1,16 +1,25 @@
|
||||||
#!/bin/sh -
|
#!/bin/sh
|
||||||
if [ -x "$(command -v socat)" ]; then
|
|
||||||
echo "start listening socket-uart services with server IP $SOCAT_SOCKET_UART_IP on port $SOCAT_SOCKET_UART_PORT"
|
ping $SOCAT_SOCKET_UART_IP -w 3 -c 1
|
||||||
cmd='socat -s pty,link=/dev/ttyUM0,raw,echo=0,b115200 tcp:$SOCAT_SOCKET_UART_IP:$SOCAT_SOCKET_UART_PORT'
|
|
||||||
|
if [ $? -eq 0 ]
|
||||||
|
then
|
||||||
|
|
||||||
|
if [ -x "$(command -v socat)" ]; then
|
||||||
|
echo "start listening socket-uart services with server IP $SOCAT_SOCKET_UART_IP on port $SOCAT_SOCKET_UART_PORT"
|
||||||
|
cmd='socat -s pty,link=/dev/ttyUM0,raw,echo=0,b115200 tcp:$SOCAT_SOCKET_UART_IP:$SOCAT_SOCKET_UART_PORT'
|
||||||
|
|
||||||
|
if [[ -n $SOCAT_SOCKET_UART_MSS ]]; then
|
||||||
|
eval $cmd,mss=$SOCAT_SOCKET_UART_MSS
|
||||||
|
else
|
||||||
|
eval $cmd
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -n $SOCAT_SOCKET_UART_MSS ]]; then
|
|
||||||
eval $cmd,mss=$SOCAT_SOCKET_UART_MSS
|
|
||||||
else
|
else
|
||||||
eval $cmd
|
echo "socat command not available on your target or environment"
|
||||||
|
# return 1 so that systemd knows the service failed to start
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
|
||||||
echo "socat command not available on your target or environment"
|
|
||||||
# return 1 so that systemd knows the service failed to start
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
exit 1
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Bind kline socket with pseudo tty based on socat
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/socat-socket-kline
|
||||||
|
PIDFile=/var/run/socket-kline.pid
|
||||||
|
|
||||||
|
|
||||||
|
Environment=SOCAT_SOCKET_KLINE_IP='192.168.1.64' SOCAT_SOCKET_KLINE_PORT='2202' SOCAT_SOCKET_KLINE_MSS=''
|
||||||
|
|
||||||
|
ExecReload=/bin/kill -HUP $MAINPID
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=10
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Bind lin socket with pseudo tty based on socat
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/socat-socket-lin
|
||||||
|
PIDFile=/var/run/socket-lin.pid
|
||||||
|
|
||||||
|
|
||||||
|
Environment=SOCAT_SOCKET_LIN_IP='192.168.1.64' SOCAT_SOCKET_LIN_PORT='2200' SOCAT_SOCKET_LIN_MSS=''
|
||||||
|
|
||||||
|
ExecReload=/bin/kill -HUP $MAINPID
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=10
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
@ -6,9 +6,8 @@ Type=simple
|
||||||
ExecStart=/usr/bin/socat-socket-uart
|
ExecStart=/usr/bin/socat-socket-uart
|
||||||
PIDFile=/var/run/socket-uart.pid
|
PIDFile=/var/run/socket-uart.pid
|
||||||
|
|
||||||
#KillSignal=SIGQUIT
|
|
||||||
|
|
||||||
Environment=SOCAT_SOCKET_UART_IP='192.168.1.42' SOCAT_SOCKET_UART_PORT='2204' SOCAT_SOCKET_UART_MSS='256'
|
Environment=SOCAT_SOCKET_UART_IP='192.168.1.64' SOCAT_SOCKET_UART_PORT='2204' SOCAT_SOCKET_UART_MSS=''
|
||||||
|
|
||||||
ExecReload=/bin/kill -HUP $MAINPID
|
ExecReload=/bin/kill -HUP $MAINPID
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
|
||||||
|
|
@ -7,38 +7,34 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
|
||||||
SRC_URI = " \
|
SRC_URI = " \
|
||||||
file://socket-uart.service \
|
file://socket-uart.service \
|
||||||
file://socat-socket-uart \
|
file://socat-socket-uart \
|
||||||
|
file://socket-kline.service \
|
||||||
|
file://socat-socket-kline \
|
||||||
|
file://socket-lin.service \
|
||||||
|
file://socat-socket-lin \
|
||||||
"
|
"
|
||||||
|
|
||||||
S = "${WORKDIR}"
|
S = "${WORKDIR}"
|
||||||
|
|
||||||
RDEPENDS_${PN} = "socat"
|
RDEPENDS_${PN} = "socat"
|
||||||
|
|
||||||
# Override variable from local.conf with
|
|
||||||
# SOCAT_SOCKET_UART_DEFAULT_IP_pn-socket-uart = "6.6.6.6"
|
|
||||||
# SOCAT_SOCKET_UART_DEFAULT_PORT_pn-socket-uart = "2222"
|
|
||||||
# Don'"t set mss
|
|
||||||
# SOCAT_SOCKET_UART_DEFAULT_MSS_pn-socket-uart = ""
|
|
||||||
|
|
||||||
SOCAT_SOCKET_UART_DEFAULT_IP ??= "192.168.1.42"
|
SYSTEMD_SERVICE_${PN} = " \
|
||||||
SOCAT_SOCKET_UART_DEFAULT_PORT ??= "2204"
|
socket-uart.service \
|
||||||
SOCAT_SOCKET_UART_DEFAULT_MSS ??= ""
|
socket-kline.service \
|
||||||
|
socket-lin.service \
|
||||||
|
"
|
||||||
|
|
||||||
SYSTEMD_SERVICE_${PN} = "socket-uart.service"
|
FILES_${PN} = "${systemd_unitdir}/system ${bindir} "
|
||||||
|
|
||||||
do_configure() {
|
|
||||||
sed -i "s/SOCAT_SOCKET_UART_IP='192.168.1.42'/SOCAT_SOCKET_UART_IP='${SOCAT_SOCKET_UART_DEFAULT_IP}'/g" ${S}/socket-uart.service
|
|
||||||
sed -i "s/SOCAT_SOCKET_UART_PORT='2204'/SOCAT_SOCKET_UART_PORT='${SOCAT_SOCKET_UART_DEFAULT_PORT}'/g" ${S}/socket-uart.service
|
|
||||||
sed -i "s/SOCAT_SOCKET_UART_MSS='256'/SOCAT_SOCKET_UART_MSS='${SOCAT_SOCKET_UART_DEFAULT_MSS}'/g" ${S}/socket-uart.service
|
|
||||||
}
|
|
||||||
|
|
||||||
do_install() {
|
do_install() {
|
||||||
install -d ${D}/lib/systemd/system
|
install -d ${D}${systemd_unitdir}/system
|
||||||
install -m 644 ${WORKDIR}/socket-uart.service ${D}/lib/systemd/system/
|
install -m 644 ${WORKDIR}/socket-uart.service ${D}${systemd_unitdir}/system/
|
||||||
|
install -m 644 ${WORKDIR}/socket-kline.service ${D}${systemd_unitdir}/system/
|
||||||
|
install -m 644 ${WORKDIR}/socket-lin.service ${D}${systemd_unitdir}/system/
|
||||||
|
|
||||||
install -d ${D}/usr/bin/
|
|
||||||
install -m 744 ${WORKDIR}/socat-socket-uart ${D}/usr/bin/
|
install -d ${D}${bindir}
|
||||||
|
install -m 744 ${WORKDIR}/socat-socket-uart ${D}${bindir}
|
||||||
|
install -m 744 ${WORKDIR}/socat-socket-kline ${D}${bindir}
|
||||||
|
install -m 744 ${WORKDIR}/socat-socket-lin ${D}${bindir}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add all SOCAT_SOCKET_* variables to sstate hash calculation and force package_write_rpm exectution from scratch everytime
|
|
||||||
do_configure[vardeps] = "SOCAT_SOCKET_UART_DEFAULT_IP SOCAT_SOCKET_UART_DEFAULT_PORT SOCAT_SOCKET_UART_DEFAULT_MSS"
|
|
||||||
do_package_write_rpm[nostamp] = "1"
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue