Hackons le Wyse S30

Note : cet article est une republication de la page « Hackons le Wyse S30 » que j’avais publié en septembre 2013 sur Homeserver-DIY.net

Hackons le Wyse S30

Comme d’autres personnes présentes sur ce site, j’ai fait l’acquisition il y a quelques mois de deux Wyse S30 avec la ferme intention de les bidouiller. Cette page a pour but de vous faire (re)découvrir votre Wyse sous toutes ses coutures et de vous faire gagner un temps précieux dans vos expérimentations et dans l’installation de systèmes d’exploitation alternatifs, qu’ils soient propriétaires ou libres.

Notez qu’ici nous aborderons le cas du Wyse S30 dans sa révision 02L (avec le port IDE et la barrette de mémoire vive détachables) mais que vous ne devriez pas avoir trop de problèmes à suivre les tutoriels si vous possédez un Wyse S10 ou S50 (sauf pour la partie consacrée à l’installation de coreboot, qui est réservée au S30 02L). En cas de doute ou de question, n’hésitez pas à faire un tour sur le forum (note : le forum est maintenant fermé) pour y obtenir des conseils ou de l’aide.

Présentation technique du Wyse S30

Un Wyse S30 démonté

Derrière le Wyse S30 se cache une configuration plutôt modeste :

