Re: [PATCH] boot-directdisk: mount root by MBR disk signature for Linux 3.8+

Darren Hart
2013-06-10T16:26:40Z

On 06/08/2013 06:03 AM, Jonathan Liu wrote:
> Hi Darren,
>

>>> + sed -i "s|\broot=[^ ]*|root=PARTUUID=$DISK_SIGNATURE-02|" $HDDDIR/syslinux.cfg
>> In bootimg.bbclass I have been abstracting out the boot loader so it is
>> not explicitly referenced. Something like that is in order here. For
>> example, an EFI boot-directdisk (which admittedly doesn't exist yet)
>> would not have a syslinux.cfg but would still need the change. Consider
>> using the syslinux class to abstract this necessary change. Then I can
>> add the gummiboot change when EFI support is added.
> Do you mean adding a function to the syslinux class which updates root=
> in syslinux.cfg previously created by build_syslinux_cfg()?

In the words of a wise director at a large technology company, "I meant
whatever is the most intelligent." :-)

This could be a new function in syslinux.bbclass. It could also be a
parameter to build_syslinux_cfg which would allow it to be used from
either bootimg.bbclass, boot-directdisk.bbclass, with or without EFI,
with various kernel versions, etc. I suspect some parameterization will
result in the cleanest, most maintainable approach, but investigation is
required.

Thanks!

Darren

>
>> --
>> Darren
>>
>>> + fi
>>> +
>>> mkdosfs -n ${BOOTDD_VOLUME_ID} -S 512 -C $HDDIMG $BLOCKS
>>> mcopy -i $HDDIMG -s $HDDDIR/* ::/
>>>
>>> @@ -71,10 +88,8 @@ build_boot_dd() {
>>> END3=`expr \( $ROOTFSBLOCKS \* 1024 \) + $END1`
>>>
>>> echo $ROOTFSBLOCKS $TOTALSIZE $END1 $END2 $END3
>>> - rm -rf $IMAGE
>>> dd if=/dev/zero of=$IMAGE bs=1024 seek=$TOTALSIZE count=1
>>>
>>> - parted $IMAGE mklabel msdos
>>> parted $IMAGE mkpart primary fat16 0 ${END1}B
>>> parted $IMAGE unit B mkpart primary ext2 ${END2}B ${END3}B
>>> parted $IMAGE set 1 boot on
>>>
> Regards,
> Jonathan
>

--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Technical Lead - Linux Kernel