Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Successful Intel IGD GPU Pass Through to a Xen Windows 8.1 VM

Featured Replies

I have finally successfully passed through an Intel IGD to a Xen Windows 8.1 VM.  I have also passed through the Realtek sound, keyboard and mouse.  The Realtek sound drivers loaded successfully.  The following is how I got it to work.

 

I have an Asrock Z87 Extreme6 motherboard with a Xeon E3 1275 V3.

 

This is the final Xen cfg that worked:

name = 'Winndows8VM'
builder = 'hvm'
vcpus = '2'
memory = '2048'
boot = 'c'
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'destroy'
device_model_version = 'qemu-xen-traditional'
disk = [ 'file:/mnt/cache/domains/Windows8VM/Windows.img,hda,rw' ]
vif = [ 'mac=00:16:3e:54:86:18,bridge=xenbr0' ]
acpi = '1'
apic = '1'
localtime = 1

# Keyboard and mouse passthrough
usb = '1'
usbdevice = [ 'tablet','host:045e:0047','host:05d5:0624' ]

# VGA and sound passthrough
viridian = '1'
xen_platform_pci = '1'
gfx_passthru = '1'
pci = [ '00:02.0','00:03.0','00:1b.0' ]

# Remote vnc access
# sdl = '0'
# vnc = '1'
# vnclisten = 'x.x.x.x'

 

The procedure used was as follows:

- Verify you have vt-d enabled using this command: 'xl dmesg'

You should see the following indicating that vt-d is working:

(XEN) Intel VT-d iommu 0 supported page sizes: 4kB.
(XEN) Intel VT-d iommu 1 supported page sizes: 4kB.
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Shared EPT tables not enabled.
(XEN) I/O virtualisation enabled

 

- I used the Xen 4.4.0 from v6b8.

- I loaded the Windows 8.1 VM with the "device_model_version = 'qemu-xen-traditional'" in the cfg file.  Apparently the qemu upstream device model does not work at this time.  You'll need to set up a cdrom device with the Windows 8.1 install CD.  I used a USB crdom drive and passed through the physical device as sr0.

 

This is my cfg file used to load Windows.

name = 'Windows8VM'
builder = 'hvm'
vcpus = '2'
memory = '2048'
boot = 'c'
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'destroy'
device_model_version = 'qemu-xen-traditional'
disk = [ 'file:/mnt/cache/domains/Windows8VM/Windows.img,hda,rw' ]
vif = [ 'mac=00:16:3e:54:86:18,bridge=xenbr0' ]
acpi = '1'
apic = '1'
localtime = 1

usb = '1'
usbdevice = [ 'tablet' ]

# Remote vnc access
sdl = '0'
vnc = '1'
vnclisten = 'x.x.x.x'

 

- I used VNC during this process to access the VM and let Windows install its drivers and do the updates.

- Installed GPLPV drivers for disk and network.

- After the GPLPV drivers were installed, I then added the following to the cfg file so Windows would install the GPU drivers.

 

# VGA passthrough
viridian = '1'
xen_platform_pci = '1'
gfx_passthru = '0'
pci = [ '00:02.0' ]

 

- It took several reboots for the GPU driver to be loaded and active.

- I then set gfx_passthru to 1 and set up the sound, mouse and keyboard pass through.

 

Windows booted and the graphics was working.  The GPU also resets itself successfully on reboots so I don't have to do anything special to get the graphics to work on a restart.

 

I later upped the memory to 3072 and it is still working.  I may try to up the memory to 4096 when I feel brave, but I'll make a copy of the working VM first.

 

The only issue I have is that Windows 8.1 does not shut down completely.  I have to 'xl destroy Windows8VM' to get it to shutdown completely.

 

I did re-install the Xen 4.4.1 from the latest beta10a and the GPU worked but it was a bit jerky, and the sound was choppy.

 

NOTES:

- I had to use a raw image for the Windows disk because the qcow2 image was not recognized by the traditional device model.  I also learned that you cannot change the device model after Windows is loaded.  Apparently the devices installed in Windows are different for each model and can cause a BSOD if changed after the fact.

- Be sure to hide the pci devices in the syslinux.cfg file so the devices will be released for the VM to use.  It should look like this: /bzimage xen-pciback.hide=(00:02.0)(00:03.0)(00:1b.0).

I just wanted to note that it's excellent that you successfully got the IGD passthrough working. Definitely worth looking into further as this is the first case I have seen on unRAID, in either KVM or Xen. I might take a stab at this over the holidays if I can find the time.

Wow!  Good work; gold star for you!

 

How did you replace the XEN part?  Just copy it from 6b8 and replace, or is there more that needs done?

 

What are the 3 PCI devices you're passing thru?  iGPU, HDMI Audio, ?

 

I assume the first XML is the 'end result', which is the fully working version.  The second one is the one you used to get windows installed using VNC, and to install your drivers.  If so, were you able to install drivers without the device being installed?

 

The third one confuses me a bit.  Did you add that to the VNC version, and did it work to do passthru while VNC was running?  I assume not, but want to understand before I embark on this progress myself.

 

I'm excited to know this could work.  I just ordered a ASRock Z97 Extreme 6 board myself, and hope the chipset difference isn't going to kill this for me.

 

Anyway, thanks for providing input on what worked for you.

  • Author

Wow!  Good work; gold star for you!

 

Many hours invested experimenting and trying different things.

 

How did you replace the XEN part?  Just copy it from 6b8 and replace, or is there more that needs done?

 

Just copy the Xen file from 6b8 to the flash drive.  Xen is self contained in the single file.  I did install Xen 4.4.1 and it worked, but I had some issues.

 

What are the 3 PCI devices you're passing thru?  iGPU, HDMI Audio, ?

 

00:02.0 - Intel GPU

00:03.0 - Intel audio (I think this is HDMI audio)

00:1b.0 - Realtek audio

 

I assume the first XML is the 'end result', which is the fully working version.  The second one is the one you used to get windows installed using VNC, and to install your drivers.  If so, were you able to install drivers without the device being installed?

 

Yes, Yes, and the device is built in and always installed.  I let Windows install its drivers for the GPU and HDMI audio.  I installed the Asrock Realtek audio driver from CD.

 

The third one confuses me a bit.  Did you add that to the VNC version, and did it work to do passthru while VNC was running?  I assume not, but want to understand before I embark on this progress myself.

 

Once the primary pass through was enabled (gfx_passthru = '1') the vnc no longer worked.  Just comment it out anyway.

 

I'm excited to know this could work.  I just ordered a ASRock Z97 Extreme 6 board myself, and hope the chipset difference isn't going to kill this for me.

 

Anyway, thanks for providing input on what worked for you.

 

I think one of the keys in getting this to work was loading Windows with the traditional device model enabled.  Like I said I found that you cannot change the model once Windows is installed.  Also be sure the GPU is set up as the boot display.  Keep your memory at 2048 until it is all working and then you can try to up the memory.  I think more than 3072 is going to present problems from what I've read on the Internet.

...I let Windows install its drivers for the GPU and HDMI audio.  I installed the Asrock Realtek audio driver from CD.

 

 

Just to confirm; you just let windows install the graphics drivers, you did not install the Intel drivers directly?  Have you since installed the Intel drivers in windows, or are you just using the windows version drivers still?

 

Hopefully my motherboard shows up this week, and I can give this a try myself.

 

thanks again for sharing!!

  • Author

Windows 8.1 has the latest Intel drivers built in and you don't need to install any other drivers.

I got my motherboard, new cooling fans and SATA3 PCI expansion card installed yesterday.  So, I'm ready to give this a go.

 

Do I need to do anything with syslinux.cfg to get this working?  With KVM, I need to add some stuff there to allow the USB passthru?

 

Also, is there any plugin or tool to launch the VM (run the XML), like libvirt for KVM?  I assume not, but wanted to ask?

 

It's been quite a while since I ran a XEN VM, do I still just launch it with start whatever.xml from putty?

 

thanks again.

I got my motherboard, new cooling fans and SATA3 PCI expansion card installed yesterday.  So, I'm ready to give this a go.

 

