Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 28b23fe9f2 | |||
| f5f8e88966 | |||
| bf874d962a | |||
| f01b1f2c4f | |||
| ff34fe762e | |||
| 7e4407a1f8 | |||
| 539fb26791 | |||
| 003a2f77dd | |||
| 79b26ddfda | |||
| b8961fb47d | |||
| 4851f745d8 |
@@ -106,3 +106,40 @@ show up as low CPU, some GPU (`intel_gpu_top`) activity instead.
|
|||||||
- Exact supported codec list depends on the iGPU generation (device ID
|
- Exact supported codec list depends on the iGPU generation (device ID
|
||||||
`9a49`) — confirm via `vainfo` output once run, and enable only the
|
`9a49`) — confirm via `vainfo` output once run, and enable only the
|
||||||
hardware decode paths it actually reports.
|
hardware decode paths it actually reports.
|
||||||
|
|
||||||
|
## Post-deploy fix: two additional runtime packages required
|
||||||
|
|
||||||
|
After the initial deploy (Task 1's `SupplementaryGroups` grant) and
|
||||||
|
enabling QSV in the dashboard, HEVC HDR playback hung indefinitely
|
||||||
|
(Direct Play worked for some titles; titles that needed a real
|
||||||
|
transcode+tonemap never produced output). Root-caused via
|
||||||
|
`journalctl -u jellyfin` and the per-session ffmpeg transcode log
|
||||||
|
(`find / -xdev -iname '*ffmpeg-transcode*'`) — two separate runtimes
|
||||||
|
were missing beyond `intel-media-driver` (which only provides VAAPI):
|
||||||
|
|
||||||
|
1. **QSV session creation failed:** `Error creating a MFX session: -9`
|
||||||
|
/ `Error initializing an MFX session: -3` on
|
||||||
|
`-init_hw_device qsv=qs@va`. VAAPI and QSV are separate runtimes on
|
||||||
|
Linux — QSV needs the oneVPL/MFX GPU implementation. Fix: added
|
||||||
|
`pkgs.vpl-gpu-rt` ("oneAPI Video Processing Library Intel GPU
|
||||||
|
implementation"; note `onevpl-intel-gpu` is the old, renamed
|
||||||
|
attribute) to `hardware.graphics.extraPackages` in
|
||||||
|
`machines/jupiter/hardware-configuration.nix`.
|
||||||
|
|
||||||
|
2. **OpenCL device creation failed:** `Failed to get number of OpenCL
|
||||||
|
platforms: -1001` (`CL_PLATFORM_NOT_FOUND_KHR`) on
|
||||||
|
`-init_hw_device opencl=ocl@va`. The `tonemap_opencl` filter jellyfin
|
||||||
|
uses for HDR→SDR tone-mapping needs a working OpenCL ICD, which
|
||||||
|
nothing installed so far provides. Fix: added
|
||||||
|
`pkgs.intel-compute-runtime` ("Intel Graphics Compute Runtime oneAPI
|
||||||
|
Level Zero and OpenCL, supporting 12th Gen and newer" — matches
|
||||||
|
jupiter's Tiger Lake/Xe iGPU) to the same `extraPackages` list.
|
||||||
|
|
||||||
|
Confirmed working end-to-end: HEVC HDR transcode with QSV encode +
|
||||||
|
OpenCL tone-map runs at `speed=2.68x` realtime on jupiter's iGPU, and
|
||||||
|
plays smoothly on Apple TV (JellyTV app).
|
||||||
|
|
||||||
|
Both packages live in `machines/jupiter/hardware-configuration.nix`
|
||||||
|
(`hardware.graphics.extraPackages`), alongside `intel-media-driver`,
|
||||||
|
rather than in the jellyfin module itself — they're iGPU runtime
|
||||||
|
capabilities, not something specific to the jellyfin service.
|
||||||
|
|||||||
Generated
+14
-14
@@ -89,11 +89,11 @@
|
|||||||
"nixpkgs-regression": "nixpkgs-regression"
|
"nixpkgs-regression": "nixpkgs-regression"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784375420,
|
"lastModified": 1784762557,
|
||||||
"narHash": "sha256-dt1zVj4MRpmffhsgQk+3tx1m/pFTXbtVWrn5KZ1y+8Q=",
|
"narHash": "sha256-R/r6jRnANV50c8F5Fz5+1Q1moab0IGWRk+cg5ME2nMY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"rev": "bebd2f851a304e9fb2e143ce0cbeff577c6a37ac",
|
"rev": "d10c84cd0cc0efdcb29cf2611caf5fbcd10fa071",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -143,11 +143,11 @@
|
|||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784310968,
|
"lastModified": 1784723954,
|
||||||
"narHash": "sha256-rkSPTePrKqs4dg+i7ZFCq93+HrClac6oSwXX927SVjA=",
|
"narHash": "sha256-1CfD8ZUjCkTgjsneLZ/lxCHhgDfqxxE7/GX0MmsgiqA=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "779c32a00155994c86cde8213a8dd4df139d4355",
|
"rev": "a017f5b72210026af5b3ac5949f08d94380a6fbd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -218,11 +218,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784497964,
|
"lastModified": 1784796856,
|
||||||
"narHash": "sha256-WhdsTtaih3DgTPP/PX023b36UNQyMzEoi6GkPyGx0y4=",
|
"narHash": "sha256-vwxWgF+Gj276WznzGb1LxGsK/39HaQwgQXiU3EkC844=",
|
||||||
"rev": "241313f4e8e508cb9b13278c2b0fa25b9ca27163",
|
"rev": "e2587caef70cea85dd97d7daab492899902dbf5d",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1037713.241313f4e8e5/nixexprs.tar.xz"
|
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1040357.e2587caef70c/nixexprs.tar.xz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
@@ -245,11 +245,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784432872,
|
"lastModified": 1784707089,
|
||||||
"narHash": "sha256-IX7j5TvSD7hYC9NZ8mgmq7pZ97mYyl24Qs4Tz4uyvO4=",
|
"narHash": "sha256-DUedXhD2Rg8q4Xyd07Sb90eZGy4gg6W+Vl/WbLNwAZo=",
|
||||||
"rev": "fd1462031fdee08f65fd0b4c6b64e22239a77870",
|
"rev": "b3fe9581c9061c749abef42b6d4ee7b7c05c33fa",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://releases.nixos.org/nixos/26.05/nixos-26.05.5591.fd1462031fde/nixexprs.tar.xz"
|
"url": "https://releases.nixos.org/nixos/26.05/nixos-26.05.5845.b3fe9581c906/nixexprs.tar.xz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
|
|||||||
@@ -44,6 +44,14 @@
|
|||||||
|
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
||||||
|
# KDE (PowerDevil) power settings: do nothing on lid close while on AC power.
|
||||||
|
# Shipped as a system-wide default; KConfig cascades so a user's own
|
||||||
|
# ~/.config/powerdevilrc will override this if present.
|
||||||
|
environment.etc."xdg/powerdevilrc".text = ''
|
||||||
|
[AC][SuspendAndShutdown]
|
||||||
|
LidAction=0
|
||||||
|
'';
|
||||||
|
|
||||||
system = {
|
system = {
|
||||||
stateVersion = "23.05";
|
stateVersion = "23.05";
|
||||||
autoUpgrade.enable = true;
|
autoUpgrade.enable = true;
|
||||||
|
|||||||
@@ -23,6 +23,23 @@ in
|
|||||||
services.home-assistant = {
|
services.home-assistant = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
|
||||||
|
# HACS-style custom components, packaged declaratively (no HACS runtime).
|
||||||
|
# Config-flow based: add via Settings > Devices & Services after rebuild.
|
||||||
|
customComponents = [
|
||||||
|
(pkgs.buildHomeAssistantComponent {
|
||||||
|
owner = "Matts-Baps";
|
||||||
|
domain = "sourdough";
|
||||||
|
version = "1.1.3";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "Matts-Baps";
|
||||||
|
repo = "ha-sourdough";
|
||||||
|
rev = "v1.1.3";
|
||||||
|
hash = "sha256-Uoid/2f6GxZMuE5Keu2VjHPYuOxnYG8hsCD6BYcaTvM=";
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
extraComponents = [
|
extraComponents = [
|
||||||
"matter"
|
"matter"
|
||||||
"mobile_app"
|
"mobile_app"
|
||||||
|
|||||||
@@ -24,4 +24,4 @@ in
|
|||||||
numix-icon-theme
|
numix-icon-theme
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user