Skip to content

Releases: PeterSuh-Q3/mshell-manager-rel

MSHELL Manager 1.2.9

Choose a tag to compare

@PeterSuh-Q3 PeterSuh-Q3 released this 14 Sep 14:38

v1.2.9

English

  • Declares nginx.service as the MSHELL Manager start dependency.
  • Aligns DSM app startup with built-in web packages such as File Station and Web Station, so the Manager Web UI starts only after nginx is ready.
  • Installation remains independent of nginx; no install-time service dependency was added.
  • Changes the DSM package ID from MshellManager to lowercase mshellmanager to use a separate, clean package lifecycle.
  • Primary purpose: on heavily loaded DSM systems, an early package-start attempt could be recorded and notified as a failure even though the package's normal systemd start completed successfully moments later. The new lifecycle is intended to avoid that misleading false-start notification.
  • Why this ID change: DSM binds a package ID to its package registry entry, systemd unit, webman route, and enabled marker. A clean lowercase ID isolates the new lifecycle from stale state left by the legacy MshellManager package while addressing the false-start notification. This does not claim that uppercase letters alone were the root cause.
  • Migration required: this is a new DSM package, not an in-place upgrade. Rebuild the loader with the new mshellmanager auto-install asset before removing the legacy package. Otherwise, the loader's embedded MshellManager asset will reinstall the legacy package on the next boot and both packages will coexist.
  • Recommended order: update the loader asset and rebuild, boot DSM, remove legacy MshellManager, then install mshellmanager.

한국어

  • MSHELL Manager의 시작 선행 서비스로 nginx.service를 선언했습니다.
  • File Station, Web Station 등 DSM 기본 Web UI 패키지와 동일하게 nginx가 준비된 뒤 Manager Web UI가 시작되도록 정렬합니다.
  • 설치 과정은 nginx에 종속되지 않으며 install-time 서비스 의존성은 추가하지 않았습니다.
  • DSM package ID를 MshellManager에서 소문자 mshellmanager로 변경해 별도의 깨끗한 패키지 lifecycle을 사용합니다.
  • 핵심 목적: 무거운 DSM 시스템에서는 패키지의 정상 systemd 시작이 잠시 뒤 성공하더라도, 그 이전의 시작 시도가 실패로 기록·알림되는 경우가 있었습니다. 새 lifecycle은 이 오해의 소지가 있는 거짓 시작 오류 알림을 회피하기 위한 것입니다.
  • ID를 변경한 이유: DSM은 package ID를 package registry, systemd unit, webman 경로, enabled marker와 연결합니다. 새 소문자 ID는 거짓 시작 오류 알림을 개선하는 동안 기존 MshellManager 패키지에 남아 있을 수 있는 상태와 새 lifecycle을 분리합니다. 대문자 자체가 근본 원인이라고 단정하는 변경은 아닙니다.
  • 마이그레이션 필수: 이는 인플레이스 업그레이드가 아닌 새 DSM 패키지입니다. 기존 패키지를 제거하기 전에 로더의 자동 설치 자산을 새 mshellmanager로 교체하고 로더를 재빌드해야 합니다. 그렇지 않으면 로더에 내장된 기존 MshellManager 자산이 다음 부팅에 다시 설치되어 두 패키지가 공존합니다.
  • 권장 순서: 로더 자산 갱신 및 재빌드 → DSM 부팅 → 기존 MshellManager 제거 → mshellmanager 설치.

SHA-256: ecea0f86ba7524e5451615bf93703d60dcea448618edb13b5ea682270187348c

MSHELL Manager 1.2.8

Choose a tag to compare

@PeterSuh-Q3 PeterSuh-Q3 released this 14 Sep 06:15

v1.2.8

English

  • Stores DSM runtime display metadata as general.runtime_version and general.runtime_smallfixnumber only after model and base-build validation.
  • Keeps payload general.smallfixnumber, P2 hashes, and boot payload files unchanged. Friend can show the DSM runtime update while safely falling back after a payload replacement or rollback.
  • GRUB label synchronization now runs only after this runtime metadata is current.

