まこと の ブログ

MaKoTo no burogu — Journal de bord…

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

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
wget http://mamestuff.lowtrucks.net/MKChamp/suppression_0208u2.txt
  • Puis paché les sources et lancé la compilation :
unzip mame0208s.zip
unzip mame.zip -d mame0208s
cd mame0208s
patch -l -p0 -E < /chemin/vers/fichier/suppression_0208u2.txt
make -j3

Et au bout de quelques heures, un binaire mame64 est disponible.

  • Et sans surprise, une fois lancé :
./mame64

Les joysticks ne fonctionnent pas, et pire qu’avant, joysticks débranchés, le clavier ne fonctionne pas non plus ! Seule la souris est ok.
Alors j’ai cherché une solution sans succès, sauf à installer un environnement de bureau complet…

apt install mate-core
  • À force de désinstaller des composants de celui-ci, de le triturer en tout sens, de comparer les démons en fonctionnement, tout ça, j’ai fini par comprendre pourquoi Mame fonctionnait bien avec un bureau : car il dispose alors d’un décorateur de fenêtre, en l’occurrence avec mate il s’agit de marco.

Biennnn, ça progresse !
Sauf que marco, ou encore le célèbre metacity viennent avec un tas de dépendance inutiles…
J’ai donc opté pour pekwm, ultra-léger avec ses quelques Kio et facile à mettre en place.

  • Enfin pour que le login automatique fonctionne, le texte à modifier dans le fichier /etc/systemd/system/getty.target.wants/getty@tty1.service à changé, il faut remplacer la ligne :
ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM

Par celle-ci, qui renseigne « -a le-login » et « -f le-mot-de-passe » (merci man login et man agetty ) :

ExecStart=-/sbin/agetty -a arcade -o '-f arcade -- \\u' --noclear %I $TERM
  • Conclusion :

Là ou avec SDL1.2 on démarrait GNU/Linux, on exécutait Xorg, puis Mame, il faut donc avec SDL2 exécuter Xorg, puis exécuter pekwm, et enfin lancer Mame et magie ! Clavier et joysticks fonctionnent parfaitement.
Ouf…


Création d’un LiveCD/USB :

Bon maintenant que debian10 est validé et que le problème avec Mame SDL2 est enfin résolu (hein ça traînait depuis 2016…), fabriquons donc une iso Live !

J’ai donc repris mes travaux mis à jours l’an dernier sur ’’Live Build’’, et modifié quelques trucs :

  • Dans le fichier auto/config, remplacé le mot « stretch » par « buster » afin de construire une iso sous debian10.
  • Dans le fichier config/package-lists/arcade.list.chroot, ajouté les paquets : « pekwm », « libsdl2-2.0-0 », « libsdl2-ttf-2.0-0 », « libqt5widgets5 ».
  • Ajouté et renommé le binaire de mame64 fraichement compilé dans le dossier : config/includes.chroot/etc/skel/.advance/mame64_0208.
  • Modifié le fichier config/includes.chroot/etc/skel/.advance/advmenu.rc afin d’intégrer la nouvelle version du binaire.
  • Modifié le fichier config/includes.chroot/etc/skel/.xinitrc, pour permettre au décorateur de fenêtre de démarrer :
advmenu &
xterm -maximized -bg black -fg grey75 &
pekwm

Et enfin lancé le processus de création de l’iso avec lb config puis lb build.
Crée la cléUSB avec dd :

dd if=live-image-amd64.hybrid.iso of=/dev/sdX bs=4M; sync

Et enfin testé ma distribution toute neuve sur une machine…

Et là, c’est le drame !
20190807_164613.jpg

  • Session Live :

Le démarrage ne va pas au bout, tty1 reste bloqué sur :

[  OK  ]  Started Update UTMP aout System Runlevel Changes.

20190809_142757.jpg

  • Passer en tty2 et lancer startx, et se rendre compte que advmenu plante avec le message « Instruction non permise ».

Bon, là c’était démarré en mode UEFI, d’ailleurs le design du menu était différent :

splash01.png

  • Alors reboot en mode Legacy, et cette fois le menu est comme je l’avais configuré alors, et d’ailleurs laissé avec des textes non changés :

Mais ça ne démarre pas mieux, mêmes blocages.


  • Bon, alors tentons l’installation sur le disque dur…

- En mode UEFI, c’est bien simple, l’installation se termine avec grub qui refuse de s’installer avec le message « Le paquet grub-efi-amd64 n’a pus pu être installé dans /target. », sans doute dû à une mauvaise option dans le fichier config/includes.installer/preseed.cfg.
- En mode Legacy, l’installation est Ok, mais une fois l’ordi redémarré, on retrouve les symptômes de blocages de la session Live.

  • Ça fait beaucoup de problèmes à résoudre tout ça, outre les problèmes de partitionnement que j’ai rencontré à cause de disque passé en table de partition tantôt GPT, tantôt DOS, à cause du boot en mode UEFI ou Legacy.

- Je me suis donc dit qu’il faudrait trouver le moyen d’empêcher le boot en mode UEFI, et que donc ça résoudrait le soucis majeur du grub, le but premier étant de proposer une iso bootable sur des vielles machines à reconvertir en borne d’arcade, donc au diable le relativement récent UEFI.
Mais je ne suis pas parvenu à résoudre le problème du blogaqe de tty1.

- J’ai donc tenté de générer une iso de debian9 (alias Stretch), Et elle fonctionne parfaitement, ( sans pour autant interdire l’UEFI, pas trop cherché, peut-être que c’est faisable avec dd ?) sauf que, le mame64 (testé en 0208 et 0210) compilé pour l’occasion sous debian9 rame comme c’est pas permis, totalement injouable !

Échec total donc en ce qui concerne l’iso LiveCD/USB, ça coince alors que ça devrait pas, peut-être des ’ti bugs qui traînent dans le soft LiveBuild, je vais donc laisser passer l’eau sous les ponts, et retenterais l’aventure plus tard !

Note

[1] Suppression DIFF - The diff performs the following: 1) Removes white borders, 2) Removes all nag screens, 3) Removes loading messages, 4) Removes New Machine & Favorites - Add the following to the mame.ini file to disable the appropriate patch section: skip_gameinfo 0 <- To disable suppression of gameinfo, nagscreen & loading/decrypting messages. Set to 1 to enable suppression. Reminder to all users, The last HiScore patch was version 0.178. Since then HiScore has been supported by standard Mame plugin. To enable HiScore support in Mame 0.179 and greater you must enable the HiScore plugin that comes with standard Mame. The suppression patch continues on from 0.178 but is separate and not related to the new standard HiScore plugin.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet