J'ai essayé d'installer le noyau Linux sur virtualbox + vagrant

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

table des matières

  1. Construisez une machine virtuelle
  2. Téléchargez le noyau Linux
  3. Placez le fichier de configuration (.config)
  4. Construisez le noyau
  5. Installation
  6. Changer le noyau de démarrage par défaut

1. Construisez une machine virtuelle

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échargeons le cas échéant (lancer). C'est une douleur! Si vous installez ** flex, bison, bc, elfutils-libelf-devel, openssl-devel, dwarves **, c'est probablement correct.

2. Téléchargez le noyau Linux

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

3. Placez le fichier de configuration (.config)

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.

4. Construisez le noyau

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 **.

5. Installation

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)

6. Changer le noyau de démarrage par défaut

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

J'ai essayé d'installer le noyau Linux sur virtualbox + vagrant
J'ai essayé Cython sur Ubuntu sur VirtualBox
J'ai essayé d'installer MySQL sur une machine virtuelle Linux sur OCI Compute
Compilation du noyau Linux (Linux 5.x sur Ubuntu 20.04)
J'ai essayé de jouer avec la calculatrice avec tkinter
J'ai essayé Python sur Mac pour la première fois.
J'ai essayé d'exécuter l'application sur la plateforme IoT "Rimotte"
[Linux] J'ai essayé d'utiliser le logiciel de statistiques génétiques PLINK
Installez JDK sur Linux
J'ai essayé la bibliothèque changefinder!
J'ai essayé de réintroduire Linux
Collez le lien sous Linux
J'ai essayé MLflow sur Databricks
Notes sur la construction de TinyEMU et le démarrage du noyau Linux sur Emscripten
J'ai essayé d'exécuter PIFuHD sur Windows pour le moment
Remarques sur la création d'un environnement Linux à l'aide de VirtualBox + Vagrant sous Windows 10
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
J'ai essayé de lancer le cluster ipython au minimum sur AWS
[Démarrage du shell] J'ai essayé d'afficher le shell sur le téléviseur avec un G-cluster à carte Linux bon marché
J'ai essayé de créer un environnement de MkDocs sur Amazon Linux
[Linux] J'ai essayé de résumer les commandes de confirmation des ressources
J'ai essayé le roman Naro API 2
Essayez d'installer OpenAM sur Amazon Linux
J'ai essayé la validation croisée basée sur le résultat de la recherche de grille avec scikit-learn
Essayez le mécanisme de verrouillage du noyau Linux
J'ai essayé le tutoriel TensorFlow 2ème
J'ai essayé de numériser le tampon estampé sur papier en utilisant OpenCV
J'ai essayé d'enregistrer une station sur la plateforme IoT "Rimotte"
J'ai essayé de démarrer avec Bitcoin Systre le week-end
Installez VirtualBox sur CentOS 7 sur VirtualBox (mac + vagrant)
J'ai essayé l'API du roman Naruro
Remarques sur l'installation d'Ubuntu 18.04 sur XPS 15 7590
J'ai essayé de déplacer le ballon
J'ai essayé d'utiliser l'API checkio
J'ai essayé d'estimer la section.
J'ai essayé d'installer Linux sur mon Mac
[Python] J'ai essayé de visualiser la nuit du chemin de fer de la galaxie avec WordCloud!
Touches de karaoké assorties ~ J'ai essayé de le mettre sur Laravel ~ <en route>
[Linux] J'ai essayé de vérifier la méthode de confirmation sécurisée du FQDN (CentOS7)
J'ai essayé de résumer les commandes Linux utilisées par les ingénieurs débutants aujourd'hui - Partie 1-
Tutoriel TensorFlow J'ai essayé MNIST 3rd
Manuel standard Linux (ver3.0.2) J'ai essayé le chapitre 1
J'ai essayé le serveur asynchrone de Django 3.0
J'ai essayé de résumer la commande umask
J'ai créé un utilisateur uniquement SFTP sous Linux.
J'ai essayé tensorflow pour la première fois
J'ai essayé de reconnaître le mot de réveil
Je suis tombé sur l'API Hatena Keyword
Je veux utiliser Linux sur mac
J'ai essayé de résumer la modélisation graphique.
Je suis tombé sur l'installation de la phrase sur ubuntu
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai essayé de toucher l'API COTOHA
Python: j'ai essayé le problème du voyageur de commerce
J'ai essayé de jouer avec l'image avec Pillow