Près de 7 ans plus tard, est-il toujours possible de modifier Linux afin qu'on puisse brancher un écran cathodique, comme une TV ou un écran d'arcade, autrement appelé moniteur 15 kHz, sur un ordinateur muni d'une carte graphique ATI ?
La démarche décrite dans mon billet de l'époque pour patcher 15 kHz, puis compiler un noyaux Linux est-elle toujours valable ?
- C'est ce que j'ai eu besoin de valider afin de pouvoir mettre à jour l'OS de ma borne et utiliser les dernières versions de mame.
Le temps passe à une vitesse folle. À peine a-t'on un système jouable en place qu'il est déjà sur la sellette du remplacement, et fatigué par ce manège, j'avais fini par laisser courir… Après tout, ma borne fonctionne, pas besoin d'y toucher !
Jusqu'au moment où l'on voudrait bien pouvoir profiter des dernières innovations de mame.
Problème, l'OS (debian8) est trop vieux pour supporter SDL2 requis maintenant par mame, et une fois debian10 réinstallé, impossible de faire fonctionner le noyaux Linux 3.2 patché 15 kHz compilé à l'époque.
Malheureusement une recherche rapide sur les forums d'alors me fit comprendre que les patches Linux n'étaient plus publié et disponible pour les versions récentes…
Occupé ailleurs j'avais un peu mis ça de côté, et puis un jour, au détour de la consultation des statistiques du blog, j'ai découvert qu'on « linkait » gentiment mon billet sur github.
Le dénommé Doozer proposait donc des patches pour le noyaux v5, et dés la première lecture du document, je compris que pas mal de choses avaient changé, dans la façon de faire fonctionner ce noyau patché, et plus tard dans la manière de le compiler.
Avant de continuer à raconter ma vie, on va déjà faire ça !
Compilation de Linux patché @15kHz :
Voici donc la nouvelle routine de compilation au goût du jour !
Installer debian 10 Buster, puis les paquets nécessaires à la compilation :
apt update
apt upgrade
apt install build-essential bc kmod cpio flex libncurses5-dev dpkg-dev debconf-utils debhelper fakeroot zlib1g-dev rsync
Récupérer les sources et les extraire dans un dossier de travail : /home/user/kernel5.5
mkdir /home/user/kernel5.5
cd /home/user/kernel5.5
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.tar.gz
tar xvf linux-5.5.tar.gz
Se rendre dans le dossier crée :
cd linux-5.0.1
Configurer le kernel :
make olddefconfig
Cette commande va chercher la configuration du kernel actuel (booté) et met toutes les nouvelles options en « par défaut ».
Il faut donc s'assurer que le debian actuel est démarré sur un noyaux 5.4 au moins.
Éditer le fichier .config, afin de vérifier que cette ligne ne contient rien entre les guillemets (sinon la compilation plantera dés les premières minutes) :
CONFIG_SYSTEM_TRUSTED_KEYS = ""
Exécuter ce script permet de ne pas compiler un noyau de debug, et donc de gagner du temps :
./scripts/config -d CONFIG_DEBUG_INFO