Patchwork mkefidisk.sh: Allow using a loopback mounted file

login
register
mail settings
Submitter Jason Wessel
Date Sept. 26, 2013, 10:34 p.m.
Message ID <1380234850-27169-1-git-send-email-jason.wessel@windriver.com>
Download mbox | patch
Permalink /patch/59047/
State New
Headers show

Comments

Jason Wessel - Sept. 26, 2013, 10:34 p.m.
There is no reason not allow writing of direct boot disk images for
testing with simulators.  The easy way is to add loop back writing
capabilities.

Example:
  qemu-img create -f raw bigdisk 4G
  dev=`sudo losetup -f`
  sudo losetup $dev bigdisk
  mkefidisk.sh $dev tmp-eglibc/deploy/images/qemux86/core-image-minimal-qemux86.hddimg /dev/sda
  sudo losetup -d $dev

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
---
 scripts/contrib/mkefidisk.sh |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
Darren Hart - Sept. 26, 2013, 10:45 p.m.
On Thu, 2013-09-26 at 17:34 -0500, Jason Wessel wrote:
> There is no reason not allow writing of direct boot disk images for

Nit:                    ^ to

> testing with simulators.  The easy way is to add loop back writing
> capabilities.


Just note here that the /dev/loop device has the same partition prefix
as mmc devices and requires special mkfs arguments.

> Example:
>   qemu-img create -f raw bigdisk 4G
>   dev=`sudo losetup -f`
>   sudo losetup $dev bigdisk
>   mkefidisk.sh $dev tmp-eglibc/deploy/images/qemux86/core-image-minimal-qemux86.hddimg /dev/sda
>   sudo losetup -d $dev
> 
> Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
> ---
>  scripts/contrib/mkefidisk.sh |    9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/contrib/mkefidisk.sh b/scripts/contrib/mkefidisk.sh
> index af06b4b..224a146 100755
> --- a/scripts/contrib/mkefidisk.sh
> +++ b/scripts/contrib/mkefidisk.sh
> @@ -142,7 +142,7 @@ SWAP_START=$((ROOTFS_END))
>  
>  # MMC devices use a partition prefix character 'p'
>  PART_PREFIX=""
> -if [ ! "${DEVICE#/dev/mmcblk}" = "${DEVICE}" ]; then
> +if [ ! "${DEVICE#/dev/mmcblk}" = "${DEVICE}" ] || [ ! "${TARGET_DEVICE#/dev/loop}" = "${DEVICE}" ]; then

I think you meant to use "${DEVICE#/dev/loop}" here? Not TARGET_DEVICE?

--
Darren

>  	PART_PREFIX="p"
>  fi
>  BOOTFS=$DEVICE${PART_PREFIX}1
> @@ -197,7 +197,12 @@ unmount_device
>  #
>  echo ""
>  echo "Formatting $BOOTFS as vfat..."
> -mkfs.vfat $BOOTFS -n "efi"
> +if [ ! "${DEVICE#/dev/loop}" = "${DEVICE}" ]; then
> +	mkfs.vfat -I $BOOTFS -n "efi"
> +else
> +	mkfs.vfat $BOOTFS -n "efi"
> +
> +fi
>  
>  echo "Formatting $ROOTFS as ext3..."
>  mkfs.ext3 $ROOTFS -L "root"
Jason Wessel - Sept. 26, 2013, 10:59 p.m.
On 09/26/2013 05:45 PM, Darren Hart wrote:
> On Thu, 2013-09-26 at 17:34 -0500, Jason Wessel wrote:
>> There is no reason not allow writing of direct boot disk images for
> Nit:                    ^ to
>
>> testing with simulators.  The easy way is to add loop back writing
>> capabilities.
>
> Just note here that the /dev/loop device has the same partition prefix
> as mmc devices and requires special mkfs arguments.
>
>> Example:
>>   qemu-img create -f raw bigdisk 4G
>>   dev=`sudo losetup -f`
>>   sudo losetup $dev bigdisk
>>   mkefidisk.sh $dev tmp-eglibc/deploy/images/qemux86/core-image-minimal-qemux86.hddimg /dev/sda
>>   sudo losetup -d $dev
>>
>> Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
>> ---
>>  scripts/contrib/mkefidisk.sh |    9 +++++++--
>>  1 file changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/scripts/contrib/mkefidisk.sh b/scripts/contrib/mkefidisk.sh
>> index af06b4b..224a146 100755
>> --- a/scripts/contrib/mkefidisk.sh
>> +++ b/scripts/contrib/mkefidisk.sh
>> @@ -142,7 +142,7 @@ SWAP_START=$((ROOTFS_END))
>>  
>>  # MMC devices use a partition prefix character 'p'
>>  PART_PREFIX=""
>> -if [ ! "${DEVICE#/dev/mmcblk}" = "${DEVICE}" ]; then
>> +if [ ! "${DEVICE#/dev/mmcblk}" = "${DEVICE}" ] || [ ! "${TARGET_DEVICE#/dev/loop}" = "${DEVICE}" ]; then
> I think you meant to use "${DEVICE#/dev/loop}" here? Not TARGET_DEVICE?


Right you are.   It worked by accident eh?

I'll send another patch.

Jason.


>
> --
> Darren
>
>>  	PART_PREFIX="p"
>>  fi
>>  BOOTFS=$DEVICE${PART_PREFIX}1
>> @@ -197,7 +197,12 @@ unmount_device
>>  #
>>  echo ""
>>  echo "Formatting $BOOTFS as vfat..."
>> -mkfs.vfat $BOOTFS -n "efi"
>> +if [ ! "${DEVICE#/dev/loop}" = "${DEVICE}" ]; then
>> +	mkfs.vfat -I $BOOTFS -n "efi"
>> +else
>> +	mkfs.vfat $BOOTFS -n "efi"
>> +
>> +fi
>>  
>>  echo "Formatting $ROOTFS as ext3..."
>>  mkfs.ext3 $ROOTFS -L "root"

Patch

diff --git a/scripts/contrib/mkefidisk.sh b/scripts/contrib/mkefidisk.sh
index af06b4b..224a146 100755
--- a/scripts/contrib/mkefidisk.sh
+++ b/scripts/contrib/mkefidisk.sh
@@ -142,7 +142,7 @@  SWAP_START=$((ROOTFS_END))
 
 # MMC devices use a partition prefix character 'p'
 PART_PREFIX=""
-if [ ! "${DEVICE#/dev/mmcblk}" = "${DEVICE}" ]; then
+if [ ! "${DEVICE#/dev/mmcblk}" = "${DEVICE}" ] || [ ! "${TARGET_DEVICE#/dev/loop}" = "${DEVICE}" ]; then
 	PART_PREFIX="p"
 fi
 BOOTFS=$DEVICE${PART_PREFIX}1
@@ -197,7 +197,12 @@  unmount_device
 #
 echo ""
 echo "Formatting $BOOTFS as vfat..."
-mkfs.vfat $BOOTFS -n "efi"
+if [ ! "${DEVICE#/dev/loop}" = "${DEVICE}" ]; then
+	mkfs.vfat -I $BOOTFS -n "efi"
+else
+	mkfs.vfat $BOOTFS -n "efi"
+
+fi
 
 echo "Formatting $ROOTFS as ext3..."
 mkfs.ext3 $ROOTFS -L "root"