한국어

  • 모델·기본 빌드 검증 후에만 DSM runtime 표시 메타데이터를 general.runtime_version, general.runtime_smallfixnumber로 기록합니다.
  • payload general.smallfixnumber, P2 해시, 부트 payload 파일은 변경하지 않습니다. Friend는 DSM runtime Update를 표시하되 payload 교체·rollback 뒤에는 안전하게 fallback합니다.
  • GRUB 라벨 동기화는 runtime 메타데이터가 최신 상태일 때만 수행합니다.

SHA-256: d7cbf1b305eb5705cfb4a48948cc44ac0db8ae8e14fc38a209b468c81ee1f194

MSHELL Manager 1.2.7

Choose a tag to compare

@PeterSuh-Q3 PeterSuh-Q3 released this 14 Sep 04:53

v1.2.7

English

  • Synchronizes the displayed DSM Update number in the MSHELL Friend and DSM reinstall GRUB labels with DSM runtime /etc.defaults/VERSION.
  • Preserves the boot payload update separately, for example: Update 12 (boot U8).
  • Never changes P2 rd.gz/zImage, their hashes, or user_config.json. Synchronization is model- and build-matched, idempotent, backed up, and safely skipped on validation or mount failures.

한국어

  • MSHELL Friend 및 DSM 재설치 GRUB 메뉴의 표시 Update 번호를 DSM runtime /etc.defaults/VERSION 기준으로 동기화합니다.
  • 부트 payload Update는 별도로 보존합니다. 예: Update 12 (boot U8).
  • P2 rd.gz/zImage, 해시, user_config.json은 변경하지 않습니다. 모델·빌드가 일치할 때만 동작하며, 멱등성·백업·마운트/검증 실패 시 안전한 no-op 처리를 적용했습니다.

SHA-256: b8fd02076c1dbf74d4dcbd6a87c16ed913d0b2f8e3c0f0561e33356ccc96ab3d

MSHELL Manager 1.2.6

Choose a tag to compare

@PeterSuh-Q3 PeterSuh-Q3 released this 12 Sep 09:40

v1.2.6

English

  • Replaced the NVMe smartctl polling fallback with nvme smart-log.
  • Reads temperature and Critical Warning together from the NVMe namespace device.
  • Avoids DSM bundled smartctl 6.5 NVMe Identify Controller probes that can add error-log entries on affected Samsung NVMe drives during auto-refresh.

한국어

  • NVMe 실시간 조회 fallback을 smartctl 대신 nvme smart-log으로 교체했습니다.
  • NVMe namespace 장치에서 온도와 Critical Warning을 한 번에 읽습니다.
  • 자동 새로고침 중 일부 Samsung NVMe에서 DSM 내장 smartctl 6.5의 Identify Controller 조회가 Error Log를 누적할 수 있는 문제를 피합니다.

SHA-256: 039c75db1ad11da722257ba4184a59743025f63d824d928f362807dadaaec928

MSHELL Manager 1.2.5

Choose a tag to compare

@PeterSuh-Q3 PeterSuh-Q3 released this 05 Sep 14:34

MSHELL Manager v1.2.5

English

  • Bundles the verified AMD and Intel GPU Top runtimes directly in MSHELL Manager. No separately installed amdgpu_top or intel_gpu_top SPK is required for the GPU consoles or optional telemetry enrichment.
  • AMD uses amdgpu_top with its private libdrm runtime; Intel uses intel_gpu_top.real with private libpci and libudev. Each runtime archive is SHA-256 verified during the Manager build and its embedded manifest is retained in the installed package.
  • GPU consoles and telemetry now use the package-private runtime paths instead of /usr/bin or PATH lookups, avoiding conflicts with independently installed GPU Top packages. No global symbolic links or additional setuid helpers are created.

한국어

  • 검증된 AMD·Intel GPU Top runtime을 MSHELL Manager 패키지에 직접 내장했습니다. GPU 콘솔과 선택적 텔레메트리 보강을 위해 별도의 amdgpu_top 또는 intel_gpu_top SPK 설치가 필요하지 않습니다.
  • AMD는 전용 libdrm과 함께 amdgpu_top을, Intel은 전용 libpci·libudev와 함께 intel_gpu_top.real을 사용합니다. 각 runtime archive는 Manager 빌드 시 SHA-256으로 검증되며, 내장 manifest도 설치 패키지에 유지됩니다.
  • GPU 콘솔과 텔레메트리는 이제 /usr/bin 또는 PATH 조회 대신 Manager의 내부 runtime 경로를 사용합니다. 독립 GPU Top 패키지와의 충돌을 피하며, 전역 심볼릭 링크나 추가 setuid 헬퍼는 만들지 않습니다.

SHA-256: 5a5c5f4635df26e1622016760d30a162e5baf71ebaecd2b4f765b5ddc1110e47

MSHELL Manager 1.2.4

Choose a tag to compare

@PeterSuh-Q3 PeterSuh-Q3 released this 05 Sep 07:09

MSHELL Manager v1.2.4

English

  • Reworked the AMD GPU tab into a 30:70 two-column dashboard: seven compact telemetry cards use a 2 × 4 grid on the left, while the AMDGPU Console takes the wider right side.
  • The console panel is present in the layout at all times and opens an option-free amdgpu_top session when Show Console is enabled. It remains side-by-side down to 980px, then stacks below the cards on narrower screens.
  • Corrected the sidebar label from Termainal & dmesg to Terminal & dmesg.

AMD GPU monitoring dashboard and amdgpu_top console

한국어

  • AMD GPU 탭을 30:70 비율의 2열 대시보드로 재구성했습니다. 좌측에는 축소한 텔레메트리 카드 7개를 2 × 4 배열로 표시하고, 넓어진 우측에는 AMDGPU Console을 배치합니다.
  • 콘솔 패널은 항상 레이아웃에 표시되며, Show Console을 활성화하면 옵션 없는 amdgpu_top 세션을 실행합니다. 980px 미만의 좁은 화면에서만 카드 아래로 자동 배치됩니다.
  • 좌측 탭 이름의 Termainal & dmesg 오타를 Terminal & dmesg로 수정했습니다.

SHA-256: e4f9477bbf8c64994408d7e3dda2d32e2985172576a748dc29d5faae3f490207

MSHELL Manager 1.2.3

Choose a tag to compare

@PeterSuh-Q3 PeterSuh-Q3 released this 03 Sep 12:49
0492372

MSHELL Manager v1.2.3

English

  • Reworked the AMD GPU tab to use the same compact monitoring-card design as NVIDIA: seven yellow telemetry cards in a responsive 4 + 3 layout.

  • Added a bundled AMD DRM/sysfs collector derived from syno-gpu-monitor/amd; it is packaged with MSHELL Manager and does not require the separate AMD GPU Monitor package.

  • Preserved multi-GPU PCI mapping and amdgpu_top priority values, while using the bundled collector to fill unavailable DRM/hwmon values.

  • Retained 5-second auto-refresh, 50-sample utilization history, dark-mode synchronization, and the option-free amdgpu_top console.

  • Added a dynamically exposed Intel GPU tab below AMD GPU, using four Intel GPU Monitor telemetry cards: GPU utilization, GPU clock, temperature, and power.

  • Bundled the Intel DRM/sysfs/hwmon/PMU collector from syno-gpu-monitor/intel. It works without intel_gpu_top; an installed intel_gpu_top is detected only as an optional diagnostic capability.

  • Added an Intel GPU Show Console control. When intel_gpu_top is installed, it launches in an isolated ttyd console without affecting telemetry refresh or the regular terminal.

  • Intel GPU power now prefers the latest intel_gpu_top -J GPU power sample, with DRM hwmon fallback when the tool is unavailable or cannot provide a value. GPU temperature also falls back to DSM sys_temp when no dedicated GPU sensor is exposed.

    Intel GPU monitor

