当前位置: 首页 > 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界面

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 前端面试39(关于git)
  • javaweb学习day1《HTML篇》--新浪微博(前端页面的创建思路及其HTML、css代码详解)
  • 目标检测基本标注工具-labelImg安装与使用
  • aws sap认证考试如何轻松通过
  • 新兴市场游戏产业爆发 传音以技术抢抓机遇 ​
  • 深入解析Pip换源:加速你的Python包管理
  • 山海鲸可视化——天地图画面和热力图
  • Python面试题:在 Python 中,如何连接并操作数据库?
  • 开源项目有哪些机遇与挑战?
  • 老年人在日常生活中可以做哪些简单的伸展运动来缓解身体僵硬?
  • Linux 调试命令记录
  • python压缩PDF方案(Ghostscript+pdfc)
  • Git仓库介绍
  • Vue get请求传递数组,springboot接受数组(ai生成)
  • 【uniapp微信小程序】uniapp微信小程序——页面通信
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 2017 前端面试准备 - 收藏集 - 掘金
  • 2017年终总结、随想
  • Bootstrap JS插件Alert源码分析
  • Java|序列化异常StreamCorruptedException的解决方法
  • Laravel 中的一个后期静态绑定
  • markdown编辑器简评
  • MySQL用户中的%到底包不包括localhost?
  • XML已死 ?
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 关于 Cirru Editor 存储格式
  • 普通函数和构造函数的区别
  • 让你的分享飞起来——极光推出社会化分享组件
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 一、python与pycharm的安装
  • 移动端唤起键盘时取消position:fixed定位
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # Kafka_深入探秘者(2):kafka 生产者
  • # 数仓建模:如何构建主题宽表模型?
  • #FPGA(基础知识)
  • #Linux(帮助手册)
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (13)Hive调优——动态分区导致的小文件问题
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (35)远程识别(又称无人机识别)(二)
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (力扣)1314.矩阵区域和
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)EOS中账户、钱包和密钥的关系
  • ./和../以及/和~之间的区别
  • .form文件_一篇文章学会文件上传
  • .net mvc 获取url中controller和action
  • .Net 代码性能 - (1)
  • .NET 反射 Reflect
  • .NET 反射的使用