| #!/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 |