This commit is contained in:
2024-09-02 18:44:26 +02:00
parent e7bf69d4a2
commit 385a38ecd5
80 changed files with 4181 additions and 548 deletions

View File

@@ -1,7 +1,7 @@
+++
Title = "Évitez d'appeler accidentellement des commandes dans le terminal"
Dates = 05/08/2022
Brouillon = vrai
Date = 2022-08-05
Draft = true
+++
{{< noticeAutomaticTranslation it >}}
@@ -10,13 +10,13 @@ Brouillon = vrai
Lorsque je travaille dans le terminal, peut-être en développant des programmes, j'appelle souvent accidentellement une commande que je ne devrais pas.
Cela m'arrive parce que je travaille comme ceci : j'édite quelque chose dans la fenêtre de mon éditeur de texte préféré, puis je vais dans la fenêtre du terminal, et j'appuie sur `[Flèche vers le haut]` (qui rappelle la dernière commande exécutée) et `[ Entrez] ` pour l'exécuter.
Cela m'arrive parce que je travaille comme ceci : j'édite quelque chose dans la fenêtre de mon éditeur de texte préféré, puis je vais dans la fenêtre du terminal et j'appuie sur `[Flèche vers le haut]` (qui rappelle la dernière commande exécutée) et `[Entrée] ` pour exécutez-le.
Ce que j'ai remarqué, c'est que parfois, dans ma hâte, il m'arrive d'appuyer une fois de trop sur `[Flèche vers le haut]`, ce qui rappelle l'avant-dernière commande exécutée, ou celle qui la précédait même.
Comme je fais pratiquement ces séquences d'actions presque automatiquement, sans lire pour m'assurer que la commande sélectionnée est bien celle que je veux avant d'appuyer sur `[Entrée]` (car c'est tout ce que j'attends), il arrive plusieurs fois que j'exécute une commande qui Je ne devrais pas : souvent, c'est la commande qui permet de valider [Git](https://en.wikipedia.org/wiki/Git) de mes modifications dans le classeur et de les télécharger immédiatement dans le nuage.
Comme je fais pratiquement ces séquences d'actions presque automatiquement, sans lire pour m'assurer que la commande sélectionnée est bien celle que je veux avant d'appuyer sur `[Entrée]` (car c'est tout ce que j'attends), il arrive plusieurs fois que j'exécute une commande qui Je ne devrais pas : souvent, c'est la commande qui permet de valider [Git](https://en.wikipedia.org/wiki/Git) mes modifications apportées au classeur et de les télécharger immédiatement sur le cloud.
Maintenant, ce n'est pas bon, car cela signifie que dans l'historique de Git j'aurai certains "mauvais" endroits : avec des descriptions avec du texte en double, et le code dans un état inapproprié et non fonctionnel, car j'étais en train de tester quelques changements.
Avoir un historique de Git aussi compliqué affecte définitivement sa qualité, car il est plus difficile de trouver un point passé spécifique dans le code dans le futur, ce qui annule l'une des fonctionnalités utiles de Git - et en général, c'est quelque chose que je n'aime pas, ça m'ennuie , voir sale histoire.
Avoir un historique de Git aussi compliqué affecte définitivement sa qualité, car il est plus difficile de trouver un point passé spécifique dans le code dans le futur, ce qui annule l'une des fonctionnalités utiles de Git - et en général, c'est quelque chose que je n'aime pas, c'est ça m'énerve, voir sale histoire.
## Le scénario
@@ -61,4 +61,4 @@ $
Le script présente des aspects étranges, par exemple le fait qu'il ne fonctionne pas s'il est exécuté directement depuis le shell actuel (c'est pourquoi il exécute la commande souhaitée dans un autre processus shell, avec l'argument `-c`). Pour cette raison, je dois également charger explicitement mon fichier de profil dans le nouveau shell, car cela ne se fait pas automatiquement et j'ai d'autres alias et fonctions dont j'ai besoin.
Comme si cela ne suffisait pas, si je n'utilise pas de guillemets simples pour entourer la commande que je veux appeler, si celle-ci contient d'autres guillemets, c'est comme si ceux-ci étaient ignorés, et donc la commande finale peut être interrompue.
Eh bien, problème résolu de toute façon. Plus d'accidents dus à un `[Up Arrow]` de trop.
Eh bien, problème résolu de toute façon. Plus d'accidents dus à un `[Up Arrow]` de trop.

View File

