diff --git a/scripts/sdcard-write/freescale-imx/card-write.sh b/scripts/sdcard-write/freescale-imx/card-write.sh index f4f9db7..cd79507 100755 --- a/scripts/sdcard-write/freescale-imx/card-write.sh +++ b/scripts/sdcard-write/freescale-imx/card-write.sh @@ -6,55 +6,6 @@ # # This script writes image to sdcard and aligns rootfs partition to max size. -SelectRootfs() { - # OE environment found? - if [ -z $BUILDDIR ]; then - echo "The environment variable BUILDDIR is not set. It is usually set before running bitbake." - exit 1 - fi - iCount=0 - strSelection= - for grep_result in `grep -h TMPDIR $BUILDDIR/conf/*.conf | sed -e s/' '/''/g -e s/'\"'/''/g`; do - # exclude comments - tmp_dir=`echo $grep_result | grep '^TMPDIR='` - if [ ! -z $tmp_dir ]; then - TMPDIR=`echo $tmp_dir | sed -e s/'TMPDIR='/''/g` - fi - done - for BuildPath in ${TMPDIR}-*; do - for i in `find ${BuildPath}/deploy/images/${MACHINE} -name *.sdcard -o -name *.wic.gz | sort` ; do - iCount=`expr $iCount + 1` - RootFileNameArr[${iCount}]=$i - strSelection="$strSelection $iCount "`basename $i` - done - done - - # were files found? - if [ $iCount -eq 0 ]; then - echo "No rootfs files found in ${TMPDIR}-\*" - exit 1 - fi - - dialog --title 'Select rootfs'\ - --menu 'Move using [UP] [DOWN],[Enter] to select' 30 100 $iCount\ - ${strSelection}\ - 2>/tmp/menuitem.$$ - - # get OK/Cancel - sel=$? - # get selected menuitem - menuitem=`cat /tmp/menuitem.$$` - rm -f /tmp/menuitem.$$ - - # Cancel Button or - if [ $sel -eq 1 -o $sel -eq 255 ] ; then - echo Cancel selected 1 - return 1 - fi - RootFsFile=${RootFileNameArr[$menuitem]} - echo -} - run_user() { if [ -z $DevicePath ]; then # DevicePath for memory card @@ -63,7 +14,7 @@ run_user() { if [ -z $RootFsFile ]; then # select rootfs - SelectRootfs || exit 1 + SelectRootfs '-name *.sdcard -o -name *.wic.gz -type l' || exit 1 fi RootParams="$DevicePath $RootFsFile" } @@ -104,6 +55,7 @@ run_root() { ) } +# includes . `dirname $0`/machine.inc . `dirname $0`/../tools.inc diff --git a/scripts/sdcard-write/raspberrypi/card-write.sh b/scripts/sdcard-write/raspberrypi/card-write.sh index 2466e76..a7ba861 100755 --- a/scripts/sdcard-write/raspberrypi/card-write.sh +++ b/scripts/sdcard-write/raspberrypi/card-write.sh @@ -6,55 +6,6 @@ # # This script writes image to sdcard and aligns rootfs partition to max size. -SelectRootfs() { - # OE environment found? - if [ -z $BUILDDIR ]; then - echo "The environment variable BUILDDIR is not set. It is usually set before running bitbake." - exit 1 - fi - iCount=0 - strSelection= - for grep_result in `grep -h TMPDIR $BUILDDIR/conf/*.conf | sed -e s/' '/''/g -e s/'\"'/''/g`; do - # exclude comments - tmp_dir=`echo $grep_result | grep '^TMPDIR='` - if [ ! -z $tmp_dir ]; then - TMPDIR=`echo $tmp_dir | sed -e s/'TMPDIR='/''/g` - fi - done - for BuildPath in ${TMPDIR}-*; do - for i in `find ${BuildPath}/deploy/images/${MACHINE} -name *.rpi-sdimg | sort` ; do - iCount=`expr $iCount + 1` - RootFileNameArr[${iCount}]=$i - strSelection="$strSelection $iCount "`basename $i` - done - done - - # were files found? - if [ $iCount -eq 0 ]; then - echo "No rootfs files found in ${TMPDIR}-\*" - exit 1 - fi - - dialog --title 'Select rootfs'\ - --menu 'Move using [UP] [DOWN],[Enter] to select' 30 100 $iCount\ - ${strSelection}\ - 2>/tmp/menuitem.$$ - - # get OK/Cancel - sel=$? - # get selected menuitem - menuitem=`cat /tmp/menuitem.$$` - rm -f /tmp/menuitem.$$ - - # Cancel Button or - if [ $sel -eq 1 -o $sel -eq 255 ] ; then - echo Cancel selected 1 - return 1 - fi - RootFsFile=${RootFileNameArr[$menuitem]} - echo -} - run_user() { if [ -z $DevicePath ]; then # DevicePath for memory card @@ -63,7 +14,7 @@ run_user() { if [ -z $RootFsFile ]; then # select rootfs - SelectRootfs || exit 1 + SelectRootfs '-name *.rpi-sdimg -type l' || exit 1 fi RootParams="$DevicePath $RootFsFile" } @@ -100,6 +51,7 @@ run_root() { ) } +# includes . `dirname $0`/machine.inc . `dirname $0`/../tools.inc diff --git a/scripts/sdcard-write/tools.inc b/scripts/sdcard-write/tools.inc index c695646..a73b50c 100644 --- a/scripts/sdcard-write/tools.inc +++ b/scripts/sdcard-write/tools.inc @@ -111,6 +111,56 @@ SelectCardDevice() { DevicePath=${DevicePathArr[$menuitem]} } +# SelectRootfs() opens a dialog to select file containing rootfs. It expects +# one parameter which contains find parameters e.g for raspberrypi: ' +SelectRootfs() { + # OE environment found? + if [ -z $BUILDDIR ]; then + ErrorOut "The environment variable BUILDDIR is not set. It is usually set before running bitbake." + fi + iCount=0 + strSelection= + for grep_result in `grep -h TMPDIR $BUILDDIR/conf/*.conf | sed -e s/' '/''/g -e s/'\"'/''/g`; do + # exclude comments + tmp_dir=`echo $grep_result | grep '^TMPDIR='` + if [ ! -z $tmp_dir ]; then + TMPDIR=`echo $tmp_dir | sed -e s/'TMPDIR='/''/g` + fi + done + for BuildPath in ${TMPDIR}-*; do + for i in `find ${BuildPath}/deploy/images/${MACHINE} $1 | sort` ; do + iCount=`expr $iCount + 1` + RootFileNameArr[${iCount}]=$i + strSelection="$strSelection $iCount "`basename $i` + done + done + + # were files found? + if [ $iCount -eq 0 ]; then + ErrorOut "No rootfs files found in ${TMPDIR}-\*" + fi + + dialog --title 'Select rootfs'\ + --menu 'Move using [UP] [DOWN],[Enter] to select' 30 100 $iCount\ + ${strSelection}\ + 2>/tmp/menuitem.$$ + + # get OK/Cancel + sel=$? + # get selected menuitem + menuitem=`cat /tmp/menuitem.$$` + rm -f /tmp/menuitem.$$ + + # Cancel Button or + if [ $sel -eq 1 -o $sel -eq 255 ] ; then + echo Cancel selected 1 + return 1 + fi + RootFsFile=${RootFileNameArr[$menuitem]} + echo +} + + # chk_root() tests if we are running as root. If not, it calls run_user and then # asks operator how to log on as root. Then the main script is started as root chk_root() {