Codelab:QEMU edu 驱动程序

驱动程序提供用于与嵌入或连接到系统的硬件(或虚拟)设备进行通信的软件接口。在 Fuchsia 中,驱动程序是在系统的组件拓扑中运行的用户空间组件,而驱动程序框架基于组件框架提供的概念和工具。驱动程序使用capabilities和通过 FIDL 建立的连接相互与非驱动程序组件进行交互。

在此 Codelab 中,您将构建一个 Fuchsia 驱动程序组件,该组件以名为 eduQEMUFuchsia 模拟器为基础)内置的虚拟设备为目标。QEMU 是一款教育设备,用于编写计算给定整数的阶乘的驱动程序。您还将探索如何使用 Fuchsia SDK 提供的工具与驱动程序进行交互。

学习内容

  • 发现并绑定到设备节点
  • 注册和加载新的设备驱动程序
  • 与正在运行的设备驱动程序交互

所需条件

  • 一台运行 Linux 或 macOS 的基于 x64 的机器

  • 已配置的 Fuchsia SDK 环境

  • 适用于 core.x64模拟器产品套装

准备工作

根据前提条件,您在 fuchsia-drivers/ 目录中创建了一个 Bazel 工作区。这是包含 WORKSPACE.bazel 文件的目录,表示工作区的根目录。在整个 Codelab 中,系统使用 // 前缀来引用此根目录。例如,路径 //fuchsia-codelab 表示 Bazel 工作区根目录下名为 fuchsia-codelab 的目录。

Bazel 工作区还在 tools/ 目录中预先配置了由 Fuchsia SDK 提供的开发工具。此 Codelab 假定您在 Bazel 工作区中使用 SDK 工具,因此请考虑更新 PATH 以包含 SDK 的 tools/ 目录,或使用以下命令创建临时别名:

alias ffx=tools/ffx
alias bazel=tools/bazel