View previous topic :: View next topic |
Author |
Message |
matthewmajf n00b
Joined: 28 Jun 2024 Posts: 11
|
Posted: Tue Jul 02, 2024 5:31 pm Post subject: Cannot create a mediated device with GVT-g... |
|
|
As my laptop does not have two GPUs, and only one integrated graphics card, I am not able to just passthrough my integrated graphics card [to VMs], especially since I use several virtual machines in which I would normally passthrough multiple vGPU(s) created by Intel's GVT-g technology.
Intel's GVT-g technology has worked successfully with me on several distros, such as Debian, Ubuntu, Arch, etc. However, on Gentoo, [so far], I have not been able to successfully set up GVT-g.
I've even followed many tutorials, including these:
https://blog.freebsd-days.com/2021/05/windows-10-on-linux-kvm-with-intel-gvt-g/
https://wiki.gentoo.org/wiki/User:Shunlir/Intel_GVT-g
So here's how I attempted to get GVT-g working:
1. I would get the Gentoo kernel sources using portage, and then select the kernel using `eselect`.
2. I would then go to `/usr/src/linux`, run `make menuconfig`, make no changes in the menu, and save the `.config` file.
3. After that, I would edit the `.config` file manually, using GNU Nano, and set the following values:
CONFIG_VFIO_MDEV=m
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_INTEL_IOMMU=y
CONFIG_DRM_I915_GVT=y
CONFIG_DRM_I915_GVT_KVMGT=m
4. I would then run `make`, `make modules_install`, and `make install`.
5. After that, I'd edit `/etc/default/grub`, and add these kernel parameters to `GRUB_CMDLINE_LINUX_DEFAULT`, each:
intel_iommu=on
i915.enable_gvt=1
kvm.ignore_msrs=1
i915.enable_guc=0
In the end, my `/etc/default/grub` file looked like this:
Code: |
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
#
# To populate all changes in this file you need to regenerate your
# grub configuration file afterwards:
# 'grub-mkconfig -o /boot/grub/grub.cfg'
#
# See the grub info page for documentation on possible variables and
# their associated values.
GRUB_DISTRIBUTOR="Gentoo"
# Default menu entry
#GRUB_DEFAULT=0
# Boot the default entry this many seconds after the menu is displayed
#GRUB_TIMEOUT=5
#GRUB_TIMEOUT_STYLE=menu
# Append parameters to the linux kernel command line
GRUB_CMDLINE_LINUX=""
#
# Examples:
#
# Boot with network interface renaming disabled
# GRUB_CMDLINE_LINUX="net.ifnames=0"
#
# Boot with systemd instead of sysvinit (openrc)
# GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
# Append parameters to the linux kernel command line for non-recovery entries
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=1,5,2,6,3,7 intel_iommu=on i915.enable_gvt=1 kvm.ignore_msrs=1 i915.enable_guc=0"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal.
# Note that you can use only modes which your graphic card supports via VBE.
# You can see them in real GRUB with the command `vbeinfo'.
#GRUB_GFXMODE=640x480
# Set to 'text' to force the Linux kernel to boot in normal text
# mode, 'keep' to preserve the graphics mode set using
# 'GRUB_GFXMODE', 'WIDTHxHEIGHT'['xDEPTH'] to set a particular
# graphics mode, or a sequence of these separated by commas or
# semicolons to try several modes in sequence.
#GRUB_GFXPAYLOAD_LINUX=
# Path to theme spec txt file.
# The starfield is by default provided with use truetype.
# NOTE: when enabling custom theme, ensure you have required font/etc.
#GRUB_THEME="/boot/grub/themes/starfield/theme.txt"
# Background image used on graphical terminal.
# Can be in various bitmap formats.
#GRUB_BACKGROUND="/boot/grub/mybackground.png"
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to kernel
#GRUB_DISABLE_LINUX_UUID=true
# Comment if you don't want GRUB to pass "root=PARTUUID=xxx" parameter to kernel
GRUB_DISABLE_LINUX_PARTUUID=false
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY=true
# Uncomment to disable generation of the submenu and put all choices on
# the top-level menu.
# Besides the visual affect of no sub menu, this makes navigation of the
# menu easier for a user who can't see the screen.
#GRUB_DISABLE_SUBMENU=y
# Uncomment to play a tone when the main menu is displayed.
# This is useful, for example, to allow users who can't see the screen
# to know when they can make a choice on the menu.
#GRUB_INIT_TUNE="60 800 1"
|
6. So I'd then reload the GRUB bootloader by running `grub-mkconfig -o /boot/grub/grub.cfg`.
I'd then reboot, and to my surprise, when I'd go to `/sys/bus/pci/devices/0000:00:02.0/` (yes, that's also the address of my integrated graphics card), and the `mdev_supported_types` directory/file was nowhere to be found.
Yes, `CONFIG_VFIO_DEVICE` wasn't edited, because it was already nowhere to be seen in the kernel's configuration. Why is this so? Am I just no longer able to create mediated devices for use with GVT-g? My laptop only has one Mini-PCIe slot, but that's for the WiFi card, and I don't think there's any dGPU out there that can fit into such a small slot.
If anyone knows how to fix this problem, I'd greatly appreciate it! |
|
Back to top |
|
|
Cruslan n00b
Joined: 06 Jan 2024 Posts: 26
|
Posted: Tue Jul 02, 2024 10:31 pm Post subject: |
|
|
You have to create MDEV device again every reboot. Or you may need set a OpenRC or systemd service that runs commands for you. |
|
Back to top |
|
|
matthewmajf n00b
Joined: 28 Jun 2024 Posts: 11
|
Posted: Tue Jul 02, 2024 10:39 pm Post subject: |
|
|
Cruslan wrote: | You have to create MDEV device again every reboot. Or you may need set a OpenRC or systemd service that runs commands for you. |
No, no, I understand that, but here's the thing, I am not capable of creating this MDEV device because the `mdev_supported_types` directory doesn't even exist in the iGPU's directory (`/sys/bus/pci/devices/0000:00:02.0`)! |
|
Back to top |
|
|
Cruslan n00b
Joined: 06 Jan 2024 Posts: 26
|
Posted: Tue Jul 02, 2024 10:43 pm Post subject: |
|
|
Are you sure about your iGPU supports GVT-g technology? Small percentage of Intel iGPU's supports them. I have to ask because you didn't mentioned your platform. |
|
Back to top |
|
|
matthewmajf n00b
Joined: 28 Jun 2024 Posts: 11
|
Posted: Tue Jul 02, 2024 10:56 pm Post subject: |
|
|
Cruslan wrote: | Are you sure about your iGPU supports GVT-g technology? Small percentage of Intel iGPU's supports them. I have to ask because you didn't mentioned your platform. |
Mine in fact does. When I previously ran the same laptop on a Debian system, I was capable of creating a few vGPUs using GVT-g.
Running `neofetch` returns the following for my iGPU:
Code: |
Intel WhiskeyLake-U GT2 [UHD Graphics 620]
|
|
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5118 Location: Bavaria
|
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5118 Location: Bavaria
|
Posted: Wed Jul 03, 2024 12:21 am Post subject: |
|
|
P.S.: Only one example: If you enable DRM_I915_GVT_KVMGT in "make menuconfig" it will automatically enable also:
Quote: | Selects: DRM_I915_GVT [=n] && KVM_EXTERNAL_WRITE_TRACKING [=n] && VFIO_MDEV [=n] |
(look into the help of DRM_I915_GVT_KVMGT) _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
kimchi_sg Advocate
Joined: 26 Nov 2004 Posts: 3038
|
Posted: Wed Jul 03, 2024 12:46 am Post subject: Re: Cannot create a mediated device with GVT-g... |
|
|
matthewmajf wrote: |
2. I would then go to `/usr/src/linux`, run `make menuconfig`, make no changes in the menu, and save the `.config` file.
|
This alone will almost certainly make your new kernel unusable, the default config is very inadequate for most users.
Quote: |
3. After that, I would edit the `.config` file manually, using GNU Nano, and set the following values:
CONFIG_VFIO_MDEV=m
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_INTEL_IOMMU=y
CONFIG_DRM_I915_GVT=y
CONFIG_DRM_I915_GVT_KVMGT=m
|
As pietinger said, this makes your new kernel 200% more not bootable. |
|
Back to top |
|
|
matthewmajf n00b
Joined: 28 Jun 2024 Posts: 11
|
Posted: Wed Jul 03, 2024 1:13 am Post subject: Re: Cannot create a mediated device with GVT-g... |
|
|
kimchi_sg wrote: | matthewmajf wrote: |
2. I would then go to `/usr/src/linux`, run `make menuconfig`, make no changes in the menu, and save the `.config` file.
|
This alone will almost certainly make your new kernel unusable, the default config is very inadequate for most users.
Quote: |
3. After that, I would edit the `.config` file manually, using GNU Nano, and set the following values:
CONFIG_VFIO_MDEV=m
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_INTEL_IOMMU=y
CONFIG_DRM_I915_GVT=y
CONFIG_DRM_I915_GVT_KVMGT=m
|
As pietinger said, this makes your new kernel 200% more not bootable. |
Well, I've had no problem booting with the new kernel, however of course, the mediated device feature did not work with GVT-g. I'll go and read the article, see if I can re-configure it properly, and i'll report back here with some status once I'm done!
And thanks for all of the help, by the way. |
|
Back to top |
|
|
matthewmajf n00b
Joined: 28 Jun 2024 Posts: 11
|
Posted: Wed Jul 03, 2024 4:46 pm Post subject: |
|
|
Alright, so I have been able to clean up the whole kernel, and used `make menuconfig` to enable the flags I mentioned in the post above. However, when I boot up, it seems that the GRUB bootloader reports that it's loading the initial ramdisk, however it hangs there.
So I ran `make menuconfig` again, and enabled simple framebuffer, and EFI framebuffer, however that didn't fix up anything. I'm guessing the system does boot, but cannot manage to display anything successfully, so I tried SSH'ing to my laptop from another computer, however I was not able to connect.
What am I doing wrong here?
Here's my `.config` file (no, I have not edited it manually):
https://pastebin.com/raw/4B9L00tz
Here's my `/etc/default/grub` file:
Code: |
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
#
# To populate all changes in this file you need to regenerate your
# grub configuration file afterwards:
# 'grub-mkconfig -o /boot/grub/grub.cfg'
#
# See the grub info page for documentation on possible variables and
# their associated values.
GRUB_DISTRIBUTOR="Gentoo"
# Default menu entry
#GRUB_DEFAULT=0
# Boot the default entry this many seconds after the menu is displayed
#GRUB_TIMEOUT=5
#GRUB_TIMEOUT_STYLE=menu
# Append parameters to the linux kernel command line
GRUB_CMDLINE_LINUX=""
#
# Examples:
#
# Boot with network interface renaming disabled
# GRUB_CMDLINE_LINUX="net.ifnames=0"
#
# Boot with systemd instead of sysvinit (openrc)
# GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
# Append parameters to the linux kernel command line for non-recovery entries
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=1,5,2,6,3,7 intel_iommu=on i915.enable_gvt=1 kvm.ignore_msrs=1"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal.
# Note that you can use only modes which your graphic card supports via VBE.
# You can see them in real GRUB with the command `vbeinfo'.
#GRUB_GFXMODE=640x480
# Set to 'text' to force the Linux kernel to boot in normal text
# mode, 'keep' to preserve the graphics mode set using
# 'GRUB_GFXMODE', 'WIDTHxHEIGHT'['xDEPTH'] to set a particular
# graphics mode, or a sequence of these separated by commas or
# semicolons to try several modes in sequence.
#GRUB_GFXPAYLOAD_LINUX=
# Path to theme spec txt file.
# The starfield is by default provided with use truetype.
# NOTE: when enabling custom theme, ensure you have required font/etc.
#GRUB_THEME="/boot/grub/themes/starfield/theme.txt"
# Background image used on graphical terminal.
# Can be in various bitmap formats.
#GRUB_BACKGROUND="/boot/grub/mybackground.png"
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to kernel
#GRUB_DISABLE_LINUX_UUID=true
# Comment if you don't want GRUB to pass "root=PARTUUID=xxx" parameter to kernel
GRUB_DISABLE_LINUX_PARTUUID=false
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY=true
# Uncomment to disable generation of the submenu and put all choices on
# the top-level menu.
# Besides the visual affect of no sub menu, this makes navigation of the
# menu easier for a user who can't see the screen.
#GRUB_DISABLE_SUBMENU=y
# Uncomment to play a tone when the main menu is displayed.
# This is useful, for example, to allow users who can't see the screen
# to know when they can make a choice on the menu.
#GRUB_INIT_TUNE="60 800 1"
|
And here's the logs from running `make modules_install && make install`:
Code: |
SYMLINK /lib/modules/6.6.30-gentoo/build
INSTALL /lib/modules/6.6.30-gentoo/modules.order
INSTALL /lib/modules/6.6.30-gentoo/modules.builtin
INSTALL /lib/modules/6.6.30-gentoo/modules.builtin.modinfo
INSTALL /lib/modules/6.6.30-gentoo/kernel/fs/efivarfs/efivarfs.ko
INSTALL /lib/modules/6.6.30-gentoo/kernel/drivers/vfio/pci/vfio-pci-core.ko
INSTALL /lib/modules/6.6.30-gentoo/kernel/drivers/vfio/pci/vfio-pci.ko
INSTALL /lib/modules/6.6.30-gentoo/kernel/drivers/thermal/intel/x86_pkg_temp_thermal.ko
INSTALL /lib/modules/6.6.30-gentoo/kernel/net/netfilter/nf_log_syslog.ko
INSTALL /lib/modules/6.6.30-gentoo/kernel/net/netfilter/xt_mark.ko
INSTALL /lib/modules/6.6.30-gentoo/kernel/net/netfilter/xt_nat.ko
INSTALL /lib/modules/6.6.30-gentoo/kernel/net/netfilter/xt_LOG.ko
INSTALL /lib/modules/6.6.30-gentoo/kernel/net/netfilter/xt_MASQUERADE.ko
INSTALL /lib/modules/6.6.30-gentoo/kernel/net/netfilter/xt_addrtype.ko
INSTALL /lib/modules/6.6.30-gentoo/kernel/net/ipv4/netfilter/iptable_nat.ko
DEPMOD /lib/modules/6.6.30-gentoo
|
https://pastebin.com/raw/dYVxX0NX
Anyone know why this is happening? |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5118 Location: Bavaria
|
|
Back to top |
|
|
matthewmajf n00b
Joined: 28 Jun 2024 Posts: 11
|
Posted: Thu Jul 04, 2024 3:44 pm Post subject: |
|
|
This has seemed to fix the issue! I was able to enable framebuffer, and XFS support, getting my kernel to work.
I very much appreciate the help, thanks! |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5118 Location: Bavaria
|
Posted: Thu Jul 04, 2024 4:54 pm Post subject: |
|
|
matthewmajf wrote: | This has seemed to fix the issue! I was able to enable framebuffer, and XFS support, getting my kernel to work. |
Happy to hear that. Does GVT-g also work now ?
matthewmajf wrote: | I very much appreciate the help, thanks! |
You are very Welcome !
Have fun with Gentoo ! _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|