Openwrt使用Qemu模擬開發。
QEMU是一款開源的虛擬機器和模擬器軟體。它提供了MIPS系統的模擬器(目前不支援圖形卡模擬,只能執行於字元終端方式),使我們可以在x86平臺上安裝執行Debian Linux for MIPS,從而在其中進行本機編譯。本文將詳細介紹在Ubuntu 9.10上安裝部署的過程。
首先安裝QEMU軟體包:
(二)下載Debina網路安裝映像檔案
其中vmlinux-2.6.26-2-4kc-malta是核心,initrd.gz是用於網路安裝的引導RAM Disk。
注:Malta是MIPS Technologies公司設計的一款開發板,QEMU提供了針對Malta板的模擬。
(三)建立硬碟映像檔案
為安裝Debian Linux作業系統準備一個10GB的虛擬磁碟。QEMU支援多種磁碟映像格式,其中qcow2是功能最多最好用的一種格式。
(四)安裝Debian Linux for MIPS
2. 啟動後會自動進入安裝程式,首先是選擇語言和國家。語言選擇English,國家選Other -> Asia -> China
3. 配置網路:輸入主機名、域名,選擇Debian映象伺服器以及配置代理伺服器
4. 磁碟分割槽
5. 開始下載並安裝基本系統
6. 設定使用者/口令:設定root口令以及新建一個普通使用者
...截圖略過...
7. 選擇安裝軟體:只選擇標準系統(Standard system)
忽略"No boot loader installed"警告並繼續
8. 安裝完成
(五)啟動系統
用上面的命令啟動安裝好的Debian系統,此時QEMU將使用預設的網路配置,只能從客戶機訪問外部網路。如果希望客戶機對外提供網路服務,如telnet,ssh,ftp等,則需要配置tap網路介面,詳細步驟可參考文章:QEMU/Networking
(六)部署本機編譯環境
本機編譯工具鏈仍使用我自制的根檔案系統:mipsel-native-toolchain-gcc442-uc0928-rootfs.tar.bz2 (如果不能下載請嘗試此連結)
下面操作在客戶機上進行:
1. 解壓工具鏈
2. 客戶機啟動時自動為/toolchain-root繫結/proc,/sys,/dev,/tmp等偽檔案系統。把下面的內容加入/etc/rc.local末尾處exit 0前面
3. 進入本機編譯環境
我安裝的Debian Linux + 本機編譯工具的磁碟映像檔案可以在這裡下載,供大家參考。root口令就是root。
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軟體包:
$ 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$ wget http://ftp.de.debian.org/debian/dists/lenny/main/installer-mipsel/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
$ 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
2. 啟動後會自動進入安裝程式,首先是選擇語言和國家。語言選擇English,國家選Other -> Asia -> China
3. 配置網路:輸入主機名、域名,選擇Debian映象伺服器以及配置代理伺服器
4. 磁碟分割槽
5. 開始下載並安裝基本系統
6. 設定使用者/口令:設定root口令以及新建一個普通使用者
...截圖略過...
7. 選擇安裝軟體:只選擇標準系統(Standard system)
忽略"No boot loader installed"警告並繼續
8. 安裝完成
(五)啟動系統
$ 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
# 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
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.
#
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。
相關文章
- 嵌入式linux:通過qemu模擬mini2440開發環境Linux開發環境
- openwrt開發
- openwrt 音訊開發音訊
- 在Ubuntu上用Qemu模擬ARM版本的Fedora39Ubuntu
- QEMU 開發環境搭建開發環境
- 加快Qemu Aarch32虛擬開發板的啟動速度
- 使用Netty模擬發生OOMNettyOOM
- 一步步教你:如何用Qemu來模擬ARM系統
- Openwrt使用-虛擬機器使用IMG映象安裝系統虛擬機
- iOS開發中,whistle的安裝使用及模擬器代理配置iOS
- Java使用程式碼模擬高併發操作Java
- 模擬 easywechat 開發騰訊的 ocr 包
- iOS開發之模擬介面假資料iOS
- 愛快虛擬機器搭建openwrt虛擬機
- 模擬web高併發Web
- JavaScript 模擬事件觸發JavaScript事件
- 利用Easy Mock簡單模擬開發資料介面Mock
- HBuilder搭配逍遙Android模擬器進行開發UIAndroid
- 加速你的安卓模擬器,讓開發更迅速安卓
- Google開發人腦模擬器:電腦自學成才Go
- Oracle模擬併發指令碼Oracle指令碼
- 使用 node 模擬請求介面
- 雷達報文模擬回放/雷達資料模擬發生器
- QEMU編譯及使用方法編譯
- Laravel 高併發搶購模擬Laravel
- 併發模擬-程式碼CountDownLatch,SemaphoreCountDownLatch
- 8、SSH埠轉發情景模擬
- Eclipse+Android開發:Android模擬器快捷鍵EclipseAndroid
- 本地模擬伺服器CDN(靜態HTML,CSS,JS)開發伺服器HTMLCSSJS
- Android開發中真機和模擬器的體驗Android
- 使用模擬器混淆前端程式碼前端
- python使用Cookie模擬登入PythonCookie
- 爬蟲方式(模擬使用者)爬蟲
- 模擬
- 虛擬化技術之kvm虛擬機器建立工具qemu-kvm虛擬機
- 【原創】Linux虛擬化KVM-Qemu分析(一)Linux
- 使用qemu執行risc-v ubuntuUbuntu
- PHP 開發量化交易的工具,模擬交易所 API 資料。PHPAPI