i915 w/ Plex causes Errror s1003 and will not play any video w/ h/w transcode enabled


VelcroBP

Recommended Posts

I'm trying to enable hardware transcoding in Plex. Initially I had a hard time getting the i915 module to be detected by unRaid. Only the mobo ASMEDIA ast VGA module was detected. After trial and error I found that I was changing the wrong setting in the BIOS. I changed that and now the system sees the igpu.

  • Untitled.png.b6b0213fe875620d353a9627a16b2490.png

 

My Hardware:

  • supermicro MBD-X10SLH-F-O
  • xeon e3-1246 v3 haswell
  • unRaid upgraded to v6.10.3 during testing

 

things i've tried:

  • via BIOS, switched "VGA PRIORITY" to OFFBOARD
    • since reverted back to ONBOARD
  • installed INTEL_GPU_TOP plugin
    • I haven't tried blacklisting i915 as suggested in the plugin's support forum, since that seems to be in response to newer hybrid CPUs like Alderlake+. I might be mistaken though so let me know please if that applies to my Haswell Xeon also.
  • modprobe i915 command
  • manually created /boot/config/modprobe.d/i915.conf file
  • added device to Plex container
    • Picture1.png.9c0737ef8611a2f7aa60f29764dcf9c4.png
  • added extra parameters: --device=/dev/dri:/dev/dri
  • Ran : 
chmod -R 777 /dev/dri
  • Picture3.png.bc16392c50081968e8f7226b58413553.png

         -results after running CHMOD

 

 

Please let me know if any logs or commands would be helpful and I will post those ASAP. I have just exported fresh diagnostics.zip and attached.

 

It's probably something simple that I'm overlooking. I haven't messed with hardware configuration on my system in any great depth, or at all for a while really, so I'm quite lost as to what to try next. Most of the results I get searching are geared towards discreet cards or issues utilizing i915 with newer CPUs.

 

 

mootower-diagnostics-20220623-1915.zip

Edited by VelcroBP
Link to comment

I changed the parameters to: --device=/dev/dri  , and I'm even more confused after some more testing. Video files will now play with the transcode enabled in Plex, but it doesn't seem to actually transcode at all. Below is my playback settings along with the dashboard showing the corresponding stream:

Picture11.png.3b0c5cb07c71d70bac824a5f0c0919d6.png Picture12.png.74b0059421700449103aca1de5d14e08.png

Link to comment

I ran this command as recommended in a guide and before are the results

-v -s $(lspci | grep VGA | cut -d" " -f 1)lspci


04:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 30) (prog-if 00 [VGA controller])
DeviceName: Onboard VGA
Subsystem: Super Micro Computer Inc ASPEED Graphics Family
Flags: bus master, medium devsel, latency 0, IRQ 11, IOMMU group 10
Memory at f6000000 (32-bit, non-prefetchable)
Memory at f7000000 (32-bit, non-prefetchable)
I/O ports at d000
Expansion ROM at 000c0000 [virtual] [disabled]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/4 Maskable- 64bit+
Kernel modules: ast


supposedly i should be seeing the Intel igu populating here, specifically "i915" as the KENNEL MODULE

Sent from my Pixel 5 using Tapatalk

Link to comment
On 6/23/2022 at 7:35 PM, JonathanM said:

Trying to get the iGPU to function on a board with IPMI has been problematic in the past, I seem to remember @Hoopster may have some experience.

@Hoopster Sorry for the ping but I'm hoping you might have some insight? I can post logs from unRaid or from Plex if needed (though I'm not sure how/if Plex logs need sanitized..?)

Link to comment
On 7/2/2022 at 7:08 PM, VelcroBP said:

@Hoopster Sorry for the ping but I'm hoping you might have some insight? I can post logs from unRaid or from Plex if needed (though I'm not sure how/if Plex logs need sanitized..?)

Sorry for the late reply.  I have been on vacation for two weeks with very limited Internet access.

 

I have an ASRock Rack motherboard which required a special BIOS from ASRock to enable the iGPU for transcoding when IPMI/Aspeed controller is present. 

 

