Installieren von Ubuntu auf Surface Pro 4

7

Ich bin von Win 10 zu Ubuntu 16.04 gewechselt. Ich habe versucht, diesem Artikel und diesem Video zu folgen, bin aber immer noch auf Probleme gestoßen, da die neueste Kernel-Version 4.6.3 ist.
Ich verwende immer noch den Kernel, der mit Ubuntu 4.4.0 installiert wurde.

Kurz gesagt, meine Tastatur, mein Touchpad, mein Touchscreen, die Lautstärke- und Einschalttasten, der Stift, die WLAN-Anzeige (obere rechte Ecke) und die Kamera funktionieren nicht.
Ich habe es geschafft, Wifi und Bluetooth zum Laufen zu bringen.

Kann mir jemand beim Schreiben / Finden von Patches und beim Neukompilieren des Kernels helfen?


Bitte poste alle Updates und Probleme auf My GitHub Organisation und jeder Beitrag wird geschätzt

Deriver-Konfiguration und Module

Um das Type Cover zum Laufen zu bringen, führen Sie das SP4-1Skript von deriver-config aus

Amir
quelle
Jede Hilfe wäre großartig und sehr dankbar, ich habe genau das gleiche Problem. Der Touchscreen funktioniert nicht, ebenso wenig wie der Surface Pro Pen und das Mauspad. @Amir Wenn Sie eine Lösung finden, teilen Sie diese bitte hier mit.
Tomasito665
Der Kernel in Ubuntu 17.04 ist 4.10 und bietet zusätzliche Unterstützung für Microsoft Surface.
James
Ich habe auf 17.04 aktualisiert, die Skalierung ist schrecklich und die Touchpad-Gesten sind weg.
Amir

Antworten:

2

Ich habe einen ziemlich schönen Surface Pro 4-Kernel, der auf meiner Ubuntu-Installation läuft.

Der Rundown

Was funktioniert:

  • WiFi / Bluetooth
  • Multi-Touch
  • Stift
  • Trackpad auf der Schreibabdeckung

Was funktioniert etwas:

  • Ruhezustand - nach dem Lebenslauf gibt es keine Berührung oder Stift

Was nicht:

  • aussetzen (siehe Hinweis zum Energiesparen weiter unten)
  • Einfrieren (die Version von Suspend / Sleep, die mehr Batterie verbraucht und nicht zuverlässig funktioniert)
  • die Schreibabdeckung

Was ich nicht ausprobiert habe:

  • die Kameras

Grund Idee

Die allgemeine Idee hinter diesem Kernel besteht darin, die von Hyungwoo Yang unter https://github.com/ipts-linux-org/ipts-linux-new/wiki vorgenommenen Änderungen auf den Ubuntu 4.9rc3-Kernel anzuwenden. Hier sind die Schritte, um den Kernel in Ordnung zu bringen. Der Kompilierungsprozess dauert ca. 45 Minuten mit allen Kernen von Surface 4. Das Klonen der Kernel-Repositorys erfordert ca. 1,5 GB Speicherplatz.


