abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 07:00 | Nová verze

Dle plánu Microsoft oznámil vydání vývojářského buildu (Kanál Dev) webového prohlížeče Edge pro Linux. K dispozici jsou balíčky .deb i .rpm. Současně bylo oznámeno, že Microsoft Edge Bounty Program je otevřen i pro uživatele Edge pro Linux. Za nalezení bezpečnostní chyby lze získat od 1 000 do 30 000 dolarů.

Ladislav Hagara | Komentářů: 7
dnes 06:00 | Nová verze

OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 15.0.0 (Current) otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). Přehled novinek v článku na Medium.

Ladislav Hagara | Komentářů: 0
včera 23:11 | IT novinky

Společnost System76 představila svůj nejnovější desktopový počítač Thelio Mega. Cena začíná na 7 499 dolarech. Koupit jej lze až se 4 grafickými kartami. Při výběru 4x Quadro RTX 8000 se cena navýší o 23 589 dolarů. Na výběr jsou předinstalované linuxové distribuce Pop!_OS 20.10, Pop!_OS 20.04 LTS a Ubuntu 20.04 LTS.

Ladislav Hagara | Komentářů: 1
včera 22:33 | Nová verze

Byla vydána verze 9.1 open source unixového operačního systému NetBSD (Wikipedie). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
včera 22:11 | Nová verze

Byla vydána nová verze 4.12 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl aktualizován na verzi 10.0.2 (Firefox 78.4.0esr, NoScript 11.1.3). Linux na verzi 5.8. Opraveno bylo také několik bezpečnostních chyb.

Ladislav Hagara | Komentářů: 0
včera 17:00 | Zajímavý software

Nadace FINOS (Fintech Open Source Foundation) společně s globální investiční bankovní společností Goldman Sachs oznámily uvolnění zdrojových kódů platformy pro datové modelování Legend (původně Alloy). Více v dokumentaci.

Ladislav Hagara | Komentářů: 0
včera 15:55 | Nová verze

Byl vydán Mozilla Firefox 82.0. Přehled novinek v poznámkách k vydání, poznámkách k vydání pro firmy a na stránce věnované vývojářům. Řešeny jsou také bezpečnostní chyby. Nejnovější Firefox je již k dispozici také na Flathubu.

Ladislav Hagara | Komentářů: 7
19.10. 23:45 | Nová verze

Byla vydána verze 9.0 linuxové distribuce Trisquel GNU/Linux. Její kódové jméno je Etiona. Trisquel patří mezi svobodné distribuce doporučované Nadací pro svobodný software (FSF).

Ladislav Hagara | Komentářů: 6
19.10. 23:22 | Nová verze

Byla vydána verze 2.29.0 distribuovaného systému správy verzí Git. Přispělo 89 vývojářů, z toho 24 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Nejnovější verze mimo jiné přináší experimentální podporu SHA-256.

Ladislav Hagara | Komentářů: 0
19.10. 15:22 | Zajímavý software

Vuls (VULnerability Scanner) je svobodný skener zranitelností na Linuxu a FreeBSD naprogramovaný v programovacím jazyce Go. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0. Dnes byla vydána nová verze skeneru 0.13.0. Novinkou je experimentální podpora skenování TCP portů.

Ladislav Hagara | Komentářů: 1
Které aspekty uživatelského rozhraní textového editoru považujete za důležité?
 (70%)
 (38%)
 (31%)
 (17%)
 (25%)
 (17%)
Celkem 195 hlasů
 Komentářů: 18, poslední včera 11:28
Rozcestník

Jak jsem stavěl multiseat

4.9.2007 08:15 | Přečteno: 7406× | Linux | Výběrový blog

Multiseat je způsob, jak umožnit, aby na jednom PC pracovali dva uživatelé najednou - jediné co je potřeba je další monitor, klávesnice a myš. (A také spousta volného času pro konfigurování.) Mně se to kupodivu podařilo a tady je můj návod.

Ještě upozornění (a prosba) na začátek: nejsem odborník a proto mě, prosím, za nepřesnosti nekamenujte. A pokud se vám multiseat rozchodit nepodaří, je docela možné, že s vaší HW sestavou to třeba v současnosti ani nejde. Rozhodně to není můj problém a nenesu za to žádnou odpovědnost - všechny pokusy (jinak se asi konfigurace mutliseatu nazvat nedá) provádíte na vlastní nebezpečí (soubory v adresáři /etc/ jsou velmi nebezpečné hračky).

Co a proč je multiseat

Pokud víte, co znamená multiseat, můžete tuhle sekci s klidem přeskočit...

Multiseat (někdy též multiterminal) je pojmenování konfigurace, kdy je k PC připojeno více sad klávesnice-myš-obrazovka, které umožňují souběžnou práci více uživatelů. Zdůraznil bych, že se jedná o (fyzicky) jeden počítač - ne o více počítačů zesíťovaných dohromady. Jde tedy o ideální řešení pokud potřebujeme ušetřit za počítač a nehodláme na něm provozovat náročné operace: tomu vyhovuje asi drtivá většina kanceláří a domácích počítačů.

