qemu虛擬機模擬一個riscv linux系統


 


 方法一:

使用buildroot-2020.08.1  全自動

https://buildroot.org/download.html

下載后在ubuntu內解壓,在buildroot-2020.08.1目錄下 

make qemu_riscv64_virt_defconfig

然后

make menuconfig

如果你不懂怎么配置,直接默認。這兩步如果出錯,一般是你的ubuntu有些軟件沒裝。根據提示,直接搜一下error信息就能找到解決方法。

 

然后直接 make

buildroot會自動下載riscv-toolchian、linux kernel source code、qemu、rootfs、opensbi等等,自動編譯,生成各種可執行文件和image文件。

 

編譯結束后,到 buildroot-2020.08.1/output/images

 ./start-qemu.sh

 即可啟動qemu,將首先執行qemu內置的rom,然后執行OpenSBi作為bootloader,之后載linux kernel。登錄名root 密碼默認沒有密碼。

 

 

 方法二:

 

qemu的編譯可以參考

https://www.cnblogs.com/qmjc/articles/12692584.html

不想自己編譯可以去官網下載發布版,編譯好的全家桶,直接用就是了,在windows環境下使用即可。

https://www.qemu.org/download/#windows

 

 

 


 

 

qemu運行整個操作系統需要加載一個操作系統鏡像,就是虛擬機的鏡像,參考了這篇配置qemu

https://wiki.qemu.org/Documentation/Platforms/RISCV

我圖省事兒,用的現成的fedora

https://fedorapeople.org/groups/risc-v/disk-images/

注意,要把全部文件都下載,尤其不要遺漏bbl,這是bbl(bootloader) + Linux kernel一體的。stage4-disk.img是根文件系統,你可以用busybox自己做一個。

 

stage4-disk.img和bbl同文件夾,然后在這個文件夾運行qemu-system-riscv64,命令參數還是看 https://wiki.qemu.org/Documentation/Platforms/RISCV
  qemu-system-riscv64 \
    -nographic \
    -machine virt \
    -smp 4 \
    -m 2G \
    -kernel bbl \
    -object rng-random,filename=/dev/urandom,id=rng0 \
    -device virtio-rng-device,rng=rng0 \
    -append "console=ttyS0 ro root=/dev/vda" \
    -device virtio-blk-device,drive=hd0 \
    -drive file=stage4-disk.img,format=raw,id=hd0 \
    -device virtio-net-device,netdev=usernet \
    -netdev user,id=usernet,hostfwd=tcp::10000-:22
 

 

qemu就跑起來了。

 

windows下的bat腳本: 文件路徑自己改

cd C:\Program Files\qemu

.\qemu-system-riscv64.exe ^
-nographic ^
-machine virt ^
-smp 4 ^
-m 2G ^
-kernel C:\fedora\bbl ^
-append "console=ttyS0 ro root=/dev/vda" ^
-device virtio-blk-device,drive=hd0 ^
-drive file=C:\fedora\stage4-disk.img,format=raw,id=hd0 ^
-device virtio-net-device,netdev=usernet ^
-netdev user,id=usernet,hostfwd=tcp::10000-:22

 

 


 

 

要看剛剛下載readme!!!

https://fedorapeople.org/groups/risc-v/disk-images/readme.txt

 

可以ssh登錄它:

  ssh -p 10000 root@localhost

用戶名 root 密碼 riscv
root@localhost's password: riscv

 

 windows效果,建議用powershell,cmd下字符亂碼:

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM