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 <nolt...@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 > _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel