#!/bin/bash
# Ax25, 6pack, bpqether, rose, & mkiss - are pre-loaded via /etc/modules
# this script file is /usr/local/sbin/ax25up
# It is adapted from K4GBB ax25 scripts for RaspBerry Pi
#
# Auteurs : K4GBB (script original), Bernard Pidoux F6BVP (adaptation Linux)
# Date    : 2026-05-27
# Modifs  : correction ax25ipd (-l3 pour sortie stdout du PTY),
#           rm -f pour robustesse au démarrage
/usr/bin/reset
#
# Supprimer ipv6
sysctl -w net.ipv6.conf.all.disable_ipv6=1
#
echo 1 > /proc/sys/net/ipv4/ip_forward
#
#
TZ=Europe/Paris
export TZ
#
echo 30 > /proc/sys/kernel/panic
echo 30 > /proc/sys/kernel/panic_on_oops
echo 1 > /proc/sys/kernel/sysrq
echo "/proc/sys/kernel/sysrq"
cat /proc/sys/kernel/sysrq
echo 8 > /proc/sys/kernel/printk
echo "/proc/sys/kernel/printk"
cat /proc/sys/kernel/printk
dmesg -n 8
# 
# If using TNC-Pi modem HAT for RaspBerry Pi
# uncomment /usr/local/bin/pitnc  lines
# TNC Pi must be configured before loading AX.25 driver
# Set TNC-Pi TxDelay 0 enables harware setting R6
#/usr/local/bin/pitnc_getparams 0 0
#/usr/local/bin/pitnc_setparams 0 0 1 0
#/usr/local/bin/pitnc_getparams 0 0  > pitnc_params
#
/bin/rm -f /tmp/*
/bin/rm -f /var/log/fpac.log
/bin/rm -f /var/ax25/fbb/*.res
/bin/rm -f /var/ax25/mheard/mheard.dat
/bin/touch /var/ax25/mheard/mheard.dat
/bin/rm -f /var/ax25/fbb/*.res
/bin/rm -f /tmp/watchdog_usb.log
/bin/rm -f /var/log/watchdog_usb.log
#echo "[ax25-up] Rebooting `date` " >> /var/log/watchdog_usb.log
echo "[ax25-up] `date` " >> /tmp/reboute.txt
#
#/usr/sbin/service lighttpd stop
/usr/local/sbin/wpmaint > /tmp/wpmaint.res
#
#echo "Installing ax25ipd Unix98 master pseudo tty"
#/bin/date >> /var/log/ax25ipd.log
#/usr/local/sbin/ax25ipd -c /etc/ax25/ax25idp.conf > /tmp/unix98
#echo $! > /var/run/ax25ipd.pid
#export AXUDP=`tail -1 /tmp/unix98`
#
#/bin/sleep 2
#echo "Installing a KISS link on ethernet port"
#/usr/local/sbin/kissattach  $AXUDP lan  > /tmp/ax25-config.tmp
# awk '/device/ { print $7 }' /tmp/ax25-config.tmp > /tmp/ax25-config0-tmp
#read Device < /tmp/ax25-config0-tmp
# Check for Device
#if [ -d /proc/sys/net/ax25/$Device ]
#then echo "Port axudp attached to $Device"
#	cd /proc/sys/net/ax25/$Device/
#else echo "** Error setting $Device parms **"
#fi
/usr/sbin/modprobe ax25
/usr/sbin/modprobe rose
/usr/sbin/modprobe mkiss
#
#/bin/sleep 2
#
echo "Installing ax25ipd Unix98 master pseudo tty"
/bin/date >> /var/log/ax25ipd.log
/usr/local/sbin/ax25ipd -c /etc/ax25/ax25ipd.conf -l3 > /tmp/unix98-2
echo $! > /var/run/ax25ipd.pid
export AXUDP=`tail -1 /tmp/unix98-2`
#
/bin/sleep 2
echo "Installing a KISS link on ethernet port"
#/usr/local/sbin/kissattach -b $AXUDP axudp 44.168.19.18 > /tmp/ax25-config1.tmp
#/usr/local/sbin/kissattach  $AXUDP axudp 44.168.19.18 > /tmp/ax25-config1.tmp
#/usr/local/sbin/kissattach  $AXUDP axudp  44.168.19.18 > /tmp/ax25-config1.tmp
/usr/local/sbin/kissattach  $AXUDP axudp  > /tmp/ax25-config1.tmp
 awk '/device/ { print $7 }' /tmp/ax25-config1.tmp > /tmp/ax25-config1-tmp
read Device < /tmp/ax25-config1-tmp
# Check for Device
if [ -d /proc/sys/net/ax25/$Device ]
then echo "Port axudp attached to $Device"
	cd /proc/sys/net/ax25/$Device/
else echo "** Error setting $Device parms **"
fi

#/bin/sleep 2
#
## Attach TNC-Pi in kiss mode to serial port ttyAMA0 = 19200 bauds ---> ax1 = 1 = vhfdrop
#/usr/local/sbin/mkiss -s 19200 -x 1 /dev/ttyAMA0 > /tmp/unix98
#export PTS3=`more /tmp/unix98 | grep -w /dev | cut -b -11`
#/bin/sleep 2
# /usr/local/sbin/kissattach $PTS3 vhfdrop 44.168.19.18 > /tmp/ax25-config.tmp
#/usr/local/sbin/kissattach $PTS3 vhfdrop > /tmp/ax25-config.tmp
# awk '/device/ { print $7 }' /tmp/ax25-config.tmp > /tmp/ax25-config2-tmp
#read Device < /tmp/ax25-config2-tmp
# 
# Check for Device
#if [ -d /proc/sys/net/ax25/$Device ]
#then echo "Port vhfdrop attached to $Device"
#	cd /proc/sys/net/ax25/$Device/
#else echo "** Error setting $Device parms **"
#fi
#/bin/sleep 4
# Port end
#

# Start "Other" Services
# Set ax0 timers
#/etc/ax25/rc.temps
#
# Start NetRom
/etc/ax25/rc.netrom
#echo "NetRom Started"
#/bin/sleep 4
 /bin/sleep 2

# Start ROSE / FPAC 
/etc/ax25/myfpac.sh start
echo "ROSE - FPAC Starting"
/sbin/route del -net 44.0.0.0/8 rose0
/bin/sleep 2

# Start BBS FBB 
/etc/ax25/rc.fbb start
echo "FBB BBS Started"
/bin/sleep 2
#
/usr/local/etc/ax25/rc.beacon
#
# Dx Cluster is run at boot time via /etc/inittab respawn loop
#Open Dx cluster Spider on Term 6
#/usr/bin/perl -w /spider/perl/cluster.pl >/dev/tty6 &
/usr/bin/perl -w /spider/perl/cluster.pl &
#
# Set Beacon for Port vhfdrop 
#  /usr/local/sbin/beacon \
#	-c f6bvp \
#	-d "info " \
#	-t 15 \
#	vhfdrop \
#	" BBS & node F6BVP "
# echo $! > /var/run/beacon.pid
#/bin/sleep 4

# Enable External Logons
  /usr/local/sbin/ax25d &
  echo $! > /var/run/ax25d.pid
  echo "ax25d started"
/bin/sleep 4

# APRS I-gate & repeater
#/bin/rm /spider/local/cluster.lck 
#  /usr/local/bin/dixprs/dixprs.py -c /usr/local/bin/dixprs/config.txt &
#  echo "APRS I-gate started"
#/bin/sleep 4

# DX Cluster spots beacon & repeater
#  /etc/ax25/rc.dxget
#  echo "DX spot beacon started"
#/bin/sleep 1

# Start Mheard daemon
 /usr/local/sbin/mheardd &
  echo $! > /var/run/mheard.pid
  echo "mheardd Started"

# configure ampr.org 
#/etc/ax25/rc.ampr.org
#
#/etc/cron.hourly/5watchdog_USB &
# AX25-up (End)
#/etc/cron.hourly/90stream_start &
#
#/usr/local/etc/ax25/rc.beacon
#
/usr/local/sbin/axparms --assoc f6bvp pi
/usr/local/sbin/axparms --assoc show
#
