diff mbox

[OpenWrt-Devel,v2,5/6] brcm2708: add device detection and use it for network, leds and preinit

Message ID 1447957089-13659-1-git-send-email-noltari@gmail.com
State Changes Requested
Headers show

Commit Message

Álvaro Fernández Rojas Nov. 19, 2015, 6:18 p.m. UTC
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
---
v2: device tree model needs Rev to avoid detecting a B+ as a B model

 target/linux/brcm2708/base-files.mk                |  3 ++
 target/linux/brcm2708/base-files/etc/diag.sh       | 12 ++++++-
 .../base-files/etc/uci-defaults/02_network         | 12 +++++--
 target/linux/brcm2708/base-files/lib/brcm2708.sh   | 41 ++++++++++++++++++++++
 .../lib/preinit/03_preinit_do_brcm2708.sh          | 10 ++++++
 .../lib/preinit/05_set_preinit_iface_brcm2708      | 18 ++++++++++
 target/linux/brcm2708/bcm2708/config-4.1           |  2 +-
 target/linux/brcm2708/bcm2709/config-4.1           |  2 +-
 8 files changed, 95 insertions(+), 5 deletions(-)
 create mode 100644 target/linux/brcm2708/base-files.mk
 create mode 100644 target/linux/brcm2708/base-files/lib/brcm2708.sh
 create mode 100644 target/linux/brcm2708/base-files/lib/preinit/03_preinit_do_brcm2708.sh
 create mode 100644 target/linux/brcm2708/base-files/lib/preinit/05_set_preinit_iface_brcm2708

Comments

John Crispin Nov. 21, 2015, 8:45 a.m. UTC | #1
Hi,

do you have time to rework this code to make use of the new board
detection layer ? i am currently starting to convert all targets to it.
would be a shame if we add this ode just to replace it again in a few weeks.

	John

On 19/11/2015 19:18, Álvaro Fernández Rojas wrote:
> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
> ---
> v2: device tree model needs Rev to avoid detecting a B+ as a B model
> 
>  target/linux/brcm2708/base-files.mk                |  3 ++
>  target/linux/brcm2708/base-files/etc/diag.sh       | 12 ++++++-
>  .../base-files/etc/uci-defaults/02_network         | 12 +++++--
>  target/linux/brcm2708/base-files/lib/brcm2708.sh   | 41 ++++++++++++++++++++++
>  .../lib/preinit/03_preinit_do_brcm2708.sh          | 10 ++++++
>  .../lib/preinit/05_set_preinit_iface_brcm2708      | 18 ++++++++++
>  target/linux/brcm2708/bcm2708/config-4.1           |  2 +-
>  target/linux/brcm2708/bcm2709/config-4.1           |  2 +-
>  8 files changed, 95 insertions(+), 5 deletions(-)
>  create mode 100644 target/linux/brcm2708/base-files.mk
>  create mode 100644 target/linux/brcm2708/base-files/lib/brcm2708.sh
>  create mode 100644 target/linux/brcm2708/base-files/lib/preinit/03_preinit_do_brcm2708.sh
>  create mode 100644 target/linux/brcm2708/base-files/lib/preinit/05_set_preinit_iface_brcm2708
> 
> diff --git a/target/linux/brcm2708/base-files.mk b/target/linux/brcm2708/base-files.mk
> new file mode 100644
> index 0000000..fdd2c71
> --- /dev/null
> +++ b/target/linux/brcm2708/base-files.mk
> @@ -0,0 +1,3 @@
> +define Package/base-files/install-target
> +	rm -f $(1)/etc/config/network
> +endef
> diff --git a/target/linux/brcm2708/base-files/etc/diag.sh b/target/linux/brcm2708/base-files/etc/diag.sh
> index 55e68b1..3a8dc86 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
> index e7e35c5..1bb05b6 100644
> --- a/target/linux/brcm2708/base-files/etc/uci-defaults/02_network
> +++ b/target/linux/brcm2708/base-files/etc/uci-defaults/02_network
> @@ -1,14 +1,22 @@
>  #!/bin/sh
> -# Copyright (C) 2014 OpenWrt.org
> +# Copyright (C) 2014-2015 OpenWrt.org
>  
>  [ -e /etc/config/network ] && exit 0
>  
>  touch /etc/config/network
>  
>  . /lib/functions/uci-defaults.sh
> +. /lib/brcm2708.sh
>  
>  ucidef_set_interface_loopback
> -ucidef_set_interface_lan "eth0"
> +
> +case "$(brcm2708_board_name)" in
> +rpi-b |\
> +rpi-b-plus |\
> +rpi-2-b)
> +	ucidef_set_interface_lan "eth0"
> +	;;
> +esac
>  
>  uci commit network
>  
> 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 0000000..7d6e458
> --- /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 0000000..2943648
> --- /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 0000000..154b01c
> --- /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
> diff --git a/target/linux/brcm2708/bcm2708/config-4.1 b/target/linux/brcm2708/bcm2708/config-4.1
> index 055caa9..82ae7b3 100644
> --- a/target/linux/brcm2708/bcm2708/config-4.1
> +++ b/target/linux/brcm2708/bcm2708/config-4.1
> @@ -225,7 +225,7 @@ CONFIG_KERNEL_GZIP=y
>  # CONFIG_KERNEL_XZ is not set
>  # CONFIG_LCD_CLASS_DEVICE is not set
>  CONFIG_LEDS_GPIO=y
> -# CONFIG_LEDS_TRIGGER_INPUT is not set
> +CONFIG_LEDS_TRIGGER_INPUT=y
>  CONFIG_LIBFDT=y
>  CONFIG_LOGO=y
>  CONFIG_LOGO_LINUX_CLUT224=y
> diff --git a/target/linux/brcm2708/bcm2709/config-4.1 b/target/linux/brcm2708/bcm2709/config-4.1
> index 8eb98af..866d648 100644
> --- a/target/linux/brcm2708/bcm2709/config-4.1
> +++ b/target/linux/brcm2708/bcm2709/config-4.1
> @@ -237,7 +237,7 @@ CONFIG_KERNEL_GZIP=y
>  # CONFIG_KERNEL_XZ is not set
>  # CONFIG_LCD_CLASS_DEVICE is not set
>  CONFIG_LEDS_GPIO=y
> -# CONFIG_LEDS_TRIGGER_INPUT is not set
> +CONFIG_LEDS_TRIGGER_INPUT=y
>  CONFIG_LIBFDT=y
>  CONFIG_LOCK_SPIN_ON_OWNER=y
>  CONFIG_LOGO=y
>
Álvaro Fernández Rojas Nov. 21, 2015, 6:48 p.m. UTC | #2
Sure, I will rework this as soon as I can.

