chimeraos icon indicating copy to clipboard operation
chimeraos copied to clipboard

Using integrated graphics instead of dedicated graphics

Open testmandk2 opened this issue 4 years ago • 11 comments

I got GamerOS running everything works. I download and install counter strike GO and it just lags even on the lowest graphics settings.

I go out of the game and in settings I can see that GamerOS is using integrated Intel graphics instead of the dedicated Nvidia graphics.

I got a laptop with CPU: Intel i5 GPU: nvidia gforce GT 640M -1GB RAM: 6 HDD: 500GB

testmandk2 avatar Apr 20 '20 18:04 testmandk2

Hybrid graphics are not currently supported.

Can you switch the graphics from the bios?

Also, I am not sure that your GPU is supported by the current Nvidia drivers. The "GT 640M LE" is listed here: https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/

I couldn't establish whether the GT 640M is supported by the current drivers or by the legacy drivers though. GamerOS only includes the current drivers.

I suspect you might actually have the GT 640M LE because it had 1GB of memory while the GT 640M had 2GB. At least according to http://gpuboss.com/gpus/GeForce-GT-640M-LE-vs-GeForce-GT-640M

alkazar avatar Apr 20 '20 20:04 alkazar

In HWiNFO software it Tells me NVIDIA GeForce GT 640M (Acer) it's a acer aspire m3 581tg laptop. I sat a hirens boot cd PE USB in the PC to check this

EDIT: No I am not able to switch anything graphics relat from BIOS unfortunately

testmandk2 avatar Apr 21 '20 12:04 testmandk2

I am now trying ubuntu to see if it can be done from there. And I am following this guide https://www.linuxbabe.com/desktop-linux/switch-intel-nvidia-graphics-card-ubuntu/amp

testmandk2 avatar Apr 21 '20 14:04 testmandk2

It worked from ubuntu. So I'm guessing it can work on Gamer OS too. CS GO on low graphics it lags a little bit but its playable

testmandk2 avatar Apr 21 '20 19:04 testmandk2

After installing GamerOS, the main graphics driver used by my laptop (an HP 14-al007la : i7-6500U + NVIDIA GeForce 940MX 2GB) was the intel one. Although it worked pretty well out-of-the-box, it was not using my GPU at all.

So I was able to make nvidia driver the main one loaded after following these steps on a terminal:

~0. Trying simply reintalling nvidia drivers~

~sudo frzr-unlock #allows for modification of base FS~ ~sudo pacman -Sy nvidia #first attemp, reinstalling the nvidia drivers (according to pacman they were installed previously)~

This didn't work by itself and locked me out of GUI with "lightdm failed to start" on reboot.

1. Fix LightDM to init driver

sudo vim /etc/lightdm/display_setup.sh #create script to load the driver ------- CONTENT display_setup.sh -------

#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

------- /CONTENT display_setup.sh ------

sudo chmod +x /etc/lightdm/display_setup.sh # make script executable sudo vim /etc/lightdm/lightdm.conf # add the script as "display-setup-script"

------- STUB lightdm.conf ------ ... [Seat:*] display-setup-script=/etc/lightdm/display_setup.sh session-wrapper=/etc/lightdm/Xsession ... ------- /STUB lightdm.conf ------

Again, this didn't worked by itself, so kept looking..

2. Revise xorg configuration to set nvidia as primary GPU

~sudo pacman -S xorg-xrandr #not sure if required (as it's preinstalled), but I ran it following a guide~ sudo cp /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf /etc/X11/xorg.conf.d/ sudo vim /etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf

------- CONTENT 10-nvidia-drm-outputclass.conf ------- Section "OutputClass" Identifier "intel" MatchDriver "i915" Driver "modesetting" EndSection

Section "OutputClass" Identifier "nvidia" MatchDriver "nvidia-drm" Driver "nvidia" Option "AllowEmptyInitialConfiguration" Option "PrimaryGPU" "yes" ModulePath "/usr/lib/nvidia/xorg" ModulePath "/usr/lib/xorg/modules" EndSection ------- /CONTENT 10-nvidia-drm-outputclass.conf -------

Again, this was not enough, so I found out I may have been missing an important part...

3. Load nvidia modules and enable the kernel parameter

sudo vim /etc/mkinitcpio.conf #setting nvidia related modules ------- STUB lightdm.conf ------ ... MODULES=(dm_mod ext4 sha256 sha512 overlay i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm) ... ------- /STUB lightdm.conf ------

sudo vim /etc/modprobe.d/nvidia-drm.conf #create conf file to enable the kernel flag

------- CONTENT nvidia-drm.conf ------- options nvidia_drm modeset=1 ------- /CONTENT nvidia-drm.conf -------

mv /etc/X11/xorg.conf /etc/X11/xorg.conf.OLDnBAD # IMPORTANT: make sure the xorg previous config doesn't interfere at boot reboot # fingers crossed

After the reboot, the GUI loaded! But there's one last thing that must be taken care of...

4. Recreate a valid xorg.conf

DISPLAY=:0 sudo nvidia-xconfig #create base xorg config

