Multiterminais com openSUSE 11.0

De Wiki do Ronald

Este tutorial é LIVRE e pode ser usado sem nenhuma restrição - APENAS MANTENHA OS CRÉDITOS DOS AUTORES !!!



openSUSE é um sistema operacional baseado em GNU/Linux da comunidade mundial patrocinado pela Novell. O sistema operacional é uma alteração do SUSE Linux. Tem como base os pacotes *.rpm (Redhat Package Manager). Sua ultima versão é a 11, lançada em 19 de junho de 2008.

O grande diferencial desta distribuição é possuir o Yast um aplicativo que traz a possibilidade de configurar de forma gráfica diversos elementos do sistema operacional que normalmente são configurados através de linha de comando.

Para este exemplo, utilizei um computador P4 2.26 Ghz, 1024 Mb de memória RAM, com HD de 4 Gb (o que poderia ser com 10 Gb), monitores CRT/17"/15", teclados e mouse PS2, adaptadores PS2 para USB, placas de vídeo of-board (AGP-Nvidia-128MB/AGP/ Com duas saídas VGA/DVI), não utilizei a placa on-board por a mesma compartilhar o mesmo barramento da AGP.

Conteúdo

Iniciando

Meu computador...
Ampliar
Meu computador...

Dica importante: Particularmente prefiro fazer pelo modo gráfico.

Para iniciar acesse um terminal (tty1). Entre como root. Execute o comando abaixo:

# /etc/init.d/gdm stop

Após ter parado o ambiente gráfico, vamos executar alguns passos. Instalar o SSH. Você só sabe que vai precisar dele quando algo sair errado e tiver que reiniciar a máquina com o reset.

# zypper openssh-server

Anote o seu IP

# ifconfig
Conexões de Vídeo e USB...
Ampliar
Conexões de Vídeo e USB...

Execute o comando lspci para listar as placas de vídeo e seus endereços. Essa informação é importante e será usada no XORG.CONF. Observe ainda os endereços que tem que ser convertidos para decimal. No caso de estar usando uma placa com saida DVI ela vai aparecer apenas uma vez no LSPCI. Repita o endereço dela duas vezes.

Em meu caso, utilizei 1 placas de vídeo,(Nvidia/AGP com duas saídas VGA/DVI para dois terminais), o exemplo abaixo é apenas como referencia, note o endereço físico de cada uma: (00:09.0) (01:00.0).

