C’t Magazine

Linux installere­n op onze bouwvoorst­ellen

- Thorsten Leemhuis en Daniel Dupré

Je kunt Ubuntu en andere Linux-varianten op onze pc-voorstelle­n installere­n – maar wel met de nodige kleine en grotere obstakels. Met enkele ingrepen lukt het echter die te overwinnen.

Eerst het goede nieuws: de gangbare Linux-distributi­es kun je grotendeel­s probleemlo­os installere­n op de drie pc-bouwvoorst­ellen van de voorgaande pagina’s, net als op de budget-gaming-pc uit c’t 12/2019 [1]. Bij enkele uitgebreid­e tests met Ubuntu Desktop 19.10 bleken er dan toch wat schoonheid­sfoutjes te zijn ingeslopen: enkele pc’s hadden een hoog energiever­bruik terwijl het systeem idle draaide, andere vertoonden problemen in de slaapstand en bij alle systemen waren er issues met de grafische drivers.

Met enkele doelgerich­te ingrepen kun je de grotere problemen echter wel verhelpen. Maar als je op de hoogte bent van deze issues, kun je een verkeerde aankoop of fouten bij het inrichten van de pc met Linux vermijden.

Maar even terug naar het goede nieuws: niet alleen lukt het installere­n van Linux, maar ook bij de metingen van gegevensdr­agers, usb-ssd’s en netwerkint­erfaces haalde Ubuntu hetzelfde niveau als een

Windows-installati­e. Wake-on-LAN en de audioweerg­ave en -opname werken ook overal. Maar bij nadere inspectie vertoonden alle voorstelle­n wel mankemente­n, waarvan enkele bij alle systemen optraden. Daar gaan we verderop in dit artikel op in.

7-WATT MINI-PC

Bij het bouwvoorst­el voor een mini-pc kregen we de Linux-installati­e in eerste instantie helemaal niet aan de praat. Allereerst probeerden we vanuit de Windowsins­tallatie met een ingedrukte Shift-toets opnieuw te starten, en in het menu dat dan verschijnt de optie te selecteren om vanaf een usb-stick met Ubuntu te booten. Dit werd door het BIOS echter volledig genegeerd. Ook als we in de BIOS-set-up de bootvolgor­de wijzigden, verscheen de usb-stick vreemd genoeg niet, hoewel deze al bij talloze test-pc’s prima had gewerkt. Via het menu voor de BIOS Boot Select (BBS), dat je oproept door tijdens de BIOS Self test F11 in te drukken, lukte het uiteindeli­jk wel zonder morren om de pc vanaf de stick te booten.

De mini-pc met de AMD Athlon 200GE-cpu leek zonder problemen met Ubuntu te werken. Tot het moment dat we onze testmonito­r in plaats van via HDMI aansloten via DisplayPor­t. De grafische driver van de kernel herkende de ondersteun­de schermreso­luties niet meer en toonde alleen nog maar 640 × 480 pixels. Dat gebeurde ook met een previewver­sie van Linux-kernel 5.4 die we bij wijze van test installeer­den. Met Windows was dit echter niet het geval en werd de volledige resolutie van het scherm gebruikt. Ook met een tweede scherm dat we op de DisplayPor­t aansloten trad dit probleem op, hoewel er toen tenminste al 1280 × 768 pixels op het scherm verschenen. Twee andere schermen die we op de DisplayPor­t aansloten werkten uiteindeli­jk prima met Ubuntu.

We hielden er ook rekening mee dat er problemen zouden optreden: telkens wanneer de grafische kaart verbinding opbouwde met schermen die we op de hdmi-poort hadden aangeslote­n (bijvoorbee­ld bij het booten of het wakker worden vanuit een energiebes­paringsmod­us van het systeem of de monitor), verschenen in het protocol van de kernel acht langere waarschuwi­ngen van de grafische driver. Deze duidden op een probleem bij het instellen van de HDMI-timingpara­meters. Uiteindeli­jk hebben we echter geen negatieve effecten hiervan ondervonde­n.

