docker里的群晖

  1. 新建macvlan虚拟网络内容根据需要修改,ens33为宿主机真实网卡名称,192.168.10.131为分配给群晖的ip,192.168.10.132为宿主机分配的ip用于和群晖容器连接。
1
2
3
4
5
6
7
docker network create -d macvlan -o parent=ens33 \
--subnet 192.168.10.0/24 \
--gateway 192.168.10.254 \
--ip-range 192.168.10.131/27 \
--aux-address 'host=192.168.10.132' \
vdsm

  1. 新建docker-compose.yml内容自行修改
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  version: "3"
services:
dsm:
container_name: dsm
image: vdsm/virtual-dsm:latest
environment:
DISK_SIZE: "700G"
CPU_CORES: "2"
RAM_SIZE: "1024M"
ALLOCATE: "N"
GPU: "Y"
HOST_SERIAL: "Y(valid Serial number of a host Synology device)"
GUEST_SERIAL: "Y(Serial from the demo)"
VM_NET_MAC: "Y(Mac address from demo, see Network tab)"
devices:
- /dev/kvm
- /dev/vhost-net
- /dev/dri
cap_add:
- NET_ADMIN
- NET_RAW
networks:
vdsm:
ipv4_address: 192.168.10.131
volumes:
- /home/docker/dsm:/storage
restart: on-failure
stop_grace_period: 1m
privileged: true

networks:
vdsm:
external: true
  1. 建立宿主机与群晖容器连接,内容自行修改,可以将其放入宿主机rc.local开机自动运行
1
2
3
ip link add vdsm-shim link ens33 type macvlan  mode bridge
ip addr add 192.168.1.132/32 dev vdsm-shim
ip link set vdsm-shim up
  1. 可选补丁-AME激活
    修复ame,需要提前安装好python3.9和ame,仅供7.2版本使用,将以下保存为ame.py,然后在连接群晖容器ip,输入sudo -i获取root权限,运行ame.py即可。
    可选一键安装curl http://code.imnks.com/ame3patch/ame72-3005.py | python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import hashlib
import os

r = ['669066909066906690', 'B801000000', '30', 'B801000000669090']
s = [(0x3718, 0), (0x60A5, 1), (0x60D1, 1), (0x6111, 3), (0x6137, 1), (0xB5F0, 2)]

prefix = '/var/packages/CodecPack/target/usr'
so = prefix + '/lib/libsynoame-license.so'

print("Patching")
with open(so, 'r+b') as fh:
full = fh.read()
if hashlib.md5(full).digest().hex() != '09e3adeafe85b353c9427d93ef0185e9':
print("MD5 mismatch")
exit(1)
for x in s:
fh.seek(x[0] + 0x8000, 0)
fh.write(bytes.fromhex(r[x[1]]))

lic = '/usr/syno/etc/license/data/ame/offline_license.json'
os.makedirs(os.path.dirname(lic), exist_ok=True)
with open(lic, 'w') as licf:
licf.write('[{"attribute": {"codec": "hevc", "type": "free"}, "status": "valid", "extension_gid": null, "expireTime": 0, "appName": "ame", "follow": ["device"], "duration": 1576800000, "appType": 14, "licenseContent": 1, "registered_at": 1649315995, "server_time": 1685421618, "firstActTime": 1649315995, "licenseCode": "0"}, {"attribute": {"codec": "aac", "type": "free"}, "status": "valid", "extension_gid": null, "expireTime": 0, "appName": "ame", "follow": ["device"], "duration": 1576800000, "appType": 14, "licenseContent": 1, "registered_at": 1649315995, "server_time": 1685421618, "firstActTime": 1649315995, "licenseCode": "0"}]')


print("Checking whether patch is successful...")
ret = os.system(prefix + "/bin/synoame-bin-check-license")
if ret == 0:
print("Successful, updating codecs...")
os.system(prefix + "/bin/synoame-bin-auto-install-needed-codec")
print("Done")
else:
print(f"Patch is unsuccessful, retcode = {ret}")
  1. 安装ffmpeg套件
    社群https://packages.synocommunity.com国内无法连接,在套件来源中增加位置https://spk7.imnks.com/,然后搜索ffmpeg即可找到并安装。ffmpeg现有4、5、6共3个版本,推荐安装5。最新安装的版本将成为默认的ffmpeg。。
    自动模式
    curl https://ghproxy.com/https://raw.githubusercontent.com/AlexPresso/VideoStation-FFMPEG-Patcher/main/patcher.sh | bash -s -- -v 5
    以下为手动模式
    执行
    curl -L --max-filesize 512000 -o installer_OffLine.sh "https://raw.githubusercontent.com/darknebular/Wrapper_VideoStation/main/installer_OffLine.sh"
    给权限
    chmod +x installer_OffLine.sh
    执行
    /bin/bash installer_OffLine.sh "$@"
    检查
    看一下/var/packages/CodecPack/target/pack/bin/ffmpeg41,如果大小为0,自己用命令下载:
    wget -q https://raw.githubusercontent.com/darknebular/Wrapper_VideoStation/main/ffmpeg41-wrapper-DSM7_X-Advanced -O /var/packages/CodecPack/target/pack/bin/ffmpeg41

  2. 修复synology photo人脸识别(不建议可能造成不稳定)
    9代及以前的英特尔CPU能搞定核显就不要折腾这个补丁!如果CPU不带核显但安装机型支持核显,肯定要搞这个补丁了!安装机型原版CPU不带核显也不需要折腾补丁。
    先停用synology photo

1
2
3
4
5
6
7
8
wget http://code.imnks.com/face/PatchELFSharp
chmod +x PatchELFSharp
# support face and concept
./PatchELFSharp "/var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so.1.0" "_ZN9synophoto6plugin8platform20IsSupportedIENetworkEv" "B8 00 00 00 00 C3"
# force to support concept
./PatchELFSharp "/var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so.1.0" "_ZN9synophoto6plugin8platform18IsSupportedConceptEv" "B8 01 00 00 00 C3"
# force no Gpu
./PatchELFSharp "/var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so.1.0" "_ZN9synophoto6plugin8platform23IsSupportedIENetworkGpuEv" "B8 00 00 00 00 C3"

docker里的群晖
https://hexo.psorai.eu.org/2023/11/08/安装在docker容器里的群晖/
Author
Sora
Posted on
November 8, 2023
Licensed under