[arch-general] [grub] how to make grub use the integrated intel gpu, rather than the discrete nvidia one?
Hello ! On a laptop with dual GPU, I'm able to disable nvdia, following instructions under [1], though I'm thinking that was not necessary, since I'm using early kms with intel [2]:
% grep i915 /etc/mkinitcpio.conf MODULES=(i915)
And I don't use the xf86-video-* Xorg drivers, since I prefer the glamor Xorg ones:
[ 94.997] (II) modeset(0): glamor X acceleration enabled on Mesa Intel(R) UHD Graphics 630 (CFL GT2)
Now, I noticed grub is actually using the nvdia gpu, because it doesn't support specifying GRUB_GFXMODE to "auto", neither "1920x1080x32", well, it doesn't complain, but the resolution I get for any is terrible, and when I disable the framebuffer [3]:
# Uncomment to disable graphical terminal #GRUB_TERMINAL_OUTPUT=console
I do get the right resolution, though I totally lose my background image, which is sad. But it's not only aesthetics, it seems, at times, when loading the initrd image on boot, the system freezes, and there's no alternative than a hard boot, which might be related. If you're wondering, this is a HP zbook 15 g6. Thanks ! -- Javier [1] https://wiki.archlinux.org/title/hybrid_graphics [2] https://wiki.archlinux.org/title/kernel_mode_setting#Early_KMS_start [3] https://wiki.archlinux.org/title/GRUB/Tips_and_tricks#Disable_framebuffer
On 4/12/22 02:19, Javier via arch-general wrote:
...
But it's not only aesthetics, it seems, at times, after loading the initrd image on boot, and while doing the init, the system freezes, and there's no alternative than a hard boot, which might be related. -- Javier
oh well. Found out by disabling both, legacy and secure boot on the bios, I got intel gpu as the one used by grub. But then I realized I could actually select it on the bios, though it was sort of misleading to me, it said something like HMU, or similar, whereas the other options were like hybrid, the discrete gpu, or auto, where auto was the default. So that's better. But I guess I have a messy bios, which windows don't care about? I still get random freezes when doing init, and some times even a backtrace dump. When not getting into that, I'm seen several errors on dmsg:
% sudo dmesg | 'grep' -i -e error -e bug -e fail [ 0.230586] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored [ 0.300076] ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [CAP1] at bit offset/length 64/32 exceeds size of target Buffer (64 bits) (20211217/dsopcode-198) [ 0.300082] ACPI Error: Aborting method \_SB._OSC due to previous error (AE_AML_BUFFER_LIMIT) (20211217/psparse-529) [ 3.398151] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug [ 3.736937] ACPI BIOS Error (bug): AE_AML_PACKAGE_LIMIT, Index (0x000000005) is beyond end of object (length 0x5) (20211217/exoparg2-393) [ 3.736947] ACPI Error: Aborting method \_TZ.GETP due to previous error (AE_AML_PACKAGE_LIMIT) (20211217/psparse-529) [ 3.736952] ACPI Error: Aborting method \_TZ.CHGZ._CRT due to previous error (AE_AML_PACKAGE_LIMIT) (20211217/psparse-529) [ 3.738367] ACPI BIOS Error (bug): AE_AML_PACKAGE_LIMIT, Index (0x000000005) is beyond end of object (length 0x5) (20211217/exoparg2-393) [ 3.738377] ACPI Error: Aborting method \_TZ.GETP due to previous error (AE_AML_PACKAGE_LIMIT) (20211217/psparse-529) [ 3.738382] ACPI Error: Aborting method \_TZ.CHGZ._CRT due to previous error (AE_AML_PACKAGE_LIMIT) (20211217/psparse-529) [ 3.738389] ACPI: thermal: [Firmware Bug]: No valid trip found [ 3.744899] AMD-Vi: AMD IOMMUv2 functionality not available on this system - This is not a bug. [ 3.772406] RAS: Correctable Errors collector initialized. [ 13.051064] Bluetooth: hci0: Debug lock is disabled [ 13.054636] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 [ 13.054639] cfg80211: failed to load regulatory.db [ 13.344856] iwlwifi 0000:6f:00.0: Direct firmware load for iwlwifi-cc-a0-69.ucode failed with error -2 [ 13.344882] hp_wmi: query 0x4 returned error 0x5 [ 13.348164] hp_wmi: query 0xd returned error 0x5 [ 13.428685] hp_wmi: query 0x1b returned error 0x5 [ 13.627883] thermal thermal_zone13: failed to read out thermal zone (-61) [ 14.072072] sof-audio-pci-intel-cnl 0000:00:1f.3: Direct firmware load for intel/sof/sof-cfl.ri failed with error -2 [ 14.072075] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof firmware file is missing, you might need to [ 14.072077] sof-audio-pci-intel-cnl 0000:00:1f.3: error: failed to load DSP firmware -2 [ 14.072451] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof_probe_work failed err: -2
I guess I can start a different thread about this, and close the grub one... -- Javier
Although I still see the weird dmsg errors, I found the culprit... I removed "irqpoll" from the linux boot parameters:
irqfixup [HW] When an interrupt is not handled search all handlers for it. Intended to get systems with badly broken firmware running.
irqpoll [HW] When an interrupt is not handled search all handlers for it. Also check all handlers each timer interrupt. Intended to get systems with badly broken firmware running.
I have no idea why it was affecting, it's supposed to help, rather than affect... I've always used it (since I found issues with mintbox 2 and another HP elitebook laptop), and had worked fine till now... Thanks ! -- Javier [1] https://www.kernel.org/doc/html/v5.2/admin-guide/kernel-parameters.html
participants (1)
-
Javier