You are not logged in.
Hi there,
I'm new to arch, but not new to linux. I am able to blacklist the i915 module on several other distro's, but it won't let me in arch.
I want to disable the i915 subsystem/driver/module because it interferes with my IGD pci passthrough.
What I have tried already:
1. Adding video=vesafb:off to my kernel command line -> no success
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=ac374591-4039-4ecb-909a-1a4188f90f58 rw kvm.ignore_msrs=1 intel_iommu=on video=vesafb:off
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=ac374591-4039-4ecb-909a-1a4188f90f58 rw kvm.ignore_msrs=1 intel_iommu=on video=vesafb:off
[ 0.500570] vesafb: mode is 1920x1080x32, linelength=7680, pages=0
[ 0.500571] vesafb: scrolling: redraw
[ 0.500573] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[ 0.500584] vesafb: framebuffer at 0x90000000, mapped to 0x(____ptrval____), using 8128k, total 8128k
2. Added modprobe files and rebuild mkinitcpio -p Linux -> no success
[root@archcor modprobe.d]# cat /etc/modprobe.d/modprobe.conf
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
options vfio-pci ids=8086:5916
install i915 /usr/bin/false
install intel_agp /usr/bin/false
[root@archcor modprobe.d]# cat /etc/mkinitcpio.conf | grep -i files
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=(/etc/modprobe.d/modprobe.conf)
Arch keeps loading the i915 and offcourse my monitor screen.
Any help is appreciated! Thanks
Last edited by archqemu (2018-11-01 20:57:25)
Offline
Please provide the output of
grep ^MODULES /etc/mkinitcpio.conf
I.e. is i915 nmaybe built into your initramfs?
Also have a look at blacklisting by kernel command line.
OT:
[root@archcor modprobe.d]# cat /etc/mkinitcpio.conf | grep -i files # FILES # This setting is similar to BINARIES above, however, files are added # as-is and are not parsed in any way. This is useful for config files. FILES=(/etc/modprobe.d/modprobe.conf)
Inofficial first vice president of the Rust Evangelism Strike Force
Offline
Haha thanks for pointing me on the useless use of cat.
The result of:
[root@archcor boot]# grep ^MODULES /etc/mkinitcpio.conf
MODULES=()
I did not built it into the initramfs. I checked with
zcat initramfs-linux.bak | cpio --extract --verbose --list
and it didn't show up in the list.
Blacklisting the module via kernel command line-> no success
[root@archcor ~]# dmesg | grep i915
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=ac374591-4039-4ecb-909a-1a4188f90f58 rw kvm.ignore_msrs=1 intel_iommu=on module_blacklist=i915 video=vesafb:off
[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=ac374591-4039-4ecb-909a-1a4188f90f58 rw kvm.ignore_msrs=1 intel_iommu=on module_blacklist=i915 video=vesafb:off
Last edited by archqemu (2018-10-26 14:09:50)
Offline
lsinitcpio /boot/initramfs-linux.img | grep i915 # what is initramfs-linux.bak ?
lsmod | grep i915 # are you positive the module is actually loaded?
Are you sure you're not loading the initramfs-linux-fallback.img?
Does "module_blacklist=i915" work as kernel parameter?
Offline
Pretty sure i'm not loading the fallback.img. To be sure I removed it and ran grub-mkconfig again.
No setting it as kernel parameter also doesn't make any difference.
Offline
As already mentioned are you sure that it is actually loaded? I don't think you would get that little of a return from a grepped dmesg if that was the case. It is much more likely that you are running into the general vfio/virtio issues currently about, that was a change in 4.18.16 kernel config for Arch that changes the way you'd have to set up the passthrough: see this thread and the linked bug i.e. set up the vfio-pci ids on the kernel command line instead.
Edit: Added clarification wrt to changes
Last edited by V1del (2018-10-30 10:16:26)
Offline
Thanks for the linked thread, I didn't read that already.
I understand you are saying this is a change since 4.18.16. So how is it possible my config works on a ubuntu server with the same kernel? At the moment I upgraded to 4.19 on that server. Same hardware.
root@ubu:/d# cat /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="kvm.ignore_msrs=1 intel_iommu=on video=efifb:off,vesafb:
root@ubu:/tmp# cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
root@ubu:/etc/modprobe.d# cat vfio.conf
options vfio-pci ids=8086:5916
root@ubu:/etc/modprobe.d# cat blacklist.conf
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915
When adding the vfio-pci ids adding to kernel command line, it does not load the i915 driver, but the vfio-pci instead. So that is good. But when I passthrough the IGD, it doesn't passthrough to the VM. Instead it reactivates the i915 module again on the host. What gives a blurred frame screen. I have to reboot the system then.
I had this same issue on ubuntu server and I had to blacklist everything related to the IGD to stop the host claiming back the IGD. Apparently this is broken in the Arch kernel?
Offline
I understand you are saying this is a change since 4.18.16.
No it was a change in the kernel .config used for the 4.18.16.arch1-1 linux package.
Please post kernel messages from a boot with the issue.
Offline
I got it working. Thank you guys for pointing out the flaw in kernel 4.18.16.
Right now I'm running 4.19.0-arch1-1-ARCH and it is working directly as I configured intially. Thanks again.
Offline
Glad to hear, please mark as [SOLVED] by editing the title in your first post: https://wiki.archlinux.org/index.php/Co … ow_to_post
Offline