This adds an init-script for generating /etc/fw_env.config from UCI in case it
doesn't exist yet.

I also made the creation of the fw_set-symlink option, so it can be disabled in
user-builds so only people who know what they are doing will mess with uboot-env

Ah, and zlib is a build-dependency, but in runtime zlib is not required, see
root@OpenWrt:/# ldd /usr/sbin/fw_printenv 
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2abb2000)
        libc.so.0 => /lib/libc.so.0 (0x2abd4000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2ab9a000)

I therefore made it PKG_BUILD_DEPENDS instead of PKG_DEPENDS.

Signed-off-by: Daniel Golle <dgo...@allnet.de>

Index: package/uboot-envtools/files/uboot-envtools.init
===================================================================
--- package/uboot-envtools/files/uboot-envtools.init    (revision 0)
+++ package/uboot-envtools/files/uboot-envtools.init    (revision 0)
@@ -0,0 +1,31 @@
+#!/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
+
+       cat >/etc/fw_env.config <<EOF
+# MTD device name      Device offset   Env. size       Flash sector size       
Number of sectors
+$dev           $offset         $envsize                $secsize                
$numsec
+EOF
+}
+
+start() {
+       [ ! -e /etc/fw_env.config ] && {
+               config_load ubootenv
+               config_foreach create_fwenv_config ubootenv
+       }
+}

Property changes on: package/uboot-envtools/files/uboot-envtools.init
___________________________________________________________________
Added: svn:executable
   + *

Index: package/uboot-envtools/Makefile
===================================================================
--- package/uboot-envtools/Makefile     (revision 28625)
+++ package/uboot-envtools/Makefile     (working copy)
@@ -10,7 +10,7 @@
 PKG_NAME:=uboot-envtools
 PKG_DISTNAME:=u-boot
 PKG_VERSION:=2011.06
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_DISTNAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=ftp://ftp.denx.de/pub/u-boot
@@ -24,18 +24,27 @@
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=read/modify U-Boot bootloader environment
-  DEPENDS:= +zlib
   URL:=http://www.denx.de/wiki/U-Boot
+  PKG_BUILD_DEPENDS:=zlib
 endef
 
 define Package/uboot-envtools/description
  This package includes tools to read and modify U-Boot bootloader environment.
 endef
 
+define Package/uboot-envtools/config
+        config PACKAGE_uboot-envtools_setenv_symlink
+                bool "create fw_setenv symlink (write support)"
+endef
+
 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
+ifneq ($(CONFIG_PACKAGE_uboot-envtools_setenv_symlink),)
+       ln -s fw_printenv $(1)/usr/sbin/fw_setenv
+endif
 endef
 
 define Build/Prepare
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to