Ubuntu18.04 de configuración de instalación Bochs2.6.9 y compilar y ejecutar GeekOS

Ubuntu18.04 de configuración de instalación Bochs2.6.9 y compilar y ejecutar GeekOS

Bochs2.6.9 instalación

Descargar Bochs2.6.9

Introduzca la dirección de descarga
descarga Find bochs-2.6.9.tar.gz y guardar

Descompresión bochs-2.6.9.tar.gz

Puede utilizar el comando para extraer,

sudo tar zxvf bochs-2.6.9.tar.gz

botón derecho del ratón también puede seleccionar directamente el "extracto hasta aquí"

Bochs instalación

Bochs-2.6.9 directorio de entrar en
el siguiente terminal de entrada de comandos

sudo ./configure --enable-debugger --enable-disasm
sudo make
sudo make install

Después de entrar en la primera línea, que puede ser error:
ERROR: la GUI fue el seleccionado los X-Windows, el X-Windows, pero las bibliotecas no se encontraron.
Así que esta vez habrá que introducir en un terminal:

sudo apt-get install libx11-dev xserver-xorg-dev xorg-dev

De entrada después de la finalización de la segunda fila y la tercera fila

Más maravilloso de error y soluciones puede hacer referencia a estos dos blog:
https://blog.csdn.net/geeker_12/article/details/11409009
https://blog.csdn.net/aurorayqz/article/details/ 80310954

inicio Bochs

Bochs comienzan terminal de entrada directamente
y pueden producir el error siguiente:
los Bochs con está saliendo el mensaje que el siguiente:
[] .bochsrc: 187: CPU conjunto con la Directiva de formato incorrecto.

La descripción es problema de configuración de la CPU
a continuación, introduzca en un terminal:

bochs -help cpu

会出现:
modelos de CPU soportados:
bx_generic
pentium
pentium_mmx
amd_k6_2_chomper
p2_klamath
p3_katmai
p4_willamette
core_duo_t2400_yonah
atom_n270

A continuación, el terminal de entrada sudo gedit .bochsrc

Es probable que se encontró en la línea 187 de la CPU: modelo =

La CPU: Modelo = una sección trasera modificada para obtener más apoyo en los modelos de CPU
(en lugar de los comentarios originales de recomendación eliminar el original)

Por ejemplo:
CPU: Modelo = bx_generic

Guardar y salida
bochs volver a ejecutar

Y puede producirse un error:
Bochs no se compila con bajo nivel de sonido Soporte

Un terminal de entrada

sudo gedit .bochsrc

Es probable que en la línea 915, comente el archivo de sonido :. Driver = por defecto, WaveOut = / dev / dsp WaveIn =, = midiout

Una vez más volver a ejecutar bochs
éxito! ! !

Configuración bochs

Cuando entramos en los terminales bochs,
Bochs se encontrarán después de que los archivos de configuración predeterminados en el orden directorio actual:
.bochsrc
bochsrc
bochsrc.txt
bochsrc.bxrc (válido solo para Windows)

Podemos crear un archivo llamado bochsrc propia, queremos especificar la configuración de la máquina virtual Bochs

Un terminal de entrada

sudo gedit bochsrc

Pega el siguiente (modificado de acuerdo con sus propias necesidades, prestar atención para garantizar romimage y vgaromimage estos dos caminos es correcta, de lo contrario se le pedirá cuando la máquina virtual se inicia no podía ROM abierta de archivo de imagen errores):

#################################################################
# 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

Guardar y salir

Bochs elaborados utilizando los GeekOS de instalación y operación

El siguiente están generando su propio disco flexible, aunque sólo para el funcionamiento de GeekOS este paso puede ser omitido:
(introducir en un terminal: sudo bximage
entrada secuencialmente:
1
fd
continuación, pulse la tecla Intro se ha generado a.img disquete)

Descargar e instalar GeekOS nasm

La instalación debe prestar especial atención nasm instalada una versión poco mayores, como por ejemplo 2.08.02 versión, el último de una posterior operación generará un error,
en primer lugar para descarga, seleccione nasm-2.08.02.tar.gz , descargar y guardar
en el nasm-2,08 después de la descompresión 0,02 directorio
a su vez, introduzca el siguiente comando:

./configure
sudo make
sudo make install

En -version todavía nasm terminal de entrada
se puede encontrar a 2.08.02

Descarga GeekOS
directamente a GeekOS descarga
Una vez descargado descomprimir

Compilar GeekOS

Introduzca el directorio cd geekos-0.3.0/src/project0/build
de entrada del terminal

sudo make depend
sudo make

Siendo dado, hay una línea aparece: CC1: Todas las advertencias ser tratados como errores
Makefile cuando se ve como toda una marca los errores advertencias

Así que abrimos el Makefile en el directorio actual,

sudo gedit Makefile

Encuentra -Werror 149 línea:

CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror 

Modificado de la siguiente manera:

CC_GENERAL_OPTS := $(GENERAL_OPTS)

Guardar y salir, sudo make de nuevo

[La primera vez que intento olvidar instalar nasm, lo que lleva a aparecer aquí Makefile: 177: receta para el objetivo ' geekos / lowlevel.o' no
se puede instalar rápidamente nasm, recuerde instalar la versión 2.08.02, aparentemente de las últimas no soportado]

Sudo make de nuevo
apareció
en '__stack_chk_fail' indefinido referencia

La solución está en la línea 148 del archivo Makefile GENERAL_OPTS: = -O -Wall $ (EXTRA_C_OPTS ) add compilador opción detrás

-fno-stack-protector

Entonces los Makefile 100 líneas a 109 líneas para las siguientes modificaciones

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

entonces

sudo make clean
sudo make depend
sudo make

Habrá
geekos gato / fd_boot.bin geekos / setup.bin geekos
/ kernel.bin> fd.img compilará con éxito

En la entrada del terminal ls -acomprueba
encontraron fd.img y .bochsrc

Los perfiles creados antes de este tiempo para modificar nuestra bochsrc el disquete está fd.img
volver a entrar bochs correr
todavía será un error
debido a que el .bochsrc por defecto, y .bochsrc aquí es bastante antiguo, básicamente sin valor.

Así que volver a introducir los terminales

bochs -f /home/shane/bochs-2.6.9/bochsrc

Que está detrás de bochs más -f 刚刚创建和修改的配置文件bochsrc的绝对路径
de entrada 6 para iniciar la máquina virtual de depuración
se dará cuenta de que hay una pantalla en negro, esta vez de vuelta a la entrada C terminal, luego Enter
aparecerá la siguiente interfaz:
GeekOSEjecutar un éxito! ! !

[De nuevo, si existe
Error afirmación en Init_IDT: g_handlerSizeNoErr == g_handlerSizeErr
porque la versión nasm es demasiado nuevos problemas sólo pueden volver a instalar de nuevo 2.08.02 comienzan a trabajar más]

Porque estaba ocupada en el momento de esta tarea a resolver el problema tan pronto como sea posible, por lo que este blog con fotos poco, dejando sólo el resultado final del éxito de gráfico, pero si usted sigue los pasos anteriores, debería haber ningún problema.

Parte referencia a la siguiente blog:
https://111qqz.com/2016/06/geekok-project0/ (este blog útil!)
Https://blog.csdn.net/ByChen623/article/details/53619084# de Comentario

Publicado 25 artículos originales · ganado elogios 19 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_42605042/article/details/90299638
Recomendado
Clasificación