Vzhledem k tomu, že dnešní PC nebyly navrženy jako stroje pro více uživatelů, může být nastavení multiseatu docela oříškem. Na druhou stranu, původní Unix byl navržen jako víceuživatelský systém, který běžel na sálových počítačích, ke kterým byla připojena řada terminálů - klávesnice a obrazovka. Z tohoto pohledu se tedy vlastně multiseatem vracíme ke kořenům Unixu a problém by to tedy být neměl. Jenže dnes pro PC chybí hardwarové ekvivalenty terminálů - u multiseatu je tedy nahradíme další grafickou kartou a klávesnicí.

Myslím, že důvody, proč preferovat multiseat před dvěma počítači asi nemá cenu dále rozepisovat - ušetříme si nastavování sdílení dat a (především) ušetříme za další počítač a úspora elekrické energie taky nemusí být zanedbatelná.

Ještě jedna věc - zde uvažuji pouze multiseat (resp. můj případ - tj. multiseat pro dva), na kterém poběží X a do klasické textové konzole přepínat nelze (podobnou věc - tedy možnost přepnutí jen jednoho „sedadla“ do textového režimu - jsem nikde na Internetu nenašel - jestli někdo víte - ozvěte se...).

„Můj“ multiseat běží na Fedoře 6, kartách ATI/Radeon a SiS, klávesnice a myš jsou připojeny přes PS/2 rozhraní (druhá sada přes adaptér PS/2→USB).

Jaké problémy nás čekají

Prvním problémem je již připojení dalšího monitoru. Samozřejmě - dnešní karty poskytují 2 výstupy a není problém nastavit tzv. dualhead display. Ale pokud chceme umožnit práci 2 uživatelům, zřejmě pro ně budeme muset spustit dva X servery (ať už skutečné nebo nějaký nested - jako Xnest či Xephyr - druh). A to je právě problém - pokud spustíme skutečný X server (dále je X server), tak si pro sebe „zabere“ celou kartu a další server k ní nepustí. Pokud ale chceme využít např. Xnest nebo Xephyr, tak ty si pro změnu nedokážou pro sebe zabrat jedno konkrétní (vstupní) zařízení - čili si kradou události přicházející z klávesnice a myši. A jaká jsou tedy řešení?

Jednoduché řešení - když X server „obsadí“ celou kartu, tak přidáme další a je vyřešeno. To je bohužel omyl (alespoň v mém případě byl). Důvodů je hned několik - takže postupně. Za prvé - problém pro měl byl už jen sehnat tu další grafickou kartu, protože musela být do PCI slotu a ty už se příliš nevyrábějí (pokud pominu profesionální graf. karty, které stály skoro tolik, co celý počítač).
Pokud ale kartu seženeme, nastává další problém - pokud jsem to správně pochopil, tak obě karty budou používat stejná přerušení, tak může např. příkaz pro reset karty (který X server může vyslat při svém ukončení) mohou zachytit obě dvě a místo aby se jeden uživatel odhlásil (a druhý dále pracoval), tak spadnou oba dva servery (to se mi dařilo především na začátku mých pokusů a vyústilo to vždy v to, že jedna z karet přestala úplně odpovídat a zbývalo jen počítač resetovat). Tomuto problému lze předejít zákazem resetu X serveru při odhlášení, což ale může občas vést k tomu, že se některé aplikace (běžící na pozadí) neukončí a uživatel se pak nebude moci znovu přihlásit (a nebo někdo nebude moci využívat některé ze zařízení). Kromě toho, pokud X zatuhnou, tak použitím C-M-Backspace opět riskujeme shození obou serverů.

Při využití nested serverů lze pro směrování událostí z klávesnice a myši buď přímo zasáhnout do zdrojových kódů (takhle např. funguje řešení popsané na Wikipedii, ale to se mi rozchodit nepodařilo - tedy... vše naběhlo, ale klávesnice byla posunutá o 1 klávesu doleva a např. mezerník byl CapsLock atp.) nebo využít jakýsi server, který bude události předávat jako XEvents (mám na mysli XevdevServer - pokud budu mít čas, tak snad vyzkouším i tohle řešení (a napíšu jak jsem dopadl), protože mi začíná dost vadit, že na 1 sedadle je menší rozlišení, protože ta karta víc neutáhne).

Jdeme na to!

Zde popíši řešení, které v současnosti mám nastavené doma a které celkem funguje. Pokud si také hodláte postavit multiseat, mějte, prosím, na paměti, že ne vše půjde použít rovnou a budete muset i trochu experimentovat.

Jediné soubory, které je nutné měnit jsou /etc/X11/xorg.conf (nastavení X jako takových) a /etc/gdm/gdm.conf (nastavení správce přihlášení).

xorg.conf

ServerLayout

Nejdříve musíme pro každé sedadlo vytvořit sekci ServerLayout, která (opět zdůrazňuji - tohle je moje nastavení, možná budete muset něco změnit) vypadá takhle:

Section "ServerLayout"
        Identifier "Seat1"
tímto jménem se budeme odvolávat na nastavení při spouštění X serveru s parametrem -layout
        Screen        "Screen1" 
        InputDevice    "Mouse1" "CorePointer"
        InputDevice    "Keyboard1" "CoreKeyboard"
