x11: driver and purpose related refactoring

This has had several goals:
- a target suitable for x86 and armh providing a rather
  minimal set of base xorg packages and generic drivers;
- task-oriented targets for graphics use cases:
  + "desktop" means rather 2D focus with 3D being welcome
    or even essential but not performance critical, thus
    "a slower driver is fine as long as it does work";
  + "3d" means specific 3D performance being critical,
    that is "no 3D means no use at all".

Regarding the free and proprietary 3D-capable drivers:
the previous idea was to split out some common ground
and then add the contenders on top of that; the current
approach is based on the observation that the live images
requiring proprietary NVIDIA/AMD drivers *by default*
are usually of not much use with hardware that lacks
proper 3D acceleration (like Tseng cards) or the driver
support for that (like Matrox these days).

Intel videodriver makes for a special case though:
it is both free and top-notch performer.

Thanks sem@ and boyarsh@ for discussion.

PS: xorg-drv-{keyboard,mouse,void} dropped;
those who need these can usually help themselves.
This commit is contained in:
Michael Shigorin 2013-05-30 21:06:39 +04:00
parent d9ca33af6d
commit ea8a908931
11 changed files with 113 additions and 79 deletions

View File

@ -10,8 +10,10 @@ distro/syslinux: distro/.init \
use/syslinux/localboot.cfg use/syslinux/ui/vesamenu use/hdt; @:
distro/.live-base: distro/.base use/live/base use/power/acpi/button; @:
distro/.live-x11: distro/.live-base use/live/x11; @:
distro/.live-desktop: distro/.base +live use/live/install use/stage2/net-eth \
use/plymouth/live use/efi; @:
use/plymouth/live; @:
distro/.live-desktop-ru: distro/.live-desktop use/live/ru; @:
distro/.live-kiosk: distro/.base use/live/base use/live/autologin +power \
@ -65,11 +67,12 @@ distro/live-webkiosk: distro/live-webkiosk-mini use/live/desktop; @:
distro/live-webkiosk-chromium: distro/.live-webkiosk
@$(call add,LIVE_PACKAGES,livecd-webkiosk-chromium)
distro/live-flightgear: distro/live-icewm use/live/sound use/x11/3d-proprietary
distro/live-flightgear: distro/.live-x11 use/x11/lightdm/gtk use/x11/3d +icewm
@$(call add,LIVE_LISTS,$(call tags,xorg misc))
@$(call add,LIVE_PACKAGES,FlightGear fgo input-utils)
@$(call try,HOMEPAGE,http://www.4p8.com/eric.brasseur/flight_simulator_tutorial.html)
distro/live-gnome: distro/.live-desktop-ru use/systemd use/live/nodm use/x11/3d-proprietary
distro/live-gnome: distro/.live-desktop-ru use/systemd use/x11/blobs
@$(call add,LIVE_PACKAGES,gnome3-default)
distro/live-cinnamon: distro/.live-desktop-ru use/live/autologin \
@ -82,7 +85,7 @@ distro/live-mate: distro/.live-desktop-ru use/live/nodm use/x11/3d-free
distro/live-e17: distro/.live-desktop-ru use/live/autologin \
use/x11/e17 use/x11/gdm2.20; @:
distro/live-gimp: distro/live-icewm use/x11/3d-free use/live/ru
distro/live-gimp: distro/live-icewm use/live/ru
@$(call add,LIVE_PACKAGES,gimp tintii immix fim)
@$(call add,LIVE_PACKAGES,cvltonemap darktable geeqie rawstudio ufraw)
@$(call add,LIVE_PACKAGES,macrofusion python-module-pygtk-libglade)

View File

@ -6,12 +6,15 @@ distro/.regular-bare: distro/.base +wireless use/efi/signed \
use/memtest use/stage2/net-eth use/kernel/net
@$(call try,SAVE_PROFILE,yes)
# WM base target
distro/.regular-base: distro/.regular-bare +vmguest +live \
use/live/ru use/live/install use/live/repo use/live/rw \
use/luks use/x11/3d-free use/branding
# graphical target (not enforcing xorg drivers or blobs)
distro/.regular-x11: distro/.regular-bare use/x11/wacom +vmguest \
use/live/x11 use/live/ru use/live/install use/live/repo use/live/rw \
use/luks use/branding
@$(call add,LIVE_LISTS,$(call tags,(base || desktop) && regular))
@$(call add,LIVE_LISTS,$(call tags,base rescue))
# WM base target
distro/.regular-base: distro/.regular-x11 use/x11/xorg
@$(call add,LIVE_PACKAGES,installer-feature-desktop-other-fs-stage2)
@$(call add,THE_BRANDING,indexhtml notes alterator)
@$(call add,THE_BRANDING,graphics)

View File

@ -18,10 +18,10 @@ use/live/rw: use/live; @:
endif
# a very simplistic one
use/live/x11: use/live use/firmware use/x11/xorg
use/live/x11: use/live use/firmware use/x11
@$(call add,LIVE_PACKAGES,xinit)
# optimized out: use/x11/xorg
# optimized out: use/x11
use/live/desktop: use/live/base use/x11/wacom use/live/sound \
+vmguest +power +efi
@$(call add,LIVE_LISTS,$(call tags,desktop && (live || network)))

View File

@ -16,5 +16,5 @@ use/slinux: use/x11/xfce use/x11/gdm2.20
@$(call set,META_VOL_SET,Simply Linux)
use/slinux/full: use/isohybrid use/slinux +systemd +wireless \
use/branding/complete use/x11/drm use/x11/3d-proprietary
use/branding/complete use/x11/3d
@$(call add,THE_PACKAGES,apt-conf-sisyphus)

View File

@ -1,2 +1,22 @@
Эта фича добавляет базовую поддержку графической системы X11
и комплектует типовые десктопные окружения.
Эта фича добавляет базовую поддержку графической системы X11,
а также комплектует типовые десктопные окружения и средства
графического входа в систему.
Для добавления X-сервера и драйверов используйте цели:
- use/x11/xorg -- свободные драйверы, может недоставать
акселерации, особенно 3D, и функций энергосбережения,
но поддерживают наиболее широкий спектр оборудования
для типичных десктопных задач;
- use/x11/3d -- по возможности подключаются проприетарные
драйверы NVIDIA/AMD, обычно обладающие более высоким
уровнем ускорения графики, но также имеющие и больше
проблем совместимости со свежими ядрами/xorg-server,
а заодно обычно рано теряющие поддержку "устаревших"
видеокарт.
Их применение возможно совмещать, но в этом случае следует
понимать, что автоопределение в X.org предпочитает свободный
драйвер и nvidia при наличии nouveau не будет автоматически
выбран, т.е. потребуется дополнительное конфигурирование
(вручную или при помощи alterator-x11) -- для live-систем
это может быть лишено практического смысла.

View File

@ -4,25 +4,46 @@
+tde: use/x11/tde use/x11/kdm; @:
+kde4-lite: use/x11/kde4-lite use/x11/kdm4; @:
use/x11/xorg:
# the very minimal driver set
use/x11:
@$(call add_feature)
@$(call add,THE_LISTS,xorg)
@$(call add,THE_KMODULES,drm) # required by recent nvidia.ko as well
@$(call add,THE_LISTS,$(call tags,base xorg))
use/x11/wacom: use/x11/xorg
@$(call add,THE_PACKAGES,xorg-drv-wacom xorg-drv-wizardpen)
# free drivers for various hardware (might lack acceleration)
use/x11/xorg: use/x11 use/x11/intel
@$(call add,THE_KMODULES,drm-radeon drm-nouveau)
@$(call add,THE_LISTS,$(call tags,desktop xorg))
use/x11/drm: use/x11/xorg
@$(call add,THE_KMODULES,drm drm-radeon)
# both free and excellent
use/x11/intel: use/x11
@$(call add,THE_PACKAGES,xorg-drv-intel)
@$(call add,THE_PACKAGES,xorg-dri-intel) ### #25044
use/x11/3d-free: use/x11/drm
@$(call add,THE_KMODULES,drm-nouveau)
# 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
#use/x11/3d: use/x11/intel use/x11/nvidia use/x11/fglrx; @:
use/x11/3d: use/x11/intel use/x11/nvidia use/x11/radeon; @:
### fglrx is broken with xorg-1.13 so far
use/x11/3d-proprietary: use/x11/xorg
@$(call add,THE_KMODULES,fglrx nvidia)
# has performance problems but is getting better, just not there yet
use/x11/radeon: use/x11
@$(call add,THE_KMODULES,drm-radeon)
@$(call add,THE_PACKAGES,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)
# 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)
use/x11/wacom: use/x11
@$(call add,THE_PACKAGES,xorg-drv-wacom xorg-drv-wizardpen)
### strictly speaking, runlevel5 should require a *dm, not vice versa
use/x11/runlevel5: use/x11/xorg
@$(call add,THE_PACKAGES,installer-feature-runlevel5-stage3)
@ -45,48 +66,48 @@ use/x11/kdm4: use/x11/runlevel5
use/x11/gdm2.20: use/x11/runlevel5
@$(call add,THE_PACKAGES,gdm2.20)
use/x11/icewm: use/x11/xorg
use/x11/icewm: use/x11
@$(call add,THE_LISTS,$(call tags,icewm desktop))
use/x11/razorqt: use/x11/xorg
use/x11/razorqt: use/x11
@$(call add,THE_LISTS,$(call tags,razorqt desktop))
use/x11/tde: use/x11/xorg
use/x11/tde: use/x11
@$(call add,THE_LISTS,$(call tags,tde desktop))
use/x11/kde4-lite: use/x11/xorg
use/x11/kde4-lite: use/x11
@$(call add,THE_LISTS,$(call tags,kde4 desktop))
use/x11/kde4: use/x11/xorg
use/x11/kde4: use/x11
@$(call add,THE_PACKAGES,kde4-default)
use/x11/xfce: use/x11/xorg
use/x11/xfce: use/x11
@$(call add,THE_LISTS,$(call tags,xfce desktop))
use/x11/cinnamon: use/x11/xorg use/x11/drm
use/x11/cinnamon: use/x11/xorg
@$(call add,THE_LISTS,$(call tags,cinnamon desktop))
use/x11/gnome3: use/x11/xorg use/x11/drm
use/x11/gnome3: use/x11/xorg
@$(call add,THE_PACKAGES,gnome3-default)
@$(call add,THE_PACKAGES,gst-libav pulseaudio-daemon)
use/x11/e17: use/x11/xorg use/x11/3d-free
use/x11/e17: use/x11
@$(call add,THE_LISTS,$(call tags,e17 desktop))
use/x11/lxde: use/x11/xorg
use/x11/lxde: use/x11
@$(call add,THE_LISTS,$(call tags,lxde desktop))
use/x11/fvwm: use/x11/xorg
use/x11/fvwm: use/x11
@$(call add,THE_LISTS,$(call tags,fvwm desktop))
use/x11/sugar: use/x11/xorg
use/x11/sugar: use/x11
@$(call add,THE_LISTS,$(call tags,sugar desktop))
use/x11/wmaker: use/x11/xorg
use/x11/wmaker: use/x11
@$(call add,THE_LISTS,$(call tags,wmaker desktop))
use/x11/gnustep: use/x11/xorg
use/x11/gnustep: use/x11
@$(call add,THE_LISTS,$(call tags,gnustep desktop))
use/x11/xmonad: use/x11/xorg
use/x11/xmonad: use/x11
@$(call add,THE_LISTS,$(call tags,xmonad desktop))

View File

@ -0,0 +1,14 @@
xorg-server
xorg-drv-evdev
xorg-drv-synaptics
xorg-drv-vesa
xorg-drv-fbdev
xauth
xorg-utils
x-cursor-theme-jimmac
menu-icons-default

View File

@ -0,0 +1,11 @@
xorg-drv-ati
xorg-drv-cirrus
xorg-drv-mga
xorg-drv-modesetting
xorg-drv-nouveau
xorg-drv-nv
xorg-drv-qxl
#xorg-drv-s3
xorg-drv-s3virge
xorg-drv-savage
xorg-drv-sis

View File

@ -1,9 +0,0 @@
#wm-select
# for those who need these
xorg-drv-keyboard
xorg-drv-mouse
#xorg-extensions*
# :-/
#*-debuginfo-

View File

@ -0,0 +1,2 @@
xorg-drv-joystick
xorg-drv-multimedia

View File

@ -1,31 +0,0 @@
xorg-server
xorg-drv-ati
xorg-drv-cirrus
xorg-drv-evdev
xorg-drv-fbdev
xorg-drv-intel
xorg-drv-joystick
xorg-drv-mga
xorg-drv-modesetting
xorg-drv-multimedia
xorg-drv-nouveau
xorg-drv-nv
#xorg-drv-s3
xorg-drv-s3virge
xorg-drv-savage
xorg-drv-sis
xorg-drv-synaptics
xorg-drv-vesa
xorg-drv-void
xorg-drv-qxl
#25044?
xorg-dri-intel
xauth
xorg-utils
x-cursor-theme-jimmac
menu-icons-default