2013年11月11日 星期一

使用 qemu 啟動虛擬 ARM 機器

0. 先以 qemu 安裝 ARM 版 Debian Linux 至 arm.img

檔案位置:

~/qemu_image/                   -> 所有虛擬 ARM 檔案目錄
            /arm.img            -> 虛擬 ARM 硬碟映像檔
            /vmlinuz-3.2.0-4-versatile          -> ARM 開機核心
            /initrd.img-3.2.0-4-versatile       -> ARM 開機 initrd
            /runarm.sh          -> 開機 script


0. 先執行底下指令:
# losetup -a
此時會看到目前沒有輸出。

1. 接著將開機核心擷取出來:

# losetup /dev/loop0 arm.img
再執行
# losetup -a
其輸出如下:
/dev/loop0: [0831]:31198060 (/home/herman/qemu_image/arm.img)
這表示 /dev/loop0 與 arm.img 已經連接 (attach) 在一起,之後我們可以使用 fdisk -lu /dev/loop0 來觀看是否為當初安裝時所分割的磁區:

      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1            2048     3913727     1955840   83  Linux
/dev/loop0p2         3915774     4192255      138241    5  Extended
/dev/loop0p5         3915776     4192255      138240   82  Linux swap / Solaris

開機核心位於 ?

/boot

因此,我們要將 /dev/loop0p1 掛載上來,再至其 boot 目錄擷取 ARM 版 Linux 核心及 initrd。

losetup -o `expr 2048 \* 512` /dev/loop1 /dev/loop0

接著我們可以將 /dev/loop1 掛載至 /mnt 目錄下:

mount /dev/loop1 /mnt

掛載完後可以執行 df -h /mnt 來觀看結果:

檔案系統        容量  已用  可用 已用% 掛載點
/dev/loop1      1.9G  506M  1.3G   30% /mnt

接著可以至 /mnt/boot 目錄下擷取 Linux 核心

 cp /mnt/boot/initrd.img-3.2.0-4-versatile .
cp /mnt/boot/vmlinuz-3.2.0-4-versatile .

如此一來即完成核心擷取,接下來可以進行開機作業。

2. 使用 qemu 來開機

請將底下指令另存 runarm.sh 以便進行開機:

qemu-system-arm -M versatilepb -m 512 \
        -kernel ./vmlinuz-3.2.0-4-versatile \
        -initrd ./initrd.img-3.2.0-4-versatile \
        -hda arm.img \
        -append "root=/dev/sda1"


接著請執行 sh runarm.sh

 3. 登入系統,確定我們是在 ARM 的機器中

請在登入畫面使用 root 帳號、密碼,看能不能登入,並執行

cat /proc/cpuinfo

來觀看 CPU 狀態。


如果在 qemu 視窗中點擊滑鼠將會使 qemu 把滑鼠「抓走」,此時我們要按

Ctrl+Alt 讓 qemu 將滑鼠「釋放」出來,否則會沒有遊標可用,要確定目前

滑鼠是否有被 qemu 抓走請看 qemu 之狀態列。

在 qemu 畫面下按 Ctrl+Alt+f 可以放大/縮小全螢幕狀態。

 4. 安裝 arm 的 Xwindow,並進入 Xwindow 環境

4.1 將 /etc/apt/sources.list 中的鏡像站改至校內:

加上這兩行

deb ftp://120.117.72.71/debian wheezy main contrib non-free
deb ftp://120.117.72.71/debian wheezy-updates main contrib non-free

將 deb-src 註解,保留 security.debian.org 設定


修改完畢後執行 apt-get update

再安裝 xorg icewm 套件

4.2 安裝完畢後以一般 user 登入

登入完畢後執行

startx

看看能不能進入 Xwindow

5. 清除已安裝之 .deb 檔案

# apt-get clean

清除完畢可以執行 df -h 來看目前磁碟空間

6. 依照 X86 流程,安裝 iceweasel,並觀察能否上網。

沒有留言:

張貼留言