05 Dec 2023, 00:00

Pipewire

A priori pipewire est utilisé par défaut pour l’audio à partir de bookworm.

https://wiki.debian.org/PipeWire

Si message br-connection-profile-unavailable lors de la connexion d’un appareil audio bluetooth, il faut peut-être (ré)installer le bluetooth par pipewire :
sudo apt install pipewire-audio
qui devrait notamment installer
libspa-0.2-bluetooth

08 Nov 2023, 00:00

Changer le numéro des partitions

MBR

En cas de suppression puis création de partition en milieu de disque, il peut arriver que les partitions ne soient plus numérotées dans l’ordre de leur positionnement sur le disque.

Bien que non gênante en fonctionnement, cette situation diminue la lisibilité du disque et augmente les risques de confusion lors de manipulations de partitions.

Pour remédier à ceci, on peut renuméroter les partitions dans leur ordre logique.

Pour les partitions MBR, il faut le faire à la main : on dumpe la table de partition, on la modifie, puis on la réécrit sur le disque.

dev=/dev/sdX

sudo sfdisk --dump ${dev} > sdX.bkp

nano sdX.bkp
# changer le chiffre

sudo sfdisk -f {dev} < sdX.bkp
# débrancher/rebrancher disque (ou reboot) pour forcer la relecture de la table de partition

Source

GPT

Pour les partitions GPT, voir cet article

30 Jul 2023, 00:00

Live-USB Bookworm

Même procédure que pour buster avec quelques variations :

