OTA to PR1.1 troubleshooting

With the brand new PR1.1 software update recently rolled out [1], some people found some problems [2] which, in most of the cases, led them to get a nice message from the Application Manager telling they would need to install it by flashing the device with the NSU/flasher utilities (a clear symptom of this is that you get to a dialog with a "Create backup" button only, but not "Continue" button at all).

In most of the cases, the explanation behind this situation is one of the following:

  • You missed the upgrade from PR1.0 to PR1.0.1. In this case you'll need to use the NSU/flasher.
  • You have manually installed some debian package through apt-get or dpkg, perhaps bypassing the sanity checks and special controls that HAM provides to guarantee a proper OTA update.
  • You somehow got the device into a state so it would be needed to remove some package to perform the OTA update (which is something that the extra-defensive Application Manager won't ever do)

How to find out what's going on and how to fix it?

  • If you're in the first case, there's nothing to do but to reflash, sorry :-(. You've missed the intermediate step towards PR1.1 from PR1.0 and you're device won't be able to guarantee you a proper OTA update without the needed preconditions fulfilled.
  • If you have installed debian packages by hand, they might be somehow conflicting with the OTA update, mainly because one of the following reasons:
    • They're breaking the '3rd party package policy [3]
    • They are different versions (newer versions, most likely) than the expected by the OTA update package to properly work. Think that the OTA package is a metapackage expecting exact versions of package to be installed in the system before the upgrade and you'll get the point here :-): just one dependency of the OTA package in a different version than the expected one is enough to break the process, hence asking the user to reflash.

If this is the case you'd need to somehow restore the device to the proper state first by removing those packages and/or restoring them to the expected versions.

  • In the third case (which is really unlikely to happen, although not impossible), you'd need to first get the device into a state where the removal of those packages won't be necessary anymore for the OTA to work (manually performing a dpkg -r, for instance) and then trying again from HAM. Another way you could try to fix this, but which is neither recommended nor supported, would be to execute a apt-get dist-upgrade from command line, which would work by removing all the conflicting packages and installing the new ones. However, if you get to this pointit would be probably better you considered using the NSU or the flasher as well.

How to find out about conflicting packages?

Well, there's no magic recipe for this that works in all the cases, but we can list here some advices :-)

  • Try to perform an apt-get upgrade from command line (without confirming!!) and see the output. If you find some message like the following one, then you'll have a good spot on which package is blocking the OTA update and why:
 # apt-get upgrade
 Reading package lists... Done
 Building dependency tree       
 Reading state information... Done
 You might want to run `apt-get -f install' to correct these.
 The following packages have unmet dependencies:
   mp-fremantle-generic-pr: Depends: package (= 1.0) but 1.1 is installed
 E: Unmet dependencies. Try using -f.

In the case above you'd have installed a newer version of 'package' than the expected by OTA, so the solution would be to restore it to the expected version before continuing.

  • In case you didn't get any conflict but get some message saying that no package will be upgraded (or at least no package related to the mp-fremantle-generic-pr metapackage), then try apt-get dist-upgrade and see if you get something like this:
 # apt-get dist-upgrade
 Reading package lists... Done
 Building dependency tree       
 Reading state information... Done
 Calculating upgrade... Done
 The following packages will be REMOVED:
   package-1 package-2 package-3
 ...
 After this operation, 4620kB disk space will be freed.
 Do you want to continue [Y/n]?

If that's the case then there you have the conflicting packages you'll have to manually remove before trying again with the Application Manager, in case you don't want (and you should not) continue with the apt-get dist-upgrade command.

Last advices

To finish with, just to give you some last, yet useful advices you should bear in mind when upgrading the device with the OTA update:

  • Make sure you have full charged battery or the device plugged in before starting.
  • Make sure there's enough space in the rootfs partition for the update to work (45 Mb is the minimum required). To check this out, just run df -h in the command line:
 # df -h
 Filesystem                Size      Used Available Use% Mounted on
 rootfs                  227.5M    152.6M     70.8M  68% /     ---->   70.8M > 45Mb  (Ok)
 ubi0:rootfs             227.5M    152.6M     70.8M  68% /
 tmpfs                     1.0M     88.0k    936.0k   9% /tmp
 tmpfs                   256.0k     80.0k    176.0k  31% /var/run
 none                     10.0M     72.0k      9.9M   1% /dev
 tmpfs                    64.0M      4.0k     64.0M   0% /dev/shm
 /dev/mmcblk0p2            2.0G     30.7M      1.8G   2% /home
 /dev/mmcblk0p1           27.0G      1.7G     25.3G   6% /home/user/MyDocs
  • Make sure you make a backup prior to the update, just in case

Enjoy!