(SOLVED) iGPU transcoding: i915 driver present but /dev/dri not available


Recommended Posts

Also ever since I updated the BIOS I can't boot with 2 sticks of RAM. It just says Memory not installed. Really this is getting worst and worst haha this is crazy. The 2 RAM sticks are Kingston and are certified specifically for this board, are identical and always worked in the past. They work separately in either slots. How can a BIOS update do that...

Edited by dnLL
Link to comment
10 minutes ago, dnLL said:

I just updated to latest BIOS with any success. I can't enable the VGA or set the onboard as the default option over PCIE. I'm forced to clear the CMOS every time I try it. And if I put PCI-Express first with IGFX enabled, I just don't see /dev/dr

You might want to contact ASRock support  They helped me figure out what to do to get AST3x000 onboard video and the iGPU for transcoding working simultaneously.  I had long assumed that because of the AST2300 video that I could not also use the iGPU.  When "onboard" is the primary graphics adapter, that enables the AST2x00 video, not the iGPU, but, they pointed me to a BIOS setting that allowed the iGPU to be used for transcoding.

Link to comment
23 minutes ago, Hoopster said:

You might want to contact ASRock support  They helped me figure out what to do to get AST3x000 onboard video and the iGPU for transcoding working simultaneously.  I had long assumed that because of the AST2300 video that I could not also use the iGPU.  When "onboard" is the primary graphics adapter, that enables the AST2x00 video, not the iGPU, but, they pointed me to a BIOS setting that allowed the iGPU to be used for transcoding.

Which setting was it in your case if you don't mind sharing? I pretty much tried everything, honestly.

 

Got memory working, apparently at 2400 MHz it's just a no no but at 2133 MHz it's OK (for 2 sticks, works with either one at 2400 MHz). 
USB doesn't boot anymore. I'm going to bed lol.

Edited by dnLL
Link to comment
1 hour ago, dnLL said:

USB doesn't boot anymore.

It may be that with the updated BIOS, you need to boot UEFI now.  Of course, this only matters if you were previously booting in legacy mode.  If you have always booted UEFI, this does not apply.

 

Beginning with unRAID 6.5.0 and with the latest BIOS update for my board (C236 WSI) unRAID would no longer boot in legacy mode and I had to switch to UEFI boot.

 

The BIOS video settings for my board are shown below.

 

Primary Graphics Adapter [Onboard] sets the AST2300/BMC as the primary video card.

 

Intel VGA Device Control [Enabled] enables the iGPU and creates the /dev/dri drivers for QSV transcoding.  I assume the equivalent in your board BIOS is the IGFX [Enabled] setting.

 

image.png.f2a115125c5ac754d4a0cb82e625ff26.png

 

Here you can see the system booting via IPMI using the onboard AST2300:

 

image.png.857e978b3890ce3134cf3778ef83fef0.png

 

And here you can see that I have a /dev/dri directory with the necessary contents for transcoding once the system is booted:

 

image.png.b7f9f8abdf20a4d66189bd1d37fb8d1c.png

 

I hope this is helpful.

Edited by Hoopster
Link to comment

I'll do some more testing tonight. The BIOS still offers legacy and UEFI boot options but neither work. But it does post reliably now so that's some progress. 

 

Booting in UEFI just brings me back to the boot menu while in legacy I just get a black screen. 

Edited by dnLL
Link to comment
5 hours ago, dnLL said:

I'll do some more testing tonight. The BIOS still offers legacy and UEFI boot options but neither work. But it does post reliably now so that's some progress. 

 

Booting in UEFI just brings me back to the boot menu while in legacy I just get a black screen. 

Have you checked that you have a 'EFI' folder on the flash drive?    By default it is "EFI~" (I think) and the trailing '~' character needs to be removed to enable UEFI mode booting.

Link to comment
4 hours ago, itimpi said:

Have you checked that you have a 'EFI' folder on the flash drive?    By default it is "EFI~" (I think) and the trailing '~' character needs to be removed to enable UEFI mode booting.

There ia indeed a folder "EFI-", I removed the dash but it won't boot in UEFI still. I'll try to start from scratch with another USB stick, I went through multiple updates and am not sure if it could have any effect. I'll report back on the progress and if the IGFX option made everything working in the end (hopefully it does after going through all this trouble).

Link to comment

Some good news, I installed the latest unRAID version with UEFI enabled to my USB stick and enabled IGFX in the BIOS and I was able to boot with UEFI to unRAID. I don't have /dev/dri listed however. 

 

I went into my BIOS and really, the only thing I can change at this point is enabling the onboard VGA.

 

image.png.80abc742eff675670d2073ba08e88ca1.png

 

So I tried that and...

 

image.png.6bf557ab92f800d4b1383456bcddbcd5.png

 

Back to clearing CMOS and resetting everything in the BIOS.

 

At this point I don't know what do to. I'll import my unRAID configs and hope I didn't lose my disk configuration for now. I can see I'm not alone in my situation: http://forum.asrock.com/forum_posts.asp?TID=5770&title=e3c236d2i-enable-igpu

 

And after further searches, sad news: http://forum.asrock.com/forum_posts.asp?TID=10218&title=e3c236d4u-enable-igpu

 

 

Link to comment
15 minutes ago, dnLL said:

The last line in the link above says:

 

"From Asrock Rack E3C236D2I can use iGPU."

 

You have an E3C236D2I board, correct? 

 

It seems kind of counter-intuitive to have an IGFX option in the BIOS if it is not supported. I addition, the BIOS lets you enable onboard video while also having IGFX enabled so, it should work.  Perhaps there is something else enabled in the BIOS that is causing a conflict?

 

Your manual says this:

Primary Graphics Adapter
If  PCI  Express  graphics  card  is  installed  on  the  motherboard,  you  may  use  this  option  to  
select PCI Express or Onboard as the primary graphics adapter.

Onboard VGA
Use this to enable or disable the Onboard VGA function. The default value is [Auto].
*This item is not available when the Primary Graphic Adapter is set to [Onboard]

IGFX
Use this item to enable or disable Intel Quick Sync Video functions. Enabled for video 
encoding and transcoding only, but not for display output. 

You should have Primary Graphics set to Onboard and IGFX enabled as in your screenshot and this should work. 

With PGA set to onboard, the Onboard VGA option is not even available.

 

ASRock has always helped me out when I email support directly.  The forums are really of no use.

 

With IGFX enabled, what happens when you type "modprobe i915" at the console?

Link to comment
3 hours ago, Hoopster said:

The last line in the link above says:

 

"From Asrock Rack E3C236D2I can use iGPU."

 

You have an E3C236D2I board, correct? 

 

It seems kind of counter-intuitive to have an IGFX option in the BIOS if it is not supported. I addition, the BIOS lets you enable onboard video while also having IGFX enabled so, it should work.  Perhaps there is something else enabled in the BIOS that is causing a conflict?

 

Your manual says this:


Primary Graphics Adapter
If  PCI  Express  graphics  card  is  installed  on  the  motherboard,  you  may  use  this  option  to  
select PCI Express or Onboard as the primary graphics adapter.

Onboard VGA
Use this to enable or disable the Onboard VGA function. The default value is [Auto].
*This item is not available when the Primary Graphic Adapter is set to [Onboard]

IGFX
Use this item to enable or disable Intel Quick Sync Video functions. Enabled for video 
encoding and transcoding only, but not for display output. 

You should have Primary Graphics set to Onboard and IGFX enabled as in your screenshot and this should work. 

With PGA set to onboard, the Onboard VGA option is not even available.

 

ASRock has always helped me out when I email support directly.  The forums are really of no use.

 

With IGFX enabled, what happens when you type "modprobe i915" at the console?

Oh ya true I didn't notice about the different board, I'm an idiot. I must set the Primary Graphics Adapter to PCI Express, otherwise it enables the onboard VGA and won't POST (unless I actually plug a monitor maybe? not sure). But I can definitely enable IGFX. There is no output (nor error) when I type modprobe i915.

 

EDIT: well... it works, I didn't do anything special besides booting in UEFI. Wow.

 

root@server:~# ls -l /dev/dri
total 0
drwxr-xr-x 2 root root        80 Dec 20 18:49 by-path/
crw-rw---- 1 root video 226,   0 Dec 20 18:49 card0
crw-rw---- 1 root video 226, 128 Dec 20 18:49 renderD128


 

Edited by dnLL
Link to comment

More update...

 

/dev/dri appears after I do "modprobe i915". If I do it a second time, I also get output:

modprobe: FATAL: Module i915 not found in directory /lib/modules/4.18.20-unRAID

I guess it's normal.

 

So all I need to do is add the modprobe command to my go file, do some chmod, add the extra parameter to the Plex docker and bam... currently transcoding with HW acceleration and 0% CPU usage. Edited the go file, rebooted again... still working. Yay. Thank you, I owe you a lot. This was quite the adventure lol.

 

Edit: here is an image showing the CPU loads before and after while transcoding movies without throttling:

image.thumb.png.e14763c91718fcd327dac19809f096f0.png

 

Totally worth the efforts. I'm surprised how CPU hungry Plex can be if you let it be. Obviously the 60s buffer throttling option largely mitigate the CPU load eventually on both sides but still.

Edited by dnLL
Link to comment

Yup, edited with some CPU load graphic before/after... awesome difference. I also got to know a lot more about my BIOS and unRAID boot settings in general, I'll do some backups of those settings now seeing how important they are. I already use the User Script plugin a lot to automate stuff across reboots but the go file just seems to be the way to go for any really serious business.

Link to comment
It's not, I only have the choice between PCIe or Onboard (ATS chip). It's currently on PCIe but I don't have any PCIe card. The IGFX option is set to Enabled.

