使用QEMU模拟树莓派Raspberry Pi
树莓派
被誉为 “世界上最流行最便宜的小型电脑” 的「树莓派」Raspberry Pi 是一款性价比超高的迷你电脑主机 (仅有信用卡大小), 深受全球开发者、极客、技术爱好者们的追捧和喜爱
树莓派可以安装多种 Linux 系统发行版 (官方为 Debian 的衍生版),可当服务器搭建各种网站、应用服务来使用, 也能用来学习编程、控制硬件或日常办公。由于树莓派的体积很小很轻,并且功能极其丰富强大,这也使得它的应用范围和潜力几乎是无限的
下面介绍在之前的编译安装Qemu5.1的文章基础下安装raspberrypi树莓派
Fedora32下编译安装Qemu5.1并创建ARM版本Linux虚拟机
1、下载树莓派系统
最新版本下载地址 http://downloads.raspberrypi.org/raspbian/images/raspbian-2020-02-14/2020-02-13-raspbian-buster.zip
2、下载kernel-qemu
https://github.com/dhruvvyas90/qemu-rpi-kernel
下载如下这两个文件
kernel-qemu-4.19.50-buster
versatile-pb-buster.dtb
3、qemu命令行启动
qemu-system-arm -M versatilepb -cpu arm1176 -m 256 -hda ./2020-02-13-raspbian-buster.img -dtb ./versatile-pb-buster.dtb -kernel ./kernel-qemu-4.19.50-buster -append 'root=/dev/sda2 panic=1' -no-reboot -display vnc=10.20.90.56:1 -netdev user,id=unet -device virtio-net-pci,netdev=unet
-M versatilepb
-cpu arm1176
-m 256
-hda ./2020-02-13-raspbian-buster.img
-dtb ./versatile-pb-buster.dtb
-kernel ./kernel-qemu-4.19.50-buster -append 'root=/dev/sda2 panic=1'
-no-reboot
-display vnc=10.20.90.56:1
-netdev user,id=unet -device virtio-net-pci,netdev=unet
4、体验树莓派系统
vnc登录5901端口
lscpu+uname -a可以看到cpu为arm架构,内核也为arm版本内核
5、当然你也可以下载x86架构的镜像
https://www.raspberrypi.org/downloads/raspberry-pi-desktop/
- 以太坊·将数据写入到区块链中
- 如何使用Faster R-CNN来计算对象个数
- hyperledger v1.0.5 区块链运维入门
- 在TensorBoard中使用t-SNE实现TensorFlow自动编码器的可视化嵌入
- 以太坊智能合约开发入门
- CatBoost:一个自动处理分类(CAT)数据的机器学习库
- Python机器学习的练习八:异常检测和推荐系统
- Blade 模板中有关 section 的那些事
- 分布式计划任务设计与实现
- 怎样在Python的深度学习库Keras中使用度量
- 网络设备配置管理与版本控制
- 使用Python对Instagram进行数据分析
- 解决多标签分类问题(包括案例研究)
- Docker Compose + GPU + TensorFlow = Heart
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- B - They Are Everywhere CodeForces - 701C
- 尺取练习 -A - A - Stages (水题压压惊)
- 填坑-回溯-预习 之 二分-尺取大总结
- 深入浅出理解动态规划(一) | 交叠子问题
- 深入浅出理解动态规划(二) | 最优子结构
- 用x种方式求第n项斐波那契数,99%的人只会第一种
- 面试官:手撕十大排序算法,你会几种?
- 如何在Integer类型的ArrayList中同时添加String、Character、Boolean等类型的数据?
- Java开发岗面试题--基础篇(一)
- leetcode链表之找出倒数第k个节点
- MAC下安装nginx的正确姿势 实践笔记
- 关于 ThreadLocal 你需要知道的几点
- 关于Guava ForwardingMap
- http post Request header is too large 开发环境和线上版本解决方案
- 像java一样使用js contains 数组包含方法 实践笔记