Openwrt使用Qemu模擬開發。

放牛娃不吃草發表於2012-09-13
QEMU是一款開源的虛擬機器和模擬器軟體。它提供了MIPS系統的模擬器(目前不支援圖形卡模擬,只能執行於字元終端方式),使我們可以在x86平臺上安裝執行Debian Linux for MIPS,從而在其中進行本機編譯。本文將詳細介紹在Ubuntu 9.10上安裝部署的過程。

While::beging:

qemu-system-mips -M malta -m 128 -kernel vmlinux-2.6.32-5-4kc-malta -hda hda.img -append "root=/dev/sda1 console=ttyS0" -nographic -no-reboot


(一)安裝QEMU
首先安裝QEMU軟體包:
$ sudo apt-get install qemu qemu-common qemu-kvm qemu-kvm-extras

(二)下載Debina網路安裝映像檔案
$ wget http://ftp.de.debian.org/debian/dists/lenny/main/installer-mipsel/current/images/malta/netboot/vmlinux-2.6.26-2-4kc-malta
$ wget http:
//ftp.de.debian.org/debian/dists/lenny/main/installer-mipsel/current/images/malta/netboot/initrd.gz
現在網址改作http://ftp.de.debian.org/debian/dists/stable/main/installer-mips/current/images/malta/netboot/initrd.gz
其中vmlinux-2.6.26-2-4kc-malta是核心,initrd.gz是用於網路安裝的引導RAM Disk。
注:Malta是MIPS Technologies公司設計的一款開發板,QEMU提供了針對Malta板的模擬。

(三)建立硬碟映像檔案
為安裝Debian Linux作業系統準備一個10GB的虛擬磁碟。QEMU支援多種磁碟映像格式,其中qcow2是功能最多最好用的一種格式。
$ qemu-img create -f qcow2 hda.img 10G
新建的磁碟映像只佔用很少的空間,隨著使用才逐漸擴張直至達到設定的10G。

(四)安裝Debian Linux for MIPS

***安裝過程需要一直連線網際網路,安裝可能會花費數小時***


qemu-system-mips -M malta -m 128 -kernel vmlinux-2.6.32-5-4kc-malta -initrd initrd.gz -hda hda.img -append "root=/dev/ram console=ttyS0" -nographic -no-reboot

1. 引導網路安裝程式
$ qemu-system-mipsel -M malta-m 128 -kernel vmlinux-2.6.26-2-4kc-malta -initrd initrd.gz -hda hda.img -append "root=/dev/ram console=ttyS0" -nographic -no-reboot



screenshot

2. 啟動後會自動進入安裝程式,首先是選擇語言和國家。語言選擇English,國家選Other -> Asia -> China
screenshot

3. 配置網路:輸入主機名、域名,選擇Debian映象伺服器以及配置代理伺服器
screenshot

screenshot

screenshot

screenshot

screenshot

4. 磁碟分割槽

screenshot

screenshot

screenshot

screenshot

screenshot

5. 開始下載並安裝基本系統

screenshot

6. 設定使用者/口令:設定root口令以及新建一個普通使用者

...截圖略過...

7. 選擇安裝軟體:只選擇標準系統(Standard system)

screenshot

忽略"No boot loader installed"警告並繼續
screenshot

8. 安裝完成

screenshot

(五)啟動系統
$ qemu-system-mipsel -M malta-m 128 -kernel vmlinux-2.6.26-2-4kc-malta-hda hda.img -append "root=/dev/hda1 console=ttyS0" -nographic -no-reboot

用上面的命令啟動安裝好的Debian系統,此時QEMU將使用預設的網路配置,只能從客戶機訪問外部網路。如果希望客戶機對外提供網路服務,如telnet,ssh,ftp等,則需要配置tap網路介面,詳細步驟可參考文章:QEMU/Networking

(六)部署本機編譯環境
本機編譯工具鏈仍使用我自制的根檔案系統:mipsel-native-toolchain-gcc442-uc0928-rootfs.tar.bz2 (如果不能下載請嘗試此連結)

下面操作在客戶機上進行:

1. 解壓工具鏈
# mkdir /toolchain-root
# cd 
/toolchain-root
# tar jxf 
/path/to/mipsel-native-toolchain-gcc442-uc0928-rootfs.tar.bz2

2. 客戶機啟動時自動為/toolchain-root繫結/proc,/sys,/dev,/tmp等偽檔案系統。把下面的內容加入/etc/rc.local末尾處exit 0前面
# bind psudo filesystems for /toolchain-root
mount --bind /proc /toolchain-root/proc
mount --bind /sys /toolchain-root/sys
mount --bind /dev /toolchain-root/dev
mount -t tmpfs tmpfs /toolchain-root/
tmp

3. 進入本機編譯環境
# chroot /toolchain-root /bin/sh


BusyBox v1.
15.3 (2010-04-08 22:24:27 CST) built-in shell (ash)
Enter 
'help' for a list of built-in commands.

#

我安裝的Debian Linux + 本機編譯工具的磁碟映像檔案可以在這裡下載,供大家參考。root口令就是root。

相關文章