A summary of SP3 issues using Ubuntu

369 views
Skip to first unread message

GpaFrankolin

unread,
Apr 5, 2015, 10:41:08 PM4/5/15
to linux-...@googlegroups.com
When my HP-mini 110, running Ubuntu, began to show its age, I determined that the Surface Pro 3 was the best replacement. Even though its capabilities running Ubuntu were originally more limited than I had hoped, I think I chose wisely.

I have been frustrated trying to find an effective place to lay out the ways in which Linux (or at least Ubuntu) has not been able to take full advantage of the hardware's features. So I thank Ethan for giving us this Google Group.

I am not familiar with the differences between the older Surface products and SP3; nor do I know what new quirks the Surface 3, announced this week, will have. To avoid confusion I strongly recommend that everyone clearly identify the hardware, distribution, and kernel being discussed in each post.

I have been building my own kernels using the latest release candidate from Linux Kernel Archives and patching as needed. I believe the same thing could be done starting with the latest mainline kernel from Ubuntu.

I'm going to try to list the various ways in which Linux software handles the various features of the SP3 less well than Windows 8.1. If I know of any any fixes, work being done, or simply discussions of the situation elsewhere, I will add that information. Please feel free to update my list with your own newer information. [Does anybody know if a Google group can share a document?]

-- Issues that are resolved on my computer

* The type cover's keyboard does not work
** Kernels 3.18 and above have resolved this. You can also find a patch in http://blog.davidelner.com/dual-booting-ubuntu-14-10-on-the-surface-pro-3/ that will fix it in 3.16.
** Note that the type cover's touch pad works as a mouse--not a multi-touch device--with or without this patch.

* The battery is not detected
** https://dl.dropboxusercontent.com/u/4080500/patch/battery.patch (which needs to be compiled into the kernel) fully solves the problem. According to https://bugzilla.kernel.org/show_bug.cgi?id=90161#c18 this patch is on its way to the kernel.

* The two cameras are not found
** https://dl.dropboxusercontent.com/u/4080500/patch/cam.patch (also a kernel patch) provides the kernel a connection to the two cameras.

* The wifi and bluetooth are not reliable
** Installing the latest version of mwifiex solves this problem. This is also discussed in the David Elner blog mentioned above.

-- Issues that have been partially resolved on my computer

* The SP3's hardware buttons are not detected
** https://dl.dropboxusercontent.com/u/4080500/patch/button1.patch and  https://dl.dropboxusercontent.com/u/4080500/patch/button2.patch resolve this for the power button, the two volume buttons, and the "home" button under the Windows logo.
** There is another "button," the lid switch, that is not fixed by this patch. It has a very interesting and frustrating problem: the state at power up and the first closing event are detected and then never any other state changes. One of the odd effects of this behavior, is that closing the cover prevents seeing both the the main display and a secondary display at the same time. This problem is discussed in https://bugzilla.kernel.org/show_bug.cgi?id=84651 (which was the impetus for the button patches and also this Google group) and I think there are other places where it is mentioned.

* The type cover's touchpad does not handle multi-touch.
** https://dl.dropboxusercontent.com/u/4080500/patch/gistfile1.diff provides a partial solution. https://bugzilla.kernel.org/show_bug.cgi?id=84651#c97 and https://bugzilla.kernel.org/show_bug.cgi?id=84651#c99 seem to promise some improvement but I haven't figured them out yet.

-- Issues that I think people are working on but are not satisfactorily resolved on my computer

* Suspend
** This is the biggest issue with the SP3 in my opinion.
** I have not found a kernel in which the suspended state lasts for more than a few seconds before the computer comes back to life.
** https://launchpadlibrarian.net/191971365/freeze.patch provides a simple extension to ./usr/lib/pm-utils/pm-functions that improves this behavior. However, it is not reliable even then. See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1436620 for a bug report that attempts to get to the heart of the problem.

* Autorotate is not working.
** https://github.com/AykoPoel/surface3-scripts promises a fix that I haven't looked into.

-- Issues that I haven't heard are being looked into

* None of the symbols on top-row keys of the SP3 type cover are connected to anything in Linux except the one on the F3 key that mutes and unmutes the speaker.

