Le calepin du geek
Geek : Personne s’intéressant à des domaines pointus, avec une once de créativité.

Ceci est un site perso, dans le pur esprit web 1.0, compilant des notes diverses sur des thèmes d’intérêt. (Informatique, programmation, voyage à vélo, réflexions)

Utiliser un vieux PC portable comme écran distant vers son PC fixe avec un client léger linux
Car aujourd’hui, c’est le navigateur qui consomme le plus, alors si c’est vieux ça rame

Si l’on a un PC fixe moderne, on peut réutiliser un très vieux portable pour utiliser le PC fixe à distance.

Article mis en ligne le 14 juillet 2019
par aldoniel
Imprimer cet article logo imprimer
JPEG - 51.7 ko
Windows 10 "sur" un thinkpad conçu pour windows 98 il y a 20 ans

 Intro

Problème :

  • Il se trouve que j’ai un PC tour de gamer dans une pièce et que j’aimerais parfois utiliser un PC portable depuis une autre pièce, essentiellement pour lire et écrire un peu.
  • Or je n’ai plus de PC portable moderne.
  • Ce serait aussi bien d’avoir le son (je considère les clients de type VNC, qui ne transmettent que la vidéo, comme insuffisants)

Solution :

  • utiliser le PC principal sous Windows comme serveur est un vieux PC Linux comme client léger.
  • Je place la barre assez haut dans le défi technique, à savoir utiliser mon vieux PC thinkpad 600E animé par un processeur Pentium II et environ 110 Mo de mémoire RAM, à savoir car il marche bien et que c’est l’ordinateur portable dont l’écran est le plus grand parmi ce que j’ai sous la main.
  • Le PC serveur fera tourner Windows 10 Pro.
    • En effet, la version home ne permet pas d’utiliser la fonction bureau à distance.
    • Heureusement, on peut facilement faire la mise à jour vers licence pro, celle-ci m’a coûté 3 euros sur Amazon.
  • Le client léger sera rdesktop, l’OS hôte sera Puppy Linux (puppy-4.2.1retro-k2.6.21.7-seamonkey précisément), pour la simple raison qu’il est impossible d’installer quoi que ce soit d’autre sur une configuration aussi légère avec du matériel commercialisé en 1998, et dont les drivers sous Linux ne sont plus supportés depuis un bail.

 Installation

  • Installation de Linux, cf : Installer linux sur un IBM Thinkpad 600E
  • compilation de rdesktop v1.8.6 (il ne faut pas rêver, aucune version récente n’est disponible compilée sur cet OS)
    • en bref, je vous donne le fichier binaire que j’ai compilé moi-même avec quelques limites, cf. infra
    • là, les choses sérieuses commencent. La théorie simple, c’est qu’il faut lancer ./configure ; make ; make install.
    • La réalité, c’est que même avec le module développeur de puppy, je n’ai pas réussi à résoudre les dépendances de credssp, et je n’ai même pas essayé celles de smartcard (vu que je n’en ai pas). Je vous laisse essayer...
    • Le programme a donc été compilé avec ./configure --disable-smartcard and --disable-credssp
      • disable-credssp est légèrement ennuyeux, mais pas trop, l’ensemble fonctionne encore en décochant "N’autoriser que la connexion des ordinateurs exécutant le Bureau à distance avec authentification NLA (recommandé)" dans les propriétés système de Windows. Sans trop avoir exploré la question je comprends que le PC hôte peut devenir vulnérable à une attaque DDOS (ce qui a fort peu de chances d’arriver en LAN).
    • Plus ennuyeux, j’ai dû retirer du code source les appels aux fonctions X509_PUBKEY_set0_param() et X509_PUBKEY_get0_param dans ssl.c suite à une "reference error" insoluble... Je n’ai pas vraiment pris le temps de comprendre la portée exacte de cette modification mais à première vue ça semblait gérer un cas de figure un peu particulier (la 1ère sert seulement à afficher une erreur)... En tout cas ça marche très bien chez moi...

 Usage

  • Allumer le PC Windows 10 pro serveur ; autoriser la connexion bureau à distance (appuyer sur les touches windows+pause pour afficher les "propriétés système" -> onglet utilisation à distance, bureau distance, décocher "N’autoriser que la connexion des ordinateurs exécutant le Bureau à distance avec authentification NLA (recommandé)".
  • Lancer sur le PC léger sous Linux rdesktop dans la console (oui, sous linux c’est très console...) :
    • REMOTEIP est l’IP du PC Windows sur le réseau local
    • -u USER et -p PASSWORD sont les identifiants windows sur lesquels on souhaite se connecter (si on supprime ces paramètres, on doit les saisir manuellement)
    • -r sound:local:oss permet de retransmettre le son, à savoir que j’ai eu de meilleurs résultats avec cette commande que sa variante alsa.
    • -f affichage plein écran
    • -k fr clavier AZERTY
    • -x 0x81 utilise plus bande passante mais améliore l’image et les fontes sont lissées.

 Limites

  • La vidéo est saccadée.
  • le son peut être lu en arrière plan, mais lancer une vidéo le rend aussi saccadé. (Je ne pense pas que ce soit soluble, j’ai bien peur que le matos soit trop léger (je tenterai à l’occasion de rajouter de la RAM sans espoir).
  • Firefox ne transmet pas le son au moins dans certains conditions. Je ne sais pas trop pourquoi, mais c’est un problème de firefox (déjà vu sous citrix avec des vieux firefox).
    • Soluce : utiliser chrome (vivaldi...).

 Sécurité

  • "bof". En LAN, ça va, surtout si les voisins ont 70 ans pour les plus jeunes. Si je m’en servais à distance, ce serait avec le wake on lan du routeur + un tunnel open ssl avec un pass TOTP + un compte windows limité avec un gros mot de passe. (Au moins ; autrefois j’utilisais aussi une fenêtre de RDV et un système perso OTP pré-partagé...).

 Alternatives

Si votre portable et plus récent (enfin moins vieux), c’est-à-dire avec 1 Go de mémoire vive je vous conseille clairement d’installer une variante légère d’Ubuntu et de lancer Remmina, ce sera plus simple.

A télécharger

Pas de documents à télécharger pour cet article


Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.70.61