přiřadí obrazovku, klávesnici a myš
        Option "SingleCard"
        Option "IsolateDevice" "PCI:05:01:0"
nařídí X serveru, aby pracoval jen s kartou na dané adrese a nepokušel se ovládat jiné
        Option "BlankTime" "10"
        Option "StandByTime" "0"
        Option "SuspendTime" "0"
        Option "OffTime" "0"
tohle jsem musel přidat, protože jsem občas měl problémy s PCI graf. kartou poté, co se monitor přepnul do úsporného režimu (nevím čím to je, ale experimentálně jsem ověřil, že tohle nastavení to vyřeší)
EndSection
co se týče adresy karty, tu zjistíme z výstupu příkazu lspci:
$lspci | grep VGA
01:00.0 VGA compatible controller: ATI Technologies Inc R430 [Radeon X800 XL] (PCIe)
05:01.0 VGA ...: Silicon Integrated Systems [SiS] 86C326 5598/6326 (rev 0b)
Obdobným způsobem vytvoříme i sekce pro ostatní místa. Kromě toho jsem ještě přidal sekci pojmenovanou SeatDummy, která nemá přiřazenou žádnou klávesnici ani myši a pouze jakousi virtuální grafickou kartu a kde X server běží na pozadí (opět experimentálně: systém byl pak stabilnější).

Module

V další části souboru jsou pak načteny příslušné moduly:

Section "Module"
        Load  "extmod"
        Load  "dbe"
        Load  "vbe"
        Load  "record"
        Load  "glx"
        Load  "xtrap"
        Load  "dri"
        Load "evdev"
        Load "evdev"
        Load "evdev"
        Load "evdev"
EndSection

Zde nejsou oproti normálnímu nastavení žádné velké změny - tedy kromě vícenásobného načítání modulu evdev - nevím proč, ale takhle to prostě funguje líp (a nejsem jediný), než když by byl načten pouze 1×.

InputDevice

Teď je nutné přiřadit události jednotlivým serverům. V xorg.conf můžeme určit, z kterého souboru má které vstupní zařízení získávat události. Takže musíme zjistit, který /dev/input/eventX patří kterému zařízení. To můžeme zkusit buď experimentálně (cat eventX a mačkat klávesy nebo hýbat myší) a nebo projít soubor /proc/bus/input/devices, kde o každé klávesnici/myši je záznam podobný tomuto:

I: Bus=0011 Vendor=0002 Product=0005 Version=0000
N: Name="ImPS/2 Generic Wheel Mouse"
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input1
H: Handlers=mouse0 event1
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=103
Důležité jsou položky Handlers, které udávají čísla výše zmíněných eventX. Také si povšimněte položky Phys, která udává fyzickou adresu zařízení.

A teď problém: tato čísla se mohou během jednotlivých startů systému měnit! A také se mění. Jenomže ... vzhledem k tomu, že když jsem multiseat stavěl, tak se na mé verzi kernelu čísla neměnila, nijak jsem to neřešil - bohužel s aktualizací kernelu bych přišel o tuto stálost a tak jsem se zatím rozhodl ponechat kernel starší (kromě toho se chystám přestavět si multiseat, aby mi běhal jen na 1 kartě, kde už s tímto počítám) a čísla jsem napsal „natvrdo“ přímo do souboru. Řešení pochopitelně existuje - buď generovat část xorg.conf za běhu nebo vytvářet symlinky po startu systému. Zařízení lze totiž jednoznačně (pokud jsou zapojena do stejných portů) identifikovat pomocí Phys adresy.

Pokud má někdo zájem, tak následující příkazy zjistí číslo eventu podle fyzické adresy (pouze předpokládají, že ve výpisu je Phys před Handlers a za každou sekcí je prázdný řádek):

sed -n '/Phys='`echo "$PHYS" | \
  sed 's#/#\\\\/#g'`'/,/^$/{s#.*Handlers.*\(event[0-9]*\).*#\1#p}' \
    <devices
ale nezaručuji, že tohle je to nejlepší řešení - zatím nemám novou konfiguraci ani pomocné skripty úplně hotové.

A takhle vypadají příslušné sekce (od těch z obyčejného nastavení se příliš neliší):

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "evdev"
        Option "Device" "/dev/input/event0"
        Option "XkbLayout" "cz,us"
        Option "XkbOptions"  "grp:shifts_toggle,grp_led:scroll"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/mouse0"
        Option      "ZAxisMapping" "4 5 6 7"
EndSection

Device

A takhle vypadá nastavení pro grafickou kartu:

Section "Device"
        Identifier  "Card1"
        Driver      "sis"
        VendorName  "Silicon Integrated Systems [SiS]"
        BoardName   "86C326 5598/6326"
        BusID       "PCI:5:1:0"
        #Option "DynamicClocks" "Off"
        #Option          "NoInt10"       "Yes"
        #Option "InitPrimary" "true"
        #Option          "RestoreBySetMode"      "no"
        #Option "NoLogo"
        #Option "NoDRI"
        #Option "NoVBE"
EndSection

Zakomentované položky jsem zde ponechal naschvál - podle různých příspěvků na Internetu někdy pomůže některou z nich odkomentovat (např. první čtyři mohou vyřešit situaci okolo sdílení některých přerušení atd.). A BusID je výše zmiňované číslo získané příkazem lspci.

