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 :
- Modifier le code du pilote pour tenir compte des changements de version
- 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/
rechercher et trouver la version souhaitée
ubuntu-mainline-kernel.sh -r | grep 5.4
installer cette version du noyau
ubuntu-mainline-kernel.sh -i v5.4.0
mettre à jour le grub
update-grub
redémarrer
reboot now
vérifier
uname -r
É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 vimsu -
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.
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
Vérifiez la version actuelle, elle a été remplacée avec succès.
uname -r
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 -r
Vérifier la version actuelle du noyau
apt search linux-header
Trouver toutes les versions d'en-tête de la bibliothèque de logiciels
sudo apt-get install linux-headers-XXX-X-amd6
en-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
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
Afficher les informations du module : lsmod
Voir sbull
pour afficher les informations sur le périphérique bloc : fdisk -l /dev/sbulla
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
monter et utiliser le périphérique bloc. Après avoir monté et utilisé le périphérique bloc, vous
pouvez utiliser ce périphérique pour afficher les résultats de chargement comme les autres disques durs
: montez
pour afficher le usage
Vous pouvez voir que le nombre est passé à 1
Entrez l'appareil pour créer un fichier
Remonter après démontage
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
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