HP T610 Thin Client: Mit Debian als Thin Client weiter nutzen

Mit dem HP T160 Thin Client steht ein nettes Stück x86-Hardware zur Verfügung, die nach ihrem regulären Ableben einfach weiter genutzt werden kann.

So lässt sich damit beispielsweise ein kompakter Homeserver, Media Center (HTPC) oder einfacher PC realisieren. Wegen der relativ schwachen Ausstattung kann man keine all zu großen Sprünge machen, je nach angedachten Zweck ist dennoch einiges machbar.

Für einen Kunden sollte nun ein einzelner Thin Client her, der einen Dual- bzw. Multi-Monitor-Betrieb ermöglicht. Am T610 gibt es neben einen DVI (mit VGA)- zusätzlich noch einen DisplayPort (DP)-Anschluss, die Grundvoraussetzungen wären damit schon mal erfüllt.

Das vorliegende Gerät hat keine Lizenz, ursprünglich wurde es vermutlich mal mit Windows 7 Embedded betrieben. Nun eine reguläre Windows-Lizenz für den Thin Client-Betrieb zu “opfern” wäre zu viel des Guten, in mehrfacher Hinsicht besser ist es eine Linux-Distribution zu verwenden.

In diesem Fall kommt Debian 11 Bullseye zum Einsatz. Der Vollständigkeit halber sei erwähnt, das es diverse Anwendungen gibt, mit denen Bestandshardware als Thin Client weiter genutzt werden kann. Wenn es nur um ein Einzelsystem geht und Recycling gemacht werden soll, ist der nachfolgend beschriebene Weg in Ordnung.

USB-Stick vorbereiten

Für die Installation kommt ein USB-Stick, der mit Ventoy vorbereitet wurde, zum Einsatz. Dadurch ist es einfach möglich, die *.iso-Datei auf diesen Stick zu kopieren. Ferner muss man sich (erstmal) keine Gedanken um BIOS oder UEFI bzw. UEFI Legacy machen.

Debian legt viel Wert auf den Open Source-Gedanken, leider stehen nicht immer für alle Hardware-Komponenten vollständig offengelegte Treiber zur Verfügung, daher greife ich lieber zur inoffiziellen *.iso, die bereits die non-free Firmware enthält. Diese kann hier heruntergeladen werden:

https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/

Die Hardware vorbereiten

Idealerweise hat man ein Gerät mit 16 GB SATA SSD oder weniger gut eine IDE SSD. Nach- oder Umrüsten lässt sich eine SATA SSD, mit ein wenig gebastel sogar mit DIY Halterung:

HP T610 ThinClient – DIY SSD-Halterung

Wer Wake-on-LAN (WoL) nutzen möchte sollte unbedingt im BIOS die UEFI-Boot-Devices deaktivieren:

Der Hintergrund zu diesem nicht ganz undringenden Apell liegt darin, das sich zwar Debian mit UEFI installieren lässt und die Hardware sogar via Magic Paket (WoL) gestartet werden kann, aber offensichtlich dann ein “UEFI-Bypass” greift und vmtl. versucht wird von einem Legacy-Boot-Device zu starten. Oder anders ausgedrückt:

Man bleibt schlicht an einem schwarzen Bildschirm mit blinkendem Cursor in der oberen linken Ecke hängen. Es startet noch nicht einmal Grub und man sieht auch sonst keine BIOS-Meldung.

Ob das nun ein Bug oder ein Feature ist, kann ich leider nicht sagen. Ins BIOS gelangt man übrigens entweder über “Esc” oder “F10”.

Das Basis-System installieren

Die eigentliche Installation ist unspektakulär, als Hostnamen kann die Seriennummer verwendet werden, bei der Software-Auswahl verzichtet man zunächst auf den Desktop, da dieser Task für den angedachten Zweck zu viel unnötige Pakete installieren würde. Stattdessen aktiviert man den SSH-Server, der für die spätere Fernwartung genutzt werden kann.

Einen minimalen Desktop einrichten

Gänzlich ohne grafische Oberfläche geht es nicht, man könnte zwar nur einen Display-Manager installieren und dann direkt via Remotedesktopverbindung o.ä. weiter arbeiten, etwas mehr Komfort kann es dann schon sein. Damit die Ressourcen geschont werden kommt Xfce zum Einsatz.

Alle nachfolgenden Befehle direkt an der Konsole oder via ssh, jeweils als root, ausführen:

