用QEMU類比樹莓派Raspberry Pi的方法
下面介紹用QEMU類比Raspberry Pi的方法,採用了這種方法後就算沒有開發板也能進行測試。
開發環境
測試用的Host OS環境是 Debian 7.2 Wheezy amd64.
Guest OS是, 對Raspberry Pi進行最佳化後的 Debian Raspbian (2013-09-15) .
2014/7/31 追加: Debian 8 jessie amd64, QEMU 2.0.0, Raspbian (2014-06-20) 也用同樣的步驟確認過動作.
安裝QEMU
先安裝QEMU.
sudo aptitude install qemu
執行下面的命令來檢查需要的CPU是否被支援了. 如果arm1176 被顯示就OK.
arm1176 沒有被表示的話, 或者是重新編譯QEMU, 或者是尋找其他的Binary.
qemu-system-arm -cpu'?' | grep arm1176
映像的下載
建立合適的目錄, 從http://www.raspberrypi.org/downloads 下載 Raspbian 映像並展開.
在同一個目錄下從 http://xecdesign.com/downloads/linux-qemu/kernel-qemu 下載核心映像檔案.
第一次啟動
執行下面的命令, 第一次啟動qemu.
qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append"root=/dev/sda2 panic=1 rootfstype=ext4 rw init=/bin/bash"-hda 2013-09-25-wheezy-raspbian.img
編集/etc/ld.so.preload.
nano/etc/ld.so.preload
如下所示, 注釋掉第一行並儲存, 關閉檔案.
#/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so
下面的步驟可選。 QEMU 模擬器上磁碟是認作 /dev/sda , 但是由於實機上是認作 /dev/mmcblk0 所以要設定對應的符號連結。
建立/etc/udev/rules.d/90-qemu.rules 並追加以下記錄.
/etc/udev/rules.d/90-qemu.rules
KERNEL=="sda", SYMLINK+="mmcblk0"
KERNEL=="sda?", SYMLINK+="mmcblk0p%n"
KERNEL=="sda2", SYMLINK+="root"
結束。
exit
起動
起動下面的命令。
qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append"root=/dev/sda2 panic=1 rootfstype=ext4 rw"-hda 2013-09-25-wheezy-raspbian.img
用使用者名稱: pi, 密碼: raspberry 登入, 這樣就能起動 X.
關於選項
關於QEMU 起動時候的選項的說明整理了一下.
-kernel kernel-qemu
使用下載的核心映像 kernel-qemu.
-cpu arm1176
類比ARM1176 CPU. Raspberry Pi 板上搭載了 Broadcom BCM2835, 這個處理器用的是ARM1176JZ-F.
-m 256
RAM的大小是256MB. 設定成比256MB大的值板子好像不能啟動.
-M versatilepb
設定類比的開發板類型. versatilepb 是 ARM Versatile Platform Board
-no-reboot
不重啟退出.
-serial stdio
重新導向Guest 的串口到Host的標準輸入輸出.
-append “root=/dev/sda2 panic=1 rootfstype=ext4 rw”
核心的命令列.
-hda 2013-09-25-wheezy-raspbian.img
Harddisk 0 使用 2013-09-25-wheezy-raspbian.img.
其他
就用那樣的映像的話磁碟的空餘容量比較少, 根據需要可以需要擴張磁碟的大小. 詳情請參照 Raspberry Pi のイメージファイルを拡張する.
參考
QEMU – Emulating Raspberry Pi the easy way (Linux or Windows!) (http://xecdesign.com/qemu-emulating-raspberry-pi-the-easy-way/)
- BCM2835 (http://ja.broadcom.com/products/BCM2835)
Raspberry Pi 樹莓派上安裝Weston
用於Raspberry Pi 的Linux 作業系統已經可用
Raspberry Pi(樹莓派)試用小記
Raspberry Pi(樹莓派)的安裝、配置IP及軟體源等入門
Ubuntu 12.04之找不到Qemu命令
Arch Linux上安裝QEMU+EFI BIOS
QEMU的翻譯架構及調試工具
QEMU 的詳細介紹:請點這裡
QEMU 的:請點這裡
本文永久更新連結地址: