查看: 769|回复: 0

[教程] UNAS6 n5105升级内核开启硬解

[复制链接]
发表于 2023-11-2 13:08:16 | 显示全部楼层 |阅读模式
本帖最后由 None 于 2023-11-2 13:41 编辑

1.升级内核
因为N5105的核显驱动,需要在linux内核5.18以上才可以,UNAS使用的内核是5.10,是无法加载核显驱动的,所以第一步需要升级内核。

​最新稳定版内核可在官网查询:https://tracker.debian.org/pkg/linux

Debian 11 升级内核需在 root 权限下执行,首先添加 Backports 源并更新
  1. echo "deb http://deb.debian.org/debian bullseye-backports main" > /etc/apt/sources.list.d/backports.list
复制代码

接着安装新内核及更新 grub:
  1. apt -t bullseye-backports install linux-image-amd64
复制代码

然后重启 ,检查内核版本是否已更新:
  1. # 重启
复制代码

确认内核已经升级成功,就可以卸载旧内核节省空间,列出已安装内核:
  1. dpkg --list | grep linux-image
复制代码
需保留至少一个新内核,然后卸载旧内核,比如列出信息如下:
  1. ii  linux-image-5.10.0-19-amd64           5.10.149-2                     amd64        Linux 5.10 for 64-bit PCs (signed)
  2. ii  linux-image-6.1.0-0.deb11.11-amd64    6.1.38-4~bpo11+1               amd64        Linux 6.1 for 64-bit PCs (signed)
  3. ii  linux-image-amd64                     6.1.38-4~bpo11+1               amd64        Linux for 64-bit PCs (meta-package)
复制代码

那么执行命令卸载 linux-image-5.10.0-19-amd64 即可:
  1. apt purge linux-image-5.10.0-19-amd64
复制代码
列出内核头文件:
  1. dpkg --list | grep linux-headers
复制代码
需保留至少一个新内核头文件,然后卸载旧内核头,比如列出信息如下:
  1. root@VM-0-8-debian:~# dpkg --list | grep linux-headers
复制代码

我卸载旧内核后,再查看内核头文件,并没有发现旧的,如果有旧的,把 5.10 两个内核头清理掉即可:
  1. apt purge linux-headers-5.10.0-19-amd64 linux-headers-5.10.0-19-common
复制代码

更新 grub,重启:
  1. update-grubreboot
复制代码
至此 Debian 11 升级内核完成。

注:如果以后不打算再继续升级内核,可以将Backports源删除

  1. rm -f /etc/apt/sources.list.d/backports.list
复制代码

参考连接:https://0xo.net/640


2.安装驱动

UNAS中其实已经有了核显驱动,只不过是内核不支持而已,内核升级以后,其实是不需要在安装驱动的。UNAS用户可以跳过2.1,直接查看2.2

2.1为了做个记录,这里也记录一下安装驱动

使用non-free源安装驱动

  1. wget -qO - https://repositories.intel.com/graphics/intel-graphics.key | apt-key add -

  2. nano /etc/apt/source.list
  3. deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
  4. deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
  5. deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
  6. deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
  7. deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
  8. deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
  9. deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
  10. deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

  11. deb [arch=amd64] https://repositories.intel.com/graphics/ubuntu bionic main   

  12. 存盘退出

  13. apt-get update
  14. 安装驱动及工具
  15. apt-get install intel-media-va-driver-non-free
  16. apt-get install intel-gpu-tools
  17. apt-get install vainfo
复制代码
运行 lspci 观察硬件信息00:00.0 Host bridge: Intel Corporation Device 4e2400:02.0 VGA compatible controller: Intel Corporation Device 4e61 (rev 01) 这一行 记录下 4e61 录入到下面文件中 (n6005这个地方值不一样,可能是4e71)

  1. nano /etc/default/grub
  2. GRUB_CMDLINE_LINUX="之前的内容 quiet i915.force_probe=4e71"
  3. #存盘退出

  4. # 更新grub
  5. update-grub

  6. # 启用guc
  7. nano /etc/modprobe.d/i915.conf
  8. # 输入
  9. options i915 force_probe=1 enable_guc=2
  10. # 存盘退出

  11. # 重启
  12. reboot
复制代码
更多信息,可以参考 n6005/n5105在debian11实现jellyfin硬解_debian jellyfin-CSDN博客


2.2 安装/升级guc/huc固件
n5105/n6005 开启jellyfin硬解的话,需要开启低电压模式 [color=var(--b3-protyle-inline-link-color)]Intel GPU | Jellyfin,开启低电压模式需要启用guc和huc,详情可以查看官方文档[color=var(--b3-protyle-inline-link-color)]Intel GPU | Jellyfin ,这里记录一下我的处理过程

首先查看i915内核是否可以使用GUC
  1. sudo modinfo i915 | egrep -i "guc|huc|dmc"
复制代码
如果命令显示内容包含guc、huc、dmc,说明当前包含了Guc,如下

  1. firmware:       i915/skl_huc_2.0.0.bin
  2. firmware:       i915/bxt_huc_2.0.0.bin
  3. firmware:       i915/kbl_huc_4.0.0.bin
  4. firmware:       i915/glk_huc_4.0.0.bin
  5. firmware:       i915/kbl_huc_4.0.0.bin
  6. firmware:       i915/kbl_huc_4.0.0.bin
  7. firmware:       i915/cml_huc_4.0.0.bin
  8. firmware:       i915/icl_huc_9.0.0.bin
  9. firmware:       i915/ehl_huc_9.0.0.bin
  10. firmware:       i915/ehl_huc_9.0.0.bin
  11. firmware:       i915/tgl_huc_7.9.3.bin
  12. firmware:       i915/tgl_huc_7.9.3.bin
  13. firmware:       i915/dg1_huc.bin
  14. firmware:       i915/tgl_huc_7.9.3.bin
  15. firmware:       i915/tgl_huc.bin
  16. firmware:       i915/tgl_huc_7.9.3.bin
  17. firmware:       i915/tgl_huc.bin
  18. firmware:       i915/skl_guc_70.1.1.bin
  19. firmware:       i915/bxt_guc_70.1.1.bin
  20. firmware:       i915/kbl_guc_70.1.1.bin
  21. firmware:       i915/glk_guc_70.1.1.bin
  22. firmware:       i915/kbl_guc_70.1.1.bin
  23. firmware:       i915/kbl_guc_70.1.1.bin
  24. firmware:       i915/cml_guc_70.1.1.bin
  25. firmware:       i915/icl_guc_70.1.1.bin
  26. firmware:       i915/ehl_guc_70.1.1.bin
  27. firmware:       i915/ehl_guc_70.1.1.bin
  28. firmware:       i915/tgl_guc_70.1.1.bin
  29. firmware:       i915/tgl_guc_70.1.1.bin
  30. firmware:       i915/dg1_guc_70.bin
  31. firmware:       i915/tgl_guc_69.0.3.bin
  32. firmware:       i915/tgl_guc_70.1.1.bin
  33. firmware:       i915/tgl_guc_70.bin
  34. firmware:       i915/adlp_guc_69.0.3.bin
  35. firmware:       i915/adlp_guc_70.1.1.bin
  36. firmware:       i915/adlp_guc_70.bin
  37. firmware:       i915/dg2_guc_70.bin
  38. firmware:       i915/bxt_dmc_ver1_07.bin
  39. firmware:       i915/skl_dmc_ver1_27.bin
  40. firmware:       i915/kbl_dmc_ver1_04.bin
  41. firmware:       i915/glk_dmc_ver1_04.bin
  42. firmware:       i915/icl_dmc_ver1_09.bin
  43. firmware:       i915/tgl_dmc_ver2_12.bin
  44. firmware:       i915/rkl_dmc_ver2_03.bin
  45. firmware:       i915/dg1_dmc_ver2_02.bin
  46. firmware:       i915/adls_dmc_ver2_01.bin
  47. firmware:       i915/adlp_dmc_ver2_16.bin
  48. firmware:       i915/dg2_dmc_ver2_07.bin
  49. parm:           enable_guc:Enable GuC load for GuC submission and/or HuC load. Required functionality can be selected using bitmask values. (-1=auto [default], 0=disable, 1=GuC submission, 2=HuC load) (int)
  50. parm:           guc_log_level:GuC firmware logging level. Requires GuC to be loaded. (-1=auto [default], 0=disable, 1..4=enable with verbosity min..max) (int)
  51. parm:           guc_firmware_path:GuC firmware path to use instead of the default one (charp)
  52. parm:           huc_firmware_path:HuC firmware path to use instead of the default one (charp)
  53. parm:           dmc_firmware_path:DMC firmware path to use instead of the default one (charp)