That’s right. You have an IPMI board. Leave onboard as primary. As long as the PCIe GPU is not Primary, you should be able to pass it through to a VM. It is still possible to pass through primary graphics in many cases but it is much easier if you are passing through a non- primary GPU.

 

Hopefully your board does not force a PCIe board to be primary if installed; some do. With your BIOS options you should be OK.

 

 

Sent from my iPhone using Tapatalk

Link to comment
11 hours ago, Hoopster said:

Leave onboard as primary.

I can't, the board doesn't post (error code 93) if onboard is primary. The only way I was able to boot was having PCIe as primary, VGA completely disabled and IGFX enabled.

 

I assume the PCIe card would take over the IGFX as primary but what does primary mean exactly when you're not actually using any video outputs?

Edited by dnLL
Link to comment
  • 1 month later...
  • 1 month later...

Just wanted to add to this solution. I had the same problem, that i915 driver loaded perfectly, but no /dev/dri appeared.

I had added the boot parameter (alpha something)...but no luck.

My solution was to plugin a monitor and reboot. Then /dev/dri appeared again.

 

Link to comment
  • 4 months later...

Hi there,

 

Same problem here.

I have changed my go file reflecting the correct configuration as bellow:

#!/bin/bash
# Start the Management Utility
modprobe i915
chmod -R 777 /dev/dri
/usr/local/sbin/emhttp &

And I can see the i915 driver being loaded correctly:

root@Plex4:~# lsmod | grep i915
i915                 1261568  0
i2c_algo_bit           16384  1 i915
iosf_mbi               16384  1 i915
drm_kms_helper        135168  1 i915
drm                   327680  2 drm_kms_helper,i915
intel_gtt              20480  1 i915
i2c_core               40960  5 drm_kms_helper,i2c_algo_bit,i2c_i801,i915,drm
video                  40960  1 i915
backlight              16384  2 video,i915
root@Plex4:~# 

But still no /dev/dri folder created:

root@Plex4:~# ls /dev/dri
/bin/ls: cannot access '/dev/dri': No such file or directory

It's really wired as I can correctly select and attach the Intel GPU to a VM, but I'd appreciate more to use it in a plex/docker container instead.

I use an intel Core i5-9600k CoffeLake with an MSI Z390 Gaming Plus with latest bios, intel VT and IOMMU enabled, and I have a monitor attached to the display.

Here is the manual http://download.msi.com/archive/mnu_exe/mb/E7B51v11.pdf

I double checked the BIOS configuration and my only Intel integrated GPU is enabled and default:

Integrated Graphics Configuration
	Adjusts integrated graphics settings for optimum system. Press Enter to enter the sub-menu.

Initiate Graphic Adapter [PEG] > configured to [IGD]
	Selects a graphics device as the primary boot device. 
		[IGD] Integrated Graphics Display.
		[PEG] PCI-Express Graphics Device.

Integrated Graphics Share Memory [64M]
	Selects a fixed amount of system memory allocated to the onboard graphics. This item will appear when IGD Multi-Monitor is enabled.

I tried with and without the syslinux.cfg file modification with no success as well (I'm running latest stable Unraid 6.7.2).

Any help, advice, idea would be much appreciated. 😉

 

Link to comment
On 8/16/2019 at 3:39 AM, mmz06 said:

I use an intel Core i5-9600k

This is your problem.  The iGPU on the 9xxx Intel CPUs are not currently supported by the i915 drivers in the Linux kernel unRAID uses.  You need at least 4.20 Linux kernel and unRAID uses 4.19.

 

This problem should be resolved with a future version of unRAID that uses at least the 4.20 kernel; next version may move on to 5.x.

Link to comment
5 hours ago, Hoopster said:

This is your problem.  The iGPU on the 9xxx Intel CPUs are not currently supported by the i915 drivers in the Linux kernel unRAID uses.  You need at least 4.20 Linux kernel and unRAID uses 4.19.

 

This problem should be resolved with a future version of unRAID that uses at least the 4.20 kernel; next version may move on to 5.x.

Thanks for the clear explanation.

Now I just need to wait for a few months or purchase an Nvidia card for hardware offload...

Edited by mmz06
Link to comment
40 minutes ago, mmz06 said:

Thanks for the clear explanation.

Now I just need to wait for a few months or purchase an Nvidia card for hardware offload...

Hopefully, you won't have to wait that long.  Limetech has already made statements about 6.8 including a 5.x version of the kernel.  Unfortunately, they are trying to sort out a lot of issues with 6.7 (primarily SQLite db corruption and disk/process IO issues) at the moment.  

Link to comment
22 hours ago, Hoopster said:

Hopefully, you won't have to wait that long.  Limetech has already made statements about 6.8 including a 5.x version of the kernel.  Unfortunately, they are trying to sort out a lot of issues with 6.7 (primarily SQLite db corruption and disk/process IO issues) at the moment.  

Thanks for the info.

Do you have any idea of the timeframe? I checked the forum and wiki with no ability to find any info on Unraid 6.8... 😭

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.