I am not sure what's your current problem. Are you unable to upgrade from 3.1 upwards, or are there problems with kernel modules on boot? If the former, I'd suggest to add following to the respective upgrade script which is in the OTA update bin, and see what happens:
Code:
set -x
exec > /mnt/us/my-upgrade.out
exec 2> /mnt/us/my-upgrade.err
(For more see the guide in comment #0.)