PROJET AUTOBLOG


Le blog de Seboss666

Site original : Le blog de Seboss666

⇐ retour index

Quelques astuces diverses, seizième

mercredi 22 mai 2019 à 18:30

J’adore mon boulot, on a constamment les mains dans de nouvelles choses, on (re)découvre certains outils dont on pensait avoir une bonne maîtrise, et ça fait de nouvelles astuces à partager, en plus ça fait longtemps 🙂

Le piège du $_ENV vide dans PHP

Lors d’une migration d’un site sous Magento d’une VM Debian très mal configurée à un cluster AKS (Azure Kubernetes Service, je déconseille, allez sur un autre cloud provider), j’ai rencontré une difficulté liée à la récupération des variables d’environnement, la superglobale $_ENV de PHP était vide alors que phpinfo() me donnait bien ces variables.

Il s’avère que c’est lié à une configuration de la directive « variables-order » :

;old config
;variables-order="GPCS"
variables-order="EGPCS"

Voilà, par défaut il ne remplit que $_GET, $_POST, $_COOKIE, et $_SERVER (vous les avez les lettres ?). Dans un contexte plus classique on mettrait ces variables dans Apache et on les récupérerait via $_SERVER, mais ça ne s’appliquait pas ici.

Un repo git en souffrance : cannot lock ref ‘refs/remotes/origin/master’

J’ai eu cette erreur bizarre en bossant sur mon api de collection de films, en cherchant un peu, j’ai le coupable :

