Commit 55ab1a48 authored by Michael Shigorin's avatar Michael Shigorin

x11: rework free/proprietary driver support

The problem at hand was that use/x11/xorg has been final, and zerg@ just couldn't switch from nouveau to nvidia when kdesktop needs that one. Initial approach included a "big" FREE/PROP switch that chose the particular KMODULES/PACKAGES to get added to THE_* but that fails to achieve e.g. nvidia+radeon combo; looks like these need individual switches.
parent 07ffce9d
......@@ -14,9 +14,9 @@
а заодно обычно рано теряющие поддержку "устаревших"
видеокарт.
Их применение возможно совмещать, но в этом случае следует
понимать, что автоопределение в X.org предпочитает свободный
драйвер и nvidia при наличии nouveau не будет автоматически
выбран, т.е. потребуется дополнительное конфигурирование
(вручную или при помощи alterator-x11) -- для live-систем
это может быть лишено практического смысла.
Возможно предоставлять в образе одновременно свободные и закрытые
драйверы, но в этом случае следует понимать, что автоопределение
в X.org предпочитает свободный драйвер и nvidia при наличии nouveau
не будет автоматически выбран, т.е. потребуется дополнительное
конфигурирование (вручную или при помощи alterator-x11) --
для live-систем это может быть лишено практического смысла.
......@@ -6,13 +6,14 @@
# the very minimal driver set
use/x11:
@$(call add_feature)
@$(call add,THE_KMODULES,drm) # required by recent nvidia.ko as well
@$(call add,THE_LISTS,$(call tags,base xorg))
@$(call add,THE_KMODULES,drm) # required by recent nvidia.ko as well
@$(call add,THE_KMODULES,$$(NVIDIA_KMODULES) $$(RADEON_KMODULES))
@$(call add,THE_PACKAGES,$$(NVIDIA_PACKAGES) $$(RADEON_PACKAGES))
# x86: free drivers for various hardware (might lack acceleration)
ifeq (,$(filter-out i586 x86_64,$(ARCH)))
use/x11/xorg: use/x11 use/x11/intel use/firmware
@$(call add,THE_KMODULES,drm-radeon drm-nouveau)
use/x11/xorg: use/x11/intel use/x11/nouveau use/x11/radeon
@$(call add,THE_LISTS,$(call tags,desktop xorg))
else
use/x11/xorg: use/x11; @:
......@@ -24,20 +25,25 @@ use/x11/intel: use/x11
@$(call add,THE_PACKAGES,xorg-dri-intel) ### #25044
# for those cases when no 3D means no use at all
# NB: blobs won't Just Work (TM) with use/x11/xorg,
# nouveau gets prioritized during autodetection
# NB: blobs won't Just Work (TM) along with nouveau/radeon
# as free drivers get prioritized during autodetection
#use/x11/3d: use/x11/intel use/x11/nvidia use/x11/fglrx; @:
use/x11/3d: use/x11/intel use/x11/nvidia/optimus use/x11/radeon; @:
# somewhat lacking compared to radeon but still
use/x11/nouveau: use/x11 use/firmware
@$(call set,NVIDIA_KMODULES,drm-nouveau)
@$(call set,NVIDIA_PACKAGES,xorg-drv-nouveau)
# has performance problems but is getting better, just not there yet
use/x11/radeon: use/x11 use/firmware
@$(call add,THE_KMODULES,drm-radeon)
@$(call add,THE_PACKAGES,xorg-drv-ati xorg-drv-radeon)
@$(call set,RADEON_KMODULES,drm-radeon)
@$(call set,RADEON_PACKAGES,xorg-drv-ati xorg-drv-radeon)
# sometimes broken with current xorg-server
use/x11/nvidia: use/x11
@$(call add,THE_KMODULES,nvidia)
@$(call add,THE_PACKAGES,nvidia-settings nvidia-xconfig)
@$(call set,NVIDIA_KMODULES,nvidia)
@$(call set,NVIDIA_PACKAGES,nvidia-settings nvidia-xconfig)
use/x11/nvidia/optimus: use/x11/nvidia
@$(call add,THE_KMODULES,bbswitch)
......@@ -45,8 +51,8 @@ use/x11/nvidia/optimus: use/x11/nvidia
# oftenly broken with current xorg-server, use radeon then
use/x11/fglrx: use/x11
@$(call add,THE_KMODULES,fglrx)
@$(call add,THE_PACKAGES,fglrx_glx fglrx-tools)
@$(call set,RADEON_KMODULES,fglrx)
@$(call set,RADEON_PACKAGES,fglrx_glx fglrx-tools)
use/x11/wacom: use/x11
@$(call add,THE_PACKAGES,xorg-drv-wacom xorg-drv-wizardpen)
......
......@@ -2,7 +2,6 @@ xorg-drv-ati
xorg-drv-cirrus
xorg-drv-mga
xorg-drv-modesetting
xorg-drv-nouveau
xorg-drv-nv
xorg-drv-qxl
#xorg-drv-s3
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment