Ubuntu18.04 configuration d'installation Bochs2.6.9 et compiler et exécuter GeekOS

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 -achè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:
GeekOSExé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

Publié 25 articles originaux · louange 19 won · vues 10000 +

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42605042/article/details/90299638
conseillé
Classement