Do I need to do anything with syslinux.cfg to get this working?  With KVM, I need to add some stuff there to allow the USB passthru?

 

Also, is there any plugin or tool to launch the VM (run the XML), like libvirt for KVM?  I assume not, but wanted to ask?

 

It's been quite a while since I ran a XEN VM, do I still just launch it with start whatever.xml from putty?

 

thanks again.

 

Hi There

 

You need to edit your syslinux.cfg to hide the PCI devices you'll be passing through. Here's the relevant section from my file (you will obviously need to change the device id to suit your own needs);

 

label Xen/unRAID OS
  menu default
  kernel /syslinux/mboot.c32
  append /xen dom0_mem=2097152  --- /bzimage xen-pciback.hide=(05:00.0)(05:00.1) --- /bzroot

 

 

When you boot in Xen mode, there will be a new Xen menu item. Once you have manually set up the Xen .cfg file, there's a way of registering the VM with unRaid from CL so that you can launch it from here. However, I can never find the command to do this so just end up adding it manually (by copying previous successfully registered VMs - it's just a pointer file in the config directory on the flash drive).

 

Otherwise, just start using a command like

 

xl create <vmname>.cfg

 

I've a 'how to' on my blog that's a bit old and concerns itself with GPU passthrough but you might find it somewhat useful;

 

http://mediaserver8.blogspot.ie/2014/02/unraid-60-xen-guest-gpu-passthrough.html

 

Good luck!

 

Just curious, by the way, why going for Xen if you've been on KVM? Xen is not getting much love from LimeTech of late: JonP has stated that they are just testing to be sure it works with each release, no new features etc . KVM and moreso Docker seem to be where it's at.

 

I'm planning to migrate from Xen to KVM whenever v6 goes final (it's just too much hassle to do it now and maybe find out something else changes down the road)

 

Peter

 

  • Author

From a command line:

xenman register /mnt/cache/domains/Windows8VM/Windows8.cfg

 

This will register the VM and you can then manage it from the webgui.

 

or you can enter '/mnt/cache/domains/Windows8VM/Windows8.cfg' in the Xen webgui to register it.

 

BTW, Xen uses a configuration file that is not a xml file.

 

You can start and stop the VM from the command line with:

xenman start Windows8VM

 

xenman stop Windows8VM

 

If the VM gets stuck and you have to force a shut down use:

xl destroy Windows8VM

  • Author

Just curious, by the way, why going for Xen if you've been on KVM? Xen is not getting much love from LimeTech of late: JonP has stated that they are just testing to be sure it works with each release, no new features etc . KVM and moreso Docker seem to be where it's at.

 

I'm planning to migrate from Xen to KVM whenever v6 goes final (it's just too much hassle to do it now and maybe find out something else changes down the road)

 

Peter

 

I believe he is trying to do an Intel IGD GPU pass through as a primary display.  I don't think anyone has been able to do that in KVM.

 

It doesn't look like Xen is going away.  It's all over the LT website as a feature in V6.

 

LT is working on a lot of things and Xen on unraid really doesn't need anything right now.  The issues are with Xen itself, and not with unraid.  There are a few issues with GPU pass through, but those problems will be fixed by Xen.

 

What new features do you think Xen needs?

From a command line:

xenman register /mnt/cache/domains/Windows8VM/Windows8.cfg

 

This will register the VM and you can then manage it from the webgui.

 

or you can enter '/mnt/cache/domains/Windows8VM/Windows8.cfg' in the Xen webgui to register it.

 

BTW, Xen uses a configuration file that is not a xml file.

 

You can start and stop the VM from the command line with:

xenman start Windows8VM

 

xenman stop Windows8VM

 

If the VM gets stuck and you have to force a shut down use:

xl destroy Windows8VM

 

This should be stickied in the Xen forum as I can NEVER find it when I'm looking for it.

 

Adding it to my blog now to save future frustartions....

Just curious, by the way, why going for Xen if you've been on KVM? Xen is not getting much love from LimeTech of late: JonP has stated that they are just testing to be sure it works with each release, no new features etc . KVM and moreso Docker seem to be where it's at.

 