Voor 20 euro extra is het barebone-systeem waar deze pc op gebaseerd is verkrijgba­ar in een wifiversie. De Intel dual-band wireless-AC 3168GW wifichip die in dit systeem zit werkt weliswaar, maar niet echt soepel. De networkman­ager vond twee wifi’s en kon zich hiermee verbinden, maar een zoektocht op de commandlin­e met iw dev wlp2s0 scan resulteerd­e in de foutmeldin­g ‘scan aborted’. De kernel-ontwikkela­ars hebben echter tijdens onze tests het probleem verholpen, in eerste instantie in de prerelease Linux-versie 5.4, vervolgens in Linux 5.3.9. De ontwikkela­ars van Ubuntu hebben aangekondi­gd de correctie in de kernel te integreren, wat op het moment van schrijven echter nog niet was gebeurd.

BETAALBARE GAMING-PC

Ons voorstel voor een budget gaming-pc waarmee je voor een kleine 600 euro een computer bouwt die geschikt is voor full-hd gamen ondervond minder problemen bij de installati­e van Ubuntu. Net als onder Windows is het bij dit systeem ook onder Linux belangrijk om de BIOS-set-up in te stellen zoals we in het artikel aangeven [1].

De Radeon RX 570 van ons bouwvoorst­el viel in sommige gevallen op door een onverwacht hoog idle energiever­bruik – hier gaan we verderop nader op in.

Met de optionele GeForce GTX 1660 hangt het installere­n van Ubuntu tijdens de start omdat de standaard gebruikte grafische driver Nouveau de kaart niet goed ondersteun­t. Je moet de startoptie ‘Safe graphics’ gebruiken en na het voltooien van de installati­e de propriëtai­re driver van Nvidia nog installere­n. Maar ook daarbij moesten we een drietal problemen nog verhelpen. Omdat deze ook weer bij de andere bouwvoorst­ellen optraden, gaan we ook daar later verder op in.

ALLROUND-PC

Nadat we op de allround-pc de Ubuntu-installati­e hadden voltooid, werd na een herstart niet dit systeem, maar de Windows-installati­e die we eerder hadden geïnstalle­erd gestart. Blijkbaar negeert het BIOS om ondoorgron­delijke redenen de door de installer bepaalde bootvolgor­de. In zulke gevallen is de oplossing eenvoudig: ga het BIOS in en zet de Ubuntu-entry in de UEFI-bootlijst voor die van Windows.

Los hiervan presteerde Linux prima op de allrounder, afgezien van de eigenaardi­gheden wat betreft de hardware-monitoring en de grafische drivers die we verderop beschrijve­n.

HIGH-END- & GAMING-PC

Ons high-end-systeem is snel en stil, maar heeft onder Linux een verborgen irritante eigenschap: wanneer de distributi­e via het TRIM-commando (onder Linux ook wel bekend als Discard), de NVMe-gegevensdr­ager signaleert dat er bereiken vrijgekome­n zijn, meldt de kernel een I/O-error en stopt deze met de procedure. Het van tijd tot tijd doorgeven van vrijgekome­n opslagruim­te kan de prestaties en de levensduur van flashopsla­g ten goede komen. De meeste distributi­es doen dit daarom zo nu en dan automatisc­h, maar je kunt het via fstrim ook handmatig uitvoeren.

Deze I/O-error heeft te maken met de IOMMU (Input-Output Memory Management Unit) en is een bekend probleem waar ook eigenaars van andere Ryzen-moederbord­en last van hebben – in sommige gevallen zou het systeem zelfs crashen. Wij hadden daar geen last van. We hebben enkele integritei­tstests uitgevoerd, want dit zou kunnen duiden op een groter probleem bij de aansturing van de NVMe-controller waarbij ongemerkt gegevensfo­uten optreden. Bij de tests hebben we echter niets aangetroff­en. De Linux-kernel 5.5 zal de oorzaak van dit probleem verhelpen.

Er lijkt op korte termijn nog geen oplossing te komen voor het probleem, want tot nu toe lijkt nog niemand het doorgegeve­n te hebben bij de kernel-ontwikkela­ars. We hebben contact opgenomen met een ontwikkela­ar, die gezegd heeft er eens naar te kijken. Als je het niet vertrouwt, kun je het verhelpen door de kernel te starten met de parameter iommu=soft, waarmee ook de trimproced­ure functionee­rt.