Regards,
Álvaro.

El 21/11/2015 a las 9:45, John Crispin escribió:
> Hi,
>
> do you have time to rework this code to make use of the new board
> detection layer ? i am currently starting to convert all targets to it.
> would be a shame if we add this ode just to replace it again in a few weeks.
>
> 	John
>
> On 19/11/2015 19:18, Álvaro Fernández Rojas wrote:
>> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
>> ---
>> v2: device tree model needs Rev to avoid detecting a B+ as a B model
>>
>>   target/linux/brcm2708/base-files.mk                |  3 ++
>>   target/linux/brcm2708/base-files/etc/diag.sh       | 12 ++++++-
>>   .../base-files/etc/uci-defaults/02_network         | 12 +++++--
>>   target/linux/brcm2708/base-files/lib/brcm2708.sh   | 41 ++++++++++++++++++++++
>>   .../lib/preinit/03_preinit_do_brcm2708.sh          | 10 ++++++
>>   .../lib/preinit/05_set_preinit_iface_brcm2708      | 18 ++++++++++
>>   target/linux/brcm2708/bcm2708/config-4.1           |  2 +-
>>   target/linux/brcm2708/bcm2709/config-4.1           |  2 +-
>>   8 files changed, 95 insertions(+), 5 deletions(-)
>>   create mode 100644 target/linux/brcm2708/base-files.mk
>>   create mode 100644 target/linux/brcm2708/base-files/lib/brcm2708.sh
>>   create mode 100644 target/linux/brcm2708/base-files/lib/preinit/03_preinit_do_brcm2708.sh
>>   create mode 100644 target/linux/brcm2708/base-files/lib/preinit/05_set_preinit_iface_brcm2708
>>
>> diff --git a/target/linux/brcm2708/base-files.mk b/target/linux/brcm2708/base-files.mk
>> new file mode 100644
>> index 0000000..fdd2c71
>> --- /dev/null
>> +++ b/target/linux/brcm2708/base-files.mk
>> @@ -0,0 +1,3 @@
>> +define Package/base-files/install-target
>> +	rm -f $(1)/etc/config/network
>> +endef
>> diff --git a/target/linux/brcm2708/base-files/etc/diag.sh b/target/linux/brcm2708/base-files/etc/diag.sh
>> index 55e68b1..3a8dc86 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
>> index e7e35c5..1bb05b6 100644
>> --- a/target/linux/brcm2708/base-files/etc/uci-defaults/02_network
>> +++ b/target/linux/brcm2708/base-files/etc/uci-defaults/02_network
>> @@ -1,14 +1,22 @@
>>   #!/bin/sh
>> -# Copyright (C) 2014 OpenWrt.org
>> +# Copyright (C) 2014-2015 OpenWrt.org
>>   
>>   [ -e /etc/config/network ] && exit 0
>>   
>>   touch /etc/config/network
>>   
>>   . /lib/functions/uci-defaults.sh
>> +. /lib/brcm2708.sh
>>   
>>   ucidef_set_interface_loopback
>> -ucidef_set_interface_lan "eth0"
>> +
>> +case "$(brcm2708_board_name)" in
>> +rpi-b |\
>> +rpi-b-plus |\
>> +rpi-2-b)
>> +	ucidef_set_interface_lan "eth0"
>> +	;;
>> +esac
>>   
>>   uci commit network
>>   
>> 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 0000000..7d6e458
>> --- /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 0000000..2943648
>> --- /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 0000000..154b01c
>> --- /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
>> diff --git a/target/linux/brcm2708/bcm2708/config-4.1 b/target/linux/brcm2708/bcm2708/config-4.1
>> index 055caa9..82ae7b3 100644
>> --- a/target/linux/brcm2708/bcm2708/config-4.1
>> +++ b/target/linux/brcm2708/bcm2708/config-4.1
>> @@ -225,7 +225,7 @@ CONFIG_KERNEL_GZIP=y
>>   # CONFIG_KERNEL_XZ is not set
>>   # CONFIG_LCD_CLASS_DEVICE is not set
>>   CONFIG_LEDS_GPIO=y
>> -# CONFIG_LEDS_TRIGGER_INPUT is not set
>> +CONFIG_LEDS_TRIGGER_INPUT=y
>>   CONFIG_LIBFDT=y
>>   CONFIG_LOGO=y
>>   CONFIG_LOGO_LINUX_CLUT224=y
>> diff --git a/target/linux/brcm2708/bcm2709/config-4.1 b/target/linux/brcm2708/bcm2709/config-4.1
>> index 8eb98af..866d648 100644
>> --- a/target/linux/brcm2708/bcm2709/config-4.1
>> +++ b/target/linux/brcm2708/bcm2709/config-4.1
>> @@ -237,7 +237,7 @@ CONFIG_KERNEL_GZIP=y
>>   # CONFIG_KERNEL_XZ is not set
>>   # CONFIG_LCD_CLASS_DEVICE is not set
>>   CONFIG_LEDS_GPIO=y
>> -# CONFIG_LEDS_TRIGGER_INPUT is not set
>> +CONFIG_LEDS_TRIGGER_INPUT=y
>>   CONFIG_LIBFDT=y
>>   CONFIG_LOCK_SPIN_ON_OWNER=y
>>   CONFIG_LOGO=y
>>
diff mbox