Zbylé sekce

Myslím, že další sekce (tj. nastavující monitor (monitor a obrazovku (Screen)) již není nutné podrobněji rozepisovat, protože se neliší od klasického nastavení. Jen uvádím část, ve které se vytvoří další grafické karta pro třetí X server (ten není používán, ale jeho běh v pozadí má pozitivní vliv na stabilitu):

Section "Device"
        Identifier "CardDummy"
        Driver "dummy"
        VideoRam 75
EndSection

Section "Screen"
        Identifier "ScreenDummy"
        Device "CardDummy"
        Monitor "Generic Monitor"
        DefaultDepth 8
        SubSection "Display"
                Modes   "320x240"
        EndSubSection
EndSection

První otestování

Když jsem začal multiseat nastavovat, tak jsem v dobré víře podle návodu z Internetu přepsal xorg.conf a nastavil GDM, aby spouštěl rovnou 2 X servery. Naivně jsem se domníval, že vše poběží hned. Pochopitelně neběželo - laděním jsem potom strávil několik desítek hodin (pokud počítám i hledání na Internetu atp.). Teprve po několik hodinách (a mnoha restartech) mě došlo, že není to pravé vše konfigurovat naráz...

Pro začátek je tedy nejlepší spouštět X servery ručně a navíc ještě spustit něco jako

sleep 60; killall X; sleep 2; killall -9 X
pro případ problémů. A pak spustit oba X servery: nesmíme zapomenout zařídit, aby se servery spustily na stejné konzoli (-sharevts) a aby používaly správný -layout (a možná budete chtít zadat alternativní umístění konfiguračního souboru volbou -config):

X -layout seat0 vt07 & X -sharevts -layout seat1 vt07 &
Pokud to bude padat, zkuste spustit ještě ten třetí - pomocný server:
X -layout SeatDummy vt07
Pak ovšem oběma „skutečným“ X serverům přidejte volbu -sharevts. Divil jsem se, proč další server zlepší stabilitu, ale pravděpodobně (podle různých diskuzí atd.) jde o to, že takhle mají oba dva servery nastavené sdílení konzole a při pádu jednoho má ten druhý stále s kým konzoli sdílet.

A pak ještě spustit na každém nějaký ten xterm nebo něco podobného a vyzkoušet, jestli klávesnici a myši skutečně fungují (ještě jedna historka ze života: při jednom nastavení myš chvíli normálně reagovala a pak se z ničeho nic odporoučela - tedy naštěstí jenom její kurzor - do levého horního rohu, kam se tvrdošíjně vracela po jakémkoliv přesunutí jinam).

Pokud teď něco nefunguje, tak je pravděpodobně na vině nastavení v xorg.conf. Mezi najčastější možnosti patří ovladače grafických karet nebo vstupních zařízení. A nebo nastavení vstupních zařízení (nejspíše položky Option). A nebo je to něco jiného :-).

A až tohle bude fungovat, tak zkuste spustit i nějakého spráce oken (já jsem používal rychle startující OpenBox) a chvíli v systému pracovat (nejlépe aby někdo pracoval i na dalším místě). Pokud systém takhle vydrží chvíli běžet, možná máte vyhráno (mě se občas stávalo, že systém znenadání vytuhl třeba po 5 minutách, ale z logů jsem ne vždy vyčetl proč). Pak už zbývá jen nakonfigurovat správce přihlášení.

Spráce přihlašování

Tohle je asi nejjednodušší část celého procesu - prostě nastavíme, že se má spouštět více X serverů a je hotovo (jde o soubor gdm.conf nebo custom.conf):

[servers]
0=Dummy
2=Standard0
1=Standard1

[server-Dummy]
name=Dummy
handled=false
command=/usr/bin/X -layout SeatDummy vt07 -noreset

[server-Standard0]
name=Seat0
command=/usr/bin/X0 -sharevts -layout seat0 -novtswitch -noreset vt07
flexible=false


[server-Standard1]
name=Seat1
command=/usr/bin/X1 -sharevts -layout seat1 -novtswitch -noreset vt07
flexible=false

X0 a X1 jsou jen symlinky na X a parametr -noreset zakáže restart X serveru. To je ostatně podmíněno i přidáním řádků

[daemon]
AlwaysRestartServer=false
(proč je s restartováním X problém, jsem psal na začátku).

A teď by vše mělo fungovat jak má... (tedy snad).

Nastavení zvuku

Protože v počítači mám jednu zvukovou kartu 5.1, napadlo mě, jestli by nějak nešlo zařídit, aby jeden uživatel mohl posílat zvuk do předních a druhý do zadních reproduktorů (tedy spíše připojených sluchátek). S Alsou to naštěstí není problém - jediný problém je ten, že je to nutné explicitně určit při každém spuštění přehrávače - pro mplayer vypadá řádek nějak takhle:

mplayer -ao alsa:device=frontx -softvol
(bez softwarového regulování hlasitosti totiž dokážu hlasitost regulovat pouze pomocí Master volume, takže měním hlasitost i druhému uživateli). A takhle vypadá /etc/alsa/multiseat.alsa.conf (vkládaný do alsa.conf) - oproti ukázkovému řešení jsem přidal nastavení práv, aby různí uživatelé mohli používat stejné zařízení:

pcm.dshare {
    type dmix
    ipc_key 2048
    ipc_key_add_uid false
    ipc_perm 0666
    slave {
        pcm "hw:0"
        rate 44100
        period_time 0
        period_size 1024
        buffer_size 8192
        channels 4
    }
    bindings {
        0 0
        1 1
        2 2
        3 3
    }
}
pcm.frontx {
    type plug
    slave {
        pcm "dshare"
        channels 4
    }
    ttable.0.0 1
    ttable.1.1 1
}
pcm.rearx {
    type plug
    slave {
        pcm "dshare"
        channels 4
    }
    ttable.0.2 1
    ttable.1.3 1
}

Co ještě nefunguje, tak jak bych chtěl

Rád bych nějak nastavil zvuk - aby všechny aplikace přesměrovávaly zvuk do správných výstupů - většinou sice přehrávám pomocí mplayeru, ale stejně bych to rád nějak nastavil. Řekl bych, že to nějak půjde, ale asi to nebude úplně jednoduché, protože většina návodů na tohle obvykle nepočítá s tím, že by ke stejnému zařízení (myslím tu zvukovku) přistupovali různí uživatelé. Snad časem...

Další problém je s klávesnicí - u té, která je připojená přes PS/2→USB adaptér, nefungují multimediální tlačítka (na to jsem se ptal už kdysi, i potom jsem zkoušel různé věci: jak hraní s rozložením klávesy, tak i změny v xorg.conf, ale nic).

Rád bych taky nějak nastavil připojování flash disků a podobných zařízení. Ne že by to byl doma nějaký problém, ale z principu bych rád udělal, aby: když někdo připojí USB zařízení do určitého USB portu (příslušející některému ze sedadel), aby se automaticky připojil a získal práva uživatele, který je tam přihlášen. Zatím se mi to podařilo nastavit tak, že kdo dřív přijde, ten dřív mele.

Taky bych rád zprovoznil výstup na televizi, ale o to jsem se zatím moc nepokoušel a nemá to nejvyšší prioritu.

Výkon

Neprováděl jsem žádná neměření a protože mám docela silný stroj (dvoujádro), tak v podstatě není znát, že počítač využívá víc lidí. Jediný případ, kdy to je znát, je při přihlašování někoho dalšího - to je jediný moment, kdy počítač na pár chvil jakoby „vytuhne“. Dalším případem je pochopitelně překodovávání nějakého videa. Vzhledem k tomu, že tím je ale vytíženo jen jedno jádro, tak to není až zas takový problém. Tipoval bych, že multiseatově upravené PC určené pro kancelářskou práci může běžet na mnohem výkonově horším železe i pro více uživatelů.

Závěr

A to je konec - pokud budete taky zkoušet vytvořit multiseat (přeji hodně zdaru) nebo ho již máte, napište, jaké jste vy měli problémy či úspěchy.

A to je vše. Howgh. Vlastně ne - ještě nějaké odkazy:

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

4.9.2007 09:04 dustin | skóre: 62 | blog: dustin
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Moc pěkné, klobouk dolů.

Ohledně alsy - pokud každý seat jede pod jiným uživatelem, šlo by každému nadefinovat jiné defaultní zařízení v ~/.asoundrc. Přehrávače by pak mohly jet na default. Pokud zvukovka nemá samostatný regulátor hlasitosti zadních kanálů, možná by pomohl plugin alsy softvol, který umožňuje nadefinovat nový regulátor hlasitosti nad konkrétním výstupem.

http://alsa.opensrc.org/index.php/Softvol
4.9.2007 11:32 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat

Děkuji, ten plugin určitě vyzkouším.

Co se defaultního zařízení týká, tak jsem zjistil, že některé aplikace (třeba Audacity aj.) stejně umožňují vybrat výstupní zařízení, takže to nakonec asi nechám, tak jak to je. Stejně většinou spouštím přehrávač z shellu, takže můžu použít ten alias a navíc - když jsem u počítače jediný - spíše dám přednost pustit zvuk do reproduktorů, které jsou připojeny do front výstupu.

Ještě jednou díky za tip.
- Vojta

I am always ready to learn although I do not always like to be taught. (W. Churchill)
4.9.2007 09:06 xindl | skóre: 2 | blog: SALAM_OLEJKUM
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Ty voe měl jsi to vydat jako článek, alespon by jsi dostal zapalceno za tu námahu a práci! Jinak super moc, moc díkes! :-)
4.9.2007 10:30 miso | skóre: 36 | blog: iSCSI_initiator_howto | Praha
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Strucnejsi navod je aj tu
Project Satan infects Calculon with Werecar virus
Fuky avatar 4.9.2007 12:39 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat

Díky za pěkný článek :-)

BTW: Lze použít i XEphyr, pomocí patche ho lze rozšířit o volby potřebné pro multiseat, takže lze definovat klávesnici, evdev... Více informací...

