On 4/9/2012 9:35 AM, Darren Hart wrote:

On 03/26/2012 02:19 PM, Yang Shi wrote:
[YOCTO #1487]

Use unionfs to mount rootfs and make root file system can be writen when using 
liveCD to boot up.
Set UNION_FS variable depending on kenrel config, so that it can work with 
kernel which doesn't
s/kenrel/kernel/

have unionfs feature.
This doesn't explain what the problem was. Someone reading this commit
message would not know WHY this change was needed.

The approach looks good though. Minor spelling issues below...

OK, thanks Darren. I will refine the log and fix the spelling errors soon.

Yang


Signed-off-by: Yang Shi<yang....@windriver.com>
---
  meta/recipes-core/initrdscripts/files/init-live.sh |   21 +++++++++++++++++--
  .../initrdscripts/initramfs-live-boot_1.0.bb       |    9 +++++++-
  2 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/meta/recipes-core/initrdscripts/files/init-live.sh 
b/meta/recipes-core/initrdscripts/files/init-live.sh
index eb5ab5b..abaf16c 100644
--- a/meta/recipes-core/initrdscripts/files/init-live.sh
+++ b/meta/recipes-core/initrdscripts/files/init-live.sh
@@ -7,6 +7,7 @@ ROOT_IMAGE="rootfs.img"
  MOUNT="/bin/mount"
  UMOUNT="/bin/umount"
  ISOLINUX=""
+UNIONFS="no"

  early_setup() {
      mkdir /proc
@@ -89,10 +90,24 @@ case $label in
        mkdir $ROOT_MOUNT
        mknod /dev/loop0 b 7 0 2>/dev/null

-       if ! $MOUNT -o rw,loop,noatime,nodiratime 
/media/$i/$ISOLINUX/$ROOT_IMAGE $ROOT_MOUNT ; then
-           fatal "Couldnt mount rootfs image"
s/Couldnt/Could not/

+       
+       if [ "$UNIONFS" = "yes" ]; then
+           mkdir /rootfs-tmp
+
+           if ! $MOUNT -o rw,loop,noatime,nodiratime 
/media/$i/$ISOLINUX/$ROOT_IMAGE /rootfs-tmp ; then
+               fatal "Couldnt mount rootfs image"
s/Couldnt/Could not/

+           else
+               mkdir /cow
+               mount -t tmpfs -o rw,noatime,mode=755 tmpfs /cow
+               mount -t unionfs -o dirs=/cow:/rootfs-tmp=ro unionfs $ROOT_MOUNT
+               boot_live_root
+           fi
        else
-           boot_live_root
+           if ! $MOUNT -o rw,loop,noatime,nodiratime 
/media/$i/$ISOLINUX/$ROOT_IMAGE $ROOT_MOUNT ; then
+               fatal "Couldnt mount rootfs image"
s/Couldnt/Could not/

+           else
+               boot_live_root
+           fi
        fi
        ;;
      install)
diff --git a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb 
b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
index e85a0e1..f7f0c9d 100644
--- a/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
+++ b/meta/recipes-core/initrdscripts/initramfs-live-boot_1.0.bb
@@ -2,10 +2,17 @@ DESCRIPTION = "A live image init script"
  LICENSE = "MIT"
  LIC_FILES_CHKSUM = 
"file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
  RDEPENDS = "udev"
+DEPENDS = "virtual/kernel"
  SRC_URI = "file://init-live.sh"

-PR = "r7"
+PR = "r8"

+do_compile() {
+       if grep -q "CONFIG_UNION_FS=y" ${STAGING_KERNEL_DIR}/.config; then
+               sed -i 's/UNIONFS="no"/UNIONFS="yes"/g' ${WORKDIR}/init-live.sh
+       fi
+}
+
  do_install() {
          install -m 0755 ${WORKDIR}/init-live.sh ${D}/init
  }

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to