summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2009-08-13 00:07:42 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2009-08-13 00:07:42 +0200
commit7a265338683b6e8100d34eda6e04b113ceba0e7f (patch)
tree4f818a92c394c3247e398541a24367e553ea2885
parenta206070dd67744e3be5c54c80ed9dc00f55c28cb (diff)
enable cfgfs for rb532
- choose backend at runtime - do not hardcode partition device anymore
-rw-r--r--package/cfgfs/Config.in3
-rw-r--r--package/cfgfs/Makefile11
-rw-r--r--package/cfgfs/src/fwcf.sh41
3 files changed, 36 insertions, 19 deletions
diff --git a/package/cfgfs/Config.in b/package/cfgfs/Config.in
index 78051901b..e3412a458 100644
--- a/package/cfgfs/Config.in
+++ b/package/cfgfs/Config.in
@@ -4,7 +4,8 @@ config ADK_PACKAGE_CFGFS
select BUSYBOX_COMM
select BUSYBOX_MD5SUM
select BUSYBOX_FEATURE_SORT_BIG
- depends on ADK_LINUX_X86_ALIX1C || ADK_LINUX_CRIS_FOXBOARD
+ depends on ADK_LINUX_X86_ALIX1C || ADK_LINUX_CRIS_FOXBOARD || \
+ ADK_LINUX_MIPS_RB532
default y
help
Adopted from FreeWRT fwcf
diff --git a/package/cfgfs/Makefile b/package/cfgfs/Makefile
index 1485cb9d9..790f536fc 100644
--- a/package/cfgfs/Makefile
+++ b/package/cfgfs/Makefile
@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= cfgfs
PKG_VERSION:= 1.0.6
-PKG_RELEASE:= 2
+PKG_RELEASE:= 3
PKG_DESCR:= compressed config filesystem
PKG_SECTION:= base
@@ -27,14 +27,5 @@ do-install:
${INSTALL_DIR} ${IDIR_CFGFS}/sbin
${INSTALL_BIN} ${WRKBUILD}/fwcf.sh ${IDIR_CFGFS}/sbin/cfgfs
${INSTALL_BIN} ${WRKBUILD}/fwcf.helper.out ${IDIR_CFGFS}/sbin/cfgfs.helper
-ifeq ($(ARCH),cris)
- ${INSTALL_BIN} ${WRKBUILD}/mtd ${IDIR_CFGFS}/sbin/mtd
- echo '#!/bin/sh' > ${IDIR_CFGFS}/sbin/cfgfs.write
- echo 'mtd -F write - cfgfs' >> ${IDIR_CFGFS}/sbin/cfgfs.write
-else
- echo '#!/bin/sh' > ${IDIR_CFGFS}/sbin/cfgfs.write
- echo 'cat > /dev/sda2' >> ${IDIR_CFGFS}/sbin/cfgfs.write
-endif
- chmod 755 ${IDIR_CFGFS}/sbin/cfgfs.write
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/cfgfs/src/fwcf.sh b/package/cfgfs/src/fwcf.sh
index fcaaf80a0..84eef3780 100644
--- a/package/cfgfs/src/fwcf.sh
+++ b/package/cfgfs/src/fwcf.sh
@@ -114,10 +114,12 @@ EOF
esac
# find backend device, first try to find partition with ID 88
+mtd=0
part=$(fdisk -l|awk '$5 == 88 { print $1 }')
if [ -z $part ]; then
# otherwise search for MTD device with name cfgfs
part=/dev/mtd$(fgrep '"cfgfs"' /proc/mtd 2>/dev/null | sed 's/^mtd\([^:]*\):.*$/\1/')ro
+ mtd=1
fi
if [[ ! -e $part ]]; then
@@ -127,7 +129,11 @@ fi
if test $1 = erase; then
dd if="$part" 2>&1 | md5sum 2>&1 >/dev/urandom
- cfgfs.helper -Me | cfgfs.write
+ if [ $mtd -eq 1 ]; then
+ cfgfs.helper -Me | mtd -F write - cfgfs
+ else
+ cfgfs.helper -Me | cat > $part
+ fi
exit $?
fi
@@ -153,7 +159,12 @@ if test $1 = setup; then
unclean=2
else
x=$(dd if="$part" bs=4 count=1 2>/dev/null)
- [[ "$x" = "FWCF" ]] || cfgfs.helper -Me | cfgfs.write
+ [[ "$x" = "FWCF" ]] || \
+ if [ $mtd -eq 1 ]; then
+ cfgfs.helper -Me | mtd -F write - cfgfs
+ else
+ cfgfs.helper -Me | cat > $part
+ fi
if ! cfgfs.helper -U /tmp/.cfgfs/temp <"$part"; then
unclean=1
echo 'cfgfs: error: cannot extract'
@@ -246,9 +257,16 @@ if test $1 = commit; then
[[ "$x" = "$y" ]] && rm "../temp/$f"
done
rv=0
- if ! ( cfgfs.helper -M /tmp/.cfgfs/temp | cfgfs.write ); then
- echo 'cfgfs: error: cannot write to $part!'
- rv=6
+ if [ $mtd -eq 1 ]; then
+ if ! ( cfgfs.helper -M /tmp/.cfgfs/temp | mtd -F write - cfgfs ); then
+ echo 'cfgfs: error: cannot write to $part!'
+ rv=6
+ fi
+ else
+ if ! ( cfgfs.helper -M /tmp/.cfgfs/temp | cat > $part ); then
+ echo 'cfgfs: error: cannot write to $part!'
+ rv=6
+ fi
fi
umount /tmp/.cfgfs/temp
exit $rv
@@ -368,9 +386,16 @@ if test $1 = restore; then
rm -rf /tmp/.cfgfs.restore
exit 12
fi
- if ! ( cfgfs.helper -MD dump | cfgfs.write ); then
- echo 'cfgfs: error: cannot write to $part!'
- exit 6
+ if [ $mtd -eq 1 ]; then
+ if ! ( cfgfs.helper -MD dump | mtd -F write - cfgfs ); then
+ echo 'cfgfs: error: cannot write to $part!'
+ exit 6
+ fi
+ else
+ if ! ( cfgfs.helper -MD dump | cat > $part ); then
+ echo 'cfgfs: error: cannot write to $part!'
+ exit 6
+ fi
fi
cd /
rm -rf /tmp/.cfgfs.restore