On Wed, Dec 10, 2014 at 12:55:28PM -0500, Cooper Jr., Franklin wrote:
> 
> 
> > -----Original Message-----
> > From: [email protected] [mailto:meta-arago-
> > [email protected]] On Behalf Of Dmytriyenko, Denys
> > Sent: Wednesday, December 10, 2014 11:41 AM
> > To: Stiffler, Jacob
> > Cc: [email protected]
> > Subject: Re: [meta-arago] [tisdk-build-scripts][PATCH] package-sdks:
> > Generate the SD Card image.
> > 
> > Jake,
> > 
> > Why invent another method to create an SD card? We've had too many of
> > those already...
> > For example, here's an old but complete one, that Chase and Franklin had in
> > AMSDK and it is still being packaged in our SDKs from ti-tisdk-setup recipe:
> > http://arago-project.org/git/projects/?p=tisdk-setup-
> > scripts.git;a=blob;f=create-sdcard.sh;hb=HEAD
> > 
> > Moreover, under the Yocto Project, there is an effort to provide a
> > standardized tool called "wic" that takes care of creating and partitioning
> > bootable disks and SD cards. The best feature of it is not requiring root or
> > sudo access! I was already looking at it, but it had some bugs in Daisy
> > release, that got fixed in the new release that we'll be migrating to in the
> > near future. And wic tool is planned to be adopted for our SDK products.
> > 
> > So, for now, I'd refrain from creating another custom script to create an SD
> > card...

> [Franklin] So we created an image using the commands that Jake is using in 
> his script due to people still complaining that they can't create an SD Card 
> on Windows. We actually created a manual image as part of the SDK download 
> page for SDK 7.0. However, I am all for using an alternative solution if wic 
> would work. The reason why I never submitted similar patches was due to my 
> dislike of consuming system resources (loop devices) and all the required 
> sudo commands.

I understand those are the same commands, but I was suggesting to try to reuse 
the existing script, especially since it's already part of the SDK. It can be 
modified to accomodate any necessary fixes...


