跳到主要內容

QEMU安裝與測試-ARM篇

QEMU安裝與測試-ARM篇

以下都是在 WSL(Windows Subsystem for Linux) 第2版(WSL 2)環境下用 Ubuntu 24.04 測試的:

qemu-system-arm --version

上面的指令顯示 QEMU ARM 模擬器的版本,以下都是用 8.2.2 版測試的,如果系統裡面內沒有安裝 QEMU ARM 模擬器,Ubuntu 會提示用套件管理工具(apt)進行安裝(install),例如:

sudo apt install qemu-system-arm

WSL 使用 NAT(Net Address Translation) 架構存取網路,所以在 WSL 環境下,Ubuntu 安裝好就可以對外連線,如果上面的指令沒有辦法連線安裝 qemu-system-arm 的話,可能是因為需要設定套件管理系統的 proxy,例如:

sudo vi /etc/apt/apt.conf.d/proxy.conf

在檔案 proxy.conf 內加入代理伺服器設定,例如:

Acquire::http::Proxy "http://proxy.yoyodyne.com:18023/";
Acquire::https::Proxy "http://proxy.yoyodyne.com:18023/";

參考 QEMU ARM 模擬器說明,有些預先建置好的系統可以直接拿來用,這裡下載 Squeeze(Debian 6.0) 來測試:

wget https://people.debian.org/~aurel32/qemu/armel/README.txt
wget https://people.debian.org/~aurel32/qemu/armel/vmlinuz-2.6.32-5-versatile
wget https://people.debian.org/~aurel32/qemu/armel/initrd.img-2.6.32-5-versatile
wget https://people.debian.org/~aurel32/qemu/armel/debian_squeeze_armel_standard.qcow2

如果沒有辦法連線下載,可能是因為需要設定 wget 的 proxy,也可以設定環境變數 https_proxy,例如:

export https_proxy=http://proxy.yoyodyne.com:18023

下載後參考下載的說明檔(README.txt)進行測試,例如:

qemu-system-arm -M versatilepb \
 -kernel vmlinuz-2.6.32-5-versatile \
 -initrd initrd.img-2.6.32-5-versatile \
 -hda debian_squeeze_armel_standard.qcow2 \
 -append "root=/dev/sda1"

上面的指令用 qemu-system-arm 模擬 versatilepb 卡片,模擬卡片載入核心(kernel)檔案 vmlinuz-2.6.32-5-versatile,然後依配置(CONFIG.SYS)檔案 initrd.img-2.6.32-5-versatile 進行開機,以虛擬磁碟機檔案 debian_squeeze_armel_standard.qcow2 作為系統磁碟,傳遞參數 root=/dev/sda1 給核心,指定 /dev/sda1 為啟動分割區。

圖形介面下 QEMU 視窗會出現模擬卡片開機畫面(支援 WSLg 的 WSL 環境可以執行圖形介面應用程式):
versatilepb boot squeeze
參考下載的說明檔,可以用帳密 root 或 user 登入,提醒:模擬卡片也需要正常關機,避免虛擬磁碟機檔案毀損,例如:

root@debian-armel:~#shutdown -h now

請等關機完成後再結束 QEMU。如果 QEMU 視窗功能表無法點選,可能是因為滑鼠被關在模擬卡片裡,可以參考 QEMU 視窗標題用 Ctrl+Alt+G 脫離:
description
文字介面下可以參考下載的說明檔,加上 -nographic 選項關閉圖形輸出,傳遞 console=ttyAMA0 參數給核心,指定 ttyAMA0 為主控台,可以從主控台看到模擬卡片開機畫面,例如:

qemu-system-arm -M versatilepb \
 -kernel vmlinuz-2.6.32-5-versatile \
 -initrd initrd.img-2.6.32-5-versatile \
 -hda debian_squeeze_armel_standard.qcow2 \
 -nographic \
 -append "root=/dev/sda1 console=ttyAMA0"

文字介面下,關機完成後並沒有視窗可以結束 QEMU,請使用 Ctrl+a x(即Ctrl+a,放開再按 x)離開,總之,請正常關機。

留言

這個網誌中的熱門文章

自動建立樞紐分析表

樞紐分析表( PivotTable )是交叉分析的好幫手,還可以深入分析(drill-down)與彙總(roll-up)各個維度的資料。建立樞紐分析表也很容易,但有時候應用程式仍然有自動建立樞紐分析表的需求,Excel VBA 建立樞紐分析表的方式之一就是用 Worksheet.PivotTableWizard 方法。以Office範本藝廊的 銷售員樞紐分析表 來源資料為例: ActiveSheet.PivotTableWizard xlDatabase, Range(“A1:E800”), Range(“G3”) 即可產生樞紐分析表。如果沒有指定位置(TableDestination)的話,會放在 ActiveCell,如果也沒有 ActiveCell 的話,會放在新的工作表。 樞紐分析表會被加到  PivotTables 集合物件中,可經由 Worksheet.PivotTables 方法取得,例如: For Each oPvtTable In ActiveSheet.PivotTables   oPvtTable.TableRange2.Clear Next 會清除工作表內所有的樞紐分析表 [1] 。 應用程式也可以設定樞紐分析表的屬性,例如透過欄位清單( PivotFields )設定欄位方向( XlPivotFieldOrientation ): Set oPvtTable = ActiveSheet.PivotTableWizard(xlDatabase, Range("A1:E800")) oPvtTable.PivotFields("國家").Orientation = xl xlPageField oPvtTable.PivotFields("銷售員").Orientation = xlRowField oPvtTable.PivotFields("訂單金額").Orientation = xlDataField 此外, Worksheet.PivotTableWizard 可以從不同的資料來源( XlPivotTableSourceType )建立樞紐分析表,以Access 範本資料庫 Northwind...

WSL 與應用程式

WSL(Windows Subsystem for Linux) 是 Windows 環境下的 Linux 環境, 前面 介紹過藉由 WSL 可以從 Linux 環境執行 Windows 應用程式,也可以從 Windows 環境執行 Linux 應用程式,兩種應用程式性質有些不同,在 Linux 命令列視窗下達: notepad.exe 即可執行 Windows 裡的記事本,Windows 工作管理員會出現記事本(不會出現在 Linux 工作列表裡面)。在 Windows 命令列視窗(命令提示字元或 PowerShell)下達: wsl   vi 即可執行預設 Linux 版本裡的 vi 編輯器,Linux 工作列表裡面會出現 vi 編輯器(不會出現在 Windows 工作管理員裡面)。在 Linux 命令列視窗下達: ps   -e 即可列出 Linux 工作列表。是的,記事本不是 Linux 應用程式,不會出現在 Linux 工作列表;vi 編輯器不是 Windows 應用程式,不會出現在 Windows 工作管理員。原則上,WSL 限制 Windows 應用程式無法取得 Linux 系統管理員權限。