Difference between revisions of "Create a boot option for easy nvidia or nouveau display driver switching"

 
(4 intermediate revisions by 2 users not shown)
Line 4: Line 4:
  
 
== boot-update ==
 
== boot-update ==
Next, the most important change:
+
The most important change: edit <tt>/etc/boot.conf</tt>:
{{File
+
 
|/etc/boot.conf|<pre>
+
{{file|name=/etc/boot.conf|desc= |body=
 
boot {
 
boot {
 
generate grub
 
generate grub
Line 38: Line 38:
 
params += nvidia.blacklist=true # nvidia.blacklist=true is important
 
params += nvidia.blacklist=true # nvidia.blacklist=true is important
 
}  
 
}  
</pre>}}
+
}}
 +
Next, run [[Boot-Update | <tt>boot-update</tt>]].
  
After boot-update with the new settings, you should have something like:
+
After boot-update has been run, you should have something like:
 
<console>
 
<console>
 
###i## grep menuentry /boot/grub/grub.cfg | wc -l
 
###i## grep menuentry /boot/grub/grub.cfg | wc -l
Line 58: Line 59:
 
</console>
 
</console>
  
Then create a new daemon:
+
Then create a new daemon. Edit the file <tt>/etc/init.d/xcfgmaker</tt>:
{{File
+
<syntaxhighlight lang="bash">
|/etc/init.d/xcfgmaker |<pre>
+
 
#!/sbin/runscript
 
#!/sbin/runscript
  
Line 103: Line 103:
  
 
}
 
}
 
+
</syntaxhighlight>
</pre>}}
+
  
 
Do not forget:
 
Do not forget:
Line 113: Line 112:
  
 
== Additional Resources ==
 
== Additional Resources ==
 
 
*[http://en.gentoo-wiki.com/wiki/Nvidia Nvidia how-to on gentoo-wiki]
 
*[http://en.gentoo-wiki.com/wiki/Nvidia Nvidia how-to on gentoo-wiki]
 
*[http://en.gentoo-wiki.com/wiki/Nouveau Nouveau how-to on gentoo-wiki]
 
*[http://en.gentoo-wiki.com/wiki/Nouveau Nouveau how-to on gentoo-wiki]
Line 119: Line 117:
  
 
[[Category:HOWTO]]
 
[[Category:HOWTO]]
 +
[[Category:First Steps]]

Latest revision as of 18:33, 27 June 2014

This howto describes how to use nvidia and nouveau drivers on the same computer and kernel.

Note

You must know how to install x11-drivers/nvidia-drivers and x11-drivers/nouveau (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:

# grep menuentry /boot/grub/grub.cfg | wc -l
2
# 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

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

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

#!/sbin/runscript
 
# by http://wiki.sabayon.org/index.php?title=HOWTO:_Create_a_boot_option_for_easy_dual_to_single_display_switching
# To be placed in /etc/init.d/
# 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
               eselect opengl set xorg-x11 >/dev/null 2>&1;
            else
               ebegin "Configuring X display with nvidia"
               cp /etc/X11/video/10-monitor.conf.nvidia /etc/X11/xorg.conf.d/10-monitor.conf
               eselect opengl set nvidia >/dev/null 2>&1;
            fi
         sleep 5
         eend 0
      else
         ebegin "Xorg file missing. Exitting"
         eend 0
      fi
   fi
 
}

Do not forget:

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

Additional Resources