Sei sulla pagina 1di 13

FACULDADE DE TECNOLOGIA DE CARAPICUBA

Curso Superior de Anlise de Sistemas e Tecnologia da InformaoASTI

Documentao Criao do Multiterminal 2 B Manh


Professor: Antonio Cesar Albuquerque Gerum

Paulo Roberto Dias Thiago Sousa Cruz Renan Vinicius Venancio Sampaio Coelho Vinicius de Paulo da Silva Victor Hernandes de Lima Sabino

Dados Tcnicos: 2 monitores InfoWay 17 polegadas 2 teclados USB padro ABNT 2 mouses USB Placa de vdeo ATI Radeon com sada VGA/DVI CPU:3 GB de memria Ram Processador core 2 duo 2.93 GHZ 320 GB espao no HD

Configurao mnima

2 monitores Placa de vdeo offboard 2 pares de mouse e teclado USB 1 gb de memia RAM Processador de 2,5 GHZ

Instalao e atualizao do Sistema Operacional Ubuntu 9.04

A partir de um Live CD foi feita a instalao do Sistema Operacional Ubuntu 9.04, aps este processo foi feita a atualizao com seguintes procedimentos no terminal:

$ sudo apt-get update $ sudo apt-get upgrade

Download e Instalao dos Pacotes

So baixados os pacotes adicionais pelo comando: $ sudo apat-get install xserver-xephyr wmctrl

Aps a instalao destes pacotes faa a criao de usurios para os terminais e outras configuraes, mas principalmente faa o backup dos arquivos gdm.conf e xorg.conf (respectivamente encontrados em: /etc/gdm/gdm.conf e /etc/X11/xorg.conf).

Aps o backup feita a criao dos usurios nas seguintes opes : pela interface grfica e pelo terminal.

Criao de Usurios pela Interface grfica: Sistema>>Administrao>>Usurios e grupos

Criao de Usurios pelo terminal: $ sudo adduser nome_de_usuario, aperta a tecla Enter e adiciona uma senha para o novo usurio (outras informaes que aparecero so opcionais).
Inicialmente, aps a instalao padro, o sistema comear com as duas telas no modo "clone.

Com o comando $ xrandr q ser exibida a configurao atual do monitor


$ xrandr -q Screen 0: minimum 320 x 200, current 1280 x 1024, maximum VGA-0 connected 1280x1024+0+0 (normal left inverted right axis) 338mm x 270mm 1280x1024 60.0*+ 75.0 60.0* 1152x864 75.0 1024x768 75.0 60.0 832x624 74.6 800x600 75.0 60.3 640x480 75.0 59.9 720x400 70.1 DVI-0 connected 1280x1024+0+0 (normal left inverted right axis) 338mm x 270mm 1280x1024 60.0*+ 75.0 60.0* 1152x864 75.0 1024x768 75.0 70.1 60.0 832x624 74.6 800x600 72.2 75.0 60.3 640x480 75.0 72.8 59.9 720x400 70.1 S-video disconnected (normal left inverted right x axis y

1280 x 1200 x axis y

x axis y

axis)

Exemplo do que ser exibido no monitor Edio do arquivo / etc/X11/xorg.conf para indicar o caminho das placas de
vdeo e a resoluo de tela
Section "Device" Identifier BoardName (PCIE)]" Driver BusID Option Option EndSection Section "Monitor" Identifier Option EndSection Section "Monitor" Identifier Option Option EndSection Section "Screen"

"Card0" "ATI Technologies Inc RV370 5B60 [Radeon X300 "ati" "PCI:1:0:0" "Monitor-VGA-0" "Mon-VGA" "Monitor-DVI-0" "Mon-DVI"

"Mon-VGA" "DPMS"

"Mon-DVI" "DPMS" "Below"

"Mon-VGA"

Identifier Device Monitor DefaultDepth Subsection Depth Modes Virtual EndSubSection EndSection

"Screen-base" "Card0" "Mon-VGA" 24 "Display" 24 "1280x1024" 1280 2048

Section "ServerFlags" # Even if mouse detection fails, X will start Option "AllowMouseOpenFail" "yes" # VT switching is disabled Option "DontVTSwitch" "yes" # X restart (Ctrl+Alt+Backspace) is disabled Option "DontZap" "yes" EndSection

Observe que, desta vez, temos definida uma configurao vertical de monitores. Este apenas para testar se a acelerao 3D funciona com dimenses horizontal e vertical da tela virtual menor (ou igual) do que 2048 pixels. Se voc se sentir mais confortvel com uma configurao horizontal, s usar leftOf ou rightOf em vez de seguir, e alterar o tamanho do virtual para o correto de acordo com o layout desejado. Depois de ter feito essa mudana, se reiniciar o servidor X, veremos uma mesa vertical com as seguintes caractersticas:

$ xrandr -q Screen 0: minimum 320 x 200, current 1280 x 2048, maximum 1280 x 2048 VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 338mm x 270mm 1280x1024 60.0*+ 75.0 60.0* 1152x864 75.0 1024x768 75.0 60.0 832x624 74.6 800x600 75.0 60.3 640x480 75.0 59.9 720x400 70.1 DVI-0 connected 1280x1024+0+1024 (normal left inverted right x axis y axis) 338mm x 270mm 1280x1024 60.0*+ 75.0 60.0*

1152x864 75.0 1024x768 75.0 70.1 60.0 832x624 74.6 800x600 72.2 75.0 60.3 640x480 75.0 72.8 59.9 720x400 70.1 S-video disconnected (normal left inverted right x axis y axis)

Uma vez que tenha modificado o arquivo xorg.conf e j tendo obtido uma grande rea de trabalho que abrange os dois monitores (ou com uma horizontal ou com um layout vertical), o prximo passo configurar o GDM para lanar duas sesses Xephyr, um para cada assento. Anteriormente, voc vai precisar para obter as informaes relacionadas aos eventos de entrada em seu sistema.

$ ls -la /dev/input/by-path/ | grep event | grep kbd lrwxrwxrwx 1 root root 9 2009-06-18 13:11 pci-0000:00:1d.2-usb0:2:1.0-event-kbd -> ../event5 lrwxrwxrwx 1 root root 9 2009-06-18 13:11 platform-i8042-serio-0event-kbd -> ../event3 $ ls -la /dev/input/by-path/ | grep event | grep mouse lrwxrwxrwx 1 root root 9 2009-06-18 13:11 pci-0000:00:1d.2-usb0:1:1.0-event-mouse -> ../event4 lrwxrwxrwx 1 root root 9 2009-06-18 13:11 platform-i8042-serio-1event-mouse -> ../event8

Neste caso, temos um conjunto de teclado + mouse PS2 para um assento, e um par de mouse + teclado USB para o segundo. Os valores que voc est obtendo aqui ser usado para configurar o dispositivo de entrada correspondente para cada assento. O prximo passo criar um lanador para executar Xephyr com os parmetros adequados e eventos de entrada. Para isso, criamos um arquivo que ser usado como um lanador de script. Voc pode nomear o arquivo e coloc-lo como considerar mais apropriado.Decidimos cri-lo como / usr / sbin / Xephyr-path.sh Use seu editor favorito (vi, gedit, ...) para criar, e no se esquea de tornlo executvel pelo usurio root (o dono do arquivo).
$ sudo gedit /usr/sbin/Xephyr-path.sh $ sudo chmod 744 /usr/sbin/Xephyr-path.sh

Voc deve criar um arquivo com algo parecido com esses contedos (XX=idioma do seu teclado.Exemplo:br):
$ cat /usr/sbin/Xephyr-path.sh

#!/bin/bash # 200906 - josean # http://netpatia.blogspot.com/ trap "" usr1 XEPHYR=/usr/bin/Xephyr DISPLAY=:0 XAUTHORITY=/var/lib/gdm/:0.Xauth args=() while [ ! -z "$1" ]; do if [[ "$1" == "-kbdpath" ]]; then shift if [ ! -z "$1" ]; then args=("${args[@]}" "-keybd") args=("${args[@]}" "evdev,,device=/dev/input/bypath/$1,xkbrules=xorg,xkbmodel=evdev,xkblayout=XX") fi elif [[ "$1" == "-mousepath" ]]; then shift if [ ! -z "$1" ]; then args=("${args[@]}" "-mouse") args=("${args[@]}" "evdev,,device=/dev/input/by-path/$1") fi else args=("${args[@]}" "$1") # echo "+++ args $1 +++" >> /tmp/logXephyr fi shift done # Next line is just to create a log file with the invocation parameters, for debug purposes echo $XEPHYR "${args[@]}" >> /tmp/logXephyr exec $XEPHYR "${args[@]}"

Aps a criao do script, voc pode prosseguir com as modificaes no arquivo / etc / gdm / gdm.conf arquivo. Na [servidores] do gdm.conf, comentamos as regras correspondentes ao layout original e define o novo. Ns modificamos o arquivo para criar a base do servidor X e duas sesses Xephyr (um para cada banco) sobre a base X.

# ********************************************************************** ****** [servers] # 0=Standard # # Means that DISPLAY ":0" will start an X server as defined in the # [server-Standard] section. # ********************************************************************** ****** # Multiseat setup (200906) 0=Xephyr0 1=Xephyr1 2=Xephyr2 [server-Xephyr0] name=Xephyr0 command=/usr/bin/X -br -dpms -s 0 handled=false flexible=false [server-Xephyr1] name=Xephyr1 command=/usr/sbin/Xephyr-path.sh -br -screen 1280x1024 -kbdpath platform-i8042-serio-0-event-kbd -mousepath platform-i8042-serio-1event-mouse handled=true flexible=false [server-Xephyr2] name=Xephyr2 command=/usr/sbin/Xephyr-path.sh -br -screen 1280x1024 -kbdpath pci0000:00:1d.2-usb-0:2:1.0-event-kbd -mousepath pci-0000:00:1d.2-usb0:1:1.0-event-mouse

handled=true flexible=false # ********************************************************************** ******

