ZDMA 安装指南

教程 › ZDMA 安装指南

ZDMA 安装指南

从开箱到通过速度测试——让 ZDMA 正常运行所需的全部步骤。第 4 节讲怎么让手上的软件用上 ZDMA;如果要把它接进自己的项目,接入方式、版本规则与代码示例见 LeechCore 集成指南

开始前请阅读

  • 不要直接用手触碰电路——静电可能损坏 ZDMA。
  • 安装前请关闭主机和控制电脑两台电脑并断开电源。
  • 未经授权不要拆解 ZDMA——否则将失去保修。
  • 不要毁坏标签/铭牌。它是 ZDMA 唯一的识别信息,升级时需要用到。建议拍照保存到手机。
ZDMA 识别标签
请妥善保管此标签——建议拍照留存。

1. 概览

盒内包含

  • 1 × ZDMA
  • 1 × Thunderbolt 数据线(1.5 m)
  • 1 × 螺丝——体积很小,可能在清关/物流检查中丢失;也可以用机箱或显卡的备用螺丝固定 ZDMA。
ZDMA 包装内容

接口

  • Thunderbolt 接口 1——仅传输数据(不供电),兼容性最佳。推荐使用。
  • Thunderbolt 接口 2——功能完整,支持 60 W 供电,用料更好。如果控制电脑必须通过其唯一的 Thunderbolt 接口供电,请使用它。
  • JTAG——用于固件刷写。
ZDMA 接口

2. 安装

  1. 断电。关闭主机和控制电脑并断开电源,防止损坏设备。
  2. 安装 ZDMA。将设备对准 PCIe X4 或 PCIe X16 插槽左侧的缺口,垂直插入,然后用螺丝固定。
    务必固定牢靠。ZDMA 较重——如果不固定,使用中可能因振动松脱而损坏。
    将 ZDMA 安装到 PCIe 插槽
    固定在机箱内的 ZDMA
  3. 连接数据线。使用随附的 Thunderbolt 线:一端接 ZDMA 的 Thunderbolt 接口 2,另一端接控制电脑的 Thunderbolt 接口。
    连接 Thunderbolt 数据线
    说明 ZDMA 固定好之后,可以在电脑开机状态下插拔线缆——但软件正在使用 ZDMA 时切勿拔线,否则控制电脑可能崩溃。ZDMA 通过 Thunderbolt 传输数据:普通 USB-C 接口或普通 USB 线无法使用——请使用 Thunderbolt III 或 IV 线缆。
  4. 安装驱动(在控制电脑上)。解压驱动后:右键开始菜单设备管理器 → 右键其他设备 / Management Card更新驱动程序浏览我的电脑以查找驱动程序 → 选择驱动文件夹 → 下一步仍然安装此驱动程序软件

    下载 ZDMA 驱动

3. 测试

这一步只是确认硬件装好了、能正常跑起来,跟您之后要用什么软件无关。

  1. 先关掉安全软件。卸载控制电脑上的杀毒软件,并关闭 Windows Defender。杀毒软件会拦截 DMA 读写,不关的话测试一定不通过。

    Defender Control 工具

  2. 运行测试程序。下载并解压我们提供的测试文件,双击运行 DMAtest.exe。窗口里出现不停跳动的数字就说明通过了——数字越大越好,不用记具体数值,能持续刷新即可。我们的测试程序已经把需要的文件全部打包好(含最新版 leechcore.dll),解压即用,不用自己凑 DLL 版本。

    下载测试文件

    DMA 测试结果显示持续刷新的数字
    用我们提供的测试程序,可以跳过这一段。如果您用的是别人给的、或者自己编译的测试工具,请先把工具文件夹里的 leechcore.dll 换成我们提供的最新版本(点下面的按钮下载)。旧版本的 DLL 认不出 ZDMA,测试会一直不出数字,看起来就像硬件坏了一样。

    下载最新 leechcore.dll

    技术细节压缩包里的 leechcore.dllleechcore_driver.dll 必须成对使用、来自同一 release,不要新旧混用。自建工具在跑业务代码前,建议先用 pcileech.exe -device fpga probe 确认版本对齐与设备连通性。

    如果一直不出数字,请先按《排障:设备识别不到》走一遍,那里涵盖接口、指示灯、固件、BIOS 和驱动。若仍未解决,请把完整的测试窗口截图发给我们(Discord 或邮件都可以),我们帮您看是哪一步的问题。