I'm planning to migrate from Xen to KVM whenever v6 goes final (it's just too much hassle to do it now and maybe find out something else changes down the road)

 

Peter

 

 

 

 

I believe he is trying to do an Intel IGD GPU pass through as a primary display.  I don't think anyone has been able to do that in KVM.

 

It doesn't look like Xen is going away.  It's all over the LT website as a feature in V6.

 

LT is working on a lot of things and Xen on unraid really doesn't need anything right now.  The issues are with Xen itself, and not with unraid.  There are a few issues with GPU pass through, but those problems will be fixed by Xen.

 

What new features do you think Xen needs?

 

 

I don't think it needs new features apart from perhaps an enhanced VM creation and management interface - the progress on the OpenElec GPU passthrough UI teased somewhere on here would be nice or integration of an existing Xen management tool.

 

My point is that I don't have much confidence that Xen will be well supported by LimeTech. Way back when Virtualisation integration was first mooted and Tom made great strides in getting Xen up and running, he posted to the effect that there were a number of options and there was no guarantee that all would be supported long term (can't find the exact reference for this so I'm paraphrasing).

 

Then KVM and Docker came along and there certainly seems to be more activity around those technologies, backed up by the post from Jonp I mentioned earlier where he stated there was no ongoing development on Xen apart from checking to ensure it worked with the current release (again paraphrasing).

 

I'm OK to stick with Xen for now. Happily it was continued to work for me in quite an involved deployment despite others having major issues with various versions of Xen. I just worry about the day when it doesn't.

 

Peter

Just curious, by the way, why going for Xen if you've been on KVM?

 

I believe he is trying to do an Intel IGD GPU pass through as a primary display.  I don't think anyone has been able to do that in KVM.

 

Exactly.

 

From a command line:

xenman register /mnt/cache/domains/Windows8VM/Windows8.cfg

 

This will register the VM and you can then manage it from the webgui.

 

or you can enter '/mnt/cache/domains/Windows8VM/Windows8.cfg' in the Xen webgui to register it.

 

BTW, Xen uses a configuration file that is not a xml file.

 

You can start and stop the VM from the command line with:

xenman start Windows8VM

 

xenman stop Windows8VM

 

If the VM gets stuck and you have to force a shut down use:

xl destroy Windows8VM

 

Great, thanks again.

 

I'll try to get this working over the weekend.  Fingers crossed.

  • Author

Be sure Windows has loaded the Intel GPU driver and it doesn't have any errors before you set gfx_passthru = 1.  Also let Windows apply updates.

  • 2 weeks later...

I have not tried yet.  Do I still need to use XEN from beta10; or does the new/current version work?

  • Author

I used the 4.4.0 version of Xen from beta8.  Xen 4.4.1 has some issues.

Thought I'd chime in here.  The fact that dlandon has gotten this to work is nothing short of amazing.  We at LT had never gotten an Intel IGD device to pass through.  We did manage to get an ASPEED iGPU to pass through (it's the graphics on the SuperMicro board we use in the AVS 10/4) but that's a totally different architecture than a GPU that shares it's video memory with system RAM like Intel IGDs do.

 

All of that said, this should be getting a LOT better in Xen 4.5.  We haven't experimented with the RC releases of it at all (no time right now) but IGD pass through improvements seem to be on their roadmap.  4.5 will have a LOT of fixes in general, but IGD pass through was one that stood out for us.  Guess we'll see when rubber meets the road, but just thought I'd provide my 2 cents on this topic.

 

I'm going to sticky this thread because I agree, this is a hot topic and one that should be always accessible from the top of this forum...

  • Author

I do expect that Xen 4.5 will remove the requirement to use the qemu-xen-traditional device model and having to use a raw image.  I also think they are working on the VM memory issues.

 

Once Xen 4.5 has been released in unRAID, I will build a new VM and see if I can do it without the qemu-xen-traditional device model and use a qcow image.

I do expect that Xen 4.5 will remove the requirement to use the qemu-xen-traditional device model and having to use a raw image.  I also think they are working on the VM memory issues.

 

