package/uboot-envtools: generate config-file from UCI
authorGabor Juhos <juhosg@openwrt.org>
Tue, 1 Nov 2011 09:23:28 +0000 (09:23 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Tue, 1 Nov 2011 09:23:28 +0000 (09:23 +0000)
This adds an init-script for generating /etc/fw_env.config from UCI in
case it doesn't exist yet.

Signed-off-by: Daniel Golle <dgolle@allnet.de>
SVN-Revision: 28697

package/uboot-envtools/Makefile
package/uboot-envtools/files/uboot-envtools.init [new file with mode: 0755]

index 600697f1468c1e017fcd3737187fa0ecd37d7296..19aebc215f5cd3aeda1e0ffc976adddd36e89361 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=uboot-envtools
 PKG_DISTNAME:=u-boot
 PKG_VERSION:=2011.06
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_DISTNAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=ftp://ftp.denx.de/pub/u-boot
@@ -36,6 +36,8 @@ define Package/uboot-envtools/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/fw_printenv $(1)/usr/sbin/
        ln -sf fw_printenv $(1)/usr/sbin/fw_setenv
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/uboot-envtools.init $(1)/etc/init.d/uboot-envtools
 endef
 
 define Build/Prepare
diff --git a/package/uboot-envtools/files/uboot-envtools.init b/package/uboot-envtools/files/uboot-envtools.init
new file mode 100755 (executable)
index 0000000..066109b
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh /etc/rc.common
+# (C) 2011 OpenWrt.org
+# Creates /etc/fw_env.conf for fw_printenv (and fw_setenv)
+
+START=80
+
+create_fwenv_config() {
+       local dev
+       local offset
+       local envsize
+       local secsize
+       local numsec
+       config_get dev "$1" dev
+       config_get offset "$1" offset "0x0000"
+       config_get envsize "$1" envsize
+       config_get secsize "$1" secsize
+       config_get numsec "$1" numsec
+       echo "$dev              $offset         $envsize                $secsize                $numsec" >>/etc/fw_env.config
+}
+
+start() {
+       [ ! -e /etc/fw_env.config ] && {
+               echo "# MTD device name Device offset   Env. size       Flash sector size       Number of sectors" >/etc/fw_env.config
+               config_load ubootenv
+               config_foreach create_fwenv_config ubootenv
+       }
+}