声明:本文仅供技术学习测试使用,转载请注明出处,不得用于任何商业行为
#!/bin/bash
wget https://raw.githubusercontent.com/wirgen/synocodectool-patch/master/patch.sh
chmod +x patch.sh
./patch.sh -p
执行输出如下,这里需要输入:2
,然后按回车
Detected DSM version: 7.2 64570-1
Patch for DSM Version (7.2 64570-1) AVAILABLE!
Available binaries to patch/restore:
1) /usr/syno/bin/synocodectool
2) /volume1/@appstore/VideoStation/bin/synocodectool
3) /volume1/@appstore/CodecPack/bin/synocodectool
4) Quit
Please choose which binary you want to patch/restore:
最终输出如下:
Detected DSM version: 7.2 64570-1
Patch for DSM Version (7.2 64570-1) AVAILABLE!
Available binaries to patch/restore:
1) /usr/syno/bin/synocodectool
2) /volume1/@appstore/VideoStation/bin/synocodectool
3) /volume1/@appstore/CodecPack/bin/synocodectool
4) Quit
Please choose which binary you want to patch/restore:2
Detected valid synocodectool. Creating backup..
Patching...
Patche
本文仅为研究学习驱动和测试用途,暂不提供编译好的驱动下载。
前几篇文章介绍了英特尔核显、英伟达独显在群晖下安装驱动,这次我们来研究 AMD 的显卡。
先说结论:在群晖 SA6400
上,移植 AMD 官方提供的显卡驱动是可行的,理论上这几年的 AMD 核显,包括:680M
、780M
,同时也能支持独立显卡,对比 PCI ID 最高支持到 RX 6900XT
本次的测试硬件是找公司内安全大佬借来的,型号为 MOREFINE M600
(R9-6900HX)(https://morefine.com/products/morefine-m600-mini-pc-amd-6900hx-6800u-6600u),群晖型号选择 SA6400
,懂得都懂。
配置方面不再赘述了,可以点击上面链接查看,主角是 AMD R9-6900HX 的核显:680M
。
本次测试基于 PVE 8.1.3,系统安装从 NVMe 盘上,由于某些原因,需要在 /etc/default/grub
里设置:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on nvme_core.default_ps_max_latency_us=0 pcie_aspm=off"
再 update-grub
后方才稳定使用。
echo "blacklist amdgpu" >> /etc/modprobe.d/blacklist.conf
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
下载 vbios.c 编译并执行
wget https://cdn.jim.plus/synology/scripts/vbios.c
gcc vbios.c -o vbios
./vbios
cp vbios_*.bin /usr/share/kvm/
创建好测试的虚拟机后,设置直通核显,并编辑 /etc/pve/qemu-server/10*.conf
hostpci0: 000000.0,pcie=1,romfile=vbios_1
16 系列到 40 系列驱动基于英伟达开源驱动编译:https://github.com/NVIDIA/open-gpu-kernel-modules.git,10 系列及以下基于同版本号的英伟达官方闭源驱动编译。
如果出现文件下载不了或者慢的问题,请自行解决
驱动仅使用于 SA6400 7.2&7.2.1 系统,其他版本请勿尝试。
相关测试:https://jim.plus/blog/post/jim/12-13-gen-intel-cpu-with-synology-sa6400-and-gpu-transcode-test
如果执行 opkg 命令报错
opkg: command not found
的话,请先安装 EntWare:https://github.com/Entware/Entware/wiki/Install-on-Synology-NAS
# 下载依赖,依赖的版本和驱动需要一一对应,必须下载指定版本
wget https://download.nvidia.com/XFree86/Linux-x86_64/535.54.03/NVIDIA-Linux-x86_64-535.54.03-no-compat32.run
# 准备必要的依赖项
opkg update
opkg install ldconfig
cp -l /bin/kmod /bin/depmod
# 默认的 /tmp 是没有 exec 权限的,这里重新挂载一下
mount -o remount,exec /tmp
sh NVIDIA-Linux-x86_64-535.54.03-no-compat32.run \
--no-kernel-modules \
--no-dkms \
--no-systemd \
--no-questions
英伟达的依赖安装会有询问,一路按回车即可
根据自己的显卡型号选择不同的驱动包,都是基于
NVIDIA-Linux-x86_64-535.54.03-no-compat32.run
编译的驱动。10 系列的驱动当前仅仅是编译通过,没有实体显卡测试过,有问题请群里反馈
FLEX 电源线不匹配,3080 独显暂时没法测试,后续再更新。去买了一个海韵
PX-1300
电源来测试
备注:这里测试的时候,转码的码率没有统一,有待重新测试纠正。
引导同 https://jim.plus/blog/post/jim/j6413-with-synology-sa6400
驱动名称 | 描述 |
---|---|
atlantic | AQC 网卡驱动 |
amdgpu | AMD 显卡驱动 |
igc | 英特尔 I225、I226 网卡驱动 |
i915 | 英特尔核显驱动 |
iptable 系列 | netfilter 相关驱动 |
nvidia 系列 | 英伟达显卡驱动 |
thunderbolt | 雷电设备驱动 |
vfio 系列 | 硬件直通相关驱动 |
这里的驱动编译自:https://github.com/intel/linux-intel-lts,在此感谢英特尔为
Linux 5.10
内核移植了 12 代核显驱动,本文中使用的驱动是从Linux 5.15
内核移植了 13&14 代核显驱动到Linux 5.10
内核。
引导中的核显驱动是主线 Linux 5.10
内核自带的,支持到 11 代,这里要更新到支持 12&13&14 代的
已知的群晖系统中,M.2 NVMe 只能做为存储池,并且不支持首次安装系统作为存储池,同时想使用 M.2 存储池的话,还得是特殊机型,目前来说,最后一点非常好解,可选的方案有:
libhwcontrol.so
后,存储管理页面创建那么目前来说,纯 NVMe 固态的群晖缺少的一环是:安装系统的时候,直接安装到 M.2 NVMe 固态,本文将粗略的讲解如何实现这一点的。
虚拟群晖额外的环境准备如下:
本文测试环境添加了两块虚拟盘
按照上面的操作,仅添加虚拟的 NVMe SSD 盘的时候,安装页面会显示如下图的找不到盘的提示,我们这里看一下截图右边的网络请求,查看所有的异步请求,发现倒数第二个里有硬盘相关的信息,我们就从这里查看下去。
get_state.cgi
输出get_state.cgi
是 nginx 代理的 cgi 程序,这个文件在 ramdisk 里其实上是一个 shell 脚本,我们先看一下输出,第 4 行直接说了没有磁盘:
{
"success": true,
"data": {
"has_disk": false,
"dsinfo": {
"product": "Synology NAS",
"model": "SA6400",
"internet_ok": "false",
"internet_install_ok": false,
"internet_migrate_ok": true,
"internet_reinstall_ok": true,
"internet_install_ve
未经授权,禁止转载
授权转发如下:
Tank:https://www.mi-d.cn/4666
老高:https://www.bilibili.com/video/BV1eT411D7zb
网站评论使用 Disqus,需要评论请科学上网。
本文仅提供基于 SA6400 7.1 的英特尔 11 代核显驱动安装教程,如存在无法硬解等情况,可以发送内核日志以及套件或者容器日志,以供分析排查问题。
目前已经有其他大佬开源了基于 intel-gpu-i915-backports
的核显驱动:https://xpenology.com/forum/topic/69865-i915-driver-for-sa6400/,喜欢自己动手的朋友可以按照文章自行尝试安装核显驱动,如果有安装疑问或者不可使用等情况,也可以捐赠进群交流,使用本博客的驱动。
本博客提供的核显驱动是基于 linux-intel-lts
构建。捐赠群有共享最新的 SA6400 7.2 相关的直通卡、优化后的核显驱动,欢迎捐赠(100 RMB+)进群,二维码见文章末尾。
当前捐赠群友获取支持的驱动特性和功能:
常见的群晖机器,例如 DS920+,DS918+,系统内核一直是 4.4 的,而这个内核自带的核显驱动最高支持到 9 代,魔改后可以支持 10 代,这是极限了,11 代以后的核显一直无解。
去年 10 月,曙光出现了,群晖更新了 SA6400 的工具链(https://archive.synology.com/download/ToolChain/toolchain/7.1-42661)和安装包(https://archive.synology.com/download/Os/DSM/7.1.1-42962),从工具链来看,支持的系统为:AMD x86 Linux Linux 5.10.55 (epyc7002) ,是新的 5.10 内核,而 5
硬酷 R1 N6005 16G
威联通 QSW-M2116P
设置后重启 R1,保证 LACP 生效
R1 接收 16 线程
稳定
跑满万兆,R1 发送 32 线程稳定
跑满万兆
这里仅仅是为了测试 R1 万兆可行性,日常要打满万兆,需要对应的应用支持多线程,例如文件同步使用 rclone
,iscsi
开启多径传输等等,单线程肯定最高只有 2.5G 的。
随便用客户端创建个 Docker 容器,查看 Token:
'http://192.168.3.125:9999/containers/create?name=hack&ugreen_nas_model=docker&api_token=xxxxGJkMTIyMzM0Y2YxYTBlZTJmZGI2MDhlODE0YjM4YzhiODhkYg%3D%3D'
Token 示例:
xxxxGJkMTIyMzM0Y2YxYTBlZTJmZGI2MDhlODE0YjM4YzhiODhkYg%3D%3D
container.json 文件内容如下:
{
"_query": {
"name": "hack"
},
"name": "hack",
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {},
"Tty": true,
"OpenStdin": true,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"Cmd": [
"/bin/sh"
],
"Healthcheck": {},
"Image": "alpine:latest",
"Volumes": null,
"Entrypoint": null,
"OnBuild": null,
"Labels": null,
"HostConfig": {
"PidMode": "host",
"Privileged": true,
"Devices": [
{
"CgroupPermissions": "mrw",
"PathInContainer": "/dev/dri/renderD128",
"PathOnHost": "/dev/dri/renderD128"
},
{
"CgroupPermissions": "