apt install xfce4 xfce4-goodies

Bemerkung: Nicht “apt install task-xfce-desktop” ausführen, denn dann werden diverse Anwendungen gleich mit installiert!

Automatische Anmeldung am Desktop konfigurieren

Der Anwender soll sich morgens einfach an seinen Arbeitsplatz setzen und direkt loslegen können. Typisch bei Thin Clients ist, das man sich an diesen nicht anmelden muss. Gemeint ist dabei nur die lokale Anmeldung am Thin Client, nicht die Anmeldung an einen Terminalserver.

Damit beim Start automatisch ein Benutzer angemeldet wird, einfach wie folgt vorgehen:

nano /usr/share/lightdm/lightdm.conf.d/01_debian.conf

Folgende Zeilen ausführen:

[SeatDefaults]
autologin-user=<Benutzername>
autologin-user-timeout=0

Spiegeln einrichten

Das “Spiegeln” kennt man von vielen Thin Clients. Gemeint ist damit, das zu Support-Zwecken sich ein Helpdesk-Mitarbeiter auf den Desktop des Thin Clients verbinden kann. Er oder Sie sieht dann, was der Anwender auch sieht und kann z.B. Verbindungseigenschaften ändern. Damit dies bei unserem “Marke Eigenbau”-Thin Client ebenfalls möglich ist, wird X11vnc installiert:

apt install x11vnc

Zum Festlegen des VNC-Kennworts folgende Befehle ausführen:

x11vnc -storepasswd /etc/x11vnc.passwd
chmod 0400 /etc/x11vnc.passwd

Damit X11vnc beim Starten des Systems ebenfalls ausgeführt wird und zwar vor der Benutzeranmeldung (falls es da mal Schwierigkeiten gibt), wie folgt den Dienst anlegen:

nano /lib/systemd/system/x11vnc.service

Folgenden Inhalt einfügen:

[Unit]
Description=Start x11vnc
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -display :0 -auth guess -forever -loop -noxdamage -repeat -localhost -rfbauth /etc/x11vnc.passwd -rfbport 5900 -shared

[Install]
WantedBy=multi-user.target

Diese Konfiguration beschränkt den Zugriff auf “localhost” ein, d.h. ein direkter VNC-Zugriff ist so nicht möglich, man muss zuvor einen ssh-Tunnel aufbauen. Möchte man dies so nicht, entfernt man einfach “-localhost” aus der “ExecStart”-Zeile. Nun noch den Dienst registrieren und starten:

systemctl enable x11vnc.service
systemctl start x11vnc.service

(Aktuelles) Remmina installieren

Damit man einfach Verbindungen zu Terminalservern oder anderen Systemen aufbauen kann, empfiehlt sich der Einsatz von Remmina.

Installiert man dieses allerdings auf dem Repository mittels

apt install remmina remmina-plugin-rdp remmina-plugin-vnc

erhält man allerdings nicht die aktuellste Version. Bei Debian 11 Bullseye ist es 1.4.11 und in Testing ist es 1.4.21, die zu diesem Zeitpunkt aktuelle Ausgabe. Damit hinsichtlich RDP die Multi-Monitor-Unterstützung gegeben ist wird mindestens Version 1.4.13 benötigt. Hat man Remmina bereits aus dem Repository installiert, kann es so entfernt werden:

apt remove remmina remmina-plugin-rdp remmina-plugin-vnc

Nun kann man über eine entsprechende Konfiguration die Pakete aus dem Testing- oder Unstable-Repository installieren, allerdings kann das ungewollte weitere Pakete und in Folge Nebenwirkungen nach sich ziehen. Besser ist es in diesem Fall auf Flatpak zu setzen.

Flatpak und darüber Remmina sind schnell eingerichtet:

apt install flatpak

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

flatpak install flathub Remmina

Remmina bzw. generell Flatpak-Apps kann man einfach via

flatpak update

aktualisieren. Soweit ist das Grundsystem vorbereitet und man kann mit

reboot

neu starten. Nach dem erfolgtem Neustart wird der Desktop angezeigt werden.

Remmina wird wie folgt gestartet:

flatpak run org.remmina.Remmina

Diesen Befehl kann man als Starter auf dem Desktop ablegen:

Es macht durchaus Sinn das Remmina direkt nach der Anmeldung gestartet wird, das passende Stichwort lautet Autostart. Den entsprechenden Eintrag kann man unter

