Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: [HOWTO] - XGL, změna rozlišení + spuštění hry/aplikace bez XGL  (Přečteno 6403 krát)

scippio

  • Návštěvník
  • Příspěvků: 71
    • LinJab
Nevím jestli se tohle bude někdy nekomu hodit, ale kdo ví :) Aspoň mě až budu někdy přeinstalovávat :D ( nevšímejte si mých chabých rozlišení a frekvence u monitorů :D )

Měl jsem takové dva problémy:
1. Dva monitory. Pro hraní her bylo potřeba změnit rozlišení na jeden monitor a druhý vypnout, jinak hra běžela mezi oběma monitory a to se jaksi moc hrát nedá :D
2. XGL. Při spuštění hry na XGL hra blbne a špatně zobrazuje některé věci, proto bylo třeba vypnout XGL pro tuto hru/aplikaci.

1. Změna rozlišení ( vypnutí druhého monitoru )

Pro změnu rozlišení v X-kách se hodí program xrandr. Pokud napíšete v konzoli xrandr uvidíte z jakých rozlišení si můžete vybírat a jaké je zrovna akrivní. V mém případě to je:
Kód: [Vybrat]
$ xrandr
 SZ:    Pixels          Physical       Refresh
*0   1600 x 600    ( 542mm x 203mm )  *50 
 1    800 x 600    ( 542mm x 203mm )   60 
Current rotation - normal
Current reflection - none
Rotations possible - normal
Reflections possible - none
Abych dosáhl tohoto výběru musel jsem ve svém xorg.conf mít v sekci "Device" Option MetaModes. V mém případě pro dva monitory se stejným rozlišením 800x600:
Kód: [Vybrat]
Section "Device"
        Identifier      "NVIDIA Corporation NVIDIA Default Card"
        Driver          "nvidia"
        BusID           "PCI:1:5:0"
        Option          "MetaModes" "800x600,800x600; 800x600,null"
        Option          "TwinView" "on"
        Option          "NoLogo" "true"
        Option          "RandRRotation" "on"
EndSection
Na daném řádku tedy vidíte rozlišení 800x600 pro první i druhý monitor a za středníkem rozlišení 800x600 pro první monitor a null pro druhý. Null znamená, že daný monitor (výstup grafiky) se nebude používat.

Takže když nyní chceme změnit rozlišení z 1600x600 (2x800x600) na 800x600 (jeden monitor, druhý vypnutý) napíšeme pouze:
Kód: [Vybrat]
xrandr --size 1/800x600A pokud chceme rozlišení na dva monitory:
Kód: [Vybrat]
xrandr --size 0/1600x600Tak to je vše co se týká rozlišení.

2. Spuštění aplikace bez XGL

Tyto skripty jsem objevil na anglickém ubuntu fóru a fungují mi dobře... ovšem byly testovány jen v gnome a zřejmě nefungují s fglrx ovladačem. Ale kdo ví třeba už to někdo vyřešil, takže jukejte ( http://www.ubuntuforums.org/showthread.php?t=176636 )

napište:
Kód: [Vybrat]
sudo visudoa přidejte tuto řádku:
Kód: [Vybrat]
%user_name ALL=NOPASSWD: /usr/bin/Xorgallowlocalkde user_name je jméno vašeho uživatele. takže třeba: %pepa ALL=NOPASSWD: /usr/bin/Xorgallowlocal
Pak pokračujeme
Kód: [Vybrat]
sudo gedit /usr/bin/Xorgallowlocala přidejte:
Kód: [Vybrat]
#!/bin/sh
DISPLAY="$2" XAUTHORITY="$1" xhost local:
uložte, zavřete a pokračujte:
Kód: [Vybrat]
sudo gedit /usr/bin/nonXgla tam přidejte:
Kód: [Vybrat]
#!/bin/sh

DISPLAY=":93"

if [ -z "$1" ]; then
echo "Usage: nonXgl <command>"
exit 1
fi

isdisplay=0; isauth=0; for test in $(ps ax | grep "$DISPLAY" | grep Xorg ); do if [ $isauth -eq 1 ]; then export XAUTHORITY="$test"; isauth=0; fi; if [ "$test" = "-auth" ]; then isauth=1; fi; done;


sudo /usr/bin/Xorgallowlocal "$XAUTHORITY" "$DISPLAY"

exec $@
autor píše, že display 93 je defaultní ve většině systémech, ovšem u mě to nefungovalo, tak jsem tam dal display 0 a to mi funguje. tzv.: DISPLAY=":0"

dál je potřeba:
Kód: [Vybrat]
sudo chmod 755 /usr/bin/nonXgl
sudo chmod 755 /usr/bin/Xorgallowlocal
A to je vše. nyní by mělo jít spouštět apliakce bez XGL pomocí:
Kód: [Vybrat]
nonXgl <game>Takže si nakonec můžete udělat třeba skriptík "play" kde bude třeba:
Kód: [Vybrat]
#!/bin/sh
#

if [ -z "$1" ]; then
echo "Usage: play <game>"
exit 1
fi

xrandr --size 1/800x600
sleep 1
nonXgl $@
sleep 1
xrandr --size 0/1600x600
Skriptu předáte cestu ke "spouštěči" hry třeba: play /home/xxx/ut2004/ut2004 a skript provede:

1. změní rozlišení z 1600x600 na 800x600 a druhý monitor vypne
2. spustí hru bez XGL
3. po vypnutí hry vrátí rozlišení na 1600x600 ( oba monitory )

... no stejně pochybuju, že to někdo využije :D
« Poslední změna: 12 Ledna 2008, 22:53:19 od Anna Taliánová »
JID: scippio@linjab.net
"Linux mě někdy svojí jednoduchostí děsí ..."
# pacman -Rnsc ubuntu # pacman -S ArchLinux

Dandys

  • Návštěvník
  • Příspěvků: 57
[HOWTO] - XGL, změna rozlišení + spuštění hry/aplikace bez XGL
« Odpověď #1 kdy: 11 Září 2007, 21:58:10 »
Chlape, Tebe mi poslalo samo nebe! To je přesně to, co jsem hledal. :D
Tisíceré díky!
Kubuntu 10.04 Lucid Lynx - NVIDIA GeFORCE 6800, Athlon XP 2200+, chipset nForce2
Kubuntu 10.04 Lucid Lynx - NVIDIA GeFORCE FX5600, Celeron 900MHz, chipset i815

 

Provoz zaštiťuje spolek OpenAlt.