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

  2. 新建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
  3. 建立宿主机与群晖容器连接,内容自行修改,可以将其放入宿主机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
  4. 可选补丁-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}")
  5. 安装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

  6. 修复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