Note

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

Make.conf/VIDEO CARDS/NVIDIA and Nouveau Driver Switching

From Funtoo
< Make.conf‎ | VIDEO CARDS
Revision as of 21:49, September 21, 2019 by Jr.webb (talk | contribs)
Jump to navigation Jump to search

This page describes how to switch between nvidia and nouveau drivers on the same computer and kernel from the boot menu.

   Note

You must know how to install x11-drivers/nvidia-drivers and No results (references at the end of the page). First, you need to configure your kernel and install nvidia drivers and nouveau. We assume that this stage is successfully passed.

boot-update

The most important change: edit /etc/boot.conf:

   /etc/boot.conf
boot {
	generate grub
	default "Funtoo Linux [nvidia]" 
	# or
	# default "Funtoo Linux [nouveau]"
	timeout 3 
}

color {
	normal cyan/blue
	highlight blue/cyan
}

display {
	#gfxmode 1280x800
	#font unifont.pf2
}

"Funtoo Linux [nvidia]" {
	kernel vmlinuz[-v]
	params += ro console=tty1 quiet <other standard boot options>
	params += nouveau.blacklist=true vga=791 # nouveau.blacklist=true is important
	# or
	# params += nouveau.blacklist=true video=uvesafb:1440x900-8,mtrr:2
}

"Funtoo Linux [nouveau]" {
	kernel vmlinuz[-v]
	params += ro console=tty1 quiet <other standard boot options>
	params += nvidia.blacklist=true # nvidia.blacklist=true is important
}

Next, run boot-update.

After boot-update has been run, you should have something like:

root # grep menuentry /boot/grub/grub.cfg | wc -l
2
root # grep menuentry /boot/grub/grub.cfg
menuentry "Funtoo Linux [nouveau] - vmlinuz-2.6.32.71_p14-rh" {
menuentry "Funtoo Linux [nvidia] - vmlinuz-2.6.32.71_p14-rh" {

xcfgmaker deamon

root # mkdir /etc/X11/video/;
root # cd /etc/X11/video/;
root # nano 10-monitor.conf.nouveau # make default config for nouveau. or copy existing config… 
root # nano 10-monitor.conf.nvidia # also for nvidia

Then create a new daemon. Edit the file /etc/init.d/xcfgmaker:

  1. !/sbin/openrc-run
  1. by http://wiki.sabayon.org/index.php?title=HOWTO:_Create_a_boot_option_for_easy_dual_to_single_display_switching
  2. To be placed in /etc/init.d/
  3. Run Command: rc-update add xcfgmaker boot

depend() {

  need localmount
  before xdm-setup
  before xdm
  before alsasound

}

start() {

  cmdline_display_mode_exist=$(cat /proc/cmdline | grep -e "nouveau.blacklist=" -e "nvidia.blacklist=")
  display_mode_nvidia_exist=$(ls /etc/X11/video/ | grep "10-monitor.conf.nvidia")
  display_mode_nouveau_exist=$(ls /etc/X11/video/ | grep "10-monitor.conf.nouveau")
  cmdline_display_mode=$(cat /proc/cmdline | awk -Fnvidia.blacklist= '{print $2}' | awk '{print $1}')
  if [ -n "$cmdline_display_mode_exist" ]; then
     if [ -n "$display_mode_nvidia_exist" ] && [ -n "$display_mode_nouveau_exist" ]; then
           #Choose the xorg file to be copied over
           if [ "$cmdline_display_mode" == "true" ]; then
              ebegin "Configuring X display with nouveau"
              cp /etc/X11/video/10-monitor.conf.nouveau /etc/X11/xorg.conf.d/10-monitor.conf
  1. eselect opengl set xorg-x11 >/dev/null 2>&1;
              /sbin/modprobe drm
              /sbin/modprobe nouveau;
           else
              ebegin "Configuring X display with nvidia"
              cp /etc/X11/video/10-monitor.conf.nvidia /etc/X11/xorg.conf.d/10-monitor.conf
  1. eselect opengl set nvidia >/dev/null 2>&1;
              /sbin/modprobe nvidia-drm;
          fi
        sleep 5
        eend 0
     else
        ebegin "Xorg file missing. Exitting"
        eend 0
     fi
  fi

}

Do not forget:

root # chmod +x /etc/init.d/xcfgmaker
root # rc-update add xcfgmaker boot

Additional Resources