Arquivos de Configuração - Parte II
Por: André Souza ( 20/06/2001 )

Introdução

Como dito no artigo anterior, o GNU/Linux separa um arquivo de configuração para cada tarefa do sistema. Esta semana estaremos continuando a ver mais alguns destes arquivos, mostrando como configurar o LILO (para carregar mais de um sistema), profile, hosts, hostnames e isapnp.conf (como detectar dispositivos ISA plug and play).

Começando pelos mais simples vejamos como configurar o nome de seu computador na rede (hostname) e os computadores que o seu pode ver na rede.

Hostname e Hosts

Para alterar o nome de seu computador na rede é muito simples. Basta colocá-lo no arquivo hostname que se localiza no diretório /etc. Depois disto é preciso alterar também o arquivo hosts que se encontra no diretório /etc também.

Vejamos um exemplo do hosts:

$ cat /etc/hosts
    127.0.0.1 localhost localhost

Este é o mais simples para computdores sem rede, e é como vêm os GNU/Linux por default. O nome do computador neste caso é locahost. Para mudar o nome basta alterar o primeiro "locahost". Se eu quiser chamar de "olinux", por exemplo, ficaria assim:

127.0.0.1 olinux localhost

Agora, para computadores em rede, a primeira opção (127.0.0.1) indica o IP do mesmo. Veja um exemplo de uma rede comfigurada usando IP Masquerade:

$ cat /etc/hosts
    123.456.78.90 olinux olinux
    127.0.0.1 localhost
    10.0.0.2 olinux_introducao
    10.0.0.3 olinux_programacao
    10.0.0.4 olinux_programas
    10.0.0.5 olinux_jogos
    10.0.0.6 olinux_seguranca

Ou seja, "olinux" sabe da existência de "olinux_introducao", "olinux_programacao", "olinux_programas", "olinux_jogos" e "olinux_seguranca" (juntamente com seus respectivos IPs).



Profile

O arquivo profile localiza-se no diretório /etc. Sua função é executar comandos de shell que valem para todos os usuários do sistema na inicialização do mesmo. Na maioria das vezes utilizamos este arquivo para preparar a variável PATH (que indica onde o sistema deve procurar os arquivos executáveis) e algumas outras variáveis de ambiente.

Vejam um exemplo do /etc/profile:

asouza@giga:~$ cat /etc/profile
    #/etc/profile: system-wide .profile file for the Bourne shell
(sh(1))
    #and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
    
    PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"

    if [ "$BASH" ]; then
     PS1='\u@\h:\w\$ '
    else
     if [ "`id -u`" -eq 0 ]; then
     PS1='# '
     else
     PS1='$ '
     fi
    fi
    
    LD_LIBRARY_PATH=/usr/X11R6/lib:$LD_LIBRARY_PATH
    
    export PATH PS1 LD_LIBRARY_PATH
    
    umask 022

Na primeira linha é definido o PATH . Depois vêm comandos de shell. A seguir a variável LD_LIBRARY_PATH é definida. Então, exporta-se (faz-se valer para o sistema) as definições das variáveis PATH e LD_LIBRARY_PATH . Por fim, mais um comando de shell.

Você pode adicionar o que quiser a este arquivo (como root, claro), com cautela, pois pode-se causar danos ao sistema. Coloque apenas o essencial para todos, para cada usuário ainda existe outra opção.

Para quem usa o shell BASH , pode-se personalizar definições, como no profile, no arquivo .bash_profile em seu HOME. Por exemplo, veja como configurei no meu computador:

$ cat /home/asouza/.bash_profile
    #~/.bash_profile: executed by bash(1) for login shells.
    #export PS1='\h:\w\$ '
    #umask 002

    #export LANG=pt_BR
   
    export JAZZ=/usr/local/jazz
    
    #Ajeita volume automaticamente
    aumix -L
    
    #WindowMaker
    alias wm='~/exec/roda wmaker; startx'
    #E
    alias enl='~/exec/roda enl; startx'
    #kde
    alias kde='~/exec/roda kde; startx'
    #Sawmill
    alias sm='~/exec/roda sm; startx'
    alias bye='clear;logout'
    #alias midi='playmidi -e $1'
    alias midi='timidity $1'
    #Monta,/Desmonta disquete
    alias fd='if grep -c fd0 /etc/mtab
    then umount /dev/fd0
    else mount /dev/fd0
    fi'
    # Monta/ Desmonta CDROM
    alias cdr='if grep -c hdb /etc/mtab
    then umount /dev/hdb
    else mount /dev/hdb
    fi'


IsaPnp

Para configurar dispositivos ISA que são Plug and Play, utilizamos o pnpdump como root. Fazendo:

#pnpdump >/etc/isapnp.conf

Criamos o arquivo isapnp.conf que fica no diretório /etc.

Vemos que ele encontrou um modem ISA Plug n Play:

#ANSI string -->Rockwell V.34 Plug & Play Modem<--

Cujo nome é "Rockwell V.34 Plug & Play Modem".

Para configurá-lo, tiramos os símbolos # (jogo da velha) da frente das linhas que desejamos (descomaentando a linha). Por exemplo, poderiamos deixá-lo na porta 0x03f8 se descomentarmos a linha 49:

(IO 0 (SIZE 8) (BASE 0x03f8))

Podemos também deixá-lo utilizar a IRQ 4, decomentando a linha 52:

(INT 0 (IRQ 4 (MODE +L)))

Na verdade, podemos escolher quaisquer duas combinações demonstradas neste arquivo. Ainda neste isapnp.conf, vemos outro dispositivo ISA Plug and Play. Trata-se de uma placa de som. Veja na linha 151:

#ANSI string -->ESS ES1869 Plug and Play AudioDrive<--

Procedemos da mesma maneira que o modem para escolher porta, IRQ e DMA desta placa. Cuidado, pois não pode-se escolher mesma porta ou IRQ pois irá dar conflito.

Um meio fácil de garantir que não haverá conflito, é deixar o pnpdump configurar tudo para você na hora da criação do isapnp.conf. Basta executar:

#pnpdump -c > /etc/isapnp.conf

A opção -c descomenta as linhas necessária para que não haja conflito.

Uma boa opção é comentar (com #) a linha que contém o READPORT, pois assim, o pnpdump verificará em todas as portas procurando sua placa na inicialização do sistema (se deixar o READPORT ele pode não encontrar).

Depois de tudo configurado, basta rodar o isapnp:

#isapnp /etc/isapnp.conf

Pronto, ele mostrará as portas, IRQs e DMAs habilitados. Agora, os dispositivos ISA PNP podem ser configurados como se não fossem um. Ou seja, no caso do modem utilizaria-se o setserial para configurá-lo na porta e IRQ determinados. Já com a placa de som, basta compilar o módulo da mesma (nesse caso seria SoundBlaster, pois é compatível) e na hora de carregar este módulo, dizer base (porta), IRQ e DMA.



LILO

O LILO (Linux Loader) é o gerenciador de boot mais famoso do GNU/Linux. Com ele podemos definir que sistemas podem ser inicializados no boot do computador.

Seu arquivo de configuração é o lilo.conf e este localiza-se no diretório /etc. Vejamos um exemplo simples de um computador recém instalado:

$ cat /etc/lilo.conf
    boot=/dev/hda
    root=/dev/hda2
    install=/boot/boot.b
    map=/boot/map
    vga=normal
    delay=100
    prompt
    image=/boot/vmlinuz-2.2.14
     label=Linux
     read-only

A opção boot diz qual o device que será dado boot (normalmente o primeiro HD master, justamente /dev/hda).

A opção root diz qual o a partição é a raiz ( / ) do sistema (neste caso /dev/hda2).

As 3 seguintes não precisa-se alterar. A opção image diz qual o kernel (e sua localização) deve-se inicializar.

A opção delay faz demorar tantos décimos de segundo (neste caso 100) antes de inicilizar o primeiro sistema definido no lilo.conf. Utilizado com a opção prompt , que faz o LILO esperar uma entrada do teclado, pode-se fazer com que o LILO espere tantos décimos de segundo para que aconteça uma entrada do teclado antes de iniciar o primeiro sistema na lista do lilo.conf (neste caso só tem o "Linux", veja mais adiante).

A opção label define um rótulo para identificar o kernel definido na última opção image.

Neste exemplo, o label "Linux" está vinculado ao kernel vmlinuz-2.2.14 que localiza-se em /boot. Na hora do boot,será apresentado:

LILO boot:

Isto deve-se à opção prompt que espera uma entrada durante 100 décimos de segundo, definido na opção delay . Depois de 100 décimos de segundo ele inicializará o primeiro (e único) da lista: "Linux".

Agora, colocaremos um kernel novo, compilado com make bzlilo como opção e também a partição DOS/WIndows para que eu tenha a opção de entrar neste na inicialização do computador:

boot=/dev/hda
    root=/dev/hda2
    install=/boot/boot.b
    map=/boot/map
    vga=normal
    delay=100
    prompt
    image=/boot/vmlinuz-2.2.14
     label=Linux-old
     read-only
    image=/vmlinuz
     label=Linux
     read-only
    other=/dev/hda3
     label=DOS
     table=/dev/hda

Ou seja, criei duas opções de kernel: "Linux" e "Linux-old". O "Linux" carregará o vmlinuz. Já o "Linux-old" carregará o vmlinuz-2.2.14. Já o "DOS" irá inicializar a partição onde fica o C: do DOS/Windows, que neste caso é a partição /dev/hda3.

Nota : Depois de alterar a configuração do lilo.conf, basta rodar o LILO (como root) para que as configurações sejam atualizadas:

#lilo

Como dito anteriormente, no próximo boot irá aparecer:

LILO boot:

Apertando a tecla TAB aparecem as opções de boot: "Linux", "Linux-old" e "DOS".

Se eu escrever "DOS" antes dos 100 décimos de segundo , e apertar a tecla ENTER, o LILO inicializará o DOS/Windows. Caso se passem os 100 décimos de segundo (ou apertar a tecla ENTER), ele inicializará o primeiro da lista: "Linux-old".

Conclusão

Chegamos ao fim de mas um artigo. Espero que tenham aprendido algo. Qualquer dúvida ou sugestão visitem nosso fórum ou enviem um e-mail.



Copyright (C) 1999-2000 Linux Solutions