6.828-01:环境准备
Mac下6.828实验环境准备
本文为部署6.828(2017)课程环境的实施记录,记录时间:2019-10-14 03:34:13
系统配置:
项目 | 版本 | 说明 |
macOS | 10.14.4 | 宿主操作系统 |
Virtual Box | 6.0.8 r130520 (Qt5.6.3) | 虚拟机 |
Ubuntu | 18.04(4.15.0-20-generic) | 虚拟操作系统(内核版本) |
gcc | 4.8.5 |
虚拟操作系统gcc版本 |
遇到的几个坑
1 、gcc版本较高时,使用sudo make qemu加载内核执行时可能会报vnc server is runnig,系统无法启动,参考这篇文章,将gcc替换为4.8.5版本后可行。
2、mit提供的qemu和内核代码下载时可能会非常慢,参考多篇博文,测试后,将部分qemu源码和课程内核源码下载方式整理在此:
qemu下载:git clone git://git.qemu-project.org/qemu.git 所参考博文:Lab 1:bootiing a PC
课程官网说针对课程对qemu进行了配置,但经测试,用上面的qemu也能启动内核。后续调试出了问题再看。
内核下载:git clone https://github.com/fatsheepzzq/6.828mit.git 所参考博文:Lab 1:booting a PC
一、qemu安装
1、下载qemu前,参考官网的说明,先安装如下几个包
libsdl1.2-dev, libtool-bin, libglib2.0-dev, libz-dev, libpixman-1-dev.
2、在自定义目录下执行如下命令,下载qemu源码
git clone git://git.qemu-project.org/qemu.git
3、配置qemu编译选项
进入qemu目录,执行 如下命令配置qemu编译选项
./configure --disable-kvm
4、编译&安装qemu
仍在qemu目录下,执行如下命令,睡一觉。
make && make install
二、下载内核源码
1、执行如下命令,下载内核源码
git clone https://github.com/fatsheepzzq/6.828mit.git
2、切换gcc版本
参考MIT 6.828 2017版本环境配置,下载低版本gcc并切换至低版本gcc
sudo apt-get install gcc-4.8 gcc-4.8-multilib cd /usr/bin sudo mv gcc gcc.bak sudo ln -s gcc-4.8 gcc
三、测试
1、切换到内核源码目录的lib目录下,执行如下命令,开始编译内核并启动qemu加载内核,如果输出类似3-1所示信息,则说明以上环境配置过程无误。
make qemu
3-1 "make qemu"输出界面
错误处理
1、如果执行make qemu启动内核时输出:VNC server is running on 127.0.0.1:XXXX,无法顺利启动。尝试如下所示方法:
- 确认gcc是否切换到低版本
- 确认是否成功安装下列包:libsdl1.2-dev, libtool-bin, libglib2.0-dev, libz-dev, and libpixman-1-dev,必要时重装,然后重新编译qemu
2、编译qemu过程中,发现虚拟磁盘被占满,导致Ubuntu系统无法重新启动,解决过程如下所示:
- Mac OS X下VirtualBox如何对硬盘进行扩容,参考这篇博文,对虚拟硬盘进行扩容
- 以高级选项模式启动Ubuntu,在qemu目录执行如下命令,删除编译qemu过程中产生的*.o *.d文件,释放空间。
find . -name "*.[od]" -exec rm -rf {} \;
- 以正常模式启动系统,参考Gparted工具安装,安装gparted工具
- 启动gparted,使用resize功能,将第一步中扩展出来的空间分配给当前分区
- 重新启动,再次编译qemu
参考链接
- Lab 1: Booting a PC
- Mac OS X下VirtualBox如何对硬盘进行扩容
- Linux或Ubuntu中查看磁盘空间大小的10个df命令
- 在Ubuntu上使用恢复模式及Recovery Mode各选项的使用方法
- linux的一个find命令配合rm删除某天前的文件方法
- qemu VNC server running on 127.0.0.1:5901(ubuntu为例)
- MIT-6.828
- Tools Used in 6.828