Váltás egyképernyős és dual-képernyős üzemmód között Grub menü segítségével

tibcsi küldte be h, 2009-10-12 14:59 időpontban

Egyik Ubuntu 9.04-et használó barátom kérdezett meg arról, hogy hogyan tudná megoldani a laptopján, hogy otthon 1-képernyős XOrg beállításokkal, míg munkahelyén két képernyős XOrg beállításokkal indíthassa kedvenc operációs rendszerét, mindemellett ne kelljen a váltáshoz újraindítani az XOrg-ot.

Egy kis töprengés után a következő tippet adtam neki:

A Grub menüben vegyen fel egy új menüpontot ugyanazzal a kernellel, mint amit használ, és egészítse ki a kernel opciókat egy 'dualkepernyo' szócskával. Valahogy így:

[geshifilter-code]
title Ubuntu 9.04, Egykepernyos
kernel /vmlinuz-2.6.28-15-generic root=... ro quiet splash
initrd /initrd.img-2.6.28-15-generic
quiet

title Ubuntu 9.04, Ketkepernyos
kernel /vmlinuz-2.6.28-15-generic root=... ro quiet splash dualkepernyo
initrd /initrd.img-2.6.28-15-generic
quiet
[/geshifilter-code]

Tehát két menüpont legyen, az egyik az egyképernyős, a másik pedig a kétképernyős üzemmód.
Ezután hozzon létre egy init scriptet az /etc/init.d -ben dualkepernyo néven, ami a következőt tartalmazza:

[geshifilter-code]
#!/bin/sh
if grep -q -w -- "-s\|dualkepernyo\|S" /proc/cmdline; then
  cp /etc/X11/xorg.dual.conf /etc/X11/xorg.conf
else
  cp /etc/X11/xorg.single.conf /etc/X11/xorg.conf
fi
[/geshifilter-code]

Ez a script nem csinál mást, minthogy ellenőrzi, szerepel-e a kernel-opciók között a 'dualkepernyo' szócska.
Ettől függően a választott boot-menünek megfelelő XOrg konfigurációs fájlt másolja a helyére.
Természetesen ezeket a konfigurációs fájlokat előzetesen létre kell hozni a megfelelő XOrg beállításokkal.

Már csak azt kell elérni, hogy a script lefusson boot-időben, még a gdm indulása előtt:

[geshifilter-code]
chmod 755 /etc/init.d/dualkepernyo
ln -s /etc/init.d/dualkepernyo /etc/rc2.d/S29dualkepernyo
[/geshifilter-code]

A 2-es futási szintbe tettem, mivel Ubuntu 9.04-ben ez az alapértelmezett futási szint. A sorrend meghatározásához pedig 1-gyel kisebb számot (S29-et) használtam, mint a gdm sorrendje - mivel nálam a gdm S30-as.

Elég csúnya megoldásnak tűnik, de működött :)

szimszon küldte be k, 2009-10-13 14:39 időpontban

Permalink

Én az xrandr-t és a grandr-t használom erre a célra, mivel nem is nagyon boot-olom újra a gépet, csak sleep meg hibernate megy a lapin...

Az egyszerűség kedvéért először kiadok egy „xrandr --auto” -t, hogy észrevegye, hogy van még egy monitor/ vagy nincs. Aztán a „grandr”-ral beállítom, hogy milyen irányban és mekkora felbontással rendelkezik az új monitor...

rebegin küldte be k, 2009-10-13 15:07 időpontban

Permalink

nvidia-hoz ajánlom a disper nevü progit, le kell menteni a beallitast, majd ha gyorsbillentyűt vagy ikont csinálunk, akkor egy kattintással/gombnyomással meg is van a dualscreen...én az autostart progikhoz adom, és lefut mindig, ha nincs hozzákötve a monitor, semmit nem csinál, ha meg hozzávan kötve akkor meg szépen inditja automatice...

tibcsi küldte be sze, 2009-10-14 12:30 időpontban

Válasz rebegin üzenetére

Permalink

Köszi, javasoltam az ismerősömnek, gondoltam, hogy van erre kész megoldás is, csak nem találtam.

Igaz, korrigálom: a cél az volt, hogy munkahelyi környezetben indíthassa dualképernyősen a gépét, otthon pedig egyképernyősen. Viszont eddig - mivel nem volt kiválasztható - mindig módosítania kellett az xorgon, majd újraindítani az X-et, így pedig már van választási lehetősége bootoláskor.
Lehet, hogy ágyúval verébre, de nekem jobb megoldás nem jutott eszembe, viszont a többiek a hozzászólásban írtak ennél sokkal jobb megoldásokat is. Köszönet érte.