Carte mère : Simple, compacte, peu modifiable, elle possède un connecteur IDE 44 pins (également appelé IDE 2.5") mâle (nappe IDE obligatoire donc) avec par défaut un petit module de 64 MB connecté, un slot mémoire vive acceptant des barrettes de type SO-DIMM DDR SDRAM de 200 pins. Le slot accepte, au plus, 512mb. La puce contenant le BIOS est une SST49LF020A de 256KB facilement ré-inscriptible à l’aide du logiciel flashrom.

Processeur : C’est un AMD Geode GX 500 cadencé à 366MHz avec un cache L1 de seulement 32KB. Bien qu’étant officiellement un processeur à architecture i686, il ne supporte ni les instructions NOPL, ni la technologie PAE. Cela peut vous poser quelques problèmes avec de rares programmes déjà compilés et avec Ubuntu (et ses dérivées).

Système d’exploitation : Livré avec Windows Embedded CE 6.0, le système n’est plus mis à jour (les rares logiciels présents sont obsolètes), possède très peu de fonctionnalités, peu d’espace disque et est globalement lent.

Vous l’aurez compris, cette mini-machine est peu puissante. Cependant, bidouillée correctement, on peut obtenir une machine tout à fait correcte pour faire tourner un serveur pour s’auto-héberger ou pour avoir un PC axé bureautique pour pas cher.

Côté matériel

Ajouter de la mémoire vive

L’un des problèmes avec le Wyse, c’est la faible quantité de mémoire vive disponible: 128 MB. C’est pour cette raison que je vous invite vivement à remplacer la barrette d’origine par une de 256 MB ou 512 MB (mais pas plus, ça ne fonctionnerait pas). Pour cela, je vous fais confiance et vous laisse commander une barrette de type SO-DIMM DDR SDRAM de 200 pins chez votre revendeur préféré. Quant au remplacement, sachez que c’est grosso-modo le même système de clipsage que sur les slots mémoires des ordinateurs portables: déclipsez, remplacez, poussez.

Remplacer la mémoire morte interne

Un autre problème avec le Wyse vient de la vitesse de ses ports USB : je n’ai jamais réussi à dépasser les 3 mb/s dans mes tests, et cela a un effet très néfaste: les installations sont longues, très longues (comptez en moyenne trois à quatre heures pour Debian ou Windows 98). Un moyen d’outrepasser ce problème est d’enlever la carte électronique branchée sur le port IDE 44 pins pour y brancher soit un disque dur IDE 2.5", soit un petit convertisseur IDE vers carte SD (ou sata) (environ 5€ sur ebay), ou tout autre périphérique IDE. Toutefois, il faut faire attention : par défaut, le BIOS désactive l’IDE lorsque qu’il est configurer pour booter après l’USB. Ce problème peut être outrepassé facilement en suivant la rubrique « Ma distribution ne reconnaît pas la mémoire interne du Wyse/le disque dur IDE que j’ai branché ».

Remplacer le BIOS par Coreboot

Enfin, le dernier problème avec le Wyse provient de son BIOS: en plus d’être très peu configurable et de supporter très peu de matériel récent, il empêche le libre accès au port IDE et pose parfois de gros problèmes lors de l’amorçage du noyau Linux, conduisant 9 fois sur 10 (selon mes estimations) à un blocage pur et simple du système lors de la phase de boot. Fort heureusement, un néerlandais connu sous le pseudonyme de Fijam a réussi à compiler un « BIOS alternatif » (appelé Coreboot) qui, une fois installé, permet de régler la majorité des problèmes liés au BIOS original.

Avertissement

Cette manipulation est réservée au Wyse S30 révision 02L (comme expliqué au tout début de cette page). Flasher un BIOS n’est pas une tâche anodine: mal réalisé, le flashage peut conduire au brickage de votre appareil. Ne suivez ce tutoriel que si vous savez ce que vous faites.

De plus, Coreboot apporte quelques problèmes:

Matériel nécéssaire

Pour flasher le nouveau BIOS, vous aurez besoin d’acheter pour environ 15€ de matériel. Vous aurez besoin:

  • D’une puce Microchip SST49LF080A-33-4C-NHE (d’une taille de 1 MB). Elle est disponible chez mouser pour 5€.
  • D’un extracteur PLCC, pour pouvoir retirer l’ancienne puce.
  • D’un Wyse fonctionnel et connecté à Internet, sur lequel vous aurez installé Debian

Flashons

Pour flasher notre Wyse, nous allons utiliser un petit logiciel appelé Flashrom. Commençons par l’installer:

apt-get install flashrom

Ensuite, nous allons télécharger le nouveau firmware pour le BIOS.

On télécharge le nouveau firmware dans le dossier temporaire :

wget -c "https://drive.quent1.fr/index.php/s/aa2468dabbc7c9f388415cc8696bb969/download" -O /tmp/coreboot.rom

Doit correspondre à f3aaa7060f0f6ffc68f2cd3d4c52df04. Si ce n’est pas le cas, vous devez recommencer le téléchargement :

md5sum /tmp/coreboot.rom

Ouvez ensuite votre Wyse, puis retirez à chaud (c’est à dire sans l’arrêter) l’ancienne puce du BIOS (composant n°9 sur la photo) avant de placer votre puce vierge dans l’emplacement ainsi libéré. Nous allons maintenant flasher le nouveau firmware:

flashrom -w /tmp/coreboot.rom

Si la commande ne renvoie aucune erreur, vous pouvez redémarrer votre Wyse.

En cas d’erreur

Si votre Wyse ne s’allume plus ou si la commande a renvoyé une erreur, remplacez la nouvelle puce par l’ancienne, puis recommencez. Enfin, si vous souhaitez récupérer le BIOS original, sachez qu’il est disponible au téléchargement ici (md5sum e2cb7055e70372ae5d47d5975268e6ad).

Côté logiciel

Configurer le BIOS

Description des options du BIOS

Pour accéder au BIOS du Wyse, il suffit de brancher un clavier USB au Wyse et de l’allumer tout en maintenant la touche Suppr. enfoncée. Une fois le BIOS affiché, configurez le BIOS à votre guise, en suivant les indications de l’image ci-contre. Voici une « bonne » configuration pour un serveur :

  • Boot order: USB, PXE, IDE (ou IDE, USB, PXE si le système est installé sur une interface IDE).
  • Video memory: si votre serveur n’affichera rien de plus qu’une interface en ligne de commande, mettez 4 MB. Si votre serveur possèdera une interface graphique, pensez à augmenter la valeur (qui doit être comprise entre 4 MB et 16 MB).
  • Power control: always on. Ainsi, en cas de coupure de courant, votre serveur redémarrera tout seul (sans que vous ayez à appuyer sur le bouton d’alimentation).

Pour sauvegarder la configuration, appuyez sur X. Pour annuler les changements, appuyez sur Q et pour remettre à zéro la configuration, appuyez sur L.

Installer un autre système d’exploitation

Windows

De manière générale, Windows 98 et Windows 2000 ne devraient pas poser trop de problèmes lors de l’installation. Windows 95 n’a pas été testé mais je ne conseille pas son installation à cause de la mauvaise gestion des périphériques USB par l’OS. Windows XP n’a pas non plus été testé, mais la configuration du Wyse semble trop légère pour supporter un OS aussi récent (sauf peut-être dans sa version Embedded). Cependant, sachez qu’installer Windows sur une machine sans en posséder la licence est strictement illégal.

Windows 98 SE

Pour installer Windows 98 sur votre Wyse, il vous suffit de suivre ce tutoriel en anglais sur Youtube.

Notes

L’installation est très longue sur une clé USB (compter quatre bonnes heures). Si, lors de l’installation, un message d’erreur à propos de « System BUS » apparaît, appuyez sur Skip (ou un bouton équivalent si différent). Si un message d’erreur à propos de « System Board » apparaît, appuyez sur Continue (ou un bouton équivalent si différent). Si, lors du boot, un scandisk se lance systématiquement et trouve toujours une erreur irrécupérable, il n’y a qu’une chose à faire: recommencer l’installation depuis le début. Chez moi, la souris USB ne fonctionne pas. Vous devrez également vous munir de nombreux drivers (non fournis par défaut) pour faire fonctionner des choses aussi basiques que le port Ethernet.

Windows CE (système original)

Pour ceux qui auraient effacé le système original présent sur la ROM IDE du Wyse, voici comment réinstaller Windows CE:

Créez une clé USB bootable contenant Debian ainsi que ce fichier zip (md5sum 3169e33c54dcc69eeb2afcf59a0dd134), que vous nommerez _winterm.zip_ pour plus de clarté.

Lancez une installation de Debian en mode expert et, juste avant d’arriver à l’étape de détection des disques, ouvrez un terminal en tant que root et entrez les commandes suivantes pour permettre la détection de la mémoire interne :

modprobe -r pata_amd
modprobe -r pata_cs5536
modprobe -r ata_generic
modprobe ata_generic all_generic_ide=1

Lancez l’étape de détection des disques

Remontez la ROM en lecture et écriture puis extrayez le zip à l’intérieur :

mount -o remount,rw /dev/sdb1 /mnt
rm -rf /mnt/*
unzip winterm.zip -d /mnt

Redémarrez et admirez

FreeDOS (système compatible MS-DOS)

C’est le système qu’il vous faut si vous souhaitez transformer votre Wyse en une machine pour jouer à vos vieux jeux MS-DOS! Le système (porté par mes soins) est stable, rapide et ne plante pas au démarrage (contrairement à Linux).

  • Installez et démarrez Debian (en suivant les instructions également présentes sur cette page ci-besoin)
  • Entrez les commandes suivantes:

On se connecte en root :

sudo -i

On télécharge FreeDOS dans un répertoire temporaire:

wget https://drive.quent1.fr/index.php/s/db0e1a8c065d8971de5a41bae1b0a17c/download -O /tmp/freedos.img

Doit correspondre à 46ddde04a024a5e94bb298b67ddc8a97. Si ce n’est pas le cas, vous devez recommencer le téléchargement :

md5sum /tmp/freedos.img

On décharge les modules bloquant la lecture de la mémoire interne :

modprobe -r pata_amd pata_cs5536 ata_generic

Et on charge un module permettant sa détection :

modprobe ata_generic all_generic_ide=1

On écrit l’image de FreeDOS sur la mémoire interne du Wyse (environ 40 secondes) :

dd if=/tmp/freedos.img of=/dev/sda

Arrêtez Debian, retirez la clé USB et bootez sur la mémoire IDE

Linux

De manière générale, Linux devrait s’installer sans trop de problèmes. Cependant, veillez aux points suivants:

  • Le système doit pouvoir tourner avec une configuration très limitée. Si vous souhaitez une interface graphique, oubliez tout de suite Debian et autre best-sellers de la catégorie et privilégiez de petites distributions telles que Tiny Core Linux.
  • Grub n’arrive pas à booter sur le Wyse. Utilisez plutôt Lilo ou Extlinux pour amorcer le système.
  • À cause de sa configuration quelque peut exotique, un (re)boot à chaud peut faire planter le système. Le remplacement du BIOS par défaut part Coreboot devrait régler le problème.

Debian

Démarre une fois Grub remplacé par Lilo. Le système est lent, très lent. Est très souvent victime du « hang on boot » décrit plus haut. Voici comment mener à bien l’installation:

  1. Téléchargez et installez le CD1 de Debian sur une clé USB
  2. Branchez deux clés USB sur le Wyse et démarrez-le sur la clé
  3. Lancez une installation en mode expert
  4. Installez Debian sur la seconde clé USB
  5. À la fin de l’installation, sélectionnez Lilo (et non Grub) comme gestionnaire de démarrage

Ubuntu (toutes versions)

Ne peut pas démarrer. En effet, depuis la 12.04, toutes les versions d’Ubuntu nécessitent une machine compatible avec PAE, ce qui n’est pas le cas du Wyse S30. Cependant, vous pouvez toujours tenter une installation de Xubuntu ou Lubuntu LTS ≤ 11.04 en pensant bien à installer Lilo.

Tiny Core Linux

Du fait de sa légèreté, Tiny Core Linux est un très bon choix pour le Wyse S30. Le système est plutôt rapide mais reste vulnérable au fameux « hang on boot » décrit plus haut. Cependant, l’installation n’est pas des plus simples. Voici comment procéder:

Formater une clé USB en ext4

Extraire l’ISO de Tiny Core Linux à la racine de la clé USB

Rendez-vous sur la racine de la clé USB avec un terminal et exécutez les commandes suivantes:

On remplace isolinux par extlinux :

sudo mv boot/isolinux boot/extlinux
sudo mv boot/extlinux/isolinux.cfg boot/extlinux/extlinux.conf
sudo rm boot/extlinux/isolinux.bin

On créé les dossiers utiles à l’installation de Tiny Core Linux :

sudo mkdir -p tce/optional
sudo mkdir opt

On installe le MBR sur la clé et on configure le boot (où sdX est l’identifiant de votre clé (ex: sdb)) :

sudo cat /usr/lib/syslinux/mbr.bin
sudo blkid -s UUID /dev/sdX1
sudo gedit boot/extlinux/extlinux.conf

Ici, gedit a dû s’ouvrir. Retournez dans le terminal, notez l’UUID qui s’est affiché à la fin de la commande suivante et ajoutez

waitusb=5 tce=UUID="VOTRE_UUID" restore=UUID="VOTRE_UUID" home=UUID="VOTRE_UUID" opt=UUID="VOTRE_UUID"

aux lignes où

append initrd=[...]

s’affiche.

Enregistrez, retirez la clé USB, bootez et profitez!

Open WRT (kamikaze)

Dans ses versions les plus récentes, Open WRT réagit très mal avec le Wyse S30: hangs on boot, système de fichier non reconnu, etc… Cependant, dans sa version « Kamikaze » (8.09.2), aucun de ses problèmes ne se pose, même pas la maladie linuxienne du « hang on boot »!. Ici, nous allons donc voir comment flasher Open WRT Kamikaze sur la mémoire interne (pas besoin de clé USB!) du Wyse S30.

Installez et démarrez Debian (cf les instructions disponibles ici-même).

On se connecte en root:

sudo -i

On télécharge la dernière version d’OpenWRT Kamikaze dans un répertoire temporaire :

wget https://downloads.openwrt.org/kamikaze/8.09.2/x86/openwrt-x86-ext2.image -O /tmp/openwrt.img

Doit correspondre à 22f14a11da29651bbf2fc24e8991a0a7. Si ce n’est pas le cas, vous devez recommencer le téléchargement :

md5sum /tmp/openwrt.img

On décharge les modules bloquant la lecture de la mémoire interne :

modprobe -r pata_amd pata_cs5536 ata_generic

Et on charge un module permettant sa détection :

modprobe ata_generic all_generic_ide=1

On écrit l’image d’OpenWRT Kamikaze sur la mémoire interne du Wyse (environ 40 secondes) :

dd if=/tmp/openwrt.img of=/dev/sda

Arrêtez Debian, retirez la clé USB et bootez sur la mémoire IDE

Reliez directement votre Wyse à votre PC via un câble ethernet. Désactivez toutes les autres connexions

Entrez les commandes suivantes dans un terminal

On se connecte en telnet au Wyse (utilisez PuTTY si vous êtes sous Windows) :

telnet 192.168.1.1
passwd # Entrez un mot de passe
exit

Ensuite, accédez à votre Wyse, soit en SSH:

ssh root@192.168.1.1

soit via un navigateur:

http://192.168.1.1/

Et voilà! Libre à vous de faire ce que vous souhaitez: changer l’IP, créer un répéteur wifi, etc… Pensez à faire un tour sur la documentation officielle!

Activer les ports USB

Connectez-vous en SSH et entrez les commandes suivantes:

On met à jour la liste des paquets :

opkg update

On installe tout ce qui est utile :

opkg install kmod-usb-ohci usbutils libusb

On redémarre :

reboot

Problèmes courants

Mon système consomme peu de ressources mais tourne lentement

C’est un des désavantages du Wyse: ses ports USB sont lents, trop lents. Ici, deux solutions s’offrent à vous:

  • Soit vous faites tourner un système d’exploitation léger, tel que Tiny Core Linux (en suivant les instructions disponibles ici-même)
  • Soit vous remplacez la mémoire interne (en suivant encore les instructions présentes sur cette page) pour pouvoir installer un système d’exploitation directement sur le Wyse

Ma distribution Linux se bloque souvent au démarrage

C’est un problème courant sur le Wyse S30. Ici, la seule solution viable est de flasher votre Wyse avec Coreboot (voir les instructions disponibles plus haut)

Ma distribution ne reconnaît pas la mémoire interne du Wyse/le disque dur IDE que j’ai branché

Lorsque vous démarrez via un périphérique USB, le BIOS du Wyse désactive automatiquement l’accès à l’IDE. Pour rétablir cet accès, deux solutions s’offrent à vous:

Soit vous tentez d’installer une distribution Linux et, lors de l’installation, ouvrez un shell (généralement ctrl+alt+f2) et entrez ces commandes qui permettront de détecter la mémoire interne:

sudo -i
modprobe -r pata_amd
modprobe -r pata_cs5536
modprobe -r ata_generic
modprobe ata_generic all_generic_ide=1

Soit vous tentez d’installer un système d’exploitation autre que Linux et la seule solution consiste à flasher votre Wyse avec Coreboot (voir les instructions disponibles plus haut).

Liens utiles