飞牛fnOS安装最新版nvidia卡驱动 配置jellyfin调用N卡进行转码加速

50次阅读
没有评论

共计 2229 个字符,预计需要花费 6 分钟才能阅读完成。

飞牛应用市场自带的 N 卡驱动不完整,映射给 jellyfin 容器后,容器无法启动,会报错,因此需要自己编译安装驱动。

先到 nvidia 官方网站,找到自己显卡的 linux 64 位驱动安装包:https://www.nvidia.cn/drivers/lookup/

飞牛 fnOS 安装最新版 nvidia 卡驱动 配置 jellyfin 调用 N 卡进行转码加速

 

找到驱动后,右键复制链接地址,登录到飞牛的 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 卡加速编解码了,至此教程结束。

正文完
 0
评论(没有评论)