(M)  s i s t e m a   o p e r a c i o n a l   m a g n u x   l i n u x ~/ · documentação · suporte · sobre

  Página seguinte Página anterior Índice

196. Configuração básica (console e libc)

196.1 Problemas com a libc 5

Até meados de 1997 todas as distribuições de Linux usavam a versão 5 da biblioteca libc, desenvolvida a partir de uma versão mais antiga da libc do projeto GNU. Esta biblioteca possuía suporte muito limitado à internacionalização e normalmente nenhum dos catálogos de locais era incluído na distribuição, ficando o inglês como língua padrão.

A versão 6 da libc do Linux baseia-se na versão 2 da libc do projeto GNU. O suporte à internacionalização foi muito melhorado, além de incluir outros atributos que não interessam para os fins deste HOWTO. Se sua distribuição for a Debian versão 2, Red Hat versão 5 ou qualquer outra que use a nova libc, então não há mais nada a fazer além do descrito nas seções seguintes.

Mas se o seu sistema ainda é baseado na libc 5 é preciso instalar a coleção de locais. Não tente copiar a coleção de uma distribuição baseada em libc 6, pois os formatos dos arquivos são incompatíveis. Pegue na página do Portuguese HOWTO o arquivo locales-pt.tgz. Para instalá-lo na distribuição Slackware, basta (como usuário root) usar o comando

    installpkg locales-pt.tgz
e para outras distribuições use o comando
    tar xzf locales-pt.tgz -C /

Isto deve criar dois subdiretórios do /usr/share/locale chamados pt_BR e pt_PT.

196.2 Carregamento de uma fonte de caracteres

O pacote KBD contém dois tipos de fontes com codificação latin-1:

  • as que já possuem uma tabela de mapeamento unicode, carregada automaticamente pelo programa setfont. Estas fontes têm nomes lat1u-*.psf (o ``u'' indica Unicode);
  • as que não possuem tabela de mapeamento. Neste caso é preciso carregar uma com o programa loadunimap. Estas têm nomes lat1-*.psf.

Nas versões mais novas do KBD os arquivos são comprimidos com gzip. É preciso carregar uma fonte que tenha os caractres latinos acentuados no padrão ISO 8859-1 e também os símbolos semigráficos. As fontes de nome iso01.* não possuem esses símbolos. A fonte mais recomendada é a lat1u-16.psf.

As versões mais antigas do pacote KBD mantinham essas fontes no diretório /usr/lib/kbd/consolefonts, que foi trocado depois da versão 0.92 por /usr/share/consolefonts. Dependendo da sua distribuição e do quanto ela esteja atualizada o diretório poderá ser um ou outro.

Slackware

Foi criado o script /etc/rc.d/rc.font, contendo o seguinte:

    #!/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 é totalmente desnecessário
    # com a fonte lat1u-16.psf:
    # loadunimap lat1u

    # Remova o comentário da linha abaixo se estiver usando uma fonte sem
    # tabela de mapeamento de Unicode para tela:
    # loadunimap lat1
Para testá-lo basta executar o comando
    /etc/rc.d/rc.font

Debian

Na distribuição Debian, certifique-se de ter instalado o pacote ``locales'', que pertence ao grupo ``admin''.

Edite o arquivo /etc/kbd/config e coloque uma linha contendo

    CONSOLE_FONT=lat1u-16.psf
esse arquivo é processado pelo script /etc/rc.boot/kbd. Execute-o para ativar a nova fonte sem ter que dar ``reboot''. Lembre-se sempre: Linux não é Windows!

Red Hat

Edite o arquivo /etc/sysconfig/i18n e veja se contém o seguinte:

    LANG=pt_BR
    LINGUAS=pt_BR
    LC_CTYPE=ISO-8859-1
    LC_ALL=pt_BR
    SYSFONT=lat1u-16
    SYSTERM=linux-lat

Execute o programa /sbin/setsysfont para carregar a fonte.

Fui informado pos Roberto Mello que na versão 6 do Red Hat comando setfont não funciona. Deve ser usado, por exemplo, consolechars~-f~lat1u-16.psf.

Conectiva Linux

Se você selecionar a língua correta durante a instalação não há nada mais a fazer. A configuração é feita extatamente como no Red Hat.

S.u.S.E.

Edite o arquivo /etc/rc.config e procure uma linha que começa com ``FONT='' (linha 64, em minha máquina com S.u.S.E. verão 5.6) e coloque

    FONT=lat1u-16.psf