* The lower button the pen doesn't do anything. This is quite frustrating since you can use the upper one to simulate the middle mouse button (#2) but you can't right-click (#3) with the pen.

* The pen's position is misunderstood when there is a secondary display attached. The system maps the point that is touched to the entire rectangle of the two side-by side displays rather than just the main display. Note that your finger on the same place on the screen is correctly understood.



Thanks, let's all help each other get these things fixed.

Hironimus Denk

unread,
Apr 6, 2015, 2:03:36 PM4/6/15
to linux-...@googlegroups.com
Hi,

I am using the autorotate script from https://github.com/AykoPoel/surface3-scripts and it is working fine.

regards
Hironimus

GpaFrankolin

unread,
Apr 10, 2015, 3:24:27 PM4/10/15
to linux-...@googlegroups.com
I have been working with suspend and lid switch and have a few frustrating things to report.

First, when I use the pm-functions change that causes suspension to turn into "freeze", no Ubuntu kernel can be revived that I know of, so the problem can't be debugged easily.

Second, using my modified 4.0-rc7 as described above, the lid switch proves not to be entirely broken. Sometimes you can close the lid and open it again and see in dmesg that it did indeed open. You can hook it to "suspend on lid switch closed" and it will do it. But it doesn't last and pretty soon you find that reopening the lid is not detected any more. I can't say if it is time or the presence of some program or event, but it just isn't stable. I've suggested that launchpad bug 1436620 be closed due to this irreproducibility.

By the way, does anybody know the actual technology and location of the lid switch?

GpaFrankolin

unread,
Apr 10, 2015, 5:44:20 PM4/10/15
to linux-...@googlegroups.com
I did try comment #97 (https://bugzilla.kernel.org/show_bug.cgi?id=84651#c97) and it greatly improves the operation of the touchpad.

This change goes in different places in different distributions. For Ubuntu and other Debian distributions it is a file with a name like "/usr/share/X11/xorg.conf.d/50-synaptics.conf". The changes consist of some simple additions to sections that are already in the file. It's not part of the kernel but you do need to edit it as root.

For Ubuntu, at least, #99 is apparently already in place.

There is no middle button, even though it looks like there is provision for it. Does anyone know how you would implement that?

Kenny Speer

unread,
Apr 11, 2015, 2:24:26 PM4/11/15
to linux-...@googlegroups.com
Created a github repository for a consolidated location of the patches I'm using and include build instructions as well as pre-build kernels that match what I'm currently running.

I have not added anything for suspend or the trackpad swap to synaptics as I haven't had time to play with those yet.  Will keep the github updated if anyone finds it helpful as my SP3 is my main machine with only Ubuntu 15.04 (i don't dual boot).


~kenny

Kenny Speer

unread,
Apr 15, 2015, 11:43:06 AM4/15/15
to linux-...@googlegroups.com
I just noticed that with the latest kernel + patches for buttons, camera, and battery that suspend actually works.  I used the powerbutton to suspend and voila ... issues with 'deep freeze' but suspend seems to be working nicely.  After an hour commute, battery was still at 100% and:

Apr 15 07:37:14 reeps-sp3 systemd[1]: Starting Suspend...
Apr 15 07:37:14 reeps-sp3 systemd-sleep[4925]: Suspending system...
Apr 15 08:39:11 reeps-sp3 kernel: [ 4667.249061] PM: Syncing filesystems ... done.
Apr 15 08:39:11 reeps-sp3 kernel: [ 4667.331643] PM: Preparing system for freeze sleep
Apr 15 08:39:11 reeps-sp3 kernel: [ 4667.332019] Freezing user space processes ... (elapsed 0.001 seconds) done.

I'm quite happy with my SP3 right now ...

GpaFrankolin

unread,
Apr 15, 2015, 8:59:59 PM4/15/15
to linux-...@googlegroups.com
Kenny,

My system's behaviour has not changed a bit. I need to figure out how what we our systems differ.

I am using Linus's 4.0 (released last weekend) with all of the patches described in my first post. If I put in the version of pm-functions that uses "freeze," I get the same unsatisfactory behaviour I have mentioned above. If I replace it with the original version "suspend" simply becomes a way of achieving "lock." I can find no indication in any log of special activity after attempting to suspend. From the point of view of the logs it isn't even trying to suspend and failing, although the screen does do an extra blink in the suspend case.

What"s different???


Ethan Schoonover

unread,
Apr 15, 2015, 9:49:05 PM4/15/15
to GpaFrankolin, linux-...@googlegroups.com
FWIW, I'm also having suboptimal suspend results. I was convinced
things were working well for a while, but I currently have a specific
issue under Arch+Gnome (3.19.3-2-surfacepro3 kernel based on the AUR
package and Gnome 3.16).

Right now if I suspend the typecover backlighting will remain on.
Clearly it's not being put into a low power state. Kernel logging was
showing ACPI errors for a while but even that has disappeared (so
suspend looks "successful" in the logs)...

