Archives for posts with tag: eGPU

Mit dem Arbeitslaptop hatte ich meine eGPU relativ problemlos zum Laufen gebracht: Eine Sonnet eGFX Breakaway Box 550 mit einer Radeon Vega 56. Probleme hat mein Hauptrechner gemacht; Dort war der CPU-Kühler der Thunderbolt-PCIe-Karte im Weg, sodass ich endlich einen Anlass hatte, die Wasserkühlung nachzurüsten. Dann nur die Thunderbolt-PCIe-Karte reinzustecken hat es nicht ganz gebracht, etwas mehr war noch zu tun.

alles alt

Mein Rechner ist ein hornaltes Teil: Mainboard Asrock B75M-ITX, Intel Core i5-3570T, 4 Cores, kein Hyperthreading, 16GB, Gigabyte TITAN RIDGE (Rev. 2.0), Thunderbolt 3, SATA-SSDs. Sowas war Mitte 2012 aktuell, reicht aber immer noch für meine Bedürfnisse.

Das BIOS weiß nichts von Thunderbolt und seinen Sicherheitsmodi. Immerhin wird die Karte schonmal mit lspci gelistet:

01:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
02:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
02:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
02:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
02:04.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
03:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] (rev 06)
05:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] (rev 06)

Um die Sonnet-Box aktivieren und sehen zu können, benötigt man unter Linux bolt, unter Arch heißt das Paket auch so:
$ pacman -S bolt

Mit boltctl list kann man alle angeschlossenen Geräte sehen, ein anschließendes boltctl enroll device_uuid autorisiert das gewünschte Gerät dauerhaft. Spätestens jetzt sollte die Box anspringen und ein einfaches boltctl die Box anzeigen:
● Sonnet Technologies, Inc. eGFX Breakaway Box 550
├─ type: peripheral
├─ name: eGFX Breakaway Box 550
├─ vendor: Sonnet Technologies, Inc.
├─ uuid: 00000000-0000-0000-ffff-ffffffffffff
├─ generation: Thunderbolt 3
├─ status: authorized
│ ├─ domain: 00000000-0000-0000-0000-000000000000
│ ├─ rx speed: 40 Gb/s = 2 lanes * 20 Gb/s
│ ├─ tx speed: 40 Gb/s = 2 lanes * 20 Gb/s
│ └─ authflags: none
├─ authorized: Mo 20 Feb 2023 21:43:46 UTC
├─ connected: Mo 20 Feb 2023 21:43:46 UTC
└─ stored: Mo 30 Jan 2023 17:51:00 UTC
├─ policy: auto
└─ key: no

Ein beherztes lspci listet aber leider noch keine neue Grafikkarte. Selbst wenn ich einen Rescan der pci Bussysteme mit echo 1 > /sys/bus/pci/rescan forciere, taucht sie nicht auf. Dafür finden sich im journal interessante Einträge:
Sesta kernel: pci 0000:04:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
Sesta kernel: pci_bus 0000:05: busn_res: [bus 05] end is updated to 05
Sesta kernel: pci 0000:04:00.0: devices behind bridge are unusable because [bus 05] cannot be assigned for them
Sesta kernel: pcieport 0000:02:01.0: bridge has subordinate 04 but max busn 05
Sesta kernel: pcieport 0000:02:01.0: bridge window [mem 0x00100000-0x000fffff] to [bus 04] add_size 200000 add_align 100000
Sesta kernel: pcieport 0000:02:04.0: bridge window [mem 0x00100000-0x000fffff] to [bus 06] add_size 200000 add_align 100000
Sesta kernel: pcieport 0000:02:01.0: BAR 14: no space for [mem size 0x00200000]
Sesta kernel: pcieport 0000:02:01.0: BAR 14: failed to assign [mem size 0x00200000]
Sesta kernel: pcieport 0000:02:04.0: BAR 14: no space for [mem size 0x00200000]
Sesta kernel: pcieport 0000:02:04.0: BAR 14: failed to assign [mem size 0x00200000]
Sesta kernel: pcieport 0000:02:04.0: BAR 14: no space for [mem size 0x00200000]
Sesta kernel: pcieport 0000:02:04.0: BAR 14: failed to assign [mem size 0x00200000]
Sesta kernel: pcieport 0000:02:01.0: BAR 14: no space for [mem size 0x00200000]
Sesta kernel: pcieport 0000:02:01.0: BAR 14: failed to assign [mem size 0x00200000]