sudo aptitude install live-build live-tools
mkdir bookworm_live && cd bookworm_live
mkdir auto && cp /usr/share/doc/live-build/examples/auto/* ./auto/

config

Fichier auto/config

#!/bin/sh

set -e

lb config noauto \
	--architectures 'amd64' \
	--archive-areas 'main contrib non-free non-free-firmware' \
	--bootappend-live 'boot=live config locales=fr_FR.UTF-8 keyboard-layouts=fr' \
	--binary-images 'iso-hybrid' \
	--distribution 'bookworm' \
	--linux-flavours 'amd64' \
	--source 'false' \
	--backports 'true' \
	"${@}"

Liste de paquets

Fichier config/package-lists/live.list.chroot

live-boot
live-config
live-config-systemd
systemd-sysv

#FIRMWARE
firmware-linux firmware-atheros firmware-b43-installer firmware-bnx2x firmware-brcm80211 firmware-iwlwifi firmware-libertas firmware-myricom firmware-netxen firmware-qlogic firmware-realtek broadcom-sta-dkms

#UTILS
nmap rcconf gparted hfsprogs ntfs-3g hfsplus hfsutils dosfstools lightdm bash-completion chntpw dcfldd bootlogd less mesa-utils numlockx ethtool grub2 ssh gdisk testdisk iftop nethogs pm-utils dmraid aptitude apt-file smartmontools debootstrap pciutils usbutils cifs-utils e2fsprogs mtools screen lvm2 net-tools mdadm lsscsi haveged rng-tools cryptsetup efibootmgr efivar ncdu wireless-tools dnsutils git iperf iperf3 lshw pmount grub-efi-ia32-bin grub-pc-bin grub-efi-amd64-bin curl dislocker

# TEAMVIEWER
libqt5webkit5 qml-module-qtquick2 qml-module-qtquick-controls qml-module-qtquick-dialogs

# DESKTOP
hplip system-config-printer xsane simple-scan mate-desktop-environment caja-open-terminal mesa-utils firefox-esr-l10n-fr chromium-l10n pulseaudio pavucontrol pavumeter mate-media-common mate-media mate-settings-daemon-dev mate-settings-daemon-common mate-settings-daemon chromium engrampa unrar pluma bluez blueman pulseaudio-module-bluetooth gddrescue ddrescueview vlc rdesktop conky network-manager-gnome webcamoid cheese webp-pixbuf-loader

Noyau, backports et pinning

Voir notes pour Bullseye

09 Jul 2023, 00:00

WordPress, reverse proxy et https

Si on héberge un WordPress derrière un reverse proxy (dans mon cas jwilder-nginx+letsencrypt) qui gère le https et les certificats, WordPress verra le trafic en non-chiffré.
Il faut donc l’informer que le trafic est chiffré de manière externe, et qu’il doit modifier les URLs en https://.
Si je comprends bien, ceci se fait via la détection d’une en-tête définie par le reverse proxy.

Pour ceci, on ajoute dans le wp-config.php (dans le volume) :

//Load Balancer NGINX Proxy
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS']='on';

24 May 2023, 00:00

Police fixe pour l'horloge de Mate

Par défaut, la police de l’horloge MATE est une police à espacement variable, ce qui cause un très léger mouvement de l’ensemble des icônes de la zone de notification. Pour la passer en police chasse fixe pour empêcher ceci, créer/éditer le fichier ~/.config/gtk-3.0/gtk.css et y coller ce bloc :

#clock-applet-button {
  font-family: monospace-regular;
}

Puis pkill mate-panel devrait recharger le panneau avec la modification.

Source

18 Mar 2023, 00:00

Convertir une table de partition MBR en table GPT

Il faut évidemment backuper tout le nécessaire avant la moindre manipulation.

Sous Linux

Source
sudo gdisk /dev/sdX
r f

Sous Windows

Se fait avec l’utilitaire MBR2GPT.EXE.
Ne fonctionne que pour un disque système !

Cet utilitaire va également créer/rendre bootable une partition ESP, et créer les fichiers de démarrage Windows pour protocole EFI.
Il est disponible à partir de Windows 10 1703. Il est prévu pour être utilisé en WinPE/WinRE, mais peut être utilisé directement sur l’OS en cours de fonctionnement avec le flag /AllowFullOS. un certain nombre de fonctionnalités risquent cependant de ne pas fonctionner. Il est donc préférable de redémarrer en WinRE (Paramètres -> Mises à jour et Sécurité -> Récupération -> Démarrage avancé -> Redémarrer) puis Invite de commande.
(possible depuis USB install ?)

Tout d’abord identifier le numéro du disque à convertir avec diskpart, list disk. Dans notre exemple, c’est le disque 9.
mbr2gpt.exe /validate /disk:9 pour vérifier que c’est faisable (voir les pré-requis sur le lien ci-dessus).
mbr2gpt.exe /convert /disk:9 pour effectivement lancer la conversion (+ création de la partition ESP, formatage en FAT32, ajout des fichiers de démarrage pour le protocole EFI etc…)

Il sera nécessaire de paramétrer le boot en EFI car ceci va de paire (sous Windows) avec une table de partition GPT.

22 Feb 2023, 00:00

Notes sur KeepassXC

Aperçu

Keepass est le client original. En v1 il était disponible uniquement sous Windows. Depuis la V2, il est multiplateforme.
Il est codé en dotnet (et donc mono sous Linux).

KeepassX était un client alternatif à Keepass nativement compatible Linux. Il n’est plus beaucoup développé. Je ne me penche pas dessus.

KeepassXC est un fork communautaire de KeepassX, nativement multiplateforme, codé en C++, et encore mis à jour régulièrement.

Keepass2 et KeepassXC partagent le même format de base de données, le format .kdbx.
Il me semble que Keepass v1 utilisait le format .kdb.

On peut ouvrir un fichier .kdbx alternativement avec Keepass2 et KeepassXC, les modifications sont vues mutuellement.

Par défaut, Keepass2 intègre une icône à la zone de notification.
KeepassXC ne le fait pas, mais on peut activer l’option dans les paramètres. Si on coche “Réduire au lieu de quitter l’appli” et “Afficher une icône dans la zone de notification”, on a le comportement le + souple : la fenêtre est réduite lors de la réduction et disparaît lors de la fermeture ; l’appli étant en permanence en fonctionnement dans la zone de notification.

Pour l’instant je me penche principalement sur KeepassXC. Son dépôt git est ici :
https://github.com/keepassxreboot
et son site officiel ici :
https://keepassxc.org/

On peut l’installer via les dépôts Debian avec la commande
sudo apt install keepassxc

L’intégration de KeepassXC à Firefox nécessite un module. En essayant de l’installer depuis le magasin de modules de Mozilla, je n’ai pas réussi à faire dialoguer les 2. Mais Debian package l’extension, et l’association avec KeepassXC a fonctionné directement (après avoir supprimé l’extension installée manuellement).
sudo apt install webext-keepassxc-browser

Il faut également activer, dans les paramètres de KeepassXC, l’intégration (générique) aux navigateurs, ainsi que l’intégration à chaque navigateur que l’on souhaite utiliser.
L’activation du navigateur Firefox va créer un fichier (qui contient le chemin du proxy KeepassXC) dans ~/.mozilla/native-messaging-hosts/ ; il faut donc la réactiver si on fait des tests à base de dossiers FF tout neuf.

Il me semble que chaque connection entre 1 profil et KeepassXC utilise une “base de données” (qui n’est pas la base de données KDBX, mais simplement le nom du lien entre les 2). On peut le voir dans les paramètre de Keepassxc-browser -> Base de données connectée. Je ne sais pas comment consulter les différents liens dans KeepassXC lui-même.

Une fois l’ensemble paramétré, on voit apparaître le logo de KeepassXC à côté des champs username. Si on clique dessus, cela remplit automatiquement les champs, ou propose de choisir l’identifiant en cas d’IDs multiple enregistrés pour une même URL.

Sync

Le fichier KDBX est synchronisable entre différents postes via des outils externes ; en mon cas Nextcloud.
Après test, il s’avère qu’il est tout à fait possible d’avoir le fichier KDBX déverrouillé sur 2 postes en parallèle. Dès que les modifications sont appliquées par le poste qui n’a pas créé ces modifs, KeepassXC s’actualise tout seul et affiche les modifications, sans besoin de fermer/ouvrir la base ou de redémarrer le logiciel.
La modification sera également accessible sous Firefox sans besoin de le relancer, mais en actualisant toutefois la page.

Import

On peut importer (entre autres) une base de password au format CSV. Ceci permet d’importer les passwords de Firefox.
Un bon guide est ici :
https://blog.bilak.info/2021/04/02/moving-passwords-from-firefox-lockwise-to-keepassxc/

On commence par exporter les mots de passe de Firefox dans un fichier CSV.
Si on utilise une version =< 2.7.0 de KeepassXC (jusqu’à Bullseye pour la version des dépôts Debian), il faut modifier les timestamps via le script présent sur le lien ci-dessus.

Ensuite, dans KeepassXC, “Base de données -> Importer -> Fichier CSV”. On choisit le CSV créé précédemment. Il faut alors créer une nouvelle base de données qui contiendra l’import. On pourra fusionner cette nouvelle base avec une base pré-existante ultérieurement.

Pour l’import, il faut cocher l’option spécifiant que la 1ère ligne contient les noms des champs.
Ensuite, établir cette correspondance :

  • Group -> Not Present
  • Title -> url
  • Username -> username
  • Password -> password
  • URL -> url
  • Notes -> httpRealm (pas obligatoire, mais permet de conserver des informations supplémentaires)
  • TOTP -> Not Persent
  • Icon -> Not Present
  • Last Modified -> timePasswordChanged
  • Created -> timeCreated

Fusion de 2 bases

Ouvrir la base destination.
“Base de données -> Fusionner à partir d’une base de données”. Taper le pass de la base source.
Les dossiers sont respectés lors de l’import.

10 Feb 2023, 00:00

Notes sur vi

Entrer en mode édition/insertion : touche i
Sortir du mode édition : touche Esc

Quitter (lorsqu’on n’est pas en mode édition) : :q
Quitter (sans enregistrer les changements) : :q!
Enregistrer : :w

Ctrl-S freeze l’affichage. Pour le récupérer, Ctrl-Q

03 Nov 2022, 00:00

xrandr, résolution virtuelle et upscaling

xrandr
donne la configuration actuelle et les différentes configurations possibles

panning : permet d’aumgmenter la taille “logique” de l’affichage (les coordonnées disponibles pour demander un affichage)

mode : l’affichage réel de l’écran physique ; peut être inférieur au panning (auquel cas l’affichage défile lorsqu’on bouge le curseur vers un bord)

scale : l’échelle entre le panning et le mode ; permet par exemple de faire rentrer un “grand” panning dans un “petit” mode Elle s’obtient en divisant la valeur du panning par la valeur du mode.

Par exemple, avec un écran physique 1366x768, si je veux un écran virtuel de 1920x1080 :

xrandr --output LVDS-1 --panning 1920x1080 --mode 1366x768
et je pourrais “défiler” dans l’écran virtuel en déplaçant la souris.

Si je veux que cette résolution virtuelle soit affichée intégralement dans l’écran :

1920/1366 = 1.40556369
1080/768 = 1.40625

ce qui donne la commande
xrandr --output LVDS-1 --panning 1920x1080 --mode 1366x768 --scale 1.40556369x1.40625

26 Sep 2022, 00:00

Live-USB Bullseye

Même procédure que pour buster avec quelques variations :

sudo aptitude install live-build live-tools
mkdir bullseye_live && cd bullseye_live
mkdir auto && cp /usr/share/doc/live-build/examples/auto/* ./auto/

config

Fichier auto/config

#!/bin/sh

set -e

lb config noauto \
	--architectures 'amd64' \
	--archive-areas 'main contrib non-free' \
	--bootappend-live 'boot=live config locales=fr_FR.UTF-8 keyboard-layouts=fr' \
	--binary-images 'iso-hybrid' \
	--distribution 'bullseye' \
	--linux-flavours 'amd64' \
	--source 'false' \
	--backports 'true' \
	"${@}"

Liste de paquets

Fichier config/package-lists/live.list.chroot

live-boot
live-config
live-config-systemd

#FIRMWARE
firmware-linux firmware-atheros firmware-b43-installer firmware-bnx2x firmware-brcm80211 firmware-intelwimax firmware-iwlwifi firmware-libertas firmware-myricom firmware-netxen firmware-qlogic firmware-realtek broadcom-sta-dkms

#UTILS
nmap rcconf gparted hfsprogs ntfs-3g hfsplus hfsutils dosfstools lightdm bash-completion chntpw dcfldd bootlogd less mesa-utils numlockx ethtool grub2 ssh gdisk testdisk python-tk iftop nethogs pm-utils dmraid aptitude apt-file smartmontools debootstrap pciutils usbutils cifs-utils e2fsprogs mtools screen lvm2 net-tools mdadm lsscsi haveged rng-tools cryptsetup efibootmgr efivar ncdu wireless-tools dnsutils git iperf iperf3 lshw pmount grub-efi-ia32-bin grub-pc-bin grub-efi-amd64-bin curl dislocker

# TEAMVIEWER
libqt5webkit5 qml-module-qtquick2 qml-module-qtquick-controls qml-module-qtquick-dialogs

# DESKTOP
hplip system-config-printer xsane simple-scan mate-desktop-environment caja-open-terminal mesa-utils firefox-esr-l10n-fr chromium-l10n pulseaudio pavucontrol pavumeter mate-media-common mate-media mate-settings-daemon-dev mate-settings-daemon-common mate-settings-daemon chromium engrampa unrar pluma bluez blueman pulseaudio-module-bluetooth gddrescue ddrescueview vlc rdesktop conky network-manager-gnome webcamoid cheese webp-pixbuf-loader

Noyau, backports et pinning

On va utiliser le pinning pour demander d’installer certains paquets depuis les backports notamment les noyaux et headers.
La version de wpasupplicant fournie dans Bullseye a parfois quelques problèmes pour se connecter à un réseau. On choisit d’installer la version de bullseye-backports.
De même, si on installe le noyau de bullseye-backports, le module broadcom-sta-dkms doit venir des backports pour compiler sans erreur.

Pour ceci, on crée le fichier config/archives/backports.pref.chroot et on y met le contenu suivant :

Package: linux-image-amd64
Pin: release a=bullseye-backports
Pin-Priority: 600

Package: linux-headers-amd64
Pin: release a=bullseye-backports
Pin-Priority: 600

Package: wpasupplicant
Pin: release a=bullseye-backports
Pin-Priority: 600

Package: broadcom-sta-dkms
Pin: release a=bullseye-backports
Pin-Priority: 600

On peut bien sûr choisir d’autres paquets à installer depuis les backports, avec les mécaniques classiques de pinning.