共计 2229 个字符,预计需要花费 6 分钟才能阅读完成。
飞牛应用市场自带的 N 卡驱动不完整,映射给 jellyfin 容器后,容器无法启动,会报错,因此需要自己编译安装驱动。
先到 nvidia 官方网站,找到自己显卡的 linux 64 位驱动安装包:https://www.nvidia.cn/drivers/lookup/
找到驱动后,右键复制链接地址,登录到飞牛的 ssh 使用 sudo -i 切换为 root 身份,用 wget 命令下载驱动,例如:
wget https://cn.download.nvidia.com/XFree86/Linux-x86_64/570.133.07/NVIDIA-Linux-x86_64-570.133.07.run
授予文件可执行权限:
chmod +x NVIDIA-Linux-x86_64-570.133.07.run
直接执行安装可能会报错,飞牛可能缺少下面环境依赖,可以提前安装一下(可以根据报错情况,自己修复缺少的依赖):
apt update
apt install gcc
apt install libc6=2.36-9+deb12u10
apt install libc6-dev
apt install pkg-config
apt install libglvnd-dev
然后执行驱动安装命令:
./NVIDIA-Linux-x86_64-570.133.07.run
根据弹出提示,屏蔽 debian 自带的驱动,然后进行重启。
如果有 kernel 相关的报错,需要为飞牛的 headers 创建一个软连接,然后再次执行安装就可以了:
sudo ln -sf /usr/src/linux-headers-6.6.38-trim /lib/modules/$(uname -r)/build
接下来还需要安装一下英伟达的 nvidia-container-toolkit,以便让 dcoker 可以调用 nvidia runtime:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
apt update
apt install -y nvidia-container-toolkit
完成后使用 nvidia-ctk 命令配置 docker 运行时(可选操作,如果你 docker 不需要使用 N 卡,可以不安装)
nvidia-ctk runtime configure --runtime=docker
最后重启下 docker 守护进程:
systemctl restart docker
完成后 docker 就可以调用 N 卡进行转码加速了,不限于 jellyfin,理论上 emby、plex 等支持 N 卡的容器都可以正常调用。
我这边使用的是 compose yml 管理的 jellyfin 容器,以下是我的配置代码,大家可以参考:
services:
jellyfin:
image: jellyfin/jellyfin
restart: 'always'
container_name: jellyfin
network_mode: 'host'
volumes:
- /vol1/1000/docker/jellyfin/config:/config
- /vol1/1000/docker/jellyfin/cache:/cache
- /vol1/1000/media:/media
- /vol1/1000/docker/jellyfin/msyh:/usr/share/fonts/truetype/dejavu
environment:
- TZ=Asia/Shanghai
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
我用的是官方镜像,官方镜像已经内置了 NVIDIA_DRIVER_CAPABILITIES=all 和 NVIDIA_VISIBLE_DEVICES=all 环境变量,因此不需要再进行配置。
– /vol1/1000/docker/jellyfin/msyh:/usr/share/fonts/truetype/dejavu
这一行是字体替换,官方镜像的中文字体会有乱码情况,因此我使用微软雅黑替换了官方的字体,不需要的话,可以将这行删除,其他路径根据自己的实际情况进行修改,不出意外的话,jellyfin 就能够正常启动了。
最后,进入 jellyfin web 管理界面,在控制台 - 播放 - 转码配置中,选择 Nvidia NVENC,并关闭不支持的编解码器(比如 AV1),启用允许以 HEVC 格式编码和色调映射,点击最下面的保存,播放影片就能够使用 N 卡加速编解码了,至此教程结束。