4. 如何使用

测试通过之后,剩下的都在软件一侧。ZDMA 在用户态就是 LeechCore 的那对 DLL:进程按 Windows 的 DLL 搜索顺序加载到我们提供的 leechcore.dllleechcore_driver.dll,就能拿到设备。多数程序还带着自己那份旧版 LeechCore,所以先看它的 DLL 能不能替换。

情况一:DLL 可以替换(多数现成程序)

  1. 退出目标程序,确认进程已经结束——后台驻留的实例也要退,否则 DLL 处于占用状态,改不动。
  2. 解压我们提供的压缩包,得到 leechcore.dllleechcore_driver.dll
  3. 把这两个文件覆盖进程序 exe 所在的目录,原文件留一份 .bak 以便回退。Windows 加载 DLL 时先搜 exe 所在目录,放这里就会优先命中。
    两个文件要一起换只换一个会版本错配:LcCreate 直接返回失败,表现就是「设备识别不到」。目录里若还有 vmm.dll(MemProcFS),同样必须取自同一 release。
  4. 重新启动程序。

下载 leechcore.dll(含 driver)

情况二:DLL 换不了,或者换了不生效

出现下面任一情况,说明问题不在「替换文件」这一层:

  • 程序目录里没有 leechcore.dll——DLL 被打包进 exe,运行时才释放,或者干脆走内存加载。
  • 替换后程序起不来、报文件校验失败或直接闪退(程序自带完整性校验)。
  • 替换后仍然报找不到 DMA 设备,而我们的测试程序能正常读出数字——硬件没问题,问题在调用方。

接下来看这个程序您改不改得动:

  • 改得动——自己写的,或者是能自行编译的开源项目:按集成指南接一遍就行。DLL 与 exe 同目录、把两个 DLL 作为资源嵌入单文件 exe,两条路线都有完整代码示例和排错表。
  • 改不动——闭源的第三方程序:把集成指南转给作者,说明您用的是 ZDMA。适配量不大,通常一轮就能搞定。

ZDMA / LeechCore 集成指南

技术细节(可以直接转给软件作者)ZDMA 走 Thunderbolt 并使用自带驱动,用户态只需要 LeechCore 那对 DLL,不需要 FTD3XX.dll(那是 FT601 / USB3 板卡才用的)。接入方式二选一:DLL 与 exe 同目录(开发期推荐,好调试、DLL 可单独升级),或把两个 DLL 作为资源嵌入 exe、启动时释放到同一临时目录,再 SetDllDirectory + LoadLibrary(对外分发推荐;纯内存加载会因 driver 这层二级依赖而失败)。另外 ZDMA 新固件 v4.17 / FPGA1 v4+ 必须配最新 leechcore.dll。完整规则、代码示例与排错表见上面的集成指南。
判断不出卡在哪一层,或者需要我们直接跟软件作者对接技术细节,在 Discord 找我们。

5. 固件构建与刷写

用 LightningZ Flasher Tool 刷写,无需 Vivado。专门指南有分步说明:

ZDMA 固件刷写指南

ZDMA 的全部固件资料发布于 Ulf Frisk 的 pcileech-fpga / ZDMA 项目,包含完整的构建与刷写教程。

刷写提示

  • 刷写完成后,请关机并断电 10 秒再开机,让 ZDMA 正确加载——不要只做重启。
  • 工具会锁定目标:自己的固件只写入 FPGA0;FPGA1 只能通过在线匹配刷写。
  • JTAG 接口不兼容 Thunderbolt 线——请使用普通 USB 数据线刷写。

滚动至顶部