SuporteMultiterminal - UFSC/moodle-provas-livecd-provas GitHub Wiki
Esta funcionalidade consiste em fazer com que um computador possa funcionar como se fossem dois computadores independentes (do ponto de vista do usuário), com dois teclados, dois mouses, dois monitores, duas saídas de som, etc. Este suporte a Multiterminais no LiveCD é provido pelo pacote moodle-multiseat.
Há duas formas populares de se fazer isso utilizando Linux, uma utilizando placas de vídeo independentes para cada monitor e outra utilizando apenas uma placa de vídeo com duas saídas, no LiveCD optou-se por suportar somente Multiterminais que possuam duas placas de vídeo independentes, abaixo segue uma breve descrição de cada método.
Em um computador com duas placas de vídeo independentes pode-se executar dois servidores Xorg independentes e alocar os dispositivos de entrada e saída para cada um deles, isso simplifica o processo de configuração.
NOTA: O projeto Fedora adicionou suporte nativo a multiterminais em sua versão 17 (lançada em 29 de maio de 2012 - systemd-logind replaces ConsoleKit, offering multiseat improvements), esse suporte é plug and play se for utilizado um box USB da empresa Plugable que vem com todos dispositivos de entrada e saída, inclusive saída de vídeo. Mas a configuração também pode ser feita manualmente caso o multiterminal seja feito sem esse box, o comando para isso é o loginctl, mais informações nas páginas de referência. Infelizmente esse recurso não é simples de ser adicionado a versão 12.04 do Ubuntu, pois ele é baseado no systemd, que é o gerenciador de inicialização do Fedora, e o Ubuntu usa o upstart.
Referências
- Simple multiseat setup on Fedora 17"
- The Most Awesome, Least-Advertised Fedora 17 Feature
- Produtos da Plugable
- Plugable DC-125 na Amazon
A configuração de um multiterminal em um computador com apenas 1 placa de vídeo de múltiplas saídas é um processo mais complexo e instável por diversas razões que serão listadas abaixo.
-
Atualmente a forma mais comum de se fazer isso é com o uso do Xephyr, ele é uma parte do Xorg que permite a execução de uma sessão similar ao X (Xephyr), dentro de um servidor X real, assim tem-se um servidor Xorg principal e dentro desse servidor são carregadas 2 sessões independentes do Xephyr, cada uma posicionada nos seus respectivos monitores físicos, dando a impressão que são dois servidores Xorg independentes. Essa era a forma que o projeto multiterminal da UFPR utilizava, porém esse projeto aparentemente não está mais ativo há alguns anos, a maioria das informações no wiki deles só se aplica a versões muito antigas do Debian, Ubuntu e Xorg. O Linux Educacional parece ser o sucessor desse projeto da UFPR, mas a versão LE4, que é baseada no Kubuntu 10.4 usa o software comercial da Userful para ativar o multiterminal.
-
Na próxima versão do Xorg, que será a versão X11R7.8, está prevista a substituição de alguns recursos antigos por novos recursos que estão em desenvolvimento, entre os recursos a serem substituídos está o Xephyr, a nota no TODO do site oficial diz o seguinte: Replace Xephyr, Xvfb, Xnest, Xfake, etc. with Xorg using xf86-video-dummy and xf86-video-nested, isso era previsto para ocorrer em 2013 (Novembro de 2014: Até agora não foi lançada esta versão), portanto é um recurso que será modificado drasticamente em breve.
-
Outro ponto negativo é que o Xephyr parece ser a única forma disponível para ativar multiterminais com apenas uma placa de vídeo com mais de uma saída (aparentemente com maior popularidade entre os anos de 2007 e 2009 pelas pesquisas na internet), porém o Xorg e alguns outros componentes tiveram opções removidas ou substituídas, ou vem em pacotes que foram compilados sem alguma opção (como o Xephyr que vem sem o suporte a kdrive e precisa ser recompilado), então não há quase nenhuma documentação sobre multiterminais com 1 placa de vídeo que funcione completamente out-of-box atualmente e é difícil rastrear onde está o problema quando ocorre alguma falha.
NOTA: Existe um assistente de configuração de Multiterminal com Xephyr chamado Multiseat Wizard Bicefalo, escrito em python + shellscript, porém ele não funcionou muito bem com o Ubuntu 12.04.1, o assistente executou seu trabalho sem problema, porém os scripts instalados não funcionaram como deveriam, o principal problema foi não executar o Xephyr em tela cheia e na resolução certa para cada monitor, fora os seguintes problemas de estabilidade: às vezes só carregava um Xephyr, outras vezes o Xephyr carregava com resolução diferente de antes, às vezes o(s) mouse(s) ou teclado(s) não funcionava(m).
No LiveCD nenhuma das configurações feitas durante seu uso são salvas quando o sistema é desligado, no caso de um computador multiterminal, isso significa que toda vez que o sistema for iniciado, deve-se configurar quais dispositivos de entrada e saída estão associados a qual monitor de vídeo do usuário, pois a princípio não se sabe qual teclado e mouse, por exemplo, estão posicionados na frente de qual monitor. Para resolver isso, foi criado um assistente de configuração, que é executado na inicialização do LiveCD quando a opção de multiterminal é selecionada no menu de inicialização, este assistente inicialmente verifica se o computador realmente atende aos requisitos para a execução de um multiterminal, os requisitos são os seguintes:
- Possuir 2 ou mais placas de vídeo independentes.
- Possuir 2 ou mais teclados.
- Possuir 2 ou mais mouses.