sudo vim /etc/X11/xorg.conf # add Module modesetting at header ------- STUB xorg.conf ------

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 455.38

Section "Module"
    Load "modesetting"
EndSection    

Section "ServerLayout"

... ------- /STUB xorg.conf ------

reboot #one last time to ensure

~(Until here, the process is permanent and your PC should always boot with the nvidia driver as default, but the next step should be repeated after every update -for the time being at least)~ [step 5 is now permanent]

5. Disable unusable drivers for Proton 5.13+ and Pressure Vessels to work

The is a reported bug with "flatpak based" apps (that Steam makes use of in the lastests release of Proton), in which them will try and override nvidia with mesa if a driver is located in hybrid setups (like the one discussed here). The solution is simple ~(although may need to be repeated after every update)~ and permanent:

~sudo frzr-unlock #allows for modification of base FS~ ~sudo mv /usr/share/vulkan/icd.d/intel_icd.x86_64.json /usr/share/vulkan/icd.d/intel_icd.x86_64.json.disabled~ ~sudo mv /usr/share/vulkan/icd.d/intel_icd.i686.json /usr/share/vulkan/icd.d/intel_icd.i686.json.disabled~

Edit /home/gamer/.profile and add this line:

export VK_ICD_FILENAMES="/usr/share/vulkan/icd.d/nvidia_icd.json"

One final reboot and we're done!

It was a long way but lo and behold, I have my hybrid-laptop booting GamerOS with the nvidia drivers!

~IMPORTANT: Be aware though, I have not being able to use versions of Proton beyond 5.0 (tested Proton-5.13, Proton-Experimental and even Proton-GE-5.21), not sure if by simple compatibility with my GPU or reason of them using Pressure-vessel that I think are dependent on flatpak versions of the nvidia driver, but funnily enough these did work before using the intel iGPU. Let me know if you find is the latter.~ It was the latter, found a solution here. Added as Step 5. Now permanently by using global variableVK_ICD_FILENAMES.

qchto avatar Dec 21 '20 20:12 qchto

Hello

Maybe it could go to another issue but it's also a bit related to computer that have multiple GPU. In my case I have an intel GPU and a NVIDIA. In my actual setup I run my games but running a session with nvidia-xrun (https://github.com/Witko/nvidia-xrun/). It basicily launch the session manager using my NVIDIA card.

I didn't tried to install GamerOS yet but it's possible to for example launching nvidia-xrun before that the session is launching. Normally for something like openbox (or other application) it would be ǹvidia-xrun <application>. From what I read it's possible to apply modification like a "normal" Linux to GamerOS but if there is a proper way to do it, it's maybe better.

Cheers.

kadogo avatar Jan 15 '21 02:01 kadogo

I revised my guide above. Now the solution is permanent and persists through updates by only modifying files under /etc/ and /home/ directories.

(If someone has checked nvidia-xrun successfully, let us know if it's an easier workaround).

qchto avatar May 28 '21 19:05 qchto

If anyone has a guide on how to get AMD Radeon discreet graphics running, that's be very helpful. The PC I was using for this died recently, so I'm trying to get a laptop running that should be decent, but the OS keeps defaulting to the Intel graphics (BIOS settings don't make a difference).

chimera-os-fan avatar Oct 03 '21 19:10 chimera-os-fan

If anyone has a guide on how to get AMD Radeon discreet graphics running, that's be very helpful. The PC I was using for this died recently, so I'm trying to get a laptop running that should be decent, but the OS keeps defaulting to the Intel graphics (BIOS settings don't make a difference).

Try setting DRI_PRIME=1 environment variable globally. This can be done by creating/editing ~/.config/steamos-compositor-plus and adding this line:

export DRI_PRIME=1

Samsagax avatar Oct 03 '21 19:10 Samsagax

Thank you for the suggestion and sorry for the late reply. It didn't work for me, and I haven't had the time to tinker with it more.

Thanks again.

On Sun, Oct 3, 2021 at 7:56 PM Joaquín Ignacio Aramendía < @.***> wrote:

If anyone has a guide on how to get AMD Radeon discreet graphics running, that's be very helpful. The PC I was using for this died recently, so I'm trying to get a laptop running that should be decent, but the OS keeps defaulting to the Intel graphics (BIOS settings don't make a difference).

Try setting DRI_PRIME=1 environment variable globally. This can be done by creating/editing ~/.config/steamos-compositor-plus and adding this line:

export DRI_PRIME=1

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ChimeraOS/chimeraos/issues/97#issuecomment-933015526, or unsubscribe https://github.com/notifications/unsubscribe-auth/AUAKBNQ42IMOW4KHCRGKN2TUFCYQLANCNFSM4MMVNTCQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

chimera-os-fan avatar Jan 02 '22 22:01 chimera-os-fan

@qchto Thanks so much for your post

makidoll avatar Feb 01 '22 02:02 makidoll

Currently we can't support hybrid graphics setups as they are hardware dependent. The most we can do is to document the means it can be acchieved but ultimately this would be a won't fix.

Samsagax avatar Dec 27 '22 11:12 Samsagax