1.bochs源码安装小纪
由于要研究orange‘s要用到bochs的调试功能,但apt-get install的bochs没有这个功能,决定源码安装,本来源码安装就是一些依赖关系会让人头疼点,这时用apt-get install相关的缺失库文件即可,本来没什么好说的,但这个bochs的安装真心很让我不爽,决定好好研究哈源码安装的过程。
以bochs来说吧,参考了官方文档:http://bochs.sourceforge.net/cgi-bin/topper.pl?name=New+Bochs+Documentation&url=http://bochs.sourceforge.net/doc/docbook/user/index.html 把自己的理解说说吧。
源码安装bochs,先用wget 获得最新的bochs源码,关于wget的下载地址获得的一个小tips:http://bbs.chinaunix.net/thread-2295663-1-1.html
然后用tar解压
进入bochs解压后的目录,然后运行./configure --enable-debugger --enable-disasm ./configure这个脚本主要是检查你的os平台中的一些依赖库,并且根据你的选项生成makefile,这部容易出现缺失依赖库而无法生成makefile,这时需要去下载一些库文件解决或在网上搜索解决方法。
./configure脚本生成合适的makefile后运行make,其实最好在运行make之前运行make clean,可以去除一些目标文件,让后面的make运行的更顺畅,make根据makefile的一些依赖关系生成相关目标可执行文件。注:为了更好的管理软件,一般都是将源代码j解压放置在/usr/src目录中,然后运行./configure时加上--prefix=/usr/local/相应的软件目录,举个例子,一般linux的发行版默认的安装路径,以apache为例,有/etc/httpd,/usr/lib,/usr/bin,/usr/share/man,这几个目录分别代表配置文件,函数库,可执行文件,在线帮助文档,而且这几个目录默认在PATH环境变量中,故默认安装就可以直接执行,如果用源码默认在/usr/local/安装,则数据在/usr/local/etc,/usr/local/bin,/usr/local/lib,/usr/local/man这几个目录下,如果设置了自己的软件安装目录,如果不想使用绝对路径,就要修改PATH环境变量了,可以再/etc/profile中添加PATH = ‘$PATH:你要添加的路径’和export PATH两条命令,或直接在bash中运行(重启后失效),这样apache就安装在/usr/local/apache/etc,/usr/local/apache/bin,/usr/local/apache/lib,/usr/local/apache/man这几个目录。
sudo make install将生成的相关文件发在系统中应该在的目录中。
注:由于程序在执行中会用到很多动态链接库,可以用ldd这个命令查看一个可执行二进制文件含有的动态链接库;可以用ldconfig将常用的动态链接库加载如内存,具体内容查看man。
2012-07-16
今天发现编译安装的bochs虽然有调试功能,但却没有运行窗口,弄了半天也不知道原因,后来想了哈,可能是昨天运行./configure时有--with-nogui造成的,于是在googlegroup上问了哈,按照他的编译参数重新编译了一回,成功,貌似主要原因是gtk+-2.0这个包缺失,当时自己解决这个问题按网上的--with-nogui解决的,坑爹啊。
2012-07-17
2.新系统中重新安装bochs的一些小问题
源码安装怎么知道这个软件要依赖那些库??很想知道答案,每次都是上网查,但是每个人都不怎么一样,高手一般怎么解决这个问题的呢?
个人安装过程:
285 sudo tar zxvf /home/rickyzhang/下载/bochs-2.5.1.tar.gz
286 ls
287 cd bochs-2.5.1/
288 ls
289 sudo apt-get install xorg-dev
290 sudo apt-get install libgtk2.0-dev
291 sudo apt-get install libgtk+2.0-dev #这行没用,貌似没这个包
292 ls
293 sudo ./configure --enable-debugger --enable-disasm
294 ls
295 sudo make
296 sudo make install
297 whereis bochs
安装成功后,运行bochs -f bochsrc,出错:
Message: ROM: couldn't open ROM image file '/usr/share/bochs/BIOS-bochs-latest'.
发现是由于路径的原因,修改到正确的路径/usr/local/share/bochs/BIOS-bochs-latest
注:vgabios也有着个问题,但不是路径不对,而是源码安装中没有安装vagbios,用apt-get install vgabios安装即可,键盘列表文件也是和上面一样
注:建议建个软链接,sudo ln -s /usr/local/share/bochs /usr/share/ 这样就在/usr/share/目录下建立了一个链接到/usr/local/share/bochs目录的bochs目录:
rickyzhang@ubuntu:/usr/share$ ls -l | grep bochs
lrwxrwxrwx 1 root root 22 8月 4 14:27 bochs -> /usr/local/share/bochs
2012-07-31