Schritte zum Erstellen des Kernels

  1. Installieren Sie Ubuntu 16.10 yakkety. Um dies zu erreichen, benötigen Sie einen USB-Hub, der sowohl Ubuntu Live-USB als auch Tastatur / Maus unterstützt.

  2. Booten Sie Linux mit einer USB-Tastatur.

  3. Bereiten Sie den Ubuntu 4.9rc3-Kernel vor.

    • Klonen Sie den Ubuntu 4.9rc3-Kernel (benötigt ca. 1,5 GB Speicherplatz):

      git clone git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.9-rc3

    • Laden Sie 6 Patches herunter: Patch1 Patch2 Patch3 Patch4 Patch5 Patch6

    • Wenden Sie die Patches in der folgenden Reihenfolge auf den Kernel an: do

      git am /path/to/THEPATCH.patch

      für jeden der Patches.

  4. Erstellen Sie einen Patch mit Touch / Pen-Unterstützung aus dem ipts-linux-new-Kernel.

    • Klonen Sie den Kernel (benötigt ca. 1,5 GB Speicherplatz) in ein anderes Verzeichnis:

      git clone https://github.com/ipts-linux-org/ipts-linux-new.git

    • Erstellen Sie den Patch:

      git diff 0c183d92b20b5c84ca655b45ef57b3318b83eb9e > /path/to/ipts-linux-new_patch.txt

  5. Wenden Sie den ipts-linux-new-Patch auf v4.9rc3 an

    `cd /path/to/v4.9rc3`
    `patch -p1 < /path/to/ipts-linux-new_patch.txt`
    `git add .`
    `git commit -m 'Patch for Surface Pro 4 taken from ipts-linux-new.'`
    
  6. Kompilieren Sie den Kernel und erstellen Sie Ubuntu .deb-Pakete (kopiert von Ubuntu Kernel Compilation ).

    cd /path/to/v4.9rc3

    • Initialisieren Sie die Debian-Dateien:

      fakeroot debian/rules clean

    • Konfigurieren Sie den Kernel, den Sie erstellen möchten:

      fakeroot debian/rules editconfigs

      • Sagen Sie nur zur amd64-Frage Ja. Dies zeigt die Fluchoberfläche "menuconfig". Aktivieren Sie die folgenden zwei Optionen:
        • Gerätetreiber -> NVM Express Lock-Gerät (y)
        • Gerätetreiber -> Verschiedene Geräte -> Intel Precise Touch & Stylus (m)
    • kommentieren oder entfernen Sie "do_zfs = true" in "/path/to/v4.9rc3/debian.master/rules.d/amd64.mk"

    • Benennen Sie den Kernel um, indem Sie "/path/to/v4.9rc3/debian.master/changelog" bearbeiten.

  7. Kompilieren Sie den Kernel (verwenden Sie mehr Threads als Prozessoren, um ihn schneller zu machen).

    `fakeroot debian/rules clean` #necessary, but I don't know why
    `DEB_BUILD_OPTIONS=parallel=5 fakeroot debian/rules binary-headers binary-generic binary-perarch`
    
  8. Im Verzeichnis neben v4.9rc3 sollten vier neue .debs erstellt werden. Installieren Sie die .debs mit dem folgenden Befehl:

    `sudo dpkg -i linux-image-* linux-headers-4.9.0-040900rc3*`
    
  9. Kopieren Sie Treiberdateien von Windows nach Linux:

    • Kopieren Sie die Treiberdateien von "\ Windows \ INF \ PreciseTouch \ Intel" in das Linux-Verzeichnis "/ lib / firmware / intel / ipts". Es sollten mindestens 4 Dateien mit ähnlichen Namen vorhanden sein:

      • iaPreciseTouchDescriptor.bin
      • SurfaceTouchServicingSFTConfigMSHW0078.bin
      • SurfaceTouchServicingDescriptorMSHW0078.bin
      • SurfaceTouchServicingKernelSKLMSHW0078.bin
    • Erstellen Sie symbolische Links zu diesen Dateien:

      cd /lib/firmware/intel/ipts

      ln -s iaPreciseTouchDescriptor.bin intel_desc.bin

      ln -s SurfaceTouchServicingSFTConfigMSHW0078.bin config.bin

      ln -s SurfaceTouchServicingDescriptorMSHW0078.bin vendor_desc.bin

      ln -s SurfaceTouchServicingKernelSKLMSHW0078.bin vendor_kernel.bin

Sie sollten jetzt in der Lage sein, den neuen Kernel zu starten. Wenn sich die Links an der richtigen Stelle befinden, funktionieren Touch und Stift einwandfrei.


Hinweis zum Energiesparen

Die fehlende Suspend-Funktionalität ist ein großer Nachteil. Dies ist auf das Microsoft-Fiasko "Connected Standby" zurückzuführen: https://lwn.net/Articles/580451/ . Freeze verbraucht mehr Batterie (leert die Batterie möglicherweise halb so schnell, als hätten Sie den Computer eingeschaltet gelassen) und scheint nicht zuverlässig zu sein. Im Ruhezustand wird der Status erfolgreich beibehalten, aber leider funktionieren die Funktionen für Berührungen und Stifte nach der Wiederaufnahme nicht.

Krumpelstilzchen
quelle
Wenn ich es herausfinden kann, werde ich den Kernel zu einer PPA hinzufügen.
Krumpelstilzchen
@Amir: Gibt es einen Grund, warum du das Repo Ububtu und nicht Ubuntu genannt hast?
Krumpelstilzchen
Ich glaube, es war ein Tippfehler, der jetzt behoben wurde! GitHub Repo
Amir
Ich habe gerade eine Typabdeckung bekommen, die mit diesem Kernel nicht funktioniert. Ich bin auf einen bereits kompilierten Kernel gestoßen, in dem alles funktioniert. Siehe die Antwort: askubuntu.com/a/888596/14747
krumpelstiltskin
2

Ich habe diesen Leitfaden auf Reddit verwendet

Hätte es Probleme mit dem Einfrieren des Kernels von fridgecow und konnte nie richtig neu gestartet oder heruntergefahren werden, würde nur einfrieren, wenn das Ubuntu-Logo nichts tut.

Ich habe cantenna's (6a und 7a) verwendet und funktioniert gut, außer dass ich nicht aus dem Schlaf erwache und die Lautstärketasten nicht funktionieren.

Laden Sie diese Datei herunter (der gepatchte Kernel)

cdin das Verzeichnis, in das es gegangen ist (zB cd Downloads) und installieren Sie die Pakete

sudo dpkg -i './linux-headers-4.4.0-rc8touchkernel+_1_amd64.deb'
sudo dpkg -i './linux-image-4.4.0-rc8touchkernel+_1_amd64.deb'

