To content | To menu | To search

Monday 5 February 2024

Mise à niveau RaspberryPI vers Debian 12 Bookworm

Il n'existe pas de procédure automatique pour mettre à niveau Debian. Ci-après les différentes étapes qui m'ont permi d'effectuer cette mise à jour, afin que le système fonctionne.

Attention : Cette procédure manuelle pouvant bloquer le système, il est préférable :

  1. De sauvegarder les données avant de commencer cette mise à niveau.
  2. D'avoir un autre micro-SD, ou un autre PC pouvant lire la micro-SD du RaspberryPI, afin de pouvoir modifier la configuration de démarrage, en cas de besoin.

Mise à jour de la version actuelle

Avant de mettre à niveau, vers la nouvelle version, il faut s'assurer que l'installation actuelle est à jour de tous ces paquets. Pour cela vous pouvez par exemple exécuter les commandes suivantes depuis le shell

sudo apt update && sudo apt --yes dist-upgrade

Afin de gagner un peu de place, on peut aussi nettoyer les paquets téléchargés et supprimer ceux devenus inutiles. Par exemple avec les commandes suivantes :

sudo apt clean && sudo apt --purge --yes autoremove

Si le kernel a été mise à jour, il convient de redémarrer le Raspberry PI avant de continuer.

Préparation de la mise à niveau

Pour préparer la mise à niveau, il est nécessaire de modifier le fichier apt sources.list afin de remplacer le nom de l'ancienne version par la nouvelle et d'ajouter le groupe de paquets non-free-firmware. Par exemple avec les commandes suivantes :

sudo sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list
sudo sed -i 's/non-free/non-free non-free-firmware/g' /etc/apt/sources.list
sudo sed -i -e 's/bullseye/bookworm/g' /etc/apt/sources.list.d/raspi.list

Afin de pouvoir reprendre la main si l'interface graphique ne répond plus, il est préférable de démarrer le service ssh et de s'assurer qu'il est accessible depuis un autre PC. Il faut aussi désactiver l'économiseur d'écran  et les économies d'énergies, afin de conserver un écran toujours allumé.

Mise à niveau

C'est la phase la plus importante. Pendant cette phase, les mises à jour vont être téléchargées, ce qui peut prendre plus ou moins de temps, suivant le début de la connexion Internet, puis elles vont être installées. Pendant l'installation, le terminal peux afficher plusieurs écrans avec des questions :

  • Certains services doivent être redémarrés, il faut toujours accepter.
  • Des paramètres peuvent être demandés. Il faut répondre aux questions en fonction de vos besoins.
  • Des fichiers de configuration peuvent être mise à jour. L'outil permet de comparer le fichier local par rapport au nouveau fichier, il est préférable d'installer le nouveau fichier, puis si besoin d'appliquer manuellement vos modifications.

Afin d'effectuer la mise à nouveau, vous pouvez utiliser par exemple les commandes suivantes :

screen -l
sudo apt update && sudo apt --yes dist-upgrade

Une fois, cette partie de la mise à niveau terminée, on peut redémarrer l'ordinateur. Ensuite il faut mette à niveau le. Par exemple via la commande :

sudo shutdown -r now

Mise à niveau du kernel

Le kernel de la nouvelle version Debian n'est plus installé via un paquet spécifique Raspberry PI, mais via un paquet linux-image. Si après redémarrage le réseau n'est plus disponible, voir le guide de dépannage plus bas. Pour la mise à niveau du kernel il faut réaliser plusieurs modifications : suppression de l'ancien kernel, modification du point de montage de la partition /boot, installation du firmware puis du kernel et configuration de auto initramfs. Par exemple via les commandes suivantes (pour un Raspberry PI 4, pour les autres version, il faut adapter le nom du kernel) :

sudo dpkg --purge --force-depends raspberrypi-kernel raspberrypi-bootloader
sudo umount /boot
sudo fsck -y /boot
sudo mkdir /boot/firmware
sudo sed -i.bak -e "s#boot#boot/firmware#" /etc/fstab
sudo systemctl daemon-reload
sudo mount /boot/firmware
sudo apt --yes install raspi-firmware
sudo apt --yes install linux-image-rpi-v8 linux-headers-rpi-v8
sudo sed -i.bak '$ a\auto_initramfs=1' /boot/firmware/config.txt
sudo shutdown -r now

Guide de dépannage

Services

Suite à cette mise à niveau, certains services peuvent ne pas démarrer automatiquement. Pour obtenir la liste des services désactiver, on peut par exemple utiliser la commande suivante :

 
sudo systemctl list-unit-files --type=service --state=disabled

Certains services sont arrêtés, ce qui est normal. Mais par exemple si NetworkManager est arrêté, alors le réseau ne fonctionne pas. Il faut l'activer et le démarrer, par exemple avec les commandes suivantes :

sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
sudo systemctl status NetworkManager

Carte réseau

Les versions récentes de Linux utilisent un nom de carte réseau invariant, c'est à dire que son nom est lié à la façon dont la carte réseau est connectée dans le PC au lieu d'être un numéro chrologique eth. Par exemple avec la version précédente ma carte réseau s'appelait eth0 et maintenant elle s'appelle end0. Suite à cette modification de nom, il faut mettre à jour la configuration du firewall. Cette mise à jour n'est pas détaillée ici, car elle dépend du firewall que vous utilisez.

