Nomachine Enterprise Workstation auf Proxmox inkl. Grafikbeschleunigung
Einleitung
Nachdem viele von euch schon festgestellt haben das es im Linuxbereich keine brauchbare freie Lösung gibt um einen Terminalserver in einer produktiven Umgebung einzusetzten, kann ich euch beruhigen. Mit ein wenig Geld ist das kein Problem.
Ziel war es:
- Einen modernen Desktop mit vielen Möglichkeiten für den Benutzer bereit zu stellen
- Nicht nur einen Terminalserver, sondern eine Arbeitsumgebung zu schaffen wo der Client selbst seine Bedeutung verliert
- Den Terminalserver mit Grafikbeschleunigung zu versehen wo auch der User über das Netzwerk 3D beschleunigte Applicationen ausführen kann
Nomachine Enterprise Workstation hat 4 Userzugriffe und beinhaltet für die Übertragung h264 und OpenGL. Weiters bietet es die Möglichkeit Grafikarten wie Intel und NVIDIA nativ zu nutzen. Die freie Version von Nomachine würde ich als gut benutzbares VNC und Fernwartungstool zu sehen, aber auf keinem Fall für die tägliche Arbeit. Auch ist zu erwähnen das die tollen Features auch nicht in der EVAL enthalten sind und auch dort manuel eingebaut werden muss. Die paar Euros sind es immer wert die Enterprise Workstation zu kaufen, denn es funktioniert einfach.
Umgebung
- Proxmox 5.3
- KVM Gast: KDE Neon 18.04 mit UEFI und Spicegrafik
- Nomachine Enterprise Workstation Version 6.4.6
- Grafikbeschleunigung mit virtueller Spicegrafik, hat man ne GPU wird diese selbstverständlich voll genutzt
VMconfig Bespiel
agent: 1 args: -device intel-hda,id=sound5,bus=pci.0,addr=0x18 -device hda-micro,id=sound5-codec0,bus=sound5.0,cad=0 -device hda-duplex,id=sound5-codec1,bus=sound5.0,cad=1 bios: ovmf bootdisk: scsi0 cores: 8 cpu: host cpuunits: 512 description: Terminalserver mit KDE NEON%0ANomachine Enterprise Workstation efidisk0: SSD-vmdata:vm-104-disk-1,size=128K hotplug: disk,network,usb ide2: none,media=cdrom memory: 5120 name: term.osit.cc net0: virtio=62:27:B3:7E:09:1A,bridge=vmbr0 numa: 1 onboot: 1 ostype: l26 scsi0: SSD-vmdata:vm-104-disk-0,discard=on,size=32G,ssd=1 scsihw: virtio-scsi-pci sockets: 1 vga: qxl,memory=128 ..
Installation Konfiguration
Voraussetzung:
- Installierte Nomachine Enterprise Workstation (nicht EVAL)
- Nomachine Login virtueller Desktop funktioniert
- KDE NEON up do date und auf UEFI basis
- SSH für dein einfach Zugriff für die Erstkonfiguration
- Es darf kein Benutzer am physikalischen Desktop, sprich SDDM eingeloggt sein
Konfiguration
Zuert konfigurieren wir den NXclient. Dieser benötigt noch zwei LIBS damit der H264codec sein Werk tun kann. Hier als Beispiel ein KDE-Neon mit dem Enterprise Client:
cp /usr/lib/x86_64-linux-gnu/libavutil.so.55.78.100 /usr/NX/lib/libavutil.so cp /usr/lib/x86_64-linux-gnu/libavcodec.so.57.107.100 /usr/NX/lib/libavcodec.so
Das wars zum Client.
Um die Beschleunigung am Server zu aktivieren sind folgende zwei Optionen in der Datei /usr/NX/etc/node.cfg
auszukommentieren und zu setzten.
.. EnableVirtualGLSupport 1 # Aktiviert die native 3D Beschleunigung, abhängig von der Hardware für den gesamten Desktop AgentX11VectorGraphics 0 # Deaktiviert die X11 Komprimierung, sonst wird kein h264 für die Beschleunigung verwendet # for Lubuntu Desktop -DefaultDesktopCommand "dbus-launch --exit-with-session gnome-session --session=ubuntu" +DefaultDesktopCommand "/etc/X11/Xsession default" ..
#FR11O03550
Die Punkte und viele andere Optionen können auch mit der Binary gesetzt werden, z.B.:
/usr/NX/bin/nxserver --virtualgl yes
Weiters kann man einen Benutzer zum NX-Administrator machen, dieser kann dann mittels der NX-GUI administrieren.
/usr/NX/bin/nxserver --useradd deinuser --administrator /usr/NX/bin/nxserver --userlist
NXserver für OpenGL nutzbar machen:
/etc/NX/nxserver --virtualgl-install
Das ganze wieder deaktivieren… wer es braucht:
/etc/NX/nxserver --virtualgl-uninstall
Hat man das ganze Konfiguriert und den NXserverdienst mit der integrierten CLI reloaded oder den Dienst mit systemd neu gestartet. Kann man sich bereits einloggen. Beim Login natürlich „virtuellen Desktop“ auswählen.
Unter SDDM muss man noch ein Timeout vergeben.
nano /usr/share/sddm/scripts/Xsetup
- xhost +LOCAL: + sleep 5; xhost +LOCAL:) &
Nun noch den Displaymanager neu starten systemctl restart sddm.service
.
Bedienung
Arbeitet das System richtig hat man sogar ohne echter Hardwaregrafikkarte ne super Beschleunigung die nicht mal annähernd an Windowsterminalservern heran kommt, zumindest nicht ohne RemoteFX und sehr viel Geld. Von der komplizierten Config möchte ich hier garnicht erst anfangen. Wichtig ist das man den Compositerenderer auf Xrender setzt. Dann flutscht das ganze.
Um eine bestimmte Application im OpenGL auszuführen falls man EnableVirtualGLSupport 1
nicht aktiviert hat, gibt man auf der CMD folgendes ein, z.B. hier supertuxkart.
/usr/NX/scripts/vgl/vglrun supertuxkart
Man kann auch statt dem Desktop nur einzelne Applikationen aufrufen und verteilen. Es funktioniert auch ohne /usr/NX/scripts/vgl/vglrun
.
Links
- How to use Intel H.264 HW encoder with NoMachine on Linux platforms (ist in der Enterprise Workstation schon enthalten)