@@ -1,7 +1,7 @@
+++
Title = "Vérifiez les statistiques intéressantes et la santé des partitions sous Linux"
Dates = 09/08/2022
Alias = [
Date = 2022-08-09
Aliases = [
"/Posts/Notes/Linux/2022-08-09-Check-Interesting-Statistics-Partitions-Linux.html",
]
+++
@@ -13,15 +13,15 @@ Alias = [
Les mémoires de stockage, quelle que soit leur catégorie, se dégradent avec l'usure.
Rien ne peut être fait pour éviter de devoir les changer, tôt ou tard, après tant d'années. Il est cependant possible de garder un œil sur leur état de santé, afin didentifier déventuels problèmes.
Lorsqu'il s'agit de disques HDD ou SSD, le protocole [SMART](https://en.m.wikipedia.org/wiki/S.M.A.R.T.) s'avère pratique mais, si, comme moi, vous utilisez ordinateurs d'une manière non conventionnelle, la vérification des disques classiques ne suffit pas.
Lorsqu'il s'agit de disques HDD ou SSD, le protocole [SMART] (https://en.m.wikipedia.org/wiki/S.M.A.R.T.) vient à la rescousse mais, si, comme moi, vous utilisez les ordinateurs de manière non conventionnelle, alors consulter des disques classiques ne suffit pas.
## Linux va plus loin
Quelque chose d'assez secret, que peu de gens savent (du moins il me semble), c'est que sous Linux, il est possible d'accéder aux statistiques des partitions avec certains systèmes de fichiers.
Ceci, évidemment, que vous utilisiez une clé USB, une carte SD, un disque dur, une disquette ou même une mémoire encore moins habituelle.
[Ext4](https://en.m.wikipedia.org/wiki/Ext4) fournit plusieurs données curieuses - et ses versions précédentes, Ext3 et Ext2, devraient faire de même, mais je ne l'ai pas fait. Je n'ai pas vérifié.
[F2FS](https://en.m.wikipedia.org/wiki/F2FS) J'ai également vu, directement depuis mon smartphone Android, exposer des informations intéressantes.. que je n'aborderai pas dans des détails, parce qu'ils sont tous très sombres et je ne sais pas ce qu'ils veulent dire ; et si je ne sais pas ce qu'ils veulent dire, je ne suis pas curieux à leur sujet. Cela arrive.
[Ext4](https://en.m.wikipedia.org/wiki/Ext4) fournit des données curieuses - tout comme ses versions précédentes, Ext3 et Ext2, mais je n'ai pas vérifié.
[F2FS](https://en.m.wikipedia.org/wiki/F2FS) J'ai aussi vu, directement depuis mon smartphone Android, exposer des informations intéressantes... que je n'aborderai pas en détail, car tout cela est très obscur et je ne sais pas ce qu'ils veulent dire ; et si je ne sais pas ce qu'ils veulent dire, je ne suis pas curieux à leur sujet. Cela arrive.
Quant aux autres systèmes de fichiers, je ne les ai pas vus du tout. En guise de devoir, je vous donne donc de voir si des trucs comme FAT32, exFAT, NTFS, ou pourquoi pas, BTRFS, exposent de belles informations, sous Linux. Et comment ?
## Récupérer les données
@@ -50,7 +50,7 @@ Cette fois aussi, je ramènerai les choses intéressantes.
## Choses à surveiller
Voyons une à une l'utilité de ces valeurs.
Il faut cependant prendre en compte, au cas où vous n'auriez pas compris, que les valeurs parlent de l'état **de la partition, pas du support de stockage**. Nous ne pouvons les lire que parce qu'Ext4 les enregistre et, par conséquent, si la partition est formatée, alors ces valeurs sont également réinitialisées. De plus, nous considérons qu'ils pourraient facilement être modifiés par toute personne disposant de programmes simples comme tune2fs, ils ne doivent donc pas être considérés comme parfaitement bons si des personnes non fiables ont accès à la mémoire.
Il faut cependant prendre en compte, au cas où vous n'auriez pas compris, que les valeurs parlent de l'état **de la partition, pas du support de stockage**. Nous ne pouvons les lire que parce qu'Ext4 les enregistre et, par conséquent, si la partition est formatée, alors ces valeurs sont également réinitialisées. De plus, nous considérons qu'ils pourraient facilement être modifiés par toute personne utilisant des programmes simples comme tune2fs, ils ne doivent donc pas être considérés comme parfaitement bons si des personnes non fiables ont accès à la mémoire.
**Système de fichiers créé** :
: La date à laquelle la partition a été créée. Simple, mais cela peut être utile pour faire des estimations de santé, ainsi que les données suivantes.
@@ -65,7 +65,7 @@ Il faut cependant prendre en compte, au cas où vous n'auriez pas compris, que l
: La quantité, en Ko, de données écrites lors de la session en cours, c'est-à-dire depuis le dernier montage. Avec la valeur décrite juste ci-dessus, nous pouvons l'utiliser pour savoir combien nous avons écrit dans une période de temps active (la période actuelle).
**lifetime_write_kbytes** :
: La quantité, en Ko, de données écrites depuis la création de la partition. Ces informations sont particulièrement utiles concernant les microSD, du moins si vous les utilisez de manière intensive comme moi. C'est aussi sur F2FS.
: La quantité, en Ko, de données écrites depuis la création de la partition. Ces informations sont particulièrement utiles concernant la microSD, du moins si vous l'utilisez de manière intensive comme moi. C'est aussi sur F2FS.
**errors_count** :
: Le nombre d'erreurs, je crois aussi bien en lecture qu'en écriture, qui se sont produites au fil du temps. Des erreurs fréquentes peuvent être le symptôme dune mémoire peu fiable ou simplement dégradée.
@@ -79,17 +79,17 @@ Bon, daccord, cette information est intéressante, mais : quand est-elle rée
Si la mémoire de stockage utilisée - qui, si nous décidons de recourir à ces mesures au lieu d'utiliser SMART, est probablement une microSD ou une clé USB - commence à montrer des signes de défaillance, peut-être en ralentissant avec le temps ou en corrompant les données. . Il serait conseillé de vérifier au moins que tout va bien.
Si les données ne font pas peur, mais semblent en ordre... alors il est temps de faire d'abord un formatage complet (y compris la recréation de la table de partition à partir de zéro), quelque chose de simplifié par des programmes comme [GParted](https:// gparted. org), puis vous voyez comment l'histoire continue.
Si les données ne font pas peur, mais semblent en ordre... alors il est temps de faire d'abord un formatage complet (y compris la recréation de la table de partition à partir de zéro), quelque chose de simplifié par des programmes comme [GParted](https:// gparted. org), puis vous voyez comment lhistoire continue.
Dans tous les cas, par mesure de prudence, il serait judicieux de toujours effectuer des contrôles de routine, afin de pouvoir prédire les problèmes avant que quelque chose de grave ne se produise.
Dans tous les cas, par mesure de prudence, il serait judicieux de toujours effectuer des contrôles de routine, afin de pouvoir prévoir les problèmes avant que quelque chose de grave ne se produise.
## Gardez un œil sur la microSD ?
En parlant de cartes microSD : elles sont quasiment jetables, elles ont une durée de vie extrêmement limitée, étant donné que leurs puces mémoire sont des déchets issus de la fabrication d'autres mémoires plus haut de gamme, comme les SSD.
Que sait-on de leur durabilité réelle, du moins de ceux qui sont bien sortis de l'usine et non des sous-marques ?
Vous lisez toutes sortes de choses en ligne : il y a ceux qui disent que chaque cellule mémoire peut supporter 10 000 réécritures, ceux qui disent que l'on peut écrire au maximum 1 000 fois la capacité de la mémoire avant qu'elle ne tombe complètement en panne (passage en mode lecture seule). )... aucune conclusion n'est tirée.
Vous lisez toutes sortes de choses en ligne : il y a ceux qui disent que chaque cellule mémoire peut supporter 10 000 réécritures, et ceux qui disent que l'on peut écrire au maximum 1 000 fois la capacité de la mémoire avant qu'elle ne tombe complètement en panne (en passant en lecture seule). mode)... aucune conclusion n'est atteinte.
J'ai eu des cartes comme celle examinée aujourd'hui, d'une capacité de 32 Go, qui, outre les presque 2 To écrits depuis le dernier formatage, ont vu à mon avis au moins 3 To au total dans toute sa vie, et pourtant elles ça semble toujours bien ; et puis, j'ai eu des cartes qui ont commencé à poser problème pour beaucoup moins cher. C'est peut-être parce que j'ai utilisé ce dernier avec des systèmes de fichiers merdiques, comme FAT32 ou exFAT, et pour cette raison, ils étaient constamment corrompus.
En conclusion : si lon abuse des bulletins de paris, il est bon de pouvoir les contrôler, dans la mesure du possible, comme nous lavons appris aujourdhui.
En conclusion : si lon abuse des bulletins de paris, il est bon de pouvoir les contrôler, dans la mesure du possible, comme nous lavons appris aujourdhui.

View File

@@ -1,9 +1,9 @@
+++
Title = "Contourner les DRM dans les manuels scolaires"
Sous-titre = "(d'une manière qui rend probablement l'opération possible même pour des textes non scolaires.)"
Dates = 2022-09-18
Dernière modification = 2022-09-19
Brouillon = vrai
Subtitle = "(d'une manière qui rend probablement l'opération possible même pour des textes non scolaires.)"
Date = 2022-09-18
Lastmod = 2022-09-19
Draft = true
+++
{{< noticeAutomaticTranslation it >}}
@@ -33,11 +33,11 @@ Mais pourquoi dois-je extraire les livres, et ne pas utiliser les applications d
<méta>
**Je n'aime pas les logiciels propriétaires et les DRM**
: En général, dans la mesure du possible, j'essaie toujours de me passer des logiciels propriétaires, préférant les outils gratuits pour faire les choses que je dois faire. Cependant, les logiciels propriétaires eux-mêmes ne sont pas nécessairement toujours mauvais à 100 %, car parfois ils vous donnent quand même la liberté 0<sup>[[↗️](https://it.m.wikipedia.org/wiki/Software_libero# Le_%C2% ABquattro_libert%C3%A0%C2%BB)]</sup>, c'est-à-dire la possibilité de toujours utiliser le logiciel à n'importe quelle fin. Eh bien, les DRM enlèvent cela aussi, ils sont le mal inexcusable absolu et, si déjà tout ce que j'utilise à mes fins n'a pas de DRM (parce qu'il n'en a jamais eu, ou parce qu'ils ont été supprimés, par moi ou par d'autres personnes) , ce serait bien de résoudre ce problème également pour les manuels scolaires, que j'utilise uniquement parce que le programme l'exige.
: En général, dans la mesure du possible, j'essaie toujours de me passer des logiciels propriétaires, préférant les outils gratuits pour faire les choses que je dois faire. Cependant, les logiciels propriétaires eux-mêmes ne sont pas nécessairement toujours mauvais à 100 %, car parfois ils vous donnent quand même la liberté 0<sup>[[↗️](https://it.m.wikipedia.org/wiki/Software_libero# Le_%C2% ABquattro_libert%C3%A0%C2%BB)]</sup>, c'est-à-dire la possibilité de toujours utiliser le logiciel à n'importe quelle fin. Eh bien, les DRM enlèvent cela aussi, ils sont le mal inexcusable absolu et, si déjà tout ce que j'utilise à mes fins n'a pas de DRM (parce qu'il n'en a jamais eu, ou parce qu'ils ont été supprimés, par moi ou par d'autres personnes) , ce serait bien de résoudre ce problème également pour les manuels scolaires, que je n'utilise que parce que le programme l'exige.
<méta>
**Pouvoir conserver et partager des livres**
: Les livres papier, une fois que vous les achetez, vous les possédez. Vous pouvez en faire ce que vous voulez, et ils ne disparaissent pas du jour au lendemain parce qu'un cinglé brûlé a décidé que la licence était expirée. Pourquoi nen serait-il pas ainsi pour les numériques ? Cela ne me plaît pas, donc je veux les préserver - par principe, pas parce que je pense que je les rouvrirai après l'école... personnellement, je préfère chercher sur le Web tout ce que je trouve que je veux ou dont j'ai besoin. savoir. En prime, je les mettrai également en ligne, afin que quiconque souhaite les télécharger puisse le faire (s'il le souhaite pour son étude personnelle et non pour un usage scolaire, car ces éditeurs réimpriment les livres chaque année et les écoles tombent toujours sous le charme de leur arnaque).
_...Toujours en train d'écrire... Ces notes seront mises à jour de temps en temps._
_...Toujours en train d'écrire... Ces notes seront mises à jour de temps en temps._

View File

@@ -1,13 +1,11 @@
+++
Title = "2⃣ Gaming synchronisé entre PlayStation 2 et smartphone"
Dates = 2023-10-17
Dernière modification = 2023-10-18
Downsync = "/it/posts/Notes/Gaming-Sincronizzato-PS2-Smartphone.html"
Alias = [
"/Posts/Notes/2023-10-17-Gaming-Sincronizzato-PS2-Smartphone.html",
]
Date = 2023-10-17
Downsync = "/it/note/Gaming-Sincronizzato-PS2-Smartphone.html"
Aliases = [ "/Posts/Notes/2023-10-17-Gaming-Sincronizzato-PS2-Smartphone.html" ]
Description = "En détail, comment j'ai conçu un système pour que les jeux et les sauvegardes soient toujours synchronisés entre l'émulateur et la vraie console PS2, partagé ici."
Catégories = [ "Jeux" ]
Categories = [ "Jeux" ]
Lastmod = 2023-10-18
+++
{{< noticeAutomaticTranslation it >}}
@@ -15,25 +13,24 @@ Catégories = [ "Jeux" ]
<!-- Généré automatiquement par ListedDownsync.js. Ne modifiez pas (sauf si vous définissez également "% Downsync = False") - cela serait écrasé. -->
<h1><span class="twa twa-2⃣"><span>2</span></span> Jeu synchronisé entre PlayStation 2 et smartphone</h1>
<p>Ceux qui suivent mes aventures depuis assez longtemps et avec l'attention voulue le savent peut-être, mais le plus gros problème de l'informatique est : comment concilier correctement les divergences qui se créent lorsque nous sommes confrontés au problème de jouer à des jeux vidéo à la fois à la maison qu'en portabilité ? Entre les jeux qui dans un cas sont confortables à jouer et dans un autre peut-être même ne fonctionnent pas, et les sauvegardes qui sont réparties sur d'innombrables appareils différents, résoudre complètement ce problème ne sera jamais possible...<br>
Pourtant, parfois, l'entropie du cerveau est capable de générer des idées particulièrement utiles à cet égard aussi, comme cela m'est arrivé l'autre jour pour la PS2.</p>
<p>En fait, j'ai une vraie PlayStation 2, une console de salon qui quand on trouve le moyen de l'utiliser est certainement appréciable... et que je me suis souvent retrouvé à ne pas utiliser, pour les raisons évoquées plus haut : pas directement, car à la maison, je n'y vais souvent pas, ni avec un émulateur sur le smartphone, car j'aurais l'impression qu'à la maison je n'utiliserais pas la vraie console puisque les sauvegardes mises à jour ne seraient que sur le téléphone.<br>
Et puis, l'autre jour, en regardant la console (je ne sais pas pourquoi), j'ai pensé qu'il devrait y avoir un moyen de synchroniser facilement les sauvegardes entre celle-ci et le téléphone...</p>
Et puis, l'autre jour, en regardant la console (je ne sais pas pourquoi), je pense qu'il devrait y avoir un moyen de synchroniser facilement les sauvegardes entre celle-ci et le téléphone...</p>
<h2>Objet 1 : clé USB ou carte mémoire ?</h2>
<p>À l'époque, l'idée la plus simple à laquelle j'ai pensé était : ils existent <a href="https://www.amazon.it/Adattatore-Memoria-Lettore-Sostitutivo-trasparente/dp/B0C8TTQFJY" rel= "noopener nofollow" target="_blank">adaptateurs</a> pour utiliser une carte microSD comme carte mémoire PlayStation (qui utilisent une interface non standard à la place)... cela vaut peut-être la peine d'en acheter un, donc je les garde tous c'est là que se trouvent les sauvegardes, et si je le souhaite, je peux également y accéder depuis d'autres appareils en déplaçant la carte.<sup id="fnref1"><a class="footnote-ref" href="#fn1">1</a> </sup> <br>
Avec une carte de plusieurs Go (il n'y en a plus de petites dans le coin), en plus, je pourrais même me passer de la clé USB et garder tous les jeux uniquement sur la carte mémoire !</p>
<p>Heureusement, ce n'est pas le seul moyen, du moins pour certains jeux : <a href="https://github.com/ps2homebrew/Open-PS2-Loader" rel="noopener nofollow" target="_blank " >Open PS2 Loader</a>, l'homebrew qui exécute des jeux commerciaux à partir d'un stockage de sauvegarde (tel que des clés USB), prend en charge l'utilisation de cartes mémoire virtuelles (VMC) qui sont enregistrées sous forme de fichiers sur la clé USB. Les jeux sont assez lents à enregistrer sur ce point (la PS2 ne prend en charge que l'USB 1.1, et il y a en plus une charge étrange), mais c'est une solution apparemment réalisable.</p>
<p>Heureusement, ce n'est pas le seul moyen, du moins pour certains jeux : <a href="https://github.com/ps2homebrew/Open-PS2-Loader" rel="noopener nofollow" target="_blank " >Open PS2 Loader</a>, l'homebrew qui exécute des jeux commerciaux à partir d'un stockage de sauvegarde (tel que des clés USB), prend en charge l'utilisation de cartes mémoire virtuelles (VMC) qui sont enregistrées sous forme de fichiers sur la clé USB. Les jeux sont assez lents à enregistrer dessus (la PS2 ne prend en charge que l'USB 1.1, et il y a en plus une charge étrange), mais c'est une solution apparemment réalisable.</p>
<h2>Attelage 2 : Enregistrer la conversion</h2>
<p>Quel que soit le choix précédent, je découvre cependant un autre obstacle : les sauvegardes doivent être converties pour passer de la console à l'émulateur (au moins <a href="https://aethersx2.com" rel="noopener nofollow" target=" _blank">AetherSX2</a>, pour le meilleur ou pour le pire, le seul vraiment décent à ce jour) et vice versa.<br>
Heureusement, je trouve immédiatement <a href="http://www.csclub.uwaterloo.ca:11068/mymc" rel="noopener nofollow" target="_blank">mymc</a>, un programme si ancien qu'il nécessite Python 2 (alors que pour le moment nous sommes sur 3 depuis des années et des années), qui pourtant fonctionne, et Dieu merci, il propose une interface en ligne de commande.</p>
Heureusement, je trouve immédiatement <a href="http://www.csclub.uwaterloo.ca:11068/mymc" rel="noopener nofollow" target="_blank">mymc</a>, un programme si ancien qu'il nécessite Python 2 (alors que pour le moment nous sommes à 3 depuis des années et des années), qui pourtant fonctionne, et Dieu merci, il propose une interface en ligne de commande.</p>
<p>Il n'effectue pas de véritables conversions de cartes mémoire virtuelles en soi, mais il vous permet de manipuler les fichiers contenus de différentes manières. Tout cela est très rudimentaire, mais heureusement suffisamment exploitable pour faire exactement ce dont j'ai besoin, après avoir assemblé un script idéal.<br>
Je ne vais pas essayer d'expliquer comment ça marche, en bas de l'article on peut le télécharger et le lire, c'est ennuyeux. J'ai empaqueté mymc dans le script, afin qu'il n'ait pas besoin d'être installé séparément.</p>
@@ -42,10 +39,10 @@ Je ne vais pas essayer d'expliquer comment ça marche, en bas de l'article on pe
<p><em>Note 2023-10-18 : J'ai trouvé un fork moderne (en Python 3) de mymc, <a href="https://sr.ht/%7Ethestr4ng3r/mymcplus/" rel="noopener nofollow " target="_blank">mymc+</a>... Je ne l'ai pas (encore) essayé, mais il est possible que cela fonctionne également sur Android, éliminant ainsi la configuration fastidieuse qui suit, je vais donc le mentionner. </em> </p>
<p>Malheureusement, mymc a quelques problèmes de fonctionnement sous <a href="https://termux.dev/en" rel="noopener nofollow" target="_blank">Termux</a> (l'environnement Linux natif très pratique pour ce type d'intégrations) sur mon Android : je ne sais pas ce qui est à blâmer, mais en pratique le programme a des problèmes pour lire les fichiers VMC, lançant une erreur du type <code class="prettyprint">file.vmc : Bad file descriptor< /code>. Je n'ai trouvé aucune solution en ligne, pas même pour des recherches générales sur le problème, j'ai donc dû me débrouiller. Peut-être qu'utiliser un système GNU+Linux conteneurisé en root, avec ses bibliothèques et une version différente de Python 2.7, suffirait à résoudre le problème, mais qui sait.<br>
Pour ma part, je commençais à m'énerver, j'ai donc choisi de déléguer la conversion à mon serveur Debian, en laissant un script Termux effectuer la simple tâche de charger la VMC sur le serveur, d'y exécuter le script de conversion proprement dit, puis téléchargez le fichier converti au bon endroit localement.</p>
<p>Malheureusement, mymc a quelques problèmes de fonctionnement sous <a href="https://termux.dev/en" rel="noopener nofollow" target="_blank">Termux</a> (l'environnement Linux natif très pratique pour ce type d'intégrations) sur mon Android : je ne sais pas ce qui est à blâmer, mais en pratique le programme a des problèmes pour lire les fichiers VMC, lançant une erreur du type <code class="prettyprint">file.vmc : Bad file descriptor< /code>. Je n'ai trouvé aucune solution en ligne, pas même pour des recherches générales sur le problème, j'ai donc dû me débrouiller. Peut-être qu'utiliser un système GNU+Linux conteneurisé en root, avec ses bibliothèques et une version différente de Python 2.7, suffirait à résoudre le problème, mais qui sait.<br>
Pour ma part, je commençais à m'énerver, j'ai donc choisi de déléguer la conversion à mon serveur Debian, en faisant en sorte qu'un script Termux effectue la simple tâche de charger la VMC sur le serveur, d'y exécuter le script de conversion proprement dit, puis téléchargez le fichier converti au bon endroit localement.</p>
<p>Avant d'oublier : sur Android 13 et supérieur (mais déjà sur certaines versions antérieures), les autorisations root sont nécessaires pour lire et écrire des fichiers depuis/vers des mémoires externes (comme la clé USB) et des dossiers d'applications privés (comme celui où AetherSX2 stocke les cartes mémoire virtuelles).<br>
<p>Avant d'oublier : sur Android 13 et supérieur (mais déjà sur certaines versions antérieures), les autorisations root sont nécessaires pour lire et écrire des fichiers depuis/sur des mémoires externes (comme la clé USB) et des dossiers d'applications privés (comme celui où AetherSX2 stocke les cartes mémoire virtuelles).<br>
D'après ce que j'ai pu prouver, si vous n'avez pas root vous devrez forcément utiliser un gestionnaire de fichiers adapté (et je ne pense pas qu'il en existe de scriptables, il faudra donc utiliser vos mains), ou peut-être ADB , pour déplacer les fichiers... merci Google.<br>
Quoi qu'il en soit, mes scripts ont écrit dans les chemins spéciaux utilisés pour tous les ambaradan.</p>

View File

@@ -0,0 +1,135 @@
+++
Title = "🌽 Compilez et installez le noyau Linux à partir des sources"
Date = 2024-09-01
Description = "Conseils généraux sur la façon de compiler Linux pour des ordinateurs à usage général, utiles pour résoudre des problèmes ou obtenir des fonctionnalités spéciales."
Featured_Image = "@/Media/Decor/dall-e_44be7d57-5b1d-44ff-bf54-421d95165b5f.jpeg"
Downsync = "/en/note/Compile-Install-Linux-Kernel.html"
Categories = [ "Linux" ]
+++
{{< noticeAutomaticTranslation it >}}
<!-- Généré automatiquement par ListedDownsync.js. Ne modifiez pas (sauf si vous définissez également "% Downsync = False") - cela serait écrasé. -->
<p>Ce n'est pas souvent que de nouvelles idées viennent à l'esprit, mais quand elles surviennent, elles sont toujours juste ce qu'il faut de bizarre... Sans trop m'éloigner, c'est justement à cause de cette évolution des choses qu'il y a des années, pour le première fois, je me suis retrouvé à compiler le noyau Linux à partir des sources — sur un Raspberry Pi 3 entre autres, ce que, avec le recul, je ne recommanderais pas — et maintenant, hier précisément, encore une autre fois, après des années (cette fois sur PC, heureusement ), dans un but que je ne gâcherai pas.</p>
<h2>Pourquoi recompiler le noyau ? 😯️</h2>
<p>Linux est basé sur une architecture monolithique, ce qui ne nous préoccuperait guère... si ce n'était du fait que cela a une implication gênante : toute fonction qui fonctionne au niveau du noyau doit y être compilée. . Même le mécanisme des soi-disant modules ne couvre pas toutes les situations possibles (du moins pas sur le plan pratique), et on peut donc se retrouver dans des situations dans lesquelles le noyau fourni par la distribution (ou par le fabricant du matériel), même s'il est mis à jour, n'a pas quelque chose qui est nécessaire et doit donc être remplacé.</p>
<p>Considérant la variété infinie des distributions Linux, des référentiels qui distribuent des noyaux compatibles ou non, et en combinant cela avec la diversité des options individuelles qui peuvent être activées lors de la compilation du noyau... ce n'est pas seulement dans de rares cas que la compilation à partir des sources est la seule solution, mais c'est souvent la plus pratique. Heureusement, la compilation du noyau Linux est très simple — nettement plus facile que l'application de bureau Linucs moyenne, avec trois mille dépendances toujours en conflit — mais il n'y a peut-être pas de détails si immédiats dans le processus, alors… voici ma note </p> !
<h2>0. Départ et prérequis 📦️</h2>
<p>Cette note porte sur la recompilation plus générique du noyau Linux, c'est à dire la variante officielle (celle de Linus Torvalds) sur et pour un PC de bureau x86_64 (ou AMD64). Pas de forks ou de variantes corrigées, pas de versions OEM merdiques, pas d'installation sur des appareils embarqués ou autrement ésotériques, pas de compilation distribuée ou multiplateforme. Pour les cas plus ou moins limites, les choses à faire peuvent varier plus ou moins, même si la tendance reste la même... tu vois, allez, le fait est que j'assume cette situation. Dans mon cas, il n'y a même pas de modules de noyau propriétaires.</p>
<p>Mis à part les outils favoris pour obtenir le noyau, le décompresser si nécessaire, et quelques distractions pour passer un temps considérable, les prérequis sont assez minimes. Au minimum, vous avez besoin d'un compilateur C (gcc) pour des raisons évidentes, de GNU Make pour exécuter les makefiles, de quelques outils assortis au nom oubliable et de quelques bibliothèques super spécifiques d'intérêt limité. Ensuite, je pense que d'autres packages peuvent être nécessaires, en fonction de la distribution Linux utilisée ou des fonctionnalités à compiler.</p>
<p>En fait, il n'est pas très clair sur le Web quels packages sont vraiment nécessaires et lesquels quelqu'un qui a réalisé d'autres guides a dit "eh bien, mettons-le juste pour être sûr"... Je mettrai à jour ici avec le prix précis des listes au fur et à mesure que je vérifie, y compris des planches excessives si nécessaire (pour ceux qui acceptent de perdre de l'espace mais pas du temps). Pour moi, c'est généralement une stratégie d'installer le minimum possible lorsqu'une exigence n'est pas claire, de démarrer la compilation et d'installer toute autre dépendance lorsque des erreurs surviennent à cet égard.</p>
<p>Debian et dérivés (<code class="prettyprint">apt</code>) :</p>
<ul>
<li><code class="prettyprint">build-essential</code> <code class="prettyprint">libelf-dev</code> (obligatoire)</li>
<li><code class="prettyprint">ncurses-dev</code> (pour utiliser la configuration du menu TUI)</li>
</ul>
<h2>1. Obtention du code ⛓️</h2>
<p>Le code source Linux peut être pris officiellement <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git" rel="noopener nofollow" target =" _blank">depuis Git principal</a>, <a href="https://github.com/torvalds/linux" rel="noopener nofollow" target="_blank">depuis Torvalds GitHub</a> , ou < un href="https://kernel.org" rel="noopener nofollow" target="_blank">du site Kernel.org</a>. Je préfère la dernière option, qui affiche bien en évidence les dernières versions réellement nécessaires, jusqu'à la branche prise en charge la plus ancienne.</p>
<p>Il existe plusieurs versions prises en charge à un moment donné. Généralement, s'il n'y a aucune raison d'installer un noyau plus ancien, un noyau plus récent est préférable ; Ce nest pas trop nouveau cependant, car vivre à la pointe de la technologie signifie perdre du sang, avec parfois des problèmes parfois même graves qui peuvent surgir ! Du coup, j'évite la branche <code class="prettyprint">mainline</code>, mise à jour quotidiennement ou presque, comme la peste, et choisis généralement <code class="prettyprint">stable</code>, mise à jour avec un peu "plus de jours. D'autres utilisateurs pourraient légitimement préférer le plus récent <code class="prettyprint">longterm</code> (celui du haut), pour encore plus de stabilité, mais je le trouve inutile.</p>
<p>Pour chaque ligne de version, à part la date, ce qui compte c'est le lien [tarball], donc vous téléchargez ce fichier là. Vous pouvez ensuite l'extraire dans un dossier pratique, entre autres, avec la commande <code class="prettyprint">tar xvf <file></code>. Toutes les commandes à exécuter à partir de ce point se trouveront dans le dossier préparé.<br>
<img src="{{< assetsRoot >}}/Media/Linux-Kernel/2024-09-02-kernel.org.png" alt="kernel.org"></p>
<p>...Vous devez également télécharger le fichier PGP, lorsqu'il est présent, qui sert à vérifier que le téléchargement est intact et qu'il provient de distributeurs légitimes. En réalité, cependant, toutes les versions ne l'ont pas déjà (ce qui implique qu'au fond...), le téléchargement se fait depuis le site officiel avec HTTPS (il sera donc difficile de le modifier), c'est une archive compressée (donc si elle est corrompue devrait échouer l'extraction), et faire la vérification est une douleur époustouflante dans le cul. D'autres institutions auront des exigences de sécurité plus élevées, mais pour les utilisateurs privés, c'est franchement ennuyeux, je ne le fais pas, je m'en fiche.</p>
<h2>2. Configuration du noyau 🔩️</h2>
<p>La configuration du noyau est la partie la plus complexe... parce que vous ne pouvez pas exécuter de commandes par inertie, mais vous devez <em>choisir</em> ce dont vous avez réellement besoin, eh bien, avoir le noyau avec des options osseuses . Il existe, comme mentionné, des configurations infinies et différentes manières de les utiliser. Le point principal est qu'il existe un énorme fichier texte, avec diverses options (principalement booléennes), que vous pouvez modifier.</p>
<p>Modifier cette chose à la main est cependant fou, car il existe des outils intelligents basés sur des menus intégrés au processus de construction pour gérer les différentes possibilités. Ici aussi, un demi-gâchis, mais le choix se porte principalement entre deux programmes respectivement TUI et GUI, qui peuvent être invoqués respectivement avec <code class="prettyprint">make menuconfig</code> et <code class="prettyprint">make xconfig</code >. Je préfère <code class="prettyprint">xconfig</code> pour plus de commodité et, bien que j'aie utilisé la configuration du menu Curses dans le passé, et qu'elle soit assez intuitive pour moi, apparemment pour beaucoup, ce n'est pas le cas... et le comment utiliser ce menu n'est pas le sujet d'aujourd'hui.</p>
<table><tête>
<tr>
<th>menuconfig contre xconfig</th>
</tr>
</thead><tbody>
<tr>
<td><img src="{{< assetsRoot >}}/Media/Linux-Kernel/menuconfig.png" alt="menuconfig"></td>
</tr>
<tr>
<td><img src="{{< assetsRoot >}}/Media/Linux-Kernel/xconfig.png" alt="xconfig"></td>
</tr>
</tbody></table>
<p>Si vous ne faites rien d'autre, la configuration que vous allez modifier est celle par défaut du noyau au fur et à mesure de son développement. Je n'ai jamais eu de problèmes pour l'utiliser comme base, mais, si nécessaire, en plus de ceux partagés par d'autres utilisateurs, vous pouvez utiliser celui de la distribution actuelle. Selon la façon dont votre système expose la configuration du noyau, vous pouvez (généralement) la lire avec <code class="prettyprint">cat /boot/config-$(uname r)</code>, <code class="prettyprint"> cat /boot/config</code>, ou <code class="prettyprint">zcat /proc/config.gz</code>. Écrivez-le simplement (<code class="prettyprint">></code>) dans le fichier <code class="prettyprint">./.config</code> pour l'appliquer à la configuration actuelle.</p>
<p>Dans ce cas, je voulais activer le support du nouveau pilote NTFS, donc dans xconfig j'appuie sur CTRL+F, je recherche "ntfs3" et je règle sur (Y) l'option qui parle de "NTFS Read/Write <em >quelque chose quelque chose</em>" ; puis, je sauvegarde la configuration, je ferme, et... j'ai terminé, incroyable.</p>
<h2>3. Compilation du code 🧑u200d🍳</h2>
<p>Avec la compilation, c'est un moment ennuyeux, car il faut simplement laisser le temps à l'ordinateur de traiter des millions (!) de lignes de code. Ce n'est pas bon, mais au moins ce n'est pas la fin du monde : sur n'importe quel PC qui n'est pas vraiment un hack, vous devriez le faire en moins de 4 heures. Sur le Raspberry Pi 3 cela m'a pris une journée et demie avec le CPU à températures nucléaires (et aussi pour cette raison je le déconseille...), mais sur mon PC (Ryzen 3 3200G, 16 Go de RAM dont un peu sont occupés par la compilation, sur un SSD bas de gamme) Je pense qu'il m'a fallu un peu moins de 3 heures pour compiler la version 6.10.7.</p>
<p>Il vous suffit d'exécuter <code class="prettyprint">make</code>, et Linucs se adaptera à l'architecture CPU actuelle, vive la magie ! Mieux encore, <code class="prettyprint">make -j$(nproc)</code> pour utiliser tous les cœurs de processeur disponibles... La poignée d'heures, je dois le souligner, sont mesurées par rapport à cela, sinon ce serait une demi-journée, puisque mon PC a 4 cœurs ; il pourrait le faire beaucoup plus tôt en ayant plus de cœurs, car il peut compiler efficacement encore plus de fichiers en parallèle.</p>
<p>Au moins pendant les premières minutes, c'est une bonne idée de garder un œil sur le terminal, pour voir si des erreurs se produisent et si la compilation s'arrête. Des erreurs absurdes ne me sont jamais arrivées, mais, comme je l'ai dit, si vous n'installez pas toutes les dépendances, quelque chose en rapport avec celles-ci pourrait sortir... dans ce cas, vous installez ce qui manque (en référence à votre distribution), et continuez avec la commande précédente.</p>
<p>En fonction de votre configuration, vous aurez besoin de plus ou moins d'espace disque pour terminer la compilation. Même si le noyau lui-même ne pèse jamais plus de quelques Mo (et les modules quelques dizaines de Mo), le dossier pesait en fin de compte environ 22 Go, c'est donc une bonne idée soit de vous assurer que vous disposez de suffisamment d'espace, soit vérifiez de temps en temps que cela ne se termine pas. Et si cela se termine pendant le processus, vous libérez simplement de lespace et continuez comme avant. (Tant que votre système de fichiers n'est pas corrompu simplement en étant plein à 100 %, n'est-ce pas BTRFS ?)</p>
<h2>4. Installation des noyaux et des modules 🏗️</h2>
<p>Vous n'avez pas besoin des autorisations root pour compiler le noyau, ce qui est pratique au cas où vous souhaiteriez voler temporairement l'ordinateur le plus puissant de quelqu'un d'autre pour faire le travail... mais, pour l'installer, vous avez évidemment besoin de celles du système actuel. .</p>
<p>Ici, c'est non seulement simple, mais aussi assez rapide (quelques minutes maximum) : en lançant (en tant que root) d'abord <code class="prettyprint">make install</code>, puis <code class=" Prettyprint"> INSTALL_MOD_STRIP=1 make install_modules</code>, ils seront installés respectivement dans les chemins appropriés (en supposant que vous n'ayez pas modifié les noms) : l'image du noyau (<code class="prettyprint">vmlinuz-x.x.x-. ..</code >), généralement dans <code class="prettyprint">/boot</code> et les modules, généralement dans <code class="prettyprint">/lib/modules/linux-x.x.x-...< /code> . Les modules sont des fichiers distincts du noyau, car ils sont chargés par le système lorsque cela est nécessaire... le fait est que certains d'entre eux sont utilisés pour terminer le démarrage, ils doivent donc être installés.</p>
<p>Vous devez également préparer ce que l'on appelle le système de fichiers init, ou disque virtuel initial ; normalement, il se retrouve également dans <code class="prettyprint">/boot</code>, sous le nom <code class="prettyprint">initrd.img-x.x.x-...</code>. Et cette étape serait assez gênante s'il n'y avait pas de <code class="prettyprint">kernel-install</code>, de script inclus avec systemd, ou son alternative <code class="prettyprint">installkernel</code>. Ayant systemd, au moins le premier devrait déjà être installé, et dans ce cas (en supposant les noms d'avant) faites simplement (en tant que root) <code class="prettyprint">kernel-install add x.x.x-... /boot/ vmlinuz- x.x.x-...</code>; alternativement, avec le deuxième, <code class="prettyprint">installkernel x.x.x-... /boot/vmlinuz-x.x.x-...</code>.<sup id="fnref1"><a class="footnote- ref" href="#fn1">1</a></sup></p>
<p>Remarque : ceux qui développent avec le noyau (pas ceux qui lisent cet article, j'en ai bien peur) voudront peut-être ne pas définir la variable d'environnement <code class="prettyprint">INSTALL_MOD_STRIP=1</code>, car le débogage sans le débogage, que cet indicateur supprime, est difficile... mais pour les utilisateurs mortels ordinaires comme moi, ils gaspillent simplement de l'espace (à tel point que les distributions les emballent séparément). De plus, ceux qui ne développent pas nécessairement avec le noyau, mais doivent compiler des modules externes ou faire d'autres astuces, devraient également installer les fichiers d'en-tête correspondants sur le système : <code class="prettyprint">make headers_install</code> ( toujours en tant que root </p>
<p>Au moins sur les distributions "complètes", <code class="prettyprint">make install</code> puis <code class="prettyprint">kernel-install</code> devraient également avoir déjà configuré le chargeur de démarrage, au moins avoir GRUB. Dans le cas, pour ainsi dire, de distributions "plus DIY" (que je n'utilise pas, <em>d'ailleurs</em>), ainsi que de configurations de démarrage plus inhabituelles... ce n'est pas mon cas, donc je sais rien, et je ne dirai rien. Les configurations de démarrage sont une bête pour une autre fois.</p>
<h2>5. Testez le noyau 💥️</h2>
<p>Si le noyau est installé et que le chargeur de démarrage a été correctement configuré, redémarrez simplement votre ordinateur pour en profiter. Il est bon de rappeler que si vous utilisez GRUB, certains disent que le nouveau noyau n'est pas sélectionné par défaut et qu'il faut le choisir manuellement depuis le menu de démarrage... mais dans mon cas, sous Linux Mint Debian Edition, il m'a semblé qu'à la place, il avait en fait été défini par défaut.</p>
<p>Encore une fois, si, grâce au pingouin, le système démarre enfin, utilisez simplement la commande <code class="prettyprint">uname -r</code> pour vérifier la version du noyau en cours d'exécution. À ce stade, c'est une bonne idée de vérifier que la configuration <em>souhaitée</em> fonctionne réellement... mais la manière de procéder varie d'une fonctionnalité à l'autre, au cas par cas. Pour au moins confirmer que la configuration <em>spécifiée</em> existe, vérifiez simplement la configuration actuelle du noyau comme au point 2.</p>
<p>À ce stade, si tout fonctionne et qu'aucune autre modification n'est nécessaire, vous pouvez également supprimer l'énorme dossier de compilation et le noyau restera. Si vous devez également désinstaller le noyau à l'avenir, supprimez simplement les fichiers précédemment installés normalement et reconfigurez le chargeur de démarrage de manière appropriée.</p>
<h2>Conclusion 🎊️</h2>
<p>Être capable de compiler le noyau à partir du code source est une autre de ces choses que nous, les utilisateurs de Linux, pouvons faire, et que les utilisateurs de Windows <strong>ne nous envient franchement pas</strong>. Mais c'est parce qu'ils aiment gagner facilement, avec leur NT, basé sur une conception de micro-noyau... c'est vrai, maintenant que le but de l'article est terminé, je peux dire des bêtises à ma guise.</p>
<p>Copium mis à part, compiler Linux peut être quelque chose d'amusant à faire au moins une fois. Si, comme moi, vous vous trouvez dans des situations inconfortables, il faut le faire, il ny a pas grand-chose à faire ; Cependant, si vous voulez juste vous amuser un peu, l'une des nombreuses choses que vous pouvez faire est peut-être de compiler un noyau ultra-spécifique et super optimisé pour votre machine ou à des fins de virtualisation. Et bien sûr, cela consomme un peu d'énergie, mais jamais autant que le minage de crypto-monnaies ou le rendu de missiles nucléaires dans Blender !</p>
<h2>{{% i18n notes-refs %}}</h2>
<p><em>L'image de couverture décorative est obtenue via <a href="https://www.bing.com/images/create/beach-with-sand-and-rocks2c-computer-chips-and-wire/ 1-66d5a1ef220c4fae8bd786e10b88ae1e?id=Rt9hCy8E%2Fg%2BZK8rWhgwIPQ%3D%3D&view=detailv2&idpp=genimg" rel="noopener nofollow" target="_blank">L'intelligence artificielle générative de Microsoft</a>.</em> </p>
<ul>
<li>Le système de construction du noyau : <a href="https://www.kernel.org/doc/html/v6.6/kbuild/index.html" rel="noopener nofollow" target="_blank">https http://www.kernel.org/doc/html/v6.6/kbuild/index.html</a></li>
<li>Un guide pour compiler vous-même le noyau Linux : <a href="https://itsfoss.com/compile-linux-kernel/" rel="noopener nofollow" target="_blank">https:// itsfoss.com/compile-linux-kernel/</a></li>
<li>Création et installation de noyaux Linux personnalisés (Rocky Linux) : <a href="https://docs.rockylinux.org/guides/custom-linux-kernel/" rel="noopener nofollow" target="_blank"> https://docs.rockylinux.org/guides/custom-linux-kernel/</a></li>
</ul>
<div class="footnotes">
<ol>
<li id="fn1">
<p>Installer le noyau et installer le noyau (Gentoo Linux) : <a href="https://wiki.gentoo.org/wiki/Installkernel" rel="noopener nofollow" target="_blank">https://wiki. gentoo.org/wiki/Installkernel</a> <a href="#fnref1"></a></p>
</li>
</ol>
</div>

View File

@@ -1,6 +1,6 @@
+++
Titre = "Notes"
Alias = [
Title = "Notes"
Aliases = [
"/Catégories/Note.html",
]
+++
+++