4.9.2007 13:24 Lojzin III.
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Šlo by využít kombinace integrované a samostatné grafické karty? Nebo vložení samostatné grafické karty automaticky vyřazuje tu integrovanou a ta už nejde použít?

V nových počítačích je obvykle víc slotů PCI Express - jeden PCI-E x16 a několik PCI-E x1, jde dát do PCI-E x1 grafickou kartu nebo je nutné si pořídit desku, kde je více PCI-E x16 slotů?
4.9.2007 13:30 Lojzin III.
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Špatně jsem se vyjádřil, chtěl jsem se zeptat, jestli jde dát kartu, u které se uvádí rozhraní PCI-E x16, do slotu PCI-E x1? Jestli to bude fungovat byť třeba se ztrátou výkonu...
4.9.2007 13:38 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat

Odpověď částečně níže a navíc - ty sloty mají různé rozměry.

- Vojta

I am always ready to learn although I do not always like to be taught. (W. Churchill)
4.9.2007 13:35 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Šlo by využít kombinace integrované a samostatné grafické karty? Nebo vložení samostatné grafické karty automaticky vyřazuje tu integrovanou a ta už nejde použít?

Integrovanou kartu nemám, ale někde jsem na Internetu četl, že: automaticky je ta integrovaná vyřazená, ale snad (ale asi ne u všech) lze BIOS a kernel donutit, aby ji neignorovali. Ale jak, to nevím.

V nových počítačích je obvykle víc slotů PCI Express - jeden PCI-E x16 a několik PCI-E x1, jde dát do PCI-E x1 grafickou kartu nebo je nutné si pořídit desku, kde je více PCI-E x16 slotů?

Podle Wikipedie lze jen PCI-E 16x využít pro grafické karty (kvůli výkonu). Ale myslím, že by šla sehnat i deska s více x16 sloty.

- Vojta

I am always ready to learn although I do not always like to be taught. (W. Churchill)
4.9.2007 14:00 Lojzin III.
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Díky za odpověď. Já mám právě jen integrovanou kartu, takže kdyby k ní šlo přidat samostatnou, byla by to paráda. Pokud by musely být dvě PCI-E x16 karty, tak se to řešení docela prodražuje - kromě karty navíc je nutná i dražší deska a spotřeba bude taky o chlup vyšší (nejspíš i když druhá karta není využívána). Jestli není skoro lepší použít starý počítač třeba s Pentiem 200 MHz (bez disku, cd-rom...) jako síťový terminál, když se k tomu přidají ještě všechny ty drobné komplikace, které popisujete v článku.
Fuky avatar 4.9.2007 14:23 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat

Nevím o tom, že by šlo používat integrovanou grafiku společně s dalšími grafickými kartami. Jakmile jsem použil u různých PC grafiku ať AGP, PCI či PCI-Express, tak již nešlo použít integrovanou grafiku. Na druhou stranu pokud se jedná o desktop, tak je lepší se integrovaným grafikám vyhnout.

Nejlevnější řešení je koupit jednu dvouhlavou grafiku a máš po problému :-D

4.9.2007 14:45 Lojzin III.
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Nejlevnější řešení je koupit jednu dvouhlavou grafiku a máš po problému.
No v článku se píše, že to tak úplně bez problému není. A to tvoje řešení pomocí Xephyru má jistě taky svoje mouchy, funguje na tom třeba 3D akcelerace nebo compiz?
4.9.2007 15:05 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat

Vím, že dotaz nebyl určen mně, ale částečně dokáži odpovědět.

A to tvoje řešení pomocí Xephyru má jistě taky svoje mouchy, funguje na tom třeba 3D akcelerace nebo compiz?

Na Xephyru akcelarace nepojede, ale funguje to s Xgl - to je popsané tady. To je přesně to, co bych rád časem zprovoznil i doma...

No v článku se píše, že to tak úplně bez problému není.

S tím jsem měl problémy, ale třeba josean ho neměl. Vím, že problém je s mapou klávesnice, ale nedokázal jsem zjistit kde.

I am always ready to learn although I do not always like to be taught. (W. Churchill)
4.9.2007 15:12 Lojzin III.
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Vidím, že se v problematice dost orientujete. Obecnější článek na toto téma od Vás by byl jistě velmi ceněný.
4.9.2007 14:42 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Pokud by musely být dvě PCI-E x16 karty, tak se to řešení docela prodražuje - kromě karty navíc je nutná i dražší deska a spotřeba bude taky o chlup vyšší (nejspíš i když druhá karta není využívána).

Proto jsem koupil PCI kartu, kterou jsem pořídil v bazaru za pár stovek. Ale byl to asi až pátý bazar... Co se spořeby týče, tak si troufám tvrdit, že jedno PC (byť s grafickou kartou navíc) bude mít menší spotřebu než dvě, kde jedno z nich nemá pevný disk a CD/DVD mechaniku.

Jestli není skoro lepší použít starý počítač třeba s Pentiem 200 MHz (bez disku, cd-rom...) jako síťový terminál, když se k tomu přidají ještě všechny ty drobné komplikace, které popisujete v článku.

