Configurando o multiterminal no Ubuntu 14.04 LTS para

Transcrição

Configurando o multiterminal no Ubuntu 14.04 LTS para
Configurando o multiterminal no Ubuntu 14.04 LTS para
computadores do ProInfo
Laércio de Sousa
E-mail: [email protected]
5 de dezembro de 2014
Resumo
Neste artigo, explicaremos como configurar corretamente o multiterminal no Ubuntu 14.04
LTS “Trusty Tahr” em computadores do ProInfo — pregões FNDE 83/2008 e 71/2010.
Sumário
1 Introdução
2
2 Cuidados iniciais
2
3 Instalação e configuração do sistema
3.1 Adicionando o PPA do projeto Ubuntu Multiseat
3.2 Adicionando os arquivos de configuração . . . . .
3.2.1 Udev . . . . . . . . . . . . . . . . . . . . .
3.2.2 X.Org X11 Server . . . . . . . . . . . . . .
3.2.3 LightDM . . . . . . . . . . . . . . . . . . .
3.3 Reiniciando o sistema . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
4
4
5
6
7
4 O problema da “Tela Listrada”
7
5 O problema do “Ponteiro do Mouse Piscante”
8
6 [EXPERIMENTAL] Configurando três terminais com servidores X
6.1 Habilitando o modo dual-head na placa TN-502 . . . . . . . . . . . . .
6.2 Complementando a configuração do Udev . . . . . . . . . . . . . . . . .
6.3 Multiterminal com Xephyr . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Multiterminal com Xorg e o driver de vı́deo nested . . . . . . . . . . .
6.5 Problemas comuns . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
aninhados
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
.
.
.
.
.
8
9
10
10
11
12
A Automatizando a reinicialiação do sistema (para contornar o problema
listrada”)
A.1 Procedimentos a serem feitos no Linux Educacional 4.0 . . . . . . . . . . . .
A.2 Procedimentos a serem feitos no Ubuntu . . . . . . . . . . . . . . . . . . . .
A.3 Desativando a reinicialização automática do Linux Educacional . . . . . . . .
1
da “tela
13
. . . . . 13
. . . . . 13
. . . . . 14
Introdução
No último dia 17 de abril de 2014, foi lançada a versão 14.04 LTS, codinome ”Trusty Tahr”, do
sistema operacional Ubuntu, bem como de seus derivados. Esta é a primeira versão LTS do Ubuntu
lançada após o inı́cio da sua transição para a adoção do systemd como ferramenta de inicialização
e monitoramento de sistema, e já oferece suporte parcial a multiterminais de forma nativa, isto é,
sem a necessidade de recorrer a soluções comerciais como o Userful Multiseat.
Provavelmente, o Ubuntu 14.04 LTS será a base de um eventual Linux Educacional 6.0 1 .
2
Cuidados iniciais
Antes de começarmos o processo de instalação do Ubuntu e configuração do multiterminal, algumas observações são necessárias:
• [IMPORTANTE] Não exclua a sua instalação atual do Linux Educacional! Em vez disso,
você deve instalar o Ubuntu lado a lado com a sua instalação atual do Linux Educacional.
Você pode redimensionar a partição do Linux Educacional para um valor pequeno (10GB ou
20GB) e reservar o restante para o novo sistema. Manter o Linux Educacional instalado pode
ser importante para contornarmos um eventual problema de “Tela Listrada” (veja a seção 4)
que pode se manifestar em alguns computadores.
• Numa montagem tı́pica de multiterminal do ProInfo, há um hub USB para cada terminal.
Retire o hub do terminal primário (aquele correspondente ao vı́deo onboard da Intel) e conecte
teclado e mouse diretamente à CPU. Reserve os hubs USB para os terminais secundários
(aqueles correspondentes à placa de vı́deo externa TN-502).
• Existem diversas derivações do Ubuntu disponı́veis, que diferem umas das outras principalmente
pelo ambiente gráfico. Escolha a que melhor atenda as suas necessidades:
Edubuntu: Otimizada para uso educacional. Oferece duas opções de ambiente gráfico (Unity
e GNOME-Flashback). O ambiente gráfico Unity não é recomendado para os computadores do ProInfo, pois ele exige muito processamento gráfico, algo que as placas de
1
A ser confirmado pela equipe do C3SL/UFPR responsável pelo desenvolvimento do Linux Educacional. A versão
atual, 5.0, é baseada no Ubuntu 12.04 LTS.
2
vı́deo TN-502 são incapazes de oferecer. Caso você prefira instalar outra derivação do
Ubuntu, ainda poderá instalar os pacotes educacionais mantidos pelo projeto Edubuntu.
Os pacotes são ubuntu-edu-preschool, ubuntu-edu-primary, ubuntu-edu-secondary
e ubuntu-edu-tertiary.
Ubuntu GNOME: Baseada no ambiente GNOME 3.10 completo. É a que oferece o melhor
suporte a multiterminal.
Kubuntu: Baseada na versão 4.13 do ambiente KDE, o mesmo do Linux Educacional 4.0.
Xubuntu: Baseada no ambiente XFCE. Por ser leve, deve funcionar bem nos computadores
do ProInfo, sobretudo nos do pregão 83/2008, que possuem menor quantidade de memória
RAM.
Lubuntu: Baseada no ambiente LXDE. Dentre todas as derivações do Ubuntu, esta é a mais
leve, além de oferecer uma interface que lembra o Windows XP.
Todas as derivações do Ubuntu descritas acima apresentam suporte correto à configuração de
dispositivos de entrada e saı́da por terminal (teclado, mouse, microfone e fone de ouvido). No
entanto, até a presente data, as derivações Edubuntu, Kubuntu e Lubuntu, bem como o próprio
Ubuntu, ainda apresentam algum inconveniente quanto ao uso de dispositivos de armazenamento
removı́veis (pendrives, discos rı́gidos externos, etc.). Caso você precise utilizar tais dispositivos com
frequência em seus computadores multiterminais, recomendamos as derivações Ubuntu GNOME ou
Xubuntu.
A versão 14.04 LTS do Ubuntu oferece um recurso que permite delegar ao processador principal
parte do processamento gráfico, compensando a limitação da placa de vı́deo TN-502. No entanto,
parte deste processamento acaba sendo consumida pelo próprio ambiente gráfico para lidar com
efeitos visuais, tais como animações, transparências, etc. Assim, quanto mais leve o ambiente gráfico
escolhido, maior será a sobra de processamento gráfico para as aplicações.
Portanto, se você pretende executar jogos mais pesados e/ou com gráficos em 3D, recomendamos as derivações Xubuntu ou Lubuntu. Em nossos testes, executando o jogo SuperTuxKart com
resolução de 800x600 pixels em computadores do pregão 71/2010, o desempenho gráfico na placa
TN-502 foi razoável, tanto no Xubuntu, como no Lubuntu.
3
Instalação e configuração do sistema
3.1
Adicionando o PPA do projeto Ubuntu Multiseat
Apesar de o Ubuntu apresentar suporte parcial na sua instalação padrão, alguns pacotes ainda
precisam de modificações para garantir o funcionamento correto do modelo de multiterminal dos
computadores do ProInfo. Para tanto, a equipe do projeto Ubuntu Multiseat mantém um PPA2 com
2
Personal Package Archive, ou repositório de pacotes particular.
3
os pacotes modificados. Para adicionar o PPA do projeto Ubuntu Multiseat à sua lista de repositórios
e atualizar o sistema, basta executar os comandos abaixo:
$ sudo apt-add-repository ppa:ubuntu-multiseat/ppa
2 $ sudo apt-get update
3 $ sudo apt-get upgrade
1
3.2
Adicionando os arquivos de configuração
3.2.1
Udev
O primeiro arquivo de configuração que precisamos adicionar ao nosso sistema serve para registrarmos os hubs USB da ThinNetworks como dispositivos-mestres para novos terminais. Assim, o
sistema reconhecerá o hub e criará um novo terminal para ele automaticamente. Com o auxı́lio de um
editor de textos, crie um arquivo com o caminho /etc/udev/rules.d/71-seat-tn.rules conforme
abaixo:
#
#
3 #
4 #
5 #
6 #
7 #
1
2
SUBSYSTEM=="usb": identifica dispositivos USB em geral
ATTR{idVendor}=="05e3": identifica o fabricante (ThinNetworks)
ATTR{idProduct}=="0608": identifica o hub USB
TAG+="master-of-seat": registra o hub USB como dispositivo-mestre
para novos terminais
ENV{ID_AUTOSEAT}="1": cria o novo terminal automaticamente assim que
o hub USB e detectado pelo sistema
8
SUBSYSTEM=="usb", \
ATTR{idVendor}=="05e3", \
11
ATTR{idProduct}=="0608", \
12
TAG+="master-of-seat", \
13
ENV{ID_AUTOSEAT}="1"
9
10
Para aplicar imediatamente as alterações de sistema após criar este arquivo, execute o comando
1
$ sudo udevadm trigger
Para listar os terminais presentes no sistema, execute o comando
1
$ loginctl list-seats
Exemplo de saı́da do comando para três terminais (2 hubs USB conectados):
SEAT
seat0
seat-usb-pci-0000_00_1d_7-usb-0_2
seat-usb-pci-0000_00_1d_7-usb-0_4
4
3 seats listed.
Repare que o nome do terminal criado automaticamente (seat-usb-pci-0000_00_1d_7-usb-0_2)
varia de acordo com a porta USB na qual o hub é conectado. Caso o seu sistema possua apenas dois terminais (isto é, um único hub conectado), talvez prefira a seguinte variação do arquivo
71-seat-tn.rules:
# ENV{ID_FOR_SEAT}="tn": adiciona o sufixo -tn ao nome do terminal
2 # criado automaticamente (seat-tn)
1
3
SUBSYSTEM=="usb", \
5
ATTR{idVendor}=="05e3", \
6
ATTR{idProduct}=="0608", \
7
TAG+="master-of-seat", \
8
ENV{ID_AUTOSEAT}="1", \
9
ENV{ID_FOR_SEAT}="tn"
4
Com a entrada adicional ENV{ID_FOR_SEAT}="tn"3 , o novo terminal criado automaticamente receberá
sempre o mesmo nome, seat-tn, independentemente da porta USB à qual esteja conectado.
Para o que segue, vamos assumir que o sistema a ser configurado possui apenas dois terminais,
sendo que o terminal secundário possui o nome seat-tn.
3.2.2
X.Org X11 Server
O próximo arquivo de configuração que precisamos criar é o do X.Org X11 Server, necessário para
configurarmos corretamente a placa de vı́deo TN-502. Esta placa possui um chip Silicon Motion SM501, que utiliza o driver de vı́deo xf86-video-siliconmotion.
Caso o seu sistema não possua uma pasta chamada /etc/X11/xorg.conf.d, crie-a. Em seguida,
com o auxı́lio de um editor de textos, crie o arquivo /etc/X11/xorg.conf.d/90-seat-tn.conf
conforme abaixo:
Section "Device"
2
# Modifique a linha abaixo de acordo com o seu hardware.
3
BusID "PCI:4:1:0"
4
Identifier "videocard_sm501"
5
Driver "siliconmotion"
6
Option "PanelSize" "1360x768"
7
MatchSeat "seat-tn"
8 EndSection
1
9
Section "Screen"
Identifier "screen_sm501"
12
Device "videocard_sm501"
10
11
3
Você pode substituir o tn por qualquer sequência de caracteres de sua escolha.
5
DefaultDepth 16
MatchSeat "seat-tn"
15 EndSection
13
14
No exemplo acima, o campo BusID "PCI:4:1:0" está configurado de acordo com a saı́da do
comando
1
$ lspci | grep SM501
04:01.0 Display controller: Silicon Motion, Inc. SM501 VoyagerGX Rev. AA
(rev c0)
Execute este comando no seu próprio computador e adapte o valor de BusID no seu arquivo de
configuração conforme necessário.
IMPORTANTE: certifique-se de ter adicionado o PPA do projeto Ubuntu Multiseat e atualizado
o seu sistema antes de criar este arquivo. Caso contrário, o sistema poderá travar na próxima
inicialização.
3.2.3
LightDM
NOTA: caso você optado pela derivação Ubuntu GNOME, pode pular esta seção.
Desde o dia 15 de agosto de 2014, os pacotes do gerenciador de login LightDM disponı́veis no PPA
do projeto Ubuntu Multiseat incluem patches que adicionam suporte à configuração automática de
multiterminais, de modo que nenhuma configuração adicional é necessária, em princı́pio.
ATUALIZAÇÃO 15/09/2014: O suporte a configuração automática de multiterminais, cuja implementação foi finalizada a tempo para o fechamento da versão 1.12 do LightDM (que será
lançada juntamente com o Ubuntu 14.10 “Utopic Unicorn”) foi portado para a série 1.10 e
deverá ser disponibilizado em breve para a versão 14.04 LTS. No entanto, diferentemente do
pacote do PPA do projeto Ubuntu Multiseat, a ativação deste suporte será opcional na atualização oficial (para evitar quebras com configurações anteriores). Assim, é recomendável
acrescentar a configuração abaixo ao seu arquivo lightdm.conf para não haver problemas
quando a atualização sair:
1
2
[LightDM]
logind-load-seats=true
Quando a atualização oficial estiver disponı́vel, o pacote do PPA do projeto Ubuntu Multiseat
será descontinuado.
No entanto, é possı́vel personalizar alguns parâmetros de configuração do LightDM para terminais
adicionados automaticamente, como o usuário que fará login automático no terminal em questão,
6
o comando personalizado do servidor X que será executado naquele terminal, etc. Com o auxı́lio
de um editor de textos, crie (ou edite, caso exista) o arquivo /etc/lightdm/lightdm.conf (ou
/etc/lightdm/lightdm.conf.d/90-seat-tn.conf, se preferir) conforme o exemplo abaixo:
[Seat:seat-tn]
autologin-user=<NOME-DE-USUARIO>
3 xserver-command=X -core -dpms -s 0
1
2
3.3
Reiniciando o sistema
Se você chegou até aqui, já tem o sistema suficientemente preparado para o multiterminal. Reinicie o computador e, se tudo correu como esperado, você deverá ter o multiterminal pronto para
uso.
4
O problema da “Tela Listrada”
Uma vez instalado o Ubuntu e configurado corretamente o multiterminal, é possı́vel que, ao
desligar o computador e ligá-lo novamente, você se depare com um estranho problema: os monitores
conectados à placa TN-502 podem apresentar apenas uma tela listrada, como mostra a figura 1.
Não sabemos ainda qual é a causa deste problema, mas provavelmente se trata de alguma inconsistência entre o driver de vı́deo xf86-video-siliconmotion e as placas TN-502, tampouco
conhecemos sua solução. Não obstante, é possı́vel contornar o problema seguindo os passos abaixo:
1. Reinicie o computador.
2. Na tela do gerenciador de boot, escolha a sua instalação anterior do Linux Educacional.
3. Aguarde a inicialização do Linux Educacional. Assim que você perceber que a imagem nos
monitores conectados à placa TN-502 voltou ao normal (uma tela preta com o ponteiro do
mouse já é suficiente), pressione rapidamente [Ctrl]+[Alt]+[Delete] para reiniciar o sistema
novamente.
4. Na tela do gerenciador de boot, escolha a sua instalação atual do Ubuntu (ou a derivação do
Ubuntu que você escolheu).
5. Aguarde a inicialização do sistema. Se tudo correu como esperado, os monitores conectados à
placa TN-502 devem ter voltado ao normal.
6. A partir deste ponto, você pode reiniciar o computador quantas vezes quiser, que o problema
não voltará a se manifestar, até que você o desligue e ligue novamente.
Embora não seja possı́vel ainda evitar todo este procedimento, é possı́vel ao menos automatizá-lo.
O roteiro completo para automatização do procedimento está disponı́vel no apêndice A.
7
Figura 1: Problema na saı́da de vı́deo da placa TN-502.
5
O problema do “Ponteiro do Mouse Piscante”
Outro problema observado devido a limitações no driver de vı́deo atual da placa TN-502 é que o
ponteiro do mouse fica piscando quando é movimentado. Além de ser um incômodo no uso geral do
ambiente de trabalho, este comportamento estranho pode ser bastante prejudicial em alguns aplicativos especı́ficos, como o GCompris. Ainda não descobrimos uma solução para este problema, mas
uma medida paliativa possı́vel é a utilização de servidores X aninhados, a mesma solução abordada
a seguir para configurar três terminais utilizando as duas saı́das de vı́deo da placa TN-502.
6
[EXPERIMENTAL] Configurando três terminais com servidores X aninhados
Atualmente, não é possı́vel executar mais de um servidor X sobre uma mesma placa de vı́deo, o
que permitiria, por exemplo, configurar dois terminais utilizando as duas saı́das de vı́deo da placa
TN-502. No entanto, é possı́vel contornar esta limitação com uma solução paliativa — a mesma
utilizado pelo Userful Multiseat no Linux Educacional 5.0. Esta solução consiste em executar um
servidor X “hospedeiro” que se expande sobre ambas as saı́das de vı́deo da placa TN-502 e abrir
sobre ele duas janelas com servidores X “hóspedes” aninhados, cujos tamanhos e posições deve ser
8
escolhidos para se ajustar exatamente às dimensões de cada monitor conectado às saı́das de vı́deo.
Existem atualmente duas alternativas para executar os servidores X aninhados:
• utilizar o software Xephyr, que é um servidor X minimalista feito especificamente para ser
executado sobre um outro servidor X.
• utilizar o próprio Xorg com um driver de vı́deo que permita executá-lo sobre um outro servidor
X. Esta é a solução adotada pelo Userful Multiseat no Linux Educacional 5.0, que utiliza um
driver proprietário chamado uvdd, mas existe um outro driver de código aberto chamado
xf86-video-nested que se propõe a fazer o mesmo.
Cada uma das alternativas apresentadas possui suas vantagens e desvantagens. Até o momento,
o Xephyr está mais otimizado no quesito desempenho gráfico, mas apresenta limitações no gerenciamento de dispositivos de entrada (por exemplo, os LEDs do teclado — NumLock, ScrollLock e
CapsLock — não acendem quando estão ativados, os dispositivos de entrada não são detectados se
você desconectá-los e conectá-los novamente, etc.). O Xorg com o driver nested, por sua vez, gerencia muito bem os dispositivos de entrada, mas o driver ainda está num estágio imaturo e carece
de otimizações gráficas (em nossos testes realizados em 2 de julho de 2014, o Google Chrome não
conseguia reproduzir vı́deos do YouTube no Xorg com o driver nested).
Vamos explicar a seguir como configurar o multiterminal com servidores aninhados para cada
uma das abordagens apresentadas.
6.1
Habilitando o modo dual-head na placa TN-502
Antes de prosseguirmos com a configuração do multiterminal com servidores X aninhados, precisamos habilitar o modo dual-head na placa TN-502 quando executarmos o servidor X hospedeiro.
Crie/Edite o arquivo /etc/X11/xorg.conf.d/90-sm501-dualhead.conf com o seguinte conteúdo:
Section "Device"
2
MatchSeat "__sm501-dualhead__"
3
Identifier "videocard_sm501_dualhead"
4
BusID "PCI:4:1:0"
5
Driver "siliconmotion"
6
Option "PanelSize" "1360x768"
7
Option "Dualhead" "true"
8 EndSection
1
9
Section "Screen"
MatchSeat "__sm501-dualhead__"
12
Identifier "screen_sm501_dualhead"
13
Device "videocard_sm501_dualhead"
14
DefaultDepth 16
10
11
15
9
SubSection "Display"
Virtual 2720 768
18
EndSubSection
19 EndSection
16
17
6.2
Complementando a configuração do Udev
Para não precisar carregar nomes de terminal muito extensos, como aqueles gerados automaticamente, você pode criar um arquivo complementar /etc/udev/rules.d/72-tn-late-seat.rules4
com o seguinte conteúdo:
1
2
TAG=="seat", ENV{ID_FOR_SEAT}=="usb-pci-0000_00_1d_7-usb-0_2", \
ENV{ID_SEAT}="seat-VGA"
3
4
5
TAG=="seat", ENV{ID_FOR_SEAT}=="usb-pci-0000_00_1d_7-usb-0_4", \
ENV{ID_SEAT}="seat-LVDS"
Os exemplos de configuração que seguem abaixo baseiam-se na regra acima. Seguindo esta convenção, você vai associar uma determinada porta USB da CPU a uma determinada saı́da de vı́deo
da placa TN-502. Certifique-se de conectar o hub na porta USB associada à saı́da de vı́deo desejada.
Se você perceber que seus terminais aparentam estar trocados (mouse de um terminal associado ao
monitor de outro), permute as portas USB em que os hubs estão conectados.
6.3
Multiterminal com Xephyr
Para configurar corretamente o multiterminal com o Xephyr, precisamos instalar um aplicativo
auxiliar, desenvolvido por nós, chamado multi-seat-xephyr. Ele também está disponı́vel no PPA
do Ubuntu Multiseat, que você já deve ter adicionado. Para instalar o aplicativo, execute
1
$ sudo apt-get install multi-seat-xephyr
Também precisamos do Xephyr disponı́vel no PPA do Ubuntu Multiseat, pois ele contém algumas
modificações necessárias para a correta configuração do multiterminal. Provavelmente você já deve
tê-lo atualizado quando fez a atualização completa do sistema, mas pode certificar-se executando
1
$ sudo apt-get install xserver-xephyr
Em seguida, edite/crie o arquivo de configuração /etc/xdg/multi-seat-xephyr.conf. Você
pode encontrar todas as opções de configuração disponı́veis no arquivo de documentação disponı́vel
em /usr/share/doc/multi-seat-xephyr/multi-seat-xephyr.conf.example. Segue abaixo um
exemplo do arquivo /etc/xdg/multi-seat-xephyr.conf:
4
Não renomeie este arquivo para algo como 72-seat-tn-late.rules. Caso contrário, você poderá excluı́-lo acidentalmente se executar o comando sudo loginctl flush-devices.
10
[default]
2 seat-parent-window=false
3 xephyr-options=-sw-cursor
1
4
[daemon]
host-seat=__sm501-dualhead__
7 host-options=-nolisten tcp -dpms -s 0
5
6
8
[seat-LVDS]
10 output=LVDS
9
11
[seat-VGA]
13 output=VGA
12
O próximo passo é configurar o LightDM para executar o programa multi-seat-xephyr no
lugar do /usr/bin/Xorg quando carregar os terminais secundários. Para isso, adicione as seguintes
entradas ao arquivo de configuração lightdm.conf:
1
2
[Seat:seat-LVDS]
xserver-command=multi-seat-xephyr
3
[Seat:seat-VGA]
5 xserver-command=multi-seat-xephyr
4
Para garantir que o servidor X hospedeiro seja executado automaticamente na inicialização do
sistema, inclua o seguinte comando no arquivo /etc/rc.local, antes da linha exit 0:
1
multi-seat-xephyr --daemon
Por fim, você pode reiniciar o computador para que todas as alterações tenham efeito. Caso
queira aplicá-las imediatamente, execute os seguintes comandos:
1
2
6.4
sudo multi-seat-xephyr --daemon
sudo restart lightdm
Multiterminal com Xorg e o driver de vı́deo nested
Para configurar o multiterminal com o Xorg e o driver nested, você pode começar seguindo o
mesmo roteiro da seção anterior para executar o servidor X hospedeiro a partir do multi-seat-xephyr,
ou seja, crie o arquivo /etc/xdg/multi-seat-xephyr.conf conforme lá mostrado e acrescente o
comando multi-seat-xephyr --daemon ao seu arquivo /etc/rc.local. Para executar os servidores X aninhados, crie/edite o arquivo /etc/X11/xorg.conf.d/90-seat-sm501-dualhead.conf
conforme abaixo.
11
ATENÇÃO!! O modelo abaixo está sujeito a alterações conforme o driver nested venha a ser
atualizado. Este documento será atualizado à medida que novas opções de configuração sejam
implementadas.
Section "Device"
2
Identifier "nested_device"
3
Driver "nested"
4
Option "Display" ":90"
5
MatchSeat "seat-LVDS"
6
MatchSeat "seat-VGA"
7 EndSection
1
8
Section "Screen"
10
Identifier "nested_screen_LVDS"
11
Device "nested_device"
12
DefaultDepth 16
13
Option "Output" "LVDS"
14
MatchSeat "seat-LVDS"
15 EndSection
9
16
Section "Screen"
18
Identifier "nested_screen_VGA"
19
Device "nested_device"
20
DefaultDepth 16
21
Option "Output" "VGA"
22
Option "RightOf" "LVDS"
23
MatchSeat "seat-VGA"
24 EndSection
17
6.5
Problemas comuns
É possı́vel que, ao inicializar o sistema, um ou outro terminal não seja carregado corretamente.
Isso acontece principalmente quando o servidor X hospedeiro não foi executado corretamente ou
quando o gerenciador de login tenta executar o servidor X aninhado antes de o servidor X hospedeiro
estar pronto. Se isso acontecer com você, reinicialize o serviço do LightDM (ou GDM) para que os
terminais voltem ao normal. Para reinicializar o serviço, execute:
1
$ sudo restart lightdm
1
$ sudo restart gdm
ou
12
Para o caso especı́fico do multiterminal com servidores X aninhados, é possı́vel que as telas dos
monitores apresentem-se “invertidas” em relação aos dispositivos de entrada, ou seja, o teclado/mouse
do terminal à esquerda estarem associados ao monitor da direita e vice-versa. Uma solução simples
para corrigir esta inversão é permutar as portas USB dos hubs conectados, ou as saı́das de vı́deo dos
monitores.
A
Automatizando a reinicialiação do sistema (para contornar o problema da “tela listrada”)
O procedimento abaixo é derivado de uma colaboração com André Lúcio Fiamoncini5 , que o
desenvolveu originalmente para a distribuição openSUSE 13.1, e se divide em duas partes, a saber:
A.1
Procedimentos a serem feitos no Linux Educacional 4.0
Inicialize o sistema no Linux Educacional 4.0 uma vez. Faça login normalmente como professor
e crie um arquivo chamado /usr/local/sbin/auto-reboot.sh com o seguinte conteúdo:
#!/bin/sh
timeout=10 # Mude este valor de acordo com a sua preferencia
3 echo "Reiniciando em $timeout segundos..."
4 sleep $timeout
5 reboot
1
2
Salve o arquivo e torne-o executável:
1
sudo chmod +x /usr/local/sbin/auto-reboot.sh
Em seguida, edite o arquivo /etc/kde4/kdm/Xsetup, acrescentando a seguinte linha ao seu final:
1
xterm -e auto-reboot.sh
Por fim, reinicie o computador e volte para o Ubuntu.
A.2
Procedimentos a serem feitos no Ubuntu
No lado do Ubuntu, precisamos configurar o gerenciador de boot, GRUB, para que escolha uma
vez o Linux Educacional na próxima reinicialização do sistema. O primeiro passo é editar o arquivo
/etc/default/grub, editando/acrescentando a seguinte linha:
1
GRUB_DEFAULT=saved
Em seguida, execute o seguinte comando para aplicar a alteração:
5
E-mail para contato: [email protected].
13
1
sudo update-grub
Precisamos agora informar o GRUB para escolher uma vez o outro sistema na próxima inicialização. Isto pode ser feito executando o seguinte comando:
1
$ sudo grub-reboot <NUMERO>
Para descobrir qual valor deve ser utilizado no lugar de <NUMERO> no comando acima, observe a
tela principal do GRUB e conte, de cima para baixo, a posição da linha referente ao Linux Educacional
(a contagem inicia em 0). Por exemplo, se a linha do Linux Educacional estiver na quinta posição,
o comando completo ficaria assim:
1
$ sudo grub-reboot 4
Para garantir que este comando seja executado na inicialização do sistema, insira-o no final do
script /etc/rc.local, desta forma:
grub-reboot 4
2 exit 0
1
Agora basta reiniciar o computador. Se tudo estiver configurado corretamente, ele irá inicializar
no Linux Educacional na próxima vez. Uma vez carregado o Linux Educacional, o sistema irá
reinicializar automaticamente no Ubuntu novamente.
A.3
Desativando a reinicialização automática do Linux Educacional
Um efeito colateral deste procedimento é que o Linux Educacional ficará inacessı́vel por causa
da reinicialização automática. Se, por algum motivo, você precisar de acesso ao Linux Educacional,
precisará antes desativar o reinı́cio automático. Para isso, execute os seguintes comandos no Ubuntu:
1
2
$ sudo mount /dev/sda1 /mnt
$ sudo nano /mnt/etc/kde4/kdm/Xsetup
No editor de textos que será aberto, apague ou comente a seguinte linha:
1
xterm -e auto-reboot.sh &
Em seguida, reinicie o computador.
14

Documentos relacionados