How to switch from Mir to Surfaceflinger?
Because of this bug https://bugs.launchpad.net/mir/+bug/1238695 Ubuntu Touch on the Google Nexus 7 (grouper), Touch randomly freezes, and flickers.
It is bad enough that I cannot do anything except restart the device.
I was just wondering how to workaround this, can I switch back to the "surfaceflinger" that Touch previously used - as this was working nicely on previous versions?
Solution 1:
Connect your Nexus to your Ubuntu desktop machine, check if it is connected with
adb devices
(a line "[device ID] device" should be returned) and then issue the commands
adb root
(maybe it tells you that you're already 'root') and
adb shell rm -f /home/phablet/.display-mir && adb reboot
I just did it successfully. Of course, the fallback to Android's surfaceflinger is not a fix but it's a temporary workaround.
Alternatively, run
adb shell
su
rm -f /home/phablet/.display-mir && reboot
Solution 2:
This is a bug with Mir on that device. It has already been reported, but you can workaround the problem by deleting the file ~phablet/.display-mir
on the device, and restarting it. This will switch the display server back to SurfaceFlinger, so the device can be usable until the bug is fixed.