Je veux télécharger le noyau Linux et jouer! Je suis sûr qu'il y a beaucoup de gens qui disent cela. Pour ceux d'entre vous, voici un rappel de l'exécution du noyau Linux sur une machine virtuelle Mac. Pour les débutants qui ont déjà installé VirtualBox et Vagrant mais ne l'ont jamais utilisé.
environnement
Recherchez la Box que vous souhaitez utiliser sur Vagrant Cloud (https://app.vagrantup.com/boxes/search). Cette fois, nous utiliserons *** generic / fedora32 *** (https://app.vagrantup.com/generic/boxes/fedora32). Créez une machine virtuelle dans votre espace de travail préféré et entrez avec ssh.
% vagrant init generic/fedora32
% vagrant up
% vagrant ssh
Si vous pouvez vous connecter correctement, l'invite de commande s'ouvrira
[vagrant@fedora32 ~]$
Je pense que ça va changer comme ça.
Puisqu'il s'agit d'une nouvelle machine, les commandes etc. sont encore insuffisantes. Si vous vous mettez en colère comme "commande introuvable"
$ yum install
Téléchargez le noyau Linux et essayez de l'exécuter avec exactement les mêmes paramètres que le système d'exploitation actuel. Commençons par vérifier la version actuelle du noyau.
$ uname -r
5.6.14-300.fc32.x86_64
Si vous téléchargez la même version du noyau que ce numéro, vous pouvez être assuré que la différence sera minime. Cette fois, téléchargez et décompressez dans / usr / src.
$ cd /usr/src
$ wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-5.6.14.tar.xz
$ tar Jxvf linux-5.6.14.tar.xz
Vous verrez "Aucune permission" ou "permission refusée", alors ajoutez sudo au début de la commande et exécutez-la avec les privilèges root. Après la décompression, accédez au répertoire terminé.
$ cd linux-5.6.14
Je vais construire le noyau à partir de maintenant, mais cette fois, j'aimerais l'exécuter avec exactement les mêmes paramètres que le noyau en cours d'exécution. Pour cela, portons d'abord le fichier de configuration (.config) depuis le noyau actuel. Dans Fedora, le nom commence par config ~ dans / boot. Veuillez changer le nom du port en .config.
$ cp /boot/config-5.6.14-300.fc32.x86_64 .config
ensuite
$ make olddefconfig
Éxécuter. make oldconfig est une commande qui définit l'élément et en fait un fichier de configuration utilisable lorsque .config est manquant pour des raisons anciennes. Si vous n'ajoutez pas def, vous serez blâmé pour les questions. make olddefconfig est une commande qui dit ~~ c'est gênant ~~ toutes les valeurs par défaut sont correctes.
Enfin, nous allons commencer à construire le noyau.
$ make bzImage
$ make modules
Éxécuter. Il faudra beaucoup de temps pour mourir, alors soyez prêt et exécutez-le avec l'option -j le cas échéant.
openssl / opensslv.h: aucun fichier ou répertoire de ce type S'il est affiché comme
$ yum install openssl-devel
Veuillez exécuter le.
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
Est affiché
$ yum install dwarves
Veuillez exécuter le.
ld: drivers / infiniband / hw / hfi1 / hfi1.ko: échec de la fermeture finale: ld: échec de la liaison finale: il n'y a pas d'espace libre sur le périphérique Il n'y a pas d'espace libre sur l'appareil make [2]: *** [scripts / Makefile.modfinal: 41: drivers / infiniband / hw / usnic / usnic_verbs.ko] Erreur 1 make [2]: *** En attente d'un travail incomplet ... make [2]: *** [scripts / Makefile.modfinal: 41: drivers / infiniband / hw / hfi1 / hfi1.ko] Erreur 1 make [1]: *** [scripts / Makefile.modpost: 94: __modpost] Erreur 2 make: *** [Makefile: 1291: modules] Erreur 2 Puisque le noyau est grand, je pense que si vous construisez avec les paramètres par défaut, vous manquerez de stockage. Si vous obtenez une telle erreur, veuillez vous référer à ** Extension de stockage VirtualBox **.
Lorsque les deux commandes make ci-dessus sont terminées
$ make modules_install
$ make install
Installez avec. Une fois que cela est fait, vous devriez pouvoir démarrer en tant que nouveau noyau.
Pour moi
sed: can't read /boot/loader/entries/db7261c1495f495394843ac0998a4888-0-rescue.conf: No such file or directory
J'ai eu l'erreur, mais vous pouvez la démarrer même si vous l'ignorez. (Je ne connais pas les détails) Si vous n'aimez pas les erreurs, copiez un autre fichier rescue.conf dans / boot / loader / entries / en tant que db7261c1495f495394843ac0998a4888-0-rescue.conf et il cessera de générer des erreurs. (Détails (ry)
Il est possible de démarrer le noyau tel quel, mais cette fois j'aimerais changer le noyau qui démarre par défaut pour que le noyau que je viens de télécharger démarre immédiatement après vagrant up. Il semble que vous puissiez modifier les paramètres en utilisant grub2 sur Fedora 30 ou une version antérieure et CentOS, mais il semble que les spécifications aient changé depuis Fedora 30. Par conséquent, définissez-le avec la commande grubby.
$ grubby --info=ALL
index=0
kernel="/boot/vmlinuz-5.6.14-300.fc32.x86_64"
args="ro biosdevname=0 elevator=noop no_timer_check resume=UUID=dff45248-dbd3-4080-9f8a-d44e7ce684d9 net.ifnames=0 rhgb quiet"
root="UUID=9a7f28db-ff73-4245-aac1-a0893e4fea1e"
initrd="/boot/initramfs-5.6.14-300.fc32.x86_64.img"
title="Fedora (5.6.14-300.fc32.x86_64) 32 (Thirty Two)"
id="8d21de11155642cbb01ad934cd09ce38-5.6.14-300.fc32.x86_64"
index=1
kernel="/boot/vmlinuz-0-rescue-8d21de11155642cbb01ad934cd09ce38"
args="ro biosdevname=0 elevator=noop no_timer_check resume=UUID=dff45248-dbd3-4080-9f8a-d44e7ce684d9 net.ifnames=0 rhgb quiet"
root="UUID=9a7f28db-ff73-4245-aac1-a0893e4fea1e"
initrd="/boot/initramfs-0-rescue-8d21de11155642cbb01ad934cd09ce38.img"
title="Fedora (0-rescue-8d21de11155642cbb01ad934cd09ce38) 32 (Thirty Two)"
id="8d21de11155642cbb01ad934cd09ce38-0-rescue"
index=2
kernel="/boot"
args=""
initrd="/boot"
title=""
id="db7261c1495f495394843ac0998a4888-5.6.14"
Entrons ici une valeur appropriée telle que le chemin du noyau. Imitez modérément l'existant
$ grubby --add-kernel="/boot/vmlinuz-5.6.14" --title="Fedora (5.6.14) 32 (Thirty Two)"
Si vous le faites, c'est OK.
$ grubby --info=ALL
index=0
kernel="/boot/vmlinuz-5.6.14-300.fc32.x86_64"
args="ro biosdevname=0 elevator=noop no_timer_check resume=UUID=dff45248-dbd3-4080-9f8a-d44e7ce684d9 net.ifnames=0 rhgb quiet"
root="UUID=9a7f28db-ff73-4245-aac1-a0893e4fea1e"
initrd="/boot/initramfs-5.6.14-300.fc32.x86_64.img"
title="Fedora (5.6.14-300.fc32.x86_64) 32 (Thirty Two)"
id="8d21de11155642cbb01ad934cd09ce38-5.6.14-300.fc32.x86_64"
index=1
kernel="/boot/vmlinuz-0-rescue-8d21de11155642cbb01ad934cd09ce38"
args="ro biosdevname=0 elevator=noop no_timer_check resume=UUID=dff45248-dbd3-4080-9f8a-d44e7ce684d9 net.ifnames=0 rhgb quiet"
root="UUID=9a7f28db-ff73-4245-aac1-a0893e4fea1e"
initrd="/boot/initramfs-0-rescue-8d21de11155642cbb01ad934cd09ce38.img"
title="Fedora (0-rescue-8d21de11155642cbb01ad934cd09ce38) 32 (Thirty Two)"
id="8d21de11155642cbb01ad934cd09ce38-0-rescue"
index=2
kernel="/boot/vmlinuz-5.6.14"
args="ro biosdevname=0 elevator=noop no_timer_check resume=UUID=dff45248-dbd3-4080-9f8a-d44e7ce684d9 net.ifnames=0 rhgb quiet"
root="UUID=9a7f28db-ff73-4245-aac1-a0893e4fea1e"
initrd="/boot/initramfs-5.6.14.img"
title="Fedora (5.6.14) 32 (Thirty Two)"
id="db7261c1495f495394843ac0998a4888-5.6.14.0~custom"
index=3
kernel="/boot"
args=""
initrd="/boot"
title=""
id="db7261c1495f495394843ac0998a4888-5.6.14"
Ajouté à index = 2. Faisons de ce noyau le noyau de démarrage par défaut. La valeur par défaut actuelle est
$ grubby --default-index
3
cette
$ grubby --set-default-index=2
Passez à l'index = 2 que vous venez d'ajouter.
$ grubby --default-index
2
Vous pourriez le changer. finalement
$ grub2-mkconfig
Après avoir reflété les paramètres avec, il est terminé.
Oh, jetons un œil au noyau en cours d'exécution avant la dernière sortie.
$ uname -r
5.6.14-300.fc32.x86_64
redémarrer
$ uname -r
5.6.14
S'il change en, c'est un succès.
Recommended Posts