1. 程式人生 > >xv6 + Qemu 在Ubuntu下編譯運行教程【轉】

xv6 + Qemu 在Ubuntu下編譯運行教程【轉】

x86_64 mpi 出現 system 兩種方法 開發 n-1 不出 soft

轉自:https://blog.csdn.net/yinglang19941010/article/details/49310111

如果想要離線看教程,可以下載該 文檔

一、使用工具說明

1. xv6 源代碼文件(以下三選一)

1)http://download.csdn.net/detail/yinglang19941010/9201421 (我使用的是這個,怕出錯的同學可以下這個)

2)https://github.com/yinglang/Xv6 或

3)http://zoo.cs.yale.edu/classes/cs422/2011/lec/l2-hw

2. Qemu 源代碼下載(可以選擇不下,要下的話二選一)

1)http://download.csdn.net/detail/yinglang19941010/9201427(我是用的是這個,怕出錯的同學可以下這個)

2)http://wiki.qemu.org/Download 我選擇的是qemu-2.4.0.1.tar.gz

3. VMware10.0+ linux 編譯環境:(也可以不選擇裝虛擬機)

我是用的是ubuntukylin-14.04-desktop-i386,應該其他版本的也可以。

但建議選32bit的Ubuntu。

4. 聯網(這個是必須,建議在編譯前測試一下能不能聯網)。

二、 xv6 編譯

1. 解壓xv6-master 和 qemu-2.4.0.1.tar.bz2 ,可以使用命令解壓,也可用Ubuntukylin提供的可視化解壓軟件(雙擊壓縮包就能打開)

選擇extract

2. hui@ubuntu:~/Desktop/xv6$cd Xv6-master

3. hui@ubuntu:~/Desktop/xv6/Xv6-master$make

出現如下結果表示編譯成功

三、編譯安裝qemu

安裝qemu有兩種方法:(二選一即可)

方法一 : 使用apt-get 安裝,不需要下載qemu源代碼,較為簡單,幾乎不出錯。

方法二 : 使用源代碼進行編譯,要先下載源代碼,難度較大,出錯率高。

下面對兩種方法的操作進行詳細說明:

方法一 :(不手動表編譯,直接利用apt安裝運行)

1. hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$sudo apt-get install qemu

如果出現以下錯誤

說明可用於linux下載的apt的包列表很久沒有更新了,使用

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$ sudo apt-get update

如果出現了failed to fetch的錯誤提示,說明apt-get的網站訪問不到了。

32bit Ubuntu可以使用 該32bitsource.list 替換掉/etc/apt/sources.list

64bit Ubuntu可以使用 該64bitsource.list 替換掉/etc/apt/sources.list

(註意要用root權限

sudo mv ./sources.list /etc/apt/sources.list

下面這幾步可以對文件 解鎖(lock),最好用一下

cd /etc/apt/sources.list

sudo mv ./sources.list ./source.list

sudo mv ./source.list ./sources.list

)。該文件的網站在2015內應是可以訪問的

如果提示如下,則更新成功

這是再輸入

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$sudo apt-get install qemu

2. hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$qemu-system-i386

如果彈出qemu的虛擬機,則證明虛擬機qemu安裝成功(由於沒有裝xv6所以QEMU提示Boot failed)

方法二:(手動編譯源碼運行, 如果已經使用了方法一,這步可跳過)

1. 解壓

2. cd ../qemu-2.4.0.1

3. ./configure --disable-kvm --target-list="i386-softmmux86_64-softmmu"

報錯如下:

解決:

1) 第一個是警告,提示沒有c++編譯器,c++部分的代碼將無法編譯

解決是安裝g++編譯器,註意這個雖然是警告,但是如果不裝的話,後面會報錯,敲入命令

sudo apt-get install g++

2) 第二個是錯誤,沒有zlib包

解決是安裝zlib

先查找zlib

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$ sudo apt-cache search zlib

紅圈中圈出的是我認為可能的package(要問我為什麽,首先名字很像,其次他們是library,而編譯報錯很多時候都是缺少lib)

最後發現是zlib1g-dev (dev表示development開發包,很多時候編譯報錯都是要裝這種package),還有就是猜的:) )

在命令行中敲入以下命令安裝:

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$sudo apt-get install zlib1g-dev

4. 在命令行中再次敲入

./configure --disable-kvm--target-list="i386-softmmu x86_64-softmmu"

如果報錯

同樣先搜索

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$sudo apt-cache search glib

同樣有依據的猜到了是libglib2.0-dev,敲入命令安裝

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$sudo apt-get install libglib2.0-dev

5. 最後再敲一次

./configure --disable-kvm --target-list="i386-softmmux86_64-softmmu"

以上提示表示該命令成功(因為我還沒有裝g++,所以c++ compiler是空,這樣後面是會報錯的)

6. 配置完成後,敲入

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$ make&& make install

如果發現報錯

沒有autoreconf,安裝autoreconf

先查找

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$ sudo apt-cache search autoreconf

這兩個都裝上,敲入命令安裝

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$ sudo apt-get install dh-autoreconf

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$ sudo apt-get install autoconf2.13

再次輸入

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$ make&& make install

如果還報錯


這很可能是沒有裝過g++ 而進行的編譯,敲入

sudo apt-get install g++

再重新編譯,刪除qemu-2.4.0.1,重新解壓,重啟命令行,輸入

./configure --disable-kvm --target-list="i386-softmmux86_64-softmmu"

make&& make install

一般到這一步就行了

7. hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$qemu-system-i386

如果彈出qemu的虛擬機,則證明虛擬機qemu安裝成功(由於沒有裝xv6所以QEMU提示Boot failed

四、運行xv6

切換到xv6源代碼的目錄

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$cd ../Xv6-master

hui@ubuntu:~/Desktop/xv6/Xv6-master$make qemu

發現報錯如下:

原因:這是因為在make(編譯)的時候變量QEMu沒有指定,我們來手動指定QEMU的位置。

解決:首先找到目錄Xv6-master(源代碼)下的文件MakeFile (這個文件可以看成是linux下對工程源碼進行編譯的配置文件,

類似於windows下Visual Studio的.sln之類的文件)

修改紅圈中的內容為

再次

hui@ubuntu:~/Desktop/xv6/Xv6-master$make qemu

運行成功

輸入ls 可以參見裏面的所有命令文件,輸入命令測試看看吧

五、總結

其實如果環境lib都裝了的話,也就以下幾個命令

編譯xv6

hui@ubuntu:~/Desktop/xv6$ cd Xv6-master

hui@ubuntu:~/Desktop/xv6/Xv6-master$ make

編譯安裝qemu

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$ sudo apt-get install qemu

或者

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$ cd ../qemu-2.4.0.1

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$./configure --disable-kvm--target-list="i386-softmmu x86_64-softmmu"

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$ make&& make install

運行xv6

hui@ubuntu:~/Desktop/xv6/qemu-2.4.0.1$ cd ../Xv6-master

hui@ubuntu:~/Desktop/xv6/Xv6-master$ make qemu

六、參考資料:

http://zoo.cs.yale.edu/classes/cs422/2011/lec/l2-hw

https://pdos.csail.mit.edu/6.828/2012/xv6.html
---------------------
作者:吃熊的魚
來源:CSDN
原文:https://blog.csdn.net/yinglang19941010/article/details/49310111
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

xv6 + Qemu 在Ubuntu下編譯運行教程【轉】