まこと の ブログ

MaKoTo no burogu — Journal de bord…

Aller au contenu | Aller au menu | Aller à la recherche

dimanche, 1 mars 2020

Mame en vrai 15 kHz, le retour !

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 !

  • 1 — Prérequis :

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


  • 2 — Préparatifs :

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


Lire la suite...

samedi, 10 août 2019

Makoto no Akedo V2.1 (… ou pas !)

Suite de l'étude précédente :

Récemment est donc sortit Debian 10, alias « Buster », l’occasion pour moi de mettre à jour ma machine Arcade avec une version de Mame plus actuelle .
Alors autant l’annoncer tout de suite :

- Installation traditionnelle, OK.
- Création d’un LiveCD/USB, échec total.

Voyons donc voir ce qui fonctionne…

Installation manuelle :

Donc une simple commande dd suffira à créer la cléUSB bootable, et si l’ordinateur est configuré pour démarrer en mode UEFI c’est un menu d’install UEFI qui sera proposé.
De la même manière si l’ordi est ancien ou est configuré en mode Legacy, le menu d’install sera proposé « à l’ancienne ».

Une fois debian installé, j’ai donc tout configuré avec ma tambouille habituelle avec ces quelques modifs :

apt install pekwm libsdl2-2.0-0 libsdl2-ttf-2.0-0 libqt5widgets5 libgtk2.0-0 libqtgui4 libgconf-2-4 xserver-xorg-video-all xfonts-base xinit x11-xserver-utils xterm alsa-utils sshfs acpid sudo firmware-linux-nonfree psmisc console-setup console-setup-linux libsdl1.2debian libsdl-ttf2.0-0 unzip
  • Mais petite nouveauté, j’ai ajouté le paquet pekwm qui est un décorateur de fenêtre.

Et vous ne devinerez jamais à quoi il sert… Non, vraiment !
Pour se remettre en contexte, il faut relire la fin du précédent post où j’évoquais l’impossibilité pour moi d’utiliser un Mame compilé avec SDL2. Alors le soucis c’est que maintenant, le choix n’est plus offert de rester un version SDL1.2, il me fallait donc absolument résoudre ce problème de joystick qui ne fonctionne pas.

  • J’ai donc installé les pré-requis à la compilation indiqué dans la documentation,
sudo apt-get install git build-essential python libsdl2-dev libsdl2-ttf-dev libfontconfig-dev qt5-default
  • Téléchargé les sources de la version que j’ai choisis de Mame,
wget https://github.com/mamedev/mame/releases/download/mame0208/mame0208s.zip

Lire la suite...

mercredi, 29 mai 2019

Installer Debian depuis une cléUSB en mode UEFI

J'ai eu besoin de bricoler une machine, et d'expérimenter l'installation de debian en mode UEFI, et de constater que la création d'une cléUSB bootable était assez différente que ce dont j'avais l'habitude.

  • En effet, après avoir télécharger l'iso de debian, il suffit d'utiliser la commande dd pour pousser l'image sur la cléUSB [1] :
dd if=live-image-amd64.hybrid.iso of=/dev/sdX bs=4M; sync
  • Au boot on se trouve alors forcément en mode Legacy.

Préparer le cléUSB pour le mode UEFI:

  1. On doit tout d'abord créer une nouvelle table de partition de type GPT sur la cléUSB.
  2. Puis créer une partition FAT32, la nommer ISOdebian.
  3. Enfin, ajouter le drapeau de boot :

gpartedflag.png

Déployer l'iso debian sur la cléUSB :

Une fois la cléUSB préparée, en automatique elle devrait monter dans /media/$USER/ISOdebian.[2]

  • Il suffit alors de copier le contenu de l'iso debian sur la clé :
7z x debian-9.9.0-amd64-netinst.iso -o/media/$USER/ISOdebian/

Et c'est tout !

Booter sur la cléUSB :

  • Sur l'ordi cible, booter sur la clé en mode UEFI (vérifier le bios si legacy et uefi sont activés ou non, et attention, il se peut que le menu de boot ne précise pas si la clé est vue en UEFI ou en LEGACY).
  • Normalement la page d’accueil d'install de debian précise « installation en mode UEFI »

Pour vérifier, depuis la page d'accueil passez en console (Ctrl+Alt+F2) et taper :

[ -d /sys/firmware/efi ] && echo UEFI || echo Legacy

Qui devrait alors confirmer le mode actuel.

Installation sur le disque :

  • À l'étape partitionnement, il faut donc créer au début de disque une partition Fat32 d'environ 200 Mio et spécifier comme type EFI.

Je n'ai pas réussis à installer debian9 en partitionnant manuellement, à chaque fois j'ai eu un message d'erreur comme quoi le système ne parvenait pas à monter la partition EFI[3], renvoyant donc en arrière à l'étape partitionnement.
En laissant le partitionnement automatique, ça fonctionne…

Notes

[1] remplacer sdX par votre clé

[2] Remplacer $USER par votre nom d'utilisateur

[3] « La tentative de montage d'un système de fichier vfat de SCSI3 (0.0.0), partition n°B (sda) sur /boot/efi à échoué. »

samedi, 8 décembre 2018

Upload de gros fichiers vidéos sur une instance Peertube

peertube.png Quand on lit la documentation où les issues « Github » de Peertube, Chocobozzz nous indique clairement qu'il fût un temps révolu où la taille maximale d'une vidéo accepté par Peertube était de 4Gio, mais que maintenant c'est bien 8Gio qu'il est possible d'envoyer.

  • Pour le vérifier, sous Yunohost il suffit d'aller voir le fichier de config nginx dédié :
cat /etc/nginx/conf.d/peertube.makotoworkshop.org.d/peertube.conf

Et de retrouver l'information spécifiée ici :

# Hard limit, PeerTube does not support videos > 8GB
    client_max_body_size 8G;
    proxy_connect_timeout       600;
    proxy_send_timeout          600;
    proxy_read_timeout          600;
    send_timeout                600;
  • Et pourtant, j'ai voulu uploader une vidéo de 5,2Gio, et de recevoir l'erreur « 500 Internal Server Error », délivrée par nginx

peertubenginx.png

Lire la suite...

- page 1 de 11