Verslag: OpenSuSE installeren op een ASUS TUF A15

Hallo,

Sedert twee weken ben ik de eigenaar van een ASUS TUF A15-laptop. De laptop werkend met OpenSuSE krijgen was uitdagend, maar volledig geslaagd, dus als hulp voor anderen die voor deze klus staan, meldt ik hier mijn bevindingen. Deze informatie is waarschijnlijk tevens nuttig voor bezitters van andere ASUS-laptops met een AMD Renoir-processor, waaronder de Asus Zehphyris G14 en G15 en wellicht zelfs voor niet ASUS-laptops.

Op mijn vorige laptop stond een OpenSuSE 15.0. Omdat ik geen zin had om met een schone installatie te beginnen en al mijn applicaties, instelligen en fijntuning opnieuw begon was mijn eerste plan om te kijken of ik het oude systeem over kon zetten, liever de oude installatie naar een nieuwe SuSE actualiseren dan geheel opnieuw beginnen. De TUF A15 blinkt uit in storage, standaard zat er een 1TB SSD in, maar een redelijk laagwaardige QLC-SSD. Als je een Ferrari koopt, wil je er ook racebanden op hebben zitten, dus ik heb er een Samsung 970 Pro bijgeplaatst en die was beschikbaar voor OpenSuSE. De originele SSD staat nu nog Windows op, maar zal ik in nabije toekomst herformatteren voor bulkopslag. Om het systeem over te kunnen zetten monteerde ik de SATA-SSD van mijn oude laptop in de SATA-bay van de TUF A15.

In de goede oude tijd was het mogelijk het SuSE-rescue-systeem te laden, partities aan te maken, bestanden kopiëren en Lilo draaien. In de moderne tijd is één en ander veel complexer geworden. Om te beginnen ondersteunt de TUF A15 geen BIOS-boot, alles moet via UEFI. Enige poging om van de SATA-SSD te booten is tevergeefs. Ook het via UEFI opstarten van de openSuSE 15.2-installatie DVD en dan doorbooten naar de SATA-SSD brengt geen soelaas. In het verleden gebruikte OpenSuSE de kernel van de installatie-DVD, tegenwoordig probeert hij opnieuw te booten met de kernal van het geïnstalleerderde systeem. Met de Linux 4.2-kernal die ik op mijn systeem had, start de TUF A15 in het geheel niet op.

Het rescue-systeem met meegeleverde kernal van OpenSuSE 15.2 start wel normaal op, maar ook met een eigenaardigheid, zolang er een apparaat via USB aangesloten is, werkt alles prima, zodra je dit eruit haalt slaat de boel vast. Hoe dan ook, ik kon de SATA-SSD mounten, partities aanmaken op de Samsung 970 Pro en bestanden kopiëren. Daarna de kernal van OpenSuSE 15.2 in het systeem gezet. Nu restte nog het omzetten van Grub2 voor een UEFI-boot. Dat was nog best een gepruts met de configuratie, maar na enige tijd had ik het systeem zover dat ik met UEFI naar mijn oorspronkelijke installatie kon booten.

Die werkte nog wel uitsluitend met USB-stick in het apparaat, USB-stick verwijderen zorgde voor een onmiddelijke crash. Hints op internet gaven aan dat de minimale kernel voor de AMD-Renoir Linux 5.5 is, terwijl OpenSuSE 15.2 Linux 5.2 gebruikt. Ik downloadde de Linux 5.7-kernel van Tumbleweed en installeerde die. Probleem opgelost, ik kon nu veilig zonder sticks in de USB-poort opstarten.

Mijn systeem startte nog zonder X op. In de Xorg.conf stond de driver nog ingesteld op een Intel IGPU. Die direct op “amdgpu” zetten was optimistisch, ik zette hem op “modesetting”. Hierdoor startte X wel en had ik nu opeens een behoorlijk functioneel systeem tot mijn beschikking, met al mijn applicaties zoals ik het voorheen had. Wifi was functioneel, ik kon een webbrowser opstarten om informatie te zoeken en software te downloaden en dat maakte het werk vanaf dit punt stukken eenvoudiger.

Eerste punt van aandacht was het werkend krijgen van de amdgpu Xorg-driver. Iets wat AMD goed heeft gedaan met AMDGPU is het verwijderen van chipspecifieke zaken uit de Xorg-driver. Het is dan ook niet noodzakelijk om Xorg te actualiseren. Desondanks was de xf86-video-amdgpu te oud. Een nieuwere versie kon gevonden worden in het repo home:khnazile:video. Na toevoegen van dit repo en het actualiseren van xf86-video-amdgpu startte X op met de AMDGPU-driver.

