anthonws

Enabling i915 for host?

Recommended Posts

15 hours ago, McCloud said:

At quick glances, the quality appears to be the same

 

A longer glance will show that gpu transcoding is (so far) definately inferior to the software transcoder. This is especially noticable during fast scenes where things can get "blocky". 

 

For me, that's not a problem as transcoding is for remote and therefore streamability is paramount.

Share this post


Link to post
Share on other sites
Posted (edited)

I have a sandy bridge i3-2100 and /dev/dri is missing even after reboot with modprobe i915 added to the boot go file. Is my C204 Chipset blocking the iGPU from being detected? 

 

lspci output shows:

 

VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (VGA device on Supermicro server board)

 

Is it possible to force detection of the intel GPU?

Edited by deagle

Share this post


Link to post
Share on other sites
55 minutes ago, deagle said:

I have a sandy bridge i3-2100 and /dev/dri is missing even after reboot with modprobe i915 added to the boot go file. Is my C204 Chipset blocking the iGPU from being detected? 

 

lspci output shows:

 

VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (VGA device on Supermicro server board)

 

Is it possible to force detection of the intel GPU?

 

Yes sounds like the chipset is forcing the Matrox GPU on the mobo.

 

I'd suggest you dive into the BIOS and see if you can enable the CPU iGPU somehow.

Share this post


Link to post
Share on other sites
12 hours ago, deagle said:

I have a sandy bridge i3-2100 and /dev/dri is missing even after reboot with modprobe i915 added to the boot go file. Is my C204 Chipset blocking the iGPU from being detected? 

 

lspci output shows:

 

VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (VGA device on Supermicro server board)

 

Is it possible to force detection of the intel GPU?

What exact MB you have?

i recommend to look at MB manual - if i remember correctly, you can't use iGPU on some SM boards(server ones ?) and SM even recommends using CPU without iGPU.

Share this post


Link to post
Share on other sites
Posted (edited)
10 hours ago, uldise said:

What exact MB you have?

i recommend to look at MB manual - if i remember correctly, you can't use iGPU on some SM boards(server ones ?) and SM even recommends using CPU without iGPU.

I have the X9SCM with C204 chipset. Got it back when Microcenter were selling i3-2100s for $99 and they support ECC. Didn't consider quicksync at the time.

 

By the looks of it the chipset locks out the iGPU. I might look into a cheap Nvidia card instead.

Edited by deagle

Share this post


Link to post
Share on other sites
7 hours ago, deagle said:

I have the X9SCM with C204 chipset. Got it back when Microcenter were selling i3-2100s for $99 and they support ECC. Didn't consider quicksync at the time.

 

By the looks of it the chipset locks out the iGPU. I might look into a cheap Nvidia card instead.

 

You will not have driver support for that card in unraid.

Share this post


Link to post
Share on other sites
On 3/29/2017 at 2:07 AM, saarg said:

 

You will not have driver support for that card in unraid.

 

Didn't think about Nvidia drivers in Unraid... and my i3 doesn't support VT-d for VM passthrough. Looks like I'm stuck with software transcoding unless I change motherboards.

Share this post


Link to post
Share on other sites

Hi My config looks like this : 

Quote

default /syslinux/menu.c32
menu title Lime Technology, Inc.
prompt 0
timeout 50
label unRAID OS
  menu default
  kernel /bzimage
  append modprobe.blacklist=i2c_i801,i2c_smbus initrd=/bzroot
label unRAID OS GUI Mode
  kernel /bzimage
  modprobe.blacklist=i2c_i801,i2c_smbu
  append initrd=/bzroot,/bzroot-gui
label unRAID OS Safe Mode (no plugins, no GUI)
  kernel /bzimage
  append initrd=/bzroot unraidsafemode
label Memtest86+
  kernel /memtest
 

Where must i put the modprobe i915 ?

Share this post


Link to post
Share on other sites
8 hours ago, jteeuw said:

Hi My config looks like this : 

Where must i put the modprobe i915 ?

 

On the previous page there is info on how to do it. 

Click here...

Share this post


Link to post
Share on other sites

Thanks for the info !!

I adjust the /flash/config/go file , and added the extra parameter config in the docker , is this good ?

