马上就要开学了,开学后就会开始arm+Linux的学习,因为马上就要去学校了,就没有买板子,打算去了学校再买,但是想学习的心是迫切的(O(∩_∩)O哈哈~),在网上浏览的时候发现了QEMU这个"神器",它是一个开源的可执行硬件虚拟化的托管虚拟机,可以虚拟出甚至cortex A的开发板,提供必备的外设:LCD、串口等等,几乎可以实现在线学习arm开发,简直是神器有木有,所以我就果断开始了学习。

    首先要搭建基本的开发环境

安装Ubuntu16.04

       这个就不说了

安装VVmware-tools

       安装这个是为了方便共享剪切板,这个也比较简单,这里就不说了。

安装Samba

        便于主机与虚拟主机间的文件传输,详细步骤可以参照我以前的博客。

安装Uboot-tools

        用来生成适应U-boot引导的镜像文件格式

        apt install u-boot-tools

安装Vim

        apt-get install vim

安装交叉编译工具

        交叉编译:在一个平台上编译生成在另一个平台上运行的可执行代码

        ABI和EABI:

            

        安装

            apt-get install gcc-arm-linux-gnueabi

            apt-get install g++-arm-linux-gnueabi

        示例(hello world)

        在Linux端直接编译后的结果

        

        交叉编译后的结果

        

QEMU安装

    自动安装

        apt-get install qemu

        版本太低不考虑

    手动编译安装

        安装依赖包

sudo apt-get install build-essential pkg-config zlib1g-dev
sudo apt-get install libglib2.0-0 libglib2.0-dev
sudo apt-get install libsdl1.2-dev
sudo apt-get install libpixman-1-dev libfdt-dev
sudo apt-get install autoconf automake libtool
sudo apt-get install librbd-dev
apt-get install libaio-dev
apt-get install flex bison

    下载QEMU源码

cd /tmp
wget http://download.qemu-project.org/qemu-2.9.0.tar.xz
tar xvJf qemu-2.9.0.tar.xz
cd qemu-2.9.0

    配置和编译安装 QEMU

udo ./configure --prefix=/usr/local/qemu2.9 \
		--target-list=arm-softmmu --audio-drv-list=
sudo make && sudo make install
sudo ln -s /usr/local/qemu2.9/bin/* /usr/local/bin/

    查看是否安装成功,查看版本

root@gyy-virtual-ubuntu:/tmp/qemu-2.9.0# qemu-img -V
qemu-img version 2.9.0
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers

    查看支持的开发板

        qemu-system-arm -M help

        

        支持的开发板有很多,但是我们注意的是它支持的最好的一个,Arm官方的开发板vexpress-a9

        

        

        

        

        

    启动开发板

qemu-system-arm -M vexpress-a9 \
    -m 512M \
    -kernel ./uImage \
    -dtb ./vexpress-v2p-ca9.dtb \
    -nographic \
    -append "console=ttyAMA0"

    

    可以看到它加载了4.4.76的Linux内核

    

    由于没有根文件系统,运行到这里就停止了

    到这了基本的开发环境就搭建完成了,下篇博客会讲述如何编译Linux内核、如何使用busybox制作根文件系统、如何编译u-boot、如何使用u-boot来加载Linux内核

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