Tuesday 25 December 2018

Polkit : Modifier qui peut agir en tant que root

Dans une interface graphique de Linux certains paramétrages ou programmes ont besoin des droits root. C'est la configuration de polkit qui gère cette élévation de droits. Suivant la distribution ces droits sont paramétrés pour l'utilisateur root ou pour un utilisateur ayant doit à sudo. Pour ajuster ces droits on peut créer un nouveau fichier dans le répertoire /etc/polkit-1/localauthority.conf.d/, par exemple 99-thierrylocal.conf et indiquer ceci :

[Configuration]
AdminIdentities=unix-group:sudo

Sunday 16 October 2016

Partage Samba entre PC Linux et Windows avec Ubuntu 16.04

La configuration par défaut de Samba sous Ubuntu 16.04 ne permet pas de partager des fichiers entre 2 PC Linux Ubuntu 16.04. Pour corriger ce problème il faut modifier smb.conf en ajoutant la lignes suivante :

[global]
client max protocol = SMB3

Afin d'éviter d'utiliser les vieux protocols j'ai aussi ajouté les lignes suivantes :

[global]
server min protocol = NT1
server max protocol = SMB3

Partage Samba avec liens symbolique sous Ubuntu 16.04

Ubuntu 16.04 utilise Samba 4.3.11 et la configuration a changé par rapport à Ubuntu 14.04. Si l'on souhaite partager des fichiers avec Windows en suivant les liens symboliques qui vont en dehors du répertoire partagé, il faut ajouter les options suivantes dans smb.conf :

[global]
unix extensions = no
allow insecure wide links = yes

[partage]
wide links = yes
follow symlinks = yes

Tuesday 16 August 2016

Sur Ubuntu server comment supprimer l'affichage de la charge du serveur et la disponibilité des mises à jour affichés à la connexion

À la connexion sur Ubuntu server le message indique la charge du serveur et si des mises à jour sont disponibles. Pour supprimer ces messages on doit supprimer les paquets avec la commande suivante :

sudo apt-get purge landscape-common update-notifier-common

sudo rm -rf /etc/update-notifier

Le message de connexion est plus court et la première connexion de la journée plus rapide. Le message étant gardé en cache, les informations ne seront supprimées que le lendemain.

Sunday 3 January 2016

Installation d'une autre version d'Ubuntu avec un live-CD

Ayant un ordinateur portable dont la carte graphique ne fonctionne plus j'ai créé un live-CD permettant de démarrer un Ubuntu avec support réseau et connexion ssh. J'ai créé mon live-CD il y a quelques années à partir d'une distribution Ubuntu 12.04, mais j'ai voulu installer la version 15.10 sur le disque dur. Voilà comment j'ai fait...

Continue reading...

Saturday 7 November 2015

MySQL auto_increment

Description

L'auto_increment permet de définir la colonne id de la table comme étant générée automatiquement avec une valeur chronologique.

Ajout d'un auto_increment

Avant de modifier la colonne il faut identifier le type de données. Ensuite pour ajouter l'auto_increment il faut utiliser le requete suivant dans laquelle il faut donner à auto_increment le numéro de la prochaine clé libre :

ALTER TABLE nom_table MODIFY COLUMN nom_colonne type AUTO_INCREMENT, auto_increment=0;

Réinitialisation de la valeur de l'auto_increment

Pour réinitialiser l'auto_increment d'une table on utilise la requête suivante :

ALTER TABLE nom_table AUTO_INCREMENT = 0

Consultation des auto_increment

Pour connaître la valeur actuelle de l'auto_increment de toutes les tables d'une base on utilise la requête suivante :

SELECT TABLE_NAME, AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE AUTO_INCREMENT != '';

Sunday 1 November 2015

Installation d'Adobe flash player pour Windows sous Ubuntu Firefox

Sous Ubuntu la version d'Adobe flash player est bloquée au numéro 11.2 alors que beaucoup de jeux et de replay demandent une version plus rescente. Afin de contourner ce problème il est possible d'installer pipelight-multi. Voici comment l'installer proprement sous Ubuntu 14.04 ou 16.04.

Continue reading...

Tuesday 20 October 2015

Erreur "Echec de l'ouverture de session par le service Service de profil utilisateur. Impossible de charger le profil d'utilisateur"

Sous Windows 7, à l'ouverture de session le message d'erreur "Echec de l'ouverture de session par le service Service de profil utilisateur. Impossible de charger le profil d'utilisateur" s'affiche.

Redémarrer le PC et lors du démarrage appuyer sur F8. Dans le menu choisir le mode sans échecs sans support réseau. Ouvrir la session avec un administrateur qui peut être l'utilisation en panne.

Ouvrir regedit et dans la clé "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" retrouver le SID de l'utilisateur qui est présent en 2 fois. Pour identifier cet utilisateur il suffit de regarder les valeurs qui contiennent le nom du dossier de l'utilisateur. Renommer le dossier de clés sans .bak en ajouter une extension par exemple .old puis dans l'autre dossier de clés supprimer le .bak.

