blob: 2002ff0b4c3ddbe8c5bb9c63dc72bd2317e84db3 [file] [log] [blame]
#!/bin/sh
MODULE_PATH=/usr/lib/modules
# Do this early because hnvram needs it.
update-mtd-links
# Set up NEXUS first since it applies PINMUX.
echo "Starting nexus"
[ -e ${MODULE_PATH}/nexus.ko ] && insmod ${MODULE_PATH}/nexus.ko
if [ -e ${MODULE_PATH}/bcmdriver.ko ]; then
insmod ${MODULE_PATH}/bcmdriver.ko
mknod /dev/brcm0 c 30 0
fi
# Set up space for multiprocess NEXUS unix sockets
mount -t tmpfs none /shared
# Populate the platform ID
PLATFORM=$(hnvram -qr PLATFORM_NAME)
[ -n "$PLATFORM" ] &&
echo "$PLATFORM" >/etc/platform &&
chmod 444 /etc/platform
GPN=$(hnvram -qr GPN)
[ -n "$GPN" ] &&
echo "$GPN" >/tmp/gpn &&
chmod 444 /tmp/gpn
# Start the gpio mailbox ASAP, since it blinks the LEDs to show boot progress.
echo "Starting gpio-mailbox"
mkdir -p /tmp/gpio
leds 4 0 # blink activity while booting
echo 30 >/tmp/gpio/fanpercent # low fan at first
ulimit -c 49152
if runnable gpio-mailbox; then
reboot-if-fail gpio-mailbox 2>&1 | logos gpio-mailbox &
else
# gpio-mailbox unavailable, but pretend it is so apps won't wait for it
: >/var/run/gpio-mailbox
fi
if is-storage-box; then
hostname GFiberStorage
elif is-tv-box; then
hostname GFiberTV
else
hostname GFiberUnknown
fi
# Don't let SCHED_FIFO / SCHED_RR realtime threads get preempted
echo -1 >/proc/sys/kernel/sched_rt_runtime_us
# populate hdcp key
echo "Getting hdcp key"
hnvram -br HDCP_KEY >/tmp/hdcp_key.tmp
[ -s /tmp/hdcp_key.tmp ] && mv /tmp/hdcp_key.tmp /tmp/hdcp_key
if [ "$PLATFORM" = GFHD200 ]; then
wait-until-created /tmp/gpio/ready
if [ "$GPN" = "72001970-01" ]; then
# Older units, USB0_PWRON_N is active high
brcmgpio -p 106 -h
else
# newer units, USB0_PWRON_N is active low
brcmgpio -p 106 -l
fi
fi