早之前就知道有QEMU,但是那会没能搭建起来。现在手头正好有个阿里云服务器,正好拿来试试手。

用的是Ubuntu的操作系统。先把qemu装了

apt-get install qemu

交叉编译工具

apt-get gcc-arm-linux-gnueabi

然后tftp需要配置一下。参考网络教程。目录设置为/home/tftpboot

下载linux内核,www.kernel.org。

在makefile中修改ARCH和CROSS_COMPILE

选择配置文件 make vexpress_defconfig

make zImage

make modules

make dtbs

这时候照例是可以跑的了

qemu-system-arm -M vexpress-a9 -m 512M -kernel arch/arm/boot/zImage -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "console=ttyAMA0"

当然,这还没完。

下载busybox制作根文件系统

http://www.busybox.net/download

配置makefile
修改ARCH和CROSS_COMPILE
make defconfig
在图形界面中,把busybox选择为静态编译
make menuconfig
make 
make install
这时候_install里就有需要的东西了
复制到/home/rootfs里面
然后复制一些必须的动态库到rootfs里
库在/usr/arm-linux-gnueabi/lib
创建设备节点
在/home/rootfs/dev中
mknode -m 666 tty1 c 4 1
mknode -m 666 tty2 c 4 2
mknode -m 666 tty3 c 4 3
mknode -m 666 tty4 c 4 4
mknode -m 666 console c 5 1
mknode -m 666 null c 1 3
制作sd卡镜像
dd if=/dev/zero of=rootfs.ext3 bs=1M count=32
格式化
mkfs.ext3 rootfs.ext3
可以挂载了看下
mount -t ext3 rootfs.ext3 /mnt/ -o loop
运行一下

qemu-system-arm -M vexpress-a9
-m 512M
-kernel /root/linux-4.4.80/arch/arm/boot/zImage
-dtb /root/linux-4.4.80/arch/arm/boot/dts/vexpress-v2p-ca9.dtb
-nographic
-append "root=/dev/mmcblk0 rw console=ttyAMA0"
-sd /home/rootfs.ext3
没问题的话下面进行u-boot
ftp://ftp.denx.de/pub/u-boot
ftp>open ftp.denx.de
输入
passive
binary
get ********
修改ARCH和CROSS_COMPILE
vi Makefile
vi config.mk
make vexpress_ca9x4_defconfig
make
得到u-boot,拷贝到tftproot中(tftproot注意权限,设置为777)
qemu-system-arm -M vexpress-a9 -m 512M -nographic -kernel ./u-boot
测试一下是否成功
把 vexpress-v2p-ca9.dtb文件和uImage文件拷贝到tftproot中
如果没有uImage
make LOADADDR=0x60003000  uImage
配置网桥
编辑interfaces文件
把eth1设置为manual
开启混杂模式
其他注释或者去掉
增加br0的部分
使用原先eth1的ip和静态路由设置

auto eth1
iface eth1 inet manual
#up route add -net 0.0.0.0 netmask 0.0.0.0 gw 120.24.227.247 dev eth1
up ip link set $IFACE promisc on

auto br0
iface br0 inet static
address 120.24.224.224
netmask 255.255.252.0
up route add -net 0.0.0.0 netmask 0.0.0.0 gw 120.24.227.247
bridge_ports eth1
bridge_stp off
bridge_fd 0
bridge_maxwait 0

重启一下
开启tap
tunctl -t tap0 -u root
ip link set tap0promisc on
ifconfig tap0 0.0.0.0 up
brctl addif br0 tap0
brctl show
这样网桥就搭建好了
在vexpress_common.h中
配置

同时设置

#define CONFIG_IPADDR 同一网段的ip

#define CONFIG_NETMAKE 
#define CONFIG_SERVERIP 网桥ip
然后重新编译一下。
运行测试,应该就可以了。

qemu-system-arm \
-M vexpress-a9 \
-kernel u-boot \
-nographic \
-net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
-sd /home/rootfs.ext3

转载于:https://www.cnblogs.com/roguetype/p/7365774.html