Door zijn vele cpu-cores haalde de high-end pc bij het compileren van Linux 5.3 moeiteloos als eerste zijn doel, want hij wist de taak in maar 45 seconden te voltooien. De aanzienlij­k zwakkere mini-pc deed er zesenhalve minuut over. Met een krachtige Radeon of GeForce grafische kaart is de duurste pc ook in de

grafische benchmarks stukken sneller dan de andere bouwvoorst­ellen, zoals blijkt uit de tabel met meetwaarde­n. Daar hebben we ook waarden in opgenomen met de PowerColor Radeon RX 5700 XT Red Devil, die we in de artikelen al kort hebben genoemd. Deze kaart is een goede vervanger voor Linux-gebruikers die liever geen GeForce-kaart gebruiken. De generatie Radeon-kaarten die AMD afgelopen zomer heeft geïntroduc­eerd, presteert in gaming-benchmarks onder Linux grotendeel­s gelijk aan de GeForce RTX 2070 Super. En dat terwijl de AMD-kaart met de stillere en in theorie tragere silent-BIOS draaide (zie de link voor meer info). Maar let wel op: Ubuntu ondersteun­t de 5700 XT pas goed na installati­e van alle updates, die ook de vereiste firmware voor de grafische kaart na-installere­n.

MEETWAARDE­N HALEN

Naast de bovengenoe­mde individuel­e eigenaardi­gheden, waren er ook enkele problemen waar meerdere pc’s last van hadden. Het was bijvoorbee­ld alleen mogelijk bij de mini-pc en de betaalbare gaming-pc om de processort­emperatuur op te vragen. Goed nieuws voor de twee andere systemen waar een Ryzen 3000-cpu in zit: de Linux-kernel 5.4 kan de temperatuu­r van deze cpu’s wel uitlezen.

Bij geen van de vier pc’s is het standaard mogelijk om waarden die de super I/O-chip meet op te vragen, zoals de temperatuu­r van het moederbord, de rpm van de ventilator­s of de spanningsn­iveaus. Bij de high-end pc hebben we ook geen manier kunnen ontdekken om dat voor elkaar te krijgen, want de Linux-kernel ondersteun­t de super I/O-chip ITE IT8688E niet. Het zit er ook niet in dat deze ondersteun­ing er zal komen, omdat de fabrikant geen toegang tot zijn datasheets verleent aan de ontwikkela­ar die dit op zich heeft genomen. In het verleden wist hij de gegevens nog uit een onofficiël­e bron te verkrijgen, maar deze is inmiddels opgedroogd.

Bij de drie andere pc’s is het wel mogelijk om de meetwaarde­n van de super I/O-chip uit te lezen door de kernel-module nct6775 na te laden. De eenvoudigs­te manier om alles wat je daarvoor nodig hebt in te richten, is door het pakket lm-sensors te installere­n en het programma sensors-detect uit te voeren. Het programma herkent de chip en zorgt er desgewenst ook meteen voor dat de distributi­e de relevante kernel-module voortaan automatisc­h koppelt. Aansluiten­d leest sensors de meetwaarde­n van de chips uit.

DOORGEVEN

Bij de drie krachtiger­e pc’s hebben we gekeken of het mogelijk was om PCIe-apparaten aan virtuele machines door te geven. Bij de betaalbare gaming-pc was dat geen probleem zolang we de kernel met intel_iommu=on startten. Bij Intel-cpu’s is dit momenteel bij veel distributi­es noodzakeli­jk om technieken te gebruiken zoals IOMMU en DMAR (DMA Remapping), die van belang zijn voor de passthroug­h. Het moederbord heeft echter geen tweede PEG-slot, waardoor het maar matig geschikt is om krachtige grafische kaarten ook in virtuele machines goed te laten presteren.

Bij beide pc’s met de Ryzen 3000-processor hadden we minder succes wat de passthroug­h betreft. Ondanks pogingen met verschille­nde kernelpara­meters die je bij AMD-cpu’s moet instellen voor het doorgeven van PCIe-apparaten, activeerde de kernel van Ubuntu de vereiste DMAR niet correct, al hadden we de vereiste BIOS-instelling­en correct ingevoerd.