Anwendungen - Einstellungen - Sitzung und Startverhalten

auf der Registerkarte “Automatisch gestartete Anwendungen” einfügen:

Zur Info: Die Speicherorte für Verbindungseinstellungen von Remmina sind

/home/user/.local/share/remmina/
Flatpak: /home/$USER/.var/app/org.remmina.Remmina/

RDP und RemoteApps mit FreeRDP

Wer nur RDP oder speziell RemoteApps nutzen möchte oder muss, hat mit Remmina leider Pech, da ersteres dort zwar unterstützt wird, letzteres allerdings nicht. Hier hilft der Griff zu FreeRDP, das man entweder aus dem Repository von Debian installieren kann:

apt install freerdp2-x11

Die Nutzung erfolgt im einfachsten Fall dann so:

xfreerdp /u:<Benutzername> /p:<Passwort> /v:<RDP-Server> /f

Für die Unterstützung vom Multimonitorbetrieb hängt man ein

/multimon

an. Für RemoteApps sieht der Befehl so aus:

xfreerdp /u:<Benutzername> /p:<Passwort> /v:<RDP-Server> /app:"||<RemoteApp-Name>" /smart-sizing

Mit “<RemoteApp-Name>” ist der Freigabename einer RemoteApp gemeint. Dieser muss in der gleichen Syntax angegeben werden, wie man sie beispielsweise in entsprechenden *.rdp-Dateien findet:

xfreerdp /u:<Benutzername> /p:<Passwort> /v:<RDP-Server> /app:"||Notepad" /smart-sizing

Die entsprechenden FreeRDP-Befehle kann man als Starter auf dem Desktop hinterlegen.

Fein-Tuning

Es sollte noch die eine oder andere Kleinigkeit eingestellt werden.

Automatisches Sperren deaktivieren

Per Vorgabe wird der Desktop gesperrt wenn das System in den Standby geht oder der Bildschirm nach Zeit X abgeschaltet wird. Regeln lässt sich das unter

Anwendungen - Einstellungen - Energieverwaltung - Sicherheit

Herunterfahren- und Neu starten-Schaltfläche einblenden

Um schneller und einfacher den Quasi-Thin Client herunterfahren oder neu starten zu können, bietet es sich an entsprechende Schaltflächen direkt sichtbar zu haben. Am (imho) einfachsten ist es, rechts oben mit der rechten Maustaste den Benutzernamen anzuklicken und “Eigenschaften” auszuwählen. An dieser Stelle ändert man “Erscheinungsbild” auf “Aktionsknöpfe” und de-/aktiviert unter “Aktionen” alle gewünschten Punkte:

Automatisch Ein-/Ausschalten

Einen automatischen Start des T610 lässt sich entweder über eine entsprechende BIOS-Konfiguration erreichen oder via Wake-on-LAN (WoL). Imho ist letzteres besser, da man bequem den Start von einem Server aus planen kann, ohne am Gerät selbst etwas umkonfigurieren zu müssen.

Damit das System automatisch herunterfährt kann man via ssh einen entsprechenden Befehl absetzen (lassen) oder mittels Cronjob einen Zeitpunkt planen. Im Terminal oder via ssh als root folgenden Befehl ausführen:

crontab -e

Anschließend folgendes Einfügen, um das System täglich um 20:00 Uhr herunter zu fahren:

0 20 * * * /sbin/shutdown -h now

Untere Leiste konfigurieren

Auf dem Desktop gibt es per Vorgabe eine Leiste am unteren Rand, die diverse vorkonfigurierte Symbole enthält. Mit unter kann diese störend sein und ungewollt eingeblendet werden. Neben dem Voreingestellten intelligenten Ausblenden ist ein generelles Ausblenden möglich oder man entfernt diese Leiste vollständig.

Konfigurieren kann man es so:

  • Auf der oberen Leiste mit der rechten Maustaste klicken und “Leiste – Leisteneinstellungen” auswählen.
  • “Leiste 2″ auswählen und wie gewünscht einstellen oder mit einem Klick auf die Minus-Schaltfläche” diese entfernen.

Weiteres

Man kann noch viel mehr anpassen und ändern wie z.B. die Schreibtisch-Symbole ausblenden oder das Anwendungen-Menü anpassen:

Xfce – Das Xfce 4.5+ Menü anpassen

Wake-on-LAN aktivieren