Observe que esse o script que voc ter que indicar que os dispositivos de entrada (de suas conexes fsicas) so para todos os lugares. A segunda alterao no arquivo gdm.conf est relacionada com a saudao. Ainda h coisas que precisam ser feitas manualmente. Ns encontramos o j conhecido problema de ter todas as janelas Xephyr devidamente colocado (uma sesso Xephyr aparecendo em cada display). O Xephyr verso atual no suporta o parmetro geometria que a maioria das aplicaes X incluem, portanto, no possvel colocar a janela do Xephyr no lugar desejado. Para contornar esse problema, ns criamos um script que ir ser chamado em vez de fazer uma chamada direta para a sesso de boas vindas. Tal script invoca algumas ferramentas de linha de comando a fim de colocar todas as janelas Xephyr apenas no lugar onde queremos tlo.Usaremos a linha de comando seguintes ferramentas: xwininfo, wmctrl para mover uma das sesses Xephyr para o segundo monitor, de modo que elas no se sobrepem mais. Essa a razo pela qual ns instalamos o pacote wmctrl. Na seo [servidor] do gdm.conf alterar a referncia para a saudao inicial de referncia para um novo script. Esse script, alm de chamar a saudao, vai colocar corretamente cada janela Xephyr:

# ********************************************************************** ****** [daemon] # The greeter for attached (non-xdmcp) logins. gdmgreeter # to get the new graphical greeter. # Greeter=/usr/lib/gdm/gdmgreeter Greeter=/usr/sbin/Xephyr-login.sh Change gdmlogin to

# ********************************************************************** ******

Vamos ter que criar o script responsvel pela saudao / login (no nosso caso, / usr / sbin / Xephyr login.sh). Este script ser executado pelo usurio gdm, para que criar um arquivo de propriedade do gdm e dar permisso de execuo apenas para o usurio.

$ sudo gedit /usr/sbin/Xephyr-login.sh $ sudo chown gdm:gdm /usr/sbin/Xephyr-login.sh $ sudo chmod 744 /usr/sbin/Xephyr-login.sh

Aps a criao do roteiro tal, deve ter esta aparncia:

$ cat /usr/sbin/Xephyr-login.sh

#!/bin/bash # /usr/sbin/Xephyr-login.sh XAUTH_BASE=/var/lib/gdm/:0.Xauth DISPL_BASE=:0 XEP=$(XAUTHORITY=$XAUTH_BASE xwininfo -root -children -display :0 | grep "Xephyr on :1" --max-count=1) echo ${XEP} >> /tmp/logXephyrLogin

# assign values to positional parameters to obtain the id (first parameter) of the Xephyr window set ${XEP} DISPLAY=$DISPL_BASE XAUTHORITY=$XAUTH_BASE wmctrl -i -r $1 -e 0,0,1024,-1,-1 # echo $1 >> /tmp/logXephyrLogin_1 /usr/lib/gdm/gdmlogin

No nosso caso, ns nos movemos uma das sesses de 1024 pixels na vertical (lembre-se que o nosso layout composto por duas 1280x1024 exibe alinhados verticalmente). Como voc pode ver, quando a saudao esperado para ser chamado, o script wrapper (incluindo a saudao invocao) executado em seu lugar. O usurio (s), finalmente v cada saudao em uma exibio diferente e no resto do processo quase imperceptvel. O ltimo comentrio sobre a saudao. O velho estilo gdmlogin foi h algum tempo substitudo por um mais moderno gdmgreeter. H alguma coisa errada sobre o tamanho da tela de deteco com essa saudao gdm padro (gdmgreeter). Ele sempre tenta iniciar com uma resoluo de 1600x1200, ento tivemos de mudar para a saudao de idade (gdmlogin), que detecta corretamente as resolues de tela das sesses Xephyr. Talvez gdmgreeter usa xrandr para detectar a resoluo de cada sesso Xephyr, uma vez que 1600x1200 a sada mxima relatada por xrandr em cada sesso Xephyr. As janelas so de fato Xephyr resizable por meio de xrandr, ento no temos certeza se este um bug do xrandr que s informa o tamanho atual, ou um erro de gdmgreeter assumindo que ele deve mudar o tamanho da janela para o maior disponvel.

$ DISPLAY=:1 xrandr -q Screen 0: minimum 160 x 160, current 1280 x 1024, maximum 1600 x 1200 default connected 1280x1024+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1600x1200 0.0 1400x1050 0.0 1280x960 0.0 1280x1024 0.0* 1152x864 0.0 1024x768 0.0 832x624 0.0 800x600 0.0 720x400 0.0 480x640 0.0 640x480 0.0 640x400 0.0 320x240 0.0 240x320 0.0 160x160 0.0

Referencias:
http://netpatia.blogspot.com/2009/06/multiseat-in-ubuntu-904.html http://pt.wikibooks.org/wiki/Multiterminais/Multiterminal_com_Xephyr http://www.vivaolinux.com.br/artigo/Multiterminais-em-um-PC

Potrebbero piacerti anche