1. 查看 .img
查看一下我們做好的 image 檔案:file arm.img hexdump arm.img
再做一個空的 arm_test.img 測試 & 比較:
dd if=/dev/zero of=arm_test.img bs=1G count=2 file arm_test.img hexdump arm_test.img
然後會發現, arm.img 裡頭有很多東西,但 arm_test.img 就是一個空的data。
2. 練習運算指令:expr
加法: expr 5 + 2 減法: expr 5 - 2 乘法: expr 5 \* 2 除法: expr 5 / 2
只有乘法比較特別,因為 * 是萬用特殊字元。
3. 對 image 檔案做連接,指令:losetup
到 ~/qemu_image 目錄下,需要 superUsercd ~/qemu_image su 查看連接狀況: losetup -a 將 /dev/loop0 連接 arm.img: losetup /dev/loop0 arm.img
4. 做磁區偏移(一樣 ROOT 下)
fdisk -lu /dev/loop0所用裝置 開機 開始 結束 區塊 識別號 系統
/dev/loop0p1 2048 3913727 1955840 83 Linux
/dev/loop0p2 3915774 4192255 138241 5 延伸
/dev/loop0p5 3915776 4192255 138240 82 Linux 交換區/ Solaris
其中 /dev/loop0p1 的開始(0ffset)為 2048,我們需要修正 512 * 2048 個 sector:
losetup -o `expr 512 \* 2048` /dev/loop1 /dev/loop0
5. 核心檔案擷取
掛載:sudo mount /dev/loop1 /mnt
複製核心檔案(這邊要一般 User)
cd /mnt/boot cp vmlinuz-3.2.0-4-versatile ~/qemu_image cp initrd.img-3.2.0-4-versatile ~/qemu_image
6. 用 QEMU 來做 arm.img 開機
我們先做一個 Shell Script:vi runarm.sh
# !/bin/bash # # Run arm.img qemu-system-arm -M versatilepb -m 512 \ -kernel ~qemu_image/vmlinuz-3.2.0-4-versatile \ -initrd ~qemu_image/initrd.img-3.2.0-4-versatile \ -hda ~qemu_image/arm.img \ -append "root=/dev/sda1" &
執行 runarm.sh
sh runarm.sh
7. 進入 QEMU - arm.img
開機以後,在QEMU中查看一下核心,證明我們是用 ARM 核心開機cat /proc/cpuinfo
接下來套件更新
sudo apt-get update && apt-get upgrade -y
安裝 X-Window 套件
sudo apt-get install icewm xorg
清除套件,省空間
apt-get clean
進入圖形介面
startx
裝瀏灠器及 http 伺服器測試
sudo apt-get install iceweasel apache2 iceweasel &網址列: localhost
可以看到 網頁 work 中...
關機
sudo halt
Reference:
http://pominglee.blogspot.tw/2013/11/qemu-arm.html
沒有留言:
張貼留言