Davon hatte ich schon gelesen: In irgendeiner Weise wird vom BIOS vorgegeben, wie und wo die Adressbereiche der Busse angelegt werden. Von zusätzlichen Bridges mit wechselnden PCI-Geräten weiß das BIOS aber nichts und hat keinen Platz übrig.

alles neu

Kreatives googlen hat diverse Ergebnisse zur Folge, das relevanteste findet sich in einem Beitrag bei superuser. In aller Kürze: der Kernel braucht ein paar zusätzliche Parameter. Da ich noch mit GRUB boote, müssen diese in der /boot/grub/grub.cfg eingebaut werden. Dort habe ich den default-Boot-Eintrag dupliziert und angepasst. Der Kernel bekommt bei mir zusätzlich
pcie_ports=native pci=assign-busses,nocrs,hpbussize=0x20,realloc,hpmmiosize=32M,hpmmioprefsize=8G
mitgegeben.

Beim nächsten Boot (die Sonnet ist eingesteckt) wähle ich den neuen Boot-Eintrag. Lightdm erscheint kurz, dann startet Xorg nochmal neu. Kurzes Rauschen der Sonnet macht klar: Die eGPU ist verfügbar! Nach dem Login bestätigt sich das, die Vega ist unter den PCI-Geräten gelistet.

01:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
02:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
02:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
02:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
02:04.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06)
03:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] (rev 06)
24:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] (rev 06)
25:00.0 PCI bridge: Intel Corporation DSL6540 Thunderbolt 3 Bridge [Alpine Ridge 4C 2015]
26:01.0 PCI bridge: Intel Corporation DSL6540 Thunderbolt 3 Bridge [Alpine Ridge 4C 2015]
27:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Vega 10 PCIe Bridge (rev c3)
28:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Vega 10 PCIe Bridge
29:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64] (rev c3)
29:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 HDMI Audio [Radeon Vega 56/64]

Benutzt wird sie aber noch nicht, dass muss man Xorg noch beibiegen. An einfachsten geht das mit dem egpu-switcher – der kann beim Start direkt die richtige Xorg-Konfiguration laden, wenn die eGPU dran steckt. Für Arch gibt es gleich drei Pakete im AUR. Jedes davon tut es.

Zuerst konfiguriere ich meine eGPU: $ sudo egpu-switcher config
Found 2 possible GPU(s)…
1: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (i915)
2: Advanced Micro Devices, Inc. [AMD/ATI] Reference RX 5700 XT (amdgpu)
Which one is your external GPU? [1-2]:

Mit ‚2‘ ist die eGPU ausgewählt und der Aufruf sudo egpu-switcher enable sorgt dafür, dass eGPU beim Booten ausgewählt wird, wenn sie verfügbar ist.

Manchmal ist nach dem Booten und Login die eGPU doch nicht aktiv. Dann rufe ich kurz sudo egpu-switcher switch auf und logge mich aus und wieder ein; Spätestens dann ist die eGPU aktiv und verwendbar.

Stecke ich die eGPU nach dem Booten an, bleibt nach dem Umschalten mit dem egpu-switcher und Ausloggen der Bildschirm schwarz. Lightdm und Xorg scheint zu laufen, aber zu sehen ist nix; Muss ich andermal untersuchen.

Let’s play

In den Kleinanzeigen hab ich schon vor einer ganzen Weile zwei Gamepads geschossen: Ein erster Test mit SuperTuxKart :)Mal sehen, wie lange ich meinen Rechner noch nutzen kann. Eine Grenze kenne ich schon: Die Onboard-Grafik schafft höchstens eine Auflösung von 1920 x 1200 pro Display-Ausgang. Mit einem größeren Monitor (was schon irgendwie nett wäre) müsste ich ein Upgrade von Mainboard, Prozessor und RAM vornehmen.

(swg)

Alina hatte ja gaming-Ambitionen, was mit meinem Spar-Rechner ohne dedizierte GPU einfach nicht geht. Ich hatte deshalb eine eGPU gekauft, mit der ihre Spiele gehen sollten. Getestet hatte ich das erfolgreich mit meinem Arbeitslaptop und dessen Thunderbolt-Anschluss unter Ubuntu-Linux. Jetzt muss die eGPU noch an meinem Rechner funktionieren, dem fehlt aber Thunderbolt. Eine PCIe-Karte ist meine einzige Chance.

