Portál AbcLinuxu, 30. dubna 2025 10:46
Použití více zobrazovacích zařízení pomocí jediné grafické karty již delší dobu není problémem, ale přesto se občas stane, že se cosi ošklivě pokazí a výsledkem je několik hodin hledání možné chyby. Výjimkou nejsou ani nová KDE 4.7.4 v kombinaci s Calatysty 11.12.
Problém, který se bude níže řešit, úzce souvisí s mým necelý rok starým HTPC (viz blog), u něhož jako primární grafický výstup používám (používal jsem) analogový monitor a sekundární výstup je veden na TV za pomoci HDMI. Výsledkem byl tento screenshot - tedy big desktop s primární plochou velikosti 1280x1024 (monitor) a k ní je vpravo připojena plocha o velikosti 1360x768 (TV). Primární konfigurace byla snadná, prakticky Plug&Play, problém ale nastal, když jsem stařičký monitor vyměnil za nový digitální, připojený přes DVI.
To, že vše nejelo na první pokus jsem nijak neřešil - tak jako tak jsem měl v plánu provést aktualizaci jádra a ovladačů grafiky, což bylo první, co jsem provedl. Výsledkem byl desktop, ve kterém se obě dvě plochy s určitým ofsetem překrývaly. Vezměme nyní tento stav jako výchozí (tedy nainstalovaná zobrazovací zařízení a ovladače s určitým prvotním nastavením) a pokusme se vše dostat do podmínek podobných jako na prvním screenshotu.
První problém, který se objeví je harmonizace nastavení AMD Calatyst Control Centra s nastavením KDE - v obou případech je třeba nastavit shodný způsob zobrazení a restartovat Xka. Nyní naběhnou Xka s podivným ofsetem obou ploch, které již ale mají správnou pozici - TV je napravo od monitoru. V této fázi vše komplikuje chyba v nastavení vytvořeném AMD Calatyst Control Centrem (amdcccle
) v Xorg.conf. Z pohledu do tohoto souboru (cat /etc/X11/Xorg.conf
)
Section "ServerLayout" Identifier "aticonfig Layout" Screen 0 "aticonfig-Screen[0]-0" 0 0 EndSection Section "Module" EndSection Section "Monitor" Identifier "aticonfig-Monitor[0]-0" Option "VendorName" "ATI Proprietary Driver" Option "ModelName" "Generic Autodetecting Monitor" Option "DPMS" "true" EndSection Section "Monitor" Identifier "0-DFP1" Option "VendorName" "ATI Proprietary Driver" Option "ModelName" "Generic Autodetecting Monitor" Option "DPMS" "true" Option "PreferredMode" "1920x1080" Option "TargetRefresh" "60" Option "Position" "0 32" Option "Rotate" "normal" Option "Disable" "false" EndSection Section "Monitor" Identifier "0-DFP2" Option "VendorName" "ATI Proprietary Driver" Option "ModelName" "Generic Autodetecting Monitor" Option "DPMS" "true" Option "PreferredMode" "1360x768" Option "TargetRefresh" "60" Option "Position" "1920 0" Option "Rotate" "normal" Option "Disable" "false" EndSection Section "Device" Identifier "aticonfig-Device[0]-0" Driver "fglrx" Option "Monitor-DFP2" "0-DFP2" Option "Monitor-DFP1" "0-DFP1" BusID "PCI:0:1:0" EndSection Section "Screen" Identifier "aticonfig-Screen[0]-0" Device "aticonfig-Device[0]-0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Virtual 3280 1920 Depth 24 EndSubSection EndSectionvyplývá, že chyba je v řádku zvýrazněném tučně. Z nějakého důvodu
amdcccle
posadilo primární monitor o 32pixelů níže. Opravou je přepsání uvedeného řádku na
Option "Position" "0 0"Následuje restart Xek.
Po restartu jsou nyní plochy obou zobrazovacích zařízení zarovnány, ale navzájem se překrývají. Po delším přenastavování a zkoumání lze za viníka označit ovládací centrum KDE, které nenbí schopné řádně zeditovat následující soubory:
~/.kde4/share/config/krandrrc ~/.kde4/share/config/startupconfigObsah těchto souborů totiž vypadá následovně:
[Display] ApplyOnStartup=true StartupCommands=xrandr --output DFP2 --pos 1920x0 --mode 1360x768 --refresh 60.0152\nxrandr --output CRT1 --pos 0x0 --mode 1280x1024 --refresh 60.0197\nxrandr --output CRT11 --primary [Screen_0] OutputsUnified=false UnifiedRect=0,0,0,0 UnifiedRotation=1 [Screen_0_Output_CRT1] Active=true Rect=0,0,1280,1024 RefreshRate=60 Rotation=1 [Screen_0_Output_DFP2] Active=true Rect=1280,0,1360,768 RefreshRate=60.0151634216309 Rotation=1a
#! /bin/sh # kcminputrc Mouse cursorTheme 'Oxygen_White' kcminputrc_mouse_cursortheme=Oxygen_Zion # kcminputrc Mouse cursorSize '' kcminputrc_mouse_cursorsize='' # ksplashrc KSplash Theme Default ksplashrc_ksplash_theme=ksplashx-suse # ksplashrc KSplash Engine KSplashX ksplashrc_ksplash_engine=KSplashX # krandrrc Display ApplyOnStartup false krandrrc_display_applyonstartup=true # krandrrc Display StartupCommands '' krandrrc_display_startupcommands='xrandr --output DFP2 --pos 1024x0 --mode 1360x768 --refresh 60.0152 xrandr --output CRT1 --pos 0x0 --mode 1280x1024 --refresh 60.0197 xrandr --output CRT1 --primary' # krandrrc [Screen0] # krandrrc [Screen1] # krandrrc [Screen2] # krandrrc [Screen3] # kcmfonts General forceFontDPI 0 kcmfonts_general_forcefontdpi=0 # kdeglobals Locale Language '' # trigger requesting languages from KLocale kdeglobals_locale_language='' klocale_languages=cs:en_USZ těchto souborů je zřejmé, že nastavení rozlišení provádějí KDE4 za pomoci
xrandr
a evidentně nepostřehly výměnu monitoru a používají stará nastavení pro analogový monitor. Opravou je úprava všech výskytů CRT1 za DPF1 a úprava rozlišení z 1280x1024 na 1920x1080. Výsledkem jsou pak následující konfigurační soubory:~/.kde4/share/config/krandrrc
:
[Display] ApplyOnStartup=true StartupCommands=xrandr --output DFP2 --pos 1920x0 --mode 1360x768 --refresh 60.0152\nxrandr --output DPF1 --pos 0x0 --mode 1920x1080 --refresh 60.0197\nxrandr --output DPF1 --primary [Screen_0] OutputsUnified=false UnifiedRect=0,0,0,0 UnifiedRotation=1 [Screen_0_Output_DFP1] Active=true Rect=0,0,1920,1080 RefreshRate=60 Rotation=1 [Screen_0_Output_DFP2] Active=true Rect=1920,0,1360,768 RefreshRate=60.0151634216309 Rotation=1(s upravenou sekcí pro DPF1 namísto CRT1) a
~/.kde4/share/config/startupconfig
:
#! /bin/sh # kcminputrc Mouse cursorTheme 'Oxygen_White' kcminputrc_mouse_cursortheme=Oxygen_Zion # kcminputrc Mouse cursorSize '' kcminputrc_mouse_cursorsize='' # ksplashrc KSplash Theme Default ksplashrc_ksplash_theme=ksplashx-suse # ksplashrc KSplash Engine KSplashX ksplashrc_ksplash_engine=KSplashX # krandrrc Display ApplyOnStartup false krandrrc_display_applyonstartup=true # krandrrc Display StartupCommands '' krandrrc_display_startupcommands='xrandr --output DFP2 --pos 1920x0 --mode 1360x768 --refresh 60.0152 xrandr --output DPF1 --pos 0x0 --mode 1920x1080 --refresh 60.0197 xrandr --output DPF1 --primary' # krandrrc [Screen0] # krandrrc [Screen1] # krandrrc [Screen2] # krandrrc [Screen3] # kcmfonts General forceFontDPI 0 kcmfonts_general_forcefontdpi=0 # kdeglobals Locale Language '' # trigger requesting languages from KLocale kdeglobals_locale_language='' klocale_languages=cs:en_USPo restartu jsou již oba desktopy správně naorientovány i napozicovány vůči sobě dle očekávání (za JPG se omlouvám, PNG bylo příliš velké) a lze je používat, jak by uživatel předpokládal.
P.S. Také jste se sháněli po QStarDictu pro openSUSE 12.1 a nenašli? Nezoufejte, bez problémů lze používat QStarDict 1.0 z Fedory 15 (lze stáhnout například zde).
Tiskni
Sdílej:
home:*
projektů, musíte si zaškrtnout checkbox "Zahrnout uživatelské domácí projekty".
home
projektech může mít v podstatě kdokoli cokoli včetně různých experimentů a pre-alpha verzí. Takže je asi lepší, že se zobrazují jen tomu, kdo si vědomě zaškrtne, že je chce.
osc search
".
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.