Commit ea8a9089 authored by Michael Shigorin's avatar Michael Shigorin

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.
parent d9ca33af
...@@ -10,8 +10,10 @@ distro/syslinux: distro/.init \ ...@@ -10,8 +10,10 @@ distro/syslinux: distro/.init \
use/syslinux/localboot.cfg use/syslinux/ui/vesamenu use/hdt; @: use/syslinux/localboot.cfg use/syslinux/ui/vesamenu use/hdt; @:
distro/.live-base: distro/.base use/live/base use/power/acpi/button; @: 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 \ 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-desktop-ru: distro/.live-desktop use/live/ru; @:
distro/.live-kiosk: distro/.base use/live/base use/live/autologin +power \ 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; @: ...@@ -65,11 +67,12 @@ distro/live-webkiosk: distro/live-webkiosk-mini use/live/desktop; @:
distro/live-webkiosk-chromium: distro/.live-webkiosk distro/live-webkiosk-chromium: distro/.live-webkiosk
@$(call add,LIVE_PACKAGES,livecd-webkiosk-chromium) @$(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 add,LIVE_PACKAGES,FlightGear fgo input-utils)
@$(call try,HOMEPAGE,http://www.4p8.com/eric.brasseur/flight_simulator_tutorial.html) @$(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) @$(call add,LIVE_PACKAGES,gnome3-default)
distro/live-cinnamon: distro/.live-desktop-ru use/live/autologin \ 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 ...@@ -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 \ distro/live-e17: distro/.live-desktop-ru use/live/autologin \
use/x11/e17 use/x11/gdm2.20; @: 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,gimp tintii immix fim)
@$(call add,LIVE_PACKAGES,cvltonemap darktable geeqie rawstudio ufraw) @$(call add,LIVE_PACKAGES,cvltonemap darktable geeqie rawstudio ufraw)
@$(call add,LIVE_PACKAGES,macrofusion python-module-pygtk-libglade) @$(call add,LIVE_PACKAGES,macrofusion python-module-pygtk-libglade)
......
...@@ -6,12 +6,15 @@ distro/.regular-bare: distro/.base +wireless use/efi/signed \ ...@@ -6,12 +6,15 @@ distro/.regular-bare: distro/.base +wireless use/efi/signed \
use/memtest use/stage2/net-eth use/kernel/net use/memtest use/stage2/net-eth use/kernel/net
@$(call try,SAVE_PROFILE,yes) @$(call try,SAVE_PROFILE,yes)
# WM base target # graphical target (not enforcing xorg drivers or blobs)
distro/.regular-base: distro/.regular-bare +vmguest +live \ distro/.regular-x11: distro/.regular-bare use/x11/wacom +vmguest \
use/live/ru use/live/install use/live/repo use/live/rw \ use/live/x11 use/live/ru use/live/install use/live/repo use/live/rw \
use/luks use/x11/3d-free use/branding use/luks use/branding
@$(call add,LIVE_LISTS,$(call tags,(base || desktop) && regular)) @$(call add,LIVE_LISTS,$(call tags,(base || desktop) && regular))
@$(call add,LIVE_LISTS,$(call tags,base rescue)) @$(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,LIVE_PACKAGES,installer-feature-desktop-other-fs-stage2)
@$(call add,THE_BRANDING,indexhtml notes alterator) @$(call add,THE_BRANDING,indexhtml notes alterator)
@$(call add,THE_BRANDING,graphics) @$(call add,THE_BRANDING,graphics)
......
...@@ -18,10 +18,10 @@ use/live/rw: use/live; @: ...@@ -18,10 +18,10 @@ use/live/rw: use/live; @:
endif endif
# a very simplistic one # 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) @$(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 \ use/live/desktop: use/live/base use/x11/wacom use/live/sound \
+vmguest +power +efi +vmguest +power +efi
@$(call add,LIVE_LISTS,$(call tags,desktop && (live || network))) @$(call add,LIVE_LISTS,$(call tags,desktop && (live || network)))
......
...@@ -16,5 +16,5 @@ use/slinux: use/x11/xfce use/x11/gdm2.20 ...@@ -16,5 +16,5 @@ use/slinux: use/x11/xfce use/x11/gdm2.20
@$(call set,META_VOL_SET,Simply Linux) @$(call set,META_VOL_SET,Simply Linux)
use/slinux/full: use/isohybrid use/slinux +systemd +wireless \ 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) @$(call add,THE_PACKAGES,apt-conf-sisyphus)
Эта фича добавляет базовую поддержку графической системы X11 Эта фича добавляет базовую поддержку графической системы X11,
и комплектует типовые десктопные окружения. а также комплектует типовые десктопные окружения и средства
графического входа в систему.
Для добавления X-сервера и драйверов используйте цели:
- use/x11/xorg -- свободные драйверы, может недоставать
акселерации, особенно 3D, и функций энергосбережения,
но поддерживают наиболее широкий спектр оборудования
для типичных десктопных задач;
- use/x11/3d -- по возможности подключаются проприетарные
драйверы NVIDIA/AMD, обычно обладающие более высоким
уровнем ускорения графики, но также имеющие и больше
проблем совместимости со свежими ядрами/xorg-server,
а заодно обычно рано теряющие поддержку "устаревших"
видеокарт.
Их применение возможно совмещать, но в этом случае следует
понимать, что автоопределение в X.org предпочитает свободный
драйвер и nvidia при наличии nouveau не будет автоматически
выбран, т.е. потребуется дополнительное конфигурирование
(вручную или при помощи alterator-x11) -- для live-систем
это может быть лишено практического смысла.
...@@ -4,25 +4,46 @@ ...@@ -4,25 +4,46 @@
+tde: use/x11/tde use/x11/kdm; @: +tde: use/x11/tde use/x11/kdm; @:
+kde4-lite: use/x11/kde4-lite use/x11/kdm4; @: +kde4-lite: use/x11/kde4-lite use/x11/kdm4; @:
use/x11/xorg: # the very minimal driver set
use/x11:
@$(call add_feature) @$(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
use/x11/drm: use/x11/xorg @$(call add,THE_KMODULES,drm-radeon drm-nouveau)
@$(call add,THE_KMODULES,drm drm-radeon) @$(call add,THE_LISTS,$(call tags,desktop xorg))
use/x11/3d-free: use/x11/drm # both free and excellent
@$(call add,THE_KMODULES,drm-nouveau) use/x11/intel: use/x11
@$(call add,THE_PACKAGES,xorg-drv-intel)
### fglrx is broken with xorg-1.13 so far @$(call add,THE_PACKAGES,xorg-dri-intel) ### #25044
use/x11/3d-proprietary: use/x11/xorg
@$(call add,THE_KMODULES,fglrx nvidia) # 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; @:
# 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) @$(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) @$(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 ### strictly speaking, runlevel5 should require a *dm, not vice versa
use/x11/runlevel5: use/x11/xorg use/x11/runlevel5: use/x11/xorg
@$(call add,THE_PACKAGES,installer-feature-runlevel5-stage3) @$(call add,THE_PACKAGES,installer-feature-runlevel5-stage3)
...@@ -45,48 +66,48 @@ use/x11/kdm4: use/x11/runlevel5 ...@@ -45,48 +66,48 @@ use/x11/kdm4: use/x11/runlevel5
use/x11/gdm2.20: use/x11/runlevel5 use/x11/gdm2.20: use/x11/runlevel5
@$(call add,THE_PACKAGES,gdm2.20) @$(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)) @$(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)) @$(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)) @$(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)) @$(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) @$(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)) @$(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)) @$(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,gnome3-default)
@$(call add,THE_PACKAGES,gst-libav pulseaudio-daemon) @$(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)) @$(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)) @$(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)) @$(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)) @$(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)) @$(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)) @$(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)) @$(call add,THE_LISTS,$(call tags,xmonad desktop))
xorg-server
xorg-drv-evdev
xorg-drv-synaptics
xorg-drv-vesa
xorg-drv-fbdev
xauth
xorg-utils
x-cursor-theme-jimmac
menu-icons-default
xorg-server
xorg-drv-ati xorg-drv-ati
xorg-drv-cirrus xorg-drv-cirrus
xorg-drv-evdev
xorg-drv-fbdev
xorg-drv-intel
xorg-drv-joystick
xorg-drv-mga xorg-drv-mga
xorg-drv-modesetting xorg-drv-modesetting
xorg-drv-multimedia
xorg-drv-nouveau xorg-drv-nouveau
xorg-drv-nv xorg-drv-nv
xorg-drv-qxl
#xorg-drv-s3 #xorg-drv-s3
xorg-drv-s3virge xorg-drv-s3virge
xorg-drv-savage xorg-drv-savage
xorg-drv-sis 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
#wm-select
# for those who need these
xorg-drv-keyboard
xorg-drv-mouse
#xorg-extensions*
# :-/
#*-debuginfo-
xorg-drv-joystick
xorg-drv-multimedia
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