Archives de catégorie : Informatique

Souvenirs: ma première installation Linux

Depuis maintenant un certain temps je suis fidèle à Debian, en gros depuis Debian Woody avec ,quelques infidélité, et je m’en porte bien. Debian Stable sur mon VPS et mon Raspberry pi zéro et Debian testing sur mon poste de travail.

Mais mon aventure Linux a commencé peu de temps après avoir remis en service une sparcstation, j’ai eu l’occasion de mettre la main sur une tour HP avec un vrai 386 .. et sur les conseils du gourou de la boîte (un coucou à Philippe Cabioch) j’ai installé une des premières distribution Linux Yggdrasil, et j’avais trouvé ça sympa. C’était ma machine labo pour mettre au points des scripts pour Bull DPX2 et DEC. Jusqu’à ce que j’ai la main sur des RS6000 de chez IBM. Et oui on est dans les année 90.

La machine est passée ensuite sous Slackware et je ne sais ce qu’elle est devenue après mon départ.

Plus tard, ayant quitté le domaine informatique, et pour maintenir mes compétences j’ai acheté Linux Magazine et j’ai testé un de leur CD c’était donc une Debian Woody, à qui lui a succédé une red hat que j’ai cassée plusieurs fois ce qui m’a profondément dégoutté des système RPM. Le moment était venu d’aller plus loin et ça a été la construction d’un Linux From Scratch. Je recommande chaudement l’exercice. Par contre maintenir dans le temps une LFS c’est contraignant et au bout d’un certain temps on perd du fun. Donc j’ai eu ma période Gentoo. Qui s’est achevée avec un gros crash répété sur plusieurs mise à jour et franchement je n’avais pas le temps à ça ne faisant du bricolage info que les soirs.

D’où un retour à Debian … qui à partir de Jessie est devenu ma référence. Un système qui ne casse pas, qui est suffisamment performant pour tenir sur des petites config et apporte un niveau de sécurité correct.

Où trouver les fichiers .klt pour syslinux ou lilo / where to find .klt file for syslinux or lilo

Grosse partie de plaisir pour adapter le keymap de sysconfig sur Debian Trixie.
En fait une grande partie de la documentation est dépassée et l’utilitaire keymap-lillo.pl est souvent une version qui ne fonctionne pas, il faut trouver une version adapté dans repo syslinux j’ai trouvé  un bon/good keytab-lilo sous forme d’un fichier texte mais ça reste encore du boulot pénible le paquet kbd ne fournissant pas les keymap.

La voie de la simplicité est sur ce repo où on trouve Les fichiers .ktl/the .ktl files.

Voilà peut être gagnerez vous deux heures de recherches à vous arracher les cheveux.

les bot d’OpenAI et de Meta me saturaient le serveur

Depuis un certain temps les traces du serveur étaient devenues inexploitables, et donc avec le risque de laisser passer une vraie attaque, et ça à cause des bot d’OpenAI et Meta qui se mettaient à délirer et à pilonner le serveur avec des requêtes avec la chaîne . »atom » répétée un certain nombre de fois dans la query string.

Ç’aura été l’occasion de replonger dans les paramétrage de lighttpd et de fail2ban, pour les mettre à jour, les simplifier et les rendre plus maintenables et bien sur durcir la durée de rétention du jail recidive.

Sur le principe au niveau fail2ban j’ai une règle qui porte sur les erreurs 40x (au lieu de plusieurs) et au niveau lighttpd une erreur 403 est générée lorsque la chaîne fautive et détectée. Pour que les bot qui balayent systématiquement l’internet à la recherche de faille soient moins présent une règle lighttpd passe en 403 les accès sur un domaine non admis, tant pis pour les script kiddy et les chercheurs en sécurité mais ils me gavaient grave, voir passer 10 fois par jour les mêmes tests argh …

A l’ocassion aussi j’ai nettoyé la base sqlite de fail2ban (requête VACUUM;)  ce qui l’a fait passer de plus de 500Mo à une petite dizaine. Toujours ça de gagner.

On peut en résumé dire que j’ai appliqué les deux règles :
– simplifier
– diminuer la surface d’attaque

