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.