Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > 965e33040dd61030a94f0eb89877aee8 > files > 4715

howto-html-en-20080722-2mdv2010.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>Linux Portuguese-HOWTO: Configura&ccedil;&atilde;o do console (modo texto)</TITLE>
 <LINK HREF="Portuguese-HOWTO-4.html" REL=next>
 <LINK HREF="Portuguese-HOWTO-2.html" REL=previous>
 <LINK HREF="Portuguese-HOWTO.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="Portuguese-HOWTO-4.html">Next</A>
<A HREF="Portuguese-HOWTO-2.html">Previous</A>
<A HREF="Portuguese-HOWTO.html#toc3">Contents</A>
<HR>
<H2><A NAME="CONF-CONS"></A> <A NAME="s3">3. Configura&ccedil;&atilde;o do console (modo texto)</A></H2>

<P>O documento de refer&ecirc;ncia sobre a configura&ccedil;&atilde;o do console do Linux &eacute; o
<A HREF="http://metalab.unc.edu/pub/Linux/docs/HOWTO/Keyboard-and-Console-HOWTO">Keyboard and Console HOWTO</A>, de Andries Brouwer, que pode ser
encontrado nos reposit&oacute;rios do LDP. Conforme l&aacute; descrito, a configura&ccedil;&atilde;o da
fonte de caracteres e mapa de teclado &eacute; feita usando o pacote KBD, encontrado
em todas as distribui&ccedil;&otilde;es de Linux. 
<P>
<H2><A NAME="ss3.1">3.1 Mapas de teclado</A>
</H2>

<P>Cada tecla do PC possui um c&oacute;digo num&eacute;rico. Ao pressionarmos uma delas o
processador controlador do teclado envia ao computador esse c&oacute;digo <EM>de
varredura</EM>, tamb&eacute;m conhecido como <EM>scancode</EM>, junto com um sinal de que a
tecla foi pressionada ou solta. As seq&uuml;&ecirc;ncias de eventos s&atilde;o ent&atilde;o
processadas pelo <EM>driver</EM> de teclado e armazenadas em uma fila de
caracteres que &eacute; lida pelas aplica&ccedil;&otilde;es por meio da chamada de fun&ccedil;&otilde;es do
sistema operativo. 
<P>Um mapa de teclado &eacute; um arquivo de texto que estabelace as correspond&ecirc;ncias
entre o <EM>scancode</EM> de tecla e o caracter (ou seq&uuml;&ecirc;ncia de caracteres)
a gerar quando ela for pressionada, chamado <EM>keycode</EM>. Por exemplo:
<PRE>
    # atribui&ccedil;&atilde;o da tecla '-' do teclado num&eacute;rico &agrave; tecla com c&oacute;digo 74
    keycode  74 = KP_Subtract     

    # atribui&ccedil;&atilde;o da tecla '4' do teclado num&eacute;rico &agrave; tecla com c&oacute;digo 75
    keycode  75 = KP_4            

    # etc...

    keycode  76 = KP_5            # tecla 5
    keycode  77 = KP_6            # tecla 6
    keycode  78 = KP_Add          # soma
    keycode  79 = KP_1            # tecla 1
    keycode  80 = KP_2            # tecla 2
