自動(dòng)搭建openEuler虛擬機(jī)QEMU運(yùn)行環(huán)境

      網(wǎng)友投稿 1220 2022-05-28

      本文介紹了一個(gè)自動(dòng)搭建openEuler虛擬機(jī)QEMU運(yùn)行環(huán)境的腳本使用方法,本腳本能下載并安裝各種依賴項(xiàng),自動(dòng)下載并編譯安裝QEMU 4.1.1和busybox 1.25.1,下載并安裝對(duì)Linux 4.19.1進(jìn)行ARM64交叉編譯并用gdb進(jìn)行調(diào)試的環(huán)境,該環(huán)境能幫助我們理解openEuler內(nèi)核的運(yùn)行,以及下載和QEMU環(huán)境下安裝openEuler 1.0版。本腳本參考了前輩[1]在ARM32位環(huán)境下對(duì)Linux Kernel的交叉編譯腳本,特此感謝!我們修改了QEMU、busybox和Linux kernel的版本和根文件系統(tǒng)搭建的方法,增加了依賴項(xiàng),并將ARM交叉編譯環(huán)境和gdb改為了64位,而且增加了openEuler的相關(guān)內(nèi)容。

      一、openEuler虛擬機(jī)運(yùn)行環(huán)境搭建

      環(huán)境準(zhǔn)備:在VMware 15.1.0或VirtualBox 6.10上搭建Ubuntu 18.04虛擬機(jī),建議分配硬盤(pán)大小120G,內(nèi)存大小2G以上。

      自動(dòng)搭建腳本碼云地址:

      https://gitee.com/luo_yu_zhe/openEulerInstallation

      運(yùn)行腳本之前請(qǐng)手動(dòng)更改下載源為國(guó)內(nèi)源!否則下載較慢,更改源的方式見(jiàn)參考文獻(xiàn)[3]。

      A.?? 腳本運(yùn)行流程

      1.sudo ./prepare.sh

      2.source ~/.bashrc

      3.sudo ./build.sh, 做完這一步ARM64交叉編譯環(huán)境、linux kernel?4.19.1、busybox和QEMU以及依賴項(xiàng)應(yīng)該都裝好了。

      4.sudo ./start-qemu.sh進(jìn)行無(wú)gdb調(diào)試linux kernel 4.19.1 或者sudo./start-qemu-gdb.sh之后另開(kāi)一個(gè)窗口,aarch64-linux-gnu-gdb 進(jìn)入gdb界面,再輸入 target remote localhost:1234進(jìn)入調(diào)試階段,在gdb 窗口輸入c就可以切換到qemu窗口運(yùn)行。

      sudo ./start-qemu.sh后:

      開(kāi)啟gdb運(yùn)行后:

      B.?? Prepare.sh 腳本功能介紹

      該腳本用于下載并解壓64位ARM交叉編譯工具、QEMU-4.1.1和openEuler鏡像,此外,它還會(huì)通過(guò)apt install 安裝依賴項(xiàng)。該腳本會(huì)檢查壓縮包是否存在,若存在不會(huì)重復(fù)下載解壓。

      下載openEuler鏡像:

      下載并解壓交叉編譯gcc,設(shè)置環(huán)境變量:

      安裝依賴項(xiàng):

      下載并安裝QEMU-4.1.1:

      下載QEMU UEFI啟動(dòng)固件并生成img文件,大小可以分配:

      C.??? Build.sh腳本功能介紹

      下載并編譯linux kernel 4.19.1,下載并編譯busybox1.25.1,制作根文件系統(tǒng)。架構(gòu)和版本可以通過(guò)文件開(kāi)頭的參數(shù)進(jìn)行設(shè)置。

      編譯Linux內(nèi)核4.19.1版:

      把編譯好的Image文件copy到目標(biāo)文件夾:

      下載并解壓busybox:

      編譯安裝busybox:

      制作根文件系統(tǒng):

      D.?? qemu啟動(dòng)腳本介紹

      start-qemu.sh:qemu普通啟動(dòng)。

      start-qemu-gdb.sh:帶gdb 啟動(dòng)。

      start-euleros.sh:用qemu啟動(dòng)euleros鏡像。

      采用gdb模式啟動(dòng)的時(shí)候首先運(yùn)行sudo./start-qemu-gdb.sh命令,然后重新啟動(dòng)一個(gè)terminal,運(yùn)行aarch64-linux-gnu-gdb,輸入端口號(hào)然后按c。

      qemu常見(jiàn)選項(xiàng)[2]:

      -hda file、-hdb file、-hdc file和-hdd file。

      把文件當(dāng)成hard disk 0、hard disk 1、hard disk 2和hard disk 3。

      -append cmdline

      將cmdline作為kernel commandline,所謂kernel command line就是在kernel啟動(dòng)的時(shí)候,用cmdline對(duì)內(nèi)核進(jìn)行配置。比如"root=/dev/hda",將/dev/hda設(shè)置成根文件系統(tǒng)。

      -M machine

      選擇模擬的機(jī)器(我們可以輸入-M?提到一個(gè)模擬的機(jī)器列表)

      -fda file/-fdb file

      使用file作為軟盤(pán)鏡像.我們也可以通過(guò)將/dev/fd0作為文件名來(lái)使用主機(jī)軟盤(pán)。

      -cdrom file

      使用文件作為CD-ROM鏡像(但是我們不可以同時(shí)使用'-hdc'和'-cdrom').我們可以通過(guò)使用'/dev/cdrom'作為文件名來(lái)使用主機(jī)的CD-ROM。

      -boot [a|c|d]

      由軟盤(pán)(a),硬盤(pán)(c)或是CD-ROM(d).在默認(rèn)的情況下由硬盤(pán)啟動(dòng).

      -snapshot

      寫(xiě)入臨時(shí)文件而不是寫(xiě)入磁盤(pán)鏡像文件.在這樣的情況下,并沒(méi)有寫(xiě)回我們所使用的磁盤(pán)鏡像文件.然而我們卻可以通過(guò)按下C-a s來(lái)強(qiáng)制寫(xiě)回磁盤(pán)鏡像文件。

      -m megs

      設(shè)置虛擬內(nèi)存尺寸為megs M字節(jié).在默認(rèn)的情況下為128M。

      -smp n

      模擬一個(gè)有n個(gè)CPU的SMP系統(tǒng).為PC機(jī)為目標(biāo),最多可以支持255個(gè)CPU。

      -nographic

      自動(dòng)搭建openEuler虛擬機(jī)QEMU運(yùn)行環(huán)境

      在通常情況下,Qemu使用SDL來(lái)顯示VGA輸出。使用這個(gè)選項(xiàng),我們可以禁止所有的圖形輸出,這樣Qemu只是一個(gè)簡(jiǎn)單的命令行程序。模擬的串口將會(huì)重定向到命令行。所以,我們?nèi)匀豢梢栽赒emu平臺(tái)上使用串口命令來(lái)調(diào)試Linux內(nèi)核。

      二、openEuler 系統(tǒng)安裝說(shuō)明

      運(yùn)行完sudo ./prepare.sh后,運(yùn)行sudo./start_euleros.sh,運(yùn)行該腳本會(huì)執(zhí)行一下命令:

      qemu-system-aarch64 -machine virt -cpucortex-a57 -m 1024 -bios ./QEMU_EFI.fd -cdrom openEuler-1.0-aarch64-dvd.iso-hda ./qemu_Euler.img -serial stdio

      QEMU會(huì)讀入openEuler的鏡像文件然后進(jìn)入安裝流程。選擇安裝openEuler后,選擇安裝模式(選擇test media選項(xiàng)),之后分別配置每個(gè)前面有”[!]”這個(gè)標(biāo)記的選項(xiàng),主要有installation destination, root password和user password 等,注意選擇的時(shí)候是先輸入選項(xiàng)對(duì)應(yīng)的數(shù)字,確定之后按回車(chē),然后再按c(continue)繼續(xù)安裝。以下是一個(gè)選擇的流程,選項(xiàng)前面有[x]代表選中了該選項(xiàng):

      A.選擇 Use text mode 選項(xiàng)

      B.選擇Root password選項(xiàng)并配置

      配置完之后我們可以發(fā)現(xiàn)大部分之前有[!]的選項(xiàng)之前都變成了[x]。

      C.??? 配置安裝目的地

      選擇大小:

      選擇使用空間:

      VMware:

      VirtualBox:

      選擇Partition方式:

      VMware:

      VirtualBox:

      D.?? 配置用戶賬戶,輸入b完成配置

      E.安裝完成

      到這一步需要按一下回車(chē)然后輸入之前設(shè)定的用戶名和密碼才行。

      然后就和linux的操作基本一樣了~有一個(gè)問(wèn)題是每次運(yùn)行都要安裝一次,所以裝好之后最好能保存一個(gè)虛擬機(jī)快照。

      參考文獻(xiàn)

      [1]https://github.com/xianjimli/qemu-arm-linux.git

      [2]https://blog.csdn.net/ustc_dylan/article/details/5385691

      [3]https://blog.csdn.net/qq_35451572/article/details/79516563

      鯤鵬

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:jupyter notebook相關(guān)問(wèn)題
      下一篇:《計(jì)算機(jī)視覺(jué)算法:基于OpenCV的計(jì)算機(jī)應(yīng)用開(kāi)發(fā)》 —2.6 圖像讀寫(xiě)
      相關(guān)文章
      日韩亚洲综合精品国产| 亚洲AV一二三区成人影片| 亚洲精品蜜夜内射| 亚洲精品人成网在线播放影院| 久久久久亚洲AV片无码| 亚洲AV无码成人精品区在线观看 | 亚洲日本乱码在线观看| 中文字幕亚洲一区二区va在线| 亚洲精品无码成人片在线观看| yy6080久久亚洲精品| 国产AV日韩A∨亚洲AV电影| 国产精品亚洲а∨天堂2021| 色婷婷亚洲一区二区三区| 日批日出水久久亚洲精品tv| 亚洲国产精品综合久久一线| 亚洲精品无码久久不卡| 激情97综合亚洲色婷婷五| 亚洲毛片αv无线播放一区| 人人狠狠综合久久亚洲88| 亚洲电影一区二区三区| 一区二区三区亚洲| 亚洲精品午夜久久久伊人| 亚洲一区二区久久| 亚洲精品无码一区二区| MM1313亚洲国产精品| 亚洲国产精品无码久久青草 | 亚洲人AV永久一区二区三区久久| 亚洲人成无码网WWW| 色噜噜亚洲精品中文字幕 | 伊人久久亚洲综合| 亚洲AV无码专区在线播放中文| 亚洲激情在线视频| 亚洲国产综合精品| 亚洲欧美日韩一区二区三区在线| 亚洲av永久无码一区二区三区| 亚洲成片观看四虎永久| 亚洲综合精品香蕉久久网| 亚洲国产综合专区在线电影| 亚洲国产视频一区| 亚洲国产成人久久精品大牛影视 | 亚洲国产精品久久网午夜|