linux - 运行 nvme 测试用例时出错

标签 linux linux-device-driver qemu pci-e solid-state-drive

最近我在我的 ubuntu 主机上安装了 QEMU 虚拟机,并在上面构建了 dnvme(nvme 驱动程序)和 tnvme。我试图在模拟的 nvme 硬件上执行 tnvme。我收到错误消息“无法提取驱动程序版本信息和无法构建测试基础,当给出像 ./tnvme -s 这样的命令来总结支持的测试时。我无法在 QEMU 中运行任何测试用例。

那么,我怎样才能得到关于这个错误的更多调试信息呢?或者,我该如何解决这个问题以及如何在 QEMU 上运行至少一个 tnvme 测试用例。

谢谢

最佳答案

我自己刚遇到这个。可能是您没有禁用内核 nvme 驱动程序,而是根据需要启用了 dnvme。

以下步骤帮我解决了问题(以 root 权限运行):

  1. 通过调用 lsmod | 发现正在运行的 nvme 驱动程序grep nvme
  2. 使用 rmmod 杀死出现在那里的任何 nvme 驱动程序(例如 rmmod nvme)
  3. 导航到您下载的 dnvme 的根文件夹并运行 insmod dnvme.ko 以启动 dnvme 驱动程序。

您可以通过检查lsmod | 来验证驱动程序现在是否正在运行。 grep nvme 并看到唯一的输出是 dnvme。然后再次尝试运行 tnvme。

这需要在每次系统启动后运行 tnvme 之前完成。

来源:https://github.com/nvmecompliance/tnvme/issues/35 (包含可能对您有用的进一步建议)。

关于linux - 运行 nvme 测试用例时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33887994/

相关文章:

linux - 我新编译的内核在 qemu 中丢失了网络

c - x86 硬件中断不适用于 qemu

java - 如何打开使用 'ip tuntap' 创建的 tun 设备

linux - ORA-01034 : ORACLE not available ORA-27101: shared memory realm does not exist ORACLE 10g XE

linux - 字符设备的动态注册为我的字符设备分配了与 Documentation/devices.txt 不对应的主编号。这是为什么?

Linux SLAB_CTOR_VERIFY 和缓存未声明

linux - 使用 qemu 启动带有自定义内核的 OpenSUSE(或任何其他操作系统)?

linux - 使用 .minttyrc 自定义 MinTTY 终端

linux - 使用ubuntu找出内存被吃掉的地方

linux - 编译linux设备驱动程序时创建的各种文件是什么?