Mise à niveau LTS et Hwe

Noyaux, versions LTS, mises à jour, soucis…

LTS or not LTS

Seules les versions LTS encore maintenues en juillet 2017 (date de cet article), à savoir Trusty Tahr (le bélier confiant) et Xenial Xerus (le xerus hospitalier) sont considérées comme pertinentes par l' auteur de cet article.

Versions non lts 14.10 The Utopic Unicorn, 15.04 Vivid Vervet, 15.10 Wily Werewolf, 16.10 Yakkety Yak (fin de soutien juillet 2017), 17.04 Zesty Zapus (Janvier 2018), 17.10 Artful Aardvark (Juillet 2018).

En avril 2018, on devrait avoir la sortie de la 18.04 LTS.

Un outil

bisnext

https://doc.ubuntu-fr.org/bisnext#partie_boot_information_details

Bisnext est un outil de collecte d'informations sur le matériel et le système le tout présenté sous la forme d'un rapport afin de faciliter l'identification de la source d'un dysfonctionnement.

Problèmes

Lors des mises à niveau vers une version supérieure sans réinstallation, il y a quelques réglages à faire, voire beaucoup de réglages et de syucis possibles si on ne fait pas attention en laissant s'installer le hwe.

Mises à jour

Le simple fait d'effectuer des mises à jour (updates) peut poser souci en installant des paquets relatifs au noyau, et ceci de façon imparfaite, partielle et mettant en échec l' utilisation de toute commande sudo ap-get update upgrade …car un paquet a des dépendances non satisfaites.

Sources

Les sources de la version précédente sont désactivées.

…à compléter…

Noyaux

Les noyaux linux ne sont pas forcément en adéquation avec la version installée, car l'ancien système avait déjà, par exemple, un noyau non conventionnel d'installé. Ceci est le cas avec un noyau non pae en version LTS 12.04.

Mais ceci est aussi le cas si on avait installé un autre noyau pour régler des soucis de mise en veille.

http://icaunux.org/doku.php?id=installer_un_autre_noyau