Možná ano, ale mně víc vyhovuje mít jen jeden počítač (zabere míň místa). Nevím, jak složité je nastavit síťový terminál, ale u multiseatu je s konfigurací ten problém, že s takovým využitím málokdo (myslím výrobci HW a tvůrci některého SW) počítá a tak se musí vymýšlet různé obezličky apod. Kromě toho, takhle jsou obě sedadla rovnocenná (myslím, že u toho terminálu bych měl k dispozici docela malý výkon), což je v mém případě docela podstatné.

I am always ready to learn although I do not always like to be taught. (W. Churchill)
4.9.2007 14:55 Lojzin III.
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Tak to jo. Já uvažuji situaci, kdy je využití obou míst významně nerovnoměrné (jeden používá hodně, druhý málo), což bych si troufnul tipnout, že bude asi většinový případ, když někdo uvažuje multiseat řešení.
7.9.2007 19:40 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Používám X11 terminály a musím říct, že problém starých strojů je v úzké sběrnici (nebo obecně celé pomalosti).

Stavěl jsem terminál z i486ky s VLBusovou grafikou a 10Mb/s ISA síťovkou. Stavěl jsem terminál z PentiaMMX na 200 MHz s PCI S3Trio grafikou a 100Mb/s PCI síťovkou. V prvním případě bylo zpoždění znatelné i při běžné práci (rolování menu apod.). V druhém případě je na běžnou práci terminál zcela srovnatelný se serverem. Ale jakmile přijde na překreslování velké části obrazovky (např. prohlížení PS souborů, těžké rolování ve Firefoxu apod.), ztrácí se plynulost. Přehrávání videa je použitelné jen při menších rozlišeních (800×600 a méně) a to se ještě některé snímky nestihnou přenést. Na OpenGL si můžete nechat zajít chuť, neb grafiky v těchto šunkách jej neumí. (Kdysi jsem testoval OpenGL po síti přes X11/GLX na SGI stanici s IRIXEM a výsledkem byla slide show.)

Nicméně je třeba přiznat, že i v dobách slávy těchto vypávek byly o proti dnešním strojům pomalé i s tehdjším mnohem jednošším softwarem. Jen jsme to přičítali swapování a tudíž se o rekordy ani nepokoušeli.

Takže já, kdybych mohl zvolit multiseat (vzdálenost, málo lidí), tak bych mu dal přednost.
4.9.2007 13:45 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
> Šlo by využít kombinace integrované a samostatné grafické karty?

Je mozne zaroveni pouzivat integrovanou a samostatnou grafickou kartu (alespon v obecnem pripade - nemohu vyloucit, ze na nejakym obskurnim boardu to nepujde).
4.9.2007 14:03 Lojzin III.
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Někde jsem totiž četl, že to nejde. Nicméně nenašel jsem důvod, proč by to jít nemělo. A viděl jsem počítač (s Windows), kde se to opravdu chovalo (aspoň na první pohled, bez nějakého nastavování v BIOSu).
4.9.2007 13:28 frdrx | skóre: 29 | blog: frdrx
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Díky za pěkný článek. Časem nejspíš budu multiseat pracoviště sestavovat, takže se asi bude hodit.
Patička mi slouží k tomu, abych si lépe poznal svoje příspěvky.
4.9.2007 13:47 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
> tak obě karty budou používat stejná přerušení

Pokud se nevyuziva DRI, tak X server nijak nevyuziva interrupty.
4.9.2007 13:57 dustin | skóre: 62 | blog: dustin
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Jak tedy jádro komunikuje s grafickou kartou?
4.9.2007 14:33 Abraxis
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Bez urazky, ale neni tvuj cas natolik drahy a neni popsane reseni natolik "nestandardni" (a "obcas" zatuhne, problemy se zamykanim zarizeni apod), ze by bylo jednodussi poridit si druhy stroj? At uz nejaky pouzity z bazaru nebo treba Mac Mini - vetsinou se "2nd seat" dela pro nase hezci polovicky a z vlastni zkusenosti muzu rict, ze pro ne je MacOS prijemnejsi nez Linux.
4.9.2007 14:51 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat

Jednodušší by to možná bylo, ale stejně bych pak musel nastavovat nějaké sdílení dat (a hlavně fyzického prostoru pokoje), což tady elegantně odpadlo. Co se nestandardnosti týče, nazval bych to spíše nezvyklostí, protože se s tím u PC nepočítalo (a během posledních měsíců bych vytuhnutí spočítal na prstech jedné ruky). Problémy jsem popisoval proto, aby až někdo třeba bude chtít udělat něco podobného se nedivil, co všechno se bude řídit podle Murphyho.

Kromě toho, díky tomuhle jsem konečně přešel z Windows na Linux :-).

I am always ready to learn although I do not always like to be taught. (W. Churchill)
4.9.2007 15:02 Lojzin III.
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Jen tak úplně mimochodem bych zmínil to (tady to nikoho zajímat nebude), že multiseat lze provozovat i na Windows, ale je k tomu potřeba komerční řešení třetí strany, např. BeTwin.

