|
Multiterminal com Zenwalk 4.6
Este projeto foi aplicado no Programa Educando e Valorizando a Vida (EVV) da Universidade Estadual de Goiás em Goiânia.
A configuração da máquina utilizada foi: 
Processador: Intel Celeron D 3.06GHz RAM: 1 GB Placas de Vídeo: 1 SiS (onboard) 2 NV4 RIVA TNT de 32 MB. HD: 40GB TECLADO: 1 Teclado ABNT2 porta PS/2 2 Teclados ABNT2 porta USB 1 Mouse PS/2 e 2 USB
Instalação: Fazer o download da versão Standard e instalar o sistema normalmente.
http://distro.ibiblio.org/pub/linux/distributions/zenwalk/i486/zenwalk-4.6.1/ISO/zenwalk-4.6.1.iso Após instalar o sistema, ele irá configurar o X automaticamente, mas vai embaralhar as configurações dos monitores e placas de vídeo, para solucionar isso quando aparecer o erro do GDM, pressione Ctrl+Alt+F2 e arrume o /etc/X11/xorg.conf, depois de arrumá-lo digite telinit 3 e então telinit 4 (aguarde um tempo para cada telinit) para atualizar as configurações do XORG. Configurações para o Multiterminal!
Após logar na máquina com usuário root, abra um terminal, pode ser pelo terminal do xfce. Preste atenção nos valores em negrito, eles serão utilizados no xorg.conf em hexadecimal.
root[~]# lspci|grep VGA 01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 330 [Xabre] PCI/AGP VGA Display Adapter (rev 01) 02:0a.0 VGA compatible controller: nVidia Corporation NV4 [RIVA TNT] (rev 04) 02:0c.0 VGA compatible controller: nVidia Corporation NV4 [RIVA TNT] (rev 04)
Faça uma cópia de seu XORG.CONF
# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.original
Configurações do Teclado e Mouse
Com o comando cat podemos ver os endereços dos dispositivos de entrada.
# cat /proc/bus/input/devices
Ao se listar os dispositivos USB, devemos desconsiderar os que terminam com input1. Isso é o que normalmente se faz ao se usar os teclados e mouse USB.
ATENÇÃO: Se estiver usando adaptadores, os input1 são relevantes.
Para facilitar utilize o comando:
# cat /proc/bus/input/devices > periféricos.txt
Se digitar o comando acima, abra o arquivo perifericos.txt que a informação dos dispositivos de entrada estarão nele e você não precisará anotar ou repetir o comando, é só abri-lo em um editor qualquer.
Repare na lista abaixo o que está em negrito são as informações relevantes.
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41 N: Name="AT Translated Set 2 keyboard" P: Phys=isa0060/serio0/input0 S: Sysfs=/class/input/input0 H: Handlers=kbd event0 B: EV=120013 B: KEY=4 2000000 3802078 f840d001 feffffdf ffefffff ffffffff fffffffe B: MSC=10 B: LED=7
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 ts0 B: EV=7 B: KEY=70000 0 0 0 0 0 0 0 0 B: REL=103
I: Bus=0003 Vendor=062a Product=0003 Version=0110 N: Name="MosArt Optical Mouse" P: Phys=usb-0000:00:1d.0-1/input0 S: Sysfs=/class/input/input2 H: Handlers=mouse1 event2 ts1 B: EV=7 B: KEY=1f0000 0 0 0 0 0 0 0 0 B: REL=103
I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.0-2/input0 S: Sysfs=/class/input/input3 H: Handlers=kbd event3 B: EV=120003 B: KEY=10000 7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe B: LED=1f
I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.0-2/input1 S: Sysfs=/class/input/input4 H: Handlers=kbd event4 B: EV=3 B: KEY=20000 3878 d801d101 1e0000 0 0 0
I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.1-1/input0 S: Sysfs=/class/input/input5 H: Handlers=kbd event5 B: EV=120003 B: KEY=10000 7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe B: LED=1f
I: Bus=0003 Vendor=0a81 Product=0101 Version=0110 N: Name="CHESEN USB Keyboard" P: Phys=usb-0000:00:1d.1-1/input1 S: Sysfs=/class/input/input6 H: Handlers=kbd event6 B: EV=3 B: KEY=20000 3878 d801d101 1e0000 0 0 0
I: Bus=0003 Vendor=062a Product=0003 Version=0110 N: Name="MosArt Optical Mouse" P: Phys=usb-0000:00:1d.1-2/input0 S: Sysfs=/class/input/input7 H: Handlers=mouse2 event7 ts2 B: EV=7 B: KEY=1f0000 0 0 0 0 0 0 0 0 B: REL=103
I: Bus=0019 Vendor=0000 Product=0002 Version=0000 N: Name="Power Button (FF)" P: Phys=button_power/button/input0 S: Sysfs=/class/input/input8 H: Handlers=kbd event8 B: EV=3 B: KEY=100000 0 0 0
I: Bus=0019 Vendor=0000 Product=0001 Version=0000 N: Name="Power Button (CM)" P: Phys=PNP0C0C/button/input0 S: Sysfs=/class/input/input9 H: Handlers=kbd event9 B: EV=3 B: KEY=100000 0 0 0
Estou destacando os endereços para facilitar. Se contarmos os dispositivos com seus endereços em negrito, vamos notar que são em número de 6, sendo 3 teclados e 3 mouses. Notem que os teclados e mouse tem o input0 (isa0060/serio0/input0 e isa0060/serio1/input0). No caso dos periféricos USB, são 4 (usb-0000:00:1d.0-1/input0, usb-0000:00:1d.0-2/input0, usb-0000:00:1d.1-1/input0, usb-0000:00:1d.1-2/input0).
Configuração o XORG.CONF
Neste passo vamos realizar a alteração do xorg.conf, de maneira a deixar uma sessão para cada conjunto de monitor e placa de vídeo que você está usando. Execute o comando abaixo. Esse comando vai configurar o Xorg automaticamente, detectando todos os dispositivos que estão ligados ao seu computador. Após a execução desse comando vai ser gerado um arquivo de nome xorg.conf.new no /root/
# Xorg :1 -configure
Abra o xorg.conf original e o xorg.conf.new e faça as alterações, no xorg.conf original, alterando apenas as partes que diz respeito as placas de vídeo, monitores e ServerLayout, destacadas em negrito na configuração abaixo.
xorg.conf alterado:
# ********************************************************************** # This file was generated by videoconfig (Zenwalk Xorg configuration tool) # If you changed your video card or monitor, please run videoconfig again # from runlevel 3. Don't modify this file yourself until you know what you do ;) # **********************************************************************
# ********************************************************************** # Files section. This allows default font and rgb paths to be set # **********************************************************************
Section "Files" RgbPath "/usr/share/X11/rgb" ModulePath "/usr/lib/X11/modules" FontPath "/usr/share/fonts/misc" FontPath "/usr/share/fonts/75dpi" FontPath "/usr/share/fonts/100dpi" FontPath "/usr/share/fonts/TTF" FontPath "/usr/share/fonts/Type1" EndSection
# ********************************************************************** # Module section -- this section is used to specify # which dynamically loadable modules to load. # **********************************************************************
Section "Module" Load "glx" Load "extmod" Load "xtrap" Load "record" Load "GLcore" Load "dbe" Load "dri" Load "freetype" Load "type1" EndSection
# ********************************************************************** # Server flags section. # **********************************************************************
Section "ServerFlags" # Option "NoTrapSignals" # Option "DontVTSwitch" # Option "DontZap" # Option "DontZoom" # Option "DisableVidModeExtension" # Option "AllowNonLocalXvidtune" # Option "DisableModInDev" # Option "AllowNonLocalModInDev" # Option "blank time" "10" # 10 minutes # Option "standby time" "20" # Option "suspend time" "30" # Option "off time" "60"
# Option "EstimateSizesAggresively" "0"
EndSection
# ********************************************************************** # DRI section # **********************************************************************
Section "dri" # Access to OpenGL ICD is allowed for all users: Mode 0666 # Access to OpenGL ICD is restricted to a specific user group: # Group 100 # users EndSection
# ********************************************************************** # Extensions section. # **********************************************************************
Section "Extensions" Option "Composite" "Enable" EndSection
# ********************************************************************** # Core keyboard's InputDevice section # ********************************************************************** Section "InputDevice" Identifier "Keyboard1" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "br" EndSection
# ********************************************************************** # Core Pointer's InputDevice section # **********************************************************************
Section "InputDevice"
# Identifier and driver Identifier "Mouse1" Driver "mouse" Option "Protocol" "Auto" Option "Device" "/dev/mouse" Option "ZAxisMapping" "4 5" EndSection
# ********************************************************************** # Monitor section # **********************************************************************
Section "Monitor" #DisplaySize 280 210 # mm Identifier "Monitor0" VendorName "PBR" ModelName "562NS" ### Comment all HorizSync and VertRefresh values to use DDC: HorizSync 30.0 - 55.0 VertRefresh 50.0 - 150.0 Option "DPMS" EndSection
Section "Monitor" #DisplaySize 280 210 # mm Identifier "Monitor1" VendorName "SAM" ModelName "SyncMaster" ### Comment all HorizSync and VertRefresh values to use DDC: HorizSync 30.0 - 55.0 VertRefresh 50.0 - 120.0 Option "DPMS" EndSection
Section "Monitor" #DisplaySize 280 210 # mm Identifier "Monitor2" VendorName "SAM" ModelName "SyncMaster" ### Comment all HorizSync and VertRefresh values to use DDC: HorizSync 30.0 - 55.0 VertRefresh 50.0 - 120.0 Option "DPMS" EndSection # ********************************************************************** # Graphics device section # **********************************************************************
# Any number of graphics device sections may be present
Section "Device" Identifier "Card0" Driver "sis" VendorName "Silicon Integrated Systems [SiS]" BoardName "330 [Xabre] PCI/AGP VGA Display Adapter" BusID "PCI:1:0:0" EndSection
Section "Device" Identifier "Card1" Driver "nv" VendorName "nVidia Corporation" BoardName "NV4 [RIVA TNT]" BusID "PCI:2:10:0" EndSection
Section "Device" Identifier "Card2" Driver "nv" VendorName "nVidia Corporation" BoardName "NV4 [RIVA TNT]" BusID "PCI:2:12:0" EndSection
# ********************************************************************** # Screen sections # **********************************************************************
Section "Screen" Identifier "Tela0" Device "Card0" Monitor "Monitor0" DefaultDepth 24
Subsection "Display" Depth 24 Modes "1024x768" "800x600" "640x480" EndSubsection EndSection
Section "Screen" Identifier "Tela1" Device "Card1" Monitor "Monitor1" DefaultDepth 24
Subsection "Display" Depth 24 Modes "1024x768" "800x600" "640x480" EndSubsection EndSection
Section "Screen" Identifier "Tela2" Device "Card2" Monitor "Monitor2" DefaultDepth 24 Subsection "Display" Depth 24 Modes "1024x768" "800x600" "640x480" EndSubsection EndSection
# ********************************************************************** # ServerLayout sections. # **********************************************************************
Section "ServerLayout" Identifier "Simple Layout" Screen 0 "Tela0" 0 0 Screen 1 "Tela1" RightOf "Tela0" Screen 2 "Tela2" RightOf "Tela1" InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection
Fazendo download do XEPHYR
Basta agora baixar o Xephyr modificado do site da UFPR e colocar no /usr/local
# wget http://www.c3sl.ufpr.br/multiterminal/howtos/xephyr-precompiled.tar.bz2 # tar -xjf xephyr-precompiled.tar.bz2 --directory /usr/local/
O script Xephyr.sh
# touch /usr/sbin/Xephyr.sh # chmod 755 /usr/sbin/Xephyr.sh # nano /usr/sbin/Xephyr.sh
Cole o texto abaixo no arquivo e salve.
#!/bin/bash # 20060905 - josean - added get_event() function to obtain eventNN from a physical address # Original version: # http://en.wikibooks.org/wiki/Multiterminal_with_Xephyr # http://www.c3sl.ufpr.br/multiterminal/howtos/Xephyr.sh
trap "" usr1
XEPHYR=/usr/local/bin/Xephyr
get_event() { evento=`grep -A2 $1 /proc/bus/input/devices | grep 'H: Handlers=' | grep --only-matching -e 'event[0-9]*'` }
args=()
while [ ! -z "$1" ]; do if [[ "$1" == "-xauthority" ]]; then shift if [ ! -z "$1" ]; then export XAUTHORITY="$1" fi elif [[ "$1" == "-display" ]]; then shift if [ ! -z "$1" ]; then export DISPLAY="$1" fi elif [[ "$1" == "-kbdphys" ]]; then shift if [ ! -z "$1" ]; then get_event $1 args=("${args[@]}" "-keyboard") args=("${args[@]}" "/dev/input/$evento") fi elif [[ "$1" == "-mousephys" ]]; then shift if [ ! -z "$1" ]; then get_event $1 args=("${args[@]}" "-mouse") args=("${args[@]}" "/dev/input/$evento,5") fi else if ! expr match $1 'vt[0-9][0-9]*' >/dev/null; then args=("${args[@]}" "$1") fi fi
shift done
# echo $XEPHYR "${args[@]}" >> /tmp/logXephyr
exec $XEPHYR "${args[@]}"
Criando o GDM.CONF Vamos editar o arquivo gdm.conf (/etc/X11/gdm/gdm.conf) e limpar o que estiver depois de [servers]. Efetue sempre as alterações de acordo com o seu caso. Observe a quantidade de cabeças que estamos configurando e os endereços dos dispositivos. Para comentar uma linha coloque um # no início. Depois de remover, cole o trecho abaixo:
[servers]
0=Xephyr0 1=Xephyr1 2=Xephyr2 3=Xephyr3
[server-Xephyr0]
name=Xephyr0 command=/usr/bin/X -ac -br handled=false flexible=false
[server-Xephyr1]
name=Xephyr1 command=/usr/sbin/Xephyr.sh -display :0.0 -xauthority /var/lib/gdm/:0.Xauth -fullscreen -kbdphys isa0060/serio0/input0 -mousephys isa0060/serio1/input0 -use-evdev handled=true flexible=false
[server-Xephyr2]
name=Xephyr2 command=/usr/sbin/Xephyr.sh -display :0.1 -xauthority /var/lib/gdm/:0.Xauth -fullscreen -kbdphys usb-0000:00:1d.0-2/input0 -mousephys usb-0000:00:1d.0-1/input0 -use-evdev handled=true flexible=false
[server-Xephyr3]
name=Xephyr3 command=/usr/sbin/Xephyr.sh -display :0.2 -xauthority /var/lib/gdm/:0.Xauth -fullscreen -kbdphys usb-0000:00:1d.1-1/input0 -mousephys usb-0000:00:1d.1-2/input0 -use-evdev handled=true flexible=false
Reapare que destaquei em negrito as informações mais importantes, é no gdm.conf que usaremos as informações dos dispositivos de entrada anotadas anteriormente.
O que está no Xephyr1, teclado e mouse para o primeiro monitor, no Xephyr2, o teclado e mouse para o segundo monitor e assim por diante.
Configurando os TECLADOS
Vamos agora acertar os teclados. Verifique o seu modelo e o tipo de teclado que você usa. Faça as alterações necessárias. Para cada teclado crie um arquivo. Em nosso caso serão 3 (três) arquivos.
# echo "model = \"pc105\"" > /usr/share/X11/xkb/X1-config.keyboard # echo "keycodes = \"evdev\"" >> /usr/share/X11/xkb/X1-config.keyboard # echo "layout = \"br\"" >> /usr/share/X11/xkb/X1-config.keyboard
Repita conforme a sua quantidade de teclados alterando o valor do X, repare no exemplo:
# cp /usr/share/X11/xkb/X1-config.keyboard /usr/share/X11/xkb/X2-config.keyboard # cp /usr/share/X11/xkb/X1-config.keyboard /usr/share/X11/xkb/X3-config.keyboard
Ajustes finais:
# ln -s /usr/share/X11/xkb /usr/lib/X11/xkb
Arrumando as teclas:
Baixe o arquivo xkb-evdev.tar.gz no link:
# wget http://www.c3sl.ufpr.br/multiterminal/howtos/xkb-evdev.tar.gz
Descompacte o xkb-evdev.tar.gz no /etc/X11
# tar -zxvf xkb-evdev.tar.gz --directory /etc/X11/
Pronto, agora é só reiniciar o computador e ver se tudo funcionará, caso dê algum problema com mouse ou teclado, verifique o endereço dos dispositivos novamente e altere no arquivo /etc/gdm/gdm.conf caso seja necessário.
Após entrar no sistema e tudo ter funcionado direito, você poderá instalar outros programas utilizando o aplicativo netpkg, para isso vá em Menu -> Sistema -> Netpkg
Digite a senha de root depois click em load, assim que terminar o processo de carregamento, click em Fechar e então aparecerá a janela com a lista de programas que você poderá selecionar para instalar.
Fontes:
http://www.c3sl.ufpr.br/fourhead/index-pt.php http://www.ronaldcosta.pro.br/sistemas/wiki/index.php/Multiterminais_Ubuntu_7.04
Google: multiterminal linux Google: multiterminais ubuntu |