Releases: PeterSuh-Q3/mshell-manager-rel
Release list
MSHELL Manager 1.2.9
v1.2.9
English
- Declares
nginx.serviceas 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
MshellManagerto lowercasemshellmanagerto 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
MshellManagerpackage 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
mshellmanagerauto-install asset before removing the legacy package. Otherwise, the loader's embeddedMshellManagerasset 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 installmshellmanager.
한국어
- 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
v1.2.8
English
- Stores DSM runtime display metadata as
general.runtime_versionandgeneral.runtime_smallfixnumberonly 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
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, oruser_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
v1.2.6
English
- Replaced the NVMe
smartctlpolling fallback withnvme 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
MSHELL Manager v1.2.5
English
- Bundles the verified AMD and Intel GPU Top runtimes directly in MSHELL Manager. No separately installed
amdgpu_toporintel_gpu_topSPK is required for the GPU consoles or optional telemetry enrichment. - AMD uses
amdgpu_topwith its private libdrm runtime; Intel usesintel_gpu_top.realwith 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/binor 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_topSPK 설치가 필요하지 않습니다. - 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
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_topsession 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 & dmesgtoTerminal & dmesg.
한국어
- 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
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_toppriority 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_topconsole. -
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 withoutintel_gpu_top; an installedintel_gpu_topis detected only as an optional diagnostic capability. -
Added an Intel GPU
Show Consolecontrol. Whenintel_gpu_topis 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 -JGPU power sample, with DRM hwmon fallback when the tool is unavailable or cannot provide a value. GPU temperature also falls back to DSMsys_tempwhen no dedicated GPU sensor is exposed.
한국어
-
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 온도는 DSMsys_temp를 fallback으로 사용합니다.
SHA-256: eaf5f298136c2f4ead44036b3eb0081cee8e81424a109f08f4d6521d54a6a05c
MSHELL Manager 1.2.2
English
NVIDIA telemetry is now self-contained
- The NVIDIA tab now includes an MSHELL-owned NVML collector. It reads the
NVIDIA driver'slibnvidia-mlruntime 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
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 separatenvidia-smiqueries 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-smiquery. 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
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
isacpi-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).
- CPU Threads - choose how many logical threads are active
Avoids fighting the tcrp-addons "cpufreq-scaler" addon
- That addon runs a systemd service which busy-loops every 0.5s,
forcingscaling_governorback touserspaceand 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)으로 트리거되는 시간제한부 부스트.
- CPU Threads - 활성 논리 스레드 개수 선택(1/2/4/6/8/12/16/전체),
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