Redémarrer en mode normal et cela devrait fonctionner.

On peut retournet dans regedit et supprimer le dossier de clés .old.

Wednesday 31 December 2014

Recopie d'une machine virtuelle

Nom du serveur

Il faut modifier le nom du serveur dans les fichiers suivants :

  • sudo vim /etc/{hosts,hostname,mailname,postfix/main.cf}

Serveur ssh

Après recopie de la machine virtulle il faut générer de nouvelles clés pour le serveur ssh afin que toutes les machines virtuelles n'aient pas les mêmes clés :

  • sudo rm -i /etc/ssh/ssh_host_*
  • sudo dpkg-reconfigure openssh-server

Sunday 28 December 2014

IPV6 subnet avec Ubuntu 12.04/14.04, kvm et Freebox Révolution

Je détail la configuration de la Freebox Révolution pour créer un sous-réseau IPV6 avec Ubuntu 12.04/14.04 et libvirt/kvm. Je configure aussi shorewall sur le host kvm et sur le guest kvm.

Continue reading...

Sunday 16 December 2012

Gestion de disques lvm à partir du live CD Ubuntu 12.04

Installer le paquet lvm2

Créer les pv

Créer les vg :

Ajout d'un second disque avec la commande sudo vgextend hd1_vg /dev/sdc1

Utilisation des nouveaux vg :

Afin que Linux reconnaissance les vg il faut exécuter la commande sudo vgchange -ay.

Créer les lv

Pour créer un lv sans mirroir et préciser sur quel pv exécuter la commande :

sudo lvcreate -L 256M --name tmplv hd1_vg /dev/sdb1

Créer un lv en mirroir :

Comme le vg ne possède que 2 disques, je vais stocker le journal en mémoire :

sudo lvcreate -L 2G -m 1 --mirrorlog core --name varlv hd1_vg

Affichage détaillé des lv :

Afin de savoir sur quels disques sont créés les lv exécuter la commande :

lvs -a -o +devices

Sunday 23 September 2012

Réinitialiser les paramètres réseau avec Ubuntu 12.04

Si le serveur DHCP n'était pas disponible lors du démarrage de Linux il peut être nécessaire de réinitialiser l'interface afin qu'elle ai une adresse valide. Avec Ubuntu 12.04 la commande est la suivante :

sudo initctl restart network-interface INTERFACE=eth0

Saturday 22 September 2012

Hauppauge WinTV-HVR 900 avec Ubuntu 12.04

Dépôt multiverse

Installer linux-firmware-nonfree

cd /lib/firmware

sudo wget http://kernellabs.com/firmware/drxd/drxd-a2-1.1.fw

sudo wget http://kernellabs.com/firmware/drxd/drxd-b1-1.1.fw

Wednesday 20 June 2012

Compiler le noyau Linux en conservant la configuration d'une version précédente

Après l'installation d'un nouveau noyau de ma distribution Linux le serveur ne fonctionne plus. Afin de tester si le problème vient de la configuration ou d'un patch, je vais essayer de compiler la nouvelle version en partant de la configuration de l'ancienne.

Continue reading...

Wednesday 25 April 2012

Utilisation du script webmin autoreply avec postfix

Comment utiliser le script autoreply et comment créer le fichier de réponse automatique.

Continue reading...

Friday 20 January 2012

Supprimer les fichiers de configuration résiduelle après suppression d'un paquet avec apt-get

Exécuter la commande :

sudo dpkg --list | grep ^rc | awk '{print $2}' | xargs sudo dpkg -P

Thursday 19 January 2012

Problème libvirt le bridge réseau virbr n'est pas démarré

Exécuter la commande "sudo virsh net-list --all".

Si le réseau est inactif alors exécuter les 2 commandes "sudo virsh net-autostart default" et "sudo virsh net-start default".

Thursday 22 September 2011

Installation d'une distribution Linux dans un répertoire avec schroot

La commande chroot permet de confiner l'exécution de programmes à l'intérieur d'un système Linux. Les utilitaires schroot et debootstrap permettent d'aller plus loin en installant une distribution complète à l'intérieur d'un répertoire.

Ainsi il est possible d'installer un programme récent dans une distribution ancienne sans créer de conflit avec des librairies obsolètes. Bien entendu cela ne fonctionne que si le programme et les librairies n'ont pas de dépendance avec le noyau qui reste celui de la distribution principale.

Continue reading...

Thursday 2 June 2011

Dépannage Ubuntu 10.04 si grub ne se lance plus

Démarrer le CD d'installation d'Ubuntu en mode "test sans installation".

Ouvrir une ligne de commande :

  • sudo apt-get install lvm2
  • sudo vgscan
  • sudo vgchange -ay
  • mount /target /dev/nomvg/nomlv
  • chroot /target
  • mount -t devtmpfs devtmpfs /dev
  • mount /boot
  • apt-get --reinstall install grub
Pour installer grub :
  • grub-install /dev/sda
Pour générer le menu :
  • update-grub
  • vim /boot/grub/menu.lst

- page 1 of 2