한국어

  • AMD GPU 탭을 NVIDIA와 동일한 모니터링 카드 디자인으로 재구성했습니다. 노란색 텔레메트리 카드 7개를 반응형 4 + 3 배열로 표시합니다.

  • syno-gpu-monitor/amd 기반 AMD DRM/sysfs 수집기를 MSHELL Manager 패키지에 내장했습니다. 별도 AMD GPU Monitor 패키지 설치는 필요하지 않습니다.

  • 다중 GPU PCI 매핑과 amdgpu_top 우선 수집값은 유지하고, DRM/hwmon에서 누락된 값만 내장 수집기로 보완합니다.

  • 5초 자동 갱신, 50개 GPU 사용률 히스토리, 다크 모드 동기화 및 옵션 없는 amdgpu_top 콘솔을 유지했습니다.

  • AMD GPU 아래에 동적으로 노출되는 Intel GPU 탭을 추가했습니다. Intel GPU Monitor의 GPU 사용률, GPU 클럭, 온도, 전력 4개 카드를 사용합니다.

  • syno-gpu-monitor/intel 기반 DRM/sysfs/hwmon/PMU 수집기를 내장했습니다. intel_gpu_top 없이 동작하며, 설치된 경우에만 선택적 진단 기능으로 감지합니다.

  • Intel GPU에 Show Console 컨트롤을 추가했습니다. intel_gpu_top이 설치된 경우 전용 ttyd 콘솔에서 실행되며, 텔레메트리 갱신 및 일반 터미널과 분리됩니다.

  • Intel GPU 전력은 최신 intel_gpu_top -J의 GPU 전력값을 우선 사용하고, 도구가 없거나 값을 제공하지 못하면 DRM hwmon 값으로 보완합니다. 전용 GPU 센서가 없는 경우 GPU 온도는 DSM sys_temp를 fallback으로 사용합니다.

    Intel GPU 모니터


SHA-256: eaf5f298136c2f4ead44036b3eb0081cee8e81424a109f08f4d6521d54a6a05c

MSHELL Manager 1.2.2

Choose a tag to compare

@PeterSuh-Q3 PeterSuh-Q3 released this 02 Sep 09:24

English

NVIDIA telemetry is now self-contained

  • The NVIDIA tab now includes an MSHELL-owned NVML collector. It reads the
    NVIDIA driver's libnvidia-ml runtime directly and no longer depends on
    the separate Synology NVIDIA GPU Monitor package.
  • Includes a collector built with the DSM-ABI-compatible cross compiler;
    build and release workflows package that verified target binary directly.

New NVIDIA monitoring layout

  • Replaced the old compact metric row with eight cards in a 4×2 layout:
    GPU utilization, VRAM utilization, NVENC utilization, NVDEC utilization,
    GPU temperature, fan speed, GPU clock, and memory clock.
  • Added five-second refresh and 50-sample history graphs for GPU, NVENC, and
    NVDEC utilization. The original large GPU icon and model name remain at the
    top; the console remains available on demand.
  • Applied yellow metric-card styling and synchronized the embedded monitor
    with MSHELL's Daylight/Dark theme toggle.

Reliability fixes

  • Fixed the embedded monitor's DSM authentication-token handling. Its API
    requests now use the same authenticated path as the main MSHELL page.
  • Kept the fast single-query NVIDIA detection introduced in v1.2.1, so the
    NVIDIA tab is not hidden by a slow initial probe.

한국어

NVIDIA 텔레메트리 내장화

  • NVIDIA 탭에 MSHELL 자체 NVML collector를 포함했습니다. NVIDIA 드라이버의
    libnvidia-ml을 직접 사용하므로 별도 Synology NVIDIA GPU Monitor 패키지에
    의존하지 않습니다.
  • DSM ABI 호환 크로스 컴파일된 collector 바이너리를 포함하며, 빌드·릴리즈
    워크플로우는 검증된 대상 바이너리를 직접 패키징합니다.

NVIDIA 모니터링 UI 개편

  • 기존의 간단한 지표 행을 가로 4개 × 2열, 총 8개 카드로 교체했습니다.
    GPU 사용률, VRAM 사용률, NVENC 사용률, NVDEC 사용률, GPU 온도, 팬 속도,
    GPU 클록, 메모리 클록을 표시합니다.
  • GPU/NVENC/NVDEC 사용률은 5초 갱신과 50개 샘플 이력 그래프를 제공합니다.
    기존의 큰 GPU 아이콘과 모델명은 상단에 유지하고, Console도 필요할 때
    계속 열 수 있습니다.
  • 지표 카드는 노란색 계열로 적용했으며, 내장 화면도 MSHELL의 Daylight/Dark
    토글에 맞춰 함께 전환됩니다.

