[yocto] [PATCH 1/2] initrdscripts: fix init-live.sh and use unionfs

Yang Shi yang.shi at windriver.com
Mon Apr 9 11:33:04 PDT 2012


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.shi at 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
>>   }




More information about the yocto mailing list