使用云服务器安装QEMU搭建嵌入式开发环境相关推荐

  1. 从购买阿里云服务器到搭建Java开发环境 jdk1.8+tomcat8.5+mysql(CentOS7.3)

    从购买阿里云服务器到搭建Java开发环境 jdk1.8+tomcat8.5+mysql(CentOS7.3) 购买阿里云服务器: 这是 购买链接进去后是: 选择轻量应用服务器,然后选择配置: 地区选择 ...

  2. VSCode 和 CMake 搭建嵌入式开发环境

    CMake 与 VSCode 搭建 ARM 构建环境 1. 前言 在嵌入式领域能够选择的集成开发环境(IDE)很多,有通用型的,例如 Keil,IAR,给他们安装一个相应芯片的描述包即可开发相应芯片的 ...

  3. 使用 qemu 搭建内核开发环境

    本文主要介绍在 MacOS 上使用 qemu 搭建 Linux Kernel 的开发环境.(在开始之前需要注意的是,本文中的 Linux 开发环境是一个远程服务器,而 qemu 被安装在本地的 Mac ...

  4. 在Ubuntu 20.04上面搭建嵌入式开发环境

    电脑系统盘出故障了,重新安装了Ubunt20.04(之前用的是18.04).日常工作编译基于Rockchip和AM335x系列芯片的内核和U-boot比较多,所以先搭建它们的开发环境(包括并不限依赖的 ...

  5. 在Ubuntu下使用QEMU搭建arm开发环境(一)搭建基本开发环境

    马上就要开学了,开学后就会开始arm+Linux的学习,因为马上就要去学校了,就没有买板子,打算去了学校再买,但是想学习的心是迫切的(O(∩_∩)O哈哈~),在网上浏览的时候发现了QEMU这个&quo ...

  6. 使用eclipse搭建嵌入式开发环境

    下载jdk http://download.oracle.com/otn-pub/java/jdk/7u4-b20/jdk-7u4-linux-i586.tar.gz 下载eclipse-cpp-ga ...

  7. UEFI 基础教程 (一) - 基于QEMU搭建UEFI开发环境(win/linux)

    一.EDKII windows 环境搭建 1. 下载UEFI开源代码 cmd进入C盘根目录,git clone https://github.com/tianocore/edk2.git edkii ...

  8. 在Ubuntu下使用QEMU搭建arm开发环境(三)使用u-boot加载Linux内核

    嵌入式启动概述 嵌入式boot loader 功能类似于PC的BIOS.硬件检测是否正常 加载操作系统镜像到RAM 设置不同的启动方式 常见的启动方式 NOR/NAND flash启动 从SD卡启动 ...

  9. macOS搭建嵌入式开发环境总结

    本质上一共只需要做两件事: 1.在linux上将源码编译成目标文件--交叉编译 比较简单到办法是,装linux虚拟机,在linux中配置交叉编译环境不详细记录 编译后将目标文件传到mac上 2.将生成 ...

最新文章

  1. 2007过年休息的日子
  2. 牛客练习赛81 小Q与彼岸花 (分块+可持久化01trie)
  3. 哈钦森之问:动物的种类为何如此丰富?
  4. 深度学习必须掌握的 13 种概率分布
  5. Android开发之设置listview分割线的颜色
  6. Oracle数据库的trigger(触发器)
  7. 工业交换机的单模和多模能否互相替代?
  8. JAVA获取程序/jar包所在路径
  9. JDK1.8 IdentityHashMap
  10. 微信小程序开发公司哪家好?
  11. Android网络应用的封装与调度
  12. 【STM32】8.简单呼吸灯的制作教程,附代码、效果视频
  13. 什么耳机适合华为手机?通话质量好的蓝牙耳机
  14. SQL Server 2005数据库镜像
  15. 了解一下PMO项目管理岗
  16. 卫星遥感影像查询网址
  17. 【盘点】2017杭州云栖大会迁云实战Workshop
  18. Java MediaMetadataCompat
  19. 追风筝的人 第三章
  20. 国科大五位本科生带“芯”毕业!平均年龄23.1岁,四个月主导完成64位RISC-V处理器SoC芯片设计并实现流片

热门文章

  1. jmeter 监听的介绍
  2. 用一条sql语句删除表中所相同记录
  3. 怎么看台式计算机是几位的,怎么查看自己电脑型号
  4. SQL连接,Oracle关联加号(+)等相关知识
  5. linux用户态驱动--IOMMU(三)
  6. java 定义类变量初始化吗_Java的变量有哪些类型?变量如何定义?如何初始化?请说明理由并举例_学小易找答案...
  7. LOJ 3094 「BJOI2019」删数——角标偏移的线段树
  8. CentOS7.2 安装Squid3.5及正、反向代理设置
  9. Python自动化测试(1)-自动化测试及基本技术手段概述
  10. restful,RESTful API 设计,GET/PUT/DELETE/POST