Github Kernel für Surface Go 3 installieren

  • Servus beinander!

    Ubuntu 23.04 ist installiert und bevor ich an den Kernel gehe möchte ich mich nochmal an die Kompetenz hier wenden.


    Hier:

    Installation and Setup
    Linux Kernel for Surface Devices. Contribute to linux-surface/linux-surface development by creating an account on GitHub.
    github.com

    Unter "Surface Kernel Installation" im zweiten Absatz wird auf folgendes hingewiesen:

    ……

    Before installing the custom kernel, make sure that you have installed the DKMS version of any out-of-tree kernel module that you have installed (zfs -> zfs-dkms, nvidia -> nvidia-dkms etc.). Otherwise these modules will not work with the custom linux-surface kernel. If you do not know what DKMS/akmod or ZFS are, or do not rely on the ZFS file-system, you can (very likely) ignore this part. All drivers you need for basic operation should be included in the kernel itself and any external kernel modules can always be installed later.


    Die automatische Übersetzung ist für mich auch nicht ganz verständlich:

    Stellen Sie vor der Installation des angepassten Kernels sicher, dass Sie die DKMS-Version installiert haben eines Out-of-Tree-Kernel-Moduls, das Sie installiert haben ( -> , -> usw.). Andernfalls funktionieren diese Module nicht mit dem benutzerdefinierten linux-surface-Kernel. Wenn Sie nicht wissen, was DKMS/akmod oder ZFS sind, oder sich nicht auf das ZFS-Dateisystem verlassen, können Sie diesen Teil (sehr wahrscheinlich) ignorieren. Alle Treiber, die Sie für den grundlegenden Betrieb benötigen, sollten im Kernel selbst enthalten sein, und externe Kernelmodule können später immer noch installiert werden.

    Dies verstehe ich so:

    DKMS (??) muss (bei meiner aktuellen Ubuntu Installation) außerhalb des Kernel Modules installiert sein, vermutlich weil der neue/angepasste Kernel dies sonst zerstört?

    Liest sich aber unter dem Strich so:

    Stellen sie sicher dass….Wenn sie nicht wissen was "das" ist

    können sie dies sehr wahrscheinlich ignorieren..*Klatsch* *Klatsch* *Klatsch*


    Was muss ich

    mit genau welchen Terminalbefehlen überprüfen

    Und genau welche Ergebnisse sollte ich haben um den Kernel installieren zu können?


    Im Anschluss würde ich dann den ersten Installationsweg benützen:

    There are multiple ways in which you can install and set up the linux-surface kernel:

    Use one of our binary package repositories which allows for automatic kernel updates via the package manager of your distribution.

    Unter Debian Repository muss man dann nur drei Befehle ausführen - thats all??

    Vielen Dank nochmal für Euer Interesse und Eure Hilfe

    Gruaß Gert

  • Ich habe das Go 2 und habe es so gemacht:

    Unter Debian/Ubuntu

    Das ist alles dann läufts!

    Vor der Installation Secure Boot im BIOS ausstellen (Beim Booten Power & Leise-Taste gleichteitig drücken)

    Zitat

    If you do not know what DKMS/akmod or ZFS are, or do not rely on the ZFS file-system, you can (very likely) ignore this part

    Manually installing the repository

    First you need to import the keys we use to sign packages.

    Code
    wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc \    | gpg --dearmor | sudo dd of=/etc/apt/trusted.gpg.d/linux-surface.gpg

    After this you can add the repository configuration and update APT.

    Code
    echo "deb [arch=amd64] https://pkg.surfacelinux.com/debian release main" \
        | sudo tee /etc/apt/sources.list.d/linux-surface.list
    Code
    sudo apt update

    If you encounter any issues reading "Error 401 Unauthorized" during the update or the installation below, please have a look at this.

    Now you can install the linux-surface kernel and its dependencies.

    Code
    sudo apt install linux-image-surface linux-headers-surface libwacom-surface iptsd

    Important: Support for iptsd only goes back to the latest LTS release at the time of writing (Debian 11 and Ubuntu 22.04). If you are using an older release, and the above command fails, then please remove iptsd from it. You will still be able to use basic singletouch through the kernel driver, but multitouch and the stylus will not work.

    After that you can install our secureboot key. This will import the key that the linux-surface kernel is signed with into your bootloader, so that the kernel is bootable without disabling secureboot.

    Code
    sudo apt install linux-surface-secureboot-mok

    This package will print instructions to the terminal. In case you missed those: It will ask you to reboot. Then, upon reboot, a blue menu should pop up, asking you whether you want to enroll the key. Confirm with ok/yes and when asked for a password enter surface. In case you missed the menu or accidentally chose the wrong options, you can uninstall (fully) and then reinstall the package and reboot to trigger the menu again.

    Note that this will only work if your Debian derivative supports secure boot out-of-the-box. If if not, please consult the wiki of your distribution and set up secure boot for distro/stock kernels first. You also want to skip installing the package for now and only install it after you have set this up.

    The linux-surface kernel will be installed alongside the default kernel provided by the distribution. This way you have a backup kernel you can use if something goes wrong. The bootloader will pick up the kernel by default, but you should update its configuration to make sure it was recognized.

    Code
    sudo update-grub

    Finally, reboot your system and you should boot into the linux-surface kernel. Please make sure you are actually using the right kernel by checking if the output of uname -a contains the string surface. If it doesn't contain that string, you are still using the default kernel and need to configure your bootloader.

    Work-PC: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 + Nvme M.2 | Steam Deck | Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

    3 Mal editiert, zuletzt von Actionschnitzel (19. Juli 2023 um 12:32)

  • Hallo Actionschnitzel,

    Vor der Installation Secure Boot im BIOS ausstellen (Beim Booten Power & Leise-Taste gleichteitig drücken)

    Zitat

    If you do not know what DKMS/akmod or ZFS are, or do not rely on the ZFS file-system, you can (very likely) ignore this part


    Manually installing the repository

    Ist das Deaktivieren des Secure Boot im BIOS im Zusammenhang zum Zitat?

    Oder ist es die von Dir gewählte Installationsmethode?

    Wahrscheinlich macht mir die Schwüle heute zu schaffen...

    scheinbar gibt es mehrere Varianten den Kernel aufzuspielen.

    Ich erkenne die genauen Unterschiede in der Auswirkung nicht.

    Diese Variante scheint für mich als Anfänger nicht schlecht:

    "Use one of our binary package repositories which allows

    for automatic kernel updates via the package manager of your distribution."

    Danke für Deine Antwort

    Grüße vom schwülen Alpenrand

    Gert

  • LinLux

    Ich habe keine Erfahrung mit dem Surface Kernel aber ich verstehe was hier gemeint ist. Wenn du Kernel Treiber (Module) verwendest die nicht direkt im Kernel sind - klassisch Nvidia Treiber musst du zwingend die DKMS Version haben.

    Zur Erklärung was DKMS ist:

    DKMS steht für "Dynamic Kernel Module Support". Ohne DKMS hast du z.b. folgendes Problem. Du hast auf deinem Linux Rechner den Kernel 6.2.1 installiert, dazu hast du den Nvidia Treiber nvidia-520 installiert.

    Bei der Installation vom Nvidia Treiber hat das geklappt, da das Nvidia Paket gesehen hat welcher Kernel installiert ist und seine Treiber in den entsprechenden Ordner geschoben hat (etwas vereinfacht).

    Nehmen wir an deine Distribution haut nun ein Kernel Update z.b. Version 6.2.2 heraus.

    Ohne DKMS passiert folgendes:

    Kernel 6.2.2 wird installiert, dein Bootloader (z.b. Grub) wird angepasst und nach einem Neustart ladet der Kernel 6.2.2 und deine Nvidia Grafikkarte geht nicht mehr -> weil der Treiber nur im 6.2.1 Ordner ist.

    Mit DKMS: Hast du quasi einen Event der erkennt "ohh Kernel wird aktualisiert", da wird dann automatisch nach der Installation des neuen Kernels quasi das Nvidia Modul "neu installiert" und ebenfalls in den Ordner des neuen Kernel geschoben.

    Nach einem Neustart hast du nun aktuellen Kernel + funktionierende Nvidia Treiber.

    Dies gilt für alle Treiber die ausserhalb vom Kernel entwickelt werden wie z.b. ZFS oder Nvidia.

    Bei Ubuntu musst du dir allerdings keine Sorgen machen - sofern du alle bisherigen Treiber über die offiziellen Ubuntu Repositorys gezogen hast, wird dazu immer automatisch das passende DKMS Paket installiert.

    Der Grund warum die Surface Kernel Entwickler darauf hinweisen, ist das nicht alle Distributionen solche DKMS Module haben bzw. sie automatisch installieren.

    Was bedeuten würde, wenn du nun z.b. den ZFS Treiber in deinem System hast ohne DKMS das er nach der Installation des Surface-Kernel ZFS nicht mehr funktionieren würde.

    Ich hoffe das war weitgehend verständlich.

    Mit folgendem Terminal Befehl, kannst du sehen ob du überhaupt DKMS Module auf deinem System hast:

    Code
    ls -l /var/lib/dkms

    Als Ausgabe kommt entweder "Insgesamt <<ZAHL>>" diese Zahl zeigt dir die Anzahl der DKMS Treiber an.

    Oder es kommt: "ls: Zugriff auf '/var/lib/dkms' nicht möglich: Datei oder Verzeichnis nicht gefunden" (oder so ähnlich) -> dann hast du keine DKMS Module und DKMS ist nicht mal installiert.

    --
    Ciao!

    Linux Nutzer seit über 20 Jahren. I ❤️ Freedom!

    Offizieller Proton-Botschafter aus der Schweiz 🇨🇭 😅

    Meine Haupt-Distribution ist Ubuntu.

    Mein Blog: https://rueegger.me

    Wer meinen sinnlosen Gedanken folgen möchte, kann dies gerne auf Mastodon tun: https://swiss.social/@srueegger

  • Ist das Deaktivieren des Secure Boot im BIOS im Zusammenhang zum Zitat?

    Oder ist es die von Dir gewählte Installationsmethode?

    Sorry für die undeutliche Ausführung.

    Du musst Secure Boot ausmachen, um überhaupt ein Installationsmedium starten zu können (Beim Go2 mit Ubuntu und Mint zumindest).

    Im letzten Installation-Schritt wird Linux quasi als SICHER verifiziert und Secure Boot kann dann wieder eingestellt werden

    Code
    sudo apt install linux-surface-secureboot-mok
    #Neustart
    #MOK Passwort(surface) wird abgefrage


    In dem Video wirds es einigermaßen erklärt [ab 5:04 min]

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Work-PC: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 + Nvme M.2 | Steam Deck | Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

    2 Mal editiert, zuletzt von Actionschnitzel (19. Juli 2023 um 20:04)

  • kim88: es ist immer wieder erstaunlich und herrlich zugleich, wie toll du Dinge erklären kannst. Ich danke dir dafür! 👌🙏

    HP Elitebook 820 G3 | i5-6200U | Integr. Intel Graphikkarte | 8 GB RAM | 240 GB SSD | 1 TB NVME | MX 23 xfce

  • Oder es kommt: "ls: Zugriff auf '/var/lib/dkms' nicht möglich: Datei oder Verzeichnis nicht gefunden" (oder so ähnlich) -> dann hast du keine DKMS Module und DKMS ist nicht mal installiert.

    Das ist wirklich sehr verständlich erklärt :thumbup: - Danke!

    Die Terminalabfrage ergibt genau eines der Resultate:

    …..VZ nicht gefunden.

    Dann werde ich demnächst den Surface Kernel installieren.

    Vielen Dank Dir nochmal

    Gruaß Gert

  • Hier noch eine kleine Anmerkung zum Thema Secureboot.

    Wichtig zu wissen beim Surface Kernel: das MOK-Zertifikat funktioniert nur im Auslieferungszustand des Kernels. Modifiziert man diesen Nachträglich um weitere Module, muss man zwingend Secureboot deaktivieren, da ansonsten das System nicht mehr startet.

    Ich nutze nobara Linux unter dem Surface Go 1, was auf Fedora basiert und hier gibt es neben den surface Anpassungen noch weitere angepasste Module. Die Distribution bietet deshalb auch kein MOK-Zertifikat an, sodass man hier mit dem hässlichen roten Schloss beim booten leben muss.

  • Was bei mir relativ unschön war: Nach dem ich Ubuntu getestet hatte und dann doch Mint installieren wollte hat USB-Boot nicht mehr funktioniert und ich musste über Grub den Stick manuell booten. Das war mit englischer Tastaturbelegung echt nervig.

    Hast du ne Ahnung was das Problem sein könnte? Natülich is USB in der Boot-Order auf 1.

    Work-PC: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 + Nvme M.2 | Steam Deck | Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

  • Kurze Rückmeldung:

    Der Surface Kernel ist (überprüft) drauf - ohne Probleme!

    Danke nochmal allen Helfern.

    Jetzt muss ich die Kamera noch nutzbar machen.

    Dazu mach ich im entsprechenden Unterforum eine Frage auf

    An scheen Gruaß

    Gert

  • Genau nach dieser Anleitung bin ich vorgegangen leider gleich mit Fehlermeldungen:

    Aber danke für den Hinweis

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!