From c3ed120d01740c61a2cafc67e597389aa0c4b674 Mon Sep 17 00:00:00 2001 From: px4dev Date: Wed, 30 Jan 2013 16:16:12 -0800 Subject: Back out deletion of the /etc/init.d scripts; we need these. --- ROMFS/scripts/rc.FMU_quad_x | 40 +++++++++++++ ROMFS/scripts/rc.PX4IO | 73 ++++++++++++++++++++++++ ROMFS/scripts/rc.PX4IOAR | 80 ++++++++++++++++++++++++++ ROMFS/scripts/rc.jig | 10 ++++ ROMFS/scripts/rc.logging | 9 +++ ROMFS/scripts/rc.sensors | 34 +++++++++++ ROMFS/scripts/rc.standalone | 13 +++++ ROMFS/scripts/rcS | 136 ++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 395 insertions(+) create mode 100644 ROMFS/scripts/rc.FMU_quad_x create mode 100644 ROMFS/scripts/rc.PX4IO create mode 100644 ROMFS/scripts/rc.PX4IOAR create mode 100644 ROMFS/scripts/rc.jig create mode 100644 ROMFS/scripts/rc.logging create mode 100644 ROMFS/scripts/rc.sensors create mode 100644 ROMFS/scripts/rc.standalone create mode 100755 ROMFS/scripts/rcS diff --git a/ROMFS/scripts/rc.FMU_quad_x b/ROMFS/scripts/rc.FMU_quad_x new file mode 100644 index 000000000..d9c9a8457 --- /dev/null +++ b/ROMFS/scripts/rc.FMU_quad_x @@ -0,0 +1,40 @@ +# +# Startup for X-quad on FMU1.5/1.6 +# + +echo "[init] uORB" +uorb start + +echo "[init] eeprom" +eeprom start +if [ -f /eeprom/parameters ] +then + param load +fi + +echo "[init] sensors" +#bma180 start +#l3gd20 start +mpu6000 start +hmc5883 start +ms5611 start + +sensors start + +echo "[init] mavlink" +mavlink start -d /dev/ttyS0 -b 57600 +usleep 5000 + +echo "[init] commander" +commander start + +echo "[init] attitude control" +attitude_estimator_ekf start +multirotor_att_control start + +echo "[init] starting PWM output" +fmu mode_pwm +mixer load /dev/pwm_output /etc/mixers/FMU_quad_x.mix + +echo "[init] startup done, exiting" +exit diff --git a/ROMFS/scripts/rc.PX4IO b/ROMFS/scripts/rc.PX4IO new file mode 100644 index 000000000..84e181a5a --- /dev/null +++ b/ROMFS/scripts/rc.PX4IO @@ -0,0 +1,73 @@ +#!nsh + +set USB no + +# +# Start the object request broker +# +uorb start + +# +# Init the EEPROM +# +echo "[init] eeprom" +eeprom start +if [ -f /eeprom/parameters ] +then + param load +fi + +# +# Enable / connect to PX4IO +# +px4io start + +# +# Load an appropriate mixer. FMU_pass.mix is a passthru mixer +# which is good for testing. See ROMFS/mixers for a full list of mixers. +# +mixer load /dev/pwm_output /etc/mixers/FMU_pass.mix + +# +# Start the sensors. +# +sh /etc/init.d/rc.sensors + +# +# Start MAVLink on UART1 (dev/ttyS0) at 57600 baud (CLI is now unusable) +# +mavlink start -d /dev/ttyS0 -b 57600 +usleep 5000 + +# +# Start the commander. +# +commander start + +# +# Start the attitude estimator +# +attitude_estimator_ekf start + +# +# Start the attitude and position controller +# +fixedwing_att_control start +fixedwing_pos_control start + +# +# Start GPS capture. Comment this out if you do not have a GPS. +# +gps start + +# +# Start logging to microSD if we can +# +sh /etc/init.d/rc.logging + +# +# startup is done; we don't want the shell because we +# use the same UART for telemetry +# +echo "[init] startup done" +exit diff --git a/ROMFS/scripts/rc.PX4IOAR b/ROMFS/scripts/rc.PX4IOAR new file mode 100644 index 000000000..640cdf541 --- /dev/null +++ b/ROMFS/scripts/rc.PX4IOAR @@ -0,0 +1,80 @@ +#!nsh +# +# Flight startup script for PX4FMU on PX4IOAR carrier board. +# + +# Disable the USB interface +set USB no + +# Disable autostarting other apps +set MODE ardrone + +echo "[init] doing PX4IOAR startup..." + +# +# Start the ORB +# +uorb start + +# +# Load microSD params +# +echo "[init] loading microSD params" +param select /fs/microsd/parameters +if [ -f /fs/microsd/parameters ] +then + param load /fs/microsd/parameters +fi + +# +# Start MAVLink +# +mavlink start -d /dev/ttyS0 -b 57600 +usleep 5000 + +# +# Start the sensors and test them. +# +sh /etc/init.d/rc.sensors + +# +# Start the commander. +# +commander start + +# +# Start the attitude estimator +# +attitude_estimator_ekf start + +# +# Configure PX4FMU for operation with PX4IOAR +# +fmu mode_gpio_serial + +# +# Fire up the multi rotor attitude controller +# +multirotor_att_control start + +# +# Fire up the AR.Drone interface. +# +ardrone_interface start -d /dev/ttyS1 + +# +# Start logging +# +#sdlog start + +# +# Start GPS capture +# +gps start + +# +# startup is done; we don't want the shell because we +# use the same UART for telemetry +# +echo "[init] startup done" +exit \ No newline at end of file diff --git a/ROMFS/scripts/rc.jig b/ROMFS/scripts/rc.jig new file mode 100644 index 000000000..e2b5d8f30 --- /dev/null +++ b/ROMFS/scripts/rc.jig @@ -0,0 +1,10 @@ +#!nsh +# +# Test jig startup script +# + +echo "[testing] doing production test.." + +tests jig + +echo "[testing] testing done" diff --git a/ROMFS/scripts/rc.logging b/ROMFS/scripts/rc.logging new file mode 100644 index 000000000..09c2d00d1 --- /dev/null +++ b/ROMFS/scripts/rc.logging @@ -0,0 +1,9 @@ +#!nsh +# +# Initialise logging services. +# + +if [ -d /fs/microsd ] +then + sdlog start +fi diff --git a/ROMFS/scripts/rc.sensors b/ROMFS/scripts/rc.sensors new file mode 100644 index 000000000..42c2f52e9 --- /dev/null +++ b/ROMFS/scripts/rc.sensors @@ -0,0 +1,34 @@ +#!nsh +# +# Standard startup script for PX4FMU onboard sensor drivers. +# + +# +# Start sensor drivers here. +# + +ms5611 start +adc start + +if mpu6000 start +then + echo "using MPU6000 and HMC5883L" + hmc5883 start +else + echo "using L3GD20 and LSM303D" + l3gd20 start + lsm303 start +fi + +# +# Start the sensor collection task. +# IMPORTANT: this also loads param offsets +# ALWAYS start this task before the +# preflight_check. +# +sensors start + +# +# Check sensors - run AFTER 'sensors start' +# +preflight_check \ No newline at end of file diff --git a/ROMFS/scripts/rc.standalone b/ROMFS/scripts/rc.standalone new file mode 100644 index 000000000..67e95215b --- /dev/null +++ b/ROMFS/scripts/rc.standalone @@ -0,0 +1,13 @@ +#!nsh +# +# Flight startup script for PX4FMU standalone configuration. +# + +echo "[init] doing standalone PX4FMU startup..." + +# +# Start the ORB +# +uorb start + +echo "[init] startup done" diff --git a/ROMFS/scripts/rcS b/ROMFS/scripts/rcS new file mode 100755 index 000000000..69d791da5 --- /dev/null +++ b/ROMFS/scripts/rcS @@ -0,0 +1,136 @@ +#!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 autoconnect + +# +# Start playing the startup tune +# +tone_alarm start + +# +# 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 +# Also consider rc.txt files +if [ -f /fs/microsd/etc/rc.txt ] +then + echo "[init] reading /fs/microsd/etc/rc.txt" + sh /fs/microsd/etc/rc.txt +fi + +# +# Check for USB host +# +if [ $USB != autoconnect ] +then + echo "[init] not connecting USB" +else + if sercon + then + echo "[init] USB interface connected" + else + echo "[init] No USB connected" + fi +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 test name PX4IOAR + then + set BOARD PX4IOAR + if [ -f /etc/init.d/rc.PX4IOAR ] + then + echo "[init] reading /etc/init.d/rc.PX4IOAR" + usleep 500 + sh /etc/init.d/rc.PX4IOAR + fi + else + echo "[init] PX4IOAR not detected" + fi + + # + # Are we attached to a PX4IO? + # + if boardinfo test name PX4IO + then + set BOARD PX4IO + if [ -f /etc/init.d/rc.PX4IO ] + then + echo "[init] reading /etc/init.d/rc.PX4IO" + usleep 500 + 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 -- cgit v1.2.3