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 -a
comprueba
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:
Ejecutar 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