Ubuntu18.04 configuration d'installation Bochs2.6.9 et compiler et exécuter GeekOS
Installation Bochs2.6.9
Télécharger Bochs2.6.9
Saisissez l' adresse de téléchargement
télécharger Find bochs-2.6.9.tar.gz et économisez
Décompression bochs-2.6.9.tar.gz
Peut utiliser la commande pour extraire,
sudo tar zxvf bochs-2.6.9.tar.gz
bouton droit de la souris peut également sélectionner directement le « extrait ici à »
installation Bochs
répertoire Bochs-2.6.9 entrer dans
la borne d'entrée de commande suivante
sudo ./configure --enable-debugger --enable-disasm
sudo make
sudo make install
Après être entré dans la première ligne, il peut être erreur:
ERREUR: l'interface graphique a été le sélectionné le X-Windows, le X-Windows , mais les bibliothèques ne sont pas trouvés.
Cette fois -ci vous devez entrer dans un terminal:
sudo apt-get install libx11-dev xserver-xorg-dev xorg-dev
Entrée après l'achèvement de la deuxième rangée et la troisième rangée
Plus merveilleuse erreur et les solutions que vous pouvez vous référer à ces deux blog:
https://blog.csdn.net/geeker_12/article/details/11409009
https://blog.csdn.net/aurorayqz/article/details/ 80310954
Démarrer Bochs
Bochs départ borne d'entrée directement
et l'erreur suivante peut se produire:
les Bochs avec sortie IS Le message suivant:
[] .bochsrc: 187: ensemble CPU à malformée directive.
La description est un problème de configuration cpu
puis entrez dans un terminal:
bochs -help cpu
会出现:
modèles de CPU pris en charge:
bx_generic
pentium
pentium_mmx
amd_k6_2_chomper
p2_klamath
p3_katmai
p4_willamette
core_duo_t2400_yonah
atom_n270
Ensuite, la borne d'entrée sudo gedit .bochsrc
Vous serez sans doute trouvé dans la ligne 187 cpu: modèle =
Le cpu: modèle = une section arrière modifié pour plus de soutien dans les modèles de cpu
(plutôt que les commentaires de la recommandation initiale supprimer l'original)
Par exemple:
CPU: Modèle = bx_generic
Enregistrer et sortie
réexécuter bochs
Et l' erreur peut se produire:
Bochs est pas compilé avec le support du son lowlevel
Une borne d'entrée
sudo gedit .bochsrc
Probablement dans la ligne 915, commentez le fichier son :. pilote = défaut, WaveOut = / dev / dsp WaveIn =, midiout =
Encore une fois réexécuter bochs
succès! ! !
Bochs Configuration
Lorsque nous sommes entrés dans le terminal Bochs,
Bochs se trouveront de fichiers que les fichiers de configuration par défaut dans l'ordre du répertoire courant:
.bochsrc
bochsrc
bochsrc.txt
bochsrc.bxrc (valable uniquement pour Windows)
Nous pouvons créer un fichier nommé bochsrc de leur propre, nous voulons préciser la configuration de la machine virtuelle Bochs
Une borne d'entrée
sudo gedit bochsrc
Coller les éléments suivants (modifié en fonction de leurs propres besoins, faire attention ici pour assurer ROMIMAGE et vgaromimage ces deux chemins est correct, sinon il vous sera demandé au démarrage de la machine virtuelle n'a pas pu ouvrir fichier image ROM erreurs):
#################################################################
# Bochs的配置文件
# Configuration file for Bochs
#################################################################
# how much memory the emulated machine will have
megs: 32
# filenameof ROM images
romimage:file=/usr/local/share/bochs/BIOS-bochs-latest
vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest
# which disk image will be used 这个是启动软盘
floppya:1_44=a.img, status=inserted
#后面我们会在运行GeekOS时将它改成fd.img
# choose the boot disk 确定启动方式
boot: floppy
# where do we send log messages?
log: bochsout.txt
# disable the mouse
mouse: enabled=0
# enable key mapping ,using US layout as default
keyboard:keymap=/usr/local/share/bochs/keymaps/x11-pc-us.map
Enregistrer et sortie
Bochs en utilisant les GeekOS compilées d'installation et d'exploitation
Les éléments suivants génèrent leur propre disquette, si seulement pour exécuter GeekOS cette étape peut être sautée:
(entrez dans un terminal: sudo bximage
entrée séquentiellement:
1
fd
puis appuyez sur la touche Entrée a été générée a.img de disquette)
Téléchargez et installez nasm GeekOS
L' installation doit payer nasm spéciale attention installé une version peu plus, comme 2.08.02 version la plus récente d' une opération ultérieure génère une erreur,
tout d'abord télécharger, sélectionnez nasm-2.08.02.tar.gz , télécharger et enregistrer
dans le nasm-2,08 après décompression .02 répertoire
tour entrez la commande suivante:
./configure
sudo make
sudo make install
Dans une nasm borne d'entrée -version
se trouve à 2.08.02
Télécharger GeekOS
directement à GeekOS Télécharger
Une fois téléchargé Décompressez
Compile GeekOS
Entrez le répertoire d' cd geekos-0.3.0/src/project0/build
entrée de terminal
sudo make depend
sudo make
Etant donné, il y a une ligne apparaît: CC1: Tous les avertissements sont traités comme des erreurs
Makefile lorsqu'elles sont considérées comme un guérira les avertissements en erreurs
Donc, nous ouvrons le Makefile dans le répertoire courant,
sudo gedit Makefile
Trouver -Werror 149 ligne:
CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror
Modifié comme suit:
CC_GENERAL_OPTS := $(GENERAL_OPTS)
Enregistrer et quitter, faire de la commande sudo
[Quand je tente d'oublier d'installer nasm, conduisant à apparaître ici Makefile: 177: recette pour cible « geekos / lowlevel.o » échec
peut installer rapidement nasm, souvenez - vous d'installer la version 2.08.02, apparemment toutes les dernières non pris en charge]
faire Sudo à nouveau
apparu
sur « __stack_chk_fail » référence non définie
La solution est en ligne 148 Makefile GENERAL_OPTS: = O -Wall $ (EXTRA_C_OPTS ) l' option compilateur add derrière
-fno-stack-protector
Ensuite, les Makefile 100 lignes à 109 lignes pour les modifications suivantes
100 TARGET_CC := $(TARGET_CC_PREFIX)gcc -m32
101
102 # Host C compiler. This is used to compile programs to execute on
103 # the host platform, not the target (x86) platform. On x86/ELF
104 # systems, such as Linux and FreeBSD, it can generally be the same
105 # as the target C compiler.
106 HOST_CC := gcc -m32
107
108 # Target linker. GNU ld is probably to only one that will work.
109 TARGET_LD := $(TARGET_CC_PREFIX)ld -m elf_i386
ensuite
sudo make clean
sudo make depend
sudo make
Il y aura des
chats geekos / fd_boot.bin geekos / setup.bin geekos
/ kernel.bin> fd.img établit avec succès
Dans la borne d' entrée ls -a
chèques
trouvés fd.img et .bochsrc
Les profils créés avant cette date pour modifier notre bochsrc la disquette est fd.img
Resaisissez le bochs exécuter
sera toujours une erreur
car la valeur par défaut .bochsrc et .bochsrc ici est assez vieux, essentiellement sans valeur.
Nous avons donc ré-entrer dans le terminal
bochs -f /home/shane/bochs-2.6.9/bochsrc
C'est derrière Bochs , plus -f 刚刚创建和修改的配置文件bochsrc的绝对路径
entrée 6 pour démarrer la machine virtuelle de débogage ,
vous trouverez qu'il ya un écran noir, ce retour de temps à la borne d' entrée c, puis appuyez sur Entrée
apparaîtra l'interface suivante:
Exécuter un succès! ! !
[Encore une fois, s'il y a
Failed affirmation dans Init_IDT: g_handlerSizeNoErr == g_handlerSizeErr
parce que la version nasm est trop de nouveaux problèmes ne peuvent réinstaller 2.08.02 à nouveau commencer à travailler plus]
Parce qu'elle était occupée au moment de cette tâche de résoudre le problème le plus rapidement possible, donc ce blog avec des images peu, ne laissant que le résultat final de graphique réussi, mais si vous suivez les étapes ci-dessus, il devrait y avoir aucun problème.
Référence partie au blog suivant:
https://111qqz.com/2016/06/geekok-project0/ (ce blog utile!)
Https://blog.csdn.net/ByChen623/article/details/53619084# commentBox