复制代码
UNAS还需要启用一下GUC(如果按照2.1中启用过guc了,此处无需再启用一次)

  1. sudo mkdir -p /etc/modprobe.d
  2. sudo sh -c "echo 'options i915 enable_guc=2' >> /etc/modprobe.d/i915.conf"<span style="font-size: 12px; background-color: rgb(255, 255, 255);">​</span>
复制代码
启用guc后,更新 initramfs 和 grub
  1. sudo update-initramfs -u && sudo update-grub
复制代码
然后重启系统
  1. reboot
复制代码

检查i915的状态

  1. sudo dmesg | grep i915<span style="font-size: 12px; background-color: rgb(255, 255, 255);">​</span>
复制代码

查看GuC状态

  1. sudo cat /sys/kernel/debug/dri/0/gt/uc/guc_info


  2. #如果返回信息中status为RUNNING则正常
  3. GuC firmware: i915/ehl_guc_70.1.1.bin
  4.         status: RUNNING
  5.         version: found 70.1.1
  6.         uCode: 274112 bytes
  7.         RSA: 256 bytes

  8. GuC status 0x8003f0ec:
  9.         Bootrom status = 0x76
  10.         uKernel status = 0xf0
  11.         MIA Core status = 0x3

  12. Scratch registers:
  13.          0:     0x0
  14.          1:     0x1773d7
  15.          2:     0x44000
  16.          3:     0x4000
  17.          4:     0x40
  18.          5:     0x514
  19.          6:     0x4e610001
  20.          7:     0x0
  21.          8:     0x0
  22.          9:     0x0
  23.         10:     0x0
  24.         11:     0x0
  25.         12:     0x0
  26.         13:     0x0
  27.         14:     0x0
  28.         15:     0x0

  29. GuC logging stats:
  30.         Relay full count: 0
  31.         DEBUG:  flush count          0, overflow count          0
  32.         CRASH:  flush count          0, overflow count          0
  33.         CAPTURE:        flush count          0, overflow count          0
复制代码


查看HuC状态
  1. sudo cat /sys/kernel/debug/dri/0/gt/uc/huc_info

  2. #如果返回信息中status为RUNNING则正常
  3. HuC firmware: i915/ehl_huc_9.0.0.bin
  4.         status: RUNNING
  5.         version: found 9.0.0
  6.         uCode: 498496 bytes
  7.         RSA: 256 bytes
  8. HuC status: 0x0007c001<span style="font-size: 12px; background-color: rgb(255, 255, 255);">​</span>
复制代码

UNAS直接启用Guc和Huc是异常的,如果显示状态时Running,则无需处理,异常的话,则需要升级一下GuC和HuC。在异常信息中,提示了在哪里可以下载Guc,也可以直接访问https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git下载最新的tag,解压后得到其中i915文件夹,或者使用附件提供的i915,然后复制到 /lib/firmware/
  1. cp -r ./i915 /lib/firmware/<span style="font-size: 12px; background-color: rgb(255, 255, 255);">​</span>
复制代码

然后重启电脑,再次执行命令查看GuC和HuC的状态,变成Running则正常

登录jellyfin,在控制台-播放-硬件加速中,选择Intel QuickSync(QSV),启用所有硬件解码
重点:
启用低电压模式的 Intel H.264 硬件编码器
启用低电压模式的 Intel HEVC 硬件编码器
允许以 HEVC 格式编码
启用色调映射

打开一部影片,可以使用​intel_gpu_top​命令查看gpu使用情况


特别说明:个人升级内核有风险,可能会有造成系统不稳定的风险,官方是不会负责的,所以升级的小伙伴三思而后行,我目前升级后使用了几天,倒是没发现什么问题,但是使用ZFS的小伙伴,千万不要升级哦


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|万由科技 ( 浙ICP备10004788号-13 )

GMT+8, 2024-4-30 18:29 , Processed in 0.101665 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表