안정성 수정

  • 내장 모니터 iframe의 DSM 인증 토큰 처리를 수정했습니다. 이제 메인 MSHELL
    화면과 동일한 인증 경로로 API를 호출합니다.
  • v1.2.1에서 적용한 빠른 단일 NVIDIA 조회도 유지해, 초기 조회가 느리다는
    이유만으로 NVIDIA 탭이 숨겨지지 않도록 했습니다.

SHA-256: fb5c3557af83b352e170d407d846f25dfe7515e92f2ae8476400c81deeff71aa

MSHELL Manager 1.2.1

Choose a tag to compare

@PeterSuh-Q3 PeterSuh-Q3 released this 02 Sep 00:29

English

NVIDIA tab reliably appears on DSM

  • Fixed a false "no NVIDIA GPU" result during the first page load. The UI
    decides whether to show the NVIDIA tab within five seconds, but the backend
    previously ran many separate nvidia-smi queries for each GPU. On DSM this
    could exceed the limit even when the NVIDIA driver and GPU were healthy,
    leaving the tab hidden.
  • GPU metrics are now collected with one bulk nvidia-smi query. Verified on
    real hardware with a Quadro P1000: the JSON response completed in about one
    second and the NVIDIA tab appeared normally.

Reliable frontend refresh after an upgrade

  • Updated the manager iframe and JavaScript cache revision so a package
    upgrade loads the current frontend rather than a browser-cached older bundle.

한국어

DSM에서 NVIDIA 탭이 안정적으로 노출되도록 수정

  • 첫 화면 로딩 때 NVIDIA GPU가 없다고 잘못 판단해 탭이 숨겨질 수 있던
    문제를 수정했습니다. UI는 5초 안에 NVIDIA 탭 노출 여부를 판단하지만,
    기존 백엔드는 GPU별로 여러 번의 nvidia-smi를 순차 실행했습니다.
    DSM에서는 드라이버와 GPU가 정상이어도 이 시간이 제한을 넘을 수
    있었습니다.
  • 이제 필요한 GPU 지표를 한 번의 일괄 nvidia-smi 조회로 가져옵니다.
    Quadro P1000 실기에서 약 1초 안에 JSON 응답과 정상적인 NVIDIA 탭
    노출을 확인했습니다.

업그레이드 후 프론트엔드 갱신 안정화

  • 패키지 업그레이드 후에도 브라우저 캐시에 남은 구형 번들이 아닌 현재
    JavaScript를 읽도록 Manager iframe과 스크립트 캐시 버전을 갱신했습니다.

SHA-256: e907357ac8b73bdf00aa6fa58659f27ecd0ebc1e8f21ad3c9e6450a68531bd2a

MSHELL Manager 1.2.0

Choose a tag to compare

@PeterSuh-Q3 PeterSuh-Q3 released this 31 Aug 14:23

English

New "CPU Performance" tab

  • CPU governor, turbo mode, thread (HyperThreading) count, and
    schedutil rate-limit/boost controls now live on their own tab -
    new icon (⚡), at the bottom of the Misc section in the sidebar.
  • This feature actually already existed end-to-end (backend actions,
    setuid helper allowlist, CGI wrappers, frontend API client, and a
    fully built card UI with confirmation dialogs) - only the single
    line that mounted it into the page was missing, so it never
    rendered anywhere. It's not new code so much as a wire that was
    never connected.
  • Each card:
    • CPU Threads - choose how many logical threads are active
      (1/2/4/6/8/12/16/all) and whether physical cores or HT siblings
      are filled first. Persists across reboots.
    • CPU Governor - pick the active frequency-scaling governor.
      Applied immediately to every CPU core and saved to the loader
      config so it survives a reinstall.
    • CPU Turbo Mode - on/off (only shown when the scaling driver
      is acpi-cpufreq). Restored automatically after reboot.
    • Dynamic Power Saving - schedutil rate-limit tuning plus a
      time-boxed boost triggered by real I/O pressure (PSI, falling
      back to /proc/diskstats).