# lspci | grep VGA
00:09.0 VGA compatible controller: ATI Technologies Inc Rage XL 
01:00.0 VGA compatible controller: nVidia Corporation NV18 [GeForce4 MX 4000 AGP

Faça uma cópia de seu XORG.CONF e do CUSTOM.CONF(equivale ao GDM.CONF) por segurança. Dica importante: É muito importante, fazer as cópias de segurança, pois ao longo das configurações pode ser necessário para restabelecer o funcionamento do mesmo.

# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.original
# cp /etc/gdm/custom.conf /etc/gdm/custom.conf.original


XORG.CONF

Placa Nvidia Dual VGA/DVI...
Ampliar
Placa Nvidia Dual VGA/DVI...

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(placas de vídeo e monitores), que estão ligados ao seu computador. Após a execução desse comando vai ser gerado um arquivo de nome Xorg.conf.new. Você pode renomear o novo Xorg.conf.new para xorg.conf ou abrir o Xorg.conf original e o Xorg.conf.new e fazer as alterações necessárias.

# Xorg :1 -configure 


Estou mostrando apenas a parte do XORG que foi alterada. Notem que existem 2 (duas) Section "Screen", uma para cada cabeça (head) do MULTILINUX. Em cada uma delas associamos um monitor e uma placa de vídeo. Note também que só existe uma única placa de vídeo, porém utilizo as duas saídas da placa(DVI e VGA),proporciona economia de hardware e um melhor desempenho.

Section "Monitor"

    # TV fullscreen mode or DVD fullscreen output.
    # 768x576 @ 79 Hz, 50 kHz hsync
    Identifier     "monitor1"
    VendorName     "Unknown"
    ModelName      "CRT-1"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    ModeLine       "768x576" 50.0 768 832 846 1000 576 590 595 630
    ModeLine       "768x576" 63.0 768 800 960 1024 576 578 590 616
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 71.0
    VertRefresh     50.0 - 160.0
EndSection

Section "Device"
    Identifier     "device1"
    Driver         "nvidia"
    VendorName     "nVidia Corporation"
    BoardName      "NVIDIA GeForce FX to GeForce 8800"
    Option         "DPMS"
    Option         "RenderAccel" "false"
    Option         "AddARGBGLXVisuals"
EndSection

Section "Device"
    Identifier     "Videocard0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 6200"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Videocard1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 6200"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "screen1"
    Device         "Videocard1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "CRT-1: 1024x768 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "CRT-0: 1024x768  +0+0"
EndSection

Section "Extensions"
    Option         "Composite"
EndSection


Fazendo download do XEPHYR

Agora vamos baixar o Xephyr modificado pela equipe do C3sl, baixando do site da UFPR, e executar os comandos abaixo para deixar tudo ok.

# wget http://www.multiterminais.org/Xephyr/xephyr-precompiled.tar.bz2
# tar -xjf xephyr-precompiled.tar.bz2 --directory /usr/local/

O script Xephyr.sh

Agora vamos criar um arquivo que será responsável em carregar o Servidor Xephyr.

# touch /usr/sbin/Xephyr.sh
# chmod 755 /usr/sbin/Xephyr.sh
# gedit /usr/sbin/Xephyr.sh

Cole o texto abaixo no arquivo e salve.


#!/bin/bash

trap "" usr1

XEPHYR=/usr/local/bin/Xephyr

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
 else
   if ! expr match $1 'vt[0-9][0-9]*' >/dev/null; then
     args=("${args[@]}" "$1")
   fi
 fi

 shift
done

exec $XEPHYR "${args[@]}"


CUSTOM.CONF

Tela de Login
Ampliar
Tela de Login

Dica importante: A configuração do custom.conf, requer muita atenção, pois uma virgula esquecida pode apresentar erro na hora de depurar as configurações.

Vamos editar o arquivo gdm.conf (/etc/gdm/custom.conf) e acrescentar as informações necessárias, abaixo de [servers]. Efetue sempre as alterações de acordo com o seu caso. Observe que uso apenas dois terminais, logo minha configuração é a mostrada abaixo. Um fato importante nas configurações utilizando o openSUSE 11.0, é o apontamento(endereço) dos dispositivos(teclados e mouses), e devem ser feita de forma diferente das outras receitas.

Ex:


[servers]

0=Xephyr0

1=Xephyr1

2=Xephyr2

[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 -keyboard /dev/input/by-path/platform-i8042-serio-0-event-kbd -mouse /dev/input/by-path/platform-i8042-serio-1-event-mouse -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 -keyboard /dev/input/by-path/pci-0000:00:10.1-usb-0:1.1:1.0-event-kbd -mouse /dev/input/by-path/pci-0000:00:10.1-usb-0:1.4:1.1-event-mouse -use-evdev
handled=true
flexible=false

Browser=true

Descobrindo os Nomes dos Dispositivos (Teclados e Mouses)

Note que o primeiro comando lista os teclados, e o segundo os mouses, outra dica, todos que comecem com "platform" correspodem aos dispositivos "PS2" e os "pci" são evidentemente os USB.

# ls -la /dev/input/by-path/ | grep event | grep kbd

lrwxrwxrwx 1 root root   9 2008-02-20 09:49 pci-0000:00:1d.2-usb-0:1:1.0-event-kbd -> ../event5
lrwxrwxrwx 1 root root   9 2008-02-20 09:49 pci-0000:00:1d.2-usb-0:2:1.0-event-kbd -> ../event6


# ls -la /dev/input/by-path/ | grep event | grep mouse

lrwxrwxrwx 1 root root   9 2008-02-20 09:49 pci-0000:00:1d.3-usb-0:1:1.0-event-mouse -> ../event8
lrwxrwxrwx 1 root root   9 2008-02-20 09:49 platform-i8042-serio-1-event-mouse -> ../event2

Dica importante: Os dispositivos são esses grifado em negrito, então basta copiar e colar no "custom.conf".

Adaptador USB - PS2
Ampliar
Adaptador USB - PS2
Adaptador - USB
Ampliar
Adaptador - USB

lrwxrwxrwx 1 root root 9 2008-02-20 09:49 pci-0000:00:1d.2-usb-0:1:1.0-event-kbd -> ../event5 lrwxrwxrwx 1 root root 9 2008-02-20 09:49 pci-0000:00:1d.2-usb-0:2:1.0-event-kbd -> ../event6


lrwxrwxrwx 1 root root 9 2008-02-20 09:49 pci-0000:00:1d.3-usb-0:1:1.0-event-mouse -> ../event8 lrwxrwxrwx 1 root root 9 2008-02-20 09:49 platform-i8042-serio-1-event-mouse -> ../event2

Configuração da roda do rato(Scroll)

Agora vamos acertar a roda do rato(Scroll), edite o arquivo "/etc/X11/gdm/custom.conf" e acrescente ao final de cada endereço do mouse uma vírgula seguida do número 5, note que estou destacando apenas a configuração que envolve os mouses.

Ex:


-mouse /dev/input/by-path/platform-i8042-serio-1-event-mouse,5 -use-evdev 

-mouse /dev/input/by-path/pci-0000:00:10.1-usb-0:1.4:1.1-event-mouse,5 -use-evdev 

Configuração dos Teclados

Agora vamos acertar os teclados, verifique o seu locales e o tipo de teclado que você usa. Faça os acertos necessários. Para cada teclado crie um arquivo. No meu caso serão 2(dois) 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 quantidade de teclados:

# cp /usr/share/X11/xkb/X1-config.keyboard /usr/share/X11/xkb/X2-config.keyboard

Caso eu tivesse mais terminais, eu teria que repetir o comando de acordo com a quantidade de teclados. Note que sempre mudando o inicio para diferenciar X1, X2, X3 ...

  1. cp /usr/share/X11/xkb/X1-config.keyboard /usr/share/X11/xkb/X3-config.keyboard
  2. cp /usr/share/X11/xkb/X1-config.keyboard /usr/share/X11/xkb/X4-config.keyboard


Agora os ajustes finais:

# ln -s /usr/share/X11/xkb /usr/lib/X11/xkb


Configurando as Teclas ( / , ? , ° , . ), no openSUSE 11.0


1 - Edite o arquivo: /usr/share/X11/xkb/keycodes/evdev


Agora vá até a linha (<RO> = 97;	// #define KEY_RO  89) e substitua por
(<AB11> = 97;	// #define KEY_RO  89)
 
Agora vá até a linha (<I129> = 129; // #define KEY_KPCOMMA  121) e substitua por
(<KPPT> = 129;	// #define KEY_KPCOMMA 121)


Salve, pronto as teclas estarão configuradas.

Configurações Desligar/Reiniciar

Vamos fazer uma configuração essencial para o bom funcionamento dos multiterminais, essa configuração evitará que um usuário desavisado ou espertalhão resolva resetar ou desligar os multiterminais.

1 - logue-se na conta do Administrador

2 - Sistema >> Administração >> Janela de início de sessão >> Local

3 - Desmarque a opção >> Mostrar menu ações

4 - Feche a janela

5 - Clique com o botão direito do mouse na tela do Desktop >> Criar um Lançador >> Tipo >> 

Aplicação no Terminal >> Nome (Desligar) >> Comando (shutdown -h now) >> OK

6 - Clique com o botão direito do mouse no tela do Desktop >> Criar um Lançador >> Tipo >> 
Aplicação no Terminal >> Nome (Reiniciar) >> Comando (shutdown -r now) >> OK

7 - Caso queira trocar de ícone, clique sobre a imagem do lado esquerdo e escolha outro !!!

8 - Nos comando não use os ()


Este tutorial é LIVRE e pode ser usado sem nenhuma restrição - APENAS MANTENHA OS CRÉDITOS DOS AUTORES

Agradecimentos

  • Ronald Costa (Coodernador da Comunidade Multilinux)
  • Comunidade/Lista Multilinux

Por: Marcio Kleber Machado Torres

Ferramentas pessoais