Na MS mi nejvíc vadí to, že zavádí různé umělé restrikce tak, aby jedno PC mohl v jednom okamžiku používat nejvýše jeden uživatel. Je to neekonomické i neekologické.
4.9.2007 18:35 Abraxis
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat
Nechapu to s tim sdilenim - preci pokud mas 2 pocitace, tak mas prave vetsi volnost, kam je rozmistis, nez kdyz mas 1 bednu a k ni 2 monitory & klabosnice - pak jses prave limitovany tim, jak dlouhy muze byt VGA kabel. A Mac Mini nezabira v podstate zadny prostor. Krome toho je naprosto tichy, takze klidne muze bezet porad a data budes sdilet na nem.
30.9.2007 12:22 Daniel Teufel
Rozbalit Rozbalit vše Re: Jak jsem stavěl multiseat (multiuser autologin kdm)
Trosku jsem se pral s tim, abych rozchodil multiseat. Nejlepsi na vsem je ze pokud se vam podari vsechno zprovoznit tak zjistite jak je to jednoduche. Ale ta cesta k tomu mi prisla dost hrbolata.

Pro vsechny kteri se to budou pokouset rozjet radim: nez zacnete zkouset vsechno mozne odpovezte si na zakladni otazky.

Ku prikladu jsem mel obrovsky problem s grafickymi kartami nvidia. Mam dve v PCI-E. Padaji mi drivery od NVIDIA (to mi stale nefunguje), takze jsem nucen pouzivat driver NV. A vtip je v tom ze driver NV zrejme neuplne korektne inicializuje kartu. Ta co byla inicializovana biosem po startu pocitace s tou potize nebyly. Ta druha ovsem radne nechodila. Skoncilo to na tom ze nema jakoby zadnou pamet:

..
(--) NV(0): VideoRAM: 0 kBytes
..

Tim padem X nenalezne zadnou vhodnou Modeline a skonci. Prisel jsem na to ze kartu staci inicializovat driverama NVIDIA (sice spadnou ale kartu nahodi). Ovsem potize nekoncily, protoze pak se karta s monitorem domluvila na tom ze Panel size bude 1x1. S tim jsem si poradil tak, ze u prislusne karty jsem pouzil volbu

Option "NoDDC"

Nicmene ani toto k uspechu nevedlo jelikoz po restartu sice obe X session nabehly (podle Xorg.N.log uspesne) ovsem na te druhe karte byla cerna obrazovka.

Dlouhou jsem nad tim laboroval. Pak si stacilo odpovedet na velice jednoduchou otazku. Je karta inicializovana? Ne? tak proc po ni neco chtit. V mem pripade pomohlo to, ze jsem v xorg.conf u druhe karty (Layoutu) deaktivoval volby:

# Option "SingleCard" "yes"
# Option "NoInt10" "yes"
# Option "IsolateDevice" "PCI:2:0:0"

a v kdmrc jsem pomoci OpenDelay nechal pustit X session prvni na te druhe karte. (to proto aby mi nezasahovala do nabihani te prvni karty)
Pokud vam funguji drivery NVIDIA tak se vam zrejme tyhlety peripetie vyhnou.

Kdyz uz sem mel funkcni dualseat, prisel na pretres autologin v kdm. A protoze je to "dual" tak jsem chtel aby v kazde X session byl jiny uzivatel. Tady jsem narazil, asi jako kazdy kdo to zkousel. Protoze v te druhe session autologin proste nefunguje nebo jsem neprisel na to jak bych jej rozchodil. Ovsem pokud by to nekdo potreboval (stejne jako ja) tak reseni existuje a je velice proste :-).

Za predpokladu ze v kdmrc specifikujete uzivatele kteri nepotrebuji zadat heslo aby se prihlasili (pri autologin se to vlastne da ocekavat). Doplnil jsem startovaci script /etc/init.d/xdm (pouzivam opensuse ) o dva radky na konci sekce start:

...
sleep 10
/opt/kde3/bin/kdmctl login :1 now user2 ""
...

Coz zpusobi ze na display :1 bude okamzite prihlasen uzivatel user2. Uvozovky muzete nahradit aktualni heslem uzivatele ale je to zbytecne kdyz se muze prihlasit s prazdnym heslem.

A to je vse. Doufam ze to treba nekomu pomuze.

Jeste jedna rada na zaver. Pokud se pustite do anabaze s multiseat, doporucuji prihlasit se na stroj kde chcete delat multiseat vzdalene (treba ssh). Usetrite si tim hodne restartu protoze s rozhazenou konzoli se dlouho delat neda :-). X jsem poustel s volbou -verbose a tim jsem si usetril koukani do Xorg.N.log.

Dan
29.2.2008 00:58 Petrik
Rozbalit Rozbalit vše Par poznamek
1)integrovana a AGP/PCI-E obvykle zaroven pouzit jde, ve vetsine BIOSu to jde nastavit. 2)PCI-E x16 grafika funguje i v x1 slotu, stejne tak v x4 a v x8, problem je v tom, ze se musi upilovat/vylomit jeho hrana, aby tam sla fyzicky zasunout. x4 slot ma dostatecnou rychost (myslim ze neco jako AGP 8x) aby se na te grafice dalo i hrat neco ve 3D (lide to pouzivaji pro SLI), 1x slot by mel stacit na 2D zobrazeni, je to porad radove rychlejsi nez PCI. 3)nekde jsem cetl, ze pro fungujici terminal pro multiseat je porteba patchnout jadro....

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.