老僧非是爱花红

导航

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

 

参考链接

 

posted on 2019-10-14 03:36  老僧非是爱花红  阅读(526)  评论(0编辑  收藏  举报