Knipsel.PNG

Share this post


Link to post
Share on other sites
4 hours ago, jteeuw said:

Thanks for the info !!

I adjust the /flash/config/go file , and added the extra parameter config in the docker , is this good ?

Knipsel.PNG

 

It's not good at all. This is how you would add it in the extra parameters box, but you managed to add it in one of the fields for device pass through. 

Edit it and only use /dev/dri in both host and container field. 

Share this post


Link to post
Share on other sites

Can i check if hw acceleration is working in plex, cpu is still ~90

I got a I3-6100 with VGA compatible controller with HD Graphics 530
 

Share this post


Link to post
Share on other sites
9 hours ago, jteeuw said:

Can i check if hw acceleration is working in plex, cpu is still ~90

I got a I3-6100 with VGA compatible controller with HD Graphics 530
 

 

You should see in the what's playing section of the server if it's using hardware transcoding. If the cpu usage is the same as before, it's probably not working. 

Did you enable hardware acceleration in plex? 

Share this post


Link to post
Share on other sites
11 hours ago, saarg said:

 

You should see in the what's playing section of the server if it's using hardware transcoding. If the cpu usage is the same as before, it's probably not working. 

Did you enable hardware acceleration in plex? 

I do not have that  option in the  trancoder menu of plex server 

Share this post


Link to post
Share on other sites
33 minutes ago, jteeuw said:

I do not have that  option in the  trancoder menu of plex server 

 

Did you install the Plex version that have hardware acceleration support? You need Plex pass and you'll find the info on how to install the correct version on the Plex forum.

Share this post


Link to post
Share on other sites
2 hours ago, saarg said:

 

Did you install the Plex version that have hardware acceleration support? You need Plex pass and you'll find the info on how to install the correct version on the Plex forum.

Thanks saarg, found it and it working

Share this post


Link to post
Share on other sites

So, Plex now has hardware transcoding as standard.  It's out of beta for Plexpass users.

 

It's really quite simple to set up.  I'm assuming you're using Windows as a client, and using an Intel CPU with QuickSync enabled - this means you need any 2nd Gen Core CPU with video.  Only chips this doesn't include would be the E3-12x0Vx line.  E3-12x5Vx do have a GPU, so they'll work OK. Any Pentium G, i3, i5 or consuer i7 will work.  Socket 2011 i7 or Xeons won't work.

 

First, edit your go file.  To do this, go to your server's flash share - //<servername>/flash then right click the go and edit with Notepad.

 

You need to add the following:

#enable module for iGPU and perms for the render device
modprobe i915
chown -R nobody:users /dev/dri
chmod -R 777 /dev/dri 

Put it above the following line:

# Start the Management Utility
/usr/local/sbin/emhttp &

 

Save the go file, then go to your unRAID's webgui. 

 

Click on your Plex docker icon, and select Edit.  Select Advanced View on the top right, which will bring up the extra settings.

 

In the Extra Parameters box add:

--device /dev/dri:/dev/dri

Save the settings which will restart Plex.

 

 

No,w you can either reboot the unRAID machine to run the go file to load the drivers, or you can telnet to your unRAID and run the three lines you inserted in to the go file.  If you're using Putty, you can just copy and paste the three lines which will load the driver and set permissions for you.

 

Finally, once that's done go to the Plex Settings and enable Hardware Transcoding.  It's in Settings->Transcoder->Advnanced Settings->Enable Hardware Transcoding.

 

Hope this helps someone.  This method worked great on my 6.4rc9f running on an i5-6500T.  I can transcode a 20Mb 1080p to 480p with less than 3% CPU.  Very handy.

 

Intel's Quicksync can do dozens of transcodes with basically no power consumption.  nVidia's GPUs are mostly limited to two transcodes at a time.

Edited by HellDiverUK
Fixed typos

Share this post


Link to post
Share on other sites

Followed the guide here and got it working. Put the code in my GO file and then manually run the code via console. checked a couple of transcodes and it worked great. only hit 1 CPU Core instead of all 4 cores of my i5-4460.

 

just a quick query though. I checked my log when I manually ran the code and got this;

 

Oct 22 08:36:27 Tower login[23205]: ROOT LOGIN  on '/dev/pts/0' from 'xxx.xxx.xx.xxx'
Oct 22 08:37:06 Tower kernel: Linux agpgart interface v0.103
Oct 22 08:37:06 Tower kernel: [drm] Initialized
Oct 22 08:37:06 Tower kernel: [drm] PipeC fused off
Oct 22 08:37:06 Tower kernel: [drm] Memory usable by graphics device = 2048M
Oct 22 08:37:06 Tower kernel: [drm] VT-d active for gfx access
Oct 22 08:37:06 Tower kernel: [drm] Replacing VGA console driver
Oct 22 08:37:06 Tower kernel: Console: switching to colour dummy device 80x25
Oct 22 08:37:06 Tower kernel: [drm] DMAR active, disabling use of stolen memory
Oct 22 08:37:06 Tower kernel: [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
Oct 22 08:37:06 Tower kernel: [drm] Driver supports precise vblank timestamp query.
Oct 22 08:37:06 Tower kernel: vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
Oct 22 08:37:06 Tower kernel: ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
Oct 22 08:37:06 Tower kernel: acpi device:5c: registered as cooling_device4
Oct 22 08:37:06 Tower kernel: input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input8
Oct 22 08:37:06 Tower kernel: [drm] Initialized i915 1.6.0 20160919 for 0000:00:02.0 on minor 0
Oct 22 08:37:06 Tower kernel: [drm:drm_edid_block_valid [drm]] *ERROR* EDID checksum is invalid, remainder is 173
Oct 22 08:37:06 Tower kernel: Raw EDID:
Oct 22 08:37:06 Tower kernel: 	00 ff ff ff ff ff ff 00 4d d9 01 db 01 01 01 01
Oct 22 08:37:06 Tower kernel: 	01 14 01 03 08 a0 5a 78 0a 0d c9 a0 57 47 98 27
Oct 22 08:37:06 Tower kernel: 	12 48 4c 21 08 00 81 c0 81 80 01 01 01 01 01 01
Oct 22 08:37:06 Tower kernel: 	01 01 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c
Oct 22 08:37:06 Tower kernel: 	45 00 40 84 63 00 7f ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: [drm:drm_edid_block_valid [drm]] *ERROR* EDID checksum is invalid, remainder is 173
Oct 22 08:37:06 Tower kernel: Raw EDID:
Oct 22 08:37:06 Tower kernel: 	00 ff ff ff ff ff ff 00 4d d9 01 db 01 01 01 01
Oct 22 08:37:06 Tower kernel: 	01 14 01 03 08 a0 5a 78 0a 0d c9 a0 57 47 98 27
Oct 22 08:37:06 Tower kernel: 	12 48 4c 21 08 00 81 c0 81 80 01 01 01 01 01 01
Oct 22 08:37:06 Tower kernel: 	01 01 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c
Oct 22 08:37:06 Tower kernel: 	45 00 40 84 63 00 7f ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: [drm:drm_edid_block_valid [drm]] *ERROR* EDID checksum is invalid, remainder is 173
Oct 22 08:37:06 Tower kernel: Raw EDID:
Oct 22 08:37:06 Tower kernel: 	00 ff ff ff ff ff ff 00 4d d9 01 db 01 01 01 01
Oct 22 08:37:06 Tower kernel: 	01 14 01 03 08 a0 5a 78 0a 0d c9 a0 57 47 98 27
Oct 22 08:37:06 Tower kernel: 	12 48 4c 21 08 00 81 c0 81 80 01 01 01 01 01 01
Oct 22 08:37:06 Tower kernel: 	01 01 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c
Oct 22 08:37:06 Tower kernel: 	45 00 40 84 63 00 7f ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: [drm:drm_edid_block_valid [drm]] *ERROR* EDID checksum is invalid, remainder is 173
Oct 22 08:37:06 Tower kernel: Raw EDID:
Oct 22 08:37:06 Tower kernel: 	00 ff ff ff ff ff ff 00 4d d9 01 db 01 01 01 01
Oct 22 08:37:06 Tower kernel: 	01 14 01 03 08 a0 5a 78 0a 0d c9 a0 57 47 98 27
Oct 22 08:37:06 Tower kernel: 	12 48 4c 21 08 00 81 c0 81 80 01 01 01 01 01 01
Oct 22 08:37:06 Tower kernel: 	01 01 01 01 01 01 02 3a 80 18 71 38 2d 40 58 2c
Oct 22 08:37:06 Tower kernel: 	45 00 40 84 63 00 7f ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: 	ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Oct 22 08:37:06 Tower kernel: i915 0000:00:02.0: VGA-1: EDID block 0 invalid.
Oct 22 08:37:06 Tower kernel: i2c i2c-2: sendbytes: NAK bailout.
Oct 22 08:37:06 Tower kernel: i2c i2c-2: sendbytes: NAK bailout.
Oct 22 08:37:06 Tower kernel: i2c i2c-2: sendbytes: NAK bailout.
Oct 22 08:37:06 Tower kernel: i2c i2c-2: sendbytes: NAK bailout.
Oct 22 08:37:06 Tower kernel: i2c i2c-2: sendbytes: NAK bailout.
Oct 22 08:37:06 Tower kernel: fbcon: inteldrmfb (fb0) is primary device
Oct 22 08:37:06 Tower kernel: Console: switching to colour frame buffer device 128x48
Oct 22 08:37:06 Tower kernel: i915 0000:00:02.0: fb0: inteldrmfb frame buffer device

 

Is this OK, or do I have a problem on my hands?

 

any input would be greatly appreciated.

 

If it helps I do have a 40" TV plugged into my server for console use when I have fault. It is using the onboard VGA connector via a 1.5m VGA-VGA cable.

(Got this info from here https://forums.opensuse.org/showthread.php/488559-Solved-*ERROR*-EDID-checksum-is-invalid-remainder-is-N)

Edited by BillClinton
added info

Share this post


Link to post
Share on other sites
On 10/20/2017 at 5:08 PM, HellDiverUK said:

Intel's Quicksync can do dozens of transcodes with basically no power consumption. 

Sounds very promising.  How is the video quality of the transcoded stream, any compromises?

Share this post


Link to post
Share on other sites
7 hours ago, tdallen said:

Sounds very promising.  How is the video quality of the transcoded stream, any compromises?

 

Overall, the quality is worse than sw transcode. 

 

At 4mbps and up, it's decent. Under that, not so much

Share this post


Link to post
Share on other sites

The quality is a little worse on fast moving scenes, where it can get a bit blocky.  It's not noticeable on the likes of a phone or tablet, it's only when you're up close on a 22" screen or watching on a 40" TV that you would really notice.  It's a fair compromise.

 

I think QuickSync is better on the likes of Skylake than it would be on an Ivy Bridge or Broadwell generation CPU.

 

I use a Skylake i5 and I haven't seen any remarkable difference.

Share this post


Link to post
Share on other sites
13 hours ago, HellDiverUK said:

I think QuickSync is better on the likes of Skylake than it would be on an Ivy Bridge or Broadwell generation CPU.

 

I use a Skylake i5 and I haven't seen any remarkable difference.

 

I have the same observations.  With my Skylake Xeon I really see very little difference at 3+ Mbps

 

I have forced HW transcodes (by changing quality settings in client) on phones, tablets, web browsers and my main TV.  Quality seems very good compared to SW encoding.  The advantage, of course, is that HW encoding does significantly reduce CPU load.  In most cases with my media, encoding is only needed for remote streaming, but, when needed, more streams can be supported with HW encoding. 

Share this post


Link to post
Share on other sites

If you convert and sync to a mobile device, then QuickSync can reduce an hour's worth of heavy CPU load to 15 minutes of 10% load for the job.

 

I converted/synced a 2 hour 1080p movie (about 15GB) using CPU transcoding and it took nearly 2 hours by the time it was converted and synced.  Took just under 30 mins to do using hardware transcoding.  Big difference.  That's the big bonus for me - most of the time I can view direct stream (thanks to 20Mb upload internet at home), but when syncing/converting to mobile for offline consumption the hardware transcoding is brilliant.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Copyright © 2005-2017 Lime Technology, Inc. unRAID® is a registered trademark of Lime Technology, Inc.