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

3223

被折叠的 条评论
为什么被折叠?



