aboutsummaryrefslogblamecommitdiff
path: root/ROMFS/scripts/rcS
blob: 33f63ca873a820ad5914a4551508a5e04134768d (plain) (tree)



















                                                                      



























                                                          
         
    


                                             
































































                                                                                
#!nsh
#
# PX4FMU startup script.
#
# This script is responsible for:
#
# - mounting the microSD card (if present)
# - running the user startup script from the microSD card (if present)
# - detecting the configuration of the system and picking a suitable
#   startup script to continue with
#
# Note: DO NOT add configuration-specific commands to this script;
#       add them to the per-configuration scripts instead.
#

#
# Default to auto-start mode.  An init script on the microSD card
# can change this to prevent automatic startup of the flight script.
#
set MODE autostart
set USB no

#
# Try to mount the microSD card.
#
echo "[init] looking for microSD..."
if mount -t vfat /dev/mmcsd0 /fs/microsd
then
	echo "[init] card mounted at /fs/microsd"
else
	echo "[init] no microSD card found"
fi

#
# Look for an init script on the microSD card.
#
# To prevent automatic startup in the current flight mode,
# the script should set MODE to some other value.
#
if [ -f /fs/microsd/etc/rc ]
then
	echo "[init] reading /fs/microsd/etc/rc"
	sh /fs/microsd/etc/rc
fi

#
# Check for USB host
#
if sercon
then
	echo "[init] USB interface connected"
else
	echo "[init] No USB connected"
fi

#
# If we are still in flight mode, work out what airframe 
# configuration we have and start up accordingly.
#
if [ $MODE != autostart ]
then
	echo "[init] automatic startup cancelled by user script"
else
	echo "[init] detecting attached hardware..."

	#
	# Assume that we are PX4FMU in standalone mode
	#
	set BOARD PX4FMU

	#
	# Are we attached to a PX4IOAR (AR.Drone carrier board)?
	#
	if boardinfo -t 7
	then
		set BOARD PX4IOAR
		if [ -f /etc/init.d/rc.PX4IOAR ]
		then
			echo "[init] reading /etc/init.d/rc.PX4IOAR"
			sh /etc/init.d/rc.PX4IOAR
		fi
	else
		echo "[init] PX4IOAR not detected"
	fi

	#
	# Are we attached to a PX4IO?
	#
	if boardinfo -t 6
	then
		set BOARD PX4IO
		if [ -f /etc/init.d/rc.PX4IO ]
		then
			echo "[init] reading /etc/init.d/rc.PX4IO"
			sh /etc/init.d/rc.PX4IO
		fi
	else
		echo "[init] PX4IO not detected"
	fi

	#
	# Looks like we are stand-alone
	#
	if [ $BOARD == PX4FMU ]
	then
		echo "[init] no expansion board detected"
		if [ -f /etc/init.d/rc.standalone ]
		then
			echo "[init] reading /etc/init.d/rc.standalone"
			sh /etc/init.d/rc.standalone
		fi
	fi

	#
	# We may not reach here if the airframe-specific script exits the shell.
	#
	echo "[init] startup done."
fi