日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

qemu图形界面linux,QEMU 简单几步搭建一个虚拟的ARM开发板

發布時間:2023/12/14 linux 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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开发板的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。