| Submitter | Saul Wold |
|---|---|
| Date | March 26, 2012, 6:47 a.m. |
| Message ID | <364f6a61d06cecb52e21639dc69f292a4b8a3591.1332744104.git.sgw@linux.intel.com> |
| Download | mbox | patch |
| Permalink | /patch/24503/ |
| State | Accepted |
| Commit | 53ae1737611e10e7fef815e8fde9e22165aa1047 |
| Headers | show |
Comments
On 03/25/2012 11:47 PM, Saul Wold wrote: > This also changes the timeout to be settable > > The block calcuation was not correctly rounding, see comment > > Thanks to Darren Hart for fixing this. > > Cc: Darren Hart <dvhart@linux.intel.com> Thanks, but be sure to use the option to get that added to actual email header :-) That's "-c" for the send-pull-request script. -- Darren > Signed-off-by: Saul Wold <sgw@linux.intel.com> > --- > meta/classes/boot-directdisk.bbclass | 19 +++++++++++++------ > 1 files changed, 13 insertions(+), 6 deletions(-) > > diff --git a/meta/classes/boot-directdisk.bbclass b/meta/classes/boot-directdisk.bbclass > index 893164f..e9e1ba3 100644 > --- a/meta/classes/boot-directdisk.bbclass > +++ b/meta/classes/boot-directdisk.bbclass > @@ -37,9 +37,8 @@ BOOTDD_EXTRA_SPACE ?= "16384" > # Get the build_syslinux_cfg() function from the syslinux class > > AUTO_SYSLINUXCFG = "1" > -LABELS = "boot" > SYSLINUX_ROOT ?= "root=/dev/sda2" > -SYSLINUX_TIMEOUT = "10" # 1 second > +SYSLINUX_TIMEOUT ?= "10" > > SYSLINUXCFG = "${HDDDIR}/syslinux.cfg" > SYSLINUXMENU = "${HDDDIR}/menu" > @@ -55,15 +54,23 @@ build_boot_dd() { > install -m 444 ${STAGING_LIBDIR}/syslinux/ldlinux.sys ${HDDDIR}/ldlinux.sys > > BLOCKS=`du -bks ${HDDDIR} | cut -f 1` > - SIZE=`expr $BLOCKS + ${BOOTDD_EXTRA_SPACE}` > + BLOCKS=`expr $BLOCKS + ${BOOTDD_EXTRA_SPACE}` > + > + # Ensure total sectors is an integral number of sectors per > + # track or mcopy will complain. Sectors are 512 bytes, and we > + # generate images with 32 sectors per track. This calculation is > + # done in blocks, thus the mod by 16 instead of 32. > + BLOCKS=$(expr $BLOCKS + $(expr 16 - $(expr $BLOCKS % 16))) > + > + mkdosfs -n ${BOOTDD_VOLUME_ID} -S 512 -C ${HDDIMG} $BLOCKS > + mcopy -i ${HDDIMG} -s ${HDDDIR}/* ::/ > > - mkdosfs -n ${BOOTDD_VOLUME_ID} -d ${HDDDIR} -C ${HDDIMG} $SIZE > syslinux ${HDDIMG} > chmod 644 ${HDDIMG} > > ROOTFSBLOCKS=`du -Lbks ${ROOTFS} | cut -f 1` > - TOTALSIZE=`expr $SIZE + $ROOTFSBLOCKS` > - END1=`expr $SIZE \* 1024` > + TOTALSIZE=`expr $BLOCKS + $ROOTFSBLOCKS` > + END1=`expr $BLOCKS \* 1024` > END2=`expr $END1 + 512` > END3=`expr \( $ROOTFSBLOCKS \* 1024 \) + $END1` >
Patch
diff --git a/meta/classes/boot-directdisk.bbclass b/meta/classes/boot-directdisk.bbclass index 893164f..e9e1ba3 100644 --- a/meta/classes/boot-directdisk.bbclass +++ b/meta/classes/boot-directdisk.bbclass @@ -37,9 +37,8 @@ BOOTDD_EXTRA_SPACE ?= "16384" # Get the build_syslinux_cfg() function from the syslinux class AUTO_SYSLINUXCFG = "1" -LABELS = "boot" SYSLINUX_ROOT ?= "root=/dev/sda2" -SYSLINUX_TIMEOUT = "10" # 1 second +SYSLINUX_TIMEOUT ?= "10" SYSLINUXCFG = "${HDDDIR}/syslinux.cfg" SYSLINUXMENU = "${HDDDIR}/menu" @@ -55,15 +54,23 @@ build_boot_dd() { install -m 444 ${STAGING_LIBDIR}/syslinux/ldlinux.sys ${HDDDIR}/ldlinux.sys BLOCKS=`du -bks ${HDDDIR} | cut -f 1` - SIZE=`expr $BLOCKS + ${BOOTDD_EXTRA_SPACE}` + BLOCKS=`expr $BLOCKS + ${BOOTDD_EXTRA_SPACE}` + + # Ensure total sectors is an integral number of sectors per + # track or mcopy will complain. Sectors are 512 bytes, and we + # generate images with 32 sectors per track. This calculation is + # done in blocks, thus the mod by 16 instead of 32. + BLOCKS=$(expr $BLOCKS + $(expr 16 - $(expr $BLOCKS % 16))) + + mkdosfs -n ${BOOTDD_VOLUME_ID} -S 512 -C ${HDDIMG} $BLOCKS + mcopy -i ${HDDIMG} -s ${HDDDIR}/* ::/ - mkdosfs -n ${BOOTDD_VOLUME_ID} -d ${HDDDIR} -C ${HDDIMG} $SIZE syslinux ${HDDIMG} chmod 644 ${HDDIMG} ROOTFSBLOCKS=`du -Lbks ${ROOTFS} | cut -f 1` - TOTALSIZE=`expr $SIZE + $ROOTFSBLOCKS` - END1=`expr $SIZE \* 1024` + TOTALSIZE=`expr $BLOCKS + $ROOTFSBLOCKS` + END1=`expr $BLOCKS \* 1024` END2=`expr $END1 + 512` END3=`expr \( $ROOTFSBLOCKS \* 1024 \) + $END1`
This also changes the timeout to be settable The block calcuation was not correctly rounding, see comment Thanks to Darren Hart for fixing this. Cc: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> --- meta/classes/boot-directdisk.bbclass | 19 +++++++++++++------ 1 files changed, 13 insertions(+), 6 deletions(-)