Ubuntu remplace la version spécifiée du noyau

arrière-plan

Une erreur est signalée lorsque le pilote de périphérique de bloc Linux est compilé sous la version 5.15 du noyau. Il y a donc deux façons :

  1. Modifier le code du pilote pour tenir compte des changements de version
  2. Passer à une version inférieure du noyau

La première méthode est trop basse pour moi,
j'ai donc dû passer à une version inférieure du noyau, mais j'ai rencontré de nombreux problèmes lorsque j'y ai pensé.

Remplacer le noyau spécifié

Opération béton : Opération béton

Prenons la version 5.4.0 comme exemple

	wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
	chmod +x ubuntu-mainline-kernel.sh
	sudo mv ubuntu-mainline-kernel.sh /usr/local/bin/

insérez la description de l'image ici

rechercher et trouver la version souhaitée

	ubuntu-mainline-kernel.sh -r | grep 5.4

insérez la description de l'image ici

installer cette version du noyau

	ubuntu-mainline-kernel.sh -i v5.4.0

insérez la description de l'image ici

mettre à jour le grub

	update-grub

redémarrer

	reboot now

insérez la description de l'image ici

vérifier

	uname -r

insérez la description de l'image ici

Échec, la version 22.04 a installé la version 5.4 du noyau, il semble que cela ne fonctionne pas.

Lorsque je recherche le noyau à l'aide de la commande suivante, je ne vois que les versions 5.15 et 5.17. Après avoir téléchargé de force la version 5.4.0 du noyau, je pouvais choisir de remplacer le noyau après le redémarrage, mais je ne pouvais pas entrer dans le système. J'ai donc dû abandonner.

`apt-cache search linux-image-`

Après y avoir réfléchi, je n'ai toujours pas une compréhension approfondie de la version du noyau Linux et de la version finale. La version 5.4 est le noyau utilisé sur Ubuntu 20.04 et la version 5.15 est utilisée sur Ubuntu 22.04. La modification du noyau dans différentes versions de distribution est définitivement différente, donc lorsque j'ai installé de force la version 5.4 sur la version 22.04 d'Ubuntu, le système n'a pas pu démarrer du tout.

Essayez Ubuntu 20.04

  • Téléchargez le fichier iso et définissez le mot de passe root

  • Installez des fonctions améliorées pour réaliser le partage de fichiers et de carton
    Installez directement des fonctions améliorées, puis redémarrez la machine virtuelle

  • Configurez le commutateur de source miroir Tsinghua
    sur root, téléchargez vim

    su -

    apt-get vim
    

    source de sauvegarde

    	cp /etc/apt/sources.list /etc/apt/sources.list.bak
    

    substitution manuelle ou substitution de commande

    vim /etc/apt/sources.list
    

    Accédez au site Web de la source miroir pour trouver la liste de remplacement

    renouveler

    apt-get update
    

essayez de changer à nouveau le noyau

Cette fois, sur la version 20.04 d'Ubuntu, vous pouvez trouver de nombreux noyaux en version 5.4.

insérez la description de l'image ici
Cette fois j'essaie la version 5.4.75

ubuntu-mainline-kernel.sh -i v5.4.75

Modifier le fichier grub pour sélectionner le noyau lors du démarrage

vim /etc/default/grub

Remplacez par :

	GRUB_HIDDEN_TIMEOUT=10
	#GRUB_STYLE_HIDDEN

mise à jour-grub

update-grub

Redémarrez pour vérifier

Sélectionnez le noyau de la version 5.4.75 nouvellement installée

insérez la description de l'image ici
Vérifiez la version actuelle, elle a été remplacée avec succès.

uname -r

insérez la description de l'image ici

Installez les outils de développement, recompilez le pilote de bloc

Après avoir remplacé le noyau, la fonction d'amélioration de la machine virtuelle est toujours invalide. Elle ne fonctionne toujours pas après avoir retiré le disque VboxGuest et l'avoir réinstallé à nouveau.
oublie

sudo apt-get install build-essential #安装开发工具包,包含gcc等

installer les en-têtes

uname -rVérifier la version actuelle du noyau

apt search linux-headerTrouver toutes les versions d'en-tête de la bibliothèque de logiciels

sudo apt-get install linux-headers-XXX-X-amd6en-tête d'installation

Installer une gamme d'environnements de noyau

  sudo apt-get install kernel-package 
   #测试中会出现缺这缺那的情况,如以下包会丢失,如编译源码出现错误,可尝试执行
   sudo apt-get install flex bison 
   #和/或
   sudo apt-get install libssl-dev
   #和/或
   sudo apt-get install libelf-dev #libelf-devel or elfutils-libelf-devel
   #如仍未解决,可自行搜索或尝试解决方案
   
   #编译生成menuconfig配置内核界面所需文件(非必须)
   sudo apt-get install libncurses5-dev
   
   #开发版本管理及自动化包
   sudo apt-get install automake#此处可能会有版本号
   sudo apt-get install autoconf cvs subversion

Commencer à compiler le pilote sbull

Entrez dans le dossier sbull, faites

insérez la description de l'image ici
La compilation a réussi d'un seul coup, et il semblerait qu'il s'agisse bien d'un problème avec la version du noyau.

Installez le module : insmod sbull.ko

dmesg afficher le journal

insérez la description de l'image ici

Afficher les informations du module : lsmod

Voir sbull
insérez la description de l'image ici
pour afficher les informations sur le périphérique bloc : fdisk -l /dev/sbulla

insérez la description de l'image ici
Formater le périphérique de bloc : mkfs.ext4 /dev/sbulla

Il dit Système de fichiers trop petit pour un journal, je ne sais pas comment
insérez la description de l'image ici
monter et utiliser le périphérique bloc. Après avoir monté et utilisé le périphérique bloc, vous
insérez la description de l'image ici
insérez la description de l'image ici
pouvez utiliser ce périphérique pour afficher les résultats de chargement comme les autres disques durs
insérez la description de l'image ici
 : montez
insérez la description de l'image ici
pour afficher le usage

Vous pouvez voir que le nombre est passé à 1
insérez la description de l'image ici

Entrez l'appareil pour créer un fichier

insérez la description de l'image ici

Remonter après démontage

insérez la description de l'image ici

Il a été constaté que les données ont disparu après la désinstallation, mais après le remontage, les données ont été restaurées.

démonter le disque

insérez la description de l'image ici
Démontez /mnt/sbull Après avoir attendu plus de 30 secondes, lorsque vous essayez de monter à nouveau le périphérique /dev/sbulla, le système vous demande de spécifier le type de partition sur le périphérique bloc. Indique que le périphérique a été formaté.

décharger le module du noyau
insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_51794847/article/details/128432277
conseillé
Classement