</PRE>
<P>Al&eacute;m das teclas alfab&eacute;ticas, num&eacute;ricas e de s&iacute;mbolos, existem outras
chamadas <EM>modificadoras</EM> que permitem gerar c&oacute;digos que n&atilde;o
correspondem a nenhum sinal gr&aacute;fico: <EM>Shift Control
Alt</EM> e <EM>Meta</EM>. Esta &uacute;ltima normalmente n&atilde;o &eacute; encontrada em
teclados de PCs, apenas em esta&ccedil;&otilde;es de trabalho de fabricantes como Sun,
SGI, HP e Digital (eles n&atilde;o gostam de ser chamados de ``DEC''). O editor de
texto Emacs usa muito a tecla <EM>Meta</EM>.
<P>O arquivo de mapa permite tamb&eacute;m especificar teclas especiais chamadas
``teclas mortas'' (<EM>deadkeys</EM>). Quando pressionadas elas n&atilde;o resultam no
aparecimento de um caracter na tela, limitando-se a alterar o comportamento da
tecla pressionada a seguir para que, por exemplo, ao se digitar um
<B>~</B> seguida de um <B>a</B>, seja gerado um `&atilde;'.
<P>
<H2><A NAME="ss3.2">3.2 Mapas de tradu&ccedil;&atilde;o de tela</A>
</H2>

<P>Um mapa de tradu&ccedil;&atilde;o de tela permite especificar qual o caracter X a ser
exibido na tela, quando um programa deseja exibir um caracter Y.  Desta
forma, poder&iacute;amos fazer com que ao escrever o caracter com o c&oacute;digo do
<CODE>c-cedilhado</CODE> na tela, fosse na realidade exibido um outro caracter de
c&oacute;digo diferente mas cuja <EM>imagem</EM> na nossa fonte de caracteres
correspondesse &agrave; imagem de um <CODE>c-cedilhado</CODE>.
<P>Este mapeamento &eacute; necess&aacute;rio apenas quando queremos usar uma fonte cujos
caracteres n&atilde;o possuem c&oacute;digos diretamente correspondentes aos do conjunto
usado no mapa de teclado.
<P>
<P>
<H2><A NAME="ss3.3">3.3 Comandos do pacote KBD</A>
</H2>

<P>
<DL>
<DT><B>Loadkeys</B><DD><P>Permite carregar um mapa de teclado. Por exemplo, o comando 
a seguir carrega o mapa armazenado no arquivo <CODE>portugal.map</CODE>.
<PRE>
    loadkeys /usr/lib/kbd/keytables/portugal.map
</PRE>
<DT><B>Setfont</B><DD><P>Permite o carregamento de uma fonte de caracteres de tela, possibilitando a
altera&ccedil;&atilde;o das fontes utilizadas em modo de texto. O comando a seguir, por
exemplo, ir&aacute; carregar uma fonte com o conjunto Latin-1: 
<PRE>
    setfont lat1u-16.psf
</PRE>
<DT><B>Showfont</B><DD><P>mostra todos os caracteres existentes na fonte que est&aacute; atualmente em uso
no console. O X tamb&eacute;m tem um comanto chamado showfont, que serve para
mostrar as caracter&iacute;sticas de uma determinada fonte, mas n&atilde;o os caracteres
em si. Para esta &uacute;ltima finalidade se usa o comando <EM>xfd</EM>. Se o
programa showfont do pacote KBD for invocado em um emulador de terminal X,
como <EM>xterm</EM>, ele gerar&aacute; um erro ``GIO_SCRNMAP: Invalid argument'', mas
n&atilde;o provocar&aacute; nenhum dano.
<DT><B>Mapscr</B><DD><P>Permite carregar um mapa de tradu&ccedil;&atilde;o de tela. Suponhamos que exista o arquivo
<CODE>/etc/portugal.trad</CODE>. Se executarmos o comando
<PRE>
    mapscrn /etc/portugal.trad
</PRE>

ent&atilde;o a partir deste momento as tradu&ccedil;&otilde;es l&aacute; definidas ser&atilde;o usadas.
<DT><B>Loadunimap</B><DD><P>Carrega um mapa de tradu&ccedil;&atilde;o de Unicode para a fonte de tela. O mapa padr&atilde;o,
chamado ``def.uni'' considera que estamos usando a fonte normal do IBM-PC.
Este comando <B>n&atilde;o</B> &eacute; necess&aacute;rio quando usamos uma fonte com caracteres
definidos no padr&atilde;o Unicode, pois o programa setfont carrega
automaticamente a tabela de mapeamento adequada. O comando a seguir
carregar&aacute; o mapa de tradu&ccedil;&atilde;o para as fontes latin-1:
<PRE>
    loadunimap lat1
</PRE>
</DL>
<P>
<P>
<H2><A NAME="SEC:CARFONTE"></A> <A NAME="ss3.4">3.4 Carregamento de uma fonte de caracteres</A>
</H2>

<P>O pacote KBD cont&eacute;m dois tipos de fontes com codifica&ccedil;&atilde;o latin-1:
<UL>
<LI>as que j&aacute; possuem uma tabela de mapeamento unicode, carregada
automaticamente pelo programa <CODE>setfont</CODE>. Estas fontes t&ecirc;m nomes
<CODE>lat1u-*.psf</CODE>;</LI>
<LI>as que n&atilde;o possuem tabela de mapeamento. Neste caso &eacute; preciso carregar
uma com o programa <CODE>loadunimap</CODE>. Estas t&ecirc;m nomes <CODE>lat1-*.psf</CODE>
(o ``u'' indica Unicode).</LI>
</UL>
<P>Nas vers&otilde;es mais novas do KBD os arquivos s&atilde;o comprimidos com <CODE>gzip</CODE>.  &Eacute;
preciso carregar uma fonte que tenha os caractres latinos acentuados no padr&atilde;o
ISO 8859-1 e <EM>tamb&eacute;m</EM> os s&iacute;mbolos semigr&aacute;ficos. As fontes de nome
<CODE>iso01.*</CODE> n&atilde;o possuem esses s&iacute;mbolos. A fonte mais recomendada &eacute; a
<CODE>lat1u-16.psf</CODE>.
<P>As vers&otilde;es mais antigas do pacote KBD mantinham essas fontes no diret&oacute;rio
<CODE>/usr/lib/kbd/consolefonts</CODE>, que foi trocado depois da vers&atilde;o 0.92 por
<CODE>/usr/share/consolefonts</CODE>. Dependendo da sua distribui&ccedil;&atilde;o e do quanto
ela esteja atualizada o diret&oacute;rio poder&aacute; ser um ou outro.
<P>
<H3>Slackware</H3>

<P>Foi criado o script <CODE>/etc/rc.d/rc.font</CODE>, contendo o seguinte: 
<P>
<PRE>
    #!/bin/sh
    #
    # /etc/rc.d/rc.font
    #
    # Seleciona uma das fontes de caracteres disponiveis em
    # /usr/lib/kbd/consolefonts.
    #
    setfont lat1u-16.psf

    # O comando a seguir &eacute; totalmente desnecess&aacute;rio
    # com a fonte lat1u-16.psf.
    # loadunimap lat1u

    # Remova o coment&aacute;rio da linha abaixo se estiver usando uma fonte sem
    # tabela de mapeamento de Unicode para tela:
    # loadunimap lat1
</PRE>
<P>
<H3>Debian</H3>

<P>Edite o arquivo <CODE>/etc/kbd/config</CODE> e coloque uma linha contendo
<PRE>
    CONSOLE_FONT=lat1u-16.psf
</PRE>

esse arquivo &eacute; processado pelo script <CODE>/etc/rc.boot/kbd</CODE>. Execute-o
para ativar a nova fonte sem ter que dar ``reboot''. Lembre-se sempre: Linux
<B>n&atilde;o</B> &eacute; Windows!
<P>
<H3>Red Hat</H3>

<P>Edite o arquivo <CODE>/etc/sysconfig/i18n</CODE> e veja se cont&eacute;m o seguinte:
<PRE>
    LANG=pt_BR
    LINGUAS=pt_BR
    LC_CTYPE=ISO-8859-1
    LC_ALL=pt_BR
    SYSFONT=lat1u-16
    SYSTERM=linux-lat
</PRE>
<P>
<H3>Conectiva Red Hat Linux</H3>

<P>Se voc&ecirc; selecionar a l&iacute;ngua correta durante a instala&ccedil;&atilde;o n&atilde;o h&aacute; nada mais a
fazer. A configura&ccedil;&atilde;o &eacute; feita extatamente como do Red Hat.
<P>
<H3>S.u.S.E.</H3>

<P>Edite o arquivo <CODE>/etc/rc.config</CODE> e procure uma linha que come&ccedil;a com
``FONT='' (linha 64, em minha m&aacute;quina com S.u.S.E. ver&atilde;o 5.6) e coloque
<PRE>
    FONT=lat1u-16.psf
</PRE>
<P>Edite os scripts <CODE>boot.setup</CODE> e <CODE>single</CODE> contidos no diret&oacute;rio
<CODE>/etc/rc.d</CODE>. Procure a linha contendo o comando
<CODE>/usr/bin/loadunimap</CODE> e remova-a ou ponha no seu in&iacute;cio um ``#''
para deix&aacute;-la como coment&aacute;rio. Veja coment&aacute;rios sobre este comando na
se&ccedil;&atilde;o&nbsp;
<A HREF="#SEC:CARFONTE">Carregamento de uma fonte de caracteres</A>.
<P>
<H3>Testando a fonte</H3>

<P>Experimente algumas teclas como ``,.|!"#$%&amp;/()=?'',
etc. e use o comando <CODE>showfont</CODE> para mostrar a fonte em uso.
<P>
<H2><A NAME="ss3.5">3.5 Carregando um mapa de teclado</A>
</H2>

<P>A seguir &eacute; necess&aacute;rio carregar o mapa de teclado adequado. At&eacute; a vers&atilde;o 0.92
do pacote KBD esses mapas ficavam no diret&oacute;rio <CODE>/usr/lib/kbd/keytables</CODE>
passando mais tarde para <CODE>/usr/share/keytables</CODE>.  Dependendo da
distribui&ccedil;&atilde;o voc&ecirc; ter&aacute; um diret&oacute;rio ou outro. Os mapas para diversos tipos de
teclados s&atilde;o apresentados mais adiante. 
<P>
<H3>Slackware.</H3>

<P>Foi criado o script <CODE>/etc/rc.d/rc.keyboard</CODE>, contendo o seguinte: 
<PRE>
    #!/bin/sh
    #
    # /etc/rc.d/rc.keyboard
    #
    # Seleciona um dos mapas de teclado dispon&iacute;veis no diret&oacute;rio
    # /usr/lib/kbd/keytables
    #
    loadkeys abnt2
</PRE>

e acrescentei as seguintes linhas ao <CODE>/etc/rc.d/rc.S</CODE>,
imediatamente antes do tratamento do <CODE>/etc/rc.d/rc.keyboard</CODE>: 
<PRE>
    # Carrega uma fonte de caracteres se existe um script rc.font.
    if [ -x /etc/rc.d/rc.font ]; then
      /etc/rc.d/rc.font start
    fi

    # Carrega um mapa de teclado se existe um script rc.keyboard.
    if [ -x /etc/rc.d/rc.keyboard ]; then
      /etc/rc.d/rc.keyboard start
    fi
</PRE>
<P>
<H3>Debian.</H3>

<P>Certifique-se de ter instalado o pacote <EM>kbd</EM> e depois fa&ccedil;a o seguinte:
<UL>
<LI>copie os arquivos com os mapas de teclado fornecidos (veja a se&ccedil;&atilde;o 
<A HREF="Portuguese-HOWTO-7.html#SEC:FICHEIROS">Ficheiros necess&aacute;rios</A>) para o diret&oacute;rio
<CODE>/usr/share/keytables/</CODE>. N&atilde;o &eacute; necess&aacute;rio descomprimi-los;</LI>
<LI>copie o mapa correspondente ao seu teclado para o arquivo
<CODE>/etc/kbd/default.map.gz</CODE>.</LI>
<LI>rode o script <CODE>/etc/init.d/keymaps.sh</CODE>.</LI>
</UL>
<P>
<H3>Red Hat.</H3>

<P>Certifique-se de ter instalado o pacote <EM>kbd</EM>. Copie os arquivos com os
mapas de teclado fornecidos (veja a se&ccedil;&atilde;o 
<A HREF="Portuguese-HOWTO-7.html#SEC:FICHEIROS">Ficheiros necess&aacute;rios</A>) para o diret&oacute;rio
<CODE>/usr/lib/kbd/keytables/</CODE> (ou
<CODE>/usr/lib/kbd/keymaps/i386/qwerty/</CODE>, a pertir do Red Hat 5.2). N&atilde;o
&eacute; necess&aacute;rio descomprimi-los.
<P>Edite o arquivo /etc/sysconfig/keyboard e coloque o nome do mapa a usar na
vari&aacute;vel KEYTABLE, como por exemplo
<PRE>
    KEYTABLE="abnt2"
</PRE>
<P>
<H3>Conectiva Red Hat Linux.</H3>

<P>O CRHL j&aacute; vem com os mapas de teclado para Portugu&ecirc;s. Se voc&ecirc; selecionou o
teclado correto durante a instala&ccedil;&atilde;o, n&atilde;o h&aacute; mais nada a fazer. Caso
contr&aacute;rio, edite o arquivo <CODE>/etc/sysconfig/keyboard</CODE> e coloque
<PRE>
    KEYTABLE="nome"
</PRE>

Onde ``nome'' &eacute; <EM>br-abnt2</EM>, <EM>pt</EM> ou <EM>us-acentos</EM> caso o desenho do
seu teclado seja ABNT-2, portugu&ecirc;s ou americano.
<P>
<P>
<H3>S.u.S.E..</H3>

<P>Certifique-se de ter instalado o pacote <EM>kbd</EM>. Copie os arquivos com os
mapas de teclado fornecidos (veja a se&ccedil;&atilde;o 
<A HREF="Portuguese-HOWTO-7.html#SEC:FICHEIROS">Ficheiros necess&aacute;rios</A>) para o diret&oacute;rio
<CODE>/usr/lib/kbd/keytables/</CODE>. N&atilde;o &eacute; necess&aacute;rio descomprimi-los.
<P>Descomprima o mapa de teclado adequado, copiando para o arquivo
<CODE>/etc/default.keytab</CODE>, usando por exemplo um comando como
<PRE>
    zcat /usr/lib/kbd/keytables/pt.map.gz &gt; /etc/default.keytab
</PRE>
<P>
<H3>Testando o teclado</H3>

<P>Experimente pressionar a tecla <B>c-cedilhado</B> (se o teclado n&atilde;o tem esta
tecla, digite <CODE>'c</CODE>). Verifique se todas as letras acentuadas, mai&uacute;sculas e
min&uacute;sculas s&atilde;o geradas corretamente e aparecem na tela. Se aparecer algum
caracter estranho verifique se carregou o mapa de teclado e a fonte de
caracteres corretos, pois provavelmente uma dessas opera&ccedil;&otilde;es foi mal sucedida.
<P>Se ao inv&eacute;s de c-cedilha min&uacute;sculo aparecer um mai&uacute;sculo &eacute; prov&aacute;vel que uma
tabela de mapeamento Unicode incorreta esteja a ser carregada. Este problema
ocorrer&aacute; na distribui&ccedil;&atilde;o S.u.S.E. se n&atilde;o se fizerem as altera&ccedil;&otilde;es nos scripts
do sistema mencionadas anteriormente.
<H2><A NAME="ss3.6">3.6 Verificando erros</A>
</H2>

<P>Mas, e se alguns dos caracteres continuarem a n&atilde;o aparecer? Bem, antes de mais
nada verifique se a fonte e o mapa de teclado adequados foram carregados. Um
caso especial &eacute; quando queremos usar uma fonte que n&atilde;o segue a codifica&ccedil;&atilde;o ISO
Latin-1 (&eacute; o caso da fonte padr&atilde;o do console do PC). Ter&iacute;amos ent&atilde;o de
<EM>convencer</EM> a tela a mostrar os caracteres certos em cada caso.
<P>Poder&iacute;amos recorrer ao comando <EM>mapscrn</EM>.  O arquivo com a tabela de
tradu&ccedil;&atilde;o teria no entanto de ser criado por n&oacute;s, seguindo um processo moroso
de tentativa e erro at&eacute; encontrar o caracter cuja imagem desej&aacute;vamos. Ou, de
uma forma mais f&aacute;cil, poder&iacute;amos usar o comando <EM>showfont</EM>. 
<P>Se usarmos a fonte de caracteres correta, o uso deste &uacute;ltimo comando ser&aacute;
desnecess&aacute;rio. &Eacute; at&eacute; recomend&aacute;vel que n&atilde;o se use tal recurso, pois embora ele
permita criar uma tabela de caracteres ``personalizada'' em um computador,
ser&aacute; dif&iacute;cil que um documento acentuado produzido nessa m&aacute;quina possa ser lido
em outra que n&atilde;o tenha a mesma configura&ccedil;&atilde;o. 
<P>
<HR>
<A HREF="Portuguese-HOWTO-4.html">Next</A>
<A HREF="Portuguese-HOWTO-2.html">Previous</A>
<A HREF="Portuguese-HOWTO.html#toc3">Contents</A>
</BODY>
</HTML>