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 @@ ...@@ -14,9 +14,9 @@
а заодно обычно рано теряющие поддержку "устаревших" а заодно обычно рано теряющие поддержку "устаревших"
видеокарт. видеокарт.
Их применение возможно совмещать, но в этом случае следует Возможно предоставлять в образе одновременно свободные и закрытые
понимать, что автоопределение в X.org предпочитает свободный драйверы, но в этом случае следует понимать, что автоопределение
драйвер и nvidia при наличии nouveau не будет автоматически в X.org предпочитает свободный драйвер и nvidia при наличии nouveau
выбран, т.е. потребуется дополнительное конфигурирование не будет автоматически выбран, т.е. потребуется дополнительное
(вручную или при помощи alterator-x11) -- для live-систем конфигурирование (вручную или при помощи alterator-x11) --
это может быть лишено практического смысла. для live-систем это может быть лишено практического смысла.
...@@ -6,13 +6,14 @@ ...@@ -6,13 +6,14 @@
# the very minimal driver set # the very minimal driver set
use/x11: use/x11:
@$(call add_feature) @$(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_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) # x86: free drivers for various hardware (might lack acceleration)
ifeq (,$(filter-out i586 x86_64,$(ARCH))) ifeq (,$(filter-out i586 x86_64,$(ARCH)))
use/x11/xorg: use/x11 use/x11/intel use/firmware use/x11/xorg: use/x11/intel use/x11/nouveau use/x11/radeon
@$(call add,THE_KMODULES,drm-radeon drm-nouveau)
@$(call add,THE_LISTS,$(call tags,desktop xorg)) @$(call add,THE_LISTS,$(call tags,desktop xorg))
else else
use/x11/xorg: use/x11; @: use/x11/xorg: use/x11; @:
...@@ -24,20 +25,25 @@ use/x11/intel: use/x11 ...@@ -24,20 +25,25 @@ use/x11/intel: use/x11
@$(call add,THE_PACKAGES,xorg-dri-intel) ### #25044 @$(call add,THE_PACKAGES,xorg-dri-intel) ### #25044
# for those cases when no 3D means no use at all # for those cases when no 3D means no use at all
# NB: blobs won't Just Work (TM) with use/x11/xorg, # NB: blobs won't Just Work (TM) along with nouveau/radeon
# nouveau gets prioritized during autodetection # 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 use/x11/fglrx; @:
use/x11/3d: use/x11/intel use/x11/nvidia/optimus use/x11/radeon; @: 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 # has performance problems but is getting better, just not there yet
use/x11/radeon: use/x11 use/firmware use/x11/radeon: use/x11 use/firmware
@$(call add,THE_KMODULES,drm-radeon) @$(call set,RADEON_KMODULES,drm-radeon)
@$(call add,THE_PACKAGES,xorg-drv-ati xorg-drv-radeon) @$(call set,RADEON_PACKAGES,xorg-drv-ati xorg-drv-radeon)
# sometimes broken with current xorg-server # sometimes broken with current xorg-server
use/x11/nvidia: use/x11 use/x11/nvidia: use/x11
@$(call add,THE_KMODULES,nvidia) @$(call set,NVIDIA_KMODULES,nvidia)
@$(call add,THE_PACKAGES,nvidia-settings nvidia-xconfig) @$(call set,NVIDIA_PACKAGES,nvidia-settings nvidia-xconfig)
use/x11/nvidia/optimus: use/x11/nvidia use/x11/nvidia/optimus: use/x11/nvidia
@$(call add,THE_KMODULES,bbswitch) @$(call add,THE_KMODULES,bbswitch)
...@@ -45,8 +51,8 @@ use/x11/nvidia/optimus: use/x11/nvidia ...@@ -45,8 +51,8 @@ use/x11/nvidia/optimus: use/x11/nvidia
# oftenly broken with current xorg-server, use radeon then # oftenly broken with current xorg-server, use radeon then
use/x11/fglrx: use/x11 use/x11/fglrx: use/x11
@$(call add,THE_KMODULES,fglrx) @$(call set,RADEON_KMODULES,fglrx)
@$(call add,THE_PACKAGES,fglrx_glx fglrx-tools) @$(call set,RADEON_PACKAGES,fglrx_glx fglrx-tools)
use/x11/wacom: use/x11 use/x11/wacom: use/x11
@$(call add,THE_PACKAGES,xorg-drv-wacom xorg-drv-wizardpen) @$(call add,THE_PACKAGES,xorg-drv-wacom xorg-drv-wizardpen)
......
...@@ -2,7 +2,6 @@ xorg-drv-ati ...@@ -2,7 +2,6 @@ xorg-drv-ati
xorg-drv-cirrus xorg-drv-cirrus
xorg-drv-mga xorg-drv-mga
xorg-drv-modesetting xorg-drv-modesetting
xorg-drv-nouveau
xorg-drv-nv xorg-drv-nv
xorg-drv-qxl xorg-drv-qxl
#xorg-drv-s3 #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