qemu图形界面linux,QEMU 简单几步搭建一个虚拟的ARM开发板
1.安裝QEMU
先在Ubuntu中安裝QEMU
sudo apt-get install qemu
1
安裝幾個QEMU需要的軟件包:
sudo apt-get install zlib1g-dev
sudo apt-get install libglib2.0-0
sudo apt-get install libglib2.0-dev
1
2
3
安裝完后在shell輸入 qemu 按tab鍵如果出現自動補齊就證明成功安裝
2.安裝交叉編譯鏈環境
1).先下載交叉編譯鏈
http://www.veryarm.com/arm-none-linux-gnueabi-gcc
https://launchpad.net/gcc-arm-embedded/+download
1
2
然后把對應的tar包解壓到自己PC的指定目錄下
2).在Ubuntu的家目錄中打開 .bashrc 在最后一行添加
export PATH=$PATH:/home/linux/tools/arm-2014.05/bin //上邊解壓的目錄
安裝完后在shell輸入 arm- 按tab鍵如果出現自動補齊就證明成功安裝
輸入 arm-none-linux-guneabi-gcc -v 可以查看安裝的版本,表明安裝成功
3.編譯內核
1).下載Linux內核
https://www.kernel.org/
下載tarball包 如:linux-3.16.51.tar.xz
1
2
2).解壓內核源碼
tar xvf linux-3.16.51.tar.xz
make vexpress_defconfig
得到.config文件
1
2
3
3).修改交叉編譯鏈
vi Makefile
修改 ARCH ? ? ? ? ? ? ?= arm
修改 CROSS_COMPILE ? ? ? ??= arm-none-linux-gnueabi-
1
2
3
或者可以在每次使用make時直接指定編譯鏈,如:
make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm vexpress_defconfig
得到.config文件并指定編譯鏈
1
2
修改完Makefile后編譯
make menuconfig //配置內核編譯
make zImage ? ? //編譯生成zImage鏡像文件
make dtbs ? ? ? //編譯生成設備樹鏡像文件
1
2
3
4.制作文件系統
1).下載busybox
https://busybox.net/downloads/
1
2).執行make menuconfig
Busybox Settings --> Build Optiions --> Cross Compiler prefix
輸入arm-none-linux-gnueabi-
也可以在Makefile文件中修改編譯鏈
1
2
3
3).指定install路徑
Busybox Settings --> Installation Options --> BusyBox installation prefix
輸入自己指定的路徑,否則使用目前默認設置 _install
1
2
4).編譯
編譯 make
安裝 make install
其實以上的步驟可以更簡單點,直接指定交叉編譯鏈
make defconfig
make CROSS_COMPILE=arm-none-linux-gnueabi-
make install CROSS_COMPILE=arm-none-linux-gnueabi-
1
2
3
4
5
6
5).添加文件
在_install目錄下有
bin ?linuxrc ?sbin ?usr
創建其他文件夾
mkdir ?dev ?etc ?mnt ?proc ?var ?tmp ?sys ?root
1
2
3
4
6).添加動態鏈接庫文件
cp ~/toolchain/arm-2014.05/arm-none-linux-gnuabi/libc/lib * ~/busybox-1.22.1/_install
1
5.掛載文件系統
1).創建掛載點
mkdir -p rootfs/{dev,etc/init.d,lib}
cp busybox-1.22.1/_install/* -r rootfs/
sudo mknod rootfs/dev/tty1 c 4 1
1
2
3
2).生成鏡像
dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32
1
格式化成ext3文件系統
mkfs.ext3 a9rootfs.ext3
1
將文件拷貝到鏡像中
sudo mkdir tmpfs
sudo mount -t ext3 a9rootfs.ext3 tmpfs/ -o loop
sudo cp -r rootfs/* ?tmpfs/
sudo umount tmpfs
1
2
3
4
6.運行
qemu-system-arm -M vexpress-a9 -m 512M -kernel /home/linux/linux-3.16/arch/arm/boot/zImage -dtb ?/home/linux/linux-3.16/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0 ?console=ttyAMA0" -sd a9rootfs.ext3
1
如果嫌麻煩可以將上邊這行指令寫成一個腳本,每次打開時運行腳本就行
看到控制臺打印很多類似開發板啟動時的打印就證明成功了
...
EXT3-fs (mmcblk0): mounted filesystem with writeback data mode
VFS: Mounted root (ext3 filesystem) readonly on device 179:0.
Freeing unused kernel memory: 232K (805a5000 - 805df000)
random: nonblocking pool is initialized
can't run '/etc/init.d/rcS': No such file or directory
Please press Enter to activate this console.
/ #
1
2
3
4
5
6
7
8
9
10
可以看到沒有init進程,這些都已經是內核啟動之后的了,可以再做添加
其中/home/linux/linux-3.16是你編譯內核的絕對路徑
如果失敗看看是不是缺少某個文件
這里簡單介紹下qemu命令的參數:
-M vexpress-a9 模擬vexpress-a9單板,你可以使用-M ?參數來獲取該qemu版本支持的所有單板
-m 512M 單板運行物理內存512M
-kernel /home/linux/linux-3.16/arch/arm/boot/zImage ?指定qemu單板運行內核鏡像路徑
-nographic 不使用圖形化界面,只使用串口
-append "console=ttyAMA0" 內核啟動參數,這里告訴內核vexpress單板運行,串口設備tty
---------------------
作者:leumber
來源:CSDN
原文:https://blog.csdn.net/leumber/article/details/78654768
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
以上是生活随笔為你收集整理的qemu图形界面linux,QEMU 简单几步搭建一个虚拟的ARM开发板的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python版本的Pairs图
- 下一篇: Linux驱动——驱动模块初次加载成功,