Convertir un ePub en PDF puis en livre imprimable
Avec rien d’autre que des outils libres, il est possible de convertir/formater un livre ePub en joli document PDF, puis d’en créer des livrets/cahiers imprimables.
Conversion ePub en PDF avec pandoc
Pandoc permet la conversion de documents avec des formats d’entée et de sortie divers (HTML vers PDF, Markdown vers HTML, Markdown vers PDF etc).
Avec la commande basique suivante, on peut convertir un ePub en PDF.
Ici avec un fichier d’exemple ePub :
pandoc livre.epub -o livre.pdf

Le résultat obtenu n’est pas des plus jolis, mais pandoc est très paramétrable.
Avec les options suivantes, on peut changer le format du papier, la police, les marges :
pandoc livre.epub -V geometry:a4paper -V geometry:margin=1.5cm -V mainfont="DejaVu Serif" -V fontsize=12pt --pdf-engine=xelatex -o livre.pdf

Enfin, en rajoutant un peu de LaTeX, on peut formater les pages du livre de sorte à avoir des marges différentes entre …
Publié le 3 octobre 2025
Tout lire
Créer un tunnel UDP avec SSF (Secure Socket Funneling) pour exposer un service derrière un NAT
Dans cet article précédent, je vous expliquais comment créer un tunnel SSH pour exposer les services d’une machine de votre LAN, publiquement sur Internet en passant par un VPS.
Cette méthode présente une limite principale : seuls les tunnels TCP fonctionnent.
Des hacks basés sur socat ou netcat existent pour embarquer des datagrammes UDP dans des trames TCP qui transitent dans le tunnel, mais les protocoles sont fondamentalement différents donc rien ne garantit la fiabilité des tunnels.
Notamment, TCP s’assure que les données sont acheminées alors qu’UDP peut renvoyer des données.
On pourrait donc recevoir plusieurs fois les mêmes données.
Il nous faut donc utiliser un autre outil, comme SSF (Secure Socket Funneling).
SSF peut être exécuté comme serveur sur votre VPS.
Le serveur attend les demandes d’ouverture de tunnels de la part des clients.
SSF supporte TCP et …
Publié le 4 juillet 2025
Tout lire
Utiliser SSH pour exposer un serveur derrière un NAT
À l’aide d’un petit VPS et de rien de plus que SSH, il est possible d’exposer une machine derrière un NAT ou dans un LAN sans devoir configurer un mapping de port (aka “ouvrir les ports de la box”).
La manip’ consiste à initier un tunnel SSH depuis la machine que l’on souhaite exposer sur internet, vers le VPS qui dispose d’une adresse IP publique.
Ensuite, sur le VPS, il suffit d’ouvrir un socket et de rediriger le traffic dans le tunnel.
Excellente nouvelle : openssh fait tout cela de manière transparente, en une commande.
Depuis la machine que l’on souhaite exposer :
ssh -R 0.0.0.0:1234:localhost:1234 tunneluser@vps
Cette commande ouvre un tunnel de notre machine locale port 1234 vers un socket créé automatiquement sur le VPS port 1234, à l’écoute de toutes les adresses.
Important ! Pour pouvoir écouter sur toutes les adresses (dont 0.0.0.0), il faut d’abord …
Publié le 5 juin 2025
Tout lire