This thread contains a discussion about a particular Supermicro board and what was needed to enable iGPU when using IPMI.  You may have to dig a little in that thread.  Perhaps it is similar with your Supermicro board.  Unfortunately, that is all I can tell you about the Supermicro world.

Edited by Hoopster
Link to comment
  • 5 weeks later...

@VelcroBP Any luck getting this sorted out?

I'm running a E3-1275l on a X10SLH-F and cannot get HW transcoding to work.  All is enabled, and I get the card0 card1 renderD128 but Plex will not shift over to transcoding.  I get the same s1003 error as you.  Running linuxserver.io version of Plex.

Link to comment

@VelcroBP

 

I have promising results!

 

The good news is that I'm now transcoding two simultaneous 1080p H264 files and one 4K H265, so at a minimum, the following conditions apply.  I'm going to change each of these of these rows over the coming days to determine exactly which change produced the (HW) transcoding results.

 

1) I moved to the Binhex-Plex container.  I was previously on the LSIO container because of the advertised HDR --> SDR tone mapping, but I wasn't able to transcode.  This may change.

  • I added the [--device=/dev/dri:/dev/dri] command to the Extra Parameters line and I also added a Device with the docker options to /dev/dri.  I will remove each of these one at a time to determine if I need one or the other, or both

2) my VGA jumper on the mobo is set to disabled.  I will probably re-enable this jumper first because it disables my ability to view anything, included the BIOS post and therefore my ability to log into the BIOS menu.

  • JPG1 jumper set to disabled, for now.

3) MOBO BIOS is 3.0 and I haven't upgraded any of the BIOS or BMC firmware

 

4) Plex settings

  • [General] --> [Automatically Adjust Quality] Off
    • Internet Streaming [Play Smaller Videos At Original Quality] On
    • Home Streaming [Use recommended settings] On
  • [Debug]
    • [Direct Play] On
    • [Direct Stream] On
    • [Use alternative streaming protocol for video playback] Off
  • [Transcoder] --> [Default Throttle Buffer] 30 secs
    • [Enable HDR Tone Mapping] On
    • [Disable Video Stream Transcoding] Off
    • [Use Hardware Acceleration] On
    • [Use Hardware-accelerated Video Encoding] On

4) My GPU Statistics plugin (Intel GPU-TOP also installed) now shows activity on the dashboard but my CPU also shows 25-50% activity.  Therefore, I cannot tell whether how much load sharing is occurring between the CPU and GPU.  Frankly, I don't care because I'm able to transcode three 4K streams...something I couldn't even dream of before.

  • When I run cd /dev/dri/ from terminal, I get back a Card0 and RenderD128, so my driver is active.  I did NOT modprobe i915 the drivers or anything related to blacklisting or forcing the drivers.  This is on UnRaid 6.10.3 and Plex 4.84.1 (also assumes you have Plex Pass).
     

@ me if you have follow-ups.  I'm subscribed.

Link to comment
On 8/6/2022 at 3:25 PM, VelcroBP said:

This is fantastic to hear! I will try to mimic your results, but I'm going to stay on lsio Plex container for now.

Sent from my Pixel 5 using Tapatalk
 

@velcroBP

 

More good news, after some... tribulations.  I floated between Binhex, Isio and the Official docker, and I landed on the official docker because now with successful HW transcoding, I have no reason to move back to Binhex or Isio.  I'm not saying those won't work, but I'm satisfied with the official docker such that I don't need to move back to a different docker.

 

Therefore, after many settings adjustments, and getting mixed results compared to my last post, I finally reached out to Supermicro and we finally concluded that I need to upgrade my BIOS to 3.0a.  I was previously on 3.0 but apparently the A-version includes an update to the Intel Graphics.  The customer rep couldn't give me any more detail than that as to why because 1) he was a low-level tech 2) the board is no longer supported.  However, his recommendation seems to do the trick.

 

I updated the BIOS to 3.0a and all is gravy.  Same settings as above, Internet Streaming and Home Streaming both set to max, YMMV, [Play Smaller Videos at Original Quality] is checked.

 