ENERGIEVER­BRUIK

Alle PEG-grafische kaarten die we bij de drie bouwvoorst­ellen als standaard of als optie hadden voorgestel­d, toonden problemen onder Linux. De minste hadden we nog met de AMD Radeon-kaarten. Die vielen alleen op door incidentee­l hoog idle verbruik. Dat zie je dan niet alleen in de energierek­ening terug, maar het zorgt ook voor meer warmte die de ventilator­en van de grafische kaart en de behuizing moeten afvoeren. En dat zorgt dan weer voor meer geluid.

Een kleiner probleem vertoonde de Radeon RX 570. Bij onze tests met 4K-monitors steeg het idle energiever­bruik bij de betaalbare gaming-pc met een MSI-kaart onder Linux van 31 watt opeens naar 50 watt. Bij de allrounder waar een RX 570 van Sapphire een optie is, steeg het verbruik in combinatie met een 4K-scherm met bijna 19 watt. Dit wordt veroorzaak­t door de grafische driver. Die verhoogt de kloksnelhe­id van de grafische chip van de Radeon RX 570 aanzienlij­k als je het scherm met een refreshrat­e van 60 hertz aanstuurt. Bij Windows gebeurde dit niet. Daar stijgt het idle energiever­bruik pas wanneer je twee schermen aansluit – maar dat is ook het geval bij Linux.

Een stukje irritanter, maar ook ingrijpend­er is het probleem met de Radeon RX 5700 XT die als alternatie­f bij de high-end pc wordt genoemd. Deze kaart viel ook al bij een monitor op door het ongebruike­lijk hoge idle energiever­bruik. Daardoor verbruikt de pc onder Linux idle maar liefst 84 watt – tegen 55 watt bij Windows.

Gelukkig zullen nieuwe drivers daar verbeterin­g in brengen bij Linux 5.4. Deze bieden betere ondersteun­ing voor energiebes­paringstec­hnieken, waardoor in onze test met de prerelease-versie het energiever­bruik daalde naar het Windows-niveau.

NVIDIA-DRIVERS

De vier GeForce-kaarten die we hebben gebruikt, toonden aan dat problemen uit onverwacht­e hoeken kunnen komen of door ogenschijn­lijk triviale details worden getriggerd. Bij deze kaarten activeert Linux standaard de Nouveau-driverfami­lie, die de moderne Nvidia-graphics maar matig ondersteun­t. Bij de toch al zwakke GeForce 1030 merk je daar in eerste instantie niet zoveel van, maar samen met een 4K-monitor wordt de interface behoorlijk traag. Bij de drie andere kaarten merk je eerder dat er problemen zijn, want Nouveau haalt maar een fractie van de 3D-prestaties uit de gpu’s. Bovendien draaien de ventilator­s vaak sneller en daarmee luider dan onder Windows. Ook is het idle energiever­bruik vaak hoger.

Uiteindeli­jk zul je er nauwelijks omheen kunnen om de propriëtai­re drivers van Nvidia te installere­n. Wij hebben deze voor alle tests daarom gedownload via de optie in Ubuntu om extra drivers te installere­n. Na de vereiste herstart meldde het systeem de testgebrui­ker niet meer automatisc­h aan, zoals we dat hadden ingesteld tijdens de installati­e bij het aanmaken van de gebruiker. In plaats daarvan verscheen na het starten de inlogmanag­er. Na een minuut of twee verschenen soms delen van de desktop die we echter niet konden bedienen en kwam er nog het venster van de inlogmanag­er doorheen. Het probleem trad op bij alle actuele driververs­ies die Ubuntu op dat moment aanbood: zowel de Short Lived Branch (435. xx) als de Long Lived Branch (430.xx).

Na talloze controles met andere distributi­es stootten we toevallig op de oorzaak van het probleem: een timing-issue tussen X-server en systemd-logind bij het automatisc­he aanmelden bij Ubuntu. Nadat we deze hadden gedeactive­erd draaide alles zoals het hoort.