Pour que les applications installées en flatpak respectent la configuration de votre curseur (thème et taille), il faut leur autoriser l’accès à ~/.icons.
C’est dans ~/.icons que la configuration du curseur (taille et apparence) est définie.
Exemple avec Dino :
flatpak --user override im.dino.Dino --filesystem=${HOME}/.icons/:ro
Une autre solution, possiblement meilleure, consiste à créer un lien symbolique de ~/.local/share/icons vers ~/.icons :
ls -s ~/.icons ~/.local/share/icons
Il semble en effet que la plupart des flatpak ont déjà accès à ce répertoire.
Publié le 19 mars 2025
Tout lire
Résoudre les blocages du serveur NFS sous Debian 12 (nfsd stuck in D state)
Si vous utilisez nfs-kernel-server avec le noyau Linux par défaut sous Debian 12 (6.1.94 au moment de l’écriture de cet article), vous avez peut-être constaté des blocages du serveur.
En cas de forte charge, il se peut que tous les threads nfsd passent en état D (uninterruptible sleep) et n’en sortent jamais.
Lorsque cela se produit, vous ne pouvez rien faire : tenter de tous les tuer avec kill -9 ou d’arrêter les services nfs (nfs-server, rpcbind etc) ne rédoudra rien.
La seule chose à faire est alors de redémarrer l’OS… ce qui rend indisponible quelques minutes d’autres services parfaitement fonctionnels sur le serveur (Samba par exemple).
Le bug peut arriver assez fréquemment, jusqu’à plusieurs fois par semaine si le serveur est beaucoup sollicité.
Dans un premier temps, on peut penser qu’il n’y a pas assez de threads nfsd pour répondre à la demande.
Il …
Publié le 13 mars 2025
Tout lire
Il n’est pas rare de vouloir exécuter un programme et d’obtenir une erreur du type :
libxxx.so: /lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.32 not found (required by .../libxxx.so)
La libstdc++ est fournie par gcc (le compilateur GNU).
Pour trouver la version de gcc qui fournit la version GLIBCXX qui vous manque, vous pouvez vous référer à son ABI.
Dans mon exemple, l’ABI indique qu’il faut installer gcc 13.2.0 minimum.
Malheureusement, cette version n’est pas installable avec apt sous Debian 12.
Je vais donc compiler moi-même gcc et la bibliothèque dans un répertoire séparé des bibliothèques du système, puis exécuter le programme en lui indiquant d’aller y chercher les bibliothèques.
La compilation peut prendre une trentaine de minutes (la durée varie selon la puissance de votre machine).
Elle peut être effectuée en suivant les étapes suivantes :
-
Télécharger le code source de gcc …
Publié le 28 février 2025
Tout lire
… ou tout autre périphérique de son USB non reconnu !
Ce microphone USB, supposément plug-and-play n’est pas reconnu nativement sous Linux.
J’ai essayé sous Debian, sous Arch et sous Fedora : même résultat.
Même sous Windows, rien n’est détecté !
Il est pourtant détecté par le noyau (sudo dmesg -Tw pour voir les messages du noyau en direct) :
[Sun Feb 16 12:23:24 2025] usb 2-1.1: new full-speed USB device number 14 using ehci-pci
[Sun Feb 16 12:23:24 2025] usb 2-1.1: New USB device found, idVendor=0d8c, idProduct=0134, bcdDevice= 1.00
[Sun Feb 16 12:23:24 2025] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[Sun Feb 16 12:23:24 2025] usb 2-1.1: Product: USB PnP Audio Device
[Sun Feb 16 12:23:24 2025] usb 2-1.1: Manufacturer: C-Media Electronics Inc.
[Sun Feb 16 12:23:24 2025] hid-generic 0003:0D8C:0134.000C: No inputs registered, leaving
[Sun Feb 16 12:23:24 2025] hid-generic …
Publié le 16 février 2025
Tout lire
Comprendre l’audio sous Linux
Cet article est aussi disponible en vidéo 👇
Problématique du son
Gérer du son pour un ordinateur, c’est simplement acheminer des données binaires aux bons endroits : d’une application à la carte son, ou dans l’autre sens.
La carte son, c’est le périphérique capable de convertir les données binaires en audio et vice-versa.
Pour que le système soit capable de parler à la carte son dans une langue qu’elle comprend, il lui faut un driver.
Ce driver, sous Linux, c’est ALSA : Advanced Linux Sound Architecture.
Multiplexage
ALSA peut être utilisé tout seul pour permettre à une application d’émettre ou de recevoir de l’audio.
Par exemple, VLC est tout à fait capable de s’adresser à ALSA.
En revanche, avec ALSA la carte son ne peut être utilisée que par une application à la fois.
Si VLC utilise la …
Publié le 5 décembre 2024
Tout lire
1
2
Suivant