1

Initial commit

This commit is contained in:
2025-03-28 12:57:37 +01:00
commit ed9ddcfdc8
1841 changed files with 42303 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
---
date: '2021-11-06'
title: 'Aphorisme #2'
---
L'adage "Il ne faut pas confondre Libre et Éthique" prend désagréablement sens
quand on voit ce que des entreprises manifestement non-éthiques font aux
Logiciels Libres depuis 10-15 ans, et ce sous les applaudissements des Libristes
eux-mêmes.

View File

@@ -0,0 +1,134 @@
---
date: '2021-11-07'
title: 'Deux semaines sous NixOS : je divorce de debian'
---
Voilà deux semaines que je fais tourner ma machine de jeu et le laptop du
travail sous [NixOS](https://nixos.org/). J'en suis tellement satisfait que j'ai
la ferme intention d'en faire mon OS par défaut pour toutes mes machines sous
GNU-Linux, et en particulier mes trois serveurs.
> Attention, cet article n'est pas un guide pour NixOS, juste un retour
> d'expérience.
## Présentation de NixOS
Comme toujours, c'est la [Wikipédia](https://fr.wikipedia.org/wiki/NixOS) qui
vous en parlera le mieux (et, évidemment, le site officiel), alors pour vous
présenter rapidement NixOS : c'est une distribution GNU-Linux qui présente la
caractéristique de disposer d'une configuration dite "déclarative". Grosso-modo,
vous définissez l'état logiciel d'une machine dans des fichiers de configuration
et NixOS s'occupe du reste. Un peu comme ansible ou les _docker-compose_. Pour
être exact, NixOS est une distribution Linux qui repose sur le gestionnaire de
paquets nix.
La première version date de 2003, c'est donc une distro ancienne, mais
activement maintenue.
## Du déclaratif, jusqu'à faire du _stateless_
En ce qui me concerne, l'aspect le plus marquant de NixOS est sa configuration
déclarative, qui permet d'aller très loin dans la configuration du système
jusqu'à permettre de construire un environnement _stateless_, c'est-à-dire
qu'une fois la configuration appliquée, plus rien ne peut changer, à moins
d'appliquer manuellement une nouvelle configuration, un peu comme un commit git.
On bénéficie donc de la reproductibilité logicielle : si un jeu de paramètres
fonctionne chez moi, il fonctionnera aussi ailleurs (hors spécificités
matérielles, évidemment). Et si on s'est bien débrouillé, on peut même arriver à
générer des ISO spécifiques pour une machine dédiée : à nous le PXE sans prise
de tête, le déploiement continu à l'échelle du système d'exploitation, la
reprise d'activité en un instant, le versionning local de l'OS, etc. Les
possibilités sont multiples.
## Une courbe d'apprentissage importante
Avant d'en arriver-là, il faudra toutefois passer par une courbe d'apprentissage
assez prononcée. C'est assez facile de bricoler des trucs une fois qu'on a
compris le principe du fichier _configuration.nix_, mais faire des trucs
**vraiment** sympas prend du temps. À titre informatif, j'en suis à un peu plus
de 150 générations, mais mes fichiers de configuration
ne ressemblent toujours à rien 😄 J'ai réussi à éclater la configuration dans
plusieurs fichiers, mais je ne suis pas certain que l'organisation pour laquelle
j'ai opté est la meilleure, ni que je respecte les bonnes pratiques.
Mais c'est comme ça que j'apprends, que je m'imprègne de la philosophie de
NixOS. Et, même si je ne suis pas encore satisfait de mes fichiers de conf, j'ai
un système fonctionnel, y compris pour jouer.
## Ready for Steam, presque out-of-the-box
Ma machine de jeu est basée sur un Core i7 7700K et une GTX 1070 8G. Je ne joue
qu'à des jeux sur Steam, et si [mes jeux préférés](https://steamcommunity.com/id/richarddern/games/?tab=all&sort=playtime)
ne sont pas exigeants, moi je le suis. Je veux un max de FPS partout, une
fluidité sans faille, sans déroger sur la qualité d'image, surtout que mon
moniteur est en 240Hz.
Peu importe la distribution Linux, les pilotes graphiques sont toujours plus ou
moins compliqués à installer - et surtout, configurer. Sous NixOS, c'est plutôt
facile :
```nix {linenos=false,class=not-prose}
services.xserver.videoDrivers = [ "nvidia" ];
```
Quant à Steam, c'est tout aussi simple :
```nix {linenos=false,class=not-prose}
programs.steam.enable = true;
```
Et avec ces deux lignes (plus quelques autres pour i3, fish, firefox et deux ou
trois options de personnalisation), mon PC fait tourner Steam, proton et tous
mes jeux sans aucun soucis, y compris certains que je ne parvenais pas à faire
tourner la veille de la première installation de NixOS, du genre
_Age of Empires III_.
## Easy-peasy
Vu qu'il ne m'a fallut qu'une journée pour faire tourner mon PC de jeu sous
NixOS et que maintenant c'est juste de l'optimisation/amélioration, je me sens
en totale confiance pour l'installer sur mes serveurs. Je pourrais peut-être
même me passer de docker pour la plupart des applications que j'utilise (oui,
c'est un objectif à plus ou moins long terme : je ne veux plus de docker sur mes
machines).
Un sentiment d'autant plus fort que j'ai aussi installé NixOS sur mon laptop
professionnel, où disposer d'un environnement stable est tout de même très
important. Et ce sentiment de stabilité est très concret : une fois qu'on a fait
un `nixos-rebuild switch`, on a vraiment la sensation d'être aux commandes d'un
système indestructible. Si ça marche une fois, ça marche toujours, à chaque
reboot. On a le sentiment d'avoir un système fraîchement installé _à chaque
redémarrage_. C'est grisant. Et en cas de pépin, même majeur, il suffit de
démarrer la génération précédente via un menu créé automatiquement dans grub
pour reprendre les rênes du système.
## Quelques problèmes quand même
J'ai relevé quelques soucis
mineurs (qui ne sont pas forcément liés à NixOS ceci-dit), dont un qui m'embête
en particulier parce que je suis incapable d'en identifier la cause. Si je
démarre une application réseau en même temps que l'environnement graphique (par
exemple, via une commande `exec` dans la configuration d'i3), ces applications
sont incapables de se connecter au réseau. Je me vois dans l'obligation de
`kill` leurs processus respectifs pour les relancer à la main. Aucun problème,
par contre, quand je temporise leur démarrage de quelques secondes via `sleep`
par exemple. Un problème que j'ai constaté autant sur le PC de jeu que sur le
laptop pro, aussi bien en filaire qu'en Wifi. peu importe la configuration des
DNS (_dnsmasq_ en cache local, mon serveur DNS du réseau ou même un DNS
externe).
Autre problème que je ne parviens pas à résoudre : le rendu des fontes me semble
assez moche par défaut, mais j'ignore encore comment l'améliorer.
Ces deux problèmes sont typiquement côté desktop, et ne m'inquiètent pas du tout
pour l'usage serveur que je prévois de faire de NixOS.
## Ma feuille de route
J'ai donc l'intention de remplacer debian par NixOS sur toutes mes machines : le
serveur DNS, le serveur web, le serveur de stockage, et, éventuellement, si
NixOS me le permet, sur la tablette Asus T100-TA qui me sert de panneau de
contrôle domotique, la principale contrainte de cette tablette étant de disposer
d'un EFI 32bits qui démarre un OS 64bits. debian m'a posé beaucoup de problèmes
avec ça.

