当前位置: 首页 > news >正文

PCIe驱动开发(1)— 开发环境搭建

PCIe驱动开发(1)— 开发环境搭建

一、前言

二、Ubuntu安装

参考: VMware下Ubuntu18.04虚拟机的安装

三、QEMU安装

参考文章:QEMU搭建X86_64 + Ubuntu虚拟系统环境

四、安装Ubuntu

下载地址:https://old-releases.ubuntu.com/releases/20.04.5/ubuntu-20.04.5-live-server-amd64.iso
创建一个空白虚拟硬盘用来安装系统
下载好后使用如下命令解压:

qemu-img create -f qcow2 ubuntu-20.04.5-live-server.qcow2 10G

然后使用以下命令开始安装ubuntu20

sudo qemu-system-x86_64 -m 2048 -smp 4 --enable-kvm ubuntu-20.04.5-live-server.qcow2 -cdrom ubuntu-20.04.5-live-server-amd64.iso

-m 2048 —— 给客户机分配2G内存(也可以输入“2G”);
-smp 4 —— 指定客户机为对称多处理器结构并分配4个CPU;
–enable-kvm —— 允许kvm(速度快很多)
-cdrom * —— 分配客户机的光驱
使用kvm 需要root权限,所以需要加sudo

安装过程可参考: Ubuntu 无图形界面安装

五、启动QEMU

使用如下命令启动qemu

sudo qemu-system-x86_64 -m 2048 -smp 4 --enable-kvm ubuntu-20.04.5-live-server.qcow2 -netdev user,id=network0,hostfwd=tcp::2222-:22 -device virtio-net-pci,netdev=network0,id=net0,mac=52:54:00:12:34:56 -device edu

-netdev user,id=network0,hostfwd=tcp::2222-:22 定义了一个用户模式的网络设备,并设置了一个端口转发,将主机的 2222 端口转发到虚拟机的 SSH 端口 22
-device edu 添加一个PCIe设备到客户机中,这是qemu提供的一个PCIe示范设备,

输入ubuntu安装时设置的用户名和密码即可登录:
在这里插入图片描述
上面已经设置过SSH端口的转发,我们可以提供SSH连接:

ssh -p 2222 william@localhost

在这里插入图片描述
然后可以输入lspci -tv命令查看所有的PCI设备,其中Device 1234:11e8即是我们添加的edu设备
在这里插入图片描述
该设备的详细说明可以查看qemu安装包的docs/specs/edu.txt文件

也可以通过lspci -s 00:04.0 -vvv命令查看相关信息
在这里插入图片描述

六、退出QEMU

我们可以输入 CTRL + a 然后按 x 键退出QEMU界面

http://www.lryc.cn/news/397092.html

相关文章:

  • YOLOv10改进 | Conv篇 | CVPR2024最新DynamicConv替换下采样(解决低FLOPs陷阱)
  • 变革设计领域:Transformer模型在智能辅助设计中的革命性应用
  • Spring——配置说明
  • 禁用华为小米?微软中国免费送iPhone15
  • nginx初理解
  • FreeCAD源码分析:属性系统
  • C++入门 模仿mysql控制台输出表格
  • SpringBoot新手快速入门系列教程五:基于JPA的一个Mysql简单读写例子
  • 开源大势所趋
  • 智能无人机飞行控制系统:基于STM32的设计与实现(内附资料)
  • centos磁盘空间满了-问题解决
  • 宝塔:如何开启面板ssl并更新过期ssl
  • 大白话讲解AI大模型
  • pandas+pywin32操作excel办公自动化
  • 防火墙(ensp USG6000v)---安全策略 + 用户认证综合实验
  • Java使用POI导出后数字类型为常规类型,不能计算
  • 项目进度管理(5-1)常见的缓冲区监控方法
  • 构造函数语意学(The Semantics of Constructors)
  • 香橙派5plus上跑云手机方案二 waydroid
  • 600Kg大载重起飞重量多旋翼无人机技术详解
  • LlamaFactory可视化微调大模型 - 参数详解
  • 最新 Kubernetes 集群部署 + flannel 网络插件(保姆级教程,最新 K8S 版本)
  • C语言笔记31 •单链表经典算法OJ题-3.反转链表•
  • 网桥与以太网交换机:功能与区别解析
  • 动态引用的艺术:在Postman中实现自动化的终极指南
  • Qt:15.布局管理器(QVBoxLayout-垂直布局、QHBoxLayout-水平布局、QGridLayout-网格布局、拉伸系数,控制控件显示的大小)
  • 图论---无向图中国邮路的实现
  • Rockchip RK3588 - Rockchip Linux SDK脚本分析
  • 【C++中resize和reserve的区别】
  • 计算机毕业设计Python深度学习游戏推荐系统 Django PySpark游戏可视化 游戏数据分析 游戏爬虫 Scrapy 机器学习 人工智能 大数据毕设