Mounten Sie Ihre Windows-Partition (Sie können die Dateien von hier herunterladen , wenn Sie Ihre Windows-Partition gelöscht haben oder nicht finden können) und kopieren Sie die Dateien in Ihr Ubuntu-Stammverzeichnis (möglicherweise müssen Sie den Pfad abhängig vom Mountpunkt Ihrer Windows-Partition anpassen ::

sudo mkdir /itouch
cp /media/$USER/Windows/Windows/INF/PreciseTouch/Intel/* /itouch

Erstellen Sie nun Symlinks zu den Dateien, damit der Treiber sie finden kann

sudo ln -sf /itouch/SurfaceTouchServicingKernelSKLMSHW0078.bin /itouch/vendor_kernel_skl.bin
sudo ln -sf /itouch/SurfaceTouchServicingSFTConfigMSHW0078.bin /itouch/integ_sft_cfg_skl.bin
sudo ln -sf /itouch/SurfaceTouchServicingDescriptorMSHW0078.bin /itouch/vendor_descriptor.bin
sudo ln -sf /itouch/iaPreciseTouchDescriptor.bin /itouch/integ_descriptor.bin

Sie müssen dann sicherstellen, dass Sie die Option haben, diesen Kernel zu starten, oder ihn standardmäßig auf Boot setzen, indem Sie GRUB konfigurieren.

user3518221
quelle
Vielen Dank für das Feedback, wie ich meine Beiträge für andere verbessern kann.
user3518221
1

Auf SP4 werden Touch-Algorithmen auf der GPU ausgeführt, sodass herkömmliche Treiber nicht funktionieren

Hier ist der Github-Link: https://github.com/ipts-linux-org/ipts-linux/wiki

Touchscreen, Surface Pro Stift ..

IPTS steht für: Intel Precision Touch und Stylus.

In diesem Github-Repo gibt es einen speziellen Kernel mit Touchscreen-Treiber.

Es tut uns leid, dass Sie einen bestimmten Kernel ausgewählt haben, aber Patches müssen nach 4.4 auf jeden Kernel anwendbar sein.

ardaC
quelle
Ich habe versucht, mich um dieses Repo zu kümmern, aber ich bin nicht weit genug fortgeschritten, um dies zu tun ...
Amir
0

Ich habe den besten Kernel gefunden. Es wird das gleiche Patch-Set verwendet, das in meinem anderen Beitrag beschrieben wird, sowie andere, mit denen das Typ-Cover zusammen mit Multi-Touch auf dem Trackpad funktioniert. Ich habe es mit meiner 16.10-Installation ausgeführt.

Dieser Kernel erfordert wenig Arbeit vom Benutzer, da er bereits in .deb-Paketen kompiliert ist, die Sie herunterladen können.

Was funktioniert:

  • berühren
  • Stift
  • W-lan
  • Tastatur
  • Trackpad
  • Tasten für die physische Lautstärke und Tastenkombinationen

Was nicht:

  • Schlaf
  • gelegentlich fehlerhaft

Es macht keinen Sinn, die Richtungen zu plagiieren, da sie dynamisch und gut formuliert sind:

https://www.reddit.com/r/SurfaceLinux/comments/4t64zt/getting_the_sp4_running_with_ubuntu_1604/

Krumpelstilzchen
quelle
@Amir: Dies ist eine wirklich einfache Möglichkeit, einen schönen Kernel zu installieren!
Krumpelstilzchen
0

Ich schreibe / maus von Ubuntu 16.10 auf SP4. Um hierher zu gelangen, habe ich Folgendes getan:

  • Laden Sie Ubuntu über den USB-Hub für die Tastatur- / Mausunterstützung

  • sudo apt-get install die folgenden zwei Pakete:

  • ukuu(EINFACH!) Update auf den neuesten RC-Kernel (4.10-rc8). DIESES unterstützt jetzt die magnetische SP4-Tastatur / -Maus (danke, Kernel-Leute!). NUR NIGGLE: Wireless, also googeln und patchen.

  • grub-customizer um Win10 / Ubuntu / Mint zu wählen.

Ubuntu funktioniert ohne herumhüpfen, ich habe 16.10 yakkety gewählt, da ich 16.04 xenial min / max / close auf UL des Bildschirms nicht mag, und habe nie einen einfachen Weg gefunden, dies zu umgehen.

Linux MINT startet auch mit Tastaturunterstützung (nach dem Upgrade des Kernels auf 4.10-rc8), jedoch nicht mit dem Maus-Touchpad.

user258424
quelle
16.04 ist Xenial, nicht Zenity .....
Elder Geek
Könnten Sie bitte bestätigen, dass git clone git://git.marvell.com/mwifiex-firmware.git mkdir -p /lib/firmware/mrvl/ sudo cp mwifiex-firmware/mrvl/* /lib/firmware/mrvl/die Probleme mit der drahtlosen Verbindung behoben werden?
Amir
Amir, ERFOLG !! Ich musste Ihren Befehl in die 3 Teile aufteilen und sie einzeln ausführen (oder es gab Fehler), gefolgt von einem Neustart zusammen mit ein paar zusätzlichen 'apt-get update \ apt-get upgrade \ apt-get dist-upgrade' ( bis es keine Updates / Upgrades mehr gab) und einen weiteren Neustart und ich antworte vom Hotel Wireless. VIELEN DANK !!
user258424
Zwei Ergänzungen: - Kann Zimt zu Gnome 16.1 hinzufügen (es funktioniert einwandfrei) und - Update auf Kernel 4.10 (KEIN RC) mit Ukuu (siehe oben). Es sind alles Regenbogen, Einhörner und Schmetterlinge <G>.
user258424
Also funktionieren Stift und Touch mit dieser Installation? Wie wäre es mit Winterschlaf oder Suspendieren oder Einfrieren?
Krumpelstilzchen
0

Es gibt ein Personal Package Archive (PPA) mit dem für Sie verpackten Kernel unter: https://launchpad.net/~tigerite/+archive/ubuntu/kernel .

Befolgen Sie die Anweisungen unter "Hinzufügen dieser PPA zu Ihrem System" und führen Sie dann die angegebenen apt-Befehle aus.

Es ist wahrscheinlich besser, mit einer Installation von Xenial (16.04) als mit Yakkety (16.10) zu beginnen, da es seit Mai kein aktuelles Update der PPA gibt.

Krumpelstilzchen
quelle
#install linux-surface kernel sudo apt-add-repository ppa:tigerite/kernel sudo apt-get update sudo apt-get upgrade sudo apt-get install linux-surfaceAus dem SP4-1Skript auf meinem Github. Ich warte auf die 4.5 Version! Trotzdem danke :)
Amir
Nun ... ich habe es auf meinem SP4 versucht und die Ergebnisse waren nicht erstaunlich. Die Berührung und der Stift funktionierten nicht.
Krumpelstilzchen
Ich kann mich nicht erinnern gesagt zu haben, dass sie funktioniert haben!
Amir