mirror of
https://github.com/km4ack/pi-scripts
synced 2026-08-13 17:52:05 -04:00
74 lines
2 KiB
Bash
74 lines
2 KiB
Bash
#!/bin/bash
|
|
|
|
NOTES(){
|
|
I had a very specific need where I wanted to be able to start either
|
|
the packet modem or VARA FM when the Pi booted. It needed to both give
|
|
the user a choice of modems and work automatically without having to
|
|
VNC into the Pi first. This script will do just that.
|
|
|
|
If the sound card is connected before boot then the packet modem will
|
|
be started. If the sound card is not connected at boot, then direwolf will
|
|
fail to start. The script detects the failure and then waits on the
|
|
sound card to be connected and auto start VARA FM once the sound card is
|
|
connected.
|
|
|
|
It will also post a message to the pat outbox indicating which modem
|
|
was started. This outgoing message is addressed to "test" so if it is
|
|
accidentally sent, it will simply return to the user.
|
|
|
|
INSTALL:
|
|
Download this script and make it executable. The link to it in cron.
|
|
EXAMPLE CRON
|
|
@reboot /path/to/script/auto-start-modem
|
|
|
|
DEPENDS:
|
|
Direwolf
|
|
ax25
|
|
vara fm
|
|
pat winlink
|
|
pat menu
|
|
|
|
Hope it helps you!
|
|
73, de KM4ACK
|
|
07OCT2022
|
|
}
|
|
|
|
export DISPLAY=:0
|
|
|
|
#this function is used to post a message in the outbox to
|
|
#give the operator feedback as to which modem has started.
|
|
POSTMAIL(){
|
|
echo "$MODEM is running" | pat compose test -s "$MODEM started"
|
|
}
|
|
|
|
#this works with a sound card connected but fails if sound card not found
|
|
$HOME/patmenu2/start-pat2m &
|
|
|
|
sleep 10
|
|
|
|
#This checks to see if direwolf started
|
|
if [ -z `pidof direwolf` ]; then
|
|
|
|
#if direwolf not running, enter loop and wait on sound card to be connected.
|
|
while [ -z `arecord -l | grep card` ]; do
|
|
echo "wait on Sound card"
|
|
sleep 2
|
|
done
|
|
$HOME/patmenu2/start-vara-fm #start vara fm modem
|
|
MODEM=VARA-FM #set modem variable
|
|
|
|
#verify vara modem started.
|
|
VARA=$(ps aux | grep wine | grep VARA | head -1 | awk '{print $2}')
|
|
if [ -z $VARA ]; then
|
|
MODEM=FAILED #set modem variable
|
|
POSTMAIL #post message to outbox
|
|
else
|
|
MODEM=VARA-FM #set modem variable
|
|
POSTMAIL #post message to outbox
|
|
fi
|
|
else
|
|
MODEM=Direwolf #set modem variable
|
|
POSTMAIL #post message to outbox
|
|
exit
|
|
fi
|
|
|