Arch Linux 安装并破解 DaVinci Resolve Studio 21.1.1
后期悲
剧情高考议论文,念念不忘三段式。
拍摄调光均「一流」,竖屏放大再裁切。
本文环境:Arch Linux (x86_64)、NVIDIA 显卡、AUR helper (paru)。
起因
学院办班级微电影大赛,负责后期。实觉 Kdenlive 之不足,转投 DaVinci Resolve Studio(下称 DRS)。
愿 Kdenlive 越做越好;也希望哪天有money买Studio授权 (2000 CNY+)。
一、安装
1.1 AUR 包选择
| 包名 | 说明 |
|---|---|
davinci-resolve-studio |
上游原始归档 |
davinci-resolve-studio-aacfix |
构建期注入 AAC 解码支持,推荐 |
davinci-resolve |
免费版 |
BD(Blackmagic Design,DRS 背后的公司)给 Linux 版捆绑的 FFmpeg 库在编译时砍掉了 AAC 解码器,导入 AAC 音轨的素材会没声音。-aacfix 变体在构建期做两件事:
- 用 e9patch 编译跳板(trampoline)并拼接进
bin/resolve; - 把捆绑的 4 个 FFmpeg 6.0.1 动态库替换成重编译的、启用 AAC 的 LGPL 构建。
代价是它的 makedepends 里带着 git、nasm、python-capstone、python-pyelftools,构建会明显偏慢(要现编 FFmpeg,还要给 700 MB 的二进制打补丁),别以为卡死了。
1 | paru -S davinci-resolve-studio-aacfix |
1.2 正常の失败
1 | fetching devel info... |
看 PKGBUILD 的 source 就明白了:
1 | source=("file://DaVinci_Resolve_Studio_${pkgver}_Linux.zip" ...) |
file:// 意为”从本地取”, BD 的下载链接要求填表、带会话校验,curl 抓不到,所以这一步只能人来补。
1.3 手动下载安装包
- 打开 DRS 下载页,点下载按钮。
- 选
DaVinci Resolve Studio 21底下的Linux。 - 弹出个人信息表单 —— 此处 BD 不做任何校验,随意填。
- 拿到
DaVinci_Resolve_Studio_21.1.1_Linux.zip(约 10 GB;装好后/opt/resolve会占约 19 GB)。
1.4 构建安装
paru 已经失败过了,PKGBUILD 就在缓存里,把 zip 丢进去接着构建:
1 | cd ~/.cache/paru/clone/davinci-resolve-studio-aacfix |
不留缓存,手动 clone 更干净:
1 | git clone https://aur.archlinux.org/davinci-resolve-studio-aacfix.git |
若报 sha256sums 校验失败,多半是 BD 换了包体。重新算一遍校验和再构建:
1 | updpkgsums && makepkg -si |
1.5 OpenCL:混合显卡机型注意
-aacfix 的依赖里有个虚拟包 opencl-driver,它自己不提供实现,得看你用哪块卡:
| 显卡 | 提供 opencl-driver 的包 |
|---|---|
| NVIDIA | opencl-nvidia |
| AMD | rocm-opencl-runtime |
| Intel | intel-compute-runtime |
不装对应的那一个,DRS 启动时会直接不认 GPU。
二、破解
2.1 好习惯,先备份
1 | sudo cp -a /opt/resolve/bin/resolve /opt/resolve/bin/resolve.bak |
perl -pi 是就地重写:它按原 inode 打开并截断重写。712 MB 的文件在中途断电或 Ctrl-C,你手上就是一个废文件。备份不是可选项。
2.2 三条二进制补丁
1 | # 补丁 1:把条件跳转改成无条件跳转,短路掉校验失败分支 |
对应的反汇编(21.1.1,实际取自本机二进制):
1 | ; 补丁 1 / 2 —— 0x74 是 je,0xEB 是 jmp |
三条补丁都是幂等的:改完的字节不再匹配原模式,重复执行什么也不会发生。所以”我不确定打没打过”的时候,直接再跑一遍即可。
补丁 3 用了 -0777,Perl 会把整个 712 MB 二进制 slurp 进内存再回写。机器内存吃紧的话先关掉别的程序。
2.3 放 license 文件
1 | sudo mkdir -p /opt/resolve/.license |
这是 FlexNet(FLEXlm)风格的授权文本,permanent uncounted 即永久、不限次数。
第 2、3 行行首那个空格是格式的一部分,顺手删掉就废了。整个文件应当是 164 字节:
1 | wc -c /opt/resolve/.license/blackmagic.lic # 164 |
2.4 激活
命令行没报错、没输出异常,就算打完了。启动 DRS,若仍弹出激活对话框,连续按 0 回车即可通过 —— 此时输入什么都会被接受,校验分支已经被短路了。
三、Wayland 与缩放修复
DRS 走 Qt5,在 Wayland 会话下常见启动失败或界面缩放诡异。强制它跑 X11 后端:
1 | cp /usr/share/applications/DaVinciResolve.desktop ~/.local/share/applications/ |
~/.local/share/applications/ 里的同名 desktop 文件优先级高于 /usr/share/applications/,所以不用动系统文件,升级也不会被覆盖。
混合显卡机型想让 DRS 固定跑独显(下面以 NVIDIA PRIME 为例),把 Exec 再补两个环境变量:
1 | Exec=env __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia QT_QPA_PLATFORM=xcb GDK_BACKEND=x11 /opt/resolve/bin/resolve %u |
前提是你确认它默认确实跑在了核显上,否则别乱加。
四、Q&A
Q1:交付页面无法 N 卡加速导出
装 davinci-ffmpeg-encoder-plugin:
1 | paru -S davinci-ffmpeg-encoder-plugin |
它是 DRS 的 IOPlugin,安装到 /opt/resolve/IOPlugins/ffmpeg_encoder_plugin.dvcp.bundle/Contents/Linux-x86-64/。重启 Resolve 后在交付页把编解码器设为 H.264 / H.265 / AV1,类型里就会出现带 ffmpeg 的 NVENC 选项。
Q2:升级或重装后失效
pacman 升级会覆盖 /opt/resolve/bin/resolve,三条补丁需重打一遍。/opt/resolve/.license/blackmagic.lic 一般会被保留(包里的 .license 是个空目录)。
Q3:想彻底还原
1 | # 只还二进制 |
五、题外话
Davinci Resolve Studio 是一次买断的专业视频软件,比 Adobe 的订阅制划算得多。经济条件允许的话,还是建议支持正版。
链接汇总
- DaVinci Resolve Studio 下载页 - 官方安装包
- davinci-resolve-studio-aacfix - 带 AAC 支持的 AUR 包
- resolve-aacfix - AAC 补丁上游项目
- e9patch - 二进制跳板注入工具
- davinci-ffmpeg-encoder-plugin - FFmpeg 编码器插件 AUR 包
- ffmpeg_encoder_plugin - 插件上游项目