Edite os scripts boot.setup e single contidos no diretório /etc/rc.d. Procure a linha contendo o comando /usr/bin/loadunimap e remova-a ou ponha no seu início um ``#'' para deixá-la como comentário. Veja comentários sobre este comando na seção  Carregamento de uma fonte de caracteres.

Teste da fonte

Experimente algumas teclas como ``,.|!"#$%&/()=?'', etc. e use o comando showfont para mostrar a fonte em uso.

196.3 Carregando um mapa de teclado

Os mapas existentes para diversos tipos de teclados são apresentados mais adiante (veja a seção Ficheiros necessários).

Slackware

Foi criado o script /etc/rc.d/rc.keyboard, contendo o seguinte:

    #!/bin/sh
    #
    # /etc/rc.d/rc.keyboard
    #
    # Seleciona um dos mapas de teclado disponíveis no diretório
    # /usr/lib/kbd/keytables
    #
    loadkeys abnt2
e acrescentei as seguintes linhas no final do /etc/rc.d/rc.S:
    # 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
Deste modo a fonte e o mapa de teclado serão carregados automaticamente durante o boot.

Debian

Certifique-se de ter instalado o pacote kbd e depois faça o seguinte:

  • copie os arquivos com os mapas de teclado fornecidos (veja a seção Ficheiros necessários) para o diretório /usr/share/keytables/;
  • copie o mapa correspondente ao seu teclado para o arquivo /etc/kbd/default.map.gz.
  • rode o script /etc/init.d/keymaps.sh.

Red Hat

Certifique-se de ter instalado o pacote kbd. Copie os arquivos com os mapas de teclado fornecidos (veja a seção Ficheiros necessários) para o diretório /usr/lib/kbd/keytables/ (ou /usr/lib/kbd/keymaps/i386/qwerty/, a pertir do Red Hat 5.2).

Edite o arquivo /etc/sysconfig/keyboard e coloque o nome do mapa a usar na variável KEYTABLE, como por exemplo

    KEYTABLE="abnt2"

Conectiva Linux

O CL já vem com os mapas de teclado para Português. Se você selecionou o teclado correto durante a instalação, não há mais nada a fazer. Caso contrário, edite o arquivo /etc/sysconfig/keyboard e coloque

    KEYTABLE="nome"
Onde ``nome'' é br-abnt2, pt ou us-acentos caso o desenho do seu teclado seja ABNT-2, português ou americano.

S.u.S.E.

Certifique-se de ter instalado o pacote kbd. Copie os arquivos com os mapas de teclado fornecidos (veja a seção Ficheiros necessários) para o diretório /usr/lib/kbd/keytables/.

Descomprima o mapa de teclado adequado, copiando para o arquivo /etc/default.keytab, usando por exemplo um comando como

    zcat /usr/lib/kbd/keytables/pt.map.gz > /etc/default.keytab

Teste do teclado

Experimente pressionar a tecla c-cedilhado (se o teclado não tem esta tecla, digite 'c). Verifique se todas as letras acentuadas, maiúsculas e minúsculas sã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ções foi mal sucedida.

Se ao invés de c-cedilha minúsculo aparecer um maiúsculo é provável que uma tabela de mapeamento Unicode incorreta esteja a ser carregada. Este problema ocorrerá na distribuição S.u.S.E. se não se fizerem as alterações nos scripts do sistema mencionadas anteriormente.

196.4 Verifição de erros

Mas, e se alguns dos caracteres continuarem a não aparecer? Bem, antes de mais nada verifique se a fonte e o mapa de teclado adequados foram carregados. Um caso especial é quando queremos usar uma fonte que não segue a codificação ISO Latin-1 (é o caso da fonte padrão do console do PC). Teríamos então de convencer a tela a mostrar os caracteres certos em cada caso.

Poderíamos recorrer ao comando mapscrn. O arquivo com a tabela de tradução teria no entanto de ser criado por nós, seguindo um processo moroso de tentativa e erro até encontrar o caracter cuja imagem desejávamos. Ou, de uma forma mais fácil, poderíamos usar o comando showfont.

Se usarmos a fonte de caracteres correta, o uso deste último comando será desnecessário. É até recomendável que não se use tal recurso, pois embora ele permita criar uma tabela de caracteres ``personalizada'' em um computador, será difícil que um documento acentuado produzido nessa máquina possa ser lido em outra que não tenha a mesma configuração.


Página seguinte Página anterior Índice