Voor 3D-acceleratie was het nodig nog wat meer pakketten te actualiseren, namelijk libdrm2, libamd-gpu1, libgbm1, Mesa en bij deze libraries alle bijbehorende “subpakketten”. Daarma werkte 3D-acceleratie, kon ik Steam opstarten en werkten mijn spellen. De geïntegreerde GPU van de Renoir is een positieve verrassing, ik vind het opvallend hoe een groot deel van mijn spelcollectie soepel draait op de geïntegreerde GPU en omdat het op de geïntegreerde GPU draait, gaat dat ook bij laag energieverbruik. Je kunt met deze laptop in de trein op batterijen een serieus spel spelen.

In de laptop zit evenwel ook een Geforce GTX1660 voor het zware grafische werk. Ik had enigszins mijn twijfels of het zou lukken deze GPU werkend te krijgen, maar warempel, het is gelukt. Allereerst, de meeste bronnen op internet wijzen in de richting van nvidia-prime en suse-prime. Dit herconfigureert Xorg om beide drivers te laden, zodat je kunt wisselen tussen beiden. Het is mij na lang puzzelen niet gelukt dit werkend te krijgen. Wat ik ook probeerde, ik had ofwel de situatie dat X beiden drivers laadde en vervolgens de Nvidia-driver negeerde, ofwel de situatie dat de Nvidia-driver wel geladen werd, maar dan ook probeerde een desktop weer te geven op de Displayport-poort, terwijl het LCD-scherm van de laptop daardoor zwart bleef.

Allereest maar eens de driver. Nouveau is bij dit soort zaken vaak al snel foute boel en deze driver moet je saboteren, hij mag onder geen geval geladen worden. Je vind op internet vaak adviezen om in /etc/modprobe.d de module te blacklisten. Ik ben verder gegaan dan dat en heb de kernelmodule expliciet verwijderd en alle mogelijke nouveau-gerelateerde rpm-pakketten verwijderd.

Wat betreft de Nvidia-driver heb je een behoorlijk nieuwe versie nodig, nvidia-glG05-450.57, met iets dat ouder is komt je vanwege de recente kernel die we draaien niet weg. Ik moest de kernel-module met de hand compileren.

