Synology DS425+ hardware transcoding issue

This is a DS716+ (h.264 only)

admin@Syno-DS716plus:~$ dmesg | grep -E 'i915|drm'
[   49.831634] [drm] Initialized drm 1.1.0 20060810
[   49.978443] [drm] Memory usable by graphics device = 2048M
[   49.984614] i915 0000:00:02.0: setting latency timer to 64
[   49.986252] i915 0000:00:02.0: irq 139 for MSI/MSI-X
[   49.986293] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[   49.993696] [drm] Driver supports precise vblank timestamp query.
[   50.145788] [drm] Initialized i915 1.6.0 20141121 for 0000:00:02.0 on minor 0
[   50.188282] [drm] GMBUS [i915 gmbus panel] timed out, falling back to bit banging on pin 3
[   50.220291] i915 0000:00:02.0: No connectors reported connected with modes
[   50.227994] [drm] Cannot find any crtc or sizes - going 1024x768
[   50.235907] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[   50.242986] i915 0000:00:02.0: registered panic notifier
admin@Syno-DS716plus:~$ 
1 Like

This morning, I was offered the DSM 7.2.2-72806 Update 4 on my DS425+. Here is the message I received before accepting this update :

"Update Notice

Before proceeding, please be sure to review the important changes that will be implemented.

Must Read
With this update, the processing of media files using the HEVC (H.265), AVC (H.264), and VC-1 codecs will be offloaded from the server to end devices to reduce unnecessary resource usage and improve system efficiency.

These codecs are widely used on devices such as smartphones, tablets, computers, and smart TVs. If the device does not support the required codecs, the use of media files may be limited. Refer to this FAQ and the package leaflet below for more details."

I know our issue isn’t resolved yet, but I’m wondering if this will impact using hardware transcoding on Plex in the future.

I think that’s been a message on the last few updates and only effects Synology apps.

It may also be why Plex offer a specific version for DSM 7.2.2.

This is the end of Video Station.

Synology has been slowly EOLing it for the past few years.

Plex for 7.2.2 is because Synology changed a lot of stuff for how “apps” work. (read the FAQ if you can find it in the mess these discourse forums are)
The codex’s have been part of Plex since long time

Interesting …

Read the following post on Reddit :

“nk” like “naked” ?

I am the packaging engineer.

As of DSM 7.2.2, Synology changed how the menus work.

To show you, this is the regular DSM 7 menu page when installing.
( I maintain a different file for each supported language)

[{
  "step_title": "Plex Media Server - Installation options",
  "items": [{
    "type": "singleselect",
    "desc": "<strong>Installation Type</strong>",
    "subitems": [{
      "key": "WNormal",
      "desc": "Normal installation",
      "defaultValue": true
    },{
      "key": "WUseClaimToken",
      "desc": "Install using Plex Claim Token<br><p style='color:red'><i>New or lost servers only</i></p>",
      "defaultValue": false
    }]
  },{
    "type": "textfield",
    "desc": "Claim token string from <a href='https://www.plex.tv/claim' target='_blank'><strong>Get Plex Claim Token</strong></a><br><i>Leave blank if not used</i>",
    "subitems": [{
      "key": "WClaimToken",
      "desc": "Claim Token:",
      "validator": {
        "allowBlank": true
      }
    }]
  }]
}]

As of DSM 7.2.2, these JSON source files became compiled JSON.
Nothing about the executable changed.

Because of how PMS is built, the executable “Plex Media Server” program image is used on all Linux workstations and all Linux NAS systems. It’s one 64-bit Linux binary image for all of them. (Similar to how one Docker image works everywhere except this is just this program and not an entire environment).

The problems we’re seeing on the DS425+ are specific to the DS425+ firmware.

The more we learn, the more it looks like a 5.10 kernel & i915 driver configuration or omission problem.

1 Like

@Plichtao

That’s from a XPEnology implementation ?

Is that what’s being used here?

I was browsing the Synology website to see what CPU is used on the x25+ models and the “nk” suffix caught my eye. I thought it was a typo at first. I googled “geminilakenk” and came across this post on Reddit. “Naked” is a little touch of humor from me :slight_smile:

I’ve looked. Intel does not show any J4xxx series with a “NK” variant.

Intel produces J4005, J4025, and J4125 CPUs.

Perhaps the author of those posts was “fresh from the shower” (NSFW — LOL)

Perhaps NK for “New Kernel” ?

No idea.

I’ll ask when Synology contacts me but it doesn’t make sense to attach to the CPU. It would make most sense to include in the DSM release notes where it belongs.

--------------------- EDIT ---------------------------------

Digging deeper — “NK” is their new architecture.

The 5.x kernels were vastly different than their 4.x predecessors.

Synology J4125nk as the PLATFORM not the CPU
I’ll point this out to them when we chat.

In this case, it’s like how we separate

synology_dsm6, synology_dsm7, and synology_dsm72 package files for when we build the SPK.

1 Like