Avoids fighting the tcrp-addons "cpufreq-scaler" addon

  • That addon runs a systemd service which busy-loops every 0.5s,
    forcing scaling_governor back to userspace and hand-stepping
    the frequency itself - a silent, continuous fight against anything
    written by the CPU Performance tab above. Confirmed on real
    hardware (45.9): the addon's scripts and unit were installed and
    enabled.
  • Governor/turbo/schedutil "set" (and schedutil's boost-start) now
    stop and disable that addon's service first, if it's currently
    active, so a change made here actually sticks. This only runs at
    the moment you use this tab - not as a background job, and it
    doesn't touch the addon at all if you never use CPU Performance.

DSM card: model name shown first

  • The System Info tab's DSM card now shows the Synology model name
    on the title line, with the DSM version underneath - previously
    the order was reversed.

MSHELL Manager's own version now shows a "v" prefix

  • The installed-version tile reads "v1.2.0" instead of a bare
    "1.2.0", matching how the loader and FRIEND kernel version tiles
    already display.

한국어

새 "CPU Performance" 탭

  • CPU 거버너, 터보 모드, 스레드(HT) 개수, schedutil rate-limit/부스트
    제어가 이제 별도 탭으로 분리됐습니다 - 새 아이콘(⚡), 사이드바
    Misc 섹션 맨 아래에 위치합니다.
  • 사실 이 기능은 이미 처음부터 끝까지(백엔드 액션, setuid 헬퍼
    allowlist, CGI 래퍼, 프론트엔드 API client, 확인 다이얼로그까지
    갖춘 완성된 카드 UI) 다 만들어져 있었는데, 화면에 마운트하는
    단 한 줄이 빠져서
    어디에도 표시된 적이 없었습니다. 새 기능이라기
    보다는 연결이 안 돼있던 선을 이어준 것에 가깝습니다.
  • 각 카드:
    • CPU Threads - 활성 논리 스레드 개수 선택(1/2/4/6/8/12/16/전체),
      물리 코어 우선 vs HT 채우기 우선 순서 선택. 재부팅 후에도 유지.
    • CPU Governor - 활성 주파수 스케일링 거버너 선택. 즉시 전
      코어에 적용되고 로더 설정에 저장돼 재설치해도 유지됨.
    • CPU Turbo Mode - 켬/끔(acpi-cpufreq 드라이버일 때만 표시).
      재부팅 후 자동 복원.
    • Dynamic Power Saving - schedutil rate-limit 조정 + 실제 I/O
      압력(PSI, 없으면 /proc/diskstats)으로 트리거되는 시간제한부 부스트.

tcrp-addons의 "cpufreq-scaler" addon과의 충돌 회피

  • 이 addon은 0.5초마다 도는 systemd 서비스로 scaling_governor
    계속 userspace로 강제 되돌리고 자체적으로 주파수를 조절합니다 -
    위 CPU Performance 탭에서 쓴 값을 조용히, 지속적으로 뒤집어버립니다.
    실기(45.9)에서 이 addon의 스크립트와 유닛이 설치·활성화돼 있는
    것을 확인했습니다.
  • 이제 Governor/Turbo/schedutil의 "set"(및 schedutil의 boost-start)이
    이 addon의 서비스가 현재 살아있으면 먼저 정지·비활성화한 뒤 값을
    적용합니다. 이 탭을 실제로 조작하는 순간에만 동작하고, 백그라운드
    작업이 아니며, CPU Performance를 안 쓰면 addon에 전혀 손대지
    않습니다.

DSM 카드: 모델명이 먼저 표시

  • System Info 탭의 DSM 카드가 이제 타이틀 줄에 시놀로지 모델명을
    먼저 보여주고, 그 아래에 DSM 버전을 표시합니다 - 이전엔 순서가
    반대였습니다.

MSHELL Manager 자체 버전에 "v" 접두사 표기

  • 설치된 버전 타일이 이제 "1.2.0"이 아니라 "v1.2.0"으로 표시됩니다 -
    로더/FRIEND 커널 버전 타일과 동일한 표기 방식입니다.

SHA-256: 99a61fd76d8ec539a95f647b364ced448d4dd8a057b3f8718d4de9eb8b4ede05