I'm considering normalizing testing by booting just to a vtty and not
gnome, avoiding gnome power management stepping in.
> --
> You received this message because you are subscribed to the Google Groups
> "Linux Surface" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to linux-surfac...@googlegroups.com.
> To post to this group, send email to linux-...@googlegroups.com.
> Visit this group at http://groups.google.com/group/linux-surface.
> For more options, visit https://groups.google.com/d/optout.

Matthew Wardrop

unread,
Apr 15, 2015, 10:59:32 PM4/15/15
to Ethan Schoonover, GpaFrankolin, linux-...@googlegroups.com
FWIW#2, I experience similar problems. It seemed to be working better before. Is that just me?

GpaFrankolin

unread,
Apr 19, 2015, 9:15:24 PM4/19/15
to linux-...@googlegroups.com


On Monday, April 6, 2015 at 2:03:36 PM UTC-4, Hironimus wrote:
Hi,

I am using the autorotate script from https://github.com/AykoPoel/surface3-scripts and it is working fine.

regards
Hironimus


Hironimus is correct that the items from AykoPoel work. It's nice to know how to access the accelerometer. However, they are not able to be used for trouble-free autorotation for two reasons: (1) they require user action from the terminal and (2) the performances of all pointing devices is compromised because the autorotate.py program is consuming noticeable CPU resources while it is running.

It is easy to use system settings -> display to rotate the display manually and the drawing tools that you might want in the alternate orientation will not be slowed down.

GpaFrankolin

unread,
Apr 19, 2015, 9:26:43 PM4/19/15
to linux-...@googlegroups.com
It's been pointed out that two of the patches in this discussion will be included in the upcoming Linux 4.1. That's good.

But I am puzzled about why the ultra-simple camera patch has not been incorporated. It could hardly require extensive testing else since it's just a pair of table entries keyed by the unique identifiers of the cameras.

Is there something that we, the SP3 supporters, have not done to catch Linus' people's attention to this?

Just asking.

Ethan Schoonover

unread,
Apr 19, 2015, 9:34:16 PM4/19/15
to GpaFrankolin, linux-...@googlegroups.com
On Sun, Apr 19, 2015 at 9:26 PM, GpaFrankolin <zismy...@gmail.com> wrote:
> But I am puzzled about why the ultra-simple camera patch has not been
> incorporated. It could hardly require extensive testing else since it's just
> a pair of table entries keyed by the unique identifiers of the cameras.
>
> Is there something that we, the SP3 supporters, have not done to catch
> Linus' people's attention to this?

I am a little disappointed that the UVC mailing list (which I still
believe is the list responsible for merging in uvc patches) never
replied to any of three separate messages from Benasse to that list
(see: http://sourceforge.net/p/linux-uvc/mailman/message/33135203/ ).
I did go back and review the list details at one point and I suspect
part of the reason is that they have specific format expectations when
submitting patches (i.e. not just a link to random github, etc.). It
would have been nice to have a note from them to this effect in
response to the original (polite) queries from Benasse, but no matter.
I think the next step should be to submit a patch as per their
specifications. I'm on the road right now and not able to handle this
today or tomorrow. If someone else wanted to give a try, excellent.
Please note that you've done so on this thread. Otherwise I'll try to
submit a patch later this week.

Cheers,
Ethan

Kenny Speer

unread,
Apr 21, 2015, 12:50:23 PM4/21/15
to linux-...@googlegroups.com
I'm not using 4.0 kernels, I'm using the ubuntu-vivid kernel from git, applying the 4 patches and building on my SP3.  Current version I'm running is:

 Linux reeps-sp3 3.19.0-14-generic #15 SMP Wed Apr 15 09:41:49 PDT 2015 x86_6    4 x86_64 x86_64 GNU/Linu

I haven't updated to 3.19.0-15 since ubuntu git hasn't been updated yet.  I have not investigated which additional patches ubuntu is applying from the generic kernel.

GpaFrankolin

unread,
Apr 21, 2015, 7:36:56 PM4/21/15
to linux-...@googlegroups.com
Kenny,

I haven't figured out how to get and build such a kernel (I use David Elner's instructions for official Linux kernels which work great). Could you send a link that describes the procedure?

You might also post the linux-image...deb and linux-headers...deb from which someone could install your builds.

Thanks

Kenny Speer

unread,
Apr 23, 2015, 12:06:55 PM4/23/15
to linux-...@googlegroups.com
From previous post on the 11th:

Created a github repository for a consolidated location of the patches I'm using and include build instructions as well as pre-build kernels that match what I'm currently running.

I have not added anything for suspend or the trackpad swap to synaptics as I haven't had time to play with those yet.  Will keep the github updated if anyone finds it helpful as my SP3 is my main machine with only Ubuntu 15.04 (i don't dual boot).


~kenny
- show quoted text -
Reply all
Reply to author
Forward
0 new messages