I had a chance this weekend to poke around more in the factory image.
Here is a full listing of the /sbin/ scripts if anyone wants to grep through them. The GPIO scripts in /sbin/ appear to just display the current state and allow setting pin values:
/ # head -n 99999 /sbin/gpio*
==> /sbin/gpio.sh <==
#!/bin/sh
PIN=$1
DIR=$2
VAL=$3
#echo $1 $2 $3
GPIODIR=/sys/class/gpio
if [ ! -e $GPIODIR/gpio$PIN ]
then
echo $PIN > $GPIODIR/export
fi
if [ -e $2 ]
then
echo "Old vlaue:"
cat $GPIODIR/gpio$PIN/value
cat $GPIODIR/gpio$PIN/direction
else
echo $DIR > $GPIODIR/gpio$PIN/direction
echo "Old vlaue:"
cat $GPIODIR/gpio$PIN/value
echo "New value:"
echo $VAL > $GPIODIR/gpio$PIN/value
cat $GPIODIR/gpio$PIN/value
fi
==> /sbin/gpio_dump.sh <==
#!/bin/sh
GPIOCHIP=0
BASE=$(cat /sys/class/gpio/gpiochip${GPIOCHIP}/base)
NGPIO=$(cat /sys/class/gpio/gpiochip${GPIOCHIP}/ngpio)
max=$(($BASE+$NGPIO))
gpio=$BASE
while [ $gpio -lt $max ] ; do
echo $gpio > /sys/class/gpio/export
[ -d /sys/class/gpio/gpio${gpio} ] && {
echo in > /sys/class/gpio/gpio${gpio}/direction
echo "[GPIO${gpio}] value $(cat /sys/class/gpio/gpio${gpio}/value)"
echo ${gpio} > /sys/class/gpio/unexport
}
gpio=$((gpio+1))
done
I put the output from gpio_dump.sh here.
This is /lib/ipq806x.sh:
/ # cat /lib/ipq806x.sh
#!/bin/sh
#
# Copyright (c) 2013 The Linux Foundation. All rights reserved.
# Copyright (C) 2011 OpenWrt.org
#
IPQ806X_BOARD_NAME=
IPQ806X_MODEL=
ipq806x_board_detect() {
local machine
local name
machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /Hardware/ {print $2}' /proc/cpuinfo)
case "$machine" in
*"DB149 reference board")
name="db149"
;;
*"AP148 reference board")
name="ap148"
;;
*"AP145 reference board")
name="ap145"
;;
*"AP145-1XX reference board")
name="ap145_1xx"
;;
*"DB149-1XX reference board")
name="db149_1xx"
;;
*"DB149-2XX reference board")
name="db149_2xx"
;;
*"AP148-1XX reference board")
name="ap148_1xx"
;;
*"AP160 reference board")
name="ap160"
;;
*"AP160-2XX reference board")
name="ap160_2xx"
;;
*"AP161 reference board")
name="ap161"
;;
*"AK01-1XX reference board")
name="ak01_1xx"
;;
esac
[ -z "$name" ] && name="unknown"
[ -z "$IPQ806X_BOARD_NAME" ] && IPQ806X_BOARD_NAME="$name"
[ -z "$IPQ806X_MODEL" ] && IPQ806X_MODEL="$machine"
[ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
echo "$IPQ806X_BOARD_NAME" > /tmp/sysinfo/board_name
echo "$IPQ806X_MODEL" > /tmp/sysinfo/model
}
ipq806x_board_name() {
local name
[ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name)
[ -z "$name" ] && name="unknown"
echo "$name"
}
As far as GPL archives, they have their EOS sources available but I haven't been able to find anything useful specific to the C-130 in there yet.