<package id="szupdater1.openpandora.org">
<titles>
- <title lang="en_US">Pandora SuperZaxxon updater</title>
+ <title lang="en_US">SuperZaxxon 1.54 offline updater</title>
</titles>
- <version major="1" minor="7" release="0" build="0" type="release"/>
+ <version major="1" minor="8" release="0" build="5" type="release"/>
<author name="OpenPandora Team" website="http://www.openpandora.org"/>
</package>
<application id="szupdater1.openpandora.org">
<titles>
- <title lang="en_US">Pandora SuperZaxxon updater</title>
+ <title lang="en_US">SuperZaxxon 1.54 offline updater</title>
</titles>
- <title lang="en_US">Pandora SuperZaxxon updater</title>
+ <title lang="en_US">SuperZaxxon 1.54 offline updater</title>
<exec command="./run.sh"/>
<icon src="updater.png"/>
<info name="SuperZaxxon updater readme" type="text/html" src="index.html"/>
<descriptions>
- <description lang="en_US">SuperZaxxon firmware updater.</description>
+ <description lang="en_US">Updates from SuperZaxxon 1.5x to SuperZaxxon 1.54 without need of Internet connection.</description>
</descriptions>
<author name="OpenPandora Team" website="http://www.openpandora.org"/>
- <version major="1" minor="7" release="0" build="0"/>
+ <version major="1" minor="8" release="0" build="5"/>
<licenses>
<license name="other" />
</licenses>
--- /dev/null
+#!/bin/sh -x
+
+set -e
+
+PND=updater.pnd
+
+if [ $USER != notaz ]
+then
+ echo "you are not notaz"
+ exit 1
+fi
+
+rm -rf out $PND
+mkdir out
+mkdir out/feeds/
+mkdir out/feeds/armv7a/
+mkdir out/feeds/omap3-pandora/
+mkdir out/feeds/all/
+
+cd out
+# tar xvf $HOME/oe_rootfs_extra.tar.bz2
+cp ../in/* .
+cp ../../oe_make_bootf/autoboot.txt .
+
+tpath=`pwd`
+
+cd $HOME/oe/tmp/angstrom.5/deploy/glibc/ipk/
+find . -name '*.ipk' \
+ -newer $tpath/../tools/ref.ipk \! -name '*-dev_*' \! -name '*-dbg_*' \
+ \! -name '*-doc_*' \! -name '*-static_*' \! -name 'libgles-omap3-*' \
+ -exec cp -a {} $tpath/feeds/{} \;
+
+cd $tpath
+set +x
+
+# clean unneeded ipks that are not in latest installed-packages.txt
+listf=`find $HOME/oe/tmp/angstrom.5/deploy/glibc/images/omap3-pandora/ \
+ -name installed-packages.txt | grep -v nowifi | sort | tail -n 1`
+for f in feeds/armv7a/* feeds/omap3-pandora/* feeds/all/*; do
+ b=`basename $f`
+ bb=`echo $b | awk -F- '{print $1}'`
+ if ! grep -q "\<$bb\>" $listf; then
+ rm -f $f
+ fi
+done
+
+set -x
+cd $HOME/oe/tmp/angstrom.5/deploy/glibc/ipk/
+
+find . -name 'Packages*' -exec cp -a {} $tpath/feeds/{} \;
+cd $tpath
+
+../tools/pnd_make.sh -p ../$PND -d . -x PXML.xml -i updater.png -c
<html>
<head>
- <title>Updater for SuperZaxxon</title>
+ <title>Offline updater for SuperZaxxon</title>
</head>
<body>
-<p><b>Information</b></p><p>This file will update your Pandora OS. Simply run it as any normal PND. After installation, you can delete it.<br />This pack is intended for SuperZaxxon firmware line, it will not work properly if applied on older firmwares.
-<!---
-It can be installed on a fresh OS as well as on an OS which has a previous Hotfix already installed.<br />
-A previous hotfix does NOT need to be installed - Hotfix Pack 5 includes all stuff from the previous Hotfixes as well. </p>
-<p><br />This pack updates the following:<br /><br />
-<i>Hotfix 1:</i><br />
-* Kernel: Fixed a bug that caused the Linux Systemtimer to halt sometimes<br />
-* Included missing packages: python-shell_2.6.4, python-pygtk_2.16.0, python-pycairo_1.4.0, gnome-vfs-plugin-http_2.24.1, gnome-vfs-plugin-ftp_2.24.1<br />
-<br />
-<i>Hotfix 2:</i><br />
-* Bluetooth: Disabling and restoring state on startup now working properly<br />
-* XFCE4: When switching from MiniMenu to XFCE4, the settings are now properly loaded<br />
-* Brightness-State: When shutting down, a brightness level of 0 is not saved<br />
-* MiniMenu: Fixed caching and closed a memory leak<br />
-* Automount: Now using umask 0 and noatime. Unmounting is using Lazy Mount.<br />
-* Interfaces: Fixed the file. Now WiFi isn't disturbed by usb-network anymore<br />
-* WiFi: LEDs now working<br />
-* Kernel: Video: don't force waiting for refresh<br />
-* MiniMenu: XFCE4-Apps now included in MiniMenu<br />
-* New: Boost, Lua5.1 and Evince<br />
-* New: Script to change the LCD refresh rate from 50 / 60 Hz (ideal for emulators)<br />
-* Some typo fixes and general tweaks<br />
-<br />
-<i>Hotfix 3:</i><br />
-* Kernel: Fixed problem with broken sound on some units. Also improved ALSA Buffer Underrun problems<br />
-* Kernel Modules: Added USB Sound and Midi Modules as well as the TUN/TAN-Module<br />
-* U-Boot: Fixed LCD timings on Reset (which caused weird dots around the Logo on reboot / Reset)<br />
-* U-Boot: Added serial out via USB (ideal for debugging when trying to port new OSes to the Pandora)<br />
-* MiniMenu: Added automatic Refresh on SD Card insert and quick navigation using keyboard letters<br />
-* Battery-Settings: LED now starts blinking at 10% and shuts down at 5%. The previous values were too short.<br />
-* Bugfix: op_fbrunapp had some problems with command line parameters. That's now fixed.<br />
-* Services: Removed unneeded services from Startup - also services most users don't need (like dropbear, samba, etc.) They can be re-enabled with the new Startup-Settings<br />
-* Startup-Settings: Added enabling / disabling services<br />
-* New: Added Mass Storage mode via Mini-USB (can be enabled in the System-Menu)<br />
-* Automount: Now using Label names (if the card has one) instead of mmcblk*<br />
-* Automount: Now using Dirsync instead of sync with 2s Buffer flush. This increases SD Write speed A LOT. However, be sure to wait at least 2 seconds before removing your SD Card after you saved data<br />
-* Not yet fixed: PNDs will not run if they have a space in the filename or path (do not use spaces in your SD-Card labels for now!)<br />
-* pnd_run-Script: Changed a few things to make it compatible with spaces in filenames (still needs some other fix). Thanks to Ivanovic.<br />
-* Bluetooth-Script: Fixed save / restore settings on startup (thanks to urjaman)<br />
-<br />
-<i>Hotfix 4:</i><br />
-* Kernel: Added Bluetooth patch by urjaman. PAN (bluetooth internet connections) work fine now.<br />
-* WiFi: Fixed the problem where you could not reconnect after you lost a connections<br />
-* xf86-video-omapfb: add pandora specific screen blanking<br />
-* Nub Mousebuttons: Moving down is now middle mousebuttons. Recognition of mouseclicks with the nub has been enhanced (patch by urjaman)<br />
-* Pandora-Scripts: The internal scripts (CPU-Speed, Startup-Manager, etc.) have icons now.<br />
-* Pandora-Scripts: Added simple TV-Out script.<br />
-* Lid: Opening / Closing will not affect the powersave mode anymore.<br />
-* Enhanced brightness scripts (made the more linear)<br />
-* Powersave mode: Fixed the CPU Speed setting<br />
-* pnd_run: Added support for clockspeed setting<br />
-* libpnd: Support spaces in pathnames and PND-Names.<br />
-* Updated to a more recent XFCE4-Version<br /><br />
-* First-Run-Wizard and Time / Date script: Fixed bug of not-appearing calendar<br />
-* New default config for vim (thanks to Nils Kneuper (Ivanovic))<br />
-* Python: Added python-misc and python-modules<br />
-* New lib: libaudiofile0 now included<br />
-* MiniMenu: New config dialogue included (will be improved in the future)<br />
-* udev 151: add rule to reserve fb2<br />
-* Leds: Fix TWL4030 PWM LED driver (thanks to Urja Rannikko)<br />
-* Pandora misc: HACK to change OPP level according to set mhz (thanks to Urja Rannikko) + OPP limiter added (by notaz)<br />
-* OMAP: DSS2: make filter coefficient tables human readable, DSS2: add some hackish FIR filter coefficient access<br />
-<br />
-<i>Hotfix 5:</i><br />
-<br />
-Fixes:<br />
-* LCD-Settings: Fixed the bug where the user could delete the default gamma setting<br />
-* Mass Storage Settings: Fixed a bug where it didn't remount the card under certain conditions<br />
-* First Run Wizard + Date / Time-Setting: Fixed timezone-selection.<br />
-* WiFi: New driver and firmware version with a lot of fixes (Yuri Ershov, notaz and Denis 'GNUtoo' Carikli)<br />
-* xf86-video-omapfb: Handle cycle/forcer events better<br />
-* Automount: Unmount from Thunar / XFCE4 is now possible<br />
-* Low-Power-Mode: Speed now set to 125 MHz (works more stable and doesn't use more power)<br />
-* Lid Closing: Disabled LCD Blanking, since that has issues with some programs<br />
-* Brightness-Buttons: Changed values so that the screen doesn't flicker anymore<br />
-* pnd_run: Lots of fixes and cleanups (sebt3)<br />
-* pnd_run: Fixed running of directories with PXMLs inside (Paul Brook)<br />
-* pnd_run.sh: Remove empty AUFS-Directories after unmounting (thanks to sebt3)<br />
-* U-Boot: Add WiFi reset on boot (fixes occassional power eating from WiFi Chip even if it was switched off)<br />
-* Fixed broken OPP after the unit crashed (patch by urjaman)<br />
-* Included latest SGX PowerVR drivers (thanks to notaz)<br />
-* MiniMenu: A lot of bugfixes and optimizations.<br />
-* omap3-sgx-modules: backport spinlock fix from omap3630 (thanks to notaz)<br />
-* mount.sh: Small optimization (changed rm to rmdir)<br />
-* MiniMenu: Now using only 3-4% CPU when idling<br />
-* Kernel: Various fixed, especially the errors when copying from one SD Card to the other one should be fixed (thanks to urjaman and notaz).<br />
-<br />
-New Features:<br />
-* LCD-Settings: Added Video-FIR-Selector (current and default one)<br />
-* Applications: Removed Pidgin, Gnumeric, AbiWord, Clawsmail (use the PNDs for sebt3!)<br />
-* Applications: Added GCalcTool (Calculator)<br />
-* Tools: Added xdotool<br />
-* CPU-Speed: Now configurable using /etc/pandora/conf/cpu.conf or using the new CPU-Settings-Editor<br />
-* Pandora-State: Can now set a default CPU Speed during startup<br />
-* XFCE4: Enabled Icons in Startmenu, added Pandora-Splashscreen<br />
-* pnd_run: Script now popups a message if mount fails (sebt3)<br />
-* U-Boot: Pandora Menu: Always add serial option (for sure)<br />
-* Libraries: Added libsamplerate<br />
-* MiniMenu: Added new config options (i.e. do not quit on app run, remove detail panel, etc.)<br />
-* MiniMenu: Added Subcategories in the Grid (for quicker browsing).<br />
-* MiniMenu: Included OVR-Editor (so you can rename, move or change other settings of PNDs)<br />
-* MiniMenu: Added Directory Browser<br />
-* OS: Added Version number to Splashscreen<br />
-<br />
---->
+<p><b>Information</b></p><p>This file will update your Pandora OS. Simply run it as any normal PND. After installation, you can delete it.<br />This pack is intended for SuperZaxxon firmware line, it will not work properly if applied on older firmwares.<br /><br />
+For more information, please visit <a href="http://boards.openpandora.org/index.php/forum/41-pandora-os-superzaxxon-gnulinux/">OS section of OpenPandora Boards</a>.
</body>
</html>
#!/bin/sh
logfile=/tmp/updater.log
-oldkernel=/boot/uImage-3
-newkernel=boot/uImage-3
-
-if ! grep -q '[[:blank:]]/[[:blank:]]*ubifs' /proc/mounts; then
- # prefer alternative locations when running from SD
- test -e /media/PANDORABOOT/uImage && oldkernel=/media/PANDORABOOT/uImage
- test -e /media/PANDORABOOT/uImage-3 && oldkernel=/media/PANDORABOOT/uImage-3
- test -e /media/BOOT/uImage && oldkernel=/media/BOOT/uImage
- test -e /media/BOOT/uImage-3 && oldkernel=/media/BOOT/uImage-3
-fi
+oconffile=/tmp/updater.conf
+kernel_path=/boot/uImage-3
+rootdir=`pwd`
+
+log()
+{
+ echo -en "\033[0;32m"
+ echo "$@"
+ echo -en "\033[0m"
+
+ echo "$@" >> $logfile
+}
+
+error()
+{
+ echo -en "\033[0;33m"
+ echo "$@"
+ echo -en "\033[0m"
-if ! test -e $oldkernel; then
+ echo "$@" >> $logfile
+}
+
+if ! test -e $kernel_path && ! test -e /lib/boot/uImage; then
zenity --error --text "SuperZaxxon Final firmware required, sorry."
exit 1
fi
-if ! test -e $newkernel || ! test -d lib || ! test -d ipk; then
+if ! test -e feeds/Packages; then
zenity --error --text "Required files are missing, perhaps this .pnd got corrupted."
exit 1
fi
root_free=`df | grep '/$' | sed -e '2~1d' | awk '{print $4}'`
-if [ "$root_free" -lt 2000 ]; then
+root_need=20000
+if [ "$root_free" -lt $root_need ]; then
+ error "Only $(($root_free / 1024))MB available, need at least $(($root_need / 1024))MB"
zenity --error --text "There is not enough space left in root partition.
This usually means your NAND is almost full.
exit 1
fi
-get_ver()
-{
- dd if=$1 bs=32 skip=1 count=1 2> /dev/null \
- | strings | sed -e 's/.*\([0-9]\.[0-9]\.[0-9]*\).*/\1/'
-}
-
-get_vercode()
-{
- ver1=`echo $1 | awk -F. '{printf $1}'`
- ver2=`echo $1 | awk -F. '{printf $2}'`
- ver3=`echo $1 | awk -F. '{printf $3}'`
- echo $((($ver1 << 16) + ($ver2 << 8) + $ver3))
-}
-
-log()
-{
- echo -en "\033[0;32m"
- echo "$@"
- echo -en "\033[0m"
-
- echo "$@" >> $logfile
-}
-
+cd /tmp/
echo > $logfile
-kernel_failed_detect=true
-kernel_ask_newer=false
-kernel_do_update=false
-kernel_reboot_needed=false
-
-oldver=`get_ver $oldkernel`
-newver=`get_ver $newkernel`
-oldvcode=`get_vercode $oldver`
-newvcode=`get_vercode $newver`
-
-# echo $oldver $newver $oldvcode $newvcode
+# generate config
+echo -n > $oconffile
+for feed in all armv7a omap3-pandora; do
+ echo "src/gz pandora-${feed} file://$rootdir/feeds/${feed}" >> $oconffile
+done
-if [ -n "$oldver" -a -n "$newver" -a -n "$oldvcode" -a -n "$newvcode" ]; then
- if [ "$oldvcode" -lt "$(((3 << 16) + (2 << 8) + 21))" ]; then
- # a version before SZ-Final
- zenity --error --text "SuperZaxxon Final firmware required, sorry."
- exit 1
- fi
+log "installing packages..."
+kernelmd5_old=`md5sum $kernel_path`
+rm -f /tmp/upgrade_ok
- if [ "$oldvcode" -eq "$newvcode" ]; then
- oldtime=`stat -c %Y $oldkernel`
- newtime=`stat -c %Y $newkernel`
- if [ "$oldtime" -gt "$newtime" ]; then
- kernel_ask_newer=true
- else
- kernel_failed_detect=false
- kernel_do_update=true
- fi
- elif [ "$oldvcode" -gt "$newvcode" ]; then
- kernel_ask_newer=true
- else
- kernel_failed_detect=false
- kernel_do_update=true
- fi
+# check for old feeds config, if it's old try to fix up with feed package
+if cat /etc/opkg/*.conf | awk -F# '{printf $1}' | grep -q www.angstrom-distribution.org; then
+ opkg install $rootdir/feeds/omap3-pandora/angstrom-feed-configs*
fi
-if $kernel_ask_newer; then
- if zenity --question --text "It seems you have newer kernel already installed,
-overwrite it?"; then
- kernel_do_update=true
- fi
-elif $kernel_failed_detect; then
- if zenity --question --text "Could not determine what kernel is installed on your system,
-so have to ask, do you want to overwrite your current kernel?"; then
- kernel_do_update=true
- fi
-fi
+# - must start with pandora-scripts, as some files were moved out of it to separate
+# packages, installing those first results in dupe file errors.
+# - have to run upgrade twice because of other dupe errors (only resolved on later updates)
+# - tee doesn't properly exit without kill (hangs), no idea why..
+( set -e
+ opkg -f $oconffile update 2>&1
+ echo "Checking for updated packages (above errors can be ignored)..."
+ opkg -f $oconffile install pandora-scripts 2>&1
+ echo "Checking for updated packages (above errors can be ignored)..."
+ opkg -f $oconffile upgrade 2>&1
+ echo "Checking for updated packages (above errors can be ignored)..."
+ opkg -f $oconffile upgrade 2>&1
+ touch /tmp/upgrade_ok
+ sync; killall -PIPE tee ) | tee -a $logfile
-if $kernel_do_update; then
- if ! cmp $newkernel $oldkernel > /dev/null; then
- log "updating kernel at $oldkernel from $oldver to $newver ..."
- cp -a $newkernel $oldkernel
- sync
- kernel_reboot_needed=true
- fi
+# since uninstall script of gtk-touchscreen-mode-enable is broken, edit this out manually
+sudo sed -i -e 's/^\(gtk-touchscreen-mode = 1\)/#\1/' /etc/gtk-2.0/gtkrc
- log "updating modules for $newver ..."
- if [ -n "$oldver" -a -d "/lib/modules/$oldver" ]; then
- rm -rf /lib/modules/$oldver
- fi
- cp -a lib /
- sync
- if ! $kernel_reboot_needed; then
- # we can depmod now
- depmod -a
- sync
- fi
+kernelmd5_new=`md5sum $kernel_path`
+
+# fixup autoboot.txt, if needed
+if [ "$kernelmd5_old" != "$kernelmd5_new" ] \
+ && grep -q '/lib/boot/uImage' /boot/autoboot.txt 2> /dev/null
+then
+ cp $rootdir/autoboot.txt /boot/autoboot.txt
+ cd /boot/
+ ln -fs uImage-3 uImage
+ cd -
fi
-log "installing packages..."
-opkg install ipk/* | tee -a $logfile
sync
-# since uninstall script of gtk-touchscreen-mode-enable is broken, edit this out manually
-sudo sed -i -e 's/^\(gtk-touchscreen-mode = 1\)/#\1/' /etc/gtk-2.0/gtkrc
-
-log "all done. You can find logfile at $logfile"
-if $kernel_reboot_needed; then
- zenity --question --text "Reboot required to start the new kernel.
-Reboot now?" && reboot
+if test -e /tmp/upgrade_ok; then
+ rm -f /tmp/upgrade_ok
+ log "All done. You can find logfile at $logfile"
+ if [ "$kernelmd5_old" != "$kernelmd5_new" ]; then
+ zenity --question --title="Kernel updated" \
+ --text "The kernel has been updated,\nreboot is needed to start it.\n\nReboot now?" \
+ --ok-label="Yes" --cancel-label="No, do it later" \
+ && reboot
+ else
+ zenity --info --text "Update complete."
+ fi
else
- zenity --info --text "Update complete."
+ error "Errors detected. You can find logfile at $logfile"
+ zenity --error --title="Errors detected" \
+ --text "Errors detected.\n\nSome errors can be resolved by re-running the update."
fi