Suis je serein ? non mais ayant baissé le niveau de bruit dans les logs je me sens plus prêt pour réagir en cas de nouvelle attaque. Dans tous les cas un serveur sur Internet demande un peu d’attention journalière.

chtioblogue is dead

Finalement chtioblogue s’arrête, l’arrêt des pages persos orange lui a été fatal. Il n’aura finalement quitté Orange qu’un mois après mon départ à la retraite. C’est une page du web en France qui se tourne 🙂 quand Ajax n’était pas encore Ajax mais les premiers balbutiements de xmlhttprequest et que json n’était pas encore un standard.

Le temps béni des newsgroup où les passionnés apprenaient en commun les bases du développement web et s’échangeaient des trucs, des expérimentations, le temps d’IE4 🙂 et d’autres dinosaures.

Donc sur ma feuille de root 🙂 il va y avoir le nettoyage de mon site, je ne pense plus que quiconque n’ait besoin d’utiliser les SSI ou les applets Java. Même PHP commence à être une désuétude.

Le temps est venu à une séparation en deux mondes la partie gestion des cloud et des chaînes d’intégration continue qui sont d’une complexité qui croît, et la partie développement applicatif qui se simplifie, même si pour moi le lowcode n’est pas encore tout à fait là.

Pour les besoins du boulot j’avais fait un kit de maquetage à partir de jtable.org qui permettait de créer des sites aussi complexe qu’un CRM sur le principe description des tables en json pour l’affichage et pour le reste utilisation des Views, Proc et Trigger de mysql .. l’identité de l’utilisateur étant propagée dans la base mysql. Entre les deux juste un peu de glue php pour faire la liaison avant le serveur web. Je pense que je n’étais pas trop loin de la vérité. Là je commence à m’intéresser à GraphQL et Dgraph pour voir si on ne pourrait pas aller plus loin dans la simplification du principe, mais honnêtement c’est assez hard à ingurgiter.

Molotov sur Linux (Debian 11) ça marche très bien

Et oui, sur mon vieil Acer j’ai installé Molotov par l’appimage fourni sur le site. Et je dois dire que ça fonctionne mieux qu’avec mon windows 10. Plus rapide, plus stable et meilleur qualité d’image.

Le seul bémol c’est qu’il faut réussir à ne pas être interrompu par xscrennsaver.

Donc j’ai rajouter un petit heartbeat simulant régulièrement la frappe au clavier.  Pour l’instant il n’est pas très beau et je veux en changer un peu le mode de fonctionnement ne serait-ce que pour le fun. Mais là je viens de faire un visionnage pendant une heure, nickel, un plaisir.

Dès que j’arriverai à un résultat sympa je le rajouterai à ce post.

Problème AHCI avec carte PCIe ASM1061 et Debian11

Lors du passage en Debian11 et donc en Kernel 5 j’ai rencontré un problème de non reconnaissance de mes disques durs connectés sur la carte PCIe, avec des temps de boot très longs.

En faisant dmesg j’avais pu déduire que c’était à l’inscription du module ahci que se déclenchait l’erreur, le kernel n’arrivait pas à calibrer les disques et donc à les reconnaîtres.Après avoir jouer avec les paramètre de libata et de libahci et sans succès, j’ai constaté que dans dmesg le module AHCI prenait des niveaux d’interuption qui me semblaient un peu élevés par rapport à la plage d’interruptions fournie par le bios.

Cette constatation m’a amené à me dire que le problème était peut être de ce côté et en cherchant sur le Net je suis tombé sur des articles citant des problèmes avec d’autres cartes Sata PCIe, sans aucun rapport avec la mienne. Donc j’ai tenté le paramètre noapic qui m’a gentiment planté puis le paramètre pci=nomsi. et ça a fait l’affaire.

Ce paramètre désactive un mode avancé de gestion des interruptions qui est probablement mal reconnu soit de ma carte PCIe soit par l’Apic de mon PC.

un lien citant la solution : https://forum.ubuntu-fr.org/viewtopic.php?id=1638921 ou https://askubuntu.com/questions/1104219/what-does-pci-noaer-or-pci-nomsi-mean.

Ce qui confirme qu’il ne faut jamais baisser les bras, si on ne comprend pas aujourd’hui on comprendra plus tard.

 