/dev/dri is added as a Device path and [--device=/dev/dri:/dev/dri] is added under Extra Parameters.  Interestingly, the Official Docker and Isio docker are VERY similar.

 

1080p transcodes well, but 4K struggles (but at least the iGPU tries unlike before), as to be expected with the Haswell capabilities.  I no longer get s1003 errors, only slow or buffered transcoding if the file is too complex

 

If you need help updating your BIOS, message me and I'll walk you through it.  I don't think the 3.0a BIOS is available on Supermicro's website but you could go right to 3.4, which is on their website.

🙂

Edited by Jacon
  • Like 1
Link to comment

this is fantastic! Thanks for running this down and reporting back in such detail!

I will try to get this going soon. I just completed a lengthy file system conservation on my data drives (reiser -> xfs) and am currently running down a few lingering issues. Once I'm confident that dust has settled I'll look at upgrading my server bios and trying your settings. I'm going to stick with the lsio container, simply because I don't want to rebuild my entire Plex library setup again, or reset my played status for my users.

Sent from my Pixel 5 using Tapatalk



Link to comment
On 8/9/2022 at 3:40 PM, Jacon said:

we finally concluded that I need to upgrade my BIOS to 3.0a.  I was previously on 3.0 but apparently the A-version includes an update to the Intel Graphics.  The customer rep couldn't give me any more detail than that as to why because 1) he was a low-level tech 2) the board is no longer supported.  However, his recommendation seems to do the trick.

I can only find v3.4 at SuperMicro's website for the MBD-X10SLH-F. Is this the version you flashed to?

Link to comment
11 minutes ago, VelcroBP said:

I can only find v3.4 at SuperMicro's website for the MBD-X10SLH-F. Is this the version you flashed to?

The rep sent me 3.0a, which isn’t listed on their site. Sent you a message. 
 

Id be slightly worried about a 3.4 update in the event it conflicts with unraid or a driver in some way. To the old adage, “if it ain’t broke…”

 

I know 3.0a works based on my experience, I can’t speak to 3.4. 

Link to comment
5 minutes ago, Jacon said:

Id be slightly worried about a 3.4 update in the event it conflicts with unraid or a driver in some way.

My thoughts exactly. I am contacting them to request an evaluation license for SUM so I can update via IPMI, so I'll ask about 3.0a while I'm at it.

Link to comment
2 hours ago, VelcroBP said:

My thoughts exactly. I am contacting them to request an evaluation license for SUM so I can update via IPMI, so I'll ask about 3.0a while I'm at it.

Forgot to mention, you can transition containers fairly easily without disrupting your library. All you need to do is move the Plex Media Library appdata folder from your current container folder to the new one. Spaceinvader One has a good video on how to migrate libraries without rebuilding configs, etc. 

Link to comment
9 hours ago, Jacon said:

All you need to do is move the Plex Media Library appdata folder from your current container folder to the new one

That is true, I forgot. The reason I had to rebuild everything the last time was due to changing my entire share structure. I Consolidated all media shares under one top-level share. I also had to redo my *.arr stack at that time. Since I (hopefully) don't have to change any of my paths again I could just migrate my Plex appdata. I'll have to consider it after I've updated BIOS and see how lsio's container works.

Link to comment

After you boot to a DOS prompt (C:/), you’ll type ‘ami.bat x10slh5.c17’ (no apostrophes) and it’ll do the rest. Open the read me and it should say the same thing. 
 

i used Balena Etcher (from a Mac) to flash the basic freedos image to a usb drive, then I copied the BIOS files to the same USB. 
 

Put the usb into a slot and boot. Press F11 to open the boot selection menu during the BIOS boot. Select your usb flash drive containing DOS and the new bios. If you do choose FreeDOS, it will prompt you too install the FreeDOS OS, BUT you don’t need to.  Simply back out and it’ll take you right to a DOS prompt. From there you can install the new x10 BIOS. 

Edited by Jacon
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.