diff --git a/multimonitor_and_desktop/xf86-intel-multimonitor/20-intel.conf b/multimonitor_and_desktop/xf86-intel-multimonitor/10-intel.conf similarity index 89% rename from multimonitor_and_desktop/xf86-intel-multimonitor/20-intel.conf rename to multimonitor_and_desktop/xf86-intel-multimonitor/10-intel.conf index 1489299..caf0c03 100644 --- a/multimonitor_and_desktop/xf86-intel-multimonitor/20-intel.conf +++ b/multimonitor_and_desktop/xf86-intel-multimonitor/10-intel.conf @@ -3,6 +3,7 @@ Section "Device" Driver "intel" BusID "PCI:0:2:0" Option "VirtualHeads" "2" + Option "Backlight" "intel_backlight" EndSection Section "Monitor" diff --git a/multimonitor_and_desktop/xf86-intel-multimonitor/20-nvidia.conf b/multimonitor_and_desktop/xf86-intel-multimonitor/20-nvidia.conf new file mode 100644 index 0000000..be4530e --- /dev/null +++ b/multimonitor_and_desktop/xf86-intel-multimonitor/20-nvidia.conf @@ -0,0 +1,37 @@ +#Section "ServerLayout" +# Identifier "Layout0" +#EndSection + +Section "Device" + ### Available Driver options are:- + ### Values: : integer, : float, : "True"/"False", + ### : "String", : " Hz/kHz/MHz", + ### : "%" + ### [arg]: arg optional + #Option "SWcursor" # [] + #Option "HWcursor" # [] + #Option "NoAccel" # [] + #Option "ShadowFB" # [] + #Option "UseFBDev" # [] + #Option "Rotate" # [] + #Option "VideoKey" # + #Option "FlatPanel" # [] + #Option "FPDither" # [] + #Option "CrtcNumber" # + #Option "FPScale" # [] + #Option "FPTweak" # + #Option "DualHead" # [] + Identifier "Card1" + Driver "nvidia" + BusID "PCI:1:0:0" + # Option "ConnectedMonitor" "DFP" + # Option "NoLogo" "true" + VendorName "NVIDIA Corporation" +EndSection + +#For the configuration with bumblebee installed +#Section that follows come from archlinux adapt it from your distro if necessary. +Section "Files" + ModulePath "/usr/lib/nvidia/xorg/" + ModulePath "/usr/lib/xorg/modules/" +EndSection diff --git a/multimonitor_and_desktop/xf86-intel-multimonitor/PKGBUILD b/multimonitor_and_desktop/xf86-intel-multimonitor/PKGBUILD index aa4068e..200109b 100644 --- a/multimonitor_and_desktop/xf86-intel-multimonitor/PKGBUILD +++ b/multimonitor_and_desktop/xf86-intel-multimonitor/PKGBUILD @@ -8,12 +8,22 @@ arch=('any') #url="" license=('GPL') depends=('xf86-video-intel' 'libglvnd' 'libgl' 'xorg-server' 'bumblebee') #'nvidia' 'nvidia-dkms' -source=(20-intel.conf -xorg.conf.nvidia -clevo-multimonitor-on.desktop -clevo-multimonitor-off.desktop) -md5sums=('e637d2a74b7efe0a3dcc846f50292e4c' - '9ba150ba73cd97747531862aae03edcf' +source=( + nvidia-xorg.conf + 10-intel.conf + 20-nvidia.conf + + xorg.conf.nvidia.bumblebee + xorg.conf.nouveau.bumblebee + + clevo-multimonitor-on.desktop + clevo-multimonitor-off.desktop +) +md5sums=('85de608633c71bee5462333ab720fe4e' + 'd0dd2e4b7b7db2ed43b972b558a05ba7' + '0e8b9dced2fcf7d027d8505e8e72f209' + '186a7dab0c24ec6b60c0ead10881ed95' + 'e45198dfa8b038e17369a9120076c771' '70fc2ea9f62ae5e7df5286e9bf3ba9f5' '436ada85ff846c4d5e38a32e9567730c') @@ -21,8 +31,15 @@ package() { mkdir -p ${pkgdir}/etc/X11/xorg.conf.d mkdir -p ${pkgdir}/etc/bumblebee mkdir -p ${pkgdir}/usr/share/applications/ - install -m 644 ${srcdir}/20-intel.conf ${pkgdir}/etc/X11/xorg.conf.d/20-intel.conf - install -m 644 ${srcdir}/xorg.conf.nvidia ${pkgdir}/etc/bumblebee/xorg.conf.nvidia + + # X11 configurations + install -m 644 ${srcdir}/10-intel.conf ${pkgdir}/etc/X11/xorg.conf.d/10-intel.conf + install -m 644 ${srcdir}/20-nvidia.conf ${pkgdir}/etc/X11/xorg.conf.d/20-nvidia.conf + install -m 644 ${srcdir}/nvidia-xorg.conf ${pkgdir}/etc/X11/nvidia-xorg.conf #Must not be in a *.d dir + + # Bumblebee configurations + install -m 644 ${srcdir}/xorg.conf.nouveau.bumblebee ${pkgdir}/etc/bumblebee/xorg.conf.nouveau + install -m 644 ${srcdir}/xorg.conf.nvidia.bumblebee ${pkgdir}/etc/bumblebee/xorg.conf.nvidia install -m 755 ${srcdir}/clevo-multimonitor-on.desktop ${pkgdir}/usr/share/applications/clevo-multimonitor-on.desktop install -m 755 ${srcdir}/clevo-multimonitor-off.desktop ${pkgdir}/usr/share/applications/clevo-multimonitor-off.desktop diff --git a/multimonitor_and_desktop/xf86-intel-multimonitor/README.md b/multimonitor_and_desktop/xf86-intel-multimonitor/README.md index e3372eb..00480d9 100644 --- a/multimonitor_and_desktop/xf86-intel-multimonitor/README.md +++ b/multimonitor_and_desktop/xf86-intel-multimonitor/README.md @@ -1,38 +1,49 @@ -### Add the following boot parameters for syslinux/grub for correct GPU handling (Clevo N950TP6) +## Required boot parameters -Add these to your boot parameters, either `/boot/syslinux/syslinux.cfg` OR `/boot/grub/grub.cfg` (GRUB configuration file `/etc/default/grub` preferred!): +The following kernel parameters are for correct GPU handling (Clevo N950TP6) on older Linux kernels. Without this setting you _may_ be unable to boot on Linux desktop on Clevo N950TP6 laptop. + +Add these to your syslinux or GRUB boot parameters, either `/boot/syslinux/syslinux.cfg` OR `/boot/grub/grub.cfg` (GRUB configuration file `/etc/default/grub` preferred): ``` acpi_osi="!Windows 2015" acpi_osi=Linux nogpumanager ``` -**NOTE:** Without this setting you may be unable to boot on Linux desktop on Clevo N950TP6 laptop. - ------------------------- -This `multimonitor` package creates two desktop entries to turn on/off `intel-virtual-output` executable (can be run as daemon, too). When enabled, the program creates new VirtualGL devices for `xrandr`. These devices are referring to your external monitors you use with Clevo N950TP6 laptop. Thus, you can set up all needed configuration for these external monitors in your desktop settings. +## About + +This `multimonitor` package creates two desktop entries to turn on/off `intel-virtual-output` executable (can be run as daemon, too). When enabled, the program creates new VirtualGL devices which is seen by issuing `xrandr` command. These devices are referring to your external monitors you use with Clevo N950TP6 laptop. Thus, you can set up all needed configuration for these external monitors in your desktop settings. Only downside with setting up new VirtualGL devices is that discrete Nvidia card must be enabled as well. At least on Linux, all external graphics output goes through Nvidia chipset on Clevo N950TP6. However, if you have your laptop plugged in to AC power adapter, you don't need to worry about Nvidia/Intel dilemma. Temperature of Nvidia card stays at ~47-53 while idle. It is higher on load, of course. -**NOTE:** +Please read a personal usage story below for additional information. -This package overrides the following bumblebee file: +## Overriding configuration files + +This package overrides the following bumblebee files: ``` /etc/bumblebee/xorg.conf.nvidia +/etc/bumblebee/xorg.conf.nouveau ``` -and adds the following configuration file: +and adds the following X11 configuration files: ``` -/etc/X11/xorg.conf.d/20-intel.conf +/etc/X11/xorg.conf.d/10-intel.conf +/etc/X11/xorg.conf.d/20-nvidia.conf +/etc/X11/nvidia-xorg.conf ``` -Therefore, you MUST install this package AFTER you have installed bumblebee. And you need to force installation with pacman parameter `--force` (`sudo pacman -U --force package.tar.xz`) +Therefore, you MUST install this package AFTER you have installed bumblebee. And you need to force installation with pacman parameter `--force` (`sudo pacman -U --force package.tar.xz`). Proper way to install these overriding files would be patching the corresponding packages. + +## Extra + +Subfolder extra contains the default `xorg.conf` (`/etc/X11/xorg.conf`) file I personally use on Clevo N950TP6. You can use it if you find it useful. ------------------------- -## Usage - personal story +## Multimonitor - Personal Story There are two ways I personally use Nvidia card on my Clevo laptop. They are as follows: @@ -48,4 +59,4 @@ I use mode 1) for basic desktop tasks, and mode 2) for gaming (Steam, GOG, etc.) Sometimes `intel-virtual-output` can complain about not finding bumblebee. You can try checking your `/etc/X11` conf files. -About role of bumblebee: it is required by `intel-virtual-output` binary. Practically, I don't use it for *anything* else. +About role of bumblebee: it is required by `intel-virtual-output` binary. Practically, I don't use bumblebee for *anything* else. diff --git a/multimonitor_and_desktop/xf86-intel-multimonitor/extra/xorg.conf b/multimonitor_and_desktop/xf86-intel-multimonitor/extra/xorg.conf new file mode 100644 index 0000000..8263509 --- /dev/null +++ b/multimonitor_and_desktop/xf86-intel-multimonitor/extra/xorg.conf @@ -0,0 +1,109 @@ +# File location on Linux system: /etc/X11/ + +Section "ServerLayout" + Identifier "X.org Configured" + Screen 0 "Screen0" 0 0 + Screen 1 "Screen1" LeftOf "Screen0" + InputDevice "Mouse0" "CorePointer" + InputDevice "Keyboard0" "CoreKeyboard" +EndSection + +Section "Files" + ModulePath "/usr/lib/xorg/modules/" + ModulePath "/usr/lib/xorg/modules/extensions/" + FontPath "/usr/share/fonts/misc/" + FontPath "/usr/share/fonts/TTF/" + FontPath "/usr/share/fonts/OTF/" + FontPath "/usr/share/fonts/Type1/" + FontPath "/usr/share/fonts/100dpi/" + FontPath "/usr/share/fonts/75dpi/" +EndSection + +Section "Module" + Load "glx" +EndSection + +Section "InputDevice" + Identifier "Keyboard0" + Driver "kbd" +EndSection + +Section "InputDevice" + Identifier "Mouse0" + Driver "mouse" + Option "Protocol" "auto" + Option "Device" "/dev/input/mice" + Option "ZAxisMapping" "4 5 6 7" +EndSection + +Section "Monitor" + Identifier "Monitor0" + VendorName "Monitor Vendor" + ModelName "Monitor Model" +EndSection + +Section "Monitor" + Identifier "Monitor1" + VendorName "Monitor Vendor" + ModelName "Monitor Model" +EndSection + +Section "Screen" + Identifier "Screen0" + Device "Card0" + Monitor "Monitor0" + SubSection "Display" + Viewport 0 0 + Depth 1 + EndSubSection + SubSection "Display" + Viewport 0 0 + Depth 4 + EndSubSection + SubSection "Display" + Viewport 0 0 + Depth 8 + EndSubSection + SubSection "Display" + Viewport 0 0 + Depth 15 + EndSubSection + SubSection "Display" + Viewport 0 0 + Depth 16 + EndSubSection + SubSection "Display" + Viewport 0 0 + Depth 24 + EndSubSection +EndSection + +Section "Screen" + Identifier "Screen1" + Device "Card1" + Monitor "Monitor1" + SubSection "Display" + Viewport 0 0 + Depth 1 + EndSubSection + SubSection "Display" + Viewport 0 0 + Depth 4 + EndSubSection + SubSection "Display" + Viewport 0 0 + Depth 8 + EndSubSection + SubSection "Display" + Viewport 0 0 + Depth 15 + EndSubSection + SubSection "Display" + Viewport 0 0 + Depth 16 + EndSubSection + SubSection "Display" + Viewport 0 0 + Depth 24 + EndSubSection +EndSection diff --git a/multimonitor_and_desktop/xf86-intel-multimonitor/nvidia-xorg.conf b/multimonitor_and_desktop/xf86-intel-multimonitor/nvidia-xorg.conf new file mode 100644 index 0000000..af8c5a8 --- /dev/null +++ b/multimonitor_and_desktop/xf86-intel-multimonitor/nvidia-xorg.conf @@ -0,0 +1,38 @@ +Section "Files" + ModulePath "/usr/lib/nvidia" + ModulePath "/usr/lib32/nvidia" + ModulePath "/usr/lib32/nvidia/xorg/modules" + ModulePath "/usr/lib32/xorg/modules" + ModulePath "/usr/lib64/nvidia/xorg/modules" + ModulePath "/usr/lib64/xorg/modules" +EndSection + +Section "ServerLayout" + Identifier "layout" + Screen 1 "nvidia" + Inactive "intel" +EndSection + +Section "Device" + Identifier "nvidia" + Driver "nvidia" + BusID "PCI:1:0:0" +EndSection + +Section "Screen" + Identifier "nvidia" + Device "nvidia" +# Option "AllowEmptyInitialConfiguration" "Yes" +# Option "UseDisplayDevice" "none" +EndSection + +Section "Device" + Identifier "intel" + Driver "modesetting" + Option "AccelMethod" "none" +EndSection + +Section "Screen" + Identifier "intel" + Device "intel" +EndSection diff --git a/multimonitor_and_desktop/xf86-intel-multimonitor/xorg.conf.nouveau.bumblebee b/multimonitor_and_desktop/xf86-intel-multimonitor/xorg.conf.nouveau.bumblebee new file mode 100644 index 0000000..87e48cb --- /dev/null +++ b/multimonitor_and_desktop/xf86-intel-multimonitor/xorg.conf.nouveau.bumblebee @@ -0,0 +1,18 @@ +Section "ServerLayout" + Identifier "Layout0" + Option "AutoAddDevices" "false" + Option "AutoAddGPU" "false" +EndSection + +Section "Device" + Identifier "DiscreteNvidia" + Driver "nouveau" + +# If the X server does not automatically detect your VGA device, +# you can manually set it here. +# To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data +# as you see in the commented example. +# This Setting is needed on Ubuntu 13.04. +# BusID "PCI:01:00:0" + +EndSection diff --git a/multimonitor_and_desktop/xf86-intel-multimonitor/xorg.conf.nvidia b/multimonitor_and_desktop/xf86-intel-multimonitor/xorg.conf.nvidia.bumblebee similarity index 98% rename from multimonitor_and_desktop/xf86-intel-multimonitor/xorg.conf.nvidia rename to multimonitor_and_desktop/xf86-intel-multimonitor/xorg.conf.nvidia.bumblebee index 519c017..b0f7c97 100644 --- a/multimonitor_and_desktop/xf86-intel-multimonitor/xorg.conf.nvidia +++ b/multimonitor_and_desktop/xf86-intel-multimonitor/xorg.conf.nvidia.bumblebee @@ -43,7 +43,7 @@ Section "Device" EndSection Section "ServerFlags" - Option "IgnoreABI" "1" + Option "IgnoreABI" "1" EndSection Section "Screen"