Obra: Multiterminais/Multiterminal com Ruby
um multiterminal com ruby um multiterminal que permite uso de consoles independentes foi primeiro método de se fazer multiterminais desenvolvido ele utiliza um patch no kernel como fazer introdução backstreet ruby um patch para kernel desenvolvido com finalidade de fornecer vários consoles independentes uma das desvantagens que patch específico para um determinado kernel sendo assim ao fazer uma atualização de kernel deve se dispor também de uma versão do patch para mesmo kernel sistema operacional debian sarge outras distribuições de linux também podem ser facilmente utilizadas hardware placas de vídeo placas sis outras placas de vídeo também podem ser utilizadas mas nem todas dispositivos teclado ps mouse ps teclados usb mouses usb instalando driver da placa sis adicione esta linha ao arquivo etc apt sources list deb http www winischhofer net sis debian stable atualize base de dados dos pacotes instale pacote driver sis apt get update apt get install driver sis instalando pacote pré compilado do kernel já com patch ruby faça download do arquivo kernel image ruby_ custom_i deb instale pacote dpkg kernel image ruby_ custom_i deb hotplug instale pacote hotplug apt get update apt get install hotplug substitua os arquivos etc hotplug input agent etc hotplug input rc pelos seguintes input agent input rc crie dois arquivos mouse conf kbd conf esses dois arquivos identificam dispositivos mouses teclados de acordo com seu endereço físico relacionando os um link simbólico no caso dos mouses um vt terminal virtual no caso dos teclados veja exemplos de configuração de cada um deles respectivamente mouse br isa serio input mouse br usb input mouse br usb input mouse br usb input cada linha identifica um dos mouses primeira informação mouse br um link simbólico para mouse que está conectado ao endereço físico isa serio input as demais linhas seguem mesma lógica vt isa serio input vt usb input vt usb input vt usb input cada linha identifica um dos teclados primeira informação vt associa um vt ao teclado conectado ao endereço físico isa serio input as demais linhas seguem mesma lógica observações quando um dispositivo conectado hotplug automaticamente cria respectivo link em dev input endereço físico de cada dispositivo pode ser obtido através do arquivo proc bus input devices dispositivos de entrada antes de proceder verifique se os teclados mouses foram detectados corretamente leia conteúdo do arquivo proc bus input devices que contém informações sobre os dispositivos detectados pelo kernel veja um exemplo deste arquivo daremos destaque para dois campos nome dos dispositivos presente em linhas que começam com name endereço físico mostrado em linha que começan com phys bus vendor product version ab name at translated set keyboard phys isa serio input handlers kbd event ev key ffffdf ffefffff ffffffff fffffffe msc led bus vendor product version name imps generic wheel mouse phys isa serio input handlers mouse event ev key rel bus vendor product version name ch
wheel mouse phys isa serio input handlers mouse event ev key rel bus vendor product version name chesen usb keyboard phys usb input handlers kbd event ev key ff ff febeffdf ffefffff ffffffff fffffffe led bus vendor product version name chesen usb keyboard phys usb input handlers kbd event ev key bus vendor fc product version name usb opticalwheel mouse phys usb input handlers mouse event ev key rel note que arquivo parece mostrar presença de três teclados quando na verdade existem apenas dois razão para dispositivo adicional que muitos teclados usb incluem teclas especiais como de acesso internet as quais são detectadas pelo kernel como um teclado secundário teclados secundários tem endereço físico terminado por input estamos interessados somente no primeiro teclado cujo endereço físico termina com input sendo assim seção referente ao teclado secundário com endereço físico usb input será ignorada configuração do servidor xfree deve se realizar configuração de dois arquivos etc xf config etc xf config probe durante inicialização do multiterminal arquivo etc xf config probe utilizado antes do etc xf config porém para um melhor entendimento geraremos primeiro arquivo etc xf config partir deste geraremos segundo arquivo etc xf config probe xf config essa configuração aquela que será utilizada durante funcionamento do multiterminal neste arquivo devem ser criadas seções adicionais de acordo com número de terminais que estamos configurando deve ser criada uma seção para cada mouse placa de vídeo monitor screen layout sendo assim se estivermos interessados em configurar um multiterminal com terminais teremos seções de mouses de placas de vídeo assim por diante atenção para teclado deve ser criado apenas uma seção os valores sugeridos para identifier em cada seção não rígido podendo ser alterado desde que seja mantida coerência com restante da configuração veja um exemplo de arquivo onde deve ser adicionada cada seção seção mouse section inputdevice identifier mouse driver mouse option corepointer option device dev input ident_mouse endsection na opção device ident_mouse mesmo link simbólico descrito para cada mouse no arquivo mouse conf por exemplo mouse br mouse br mouse br mouse br seção placa vídeo sis section device identifier card driver sis busid pci option noint yes option no endsection opção busid identifica qual endereço da placa de vídeo que está sendo utilizada para obter busid de suas placas digite lspci grep vga tome cuidado com os valores pois endereço fornecido por lspci eh em hexadecimal enquando que espera um valor em decimal para conversão use echo noint desabilita modulo que usa chamada int da bios das placas de vídeo essa chamada responsável por inicializar as placas de vídeo será usada somente no arquivo xfree config probe durante execução probeonly do servidor quando utilizada opção probeonly servidor apenas faz um teste dos dispositivos termina sua execução para placas de vídeo sis utilizada para evitar problemas em monitores lcd
tivos termina sua execução para placas de vídeo sis utilizada para evitar problemas em monitores lcd enquanto máquina alterna entre terminais virtuais ou então quando esta finaliza servidor seção monitores section monitor identifier monitor horizsync vertrefresh option dpms endsection screen section screen identifier screen device card monitor monitor defaultdepth subsection display depth modes endsubsection subsection display depth modes endsubsection endsection layout section serverlayout identifier screen screen inputdevice kbd inputdevice mouse option isolatedevice pci endsection obs para todos os layouts deve se usar mesmo teclado neste exemplo os demais layouts teriam ocorrência inputdevice kbd valor da opção isolatedevice endereço físico da placa de vídeo utilizada pela screen deste mesmo layout por exemplo layout utiliza screen que por sua vez está relacionada card de endereço físico xf config probe se multiterminal fosse inicializado diretamente utilizando arquivo xf config não obteríamos sucesso isso acontece pelo fato das placas de vídeo secundárias não terem sido inicializadas corretamente quando opção noint está setada como yes como eh caso do arquivo xf config esta inicialização inibida dessa forma arquivo xf config probe fornece uma configuração para que servidor possa ser inicializado em primeira instância com opção noint no logo após poderá usar com sucesso arquivo xf config veja que modificar para gerar arquivo xf config probe nas seções das placas de vídeo use opção option noint no quanto aos layouts declarar apenas um como mostrado abaixo também sem utilizar opção option isolatedevice pci section serverlayout identifier screen screen screen screen leftof screen screen screen below screen screen screen leftof screen inputdevice kbd inputdevice mouse endsection disposição das telas apresentadas no layout simplesmente ilustrativa podendo sofrer váriações xfree multiterminal arquivo xfree multiterminal eh responsável pela inicialização probeonly conforme citado na na seção do arquivo xfree config do servidor utilizando arquivo de configuração xfree config probe garantindo uma correta inicialização das placas de vídeo logo após servidor será executado utilizando arquivo de configuração xfree config salve arquivo xfree multiterminal em etc init linke da seguinte forma update rc xfree multiterminal start criando um link xfree multiterminal em etc rcs para arquivo etc init xfree multiterminal obs comando update rc existe somente nas distribuições baseadas no debian crie manualmente um link com nome xfree multiterminal configuração do gdm edite arquivo etc gdm gdm conf na seção servers inserindo seguinte servers xserver xserver xserver xserver server xserver name standard server command usr bin audit layout vt flexible true server xserver name standard server command usr bin audit layout vt flexible true server xserver name standard server command usr bin audit layout vt flexible true server xserver name standard server command usr bin
er command usr bin audit layout vt flexible true server xserver name standard server command usr bin audit layout vt flexible true repare que os vt utilizados no arquivo gdm conf podem parecer diferentes daqueles criados no arquivo kdb conf porém na verdade são os mesmos isso acontece pelo fato do gdm se comunicar diretamente com kernel ao invés de utilizar interface proc configuração grub lilo finalmente necessário passar um parâmetro para kernel indicando quantos vt teclados virtuais adicionais devem ser criados grub edit arquivo boot grub menu lst kernel boot vmlinuz ruby root dev hd xy ro dumbcon onde identificam disco rígido sua partição respectivamente valor de indica número de teclados adicionais que devem ser criados para um fourhead por exemplo suficiente lilo no arquivo de configuração do lilo etc lilo conf insira seguinte append dumbcon valor de indica número de teclados adicionais que devem ser criados para um fourhead por exemplo suficiente verificando problemas problemas na inicialização do multiterminal podem ser analizados em var log xorg log cada servidor criará seu próprio arquivo de log veja também