xv6环境搭建

本文档详细记录了在Ubuntu 20.04上搭建MIT6.828Lab(2018)xv6实验环境的过程,包括安装Git、获取源码、安装依赖、配置QEMU以及解决遇到的图形界面错误。在安装过程中,特别提到了使用图形界面进行QEMU操作的必要性,以及在安装Python2.7后解决gnome-terminal不能用的问题。此外,还提到了在实验过程中遇到的`make grade`错误及其解决方法。

MIT6.828Lab(2018)实验环境搭建

1.前言

外行小白,记录xv6实验环境搭建过程中的问题
虚拟机:Oracle VM VirtualBox6.1
操作系统:Ubuntun20.04

2.安装

  • 注意在图形界面下进行操作而不是命令行界面(进入qemu时需要图形界面)
  • 使用一般用户即可
    1.$mkdir ~/6.828
    2.$cd ~/6.828
    3.$sudo apt-get install git安装git,这一步你可以直接输入git来查看系统是否已安装git,如果没有按照返回信息进行安装即可,有则直接跳过
    4.$git clone https://pdos.csail.mit.edu/6.828/2018/jos.git lab将JOS源码拉入新建文件夹lab中
    这一步如果出错了可以直接重来,基本是网络问题
    5.$cd lab
    6.安装必要的包
sudo apt-get install libsdl1.2-dev
sudo apt-get install libglib2.0-dev
sudo apt-get install libz-dev
sudo apt-get install libpixman-1-dev
sudo apt-get install libtool*

按顺序装,如果出现某一个包没有安装不用管也行,把可以安装的全部安上就好
7.$git clone https://github.com/mit-pdos/6.828-qemu.git qemu将qemu拉入新建文件夹qemu中,同样出错了直接重来这一步就好(网络问题)
8.$cd qemu
9.$./configure --disable-kvm --disable-werror --target-list="i386-softmmu x86_64-softmmu"配置QEMU
这次我遇到了ERROR: Python not found. Use --python=/path/to/python,当时我安装配置了python3.6也不行,后来安装配置python2.7,使用--python=python2.7可解决

python2.7安装
cd ~/6.828
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
./configure --prefix=/usr/local/python-2.7.9
make
make install
ln -s /usr/local/python-2.7.9/bin/python /usr/bin/python2.7.9
cd ~/6.828/lab/qemu

10.打开~/6.828/lab/qemu/qga/commands-posix.c,在声明中加入#include <sys/sysmacros.h>如果跳过这一步直接进行$make会出现Error: undefine....

11.$ sudo apt-get install gcc-multilib安装32位gcc(系统自带的是64位gcc),在后续lab/下的make时需要32位gcc,否则会报错,如下:

lib/printfmt.c:41: undefined reference to `__udivdi3'
lib/printfmt.c:49: undefined reference to `__umoddi3'

12.$sudo make && make install
13.$ qemu-system-i386
14.$ cd ..
15.$ sudo make出现kernel.img即成功
16.$ sudo make qemu出现QEMU且看到最后一行命令行K>_即为成功

3.图形界面错误

在安装的第9步中,如果升级了python3,比如我自己的python3.7,并且配置完成了,可能会出现gnome-terminal不能用的情况,这时在后面第12步中会出现Could not initialize SDL(No available video device) - exiting,同时图形化界面(F1)中的终端不能使用,以下是解决该问题的记录:

1.进入tty3,登入root,$gnome-terminal,报错:

Traceback (most recent call last):
  File "/usr/bin/gnome-terminal", line 9, in <module>
    from gi.repository import GLib, Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    from . import _gi
ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import) (/usr/lib/python3/dist-packages/gi/__init__.py)

2.使用一系列方法未成功,决定卸载python3.7(这一步效果存疑),然后继续$gnome-terminal,报错:bash: /usr/bin/gnome-terminal: /usr/bin/python3 :bad interpreter:No such file or directory
3.安装教程重新进行了软连接

sudo rm -rf /usr/bin/python3
ln -s /usr/bin/python3.10 /usr/bin/python3

继续运行$gnome-terminal,报错:failed to parse arguments cannot open display
4.$reboot启动后重新$gnome-terminal,正常运行

此外,实际上,如果gnome-terminal无法使用了,在命令行界面输入$startx进入另一个图形化界面,在这个界面中继续$make install也是一个不错的选择

=====================================
补充
make grade错误:
在这里插入图片描述
解决方法

sudo ln -s /usr/bin/python3 /usr/bin/python

结果图:
在这里插入图片描述

参考链接:
整体实验环境搭建
QEMU配置报错
python2.7下载
python错误(软链接)
make grade python错误

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值