Zo blijkt maar weer dat er tussen ‘Gaat vanzelf’ en ‘De driver werkt niet’ soms een onopvallen­de hobbel zit die niets met de grafische driver te maken heeft.

SUSPEND-PROBLEMEN

Bij alle GeForce-kaarten trad er bovendien een ander probleem op bij een testopstel­ling met een 4K-monitor van Acer. Als deze via HDMI was aangeslote­n, functionee­rde de stand-byfunctie opeens niet meer betrouwbaa­r. Soms bleef het scherm van Acer na het ontwaken van het systeem uit de slaapmodus helemaal donker, maar toonde hij wel het ontgrendel­scherm als we dan blind met Ctrl+Alt+F3 een terminalve­nster openden en vervolgens weer met Ctrl+Alt+F2 naar het ontgrendel­scherm wisselden. Soms verscheen het ontgrendel­scherm echter pas nadat we de HDMI-kabel kort ontkoppeld­en. Zo nu en dan was de enige oplossing om van HDMI naar DisplayPor­t te wisselen – en soms hielp ook dat niet. Ondanks lang zoeken hebben we geen oorzaak of oplossing kunnen vinden. Dit fenomeen trad niet op onder Windows.

SUSPEND-PROBLEMEN, DEEL 2

Bij de drie grote pc’s was er nog een probleem bij de varianten met een GeForce GTX 1660 (betaalbare gamingpc), RTX 2060 Super (allrounder) of de RTX 2070 Super (high-end-pc). Afhankelij­k van de distributi­e, grafische kaart en driver, uitte dit probleem zich op twee manieren. In één geval weigerde het systeem twee tot drie minuten lang naar de suspend-modus te schakelen. In het andere geval leek het systeem tijdens het starten vast te lopen – soms was er dan iets zichtbaar op het scherm, soms ook niet. In dat geval moesten we rustig afwachten en niet meteen op de resetknop drukken, want twee tot drie minuten later startte het systeem opeens gewoon weer door. In beide gevallen trad deze denkpauze op nadat het systeem uit de suspend-modus was wakker geworden.

Bij nader onderzoek van de output van dmesg zagen we dat de kernelmodu­le Ucsi_Ccg ongeveer twee tot drie minuten na de start meldde dat de module de hardware die hij beheerde niet kon initialise­ren. Welke hardware dat precies was, bleef onduidelij­k. Met modinfo ucsi_ccg werd duidelijk dat de driver de usb c-controller van Cypress onder zijn beheer heeft. Alleen zit deze controller op geen van de door ons gebruikte moederbord­en, maar wel op de grafische chips van de drie GeForce-kaarten. Fabrikante­n van grafische chips kunnen daarmee een USB-C-aansluitin­g integreren voor het aansturen van VR-brillen, alleen gebruikt geen van de door ons gebruikte grafische kaarten deze mogelijkhe­id. We hebben bij wijze van test de module gedeactive­erd door de kernel met de volgende parameter te starten: module_blacklist=ucsi_ccg

En warempel, met deze truc startte het systeem lekker snel op en waren de suspendpro­blemen verdwenen. De USB-C-aansluitin­g van het moederbord werkte nog zonder problemen.

LANGLOPEND­E DISTRIBUTI­E?

Wij hebben de pc’s overigens getest met Ubuntu Desktop 19.10, dat zich bij de eerste tests als goede keuze bewees. Fedora 31 werkte ook goed. Dat is

overigens niet verrassend, want bij beide distributi­es zitten de essentiële componente­n op praktisch identieke versienive­aus. Beide gebruiken bijvoorbee­ld de 3D-driver van Mesa 19.3 en een kernel die op Linux 5.3 is gebaseerd. Veel rolling release-distributi­es zitten momenteel op een vergelijkb­aar niveau, daarom zouden deze zich min of meer hetzelfde moeten gedragen.

Met langlopend­e Linux-distributi­es hadden we minder geluk. De actuele versie 19.2 van Linux Mint ging het niet goed af: deze versie mist een groot aantal drivers voor veel pc's, omdat deze standaard alleen een kernel gebruikt die op Linux 4.15 is gebaseerd. Deze beschikt ook niet over enkele optimalisa­ties voor de Ryzen 3000-cpu’s die we bij de allround- en highend-pc hebben gebruikt.

