亞寵展、全球?qū)櫸锂a(chǎn)業(yè)風(fēng)向標(biāo)——亞洲寵物展覽會(huì)深度解析
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
在通常情況下,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)容。