Bei meinen Versuchen meinen PC sparsam und vor allem leise zu bekommen, wollte ich eine 120er Wasserkühlung einbauen. In meinem Cooltek Cube ist recht wenig Platz, aber wenn ich das ATX-Netzteil rausschmeiße, wäre dort genügend Raum für einen 120er Radiator mit Lüfter. Jetzt wird mein Intel core-i5 3470T mit 16 GB RAM und zwei SSDs von einem 120 W-Laptop-Netzteil und einer PicoPSU befeuert. Allein der Rausschmiss des Netzteils hatte sich schon als so effektiv in Sachen Lärm herausgestellt, dass ich auf den Einbau der Wasserkühlung erstmal verzichtete – auch wenn die Silent Loop 2 be quiet! schon da lag. Kein ATX-Netzteil: kein Lärm mehr. Der verbaute CPU-Kühler ist außerdem so dermaßen überdimensioniert, der hat kaum Schwierigkeiten die 45 W TDP der CPU im Griff zu behalten ohne groß den Lüfter hochzudrehen.

Genau der CPU-Kühler kommt mir jetzt beim Einbau der PCIe-Thunderbolt-Karte in die Quere.Würde ich allerdings die Wasserkühlung reinzimmern, ist genug Platz! Die Pumpe auf dem CPU-Wärmetauscher ist eher winzig und das Paket aus Lüfter und Radiator beansprucht weniger Platz als das ATX-Netzteil. Also muss die nun doch rein. Damit das halbwegs nach was aussieht, habe ich mir ein paar Bleche für mein Gehäuse machen lassen:Fast vier Wochen hab ich drauf gewartet, aber den Termin hat Emil Wirth auch so angegeben und am Freitag die Bleche pünktlich hier abgeliefert. Sehr geil und in den heutigen Zeiten schon nicht mehr selbstverständlich. Danke nochmal, die Teile passen perfekt, wie eine erste Anprobe gezeigt hat.

Der eine Winkel soll den Radiator da halten, wo das Netzteil war. Die neue Seitenwand hat einen ordentlichen Durchbruch für den Lüfter des Radiators. Und weil ich schon mal dabei war, hab ich einen Kartenleser in die Seitenwand integriert. Den kleinen Winkel dafür muss ich innen an die Seitenwand kleben.

Auch wenn der Radiator mit seinen zwei Lüftern etwas kleiner ist, als es das ATX-Netzteil war: Fummelei ist der Einbau trotzdem. Vor allem die zwei nur semiflexiblen Wasserschläuche zwischen Pumpe und Radiator sind tricky.Die Pumpe hab ich mit den Schläuchen nach oben montiert. Nach rechts würden die Anschlüsse an den RAM stoßen. Und so lassen sich die Schläuche in einer schönen Schlaufe von hinten in den Radiator legen. Es ist aber alles ziemlich eng. Nachträglich steckt man hier gar nichts aufs Bord, dann baut man den Radiator wieder aus.Der Lüfter drückt die Luft absichtlich durch den Radiator in den Rechner hinein; Ich hab Angst, dass mir sonst die Kondensatoren neben der CPU allzubald mangels Kühlung abrauchen.

Thunderbolt ist jetzt auch an Bord.Unter Linux wird die Karte erkannt, aber die eGPU startet nicht. Da fehlt vermutlich noch ein Stromkabel – muss ich erstmal noch nen Adapter für häkeln.

Immerhin: Die Wasserkühlung sorgt dafür, dass der Rechner bei 31°C idlet – bei 24°C Raumtemperatur. Beim re-encoden eines Films geht das rauf auf 36°. Mit dem Luftkühler hab ich da eher mal 65°C und mehr auf der CPU gesehen. Soweit also schon mal ein Erfolg.

(swg)

Es ist eine Ewigkeit her, dass ich am PC gespielt habe – nie wirklich exzessiv, höchstens mal lange… Ich war nie geil auf Ballerei; Aufbaustrategie hat mal Spaß gemacht, aber nicht allzu sehr. Nee, bei mir waren es eher Adventure, die knobeligen, absurden: Lucas Arts. Sowas geht auch heute noch ohne große Ausrüstung. Aber schon mit SuperTuxKart kann man einen Laptop oder PC mit integrierter Grafik locker überfordern, wenn man ein paar mehr Details anschaltet.

Alina interessiert sich inzwischen langsam fürs zocken, nicht zuletzt durch ihren Cousin, der seine Switch ungern beiseite legt und von einem Gaming-PC träumt. Auch ein geschenktes Bayala harrt immer noch des ausprobierens durch Alina. Und auf Youtube gab’s mal Trailer zu Zoo Planet zu sehen. Das wäre mal cool zu spielen, meint sie. Die vorhandene Rechentechnik überfordert beides heillos.

sparsam