View File

@@ -0,0 +1,150 @@
---
date: '2021-11-08'
title: 'Test : SteelSeries 3 Wireless'
---
## Une 3...
Je déclare que la 3 était la meilleure souris qui soit passée sous mes
mains. Allez-y, traitez-moi d'ignorant, je m'en fout. Je n'ai aimé ni les souris
Microsoft, ni les Logitech, ni les Razer, ni les ROCCAT, ni les Mad Catz, etc.
Les seules souris ayant reçu mes éloges sont toutes des SteelSeries, à commencer
par la Sensei (mais dont la peinture ne tenait pas) et la 3, qui les
surpasse toutes.
Une déclaration étonnante, n'est-ce pas ? Comment est-il possible, pour une
souris à moins de 50 euros, d'être considérée comme la meilleure souris du monde
(et de l'histoire, je ne mâche pas mes mots) ? En vérité, c'est sa simplicité
qui lui vaut mes égards :
- son éclairage est soft, réparti en trois zones (une LED sous la molette, une sous le logo SteelSeries et de part et d'autre du corps)
- elle est légère
- sa molette n'est pas débrayable (je m'en fout et en plus ça réduit [les problèmes mécaniques](https://www.lesnumeriques.com/souris/molettes-instables-resultats-sondage-reponse-logitech-n60523.html))
- elle n'a que deux boutons sous le pouce, les boutons gauche/droite, le clic molette et un bouton de réglage de la sensibilité et aucun autre (je ne **supporte pas** les boutons sur la tranche droite, un reproche que je faisais à la Sensei)
- pas de revêtement anti-dérapant ou de matériaux "respirants" qui accrochent les saletés (mais qui a inventé ces souris avec des coques trouées...)
- le plastique employé est d'excellente qualité, n'a pas de peinture qui s'écaille, est assez texturé pour être confortable mais ne l'est pas trop pour ne pas retenir la poussière
Le seul reproche que j'ai à formuler concerne la piètre qualité du câble : trop
fin, impossible de lui donner une forme, ou plus exactement, de lui faire
oublier ses plis d'origine.
## ...sans-fil
Du coup, si je peux avoir la même souris, mais sans le fil, je suis preneur !
Surtout que je l'ai eu pour 44.90€ avec réduction. C'est clairement une 3,
mais pas tout à fait. Elle est encore mieux...
Pour commencer, elle n'a pas de batterie intégrée : elle fonctionne avec deux
piles ou accus AAA (deux piles - donc non rechargeables - sont fournies). Je ne
suis pas fan des batteries intégrées. Deux accus AAA me semblent être un
excellent choix : le format est universel, elles sont donc facilement
remplaçables en fin de vie, je peux utiliser un chargeur externe de haute
qualité, je peux utiliser une paire d'accus pendant que je charge l'autre, et
l'autonomie est conséquente : 2000mAh avec deux accus de 1000mAh, quand les
batteries intégrées plafonnent à 500mAh...
On pourrait croire que cela aurait pour conséquence de lui faire prendre du
poids, et si elle est en effet plus lourde que la version filaire, elle ne pèse
que 106 grammes une fois équipée de deux accus, quand une G502 approche les 140
grammes. Et si c'est trop lourd pour vous, elle se paye le luxe de pouvoir
fonctionner avec un seul accu.
Pour continuer sur l'autonomie, la souris s'éteint toute seule au bout de
quelques minutes d'inactivité. Il suffit de cliquer pour la réactiver. Je m'y
suis fait, c'est un maigre prix à payer pour ne pas dépenser de l'énergie
inutilement et ne pas la recharger tous les quarts d'heure. D'ailleurs, à titre
informatif, j'utilise la souris de façon intensive depuis une semaine (polling à
1000Hz en 2.4GHz, éclairage molette, 10 à 12 heures d'utilisation quotidienne),
et il me reste 2/3 de l'autonomie initiale. À ce train-là, les 400 heures
d'autonomie promises par SteelSeries seront respectées (à une vache près, je ne
vais pas les accuser de publicité mensongère si elle ne tient que 3 semaines au
lieu de 400/12=33.33 jours...), mais je me dois de dire que j'ai vu plusieurs
reviews qui se plaignent que les 400 heures annoncées ne peuvent être atteintes
qu'en mode "Haute efficacité" à paramétrer dans le logiciel, ce qui a pour
conséquence de forcer le polling à 125Hz et éteindre les LEDs. Mais je le
répète : je n'ai pas activé ce mode, mon polling est à 1000Hz, la LED de la
molette est allumée et sur la couleur #010101, et les piles d'origine devraient
me procurer 3 semaines d'autonomie à raison de 10 à 12 heures d'utilisation par
jour. Je précise quand même qu'à la base, je pensais naïvement que je devrais
recharger les batteries tous les deux ou trois jours, alors même si elles ne
tiennent que deux semaines, je ne vais pas me plaindre...
Ensuite, elle perd deux de ses zones d'éclairage pour se contenter de la LED de
la molette. J'éteignais de toute façon les zones latérales sur la 3, et la
lumière que la souris produit me permet essentiellement de la retrouver dans le
noir. Du coup, le seul éclairage de la molette (réglé sur #010101 pour utiliser
le moins d'énergie possible) me suffit amplement.
Enfin, la liaison sans-fil est assurée par, au choix via un interrupteur sous la
souris, une connexion radio 2.4GHz ou le bluetooth. Pratique pour travailler à
la fois sur PC et sur Mac, ou avec une tablette tactile. Je n'ai pas encore
testé le bluetooth dans ses moindres retranchements, mais la liaison 2.4GHz est
réactive, et ne m'a jamais fait défaut, même entourée de périphériques Wifi et
d'une manette sans-fil.
## Où est l'arnaque ?
SteelSeries a réduit la souris au strict nécessaire, ce qui me convient
**parfaitement**, mais je peux comprendre que certaines fonctionnalités manquent
à certains usages.
Je citerai par exemple l'absence de port USB pour éventuellemment l'utiliser en
filaire. Ça ne faisait absolument pas partie de mon cahier des charges, donc ça
m'est complètement égal. Tout comme la possibilité de monter dans les DPI : 3200
est une valeur confortable pour moi en toutes circonstances, pouvoir pousser
jusqu'à 18000 n'est que gage de confort (si un jour je passe sur des moniteurs
4k ou plus, je pourrais passer à 6400 DPI, mais cela fait depuis des lustres que
les souris les plus basiques supportent une telle résolution de toute façon...).
Les crans de la molette sont assez marqués, plus que sur sa soeur filaire.
Encore une fois, moi, ça me convient bien : j'aime bien les molettes franches
(comment peut-on utiliser une molette débrayable... 😋). Il est certain que la
molette de cette 3 Wireless est techniquement inférieure à des solutions
proposées sur des souris beaucoup plus chères, mais je pense que dans sa
catégorie elle s'en sort bien.
Je ne déplore pas l'absence de support de charge : ça me gonflerait de devoir
penser à poser ma souris sur un socle quand j'ai fini de m'en servir, et de ne
pas pouvoir me servir de la souris pendant qu'elle charge. Sans compter que le
prix d'une souris avec socle de charge grimpe assez vite. Totalement inutile
selon moi.
Véritable regret en revanche sur l'absence d'indicateur de l'état des accus.
J'aurai apprécié un petit bouton sous la souris qui affiche pendant x secondes
le niveau de charge, même approximatif. Une LED verte/jaune/rouge m'aurait
suffit, quitte à payer 5 euros de plus (même si je sais que le coût réel de
l'électronique nécessaire pour le faire n'est que de quelques dizaines de
centimes).
Côté logiciel, elle fonctionne _out-of-the-box_ sous macOS et sous GNU-Linux,
mais l'installation du SteelSeries Engine est nécessaire pour la régler, en
particulier sa sensibilité, beaucoup trop faible sortie d'usine. Un logiciel
compatible uniquement Windows et macOS, donc heureusement que je peux la régler
depuis le mac et que ces réglages sont conservés en passant à GNU-Linux.
J'aurais évidemment préféré un outil beaucoup, beaucoup plus léger (environ
400Mo d'espace occupé sous macOS quand même... le prix à payer pour un logiciel
unifié entre tous les périphériques SteelSeries je suppose), et Libre[^1], mais
même si une solution Libre existe, je ne l'utiliserais que si je peux
l'installer à la fois sur macOS et sur GNU-Linux, et si je ne crains pas de
bricker la souris...
[^1]: J'ai connaissance de [rivalcfg](https://github.com/flozz/rivalcfg), mais la 3 Wireless [ne semble pas encore supportée à 100%](https://github.com/flozz/rivalcfg/issues/146)
## Je confirme : la meilleure souris du monde
Donc au final, pas d'arnaque :
- autonomie exemplaire, conforme aux promesses du constructeur
- un plastique, une électronique et une mécanique de qualité à un prix attractif
- une durabilité et une longévité excellentes
- pas de chichis, pas de fancy : elle est brute de décoffrage et ça me convient parfaitement
Bon, je sais, c'est un peu osé de dire qu'une souris à moins de 50 euros est la
meilleure du monde. Mais je suis un utilisateur exigeant, en quête du mulot
parfait depuis près de 30 ans, et même des modèles filaires à plus de 100 euros
n'ont pas été en mesure de me satisfaire. SteelSeries ne m'a jamais déçu, et
signe une vraie réussite avec la 3 Wireless.
## Quoi de neuf après trois mois ?
Parfaitement satisfait. J'ai eu quelques difficultés à passer sur des accumulateurs rechargeables plutôt que de simples piles, parce que la plupart des accus au format AAA sortent du 1.2V. Jamais compris pourquoi et je n'ai pas envie de savoir. Toujours est-il que j'ai finalement trouvé de vrais accus rechargeables AAA en 1.5V qui tiennent la route (environ trois semaines d'usage normal sur une seule charge) (lien supprimé parce que la page produit n'existe plus sur Amazon).

View File

@@ -0,0 +1,171 @@
---
date: '2021-11-17'
title: Installer NixOS sur une tablette Asus T100TA
---
Je dispose d'une honorable tablette
[Asus T100TA](https://www.asus.com/fr/Commercial-Laptops/ASUS_Transformer_Book_T100TA/)
que j'utilise depuis deux ans maintenant comme tableau de bord pour ma domotique
via [Home Assistant](https://www.home-assistant.io/). C'est simplement un
navigateur (en substance, [qutebrowser](https://qutebrowser.org/)) en mode
kiosk, qui tournait jusqu'à présent sous debian. Le remplacement par
[NixOS](https://nixos.org/) fait partie de
mon plan pour divorcer de debian,
mais certaines spécificités de la tablette rendent la tâche plus complexe que ce
qu'il faudrait.
<details class="read-more"><summary>Voir aussi</summary>
- [/interets/informatique/2021/11/07/deux-semaines-sous-nixos-je-divorce-de-debian/](/interets/informatique/2021/11/07/deux-semaines-sous-nixos-je-divorce-de-debian/)
</details>
Principalement, son EFI est en 32bits alors que le système tourne en 64bits. Je
me suis naïvement dit que, qu'à cela ne tienne, j'installe un système 100%
32bits. Sauf que ce faisant, NixOS ne fournit pas de paquets pré-compilés
32bits. Obligé, donc, de faire des manips, mais franchement, je ne regrette pas.
À moins que compiler l'ensemble des paquets ne vous fasse pas peur, si vous
maitrisez assez NixOS pour faire du cross-compiling, ce qui n'est pas - encore -
mon cas.
## Téléchargements
Il faut commencer par télécharger les versions 32bits et 64bits de NixOS :
- https://channels.nixos.org/nixos-21.05/latest-nixos-minimal-x86_64-linux.iso
- https://channels.nixos.org/nixos-21.05/latest-nixos-minimal-i686-linux.iso
## Système 32bits
Flashez l'ISO 32bits sur une clé USB, et démarrez-la. Procédez à l'installation
du système comme indiqué dans la
[documentation officielle](https://nixos.org/manual/nixos/stable/), en
n'oubliant pas d'activer *wpa_supplicant*. Arrêtez-vous à la modification du
fichier _configuration.nix_.
Par défaut, NixOS utilise _systemd-boot_ à la place de grub, ce qui nous empêche
de modifier la commande de démarrage. Il faut modifier le fichier
_configuration.nix_ pour pouvoir utiliser grub. En outre, cette installation
n'est que temporaire, on ne va donc pas modifier les variables EFI pour le
moment.
```nix
boot.loader = {
systemd-boot.enable = false;
efi = {
canTouchEfiVariables = false;
};
grub = {
enable = true;
efiSupport = true;
efiInstallAsRemovable = true;
device = "nodev";
};
};
```
Enregistrez puis continuez l'installation en suivant à nouveau la documentation
officielle. Après un redémarrage, vous devez disposer d'un système 32bits
minimal mais fonctionnel. Ne modifiez encore rien dans votre configuration, tout
va être remplacé sous peu (pas besoin non plus d'installer quoi que ce soit).
Si tout fonctionne bien (si vous avez pu démarrer et aller jusqu'au prompt),
il est temps de passer au système 64bits.
## Système 64bits
Flashez ensuite la clé USB avec l'ISO 64bits, mais ne démarrez pas dessus : il
faut démarrer le grub qu'on vient d'installer en 32bits. La clé USB doit
toutefois être branchée quand vous démarrez. Une fois sur l'écran de grub,
appuyez sur la touche `c` pour entrer dans le shell de grub.
Lancez la commande suivante :
```
cat (hd0)/isolinux/isolinux.cfg
```
Vous verrez alors les options de démarrage disponibles. Ce qui nous intéresse,
c'est la partie suivante :
```
init=/nix/store/qf8blw6g07xi9248m83ngn6h1rfwkn69-nixos-system-asus-t100ta-21.05.4114.195d5816cdd/init
```
À recopier dans une nouvelle commande à lancer :
```
linux (hd0)/boot/bzImage init=/nix/store/qf8blw6g07xi9248m83ngn6h1rfwkn69-nixos-system-asus-t100ta-21.05.4114.195d5816cdd/init intel_idle.max_cstate=1
```
> Vous ne pouvez pas recopier telle quelle cette commande : vous devez l'ajuster
> en fonction de la sortie de `cat (hd0)/isolinux/isolinux.cfg`. Le chemin
> d'_init_ peut changer. Par contre, vous pouvez/devez rajouter
> `intel_idle.max_cstate=1` à la fin de la ligne : cela désactivera la mise en
> veille du CPU quand il idle, et évitera certain freezes connus sur cette
> plateforme.
Charger ensuite l'initrd :
```
initrd (hd0)/boot/initrd
```
Et démarrer :
```
boot
```
Vous devriez alors pouvoir démarrer sur la version 64bits de NixOS depuis votre
clé USB. Reste encore à procéder à l'installation : là encore suivez la
procédure officielle jusqu'à la modification du fichier _configuration.nix_, où
l'on va préciser qu'on veut forcer le mode 32bits du bootloader :
```nix
boot.loader = {
systemd-boot.enable = false;
efi.canTouchEfiVariables = false;
grub = {
enable = true;
efiSupport = true;
efiInstallAsRemovable = true;
device = "nodev";
forcei686 = true;
};
};
```
On peut enfin terminer l'installation et redémarrer sans clé USB.
## Problèmes
Les dernières mises à jour de debian me permettaient de régler le
rétro-éclairage de l'écran via _sysfs_ (dans _/sys/class/backlight/_).
Malheureusement, je n'ai pas encore trouvé comment procéder sous NixOS. J'ignore
s'il me manque un module noyau. J'ai essayé quelques trucs, sans succès pour le
moment.
Autre soucis déjà rencontré sous debian : le module réseau pour le wifi provoque
quotidiennement la déconnexion de la tablette, sans que quoique ce soit puisse y
remédier, à l'exception d'un reboot complet. Ce n'est pas un problème spécifique
à NixOS, c'est le module noyau _brcmcfm_ qui semble incriminé, et il y a peu de
chances que ce problème soit corrigé un jour...
Mis à part ça, le système tourne très bien, bien mieux que sous debian. La
charge CPU est inférieure à 1, quand elle pouvait atteindre 2 voire 3 dans les
mêmes conditions.
## Conclusion
Pas simple. Pas à cause de NixOS, mais à cause d'Asus, intel, broadcom, et
Microsoft évidemment (la tablette était livrée avec Windows 8). Mais j'ai la
certitude, maintenant que le système est installé, qu'il ne bougera plus, à
moins que je bidouille (et il y a des chances que je le fasse, ne serait-ce que
pour le rétro-éclairage que j'aimerais vraiment corriger). Je la remplacerai
sans doute pour une tablette plus adaptée à GNU-Linux (pour ne plus avoir les
problèmes avec le module wifi), mais pour l'instant, elle me convient bien, et
encore plus depuis que je l'ai passés sous NixOS. Un pas de plus vers le divorce
complet de debian...