Mise à jour décembre 2024 :
Ce réglage n’est plus nécessaire avec les noyaux 6.11 et peut être un peu antérieur de Debian Sid. Un autre problème de boot est apparu avec des difficultés d’initialisation de la partie video et donc la console qui bloque et c’est en essayant de régler ce problème que j’ai testé la suppression du paramètre. Le plus drôle c’est que ça améliore un peu les difficultés de boot. Je pense que ce problème aléatoire actuel est lié à un timing trop resserré pour ma vielle bécane.

connexion simplifiée d’un casque audio bluetooth sur Debian 11

On trouve beaucoup de documentation sur la connexion bluetooth d’un casque sur le web mais c’est assez touffu et si vous essayer d’appliquer toutes les recettes et bien ça ne marche pas.
Après pas mal de manip j’ai fini âr désinstaller tout ce que j’avais tenté et je suis parti du plus simple :

 sudo apt install blueman bluez-firmware

Et ça suffit 🙂

Et j’admide de plus en plus ma debian avec lxqt sur mon vieux PC c’est propre net et je peux regarder Molotov dessus (qui d’ailleurs fonctione mieux que sous windows et notamment avec un son et un volume de meilleur qualité). Prochaine étape voir comment éviter que xsceensaver n’interrompe le visionnage.

Comment j’ai drastiquement réduit le temps de réponse d’un count(*) sur une View Mysql

Après des années à ne pas comprendre pourquoi le count(*) était aussi long sur ma base à partir du moment où je la comptais à partir d’une View, j’ai drastiquement accéléré la requête. Quand je dis drastiquement je suis passé d’une dizaine de seconde à du quasi instantané et la consommation mémoire de la base a chu. L’analyse me montrait que le count(*) de la table principale de la view se faisait sur l’index alors que le count(*) sur la view déclenchait un full scan.

Dans un premier temps j’ai réécrit la view pour passer de jointures à gauche en étoile à des jointures en cascade, au passage un jointure à gauche est devenu une jointure normale. Cette modification améliorait un chouia le temps de réponse mais pas de manière transcendante.

Puis je suis tombé sur un article qui expliquant que l’opimiseur Innodb lors d’un count(*) n’utilisait pas le primary index, la répartition de celui-ci n’étant pas optimal, s’il y a un secondary index c’est celui-ci qui est utilisé sinon l’optimiseur cherche à déterminer quelle est la meilleur colonne pour le count(*).

Je n’y croyais pas mais effectivement le rajout d’un index « qui ne sert à rien mais sur une colonne petite » (dans mon cas le code postal) a suffit pour obtenir un temps de réponse canon pour le count(*) sur ma table de plus de 2 millions d’enregistrement.

Un grand Merci à Aaron Francis pour son éclairant article Is COUNT(*) slow in MySQL?

Gdrive c’est sympa ….quand ça marche

J’utilise Google Drive pour partager des vidéo d’une caméra. Au début ça fonctionnait super, pas de soucis. Mais peu à peu j’ai eu de plus en plus souvent le message « impossible de lire la vidéo ». et toutes les manip que Google propose consiste à supprimer le compte ou le cache sur l’appareil. Mais lorsque tous les appareils sont concernés ?

Ca me rappelle un strip de Dilbert https://dilbert.com/strip/2019-12-10

Et bien c’est que le problème est en amont. A noté que lors des téléchargement il faut parfois s’y prendre à plusieurs fois et qu’une fois la video téléchargés on peut effectivement la visionner. Donc le problème est bien dans Google Drive probablement des saturations soit réseau soit disque. Donc 15Go gratuit mais ça ne donne pas l’envie de payer pour plus.

 

Petit complément sur mon mobile j’ai ajouter VLC et sur Drive j’utilise la fonction ouvrir avec et là je peux lire la vidéo. Donc le pb est bien dans les applications google drive et peut être dans les traitements effectués par google au moment du dépôt des video. Le problème semble m’avoir touché le 19 décembre au matin.

mise à jour du 11 janvier.

Le problème de visualisation des vidéos semble corrigé .. mais maintenant c’est le délais d’affichage sur le Drive des fichiers transmis qui est long très long trop long. Et encore plus long sur les ressources partagées. il faut des heures voir des demi-journées pour retrouver les fichiers déposés.