Bug vidéo [http://www.icaunux.org/doku.php?id=gpu-hangs|gpu hangs] affectant les chipset Intel qui a été résolu sur Ubuntu 10.04 en utilisant le noyau de la version 11.04 ou 11.10. Depuis la version 12.04, ce bug ne semble plus présent.

http://www.icaunux.org/forum/viewtopic.php?id=1143

http://www.icaunux.org/forum/viewtopic.php?id=943

Serveur graphique: xorg

Enfin, la version du serveur graphique pré-installée xorg n'est pas forcément compatible avec d'autres noyaux. Sauf à savoir ce que vous faites, n'installez pas un nouveau noyau sans installer la version du serveur graphique correspondante.

Hwe

Voir ci dessous !

Hwe

Gros problème !!

Hwe quesaco ?

Hardware enablement stack

https://doc.ubuntu-fr.org/ltsenablementstack

Avec le LTS Enablement Stack, une distribution Ubuntu LTS n'est plus limitée à la version du noyau Linux fournie à sa sortie. Suivant la date à laquelle on l'a installée, on va se retrouver avec un noyau et le serveur graphique Xorg (sauf ubuntu server) de version plus récente.

Ainsi, quelques semaines après la sortie d'une version stable d'Ubuntu, son noyau sera dans la dernière version LTS disponible au téléchargement. Ceci permettant d'installer une distribution Ubuntu LTS en bénéficiant de la prise en charge de nouveaux matériels intégrée dans un noyau plus récent.

Sur du matériel déjà reconnu le passage à une étape de version LTS ( HWE Hardware Enablement Stack) a peu d’intérêt (les dépôts restent les mêmes) et est même déconseillé pour des machines virtuelles.

À noter que le dernier chiffre du numéro d'une version LTS d'Ubuntu s'il existe ne correspond pas forcément à un changement du binôme noyau/serveur-graphique mais peut simplement correspondre à une mise à jour importante de la distribution (Exemple avec 14.04.1 qui a conservé son noyau 3.13.x)

Installer hwe

Installing the HWE stack on a desktop is simple:

sudo apt-get install --install-recommends xserver-xorg-hwe-16.04 

Désinstaller hwe

https://doc.ubuntu-fr.org/ltsenablementstack

Ces informations n'ont pas été vérifiées pour les dernières versions LTS depuis Ubuntu 14.04 LTS. Quantal (12.10) est citée plus bas à titre d' exemple.

Rolling HWE Stacks pour 16.04 Par malbo du site ubuntu

Malbo donne deux procédures différentes, celle du post #16 et celle du post #20. Les deux peuvent fonctionner (Je les ai testées toutes deux).
Les infos des deux résolutions de problème sont entremêlées dans ce qui suit. Si cela en complique un peu la lecture, ceci n'enlève rien à la pertinence des informations.

Désinstaller les pilotes proprio

1. Désinstaller les pilotes propriétaires graphiques car ceux-ci peuvent ne pas être compatibles avec l'ancienne version du serveur graphique.

Désinstaller les versions lts "inutiles"

2.Désinstaller linux-generic-lts-<numero_de_version>quantal et xserver-xorg-lts-<numero_de_version>quantal,

Il faut donner le nom précis des paquets à désinstaller avec le numéro de version exact.
 sudo apt-get remove linux-generic-lts-<numero_de_version>quantal xserver-xorg-lts-<numero_de_version>quantal

Lister les noyaux installés ?

dpkg -l | grep -Ei "linux-(g|h|i|lo|si|t)" | sort -k3

Il peut y en avoir une floppée. Ils occupent de la place et des inodes (cf df -i). Comment faire le ménage simplement et proprement, c'est ce dont il est question dans les passages suivants, ainsi que dans le dernier paragraphe de cet article.

Plus simple: autoremove --purge

[https://doc.ubuntu-fr.org/kernel|Paragraphe 4.1] La commande sudo apt-get autoremove permet de désinstaller les paquets qui ne sont plus nécessaires. Depuis Ubuntu Trusty 14.04, cette commande prend en charge les anciens noyaux sauf les 2 derniers. Il est donc très facile de supprimer les anciens noyaux autres que les 2 derniers en saisissant dans un terminal la commande :

sudo apt-get autoremove --purge

Noyaux marqués installés manuellement

Il est possible que cette méthode ne fonctionne pas si les noyaux sont marqués comme installés manuellement, ce même si vous effectuez normalement les mises-à-jour.

Si la commande suivante vous donne des résultats, vous êtes concerné :

apt-mark showmanual | egrep 'linux-.*[0-9]'

Exemple linux-headers-4.4.0-87-generic linux-image-4.4.0-87-generic

Marquer tous les paquets relatifs au noyau comme installés en automatique avec cette commande:

sudo apt-mark auto $(apt-mark showmanual | egrep 'linux-.*[0-9]')

Puis repasser la commande

sudo apt-get autoremove --purge

Installer les paquets generic

3. Installer les paquets generic

Non PAE

Sur un processeur ne supportent pas l'instruction PAE, il faut à chaque fois repasser les instructions PAE au noyau, car celles-ci ne sont pas conservées !

http://icaunux.org/doku.php?id=ubuntu_non-pae

Ajouter le drapeau PAE au processeur.Pour ajouter cette info lancez la commande suivante:

cat /proc/cpuinfo | sed 's/flags\t*:/& pae/' > /tmp/cpuinfo_pae

puis

sudo mount -o bind /tmp/cpuinfo_pae /proc/cpuinfo

et

sudo mount -o remount,ro,bind /proc/cpuinfo

Vérifiez que l' info est bien passée:

grep flags /proc/cpuinfo

Si c'est le cas la commande retourne une ligne qui commence par “flags :” et contient le drapeau “pae”.

Installation du noyau generic

Les infos de malbo ne sont pas toutes pertinentes, ni valables dans tous les cas de figure !!

Seulement ensuite, vous pourrez lancer la commande d'installation du noyau 4.4

Edit 18_08_2017: Faux ! Depuis la 16.04 HWE (qui est en 4.8), la commande installe le 4.4 (noyau de la version 16.04)

sudo apt-get install linux-generic linux-headers-generic linux-image linux-image-generic linux-libc-dev linux-tools

Attention : cette commande ne marche pas avec Trusty (14.04), ni avec Xenial. Il suffit de passer la commande “sudo apt install linux-generic” et tout le reste s'installe automatiquement.
Cela fonctionne aussi avec sudo apt-get install linux-headers-generic linux-image-generic linux-libc-dev, mais pourquoi faire compliqué ?

Rebooter sur un noyau immédiatement précédent

4. Rebooter sur un kernel 3.2.0-x que vous choisirez dans le menu de grub.

Ou bien sur un kernel 4.4 si vous êtes en LTS 16.04 et que l'installation de HWE vous a collé la 4.8 voire la 4.10.

Si vous êtes dans la procédure du post 16,ceci est inutile.

Supprimer les noyaux LTS ou LTS et HWE

5. Supprimer les kernel 3.5 (remplacez 3.5.0-x par la version correspondante. ie: 3.5.0-36 ) avec la commande suivante:

sudo apt-get remove linux-headers-3.5.0-x linux-headers-3.5.0-x-generic linux-image-3.5.0-x-generic linux-image-generic-lts-quantal linux-headers-generic-lts-quantal

Supprimer directement (?) HWE

Procédure du post #16 de malbo.
sudo apt purge xserver-xorg-hwe-16.04
 Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
  ubuntu-mate-core* ubuntu-mate-desktop* xorg* xserver-xorg-hwe-16.04*
0 mis à jour, 0 nouvellement installés, 4 à enlever et 25 non mis à jour.
Après cette opération, 150 ko d'espace disque seront libérés.
Souhaitez-vous continuer ? [O/n] 

Ceci supprimera aussi votre environnement de bureau Ubuntu-desktop ou Mate-desktop comme dans le cas ci-dessous. Ce qui impose de le réinstaller dans la foulée avant tout redémarrage !

Forum Ubuntu, malbo contributeur avisé

https://forum.ubuntu-fr.org/viewtopic.php?id=2004221

#1 Le 31/01/2017, malbo écrit:

Ce titre est pompé de cette page [https://wiki.ubuntu.com/Kernel/RollingLTSEnablementStack|“Rolling HWE Stacks for 16.04”]. On y voit que pour une justification d'épuisement des équipes de développement pour maintenir les HWE stack façon 12.04 et 14.04, on va passer pour 16.04 à un passage en continu et automatique d'un HWE stack au suivant.

La page en question pointe un gros défaut de l'ancien système (celui qui a sévi pour 12.04 et 14.04) : il imposait un passage obligatoire au dernier HWE stack. C'est à dire que pour Ubuntu 16.04, il fallait passer obligatoirement au HWE stack 14.04.5 après Août 2016 (sauf pour ceux qui n'étaient pas embarqués dans le système des HWE stack parce qu'ils étaient resté avec le noyau 3.13). De ce point de vue, c'est sûr que le passage est plus souple.

Moi je ne suis pas du tout convaincu que cette nouvelle politique des HWE stack soit meilleure que l'ancienne. Je continuerai de conseiller à chaque fois que c'est possible d'installer la version sans HWE stack comme je l'ai fait pour les LTS 12.04 et 14.04.

Pour les LTS précédentes 12.04 et 14.04, la version proposée en téléchargement dépendait du moment où on la téléchargeait comme expliqué dans l'introduction de la doc LTS Enablement Stack.

De ce fait, pour installer Ubuntu dans un vieil ordi on pouvait télécharger la version avec HWE alors que la version sans HWE (qui correspond à ce paragraphe 1.2 Installer sans étape de version LTS) était préférable.

lucmars en février 2017

Cela ressemble à du rolling release. Bon pourquoi pas tant que cela n'a pas de conséquences pour migrer d'une lts à l'autre.Mais si cela conditionne la-dite migration, Canonical bousille là une pratique simple qu'était la lts.Moi-même avec ma 140402, je ne sais si je dois d'abord installer le stack avant de migrer vers la 160401 ou si la migration s'en occupe.Je veux dire qu'en l'état la communication vers l'utilisateur(trice) est à chier et anxiogène.

Tu n'as pas à installer ni à désinstaller quelque stack que ce soit pour faire ta mise à niveau de Trusty vers Xenial. Tu peux même avoir entassé plusieurs stacks de Trusty (ça pourrait arriver), tu n'as pas à faire le ménage avant (je détaille ça dans le “nota” en bas de [https://forum.ubuntu-fr.org/viewtopic.php?pid=21516046#p21516046|ce post)]

Les LTS sans HWE !

1) Les 16.04.0 et 16.04.1 NE sont PAS dotées d'origine de HWE.

2) Les 16.04.0 et 16.04.1 d'origine bénéficient, tout en gardant le noyau 4.4, des mêmes corrections de sécurité que les versions HWE

Ce n'est qu'a partir de la .2 qu'il y a un changement de version du noyau et de xorg.

Dans ce cas la version de noyau installée est en 4.8 hwe…

Passer de la 16.02 HWE à la 16.01 non hwe

Malbo indique que cette procédure est provisoire pour passer de 16.04.2 à 16.04.1.

Installer le noyau 4.4

sudo apt install linux-generic linux-headers-generic linux-image-generic
Un message peut vous signaler que linux-generic est déjà la plus récente version installée, alors même que vous n'utilisez pourtant pas le 4.4, ce qui se vérifie avec la commande uname -r.
Vous pouvez être tenté de forcer l'installation d'une version donnée (ex: 4.4.0.87), mais sans garantie de succès, car un souci de dépendances non satisfaites risque de se produire.

Désinstaller la daube "hwe-16.04"

Malbo utilise le terme daube aux motifs que cet HWE, qui va poser de nombreux soucis, est installé sans avertissement en cas de mise à niveau, et aussi en cas de fresh install, car la plupart des iso d'Ubuntu sont implémentées avec HWE.
sudo apt remove xserver-xorg-core-hwe-16.04 xserver-xorg-input-all-hwe-16.04 linux-generic-hwe-16.04 xserver-xorg-video-all-hwe-16.04
Désinstaller Hwe supprime aussi l'environnement de bureau Ubuntu-desktop ou Mate-desktop ou tout autre environnement installé, ce pourquoi on le réinstalle dans la foulée !
sudo apt install ubuntu-desktop xserver-xorg

2) redémarrage de l'ordi et sélection de l'entrée de Grub pour le noyau 4.4 pour la 16.04 LTS (au lieu du noyau par défaut installé par HWE, le 4.8 qui est le noyau natif de la 16.10)

Le re démarrage relève de la note #20 et non pas de la note #16. Selon la procédure suivie, il n'est pas obligatoire.

Désinstallation du (ou des noyaux 4.8) en suivant la doc 4.3 Méthode depuis un terminal

Précautions à prendre lors de l' upgrade de la 14.04 à la 16.04

https://forum.ubuntu-fr.org/viewtopic.php?id=1884671

Remarque : en faisant une simple mise à jour après avoir passé la commande “sudo apt-get install xserver-xorg”, je constate que xorg passe de la version 1:7.7+1ubuntu8.1 à la version 1:7.7+13ubuntu3, c'est à dire qu'il passe à la même version que les paquets xserver-xorg, xserver-xorg-video-all et xserver-xorg-input-all. A noter que le paquet x11-common est passé à cette version 1:7.7+13ubuntu3 lors de la mise à niveau (je l'ai vérifié en consultant le fichier /var/log/dist-upgrade/history.log).

lts-vivid packages not removed after upgrade

bug a été rapporté par Brian Murray : Bug #1566540 (xserver lts-vivid packages not removed after upgrade)

Installer xserver-xorg !!

commande d'installation du paquet xserver-xorg : J'ai mis en évidence dans mes posts #21 et #24 que cette commande a un effet très positif pour la réparation.

sudo apt-get install xserver-xorg

sudo apt full-upgrade

sudo apt et pas apt-get ?

La commande apt seule permet la coloration syntaxique ainsi que l'état d' avancement des modifications.

mises à jour

Par la commande “sudo apt update” puis la commande “sudo apt full-upgrade”

Rechercher la présence des paquets

dpkg -l|grep 1:7.7+13ubuntu3

Se dépanner en cas de plantage de xorg

En résumé, au redémarrage après mise à niveau, si on n'obtient pas de session graphique et qu'on arrive seulement à se connecter en console par Ctrl+Alt+F1, il ne faut pas faire d'emblée les mises à jour parce que ça foutrait la pagaille à cause du bug #1566540 : ce qu'il faut faire en priorité, c'est l'installation du paquet xserver-xorg comme indiqué dans la procédure ci-dessus.

rcs

Lors de la mise à niveau 14.04 vers 16.04, on voit apparaître ceci au sujet du Fichier de configuration “/etc/default/rcs”.

Pour ceux qui font la mise à niveau depuis le Gestionnaire de mises à jour, il y a le message suivant au cours de la mise à niveau : Remplacer le fichier de configuration personnalisé « /etc/default/rcS » ?. Il faut cliquer sur le bouton “Conserver” si on est en dual-boot avec Windows.

Pour ceux qui sont en dual-boot avec Windows, je conseille de sélectionner le choix par défaut, c'est à dire de taper n et de valider par la touche Entrée. (*)

Les explications de malbo ici

Quant à ceux qui sont en dual-boot avec Windows et qui choisiraient de taper y, ça va se traduire après mise à niveau par “RTC in local TZ: no” ce qui signifie que l'horloge du Bios va être mise à l'heure UTC quand ils vont faire une session Ubuntu et elle va être mise automatiquement à l'heure locale lors d'une session Windows. EDIT le 27-7-2016 : pour ceux-là, il suffira de passer la commande indiquée dans ce post pour arrêter de s'emmerder avec ce pb d'horloge.

 sudo timedatectl set-local-rtc 1

post 48 forum ubuntu cité plus haut

Plusieurs Hwe ?

Même si on {https://doc.ubuntu-fr.org/ltsenablementstack#passer_a_la_derniere_etape_de_version_lts|a installé plusieurs HWE stack] et qu'on n'a jamais fait le ménage pour virer les anciens noyaux, la mise à niveau fait le ménage : elle ne laisse que le noyau sur lequel la session Ubuntu 14.04 a été démarrée pour cette mise à niveau (tous les autres noyaux sont virés automatiquement).

Les noyaux actuels en fonction des version LTS

Package linux-generic

  trusty (14.04LTS) (kernel): Complete Generic Linux kernel and headers
  3.13.0.125.135 [security]: amd64 i386
  trusty-updates (kernel): Complete Generic Linux kernel and headers
  3.13.0.125.135: amd64 arm64 armhf i386 ppc64el
  xenial (16.04LTS) (kernel): Complete Generic Linux kernel and headers
  4.4.0.87.93 [security]: amd64 i386
  xenial-updates (kernel): Complete Generic Linux kernel and headers
  4.4.0.87.93: amd64 arm64 armhf i386 ppc64el s390x 

https://doc.ubuntu-fr.org/kernel#lister_les_noyaux_installes

Suppression des anciens noyaux

Avec le terminal

La commande sudo apt-get autoremove permet de désinstaller les paquets qui ne sont plus nécessaires. Depuis Ubuntu Trusty 14.04, cette commande prend en charge les anciens noyaux sauf les 2 derniers. Il est donc très facile de supprimer les anciens noyaux autres que les 2 derniers en saisissant dans un terminal la commande :

autoremove --purge

sudo apt-get autoremove --purge

Noyaux marqués comme installés manuellement

Il est possible que cette méthode ne fonctionne pas si les noyaux sont marqués comme installés manuellement, ce même si vous effectuez normalement les mises-à-jour. Si la commande suivante vous donne des résultats, vous êtes concerné :

apt-mark showmanual | egrep 'linux-.*[0-9]'

Ceci est probablement un bug, mais peut être contourné temporairement lorsque vous souhaitez récupérer de l'espace, en marquant à nouveau tous les paquets relatifs au noyau comme installé en automatique avec cette commande:

sudo apt-mark auto $(apt-mark showmanual | egrep 'linux-.*[0-9]')

Graphiquement

Avec synaptic !

Dès la fin de l' installation de votre système, et tant qu'il est stable, installez immédiatement synaptic. Celui-ci n'est plus installé par défaut depuis la 12.04 !!

Il faut supprimer complètement les paquets par groupes de 3 : linux-headers-2.6.XX-YY linux-headers-2.6.XX-YY-generic linux-image-2.6.XX-YY-generic Pour enlever, par exemple, les noyaux 2.6.32-22 et 2.6.32-23, sélectionner pour suppression complète les paquets suivants :

linux-headers-2.6.32-22 linux-headers-2.6.32-22-generic linux-image-2.6.32-22-generic linux-headers-2.6.32-23 linux-headers-2.6.32-23-generic linux-image-2.6.32-23-generic

Installer une autre version de noyau

Pour info, ces informations ne sont pas pertinentes avec le reste de cet article et sont là pour mémoire.
Installer et utiliser une autre version de noyau est à réserver aux utilisateurs avertis.

Le noyau Linux est en constante évolution. Chaque nouvelle version d'Ubuntu inclut une nouvelle version du noyau Linux par rapport à la précédente. Si cela permet de corriger des bugs et de proposer de nouvelles fonctionnalités, il arrive que cela entraîne des régressions (dans le pire des cas, cela empêche de démarrer Ubuntu). Dans ce cas, vous pouvez être amené à installer d'autres versions du noyau Linux (plus récentes ou plus anciennes)

Installation simple

Rendez-vous sur le site correspondant à la version de noyau voulue: soit packages.ubuntu.com (kernels stables, par défaut de toutes les versions d'Ubuntu), soit kernel.ubuntu.com (version de développement, appelée “mainline”, que les développeurs vous demanderont généralement de tester).

Téléchargez

les 4 paquets composant le kernel voulu, généralement:

linux-headers-<version>_<version>_all.deb

linux-headers-<version>-generic_<version>_<votre_architecture>.deb

linux-image-<version>-generic_<version>_<votre_architecture>.deb

linux-image-extra-<version>-generic_<version>_<votre_architecture>.deb (optionnel, mais généralement requis pour les tests)

Si votre système est 64bit, <votre_architecture> est amd64. Si votre système est 32bit, <votre_architecture> est i386.

Installez

les paquets téléchargés (par exemple en double-cliquant dessus puis installer via la Logithèque) dans l'ordre ci-dessus.

Mettre à jour le menu Grub

sudo update-grub    

Redémarrez l'ordinateur

Le menu GRUB vous permettra de choisir le nouveau noyau.

Ne pas installer un noyau d'une architecture différente de celui déjà pré-installé.

L'installation du noyau d'une autre version d'Ubuntu rend impossible l'installation des pilotes supplémentaires, qui seront toujours “activés” mais pas en cours d'utilisation.

La version du serveur graphique pré-installée n'est pas forcément compatible avec d'autres noyaux. Sauf à savoir ce que vous faites, n'installez pas un nouveau noyau sans installer la version du serveur graphique correspondante.

Autres liens

mise_a_niveau_lts_et_hwe.txt · Dernière modification: 2017/11/18 17:41 (modification externe)
GNU Free Documentation License 1.3
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5