まこと の ブログ

MaKoTo no burogu — Journal de bord…

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

Mot-clé - Hacking

Fil des billets - Fil des commentaires

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, 1 décembre 2018

Changer la date de publication d'une vidéo Peertube

J'ai récemment crée plusieurs chaînes Peertube sur mon serveur auto-hébergé (dans ma cuisine donc hein, pas un truc loué dans une salle machine).
Plusieurs afin de cloisonner un peu les sujets des vidéos publiées, à défaut de fonctionnalité « playlist » (disponible pour bientôt), bien que le raccourci « locales » présente tout par date décroissante.
Et autant en publiant au long court, comme un blog, les vidéos sont disponibles chronologiquement, autant lorsqu'on a déjà un stock de vidéos à mettre à disposition, il peut-être utile de pouvoir anti-dater les vidéos, et ce pour deux raisons :
- Je veux lister telle vidéo avant telle autre dans la liste des vidéos locales.
- Je veux simuler la publication des vidéos de l'époque, car Peertube n'existait pas encore.

J'ai donc gratté un peu, car une telle fonction n'existe pas, et conclu assez rapidement qu'il me faudrait éditer la base de donnée PostgreSQL de Peertube.
peertube.png

Prérequis :

  • On a besoin du nom de la base, du nom d'utilisateur et du mot de passe associé.

En fonction du type d'installation, vous n'aurez peut-être pas eu accès à ces infos. C'est le cas avec Yunohost qui m'a permis d'installer Peertube en un click !
Il faut donc consulter le fichier production.yaml pour y lire ces infos :

cat /var/www/peertube/config/production.yaml
# Your database name will be "peertube"+database.suffix
database:
  hostname: 'localhost'
  port: 5432
  suffix: '_peertube'
  username: 'peertube'
  password: 'xxxxxxxxxxx'

Le mot de passe est en clair, j'ai mis des xxxxx à la place.

Précautions :

  • Avant de faire quoique ce soit, il est sage de sauvegarder la base de donnée.

On peut le faire avec Yunohost par la fonctionnalité de backup > app, qui fait qu'on retrouve la base sous forme de fichier texte /apps/peertube/backup/db.sql dans l'archive.
Pour le faire manuellement, l'équivalent est cette commande :

pg_dump --file peertubeBasePostgreSQL_20181201.txt -d peertube_peertube -U peertube

Il peut être intéressant d'en profiter pour faire aussi une sauvegarde dans le format custom, l'intérêt peut se révéler utile en cas de soucis particulier, comme indiqué ici.

pg_dump --format=custom --file peertubeBasePostgreSQL_20181201.dump -d peertube_peertube -U peertube


Logiciel :

Pour éditer la base, j'ai choisis le logiciel pgAdmin qui sera installé sur un poste client du réseau local, car évidemment, le serveur qui fait tourner Peertube ne dispose pas d'interface graphique.

sudo apt install pgadmin3
  • Une fois installé, via le menu « Fichier > Ajouter un serveur…» on va pourvoir renseigner les infos utiles récoltées précédemment pour se connecter à la base :

pgadmin.png

Lire la suite...

lundi, 4 juin 2018

Horloge de salon

Je ne sais plus si je l'ai évoqué ici, mais j'avais envie d'une horloge avec ces afficheurs bleu qui me plaisaient bien, repérés lors des essais sur le projet WebRadioReveilWifi, et j'avais donc procédé au tirage d'une seconde carte imprimée dans ce but.

  • Le circuit est donc identique, à ceci prés que la valeur des résistances associées aux afficheurs est ajustée à 100Ω, qu'un buzzer remplace l'ampli et son haut-parleur, et que cette fois est utilisé le capteur de mouvement PIR.
  • Voici la carte et ses périphériques, une fois le tout percés/soudés : Une plaquette translucide fumée, un Arduino mini 5V, les modules RTC et PIR, le buzzer, la plaquette des boutons de commande et sa nappe associée, et enfin un connecteur jack pour l'alimentation.

dsc03602.jpg dsc03601.jpg

  • En fonctionnement, sur dix dix, évidemment ! (comprenne qui pourra )

Les leds des alarmes sont cette fois soudées à l'arrière, pour un usage très occasionnel.
dsc03596.jpg dsc03614.jpg

Lire la suite...

mardi, 13 mars 2018

Stylet Wacom

Il a peu, j'ai hérité d'une tablette graphique Wacom Bamboo assez ancienne, mais fort heureusement en USB [1], qui fonctionne Plug'n Play sur Ubuntu.
20180201_200539.jpg

Seulement voilà, en approchant le stylet de la surface de la tablette, sans même la toucher, disons à 5 mm de distance, le click gauche se déclenche.
Après renseignements, il s'avère que ce devraient être soit les boutons sur le stylet qui déclenchent le click , soit le capteur de pression, donc la pointe du stylet.

J'ai donc vérifié la configuration logicielle, en désactivant tous les boutons et fonctionnalités, mais rien n'y fait, et ce même avec la gomme, à l'autre bout du stylet… À 5 mm de la surface, le click se déclenche et donc en lasso de sélection, si on se trouve par exemple, au dessus d'un navigateur de fichier.

Le stylet n'avait pas l'air abîmé du tout, cependant j'ai entrepris de le démonter…

  • Donc alors forcément en démontant on casse des trucs, et c'est une fois démonté qu'on comprend comment il aurait fallu s'y prendre pour ne pas casser le petit ergot qui va allait bien.

20180201_200431.jpg 20180201_200338.jpg
Il suffisait donc, après avoir retiré la pointe, d'ôter le bouton à bascule qui sert à cliquer, puis à soulever l'autre partie bleu, pour dégager le petit ergot bleu et laisser le corps libre pour la séparation…Bref !

  • Une fois les bobines délicatement retirées de leurs emplacements, voici toutes les pièces qui constituent le stylet :

20180201_192852.jpg 20180201_193347.jpg
C'est donc parti pour une séance d'essais en faisant circuler les bobines de manières diverses au dessus de la surface, et de se rendre compte que le problème ne se présentait plus, où réapparaissait quand on touchait certaines parties de l'électronique.
20180201_195857.jpg Je vous passe les détails de l'investigation, j'ai simplement fini par comprendre que le mécanisme sommaire du capteur de pression, ou plutôt de ce palpeur, était coincé en position marche car le petit polymère noir était marqué d'un disque concave (ou convexe c'est selon, voir photo ci-contre en gros plan, élément de gauche en haut). Ce dispositif doit servir de ressort, permettant au moindre contact de la pointe de déclencher la position marche et de repousser très légèrement la pointe pour déclencher la position arrêt une fois la pointe dans le vide.
J'ai alors eu l'idée de retourner le polymère afin de retourner ce ressort visiblement usé car enfoncé (d'où sa forme concave) dans une position.

  • Remontage des éléments dans l'ordre :

20180201_195814.jpg 20180201_195932.jpg 20180201_195956.jpg 20180201_200058.jpg

  • Opération effectuée également pour le côté gomme, remontage et tests OK :)

20180201_200334.jpg

Note

[1] J'en ai une autre en port série DB9 que je tarde à bidouiller, peut⁻être en suivant cette piste-ci.

- page 1 de 27