xv6 + Qemu 在Ubuntu下編譯運行教程【轉】
轉自: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下編譯運行教程【轉】