盒子
盒子
文章目录
  1. 安装环境
  2. 问题及解决办法
  3. 总结

linux下编译运行bochs

记录一下在安装和配置运行bochs的过程中遇见的问题,以及解决办法。

安装环境

  • ubuntu 16.04
  • bochs 2.6.9

问题及解决办法

1.gui/libgui.a(x.o): undefined reference to symbol 'XSetForeground'
解决:控制台下输入sudo apt-get install xorg-dev

2.X11/Xlib.h: No such file or directory
解决:控制台下输入sudo apt-get install libx11-dev

3.>>PANIC<< bochsrc.txt:13: keyboard directive malformed.
解决:在配置文件 bochsrc.txt 中,设置keyboard: keymap=/home/mrsiz/bochs/share/bochs/keymaps/x11-pc-de.map

4.>>PANIC<< bochsrc.txt:17: Bochs is not compiled with gdbstub support
解决:在最开始用.configure生成MakeFile配置文件的时候,如果没有添加gdb远程调试那个选项,但是又在配置文件中开启了远程调试这个功能,就会报这个错,直接注释掉配置文件中的gdbstub那一行

5.连接时出现了没找到引用的情况undefined reference
解决:在MakeFile文件中,修改LIBS = -lX11 -lXtst -lpthread,一般只加这几个需要链接的库就行

6.出现权限问题,比如不能写
解决:这个问题的出现是因为bochs这个文件夹是root级别的,当用普通用户权限运行./bochs的时候,因为权限不够就会造成这个问题,所以只要加上sudo就行。

7.启动盘的创建,在运行bochs的时候,需要有启动盘
解决:执行./bximage,差不多可以一路回车,也可以按照提示做简单的自定义修改

总结

因为上面出现的问题都是我在解决之后,回过头来写的,所以可能在配置bochs过程中还有其他问题,因为忘记了,所以没有记录下来。在看了网上的相关配置之后,差不多是copy加上略微修改得到一份配置文件 bochsrc.txt,放在/bin/目录下,运行./bochs的时候会直接读这个配置文件。内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
megs: 32

romimage: file=/home/mrsiz/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/mrsiz/bochs/share/bochs/VGABIOS-lgpl-latest

boot: disk

log: bochs.out

mouse: enabled=0
keyboard: keymap=/home/mrsiz/bochs/share/bochs/keymaps/x11-pc-de.map

ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14

#gdbstub: enabled=0, port=1234, text_base=0, data_base=0, bass_base=0
ata0-master: type=disk, path="hd60M.img", mode=flat

因为重点是搭建好一个可编译运行linux内核的环境,所以对于在使用bochs中所遇到的问题,采取的方针是:能正常运行就好。

想啥呢
想啥呢