Nvidia-prime/Suse-prima gaf dus geen soelaas, maar ik had meer geluk met Bumblebee. Nu is ook dat niet triviaal, want Bumblebee ondersteund in de officiële releases alleen nog maar de combinatie van een Intel-IGPU en Nvidia-GPU. In de develop-branch van Bumblebee ( https://github.com/Bumblebee-Project/Bumblebee/tree/develop ), is evenwel code aanwezig voor AMD IGPU’s. Ik downloadde deze branch, compileerde hem en verving de Bumblebeed die via de OpenSuSE-rpm was geïnstalleerd door de gecompileerde. Na het afstellen van de configuratie in /etc/bumblebee, begon er iets te werken…

… behalve dat 3D-applicaties meteen crashten. Ik vond deze discussie:

https://github.com/Bumblebee-Project/Bumblebee/issues/988

… en warempel, de suggestie om de omgevingsvariabele __GLVND_DISALLOW_PATCHING=1 te zetten, lostte het probleem op.

De Nvidia-GPU is nu functioneel, het is mogelijk zowel de optirun-methode als de primusrun-methode te gebruiken voor het opstarten van een zware grafische applicatie op de Nvidia-GPU. (In Steam doe je dat eenvoudig door bij de opstartopties van een spel "primusrun %command% te tikken). Het enige dat niet werkt, en dit is een beperking van Bumblebee, is dat de Displayport-aansluiting van de laptop niet functioneel is, omdat deze met de Nvidia-GPU verboden is. Dit komt omdat Bumblebee de Nvidia-driver pas activeert zodra de GPU via optirun of primusrun geactiveerd wordt en de Nvidia-GPU daardoor niet actief is als een normale desktop getoond wordt. Voordeel is dan weer dat de Nvidia-GPU als hij niet nodig is in een diepe narcose wordt gehouden, zodat het energieverbruik ervan minimaal is. Voor een externe monitor is de HDMI-aansluiting van de laptop wel te gebruiken.

Ik beschouw de laptop verder nu als volledig functioneel, alles werkt, waaronder laptop-specifieke zaken zoals het regelen van de achtergrondverlichting en zelfs de toetsenbordverlichting vanuit Linux is functioneel. Ondanks dat de uitdagende klus alles werkend te krijgen is het een prima Linux laptop. Hij is razendsnel en voor een spellaptop verrassend licht en stil. Linux is tegenwoordig meer dan een uitstekend spelplatform en ook daar eigent deze laptop zich op Linux uitstekend voor, met name de geïntegreerde GPU werkt verrassend goed. Dus kortom, voor Linuxgebruikers is het een prima laptop, maar het kost even werk om het alles goed te configureren.

Mooi verhaal, fijn dat nu alles werkt.

Goed dat je met gericht zoeken alle problemen hebt kunnen oplossen maar het laat helaas wel zien dat voor dit soort avonturen je wel de nodig computerkennis/ervaring nodig hebt.

Ik enige vraag die ik heb is waarom je voor Leap hebt gekozen, terwijl je bijv. al een Tumbleweed kernel hebt geïnstalleerd.

Op het moment dat je een nieuw systeem installeert is er ten eerste van alles veranderd, maar je mist al het werk dat je in de loop der jaren aan instellingen, aanpassingen software die je zelf hebt gecompileerd e.d. hebt gedaan. In vroegere tijden hield ik mijn systeem altijd zo actueel mogelijk, in de loop der jaren is me dat steeds meer tegen gaan staan. In plaats van zo nieuw mogelijke software te gebruiken, hou ik mijn systeem liefst zo veel mogelijk constant. In plaats van alles nieuw te installeren, werk ik het liefst met kleine ingrepen op plaatsen waar software geactualiseerd dient te worden.

Dat is ook de reden dat ik nog op 15.0 zit, inmiddels verouderd. Als er een reden tijdens deze installatie was geweest om te upgraden, dan zou ik dat zeker gedaan hebben. Het is echter gebleken dat alleen het actualiseren van de kernel voldoende was om de hardware compatibel te maken en omdat die de kernel van 15.2 niet voldeed, dan maar die van Tumbleweed.

Ik houdt het dan bij de chirurgische ingreep van het actualiseren van de kernel. Stel ik zou geheel overgestapt zijn naar Tumbleweed, dan ik ook overstappen naar het principe dat software zich automatisch vernieuwt zodra nieuwe versies beschikbaar komen. Daar hou ik niet van.

Wat ik teleurstellend vind is dat een computer met een oude Linuxkernel niet eens opstart. Dat zaken niet optimaal werken snap ik, maar één van de belangrijkste pijlers onder x86-hardware is backwardse compatibiliteit en we hebben het hier over een kwestie dat zelfs OpenSuSE 15.2, wat gewoon de actuele versie is, niet de juiste kernel heeft om zonder crashes te kunnen werken. De ervaring als een computer gewoon opstart met oude software en je dan aan de slag gaat om die te actualiseren om zaken optimaal werkend te krijgen is een geheel andere dan als je met USB-sticks in rescuesystemen moet booten om dingen draaiend te krijgen. Dit mogen hardwarefabrikanten zich echt aanrekenen.

De kwestie dat, ondanks hoe goed Linux tegenwoordig is, gewoon gedegen computerkennis nodig om een complex apparaat als dit volledig functioneel te maken is een worsteling die ik volledig herken. Een laptop bevat vaak de nieuwste technologie en het is een actie-reactiekwestie: Hardware-fabrikanten acteren, de Linuxgemeenschap reageert. Vaak snel en doeltreffend, alle benodigde ondersteuning bestaat al. Voordat al die ondersteuning doorgestijpelt is naar gebruiksvriendelijke installatiesoftware die alles onzichtbaar voor de gebruiker wegneemt, verstrijkt evenwel tijd en dat blijft een drempel voor Linux.

Het komt wat mij betreft neer op de situatie van voorinstallatie: Alleen een laptop waar Linux op voorgeïnstalleerd is kan de ervaring bieden van het apparaat kopen en aan de slag. We leven tegenwoordig in een wereld waar dat mogelijk is, maar, als je je beperkt tot hardware waarop je voorgeïnstalleerd Linux kunt krijgen, dan beperk je je hardwarekeus enorm. Zelf Linux installeren blijft dan ook belangrijk en daar zit nog vaak een hoop onderzoek bij om alles perfect werkend te krijgen.

Voordeel anno 2020 is toch wel dat alles perfect gaat werken, iets wat in het verleden lang geen vanzelfsprekendheid was.