$ cat .git/refs/remotes/origin/master
{"chrome://browser/content/browser.xul":{

Normalement il devrait y avoir un hash md5 correspondant au dernier commit enregistré du dépôt distant, je ne sais absolument pas comment ça s’est produit mais c’est dégueulasse. Ceci dit ce n’est pas complètement bloquant, j’ai pu pousser mes modifications malgré tout, mais ça l’a perturbé quand même. Pour réparer il faut plusieurs commandes (et une sauvegarde en cas de besoin) :

git branch --unset-upstream
rm .git/refs/remotes/origin/master
git gc --prune=now
git branch --set-upstream-to=origin/master master

Si ça vous arrive sur une autre branche que master, vous devrez évidemment adapter le nom. Vous pouvez tenter un git pull pour vérifier qu’il n’y a plus d’erreur.

Sublime Text : afficher les espaces et les tabulations

Quand vous n’avez pas à disposition un linter potable, au hasard pour Python, vous tombez facilement sur des erreurs d’indentation mixte espaces/tabulation, ce qui est interdit en Python 3. Dans Sublime Text, pour mieux mettre ça en lumière, vous pouvez afficher les « espaces blancs », qui auront alors une forme différente en fonction du contexte :

"draw_white_space": "all",

Et comme une image vaut mieux qu’un long discours…

Les espaces sont représentés par des points, les tabulations par des traits horizontaux

Find : chercher les fichiers et/ou dossiers vides

Alors j’avoue j’ai plus le contexte de ce qui m’a poussé à faire cette découverte, mais voilà, si vous voulez faire le ménage des dossiers vides, ou déjà les identifier, c’est comme ça :

find . -type d -empty

Par contre, je me souviens avoir lu en fonction des sources qu’il pouvait y avoir des différences entre la version BSD et la version GNU de find (ah, ces libristes…).

wp-cli et « this does not seem to be a wordpress installation » : attention au yaml !

J’ai déjà évoqué wp-cli sur l’article qui me permet d’agréger les astuces diverses sur une page de récap. Cet outil puissant devrait vraiment faire partie des indispensables de tout administrateur WordPress. Mais parfois, il réserve quelques surprises, comme ici sur un WordPress fraîchement livré par une agence de développement, en voulant remplacer le domaine par celui de l’environnement concerné :

Error: This does not seem to be a WordPress install.
Pass --path=`path/to/wordpress` or run `wp core download`.

Et ça, même en passant le bon chemin (par défaut on l’exécute à la racine du WordPress). Il s’avère que les petits malins de l’agence ont glissé un petit fichier wp-cli.yml, interprété par l’outil, qui contenait la directive suivante :

path: web/wp

Évidemment, ça va fonctionner beaucoup moins bien. Une fois retiré ce fichier, wp-cli a fait son boulot comme un charme.

Sublime Text, crawl, cpu au secours !

J’ai eu un problème au boulot avec Sublime Text avec une arborescence conséquente, plusieurs Gigaoctets et des centaines (milliers ?) de fichiers, à chaque ouverture Sublime Text me tabasse le CPU pendant plusieurs minutes, parfois la dizaine facile. Et lors de la création du contexte de build pour Docker, la mémoire vive explose à son tour. Mais certains dossiers ne sont même pas inclus dans le dépôt, ni dans l’image Docker de destination, donc pas la peine de perdre son temps à les parcourir.

Et bien il y a une option dans Sublime Text pour ça, il suffit d’ajouter à son fichier de configuration :

"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS", "sites/static_*"],

Dans mon cas, c’est le sites/static_* qui m’a permis de gagner 2Go de contexte de build, et 8 minutes de consommation CPU au lancement, dû au crawl. Vous pouvez ajouter les vôtres, vous me remercierez ensuite 🙂

AWS EC2 et resolv.conf écrasé : retrouvez le bon DNS

Lorsque comme LBN vous gérez certaines configurations globales via un outil comme chef, il arrive parfois que l’on fasse des conneries, et qu’on paramètre certaines choses de travers sur des plateformes spécifiques. Dans mon cas les résolveurs DNS renseignés sur une instance EC2, qui à l’origine sont fournis par AWS via DHCP, ont sauté et été remplacés par des résolveurs qui ont plusieurs problèmes, le principal étant de ne pas être publics et donc de refuser la résolution récursive :

[root@server-p-01:~]# dig domain.tld

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.7 <<>> domain.tld
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 61389
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;domain.tld. IN A

;; Query time: 17 msec
;; SERVER: 1.2.3.4#53(1.2.3.4)
;; WHEN: Tue Mar 26 13:23:51 2019
;; MSG SIZE rcvd: 36

Pour récupérer celui d’AWS, qui peut varier en fonction de la région, la zone de disponibilité, des subnets, on peut soit forcer un dhclient, soit regarder les anciennes réponses, car dhclient enregistre les baux dans un fichier, /var/lib/dhclient/dhclient-eth0.leases :

lease {
  interface "eth0";
  fixed-address 4.5.6.7;
  option subnet-mask 255.255.255.224;
  option routers 4.5.6.254;
  option dhcp-lease-time 3600;
  option dhcp-message-type 5;
  option domain-name-servers 1.2.3.4;
(...)
}

Mieux que de reboot le serveur hein ?

Désactiver/interdire HTTP 1.0 sur Apache/Nginx

De nos jours, et à moins d’un besoin très, très spécifique, il n’est plus nécessaire de conserver ce protocole qui remonte à trop longtemps pour être honnête. Et en effet, dernièrement, à part via des outils peu scrupuleux qui tabassaient des plateformes ou tentaient de l’exploitation de faille, je n’ai pas vu d’utilisation légitime d’HTTP 1.0. Pour le bloquer au niveau de nos serveurs web préférés, il faut ajouter les directives suivantes :

#Apache
RewriteEngine On
RewriteCond %{THE_REQUEST} HTTP/1.0$
RewriteRule .* - [R=429]

#Nginx
if ($server_protocol ~* "HTTP/1.0") {
    return 429;
}

Évidemment, si vous avez une utilisation légitime d’HTTP 1.0 (et encore, ça me surprend quand même j’ai découvert que file_get_contents() en PHP fonctionnait comme ça…), il faudra procéder autrement (peut-être ajouter un filtrage IP supplémentaire).

Du lien symbolique « automatique » à partir d’un dossier

Quand on installe des certificats X509 pour des clients, on a l’habitude de créer des dossiers par année d’installation, et de créer des liens symboliques vers les fichiers dans le dossier en cours, liens qui servent ensuite dans la configuration du serveur web. Quand les fichiers du dossier de l’année ont déjà le bon nom, pour faire les liens symboliques, on peut le faire en une seule commande :

ln -s 2019/* .

Pour chaque fichier du dossier 2019, ça va créer le lien dans le dossier courant, lien qui porte le même nom que le fichier source. Très pratique 🙂

Améliorer les performances des volumes Docker

J’ai du pas mal manipuler de Docker ces dernières semaines, et aussi bien dans ma machine virtuelle que sur les plateformes client, les performances du stockages sont un point d’attention à ne pas laisser de côté. Docker permet quelques manipulations sur ce point, sur la machine virtuelle, je ne peux que vous recommander, si vous ne faites que des tests, d’abuser du cache. Une des méthodes les plus simples, dans le fichier docker-compose, déclarer votre volume de cette manière :

volumes:
      - /home/seboss666/docker/grafana:/var/lib/grafana:cached

Pour les détails et les impacts sur les performances (et l’intégrité des données), je vous laisse avec cet article en français, une fois n’est pas coutume, qui s’est penché sur le sujet.


Trois mois mine de rien, il était temps de remettre ça. J’ai plus rien en stock par contre dans l’immédiat, et je ne sais pas encore quand je vais pouvoir remettre ça.

Quelques liens en vrac et en français, 34° édition

dimanche 19 mai 2019 à 10:30

Le temps passe vite, vite, mes deux semaines de vacances auront été beaucoup trop courtes à mon goût. Et ça fait déjà un mois que je vous ai livré le précédent épisode de ma sélection de lectures. Il est donc temps de vous nourrir de nouveau 🙂

Numérique ou digital ?

Jer fais moi-même un mini-avc quand je vois notre service marketing parler de transformation digitale. La prochaine fois, vous pouvez partager ce mini-site aux personnes qui utilisent une mauvaise traduction. Et en public si possible 🙂

Guide de protection numérique

Tout comme on apprend que marcher dans la rue, la traverser, demande un minimum d’attention, utiliser le web et plus généralement Internet demande aussi de faire attention aux menaces du quotidien. Ce guide découpé en sections évite de mélanger les sujets et donc d’être vite perdu comme c’est souvent le cas. Je conseille donc de le partager au plus grand nombre.

fail2ban est-ce vraiment utile ?

J’ai déjà présenté l’utilité de fail2ban dans ma série sur la sécurisation d’un serveur Linux. Je ne suis manifestement pas le seul à avoir compris l’intérêt d’un tel outil, et pour le manipuler régulièrement sur les serveurs d’un client, il peut effectivement s’avérer très utile quand il est bien configuré.

Améliorer l’accessibilité web – Le web est-il inaccessible ?

J’ai eu l’occasion de me poser la question lorsque j’ai vu un aveugle utiliser ses outils pour essayer de lire mon blog. Je ne m’étais jamais posé la question avant, me concentrant surtout sur l’aspect « responsive », à savoir l’adaptation sur mobile, pour les voyants donc. Mais le problème est loin d’être limité à mon propre blog, et je n’ai aucun mal à imaginer, avec ces « outils » Javascript qui torturent les contenus web en temps réel, la difficulté des non-voyants à exploiter ce merveilleux outil.

J’ai voulu savoir qui avait vendu mes données personnelles et je suis tombée dans un puits sans fond

Le sujet des données personnelles est surtout devenu visible au plus grand nombre l’année dernière avec l’entrée en application du RGPD, puis des multiples scandales liés à Facebook. Il s’avère en fait que lorsque l’on abandonne une donnée à ces géants, les retrouver et identifier les exploitants est encore plus difficile que de connaître l’éleveur derrière la vache qui a « produit » le steak dans votre assiette. A se demander comment on a pu mettre autant de temps avant de s’attaquer au problème de cette économie toxique…

Linux et les jeux vidéo

Je ne suis pas le seul à avoir fait un état des lieux du jeu vidéo sous Linux, cet article développe aussi l’historique, pour que vous vous rendiez compte d’où on part quand on veut pouvoir s’adonner à un loisir en sortant des sentiers battus, et à quel point on est reconnu par les acteurs de ce secteur désormais. Un très bon point de vue différent du mien pour un même objectif 🙂

Créer un theme enfant WordPress en un clin d’oeil

Quand on débute la création d’un site sous WordPress, vient très vite le choix d’un thème, et parfois le constat qu’il faut modifier quelque chose qui n’est pas prévu (ou qui est payant). La meilleure pratique est dès lors de créer un thème enfant. C’est simple, ça prend trente secondes, sérieux essayez en suivant ce petit guide. Et si le txte vous suffit pas y’a même une vidéo à la fin.

Portrait-robot d’un instit sanctionnable

J’ai beau ne pas avoir d’enfants, j’ai pris conscience depuis quelques années de l’état de déliquescence qu’est en train d’atteindre l’Éducation Nationale, torturée par des choix politiques changeant continuellement au gré des différents ministres changeant tout aussi souvent que les programmes. Dernièrement, c’est le fait de vouloir fermer le clapet des « lanceurs d’alerte » qui fait frémir les professeurs et plus généralement Wortous les acteurs de terrain de l’Éducation, je n’inclus pas les parents qui semblent démissionner de plus en plus. Mini-fiction, mais pas tant que ça.

Comment trouver des mots de passes d’emails compromis avec pwnedornot ?

Les personnes qui s’intéressent un peu à la sécurité informatique connaissent le site Have I Been Pwned, qui permet de vérifier si une adresse e-mail a été publiée dans une fuite de données qui contiennent aussi les mots de passe. Pour les habitués de la ligne de commande, ce petit outil permet d’accéder aux résultats plus rapidement, en interrogeant l’API, ce qui est beaucoup plus rapide que d’ouvrir un onglet, d’accéder au site et de saisir l’adresse dans un formulaire.

Pourquoi fabriquer un bout d’internet ?

Vous avez peut-être déjà entendu parler d’FDN, qui est le plus ancien fournisseur d’accès en service en France. Oui, plus vieux qu’Orange/France Télécom.C’est que son aspect associatif et donc son absence de matraquage publicitaire dans les média n’aident pas à rendre le modèle populaire. Mais il n’est pas le seul, la fédération FDN regroupe une grande majorité de ces fournisseurs d’Internet propre (et que d’Internet), et pour comprendre les motivations qui poussent à suivre ce modèle, Spyou nous fait un petit inventaires des raisons qui poussent à fabriquer un bout d’Internet soi-même (ou à plusieurs, parce que c’est comme le sexe, c’est plus rigolo quand on est pas seul).


Voilà, j’ai du virer une interview passionnante d’un vieux routard français du graphisme 3D qui est repassée en mode premium 🙁 Je comprend la démarche, mais ça fait chier quand même…

Un démarrage « graphique » sur Manjaro

mercredi 15 mai 2019 à 18:30

L’idée de masquer le plus possible les messages du démarrage d’un OS Linux avec un joli logo animé est intéressante. On peut la constater chez Fedora, chez Ubuntu, et Tuxicoman a montré comment procéder sous Debian (c’est d’ailleurs lui qui m’a inspiré ce billet). Mais pas chez ArchLinux ou Manjaro. Sur cette dernière, une solution différente et un peu technique a été proposée, elle demande quelques manipulations, que je vais détailler ici.

En effet, ça repose sur l’installation de quelques paquets et la modification de fichiers de configuration, tout ça en mode administrateur. Le résultat est intéressant cependant, parfaitement stable chez moi, donc ne boudons pas notre plaisir de bricoler un peu.

On commence par installer deux paquets : bootsplash-systemd et bootsplash-theme-manjaro. Il existe plusieurs thèmes, j’ai fait l’essai avec celui-là, il n’est pas le plus joli mais ça permet de valider le fonctionnement (j’y reviens tout à l’heure). Certains thèmes sont présents dans les dépôts, d’autres seront à installer par d’autres biais :

$ yay -Ss bootsplash
aur/bootsplash-theme-bgrt 0.1-1 (+2 0.04%) 
    BGRT bootsplash theme
aur/exquisite 1.0.0-1 (+3 0.00%) 
    Bootsplash program able to render in Framebuffer, or X11 (Enlightenmen17 component)
extra/bootsplash-theme-xfce 0.1-3 (42.7 KiB 658.0 KiB) 
    Bootsplash Theme XFCE Logo
extra/bootsplash-theme-vendor 0.1-2 (25.6 KiB 540.0 KiB) 
    Bootsplash Theme Vendor Logo
extra/bootsplash-theme-manjaro 0.1-2 (25.8 KiB 625.0 KiB) (Installed)
    Bootsplash Theme Manjaro Logo
extra/bootsplash-theme-kde 0.1-3 (27.4 KiB 658.0 KiB) 
    Bootsplash Theme KDE Logo
extra/bootsplash-theme-illyria 0.1-2 (26.9 KiB 663.0 KiB) 
    Bootsplash Theme Illyria Logo
extra/bootsplash-theme-gnome 0.1-2 (32.2 KiB 720.0 KiB) 
    Bootsplash Theme Gnome Logo
extra/bootsplash-theme-arch 0.1-2 (31.1 KiB 695.0 KiB) 
    Bootsplash Theme Arch Linux Logo
extra/bootsplash-theme-amd 0.1-2 (28.9 KiB 652.0 KiB) 
    Bootsplash Theme AMD Logo
extra/bootsplash-systemd 0.1.2-1 (14.2 KiB 23.0 KiB) (Installed)
    Systemd service files for Bootsplash

On peut donc ensuite s’attaquer aux fichiers de configurations, à commencer par /etc/mkinitcpio.conf. Ce fichier est responsable de la configuration des images de démarrage système contenant notamment le noyau. A chaque mise à jour noyau, mkinitcpio va reconstruire les images de démarrages pour chaque version installée (sous Manjaro, vous pouvez avoir plusieurs versions installées très simplement), en suivant les paramètres de ce fichier de configuration. Il faut identifier la ligne qui commence par « HOOKS= », et ajouter un élément à la fin de la liste :

HOOKS="base udev autodetect modconf block keyboard keymap resume filesystems fsck bootsplash-manjaro"

Ici, on ajoute bootsplash-manjaro à la fin, manjaro étant le nom du thème, à adapter à la situation. On peut ensuite relancer la construction des initramfs (via root ou sudo) :

$ sudo mkinitcpio -P
==> Building image from preset: /etc/mkinitcpio.d/linux418.preset: 'default'
  -> -k /boot/vmlinuz-4.18-x86_64 -c /etc/mkinitcpio.conf -g /boot/initramfs-4.18-x86_64.img
==> Starting build: 4.18.20-1-MANJARO
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [keyboard]
  -> Running build hook: [keymap]
  -> Running build hook: [resume]
  -> Running build hook: [filesystems]
  -> Running build hook: [fsck]
  -> Running build hook: [bootsplash-manjaro]
==> Generating module dependencies
==> Creating gzip-compressed initcpio image: /boot/initramfs-4.18-x86_64.img
==> Image generation successful

Le deuxième fichier, c’est /etc/default/grub. C’est celui qui sert de base à la construction du menu qui vous permet de choisir le noyau voire le système d’exploitation (dans le cadre d’un multi-boot) que vous souhaitez utiliser lors du démarrage de la machine. Ici, le minimum vital pour que le bootsplash fonctionne, j’ai fait cette modification :

#Ligne originale
#GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=UUID=bd3d39da-18e6-425a-ae41-34cbaba1f79d"

#Ligne modifiée
GRUB_CMDLINE_LINUX_DEFAULT="bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash resume=UUID=bd3d39da-18e6-425a-ae41-34cbaba1f79d"

Une fois encore, bootsplash-themes/manjaro/bootsplash contient le nom du thème qui doit être chargé, donc il faut adpater en fonction de celui-ci. Notez bien qu’on enlève la directive quiet, qui dans le démarrage par défaut masque les messages de démarrage des services, pour n’afficher que les infos finales des partitions, et d’éventuels messages d’erreur (ce que j’avais sur le Chromebook avec le 4.14 avec la carte son mal supportée).

Il faut ensuite mettre le menu à jour en lançant la commande update-grub :

$ sudo update-grub
Generating grub configuration file ...
Found background: /usr/share/grub/background.png
Found linux image: /boot/vmlinuz-4.19-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-4.19-x86_64.img
Found initrd fallback image: /boot/initramfs-4.19-x86_64-fallback.img
Found linux image: /boot/vmlinuz-4.18-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-4.18-x86_64.img
Found initrd fallback image: /boot/initramfs-4.18-x86_64-fallback.img
Found memtest86+ image: /boot/memtest86+/memtest.bin

Voilà, c’est fini, il ne reste plus qu’à redémarrer et à contempler le premier résultat. Voir un logo c’est quand même plus agréable que des messages texte, et si les messages vous intéressent quand même, un appui sur la touche échap vous ravira.

Quelques raffinements supplémentaires, parce que j’ai une carte Intel

Pour être honnête, le résultat n’est pas 100% parfait. En effet, il reste encore des « clignotements » pendant le démarrage, lié à plusieurs étapes de configuration de l’écran. Heureusement, j’ai du matériel Intel, fabricant très actif sous Linux qui propose notamment un raffinement : fastboot, qui permet justement d’éviter les multiples reconfigurations jusqu’à ce que X démarre (ou Wayland, notamment sur Fedora). Pour l’activer, il y a plusieurs méthodes, j’ai choisi d’ajouter l’option au démarrage de grub. Retour donc dans le fichier /etc/default/grub, pour obtenir le résultat suivant :

GRUB_CMDLINE_LINUX_DEFAULT="bootsplash.bootfile=bootsplash-themes/manjaro/bootsplash i915.fastboot=1 resume=UUID=bd3d39da-18e6-425a-ae41-34cbaba1f79d"

Et un petit coup d’update-grub pour parfaire le tableau.

Mais ce n’est pas tout. J’ai aussi découvert qu’on pouvait faire un truc en plus, au petit nom de « Early KMS » (on remercie une fois de plus le wiki d’ArchLinux), qui permet de charger le module graphique plus tôt qu’en temps normal. Il faut retourner cette-fois dans /etc/mkinitcpio.conf, et chercher la ligne qui commence par « MODULES= » :

#Ligne d'origine
#MODULES=""

#Ligne modifiée
MODULES="i915"

Une fois encore, il faut relancer la construction avec mkinitcpio -P, et un dernier reboot pour tout valider. Il doit être possible de faire la même chose pour les autres cartes graphiques dont les pilotes exploitent KMS, je vous laisse chercher.

En tout cas, ça fonctionne vraiment pas mal, il resterait éventuellement la transition entre le logo de chargement et la mire de login de Cinnamon, la transition est plutôt abrupte, mais là je n’ai rien trouvé de probant pour l’adoucir. Un simple fondu, ça devrait pas être compliqué non ?

Prochaine étape : faire son propre thème, l’installation sur Chromebook, tester l’alternative

Je n’ai pas encore compris tous les détails techniques sur la création du thème, mais grosso modo tout est documenté dans ce dépôt, donc quand j’aurai compris, et si je suis motivé, je me ferai mon propre thème.

Les autres distributions, comme le montre tuxicoman sous Debian, reposent plutôt sur une autre méthode, Plymouth, qui existe depuis assez longtemps maintenant, et dont l’installation est également possible sur Manjaro, c’est documenté sur leur Wiki qui explique les petites spécificités par rapport à ArchLinux. J’avais déjà essayé sur ma première installation à l’époque quand j’utilisais encore KDE, ça ne s’était pas vraiment bien passé. Je n’avais jamais retenté, c’est peut-être l’occasion. Je vais même peut-être utiliser le Chromebook pour ça.

PS : comme je n’ai pas la science infuse, ma base de travail a été ce post du forum Manjaro, qui centralise en anglais tout ce dont on a besoin pour mettre en place bootsplash.

J’ai du son sur mon Chromebook !

lundi 13 mai 2019 à 18:30

Ouais ça parait bizarre dit comme ça, mais c’est un des dommages collatéraux de la suppression de ChromeOS sur le Chromebook. Je n’ai pas voulu abandonner comme ça, et j’ai finalement eu la solution, et vu certains de mes résultats de recherche, y’a vraiment besoin de faire quelque chose de propre en français.

Une recherche compliquée, des résultats, comment dire…

Entre des bugs résolus de manière très spécifiques à certains OS (GalliumOS), voire à certains Chromebooks, je n’ai pas vu grand chose de générique ou d’adapté à mon cas. Pire, sur le forum Ubuntu-fr, on trouve un champion qui a lancé un truc de la mort, qui ne fonctionne que pour Ubuntu semble-t-il vu le contenu de la commande, et le mec ne semble pas plus curieux de ce que ça fait dans le détail; alors que dans le tas y’a des suppressions de fichiers de configuration système, pépouze.

Mais j’ai fini par trouver mon bonheur, et j’ai décidé de faire un petit récapitulatif/pas à pas pour que vous puissiez avoir toutes les cartes en main si jamais d’aventure vous seriez concernés.

Celeron N2840, un Atom qui ne dit pas son nom

Depuis pas mal d’années, Intel découpe sa gamme de processeurs avec la hiérarchie suivante, du plus au moins puissant :

Core > Pentium > Celeron > Atom

Au départ, les trois premiers partageaient la même architecture, et donc la même plateforme technique sous-jacente, ce qui inclut des dépendances comme le son qui nous occupe aujourd’hui. Mais ils ont par moment décidé de brouiller les pistes, avec, et c’est le cas ici, un Celeron basé sur une architecture Atom, plateforme Bay Trail pour être précis, avec toutes les spécificités qui s’y rapportent, en premier lieu un soin en matière de support logiciel beaucoup trop orienté Windows et ChromeOS.

Le symptôme, c’est un lspci :

$ lspci |grep -i audio
00:1b.0 Audio device: Intel Corporation Atom Processor Z36xxx/Z37xxx Series High Definition Audio Controller (rev 0e)

Cette saloperie est peut-être marquée officiellement supportée depuis le noyau 4.15, il semblerait que la détection des bons paramètres de configuration ne soit pas au top. Et en effet, malgré plusieurs essais avec 4.18, 4.19, 5.0 (merci Manjaro), j’ai invariablement la « Sortie factice » dans Pulseaudio; et le boulet que je suis a oublié de faire des captures d’écran pour vous montrer à quoi ça ressemble.

Identifier la réelle carte pour faire la bonne recherche, et trouver la solution

C’est souvent le cas au niveau du son, mais techniquement en dessous, la partie matérielle gérant le son est faite par un fabricant différent, même si c’est marqué « Intel » dessus. Pour avoir plus de détails, il faut utiliser aplay :

$ aplay -l
**** Liste des Périphériques Matériels PLAYBACK ****
carte 0: PCH [HDA Intel PCH], périphérique 3: HDMI 0 [HDMI 0]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0
carte 0: PCH [HDA Intel PCH], périphérique 7: HDMI 1 [HDMI 1]
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0
carte 1: chtmax98090 [chtmax98090], périphérique 0: 1 []
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0
carte 1: chtmax98090 [chtmax98090], périphérique 1: Deep-Buffer Audio (*) []
  Sous-périphériques: 1/1
  Sous-périphérique #0: subdevice #0

Le terme intéressant ici, c’est chtmax98090. Une recherche Qwant sur ce terme m’a donné beaucoup plus de résultats intéressants que précédemment. Je suis notamment tombé sur un post qui résume plusieurs manipulations pour traiter les irritants sur un Dell Chromebook 11. Il y a un paragraphe spécifique sur le son, et c’est presque exactement ce que je cherche.

Je pense même que cette procédure est la bonne à suivre si vous n’avez pas sous la main un outil de feignant comme AUR, qui propose un paquet tout prêt, ce qui a réduit les étapes dans mon cas à :

D’ailleurs, si vous clonez manuellement le dépôt et que vous copiez les fichiers au bon endroit, je conseille tout de même le reboot, les commandes indiquées après notamment concernant pulseaudio n’ont plus cours.

Pas encore parfait parfait

En effet, j’ai encore quelques glitches légers, à commencer par les notifications Telegram qui « grésillent », alors qu’une lecture de fichier opus ou flac fonctionnent sans problème sous VLC, pareil pour les vidéos YouTube. Par contre, la lecture de vidéos full-hd en H264 ne se fait pas en matériel sur VLC ou Firefox, j’ai donc encore un peu de boulot côté vaapi pour régler les dernières vis du carburateur et ça sera vraiment parfait.

WoeUSB, un petit utilitaire bien pratique pour créer vos ISO Windows

jeudi 9 mai 2019 à 18:30

Je n’en avais pas parlé lors de ma migration de mon PC de jeu sous Windows 10, mais pour créer la clé USB j’étais tout simplement passé par l’utilitaire officiel de Microsoft, donc la simplicité est l’efficacité ne m’ont jamais fait défaut. Pour le passage au SSD de ma petite soeur, il était question également de mettre son vieillissant Windows 7 à la retraite et basculer sur Windows 10, LTSC (le nouveau nom de la LTSB que j’avais sélectionné, mais en version 1809 quand je suis en 1607). Mais je cherchais un moyen de créer la clé d’installation sans avoir besoin de Windows justement.

J’avais gardé un article vieux de deux ans sous le coude dans mes marque-pages pour m’occuper de ce problème, mais il ne m’avait encore jamais réellement servi. C’est désormais chose faite, et c’est parfait pour ce qu’on cherche à faire, à savoir un support USB pour l’installation de Windows, compatible avec 7/8.x/10, 32 et 64bit.

Le programme s’appelle donc WoeUSB, c’est un fork de feu WinUSB, et il est activement maintenu puisque la dernière version en date a moins d’un mois. Il est installable relativement facilement sur quantité de distributions Linux, évidemment je l’ai fait sur Manjaro grâce à AUR. Attention cependant : j’ai installé le paquet « woeusb » qui compile avec wxgtk2, mais si ça pose des problèmes notamment sous Gnome, préférez le paquet « woeusb-git », qui au final fait le même boulot mais compile avec wxgtk3 ce qui améliore l’intégration et donc limite potentiellement les bugs (je n’en ai pas eu sous Cinnamon).

L’interface, comme vous pouvez le voir sur le dépôt GitHub, est très simple, on sélectionne l’image, on sélectionne le périphérique (qui doit être démonté, j’ai eu une erreur parce que j’avais nettoyé la clé juste avant dans Nemo), j’ai remis « NTFS » pour la forme au niveau du système de fichiers, et on clique sur « install », ça formate la clé et fait le nécessaire pour que celle-ci soit opérationnelle. Ça a mis du temps parce que ma clé commence manifestement à donner des signes de faiblesse (5Mo/s, pour de l’USB3 qui tapait dans les 30 avant, c’est un peu moche), mais en dehors de ça l’installation sur la clé s’est déroulée sans problème.

Idem pour l’installation du Windows sur le Samsung 850 Evo 500Go remis en service pour l’occasion, suite à une migration de ma « grosse bertha » sur son petit frère le 860 Evo 1To. Ma frangine est aux anges, son Windows et ses jeux démarrent vite, PUBG est enfin fonctionnel avec quelques réglages bien sentis et une mise à jour bienvenue des pilotes (nécessaires comme j’ai pu le découvrir récemment avec mon premier écran bleu à cause de l’anti-cheat de merde, le même qui empêche de jouer sous Linux), et comme on garde le disque dur original, il n’y avait qu’à transférer les données essentielles pour retrouver rapidement un environnement aux petits oignons. Surtout que nous sommes en vacances chez ma mère, qui comme vous le savez désormais, dispose d’une connexion fibre qui envoie du bois, très pratique pour récupérer les éléments manquants 🙂

Bref, si dans le futur vous vous retrouvez dans cette situation, à savoir installer un Windows en ayant seulement un PC Linux sous la main, vous savez comment faire 😉