Patch

diff --git a/target/linux/brcm2708/base-files.mk b/target/linux/brcm2708/base-files.mk
new file mode 100644
index 0000000..fdd2c71
--- /dev/null
+++ b/target/linux/brcm2708/base-files.mk
@@ -0,0 +1,3 @@ 
+define Package/base-files/install-target
+	rm -f $(1)/etc/config/network
+endef
diff --git a/target/linux/brcm2708/base-files/etc/diag.sh b/target/linux/brcm2708/base-files/etc/diag.sh
index 55e68b1..3a8dc86 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
index e7e35c5..1bb05b6 100644
--- a/target/linux/brcm2708/base-files/etc/uci-defaults/02_network
+++ b/target/linux/brcm2708/base-files/etc/uci-defaults/02_network
@@ -1,14 +1,22 @@ 
 #!/bin/sh
-# Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2014-2015 OpenWrt.org
 
 [ -e /etc/config/network ] && exit 0
 
 touch /etc/config/network
 
 . /lib/functions/uci-defaults.sh
+. /lib/brcm2708.sh
 
 ucidef_set_interface_loopback
-ucidef_set_interface_lan "eth0"
+
+case "$(brcm2708_board_name)" in
+rpi-b |\
+rpi-b-plus |\
+rpi-2-b)
+	ucidef_set_interface_lan "eth0"
+	;;
+esac
 
 uci commit network
 
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 0000000..7d6e458
--- /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 0000000..2943648
--- /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 0000000..154b01c
--- /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
diff --git a/target/linux/brcm2708/bcm2708/config-4.1 b/target/linux/brcm2708/bcm2708/config-4.1
index 055caa9..82ae7b3 100644
--- a/target/linux/brcm2708/bcm2708/config-4.1
+++ b/target/linux/brcm2708/bcm2708/config-4.1
@@ -225,7 +225,7 @@  CONFIG_KERNEL_GZIP=y
 # CONFIG_KERNEL_XZ is not set
 # CONFIG_LCD_CLASS_DEVICE is not set
 CONFIG_LEDS_GPIO=y
-# CONFIG_LEDS_TRIGGER_INPUT is not set
+CONFIG_LEDS_TRIGGER_INPUT=y
 CONFIG_LIBFDT=y
 CONFIG_LOGO=y
 CONFIG_LOGO_LINUX_CLUT224=y
diff --git a/target/linux/brcm2708/bcm2709/config-4.1 b/target/linux/brcm2708/bcm2709/config-4.1
index 8eb98af..866d648 100644
--- a/target/linux/brcm2708/bcm2709/config-4.1
+++ b/target/linux/brcm2708/bcm2709/config-4.1
@@ -237,7 +237,7 @@  CONFIG_KERNEL_GZIP=y
 # CONFIG_KERNEL_XZ is not set
 # CONFIG_LCD_CLASS_DEVICE is not set
 CONFIG_LEDS_GPIO=y
-# CONFIG_LEDS_TRIGGER_INPUT is not set
+CONFIG_LEDS_TRIGGER_INPUT=y
 CONFIG_LIBFDT=y
 CONFIG_LOCK_SPIN_ON_OWNER=y
 CONFIG_LOGO=y