diff options
Diffstat (limited to 'target/linux/brcm2708/base-files')
6 files changed, 105 insertions, 16 deletions
diff --git a/target/linux/brcm2708/base-files/etc/board.d/02_network b/target/linux/brcm2708/base-files/etc/board.d/02_network new file mode 100755 index 0000000000..e85eb11f88 --- /dev/null +++ b/target/linux/brcm2708/base-files/etc/board.d/02_network @@ -0,0 +1,25 @@ +#!/bin/sh +# Copyright (C) 2014-2015 OpenWrt.org + +. /lib/functions/uci-defaults-new.sh +. /lib/brcm2708.sh +. /lib/functions.sh +. /lib/functions/system.sh + +board_config_update + +ucidef_set_interface_loopback + +board=$(brcm2708_board_name) + +case "$board" in +rpi-b |\ +rpi-b-plus |\ +rpi-2-b) + ucidef_set_interface_lan "eth0" + ;; +esac + +board_config_flush + +exit 0 diff --git a/target/linux/brcm2708/base-files/etc/diag.sh b/target/linux/brcm2708/base-files/etc/diag.sh index 55e68b1a00..3a8dc86112 100644 --- a/target/linux/brcm2708/base-files/etc/diag.sh +++ b/target/linux/brcm2708/base-files/etc/diag.sh @@ -4,9 +4,19 @@ # . /lib/functions/leds.sh +. /lib/brcm2708.sh set_state() { - status_led="led0" + case "$(brcm2708_board_name)" in + rpi-b |\ + rpi-cm) + status_led="led0" + ;; + rpi-b-plus |\ + rpi-2-b) + status_led="led1" + ;; + esac case "$1" in preinit) diff --git a/target/linux/brcm2708/base-files/etc/uci-defaults/02_network b/target/linux/brcm2708/base-files/etc/uci-defaults/02_network deleted file mode 100644 index e7e35c5226..0000000000 --- a/target/linux/brcm2708/base-files/etc/uci-defaults/02_network +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -# Copyright (C) 2014 OpenWrt.org - -[ -e /etc/config/network ] && exit 0 - -touch /etc/config/network - -. /lib/functions/uci-defaults.sh - -ucidef_set_interface_loopback -ucidef_set_interface_lan "eth0" - -uci commit network - -exit 0 diff --git a/target/linux/brcm2708/base-files/lib/brcm2708.sh b/target/linux/brcm2708/base-files/lib/brcm2708.sh new file mode 100644 index 0000000000..13c1aa953b --- /dev/null +++ b/target/linux/brcm2708/base-files/lib/brcm2708.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# Copyright (C) 2015 OpenWrt.org + +ifname="" + +brcm2708_detect() { + local board_name model + + model=$(cat /proc/device-tree/model) + case "$model" in + "Raspberry Pi Model B Rev"*) + board_name="rpi-b" + ;; + "Raspberry Pi Model B+ Rev"*) + board_name="rpi-b-plus" + ;; + "Raspberry Pi Compute Module Rev"*) + board_name="rpi-cm" + ;; + "Raspberry Pi 2 Model B Rev"*) + board_name="rpi-2-b" + ;; + *) + board_name="unknown" + ;; + esac + + [ -e "/tmp/sysinfo" ] || mkdir -p "/tmp/sysinfo" + + echo "$board_name" > /tmp/sysinfo/board_name + echo "$model" > /tmp/sysinfo/model +} + +brcm2708_board_name() { + local name + + [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name) + [ -n "$name" ] || name="unknown" + + echo $name +} diff --git a/target/linux/brcm2708/base-files/lib/preinit/03_preinit_do_brcm2708.sh b/target/linux/brcm2708/base-files/lib/preinit/03_preinit_do_brcm2708.sh new file mode 100644 index 0000000000..294364848d --- /dev/null +++ b/target/linux/brcm2708/base-files/lib/preinit/03_preinit_do_brcm2708.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# Copyright (C) 2015 OpenWrt.org + +do_brcm2708() { + . /lib/brcm2708.sh + + brcm2708_detect +} + +boot_hook_add preinit_main do_brcm2708 diff --git a/target/linux/brcm2708/base-files/lib/preinit/05_set_preinit_iface_brcm2708 b/target/linux/brcm2708/base-files/lib/preinit/05_set_preinit_iface_brcm2708 new file mode 100644 index 0000000000..154b01c4fe --- /dev/null +++ b/target/linux/brcm2708/base-files/lib/preinit/05_set_preinit_iface_brcm2708 @@ -0,0 +1,18 @@ +#!/bin/sh +# +# Copyright (C) 2015 OpenWrt.org +# + +. /lib/brcm2708.sh + +set_preinit_iface() { + case "$(brcm2708_board_name)" in + rpi-b |\ + rpi-b-plus |\ + rpi-2-b) + ifname=eth0 + ;; + esac +} + +boot_hook_add preinit_main set_preinit_iface |