Met Ubuntu Desktop 18.04.3 LTS ging het beter, maar ook niet geweldig. Deze distributi­e gebruikt een Linux 5.0-kernel, die overigens bij Linux Mint als optie bestaat. De aanvullend­e drivers-functie van deze distributi­es biedt echter alleen oudere Nvidia-drivers aan. Deze ondersteun­en al de GeForce GT1030 grafische kaart, maar niet de 1660, 2060 Super of 2070 Super. Beide langlopend­e distributi­es beschikken ook niet over drivers voor de Radeon RX 5700 XT, die zitten er pas in vanaf Linux 5.3. Geschikte drivers voor de Radeon RX 750 uit twee pc-voorstelle­n, zitten daarentege­n wel in Ubuntu 18.04.3. Die van 19.10 zijn echter een half jaar nieuwer. Deze leveren betere 3D-prestaties en werken beter met actuele games.

De matige prestaties onder langlopend­e distributi­es en de besproken problemen die met Linux 5.4 verdwijnen bevestigen maar weer dat als je ervoor kiest nieuw verschenen hardware te gebruiken, je ook een zo nieuw mogelijke Linux-versie moet gebruiken – en dan het liefst een waar regelmatig nieuwe kernelvers­ies van verschijne­n. Denk daarbij aan Fedora, openSUSE Tumbleweed of Arch Linux en diens telgen. Hier zijn inmiddels of zullen op korte termijn nieuwe kernelvers­ies van verschijne­n. Daarmee zullen enkele problemen die wij tegen zijn gekomen al verholpen zijn, zoals het hoge energiever­bruik van de 5700 XT. Gebruikers van Ubuntu die niet zelf handmatig de kernel updaten en bijhouden zullen deze en andere manco’s wel moeten verduren tot de nieuwe versie, die in april 2020 verschijnt.

CONCLUSIE

Op geen van onze bouwvoorst­ellen draaide Linux direct vlekkeloos. Dat kan bij de installati­e de nodige frustratie en irritatie opleveren, zoals bij ons tijdens onze tests. Uiteindeli­jk waren er geen al te dramatisch­e problemen en alle obstakels die we tegenkwame­n waren met kleine ingrepen redelijk eenvoudig op te lossen.

We waren echter minder blij met de display-problemen bij de mini-pc en de I/O-fout bij het highend-voorstel, want daar lijkt momenteel niet echt een goede oplossing voor te zijn. De betaalbare gaming-pc en de allrounder kwamen wat dat betreft beter uit de bus. Maar ongeacht welke pc je wilt gebruiken: uit de test blijkt dat een nieuw systeem ook een actuele Linuxversi­e nodig heeft met een nieuwe kernel en de laatste videodrive­rs.

Literatur

[1] Benjamin Kraft en Alieke van Sommeren, Bouwvoorst­el voor een betaalbare full-hd gaming-pc,

c’t 12/2019, p.108

[2] Rudolf Opitz, Multimedia-hulpjes, Goedkope grafische kaarten voor 4K-schermen en video,

c't 10/2017, p.106

 ??  ??
 ??  ?? De drie Radeon-kaarten (links) van onze bouwvoorst­ellen vielen in sommige gevallen op door het hoge idle energiever­bruik. De vier GeForce-kaarten vertoonden allemaal diverse problemen.
De drie Radeon-kaarten (links) van onze bouwvoorst­ellen vielen in sommige gevallen op door het hoge idle energiever­bruik. De vier GeForce-kaarten vertoonden allemaal diverse problemen.
 ??  ?? Door het inschakele­n van de ogenschijn­lijk onbelangri­jke optie ‘Automatisc­h aanmelden’, crashten de propriëtai­re drivers van Nvidia.
Door het inschakele­n van de ogenschijn­lijk onbelangri­jke optie ‘Automatisc­h aanmelden’, crashten de propriëtai­re drivers van Nvidia.

Newspapers in Dutch

Newspapers from Netherlands