A little zenity-gui for flashing images to the neo

Daniel Hedblom daniel at solle.se
Mon Sep 8 08:59:42 CEST 2008


Nice work,

I used the dfu-util from debian Lenny that gets installed in /usr/bin
instead of /usr/local/bin. Anyone that has a nice way of checking the
users paths for a specific app?

//danielh

2008/9/8 Dale Maggee <antisol at internode.on.net>:
> Charles Pax wrote:
>>
>> On Sun, Sep 7, 2008 at 6:34 PM, Joel Newkirk <freerunner at newkirk.us>
>> wrote:
>>
>>
>>>
>>> Sounds like you did a cut'n'paste from email.  The problem is that long
>>> lines are wrapped, which breaks programs/scripts.  There's at least three
>>> places in the script that suffer from word-wrap, including several lines
>>> that start at line 66.
>>>
>>>
>>
>> Yup, did a cut n' paste. I tried the attachment and it worked just fine.
>> Maybe a future version can offer to fetch dfu-util. Thanks for the help.
>>
>> -Charles
>>
>
> Nice suggestion! Done!
>
> -Dale
>
> #!/bin/bash
> # dfu-util Image-Flashing Gui 0.2
>
> function check_dfu {
>
>        if [ ! -x $dfutils_path ]; then
>                #look in current folder...
>                if [ -x './dfu-util' ]; then
>                        dfutils_path='./dfu-util'
>                else
>                        zenity --question --text "The dfu utility could not
> be found at $dfutils_path, or is not exceutable. Do you want to
> automagically download it from downloads.openmoko.org?"
>                        if [ $? = 0 ]; then
>                                rm ./dfu-util > /dev/null
>                                wget
> http://downloads.openmoko.org/daily/dfu-util
>                                chmod a+x ./dfu-util >/dev/null
>                                dfutils_path='./dfu-util'
>                        else
>                                dfutils_path=$(zenity --file-selection
> --title="Locate the dfu-util executable:" --filename="$dfutils_path")
>                        fi
>
>                        if [ -z "$dfutils_path" ]; then
>                                echo "Cancelled!"
>                                exit
>                        fi
>                        #check selection...
>                        check_dfu
>                fi
>        fi
> }
>
> function perform_flash {
>        # $1 - what we're flashing (for display)
>        # $2 - dfu-params
>        # $3 - file to flash
>
>        echo
>        echo "*** Flashing $1 with $3 ..."
>        echo
>
>        $dfutils_path $2 $3 2> $tmp_error_log_path
>        # add the following line to the previous line to get back the zenity
> progress dialog:
>        # | zenity --progress --pulsate --percentage=0 --title "Flashing in
> progress.." --auto-close
>
>        if [ "${PIPESTATUS[0]}" != "0" ];then
>                zenity --error --text "Some error occured while flashing
> $1.\n\nError message:\n`cat $tmp_error_log_path`"
>                exit
>        else
>                #sleep to allow dfu to reset...
>                sleep 2
>        fi
> }
>
> dfutils_path='/usr/local/bin/dfu-util'
>
> check_dfu
>
> tmp_error_log_path='/tmp/flash-error-log'
>
> ans=$(zenity  --list --text "What do you wanna flash?" --title "dfu-util
> gui" --checklist --column "Pick" --column "Option" TRUE Root-Filesystem TRUE
> Kernel FALSE Bootloader)
>
> if [ -z "$ans" ]; then
>        #handle cancel / no selection...
>        echo "Nothing to do!"
>        exit
> fi
>
> txt="The flashing will now start.\n\nMake sure your Neo is connected to the
> USB-Device and booted into the Nor (for kernel and rootfs) or Nand (for
> u-boot) screen before proceeding.\nRemember that flashing a large image like
> a rootfs will take some time so don't abort it.\n\n"
>
> if [ -n "`echo $ans | grep Root-Filesystem`" ];then
>        du_param_r='-a rootfs -R -D'
>        rootfs=True
>        img_file_r=$(zenity --file-selection --title="Select an image-file
> for the ROOTFS:")
>        if [ "$img_file_r" = "" ]; then
>                echo "Cancelled!"
>                exit
>        fi
>        txt="$txt - Flashing rootfs with $img_file_r \n\n"
> fi
>
> if [ -n "`echo $ans | grep Kernel`" ];then
>        du_param_k='-a kernel -R -D'
>        kernel=True
>        img_file_k=$(zenity --file-selection --title="Select an image-file
> for the KERNEL:")
>        if [ "$img_file_k" = "" ]; then
>                echo "Cancelled!"
>                exit
>        fi
>        txt="$txt - Flashing kernel with $img_file_k \n\n"
> fi
>
> if [ -n "` echo $ans | grep Bootloader`" ];then
>        du_param_u='-a u-boot -R -D'
>        uboot=True
>        img_file_u=$(zenity --file-selection --title="Select an image-file
> for UBOOT:")
>        if [ "$img_file_u" = "" ]; then
>                echo "Cancelled!"
>                exit
>        fi
>        txt="$txt - Flashing uboot with $img_file_u \n\n"
> fi
>
> touch $tmp_error_log_path
>
> zenity --info --text "$txt"
>
> if [ "$rootfs" = True ]; then
>        perform_flash rootfs "$du_param_r" "$img_file_r"
> fi
>
> if [ "$kernel" = True ]; then
>        perform_flash kernel "$du_param_k" "$img_file_k"
> fi
>
> if [ "$uboot" = True ]; then
>        perform_flash uboot "$du_param_u" "$img_file_u"
> fi
>
> rm $tmp_error_log_path
> exit 0
>
>
> _______________________________________________
> Openmoko community mailing list
> community at lists.openmoko.org
> http://lists.openmoko.org/mailman/listinfo/community
>
>




More information about the community mailing list