Damit WoL funktioniert, muss es zunächst im BIOS aktiviert sein. Wie das geht ist hier beschrieben:

manualslib – Wake-On Lan; Power-On Sequence – HP t610 Series Troubleshooting Manual

Kurz gesagt: “S5 Maximum Power Savings” muss auf “Disabled” stehen, ab Werk ist das der Fall. Wie eingangs erwähnt sollten zudem die UEFI-Boot-Devices deaktiviert sein.

Die nachfolgenden Schritte muss man nur unternehmen, wenn es nicht auf Anhieb funktioniert!

Neben der Hardware und den BIOS-Einstellungen muss auch das Betriebssystem mitspielen. Unter Debian kann man mit dem “ethtool” prüfen, ob Wake-on-LAN von der Netzwerkkarte unterstützt wird und ob es aktiv ist:

root@debian-thinclient:~# ethtool enp3s0
Settings for enp3s0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        MDI-X: on
        Supports Wake-on: g
        Wake-on: g
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
        Link detected: yes

Die Zeile “Wake-on:” gibt den Status an, “g” bedeutet das WoL für Magic Pakets aktiviert ist. Damit das Betriebssystem beim Herunterfahren die Netzwerkkarte in den richtigen Modus versetzt bzw. nicht komplett ausschaltet muss man folgendes konfigurieren:

nano /etc/network/interfaces

iface enp3s0 inet dhcp
        ethernet-wol g
        post-up /sbin/ethtool -s $IFACE wol g
        post-down /sbin/ethtool -s $IFACE wol g

Die Änderung speichern und neu starten.

Abschlussbemerkung

Dieser Beitrag ist umfangreicher ausgefallen als ursprünglich erwartet, dennoch war ein Teil der einzelnen Schritte, vor allem bei Remmina, Flatpak, FreeRDP und WoL sehr lehrreich. Die länge des Textes soll allerdings niemanden abschrecken. Die eigentliche Installation inkl. Copy & Paste der hier aufgezeigten Befehle führt zu einem lauffähigen DIY-/Quasi-Thin Client in ca. 30 Minuten, wenn die verwendete Hardware performanter ist ist man sogar früher fertig.

Quellen

Debian – Wiki – Xfce

steemit – How to enable auto-login in Debian 9 Xfce

My Sysadmin Cheatsheet – X11VNC on Debian/Ubuntu

Elektronik Kompendium – VNC-Server auf dem Raspberry Pi einrichten (X11VNC)

Medium – Linux : Remote desktop multiple monitor support

serverfault – How can I run Debian stable but install some packages from testing?

debian grimoire – Installing Testing Packages on Stable

Debian – Wiki – AptPreferences

GitLab – Remmina – Issues – #376 – RDP: Multi monitor support

GitLab – Remmina – Issues – #2184 – Multi monitor support

Remmina – How to install Remmina

GitLab – Remmina – Releases

Flatpak – Docs – Getting Started – Using Flatpak

Flatpak – Debian Quick Setup

Debian – Wiki – FlatPak

Flathub – Remmina

ubuntuusers – Wiki – FlatPak

Debian – Wiki – Wake on LAN

Thomas Krenn – wiki – Wake on LAN unter Linux

debianforum.de – [erledigt] wakeonlan zeigt keinen Wirkung

ArchLinux – Wiki – Wake-on-LAN

5 Kommentare

  • Hallo. Super Anleitung, jedoch ist bei mir die Auflösung nur 600×800 und nicht änderbar und über “Einstellungen-Anzeige” wird nur “default” und keine Graka bzw. Monitor vorgeschlagen.

    Bei ARCH mit XFCE war alles fein in FHD.

    Fehlen Treiber oder ähnliches?

    Gruß nelzon

  • Klingt nach fehlenden Treiber oder zu altem Kernel, wobei die Hardware ja schon gut abgehangen ist. Wie und in welchen Versionen würde denn installiert?

  • Aktuelles debian 11 non-free netinst-Version aus deinem Link. Also genau wie du es beschrieben hast. Der neuste Kernel wird doch dabei mitinstalliert, oder täusche ich mich?

  • Für die Nachwelt: “apt install firmware-amd-graphics” (Fehlermeldungen ignorieren) + “reboot” löste das Problem

  • Danke für dein Feedback. Seltsamerweise hatte ich das nicht bzw. den Befehl nicht benötigt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.