Once Xen 4.5 has been released in unRAID, I will build a new VM and see if I can do it without the qemu-xen-traditional device model and use a qcow image.

You and I both!!  I'm just hoping we don't get all our hopes up only to be let down ;-)

  • 1 month later...

I have finally successfully passed through an Intel IGD to a Xen Windows 8.1 VM.  I have also passed through the Realtek sound, keyboard and mouse.  The Realtek sound drivers loaded successfully.  The following is how I got it to work.

 

I have an Asrock Z87 Extreme6 motherboard with a Xeon E3 1275 V3.

 

This is the final Xen cfg that worked:

name = 'Winndows8VM'
builder = 'hvm'
vcpus = '2'
memory = '2048'
boot = 'c'
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'destroy'
device_model_version = 'qemu-xen-traditional'
disk = [ 'file:/mnt/cache/domains/Windows8VM/Windows.img,hda,rw' ]
vif = [ 'mac=00:16:3e:54:86:18,bridge=xenbr0' ]
acpi = '1'
apic = '1'
localtime = 1

# Keyboard and mouse passthrough
usb = '1'
usbdevice = [ 'tablet','host:045e:0047','host:05d5:0624' ]

# VGA and sound passthrough
viridian = '1'
xen_platform_pci = '1'
gfx_passthru = '1'
pci = [ '00:02.0','00:03.0','00:1b.0' ]

# Remote vnc access
# sdl = '0'
# vnc = '1'
# vnclisten = 'x.x.x.x'

 

The procedure used was as follows:

- Verify you have vt-d enabled using this command: 'xl dmesg'

You should see the following indicating that vt-d is working:

(XEN) Intel VT-d iommu 0 supported page sizes: 4kB.
(XEN) Intel VT-d iommu 1 supported page sizes: 4kB.
(XEN) Intel VT-d Snoop Control not enabled.
(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.
(XEN) Intel VT-d Queued Invalidation enabled.
(XEN) Intel VT-d Interrupt Remapping enabled.
(XEN) Intel VT-d Shared EPT tables not enabled.
(XEN) I/O virtualisation enabled

 

- I used the Xen 4.4.0 from v6b8.

- I loaded the Windows 8.1 VM with the "device_model_version = 'qemu-xen-traditional'" in the cfg file.  Apparently the qemu upstream device model does not work at this time.  You'll need to set up a cdrom device with the Windows 8.1 install CD.  I used a USB crdom drive and passed through the physical device as sr0.

 

This is my cfg file used to load Windows.

name = 'Windows8VM'
builder = 'hvm'
vcpus = '2'
memory = '2048'
boot = 'c'
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'destroy'
device_model_version = 'qemu-xen-traditional'
disk = [ 'file:/mnt/cache/domains/Windows8VM/Windows.img,hda,rw' ]
vif = [ 'mac=00:16:3e:54:86:18,bridge=xenbr0' ]
acpi = '1'
apic = '1'
localtime = 1

usb = '1'
usbdevice = [ 'tablet' ]

# Remote vnc access
sdl = '0'
vnc = '1'
vnclisten = 'x.x.x.x'

 

- I used VNC during this process to access the VM and let Windows install its drivers and do the updates.

- Installed GPLPV drivers for disk and network.

- After the GPLPV drivers were installed, I then added the following to the cfg file so Windows would install the GPU drivers.

 

# VGA passthrough
viridian = '1'
xen_platform_pci = '1'
gfx_passthru = '0'
pci = [ '00:02.0' ]

 

- It took several reboots for the GPU driver to be loaded and active.

- I then set gfx_passthru to 1 and set up the sound, mouse and keyboard pass through.

 

Windows booted and the graphics was working.  The GPU also resets itself successfully on reboots so I don't have to do anything special to get the graphics to work on a restart.

 

I later upped the memory to 3072 and it is still working.  I may try to up the memory to 4096 when I feel brave, but I'll make a copy of the working VM first.

 

The only issue I have is that Windows 8.1 does not shut down completely.  I have to 'xl destroy Windows8VM' to get it to shutdown completely.

 

I did re-install the Xen 4.4.1 from the latest beta10a and the GPU worked but it was a bit jerky, and the sound was choppy.

 

NOTES: I had to use a raw image for the Windows disk because the qcow2 image was not recognized by the traditional device model.  I also learned that you cannot change the device model after Windows is loaded.  Apparently the devices installed in Windows are different for each model and can cause a BSOD if changed after the fact.

 

What's the difference between gfx_passthru = '0' and gfx_passthru = '1'?  With 0 it boots and sees the video card, with 1, it does not.  Same board as you, and a i-4770.  Using same Xen as you as well.

 

Thanks!

  • Author

When gfx_passthru=1, the GPU is enabled and becomes the primary display.  If you set gfx_passthru=0, the GPU will be recognized and the driver installed, but the GPU will not be used for the VM console.

 

I would recommend that you access the VM by setting gfx_passthru=0 and use VNC to get to the console.  Verify that the GPU driver is loaded and is working.  Reboot several times and be sure the GPU driver is loaded and recognized.  I used the Windows 8.1 GPU driver.  I did not load an Intel driver.

 

There is a setting I recommend to be sure the VM does not hang on boot with a message you can't get to.

 

To disable Windows start up menu:

bcdedit /set {current} bootstatuspolicy ignoreallfailures

 

This is the menu that says you had an improper shutdown and asks you for the action to perform.  With it turned off, Windows will just start normally.

 

Also verify that you have the proper settings in the syslinux.cfg.  It should look like this: /bzimage xen-pciback.hide=(00:02.0)(00:03.0)(00:1b.0)

 

This hides the GPU and sound from Xen and makes it available for the VM.

Ok, went ahead and ran the bcdedit command.

 

Using gfx_passthru=0 and VNC I can see that the Graphics are is available.  It shows the driver as being an Intel Driver, 5/20/2013, version 9.18.10.3192, is that what you have?  It's the only driver listed for it, installed by MS.  I do see a Xen PCI device #0 listed as having no driver.

 

As soon as I change gfx_passthru=1 and disable VNC, it goes through a constant reboot cycle.  It will not ping, or let me RDP to it.

 

Syslinux.cfg is set to hide the Intel Video Card, Intel Audio, Realtek Audio, and the PCI-e USB Controller.

 

label Xen/unRAID OS

  menu default

  kernel /syslinux/mboot.c32

  append /xen dom0_mem=6291456 --- /bzimage xen-pciback.hide=(07:00.0)(00:1b.0)(00:02.0)(00:03.0) --- /bzroot

 

Config I use for passing through video:

 

 

name = 'Windows8VM'

builder = 'hvm'

vcpus = '2'

memory = '2048'

boot = 'c'

on_poweroff = 'destroy'

on_reboot = 'restart'

on_crash = 'destroy'

device_model_version = 'qemu-xen-traditional'

disk = [ 'file:/mnt/cache/vm/WinTVServer.img,hda,rw','file:/mnt/user0/Images/domains/Windows/Win8.iso,hdb:cdrom,r' ]

vif = [ 'mac=00:16:3e:54:86:18,bridge=xenbr0' ]

acpi = '1'

apic = '1'

localtime = 1

 

usb = '1'

usbdevice = [ 'tablet' ]

 

# VGA and soung passthrough

viridian = '1'

xen_platform_pci = '1'

gfx_passthru = '1'

pci = [ '00:02.0','00:03.0','00:1b.0','07:00.0' ]

 

# Remote vnc access

#sdl = '0'

#vnc = '1'

#vnclisten = '0.0.0.0'

 

 

 

 

 

Thanks!

 

 

Interesting on a third reboot, it started pinging and it let me RDP to it, showed a black screen, then says "An internal error has occured".  Then it fails to ping or let me connect again.

Out of curiosity, which video card is selected for you in BIOS to use for unraid itself when it comes up?  Is it the intel card or the secondary card you may have?

 

Mine is setup to use the Intel, which I then want to pass through.

 

Thanks!

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.