【FreeNOS學習筆記】FreeNOS安裝手冊

筆者操作系統爲Ubuntu16.04,按照官網給的教程結合在網上找到的大家一起踩過的坑,總結出如下安裝手冊。基本思路是在Ubuntu16.04上安裝虛擬機qemu,在虛擬機上跑FreeNOS。

參考博客爲:

官網安裝手冊爲:官網安裝手冊

 

0.安裝scons

scons 是python寫的一個自動化構建工具。因此安裝之前應確保電腦上已經裝了python。Ubuntu16.04自帶python2.7,因此直接執行下面的命令即可。scons只支持到python2,還未支持python3。

sudo apt-get install scons

1.從github下載FreeNOS源碼

git clone https://github.com/nieklinnenbank/FreeNOS

2.按照官網安裝教程安裝qemu。

  • 安裝aptitude 
    sudo apt install aptitude 

     

  • 安裝qemu
    sudo aptitude install build-essential scons python-subversion subversion qemu 
     這裏分別下載build-essential scons python-subversion subversion qemu

3.按照官網教程,接下來進入FreeNOS目錄,使用命令scons iso。在輸出一大段內容之後報錯:

報錯的意思是不支持mov指令,這其實是因爲在64位的Ubuntu上跑32位的qemu導致的指令不兼容問題。參考FreeNOS學習,在Ubuntu16.04的64位計算機上編譯32位彙編文件,在SConstruct中添加編譯選項給出的解決方案

  • 這裏用到了32位的工具包,編譯過程中可能找不到對應文件,因此可以試試使用命令安裝工具包:(兩條指令隨便一條就可以了)
    sudo apt-get install libc6-dev-i386
    sudo apt-get install gcc-multilib g++multilib

     

  • 之後在${FreeNOS_HOME}/SConstruct文件中增加一句build_env.Append(CCFLAGS='-m32 -Wno-cpp -Wno-unused-variable -Wno-sign-compare')即可。具體實現如下:
    build_env = target
    Export('build_env')
    build_env.Append(CCFLAGS='-m32 -Wno-cpp -Wno-unused-variable -Wno-sign-compare')

    在系統中的截圖如下:

之後再執行scons iso,會出現以下問題:grub-mkrescue:warning:Your xorriso doesn’t support ‘—grub2-boot-info’,some features are disabled.這是一個警告,但會導致安裝失敗。因此需要安裝xorriso。這裏參考博客FreeNOS初探索

sudo apt install xorriso

安裝之後再執行scons iso指令,就能夠成功生成build文件夾了。該文件夾裏有boot.iso文件。

 

4.使用quem構建虛擬機

qemu-img create FreeNOS.img 10G

 

5.將鏡像載入虛擬機

qemu-system-x86_64 -m 512 -smp 4 -hda FreeNOS.img -cdrom ../FreeNOS/build/intel/pc/boot.iso -boot dc

4和5參考博客FreeNOS學習筆記,5的指令中,-m分配虛擬內存,單位爲MB,一開始分配4096提示錯誤!因爲我的電腦也才4G內存;-smp分配虛擬硬盤空間,單位爲GB;-hda指定虛擬機文件路徑和文件名;-cdrom指定ios鏡像文件路徑和文件名;(讀者一定要找到自己的鏡像確實放在哪裏。一般來說是在FreeNOS/build/intel/pc/boot.iso,鏡像的位置需要在該指令中做替換)-boot指定從磁盤啓動。執行命令後(成功)打開虛擬機窗口。

踩了好多坑,終於把坑都彙總起來了。液~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章