Etwas anderes als integrierte Grafik habe ich nicht. Hier ist die Rechentechnik auf Sparsamkeit ausgelegt, vor allem aber auf Ruhe! Und wenn man CPUs mit niedriger TDP und integrierter Grafik benutzt, entsteht auch kaum Abwärme, die man weglüften müsste. Ich hab sogar das ATX-Netzteil aus meinem COOLTEK Cube geschmissen und gegen eine PicoPSU-150-XT 150 W und ein 120 W Notebooknetzteil (12 V) getauscht. Nicht weil das unterm Strich sparsamer wäre als ein gutes ATX-Netzteil, aber ich muss die Wandler-Abwärme nicht auch noch aus dem PC-Gehäuse schaufeln. Der Lüfterlärm des Netzteils fällt weg.

Das Bild ist flach

Der Nachteil ist natürlich klar: Schaut man auf die Verlustleistung von Grafik-Karten ist bei meinem Setup kein Spielraum. Selbst vor 5 Jahren kam man locker auf 300 W Leistungsaufnahme bei einer Karte. Heute, im Jahr 2022, knacken die Spitzenkarten schon die 1 kW-Marke! Nichts davon will ich dauerhaft in meinem Rechner werkeln haben, den ich immer und alltäglich nutze. Selbst im Idle brauchen Grafikkarten 15 bis 20 W, was die durchschnittliche Leistungsaufnahme meines PC fast verdoppeln würde. Keine Lösung wäre es, die Grafikkarte immer auszubauen, wenn ich sie nicht nutze. Dafür ist das Zeug einfach nicht gemacht.

Aber es gibt ja noch Thunderbolt und eGPU: Grafikkarten im externen Gehäuse. Unter Linux wird das alles leidlich unterstützt, wenn auch nicht so Plug’n’Play wie unter Windows oder MacOS. Mindestens aus und wieder einloggen muss man sich, damit Xorg die externe Karte als primäre kredenzen und den Spielespaß auch darauf rendern kann. Ob Gehäuse, Karte und Rechner unter Linux zusammenspielen kann man nur durch probieren herausfinden. Das Schöne an dieser Lösung: Abstecken und beiseite stellen, wenn man sie nicht braucht.

Was ginge…

Vier sehr gängige Varianten von externen Gehäusen sind das Razor Core X Chroma, Sonnet Breakaway Box, Mantis Saturn/Venus und Akito Node. Hier passen fast beliebige Karten rein. Dazu kommen noch ein paar Exoten, wie der Sonnet Breakaway Puck und die Apple Blackmagik. Es sind Komplettlösungen mit fest verbauter GPU, kein Wechsel möglich. Der Charm der apfeligen Variante ist die Lüfterlosigkeit: absolute Stille. Die verwendete AMD Radeon Pro 580 ist allerdings inzwischen weit weg von taufrisch. Und in der Inkarnation als Vega 56 ist die Blackmagik immer noch unverschämt teuer. Immerhin ist das Angebot in den Kleinanzeigen von allen Varianten recht üppig, am häufigsten sind die Razor Core X Chroma-Gehäuse ohne Karte.

…und was kam

Letzten Endes habe ich eine Sonnet eGFX Breakaway Box 550 mit einer Vega 56 (mit 8 GB RAM) geschossen. Mir ist bewusst, dass das nicht der neueste Kracher ist, aber die schon etwas abgehangene Technik verspricht recht solide Linux-Unterstützung. Die 3D-Leistung reicht für die anvisierten Spiele locker aus.

Die Hoffnung hat sich bewahrheitet. Beim ersten Anstecken ans Arbeitsnotebook wurden die AMD Treiber direkt von Ubuntu 22.4 geladen. Damit das Rendern vom 3D-Gelump auch über die potentere Karte stattfindet, muss sie die primär von Xorg verwendet werden. Dafür hat jemand ein sehr komfortables Setup-Skript geschrieben: egpu-switcher. Ein anschließendes Aus- und wieder Einloggen (was Xorg neu startet) bringt die angesteckte eGPU an die Front. Alina ist jedenfalls begeistert ein paar Runden SuperTuxKart gerast.Mal schauen ob ich das Bayala-Spiel auch zur Kooperation bewegen kann – Wine oder VM mit Windows? Wir werden sehen. Für meinen PC muss ich noch die Thunderbolt-PCIe-Karte besorgen, dafür sind die Preise nur gerade unangenehm hoch. Und dann braucht’s mal noch ein tauglicheres Gamepad als das olle Logitech; Eins mit ordentlichen Analog-Sticks. So kommt eins zum anderen…

(swg)

PHP Code Snippets Powered By : XYZScripts.com