zoukankan      html  css  js  c++  java
  • xv6实验环境搭建

    安装bochs

    因为要运行的是xv6,所以不能直接使用 apt-get 直接获取软件。apt-get获取到的软件不支持SMP (Symmetric Multi-Processing)。因此,需要下载源码自己编译(源代码下载地址在下载页面的底部Download SVN Snapshot )

    需要预先安装的软件(参考 )

    	sudo apt-get install g++
    	sudo apt-get install libc6-dev
    	sudo apt-get install build-essential
    	sudo apt-get install xorg-dev
    	sudo apt-get install libgtk2.0-dev
    

    配置编绎选项(参考 )

    	./configure --enable-smp  --enable-debugger --enable-disasm --enable-vmx=2 --enable-configurable-msrs --enable-x86-64 --enable-a20-pin --enable-acpi --enable-pci
    

    这里x86-64似乎是必须的,而不是在64位机器上才需要。 配置选项说明

    配置完成后就可以进行编译安装了。

    	make
    	sudo make install
    
    

    遇到的问题:

    1. 	/usr/bin/ld: gui/libgui.a(gtk_enh_dbg_osdep.o): undefined reference to symbol 'pthread_create@@GLIBC_2.1'
      
      解决办法:参考这个博客中的第二个方法 在Makefile.in中187行
      	$(MCH_LINK_FLAGS) 
      	$(SIMX86_LINK_FLAGS) 
      	$(READLINE_LIB) 
      	$(EXTRA_LINK_OPTS) 
      	$(LIBS)
      
      在最后$(LIBS)后面加上 -lpthread如下:
      	$(MCH_LINK_FLAGS) 
      	$(SIMX86_LINK_FLAGS) 
      	$(READLINE_LIB) 
      	$(EXTRA_LINK_OPTS) 
      	$(LIBS)
      	-lpthread
      
      即可编译通过。
    2. 	致命错误: gtk/gtk.h:没有那个文件或目录
      
      安装过预编译软件后需要重新运行configure命令。

    xv6编绎

    make 然后运行 make bochs 或 make qemu即可(看是安装的什么模拟器) 如果出现任何奇怪的问题,建议重新下载最新版源码(git clone git://pdos.csail.mit.edu/xv6/xv6.git )

    遇到的问题

    1. 	mkfs: mkfs.c malloc: Assertion used < 512 failed.
      
      	redefinition of struct stat
      
      xv6下载最新源码
    2. 	>>PANIC<< numerical parameter 'n_processors' was set to 2, which is out of range 1 to 1
      
      bochs下载源码自己编绎,不要用apt-get。
    3. 	vga_update_interval' is deprecated - use 'vga' option instead.
      
      由于下载的bochs更新,所以导致一些旧选项不兼容。可以修改成相应的选项。在文件 dot-bochsrc 497行,把
      	vga_update_interval: 300000
      
      改为
      	vga:update_freq=10

    配了半天,以为已经成功了,但是在运行起来以后,发现,还是没有办法引导成功。之前一直想把boch配起来,是以为boch才方便调试。然后,再去试一下qemu,发现,用gdb调试,也不是很麻烦。果断放弃了折腾。还是把这个过程,记录下来,以供需要的人参考。

  • 相关阅读:
    两个时间相差多少
    JqGrid中文文档
    将A标签的href用iframe打开(JS)
    GridView 自动生成列 没有整理.
    母板页引用JS的办法
    js 判断 文本框是否被全选 ..
    jQuery 调用 Web Services 。。
    WINDOWS 7 + VS2008 +MSSQL 2005 安装成功!
    C# Serializable 的示例
    Microsoft.Crm.WebServices.Crm2007.MultipleOrganizationSoapHeaderAuthenticationProvider, Microsoft.Crm.WebServices, Versi
  • 原文地址:https://www.cnblogs.com/Sisyphean/p/xv6_bochs.html
Copyright © 2011-2022 走看看