> > On Wed, Dec 10, 2014 at 09:34:09AM -0500, Jacob Stiffler wrote:
> > > Signed-off-by: Jacob Stiffler <[email protected]>
> > > ---
> > >  lib/oesdk/package-sdks |   82
> > ++++++++++++++++++++++++++++++++++++++++++++++++
> > >  1 file changed, 82 insertions(+)
> > >
> > > diff --git a/lib/oesdk/package-sdks b/lib/oesdk/package-sdks
> > > index 31a44b6..dc3eb13 100644
> > > --- a/lib/oesdk/package-sdks
> > > +++ b/lib/oesdk/package-sdks
> > > @@ -9,6 +9,84 @@ then
> > >      exit 1
> > >  fi
> > >
> > > +create_sd_card_img() {
> > > +    m="$1"
> > > +
> > > +    sd_card_img_file="${m}-${TISDK_VERSION}.img"
> > > +
> > > +    # Make the machine specific SD card directory
> > > +    sd_card_img_root="$DEPLOY_ROOT/$m/$BUILD_ID/sd_card_img"
> > > +
> > > +    if [ -d $sd_card_img_root ]
> > > +    then
> > > +        rm -rf $sd_card_img_root
> > > +    fi
> > > +    mkdir -p $sd_card_img_root
> > > +
> > > +    cd $sd_card_img_root
> > > +
> > > +    ## Create an image file full of zeros
> > > +    dd if=/dev/zero of="${sd_card_img_file}" bs=1024 count=$[2000*1024]
> > > +
> > > +    ## Mount the file to the loopback device
> > > +    sudo losetup /dev/loop0 "${sd_card_img_file}"
> > > +
> > > +    ## Partition the loopback into 2 partitions
> > > +    sudo parted -s /dev/loop0 mklabel msdos
> > > +    sudo parted -s /dev/loop0 unit cyl mkpart primary fat32 -- 0 9
> > > +    sudo parted -s /dev/loop0 set 1  boot on
> > > +    sudo parted -s /dev/loop0 unit cyl mkpart primary ext2 -- 9 -2
> > > +
> > > +    ## Format the partitions with the necessary filesystems
> > > +    sudo mkfs.vfat -F 32 -I -n boot /dev/loop0p1
> > > +    sudo mkfs.ext3 -L rootfs /dev/loop0p2
> > > +
> > > +    ## Use fdisk to get offsets (will need to multiply by blocksize 
> > > (512))
> > > +    sudo fdisk -l ${sd_card_img_file}
> > > +
> > > +    local FDISK_INFO=`sudo fdisk -l "${sd_card_img_file}"`
> > > +
> > > +    local UNIT_SIZE=`echo "$FDISK_INFO" | grep Units | awk '{ print $9 
> > > }'`
> > > +
> > > +    local P1_START=`echo "$FDISK_INFO" | grep "${sd_card_img_file}1" |
> > awk '{ print $3 }'`
> > > +    local P1_END=`echo "$FDISK_INFO" | grep "${sd_card_img_file}1" |
> > awk '{ print $4 }'`
> > > +
> > > +    local P2_START=`echo "$FDISK_INFO" | grep "${sd_card_img_file}2" |
> > awk '{ print $2 }'`
> > > +    local P2_END=`echo "$FDISK_INFO" | grep "${sd_card_img_file}2" |
> > awk '{ print $3 }'`
> > > +
> > > +    ## Unmount the loopback device
> > > +    sudo losetup -d /dev/loop0
> > > +
> > > +    ## Mount the individual partitions of the loopback device for file
> > copying
> > > +    ## The Start (after-o option) and sizelimit numbers come from
> > multiplying the output
> > > +    ## of fdisk above by blocksize (512 in this case) for the appropriate
> > partition.
> > > +    ## 1048576 = 2048 * 512
> > > +    ## 74448384 = 145407 * 512
> > > +    sudo losetup /dev/loop0 "${sd_card_img_file}" -o $[$P1_START *
> > $UNIT_SIZE] --sizelimit $[$P1_END * $UNIT_SIZE]
> > > +
> > > +    mkdir ./temp_boot
> > > +    sudo mount -t vfat /dev/loop0 ./temp_boot
> > > +    sudo tar xzf ${sd_card_root}/boot_partition.tar.gz -C ./temp_boot/
> > > +
> > > +    ## Follow the above steps using numbers for the second partition.
> > > +    sudo losetup /dev/loop1 "${sd_card_img_file}" -o $[$P2_START *
> > $UNIT_SIZE] --sizelimit $[$P2_END * $UNIT_SIZE]
> > > +    mkdir ./temp_rootfs
> > > +    sudo mount -t ext3 /dev/loop1 ./temp_rootfs
> > > +    sudo tar xzf ${sd_card_root}/rootfs_partition.tar.gz -C 
> > > ./temp_rootfs/
> > > +
> > > +    ## Gzip the img file to save lot of space
> > > +    zip -r ${sd_card_img_file}.zip ${sd_card_img_file}
> > > +
> > > +    ## Clean up when done
> > > +    sudo umount ./temp_boot
> > > +    sudo umount ./temp_rootfs
> > > +    sudo rm -rf ./temp_boot/
> > > +    sudo rm -rf ./temp_rootfs/
> > > +    sudo losetup -d /dev/loop0
> > > +    sudo losetup -d /dev/loop1
> > > +    sudo rm -rf ${sd_card_img_file}
> > > +}
> > > +
> > >  create_sd_card_content() {
> > >      # Set m for logging purposes
> > >      m="$1"
> > > @@ -291,6 +369,8 @@ package_web_content() {
> > >      # Move the installer into the exports directory
> > >      mv $deploy_root/${INSTALLER_PREFIX}-$m* $exports_root/
> > >
> > > +    mv $sd_card_img_root/${m}-${TISDK_VERSION}.img.zip
> > $exports_root/
> > > +
> > >      # Create the md5sum file
> > >      cd $exports_root
> > >      md5sum * > md5sum.txt
> > > @@ -373,6 +453,8 @@ package_individual_sdk() {
> > >      # Create the SD card tarballs in the deploy directory
> > >      create_sd_card_content $m
> > >
> > > +    create_sd_card_img $m
> > > +
> > >      # Package the SD card and web page contents to get ready for
> > >      # generating the webgen page and publishing the SDK
> > >      package_web_content $m
> > > --
> > > 1.7.9.5
> > >
> > > _______________________________________________
> > > meta-arago mailing list
> > > [email protected]
> > > http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
> > _______________________________________________
> > meta-arago mailing list
> > [email protected]
> > http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to