Hello, I’m back from vacation. So I have full access to my DS425+. Can I provide assistance or is the problem in Synology’s hands now?

Hello, I’d love to hear about the DS425+ hardware transcoding. There have been DSM updates, but nothing has changed. Thanks.

Very Much in Synology’s hands now I think. :crossed_fingers:

Hello, after more than a month of waiting, I decided to contact Synology to see if our issue had been addressed. So I opened a ticket by logging into my Synology account. Their response was quick but surprised me:

We appreciate the clear description of your concerns regarding hardware transcoding with Plex not functioning on your DS425+, despite the Intel J4125 CPU being present. We fully understand your disappointment and the impact this has, especially given your investment, and we will do our best to assist you.

After reconfirming with our product manager and developer, we can assure you that the DS425+ does support hardware transcoding. We also reviewed Plex’s official documentation and found that they list the DS425+ as HW transcoding compatible, and they mention that further investigation is ongoing.

At this point, we recommend checking with Plex regarding the status of their investigation. If their team requires any clarification or cooperation on the Synology side, they already have our appropriate contact channels and we will be ready to work with them directly.

I replied again, telling them that Synology had been contacted by someone from the Plex staff, insisting that hardware transcoding wasn’t working.
I felt a bit like I wasn’t being taken very seriously. In my opinion, it would be good if I weren’t the only one reporting the problem. If DS425+ and DS225+ owners would be willing to join me in getting Synology to take us seriously…

Folks,

I’ve been scratching head and digging around other vendors.

Another “Needle in the haystack” to check is how the GPU maps to the PCIe .
(which will prevent PMS from seeing it )

ANYONE with J4125 CPU (older/newer/non-Synology machines)

  1. SSH into the machine
  2. sudo bash
  3. lspci -vv

You will get a ton of output but I’m interested in that’s internal to the CPU


chuck@ds920:~$ lspci -vv
00:00.0 Class 0600: Device 8086:31f0 (rev 06)
	DeviceName: Onboard - Other
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0

00:02.0 Class 0300: Device 8086:3185 (rev 06)
	DeviceName: Onboard - Video
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 343
	Region 0: Memory at a0000000 (64-bit, non-prefetchable) [size=16M]
	Region 2: Memory at 90000000 (64-bit, prefetchable) [size=256M]
	Region 4: I/O ports at f000 [size=64]
	Expansion ROM at <unassigned> [disabled]
	Capabilities: <access denied>
	Kernel driver in use: i915

00:0e.0 Class 0401: Device 8086:3198 (rev 06)
	DeviceName: Onboard - Sound
	Subsystem: Device 8086:7270
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 344
	Region 0: Memory at a1510000 (64-bit, non-prefetchable) [size=16K]
	Region 4: Memory at a1000000 (64-bit, non-prefetchable) [size=1M]
	Capabilities: <access denied>
	Kernel driver in use: snd_hda_intel

If your results don’t match mine, PLEASE include them.

Here’s what I get on my DS425+. I’m sending you the entire command result because I can’t distinguish what concerns the CPU or not (sorry …).

lspci.txt (40.3 KB)

Versus:

00:02.0 Class 0300: Device 8086:3185 (rev 06)
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 166
	Region 0: Memory at a0000000 (64-bit, non-prefetchable) [size=16M]
	Region 2: Memory at 90000000 (64-bit, prefetchable) [size=256M]
	Region 4: I/O ports at 4000 [size=64]

Did you use -vv or other verbosity setting?

From my 425+ (using lspci -vv)

00:02.0 Class 0300: Device 8086:3185 (rev 06)
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SE
RR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast
>TAbort- <TAbort- <MAbort-
 >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 161
        Region 0: Memory at a0000000 (64-bit, non-prefetchable) [size=16M]
        Region 2: Memory at 90000000 (64-bit, prefetchable) [size=256M]
        Region 4: I/O ports at 4000 [size=64]
        [virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
        Capabilities: [40] Vendor Specific Information: Len=0c <?>
        Capabilities: [70] Express (v2) Root Complex Integrated Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0
                        ExtTag- RBE+ FLReset+
                DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- FLReset-
                        MaxPayload 128 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported
                         AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, Off Disabled
                         AtomicOpsCtl: ReqEn-
        Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable- 64bit-
                Address: fee04004  Data: 4026
        Capabilities: [d0] Power Management version 2
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [100 v1] Process Address Space ID (PASID)
                PASIDCap: Exec- Priv-, Max PASID Width: 14
                PASIDCtl: Enable- Exec- Priv-
        Capabilities: [200 v1] Address Translation Service (ATS)
                ATSCap: Invalidate Queue Depth: 00
                ATSCtl: Enable-, Smallest Translation Unit: 00        Capabilities: [300 v1] Page Request Interface (PRI)
                PRICtl: Enable- Reset-
                PRISta: RF- UPRGI- Stopped+
                Page Request Capacity: 00008000, Page Request
Allocation: 00000000
        Kernel driver in use: i915