Merge branch 'master' of git://openpandora.org/pandora-misc
[pandora-misc.git] / hotfix_updater / updater.sh
1 #!/bin/bash
2
3
4 # kernels we are sure we want to update
5 oldkern="\
6 3112d1782a90c2c87ae17a152a35deae \
7 b00a5d617f11366689488395b19411de \
8 aed218fe59ff93618bddd2b52b020014 \
9 53ca541a471f726eb1103f19d4306e61 \
10 b66eb9ddee6ae95b682e20a1ac429413 \
11 "
12 newkern=c53a33cae520f3c4dc5f558d35602225
13 currkern=$(md5sum /boot/uImage | cut -d" " -f1)
14
15 # u-boot versions we want to update
16 oldubootvers="\
17 U-Boot_2010.03_(May_19_2010_-_18:30:30) \
18 "
19
20 rm /tmp/updater.log
21 rm ./opkg.log
22 rm /tmp/updreboot
23
24 log()
25 {
26   echo "$@" >> /tmp/updater.log
27   echo "$@" >&2
28 }
29
30 rm /tmp/updater_err.log
31
32 err()
33 {
34   echo "$@" >> /tmp/updater_err.log
35 }
36
37 if zenity --question --title="Update Package 4" --text="\
38 This PND updates your Pandora OS. You can safely delete it after it has finished.\n\
39 This pack includes all updates from previous Hotfix Packs as well.\n\n\
40 Do you want to start the upgrade now? " --ok-label="Start now" --cancel-label="Don't do it" ; then
41
42 (
43
44 # Save list of services
45
46 mkdir /tmp/rcsave
47 cp -r /etc/rc* /tmp/rcsave
48 opkg remove --force-depends pandora-lcd-state >> ./opkg.log
49 rm /var/lib/opkg/*
50
51 # Kernel Update
52
53
54
55 modup=$(opkg list-installed | grep kernel-image)
56 if [ "$modup" != "kernel-image-2.6.27.46-omap1 - 2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5" ]; then
57           echo "7"
58           echo "# Updating Kernel Modules... this will take a while..."
59        
60          opkg install --nodeps --force-depends packages/kernel-module-bsd-comp_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-btusb_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-camellia_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cast5_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cast6_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-catc_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cdc-acm_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cdc-subset_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cdc-wdm_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cdrom_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cfg80211_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ch_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ch341_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cinergyt2_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-compat-ioctl32_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cp2101_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cramfs_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-crc32c_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cryptd_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-crypto-hash_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cryptoloop_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-crypto-null_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cs53l32a_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cx22700_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cx22702_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk >> ./opkg.log
61        
62          echo "20"
63          echo "# Updating Kernel Modules... this will take a while..."
64        
65          opkg install --nodeps --force-depends packages/kernel-module-cx2341x_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cx24110_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cx24123_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cx25840_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cyberjack_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-cypress-m8_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dabusb_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dib0070_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dib3000mb_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dib3000mc_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dib7000m_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dib7000p_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dibx000-common_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-digi-acceleport_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dm9601_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dsbr100_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-core_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-pll_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-ttusb-budget_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-a800_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-af9005_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-af9005-remote_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-au6610_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-cxusb_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-dib0700_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-dibusb-common_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-dibusb-mb_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-dibusb-mc_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-digitv_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-dtt200u_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-gl861_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-gp8psk_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-m920x_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-nova-t-usb2_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-opera_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-ttusb2_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-umt-010_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-vp702x_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-dvb-usb-vp7045_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ecb_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk   >> ./opkg.log
66        
67          echo "30"
68          echo "# Updating Kernel Modules... this will take a while..."
69         
70          opkg install --nodeps --force-depends packages/kernel-module-emi26_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-emi62_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-empeg_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-exportfs_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-fcrypt_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ftdi-sio_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-funsoft_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-fuse_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-gadgetfs_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-garmin-gps_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-g-cdc_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-g-ether_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-gf128mul_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-g-file-storage_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-gl620a_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-g-midi_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-g-printer_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-g-serial_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-g-zero_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-hfs_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-hmac_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-hp4x_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-hwmon_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ibmcam_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-io-edgeport_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-io-ti_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ipaq_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ipv6_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ipw_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ir-usb_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-isl6421_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-isofs_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-itd1000_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-iuu-phoenix_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-kaweth_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-keyspan_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-keyspan-pda_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-khazad_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-kl5kusb105_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-kobil-sct_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-konicawc_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-l64781_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-legousbtower_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-lgdt330x_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-lnbp21_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-lrw_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-mac80211_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk >> ./opkg.log
71        
72          echo "40"
73          echo "# Updating Kernel Modules... this will take a while..."
74        
75          opkg install --nodeps --force-depends packages/kernel-module-mcs7830_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-mct-u232_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-md4_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-mos7720_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-mos7840_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-moto-modem_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-msp3400_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-mt2060_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-mt20xx_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-mt2266_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-mt312_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-mt352_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-mxl5005s_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-navman_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-net1080_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-nfsd_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-nxt200x_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-nxt6000_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-omninet_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-option_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-oti6858_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ov511_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ovcamchip_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-pcbc_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-pegasus_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-pktcdvd_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-pl2303_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-plusb_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-powermate_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ppp-async_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ppp-deflate_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ppp-generic_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ppp-mppe_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-pppoe_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-pppol2tp_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-pppox_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ppp-synctty_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-pvrusb2_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-pwc_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-qt1010_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-quickcam-messenger_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-rfkill_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-rtl8150_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-modules_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-s5h1409_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-s5h1411_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-s5h1420_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-saa7115_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-safe-serial_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-scsi-wait-scan_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-sdio-uart_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-se401_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-serpent_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-sg_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-sha1-generic_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-sha256-generic_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-sha512-generic_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-sierra_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-sisusbvga_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk   >> ./opkg.log
76        
77          echo "50"
78          echo "# Updating Kernel Modules... this will take a while..."
79        
80          opkg install --nodeps --force-depends packages/kernel-module-sit_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-slhc_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-sn9c102_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-snd-hwdep_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-snd-rawmidi_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-snd-seq_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-snd-seq-device_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-snd-seq-midi_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-snd-seq-midi-event_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-snd-seq-oss_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-snd-usb-audio_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-snd-usb-caiaq_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-snd-usb-lib_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-sp8870_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-sp887x_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-spcp8x5_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-sr-mod_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-stv0297_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-stv0299_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-stv680_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tcrypt_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tda10021_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tda10023_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tda10048_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tda1004x_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tda10086_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tda18271_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tda8083_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tda826x_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tda827x_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tda8290_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tda9887_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tea_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tea5761_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk  >> ./opkg.log
81        
82          echo "60"
83          echo "# Updating Kernel Modules... this will take a while..."
84        
85          opkg install --nodeps --force-depends packages/kernel-module-tea5767_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tgr192_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ti-usb-3410-5052_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-trancevibrator_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ttusb-dec_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ttusbdecfe_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tua6100_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tun_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tuner_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tuner-simple_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tuner-types_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tuner-xc2028_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tunnel4_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-tveeprom_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-twofish_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-twofish-common_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-udf_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ultracam_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-usb-debug_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-usblcd_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-usbled_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-usblp_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-usbserial_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-usbtest_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-usbvideo_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-usbvision_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-uvcvideo_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-v4l1-compat_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-v4l2-common_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-v4l2-int-device_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ves1820_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-ves1x93_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-vicam_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-videodev_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-visor_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-w9968cf_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-whiteheat_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-wm8775_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-wp512_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-xc5000_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-xcbc_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-xfrm6-mode-beet_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-xfrm6-mode-transport_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-xfrm6-mode-tunnel_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-zaurus_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-zl10353_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-module-zr364xx_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk packages/kernel-vmlinux_2.6.27-pandora+r21+git449c13a99bb39ced8dbea5daccc402c39f77455e-r21.5_omap3-pandora.ipk  >> ./opkg.log
86 fi     
87
88 echo "65"
89 echo "# Updating kernel if needed"
90
91 update_kernel()
92 {
93      have_error=false
94      rm /boot/vmli*
95      rm /boot/uImage.old 
96      needfree=$(ls -lk uImage | grep uImage | cut -d" " -f5)
97      currfree=$(df /boot | grep boot | awk '{print $4}')
98      if [ $currfree -lt $needfree ]; then
99         err "There is not enough diskspace on /boot/ to update the kernel.\nKernel couldn't be updated."
100         log "Kernel not updated - not enough diskspace on /boot/"
101         have_error=true
102      else
103         cp uImage /boot/uImage.new 
104         sync
105         bad_checksum=false
106         currkern=$(md5sum /boot/uImage.new | cut -d" " -f1)
107           if [ "$currkern" = "$newkern" ]; then
108             mv /boot/uImage /boot/uImage.old 
109             mv /boot/uImage.new /boot/uImage 
110             currkern=$(md5sum /boot/uImage | cut -d" " -f1)
111             if [ "$currkern" != "$newkern" ]; then
112                rm /boot/uImage 
113                mv /boot/uImage.old /boot/uImage 
114                bad_checksum=true
115             fi
116           else
117             rm /boot/uImage.new 
118             bad_checksum=true
119           fi
120           if $bad_checksum; then
121             err "There was a checksum error while copying the kernel.\nKernel couldn't be updated. Please check your SD-Card and try to recopy the PND-File."
122             log "Kernel not updated - checksum error"
123             have_error=true
124           fi
125      fi
126
127      if ! $have_error; then
128        log "Kernel successfully updated"
129        echo "The kernel has been updated. You need to restart your system." > /tmp/updreboot
130      fi
131      sync
132 }
133
134 kernel_known=false
135 for oknl in $oldkern $newkern; do
136   if [ "$oknl" = "$currkern" ]; then
137     kernel_known=true
138     break
139   fi
140 done
141
142 if [ "$kernel_known" = "true" -o -z "$currkern" ]; then
143   if [ "$currkern" != "$newkern" ]; then
144     update_kernel
145   else
146     log "Kernel already up-to-date"
147   fi
148 else
149   if zenity --question --title="Custom kernel?" --text="\
150 You seem to have custom or newer kernel in flash.\n\n\
151 Update it anyway?\n\
152 (if unsure, select Yes)" --ok-label="Yes" --cancel-label="No" ; then
153     update_kernel
154   else
155     log "Kernel update skipped"
156   fi
157 fi
158   
159
160 # u-boot Update
161
162 echo "70"
163 echo "# U-Boot if needed"
164
165 update_uboot()
166 {
167   if flash_eraseall /dev/mtd1 && nandwrite -p /dev/mtd1 u-boot.bin; then
168     # XXX: perhaps we need to check if write went ok?
169     log "u-boot.bin flashed."
170   else
171     log "u-boot.bin flashing failed."
172   fi
173 }
174
175 if [ -f u-boot.bin ]; then
176
177   rm /tmp/u-boot.bin.nand 2> /dev/null
178   nanddump -o -b -q -f /tmp/u-boot.bin.nand /dev/mtd1
179   uboot_nand_ver=`strings /tmp/u-boot.bin.nand | grep 'U-Boot 20' | head -n 1 | sed 's/ /_/g'`
180   uboot_ver=`strings u-boot.bin | grep 'U-Boot 20' | head -n 1 | sed 's/ /_/g'`
181   uboot_size=`stat -c %s u-boot.bin`
182
183   dd if=/tmp/u-boot.bin.nand of=/tmp/u-boot.bin.nand.cmp bs=$uboot_size count=1
184   if ! cmp u-boot.bin /tmp/u-boot.bin.nand.cmp
185   then
186     uboot_need_to_ask=true
187     for oldver in $oldubootvers; do
188       if [ "$oldver" = "$uboot_nand_ver" ]; then
189         uboot_need_to_ask=false
190         break
191       fi
192     done
193
194     if $uboot_need_to_ask; then
195       if zenity --question --title="Custom u-boot?" --text="\
196       You seem to have custom or newer u-boot in flash.\n\n\
197       Update it anyway?\n\
198       (if unsure, select Yes)" --ok-label="Yes" --cancel-label="No" ; then
199         update_uboot
200       else
201         log "u-boot update skipped\n(nand has $uboot_nand_ver)"
202       fi
203     else
204       update_uboot
205     fi
206   else
207     log "u-boot already up-to-date\n($uboot_nand_ver)"
208   fi
209 fi
210
211 # Save Service-Settings and fix some stuff.
212
213 echo "75"
214 echo "# Preparing OS update."
215
216
217
218 # Update IPKs.
219
220 echo "80"
221 echo "# Updating OS... this will take a while."
222 opkg install --nodeps --force-depends packages/angstrom-version_2010.4-test-20100806-r2.5_omap3-pandora.ipk packages/boost_1.41.0-r8.1.5_armv7a.ipk packages/boost-date-time_1.41.0-r8.1.5_armv7a.ipk packages/boost-filesystem_1.41.0-r8.1.5_armv7a.ipk packages/boost-graph_1.41.0-r8.1.5_armv7a.ipk packages/boost-iostreams_1.41.0-r8.1.5_armv7a.ipk packages/boost-program-options_1.41.0-r8.1.5_armv7a.ipk packages/boost-python_1.41.0-r8.1.5_armv7a.ipk packages/boost-regex_1.41.0-r8.1.5_armv7a.ipk packages/boost-serialization_1.41.0-r8.1.5_armv7a.ipk packages/boost-signals_1.41.0-r8.1.5_armv7a.ipk packages/boost-system_1.41.0-r8.1.5_armv7a.ipk packages/boost-test_1.41.0-r8.1.5_armv7a.ipk packages/boost-thread_1.41.0-r8.1.5_armv7a.ipk packages/db_4.3.29-r10.5_armv7a.ipk packages/espgs_8.15.3-r1.5_armv7a.ipk packages/evince_2.30.0-r0.5_armv7a.ipk packages/flac_1.2.1-r1.5_armv7a.ipk packages/gnome-vfs-plugin-ftp_2.24.1-r2.5_armv7a.ipk packages/gnome-vfs-plugin-http_2.24.1-r2.5_armv7a.ipk  packages/libaudiofile0_0.2.6-r8.5_armv7a.ipk packages/libcupsimage_1.2.12-r7.1.5_armv7a.ipk packages/libflac8_1.2.1-r1.5_armv7a.ipk packages/libgdbm3_1.8.3-r3.5_armv7a.ipk packages/libgudev-1.0-0_151-r16.5_omap3-pandora.ipk packages/libpoppler5_0.12.3-r0.5_armv7a.ipk packages/libpoppler-glib4_0.12.3-r0.5_armv7a.ipk packages/libtcl8.4-0_8.4.19-r4.5_armv7a.ipk packages/libtk8.4-0_8.4.19-r0.5_armv7a.ipk >> ./opkg.log
223
224 echo "83"
225 echo "# Updating OS... this will take a while."
226 opkg install --nodeps --force-depends packages/libxfce4menu-0.1-0_4.6.2-r1.5_armv7a.ipk packages/lua5.1_5.1.4-r5.5_armv7a.ipk packages/lua5.1-doc_5.1.4-r5.5_armv7a.ipk packages/lua5.1-static_5.1.4-r5.5_armv7a.ipk packages/netbase_4.21-r42.5_omap3-pandora.ipk packages/omap3-sgx-modules_1.4.14.2514-r21a.5_omap3-pandora.ipk packages/pandora-first-run-wizard_1.0-r21.5_omap3-pandora.ipk packages/pandora-libpnd_1.0-r33.5_armv7a.ipk packages/pandora-libpnd-minimenu_1.0-r33.5_armv7a.ipk packages/pandora-libpnd-pndevmapperd_1.0-r33.5_armv7a.ipk packages/pandora-libpnd-pndnotifyd_1.0-r33.5_armv7a.ipk packages/pandora-misc_1.0-r7.5_armv7a.ipk packages/pandora-scripts_1.0-r43.5_omap3-pandora.ipk packages/pandora-state_1.0-r5.5_omap3-pandora.ipk packages/pandora-sudoers_1.0-r9.5_omap3-pandora.ipk packages/poppler-data_0.4.0-r1.5_all.ipk packages/python-bsddb_2.6.2-ml8.0.5_armv7a.ipk packages/python-compile_2.6.2-ml8.0.5_armv7a.ipk packages/python-compiler_2.6.2-ml8.0.5_armv7a.ipk packages/python-compression_2.6.2-ml8.0.5_armv7a.ipk packages/python-ctypes_2.6.2-ml8.0.5_armv7a.ipk packages/python-curses_2.6.2-ml8.0.5_armv7a.ipk packages/python-db_2.6.2-ml8.0.5_armv7a.ipk packages/python-debugger_2.6.2-ml8.0.5_armv7a.ipk packages/python-devel_2.6.2-ml8.0.5_armv7a.ipk packages/python-difflib_2.6.2-ml8.0.5_armv7a.ipk packages/python-distutils_2.6.2-ml8.0.5_armv7a.ipk packages/python-doctest_2.6.2-ml8.0.5_armv7a.ipk packages/python-elementtree_2.6.2-ml8.0.5_armv7a.ipk packages/python-fcntl_2.6.2-ml8.0.5_armv7a.ipk packages/python-gdbm_2.6.2-ml8.0.5_armv7a.ipk packages/python-hotshot_2.6.2-ml8.0.5_armv7a.ipk  >> ./opkg.log
227 opkg install --force-overwrite packages/pandora-skel_1.0-r4.5_omap3-pandora.ipk
228
229 echo "85"
230 echo "# Updating OS... this will take a while."
231 opkg install --nodeps --force-depends packages/python-html_2.6.2-ml8.0.5_armv7a.ipk packages/python-idle_2.6.2-ml8.0.5_armv7a.ipk packages/python-json_2.6.2-ml8.0.5_armv7a.ipk packages/python-mailbox_2.6.2-ml8.0.5_armv7a.ipk packages/python-misc_2.6.2-ml8.0.5_armv7a.ipk packages/python-mmap_2.6.2-ml8.0.5_armv7a.ipk packages/python-modules_2.6.2-ml8.0.5_armv7a.ipk packages/python-multiprocessing_2.6.2-ml8.0.5_armv7a.ipk packages/python-netserver_2.6.2-ml8.0.5_armv7a.ipk packages/python-pkgutil_2.6.2-ml8.0.5_armv7a.ipk packages/python-profile_2.6.2-ml8.0.5_armv7a.ipk packages/python-pycairo_1.4.0-ml3.5_armv7a.ipk packages/python-pydoc_2.6.2-ml8.0.5_armv7a.ipk packages/python-pygtk_2.16.0-r1.5_armv7a.ipk packages/python-resource_2.6.2-ml8.0.5_armv7a.ipk packages/python-robotparser_2.6.2-ml8.0.5_armv7a.ipk packages/python-shell_2.6.2-ml8.0.5_armv7a.ipk packages/python-smtpd_2.6.2-ml8.0.5_armv7a.ipk packages/python-sqlite3_2.6.2-ml8.0.5_armv7a.ipk packages/python-sqlite3-tests_2.6.2-ml8.0.5_armv7a.ipk packages/python-subprocess_2.6.2-ml8.0.5_armv7a.ipk packages/python-syslog_2.6.2-ml8.0.5_armv7a.ipk packages/python-terminal_2.6.2-ml8.0.5_armv7a.ipk packages/python-tests_2.6.2-ml8.0.5_armv7a.ipk packages/python-tkinter_2.6.2-ml8.0.5_armv7a.ipk packages/python-unittest_2.6.2-ml8.0.5_armv7a.ipk packages/python-xmlrpc_2.6.2-ml8.0.5_armv7a.ipk packages/python-zlib_2.6.2-ml8.0.5_armv7a.ipk packages/task-pandora-core_1.0-r34.5_omap3-pandora.ipk packages/task-pandora-xfce_1.0-r36.5_all.ipk packages/thunar_1.0.2-r0.5_armv7a.ipk packages/tzdata_2010g-r0.5_all.ipk packages/tzdata-africa_2010g-r0.5_all.ipk packages/tzdata-americas_2010g-r0.5_all.ipk packages/tzdata-antarctica_2010g-r0.5_all.ipk packages/tzdata-arctic_2010g-r0.5_all.ipk packages/tzdata-asia_2010g-r0.5_all.ipk packages/tzdata-atlantic_2010g-r0.5_all.ipk  >> ./opkg.log
232
233 echo "88"
234 echo "# Updating OS... this will take a while."
235 opkg install --nodeps --force-depends packages/tzdata-australia_2010g-r0.5_all.ipk packages/tzdata-dbg_2010g-r0.5_all.ipk packages/tzdata-europe_2010g-r0.5_all.ipk packages/tzdata-misc_2010g-r0.5_all.ipk packages/tzdata-pacific_2010g-r0.5_all.ipk packages/tzdata-posix_2010g-r0.5_all.ipk packages/tzdata-right_2010g-r0.5_all.ipk packages/udev_151-r16.5_omap3-pandora.ipk packages/udev-doc_151-r16.5_omap3-pandora.ipk packages/udev-utils_151-r16.5_omap3-pandora.ipk packages/wl1251-modules_1.0-r21.5_omap3-pandora.ipk packages/xf86-video-omapfb_0.1.1+r11g+gitrdb636c8436265c3d86c5b8e00785e45d55825c80-r11g.5_armv7a.ipk packages/xfce4-appfinder_4.6.2-r1.5_armv7a.ipk packages/xfce4-panel_4.6.4-r1.5_armv7a.ipk packages/xfce4-panel-plugin-actions_4.6.4-r1.5_armv7a.ipk packages/xfce4-panel-plugin-clock_4.6.4-r1.5_armv7a.ipk packages/xfce4-panel-plugin-iconbox_4.6.4-r1.5_armv7a.ipk packages/xfce4-panel-plugin-launcher_4.6.4-r1.5_armv7a.ipk packages/xfce4-panel-plugin-pager_4.6.4-r1.5_armv7a.ipk packages/xfce4-panel-plugin-separator_4.6.4-r1.5_armv7a.ipk packages/xfce4-panel-plugin-showdesktop_4.6.4-r1.5_armv7a.ipk packages/xfce4-panel-plugin-systray_4.6.4-r1.5_armv7a.ipk packages/xfce4-panel-plugin-tasklist_4.6.4-r1.5_armv7a.ipk packages/xfce4-panel-plugin-windowlist_4.6.4-r1.5_armv7a.ipk packages/xfce4-session_4.6.2-r1.5_armv7a.ipk packages/xfce-terminal_0.4.5-r1.5_armv7a.ipk packages/xfce-utils_4.6.2-r1.5_armv7a.ipk packages/xfconf_4.6.2-r1.5_armv7a.ipk packages/xfdesktop_4.6.2-r1.5_armv7a.ipk packages/xfwm4_4.6.2-r1.5_armv7a.ipk packages/xfwm4-theme-daloa_4.6.2-r1.5_armv7a.ipk packages/xfwm4-theme-default_4.6.2-r1.5_armv7a.ipk packages/xfwm4-theme-kokodi_4.6.2-r1.5_armv7a.ipk packages/xfwm4-theme-moheli_4.6.2-r1.5_armv7a.ipk packages/xfwm4-theme-sassandra_4.6.2-r1.5_armv7a.ipk >> ./opkg.log
236
237 log "Packages updated"
238
239 echo "95"
240 echo "# Finalizing update"
241
242 rm -r /etc/rc*
243 cp -r /tmp/rcsave/* /etc/
244 rm -R /tmp/rcsave
245
246
247 if [ -f /etc/rc5.d/S20apmd ]; then
248   update-rc.d -f xinetd remove
249   update-rc.d -f avahi-daemon remove
250   update-rc.d -f apmd remove
251   update-rc.d -f banner remove
252   update-rc.d -f portmap remove
253   update-rc.d -f blueprobe remove
254   update-rc.d -f pandora-lcd-state remove
255   update-rc.d -f pandora-state start 39 S . stop 31 0 1 6 .
256 fi
257
258 chmod 666 /etc/pointercal  
259 user=$(cat /tmp/currentuser)
260 cp /etc/skel/.vimrc /home/$user/.vimrc --no-clobber
261 chown $user:$user /home/$user/.vimrc
262
263 sync
264 log "Final scripts finished"
265
266 echo "100"
267 echo "# Update finished"
268
269 # Zenity Progress goes here
270 ) |
271         zenity --progress \
272           --title="Installing Updates..." \
273           --text="Updating System..." \
274           --percentage=0
275
276 err=`cat /tmp/updater_err.log`
277 if [ -z "$err" ]; then
278   err="Your system has been updated and will now reboot."
279 fi
280 update=$(cat /tmp/updater.log)
281 zenity --info --title="Update finished" --text "$err\n\n${update}"
282
283 fi
284
285 #if [ -f /tmp/updreboot ]; then
286 #  reboot=`cat /tmp/updreboot`
287 #  zenity --info --title="You need to reboot" --text "${reboot}"
288 #  rm /tmp/updreboot
289 #fi
290 reboot