            Perguntas mais frequ:entes sobre FreeBSD 2.X, 3.X e 4.X

  Projeto de Documentac,ao do FreeBSD

   Revisao: 43184

   Copyright (c) 1995-2002 Projeto de Documentac,ao do FreeBSD

   Versao Traduzida para Portugues do Brasil

   Esta e uma traduc,ao nao-oficial do Aviso Legal Padrao do Projeto de
   Documentac,ao do FreeBSD para o Portugues do Brasil. Ela nao foi publicada
   pelo Projeto de Documentac,ao do FreeBSD, e legalmente nao representa os
   termos de distribuic,ao de documentac,ao que utiliza o Aviso Legal Padrao
   do Projeto de Documentac,ao do FreeBSD -- somente o texto original do
   Aviso Legal Padrao do Projeto de Documentac,ao, em ingles, faz isso. Logo,
   a versao traduzida nao deve ser utilizada como um aviso legal valido.
   Esperamos, contudo, que esta traduc,ao ajude aos falantes de Portugues do
   Brasil a entender melhor o Aviso Legal Padrao do Projeto de Documentac,ao
   do FreeBSD.

   SEMPRE verifique a versao em Ingles mais recente do Aviso Legal Padrao do
   Projeto de Documentac,ao do FreeBSD na versao em Ingles do Manual do
   FreeBSD.

   Redistribuic,ao e utilizac,ao do codigo fonte (SGML DocBook) ou formato
   "compilado" (SGML, HTML, PDF, PostScript, RTF e assim por diante) com ou
   sem modificac,ao, sao permitidas contanto que as seguintes condic,oes
   sejam cumpridas:

    1. As redistribuic,oes do codigo fonte (SGML DocBook) devem reter o aviso
       de copyright acima, esta lista de condic,oes e a seguinte nota de
       responsabilidade assim como as primeiras linhas deste arquivo nao
       modificadas.

    2. As redistribuic,oes em forma compilada (transformada para outros DTDs,
       convertida para PDF, PostScript, RTF e outros formatos) devem
       reproduzir o aviso de copyright acima, esta lista de condic,oes e a
       seguinte nota de responsabilidade na documentac,ao e/ou outros
       materiais fornecidos com a distribuic,ao.

  Importante:

   ESTA DOCUMENTAC,AO E FORNECIDA PELO PROJETO DE DOCUMENTAC,AO DO FREEBSD
   "NO ESTADO" E QUAISQUER GARANTIAS EXPLICITAS OU IMPLICITAS, INCLUINDO, MAS
   NAO LIMITADAS AS GARANTIAS IMPLICITAS DE COMERCIALIZAC,AO E A DE
   ADEQUAC,AO PARA UMA FINALIDADE PARTICULAR SAO DESMENTIDAS. EM NENHUM
   EVENTO O PROJETO DE DOCUMENTAC,AO DO FREEBSD PODERA SER RESPONSABILIZADO
   POR QUAISQUER DANOS DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS,
   EXEMPLARES, OU CONSEQU:ENTES (INCLUINDO, MAS NAO LIMITADO A, OBTENC,AO DE
   BENS OU SERVIC,OS SUBSTITUTOS; PERDA DE USO, DE DADOS, OU DE LUCROS; OU A
   INTERRUPC,AO DE NEGOCIOS) DE QUALQUER FORMA CAUSADO E EM QUALQUER TEORIA
   DE RESPONSABILIDADE, SE EM CONTRATO, EM RESPONSABILIDADE ESTRITA, OU
   PROCESSUAL (PASSIVEL DE PROCESSO, INCLUINDO NEGLIGENCIA OU NAO) LEVANTADA
   DE QUALQUER FORMA PELO USO DESTA DOCUMENTAC,AO, MESMO QUE AVISADO DA
   POSSIBILIDADE DE TAIS DANOS.

   English Version

   This is an unofficial translation of the Standard FreeBSD Documentation
   Project Legal Notice into Brazilian Portuguese. It was not published by
   The FreeBSD Documentation Project, and does not legally state the
   distribution terms for documentation that uses the Standard FreeBSD
   Documentation Project Legal Notice -- only the original English text of
   the Standard FreeBSD Documentation Project Legal Notice does that.
   Therefore, the translated version should not be used as a valid legal
   notice. However, we hope that this translation will help Brazilian
   Portuguese speakers understand the Standard FreeBSD Documentation Project
   Legal Notice better.

   Make sure to ALWAYS check the latest English version of the Standard
   FreeBSD Documentation Project Legal Notice in the English documentation
   version of the FreeBSD Handbook.

   Redistribution and use in source (SGML DocBook) and "compiled" forms
   (SGML, HTML, PDF, PostScript, RTF and so forth) with or without
   modification, are permitted provided that the following conditions are
   met:

    1. Redistributions of source code (SGML DocBook) must retain the above
       copyright notice, this list of conditions and the following disclaimer
       as the first lines of this file unmodified.

    2. Redistributions in compiled form (transformed to other DTDs, converted
       to PDF, PostScript, RTF and other formats) must reproduce the above
       copyright notice, this list of conditions and the following disclaimer
       in the documentation and/or other materials provided with the
       distribution.

  Importante:

   THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS
   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION
   PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

   Resumo

   Estas sao as Perguntas Mais Frequ:entes (FAQ) para as versoes 2.X, 3.X e
   4.X do FreeBSD. Deve-se assumir que todos os assuntos aqui tratados sao
   relevantes para FreeBSD 2.0.5 ou posterior, a nao ser que o contrario
   esteja explicitamente denotado. Todos os assuntos assinalados com <XXX>
   estao em processo de desenvolvimento. Se voce estiver interessado em
   ajudar este projeto, envie e-mail para lista de discussao do projeto de
   documentac,ao do FreeBSD. A versao mais atualizada deste documento esta
   sempre disponivel no servidor WWW do FreeBSD. Tambem pode ser obtida como
   um unico grande arquivo HTML via HTTP; ou, como texto puro, ou nos
   formatos postscript, PDF, etc. no servidor FTP do FreeBSD. Voce tambem
   pode querer realizar uma busca nas Perguntas Mais Frequ:entes (FAQ).

   [ Documento HTML em partes / Documento HTML completo ]

     ----------------------------------------------------------------------

   Indice

   1. Introduc,ao

   2. Documentac,ao e Suporte

   3. Instalac,ao

   4. Compatibilidade de Hardware

   5. Resoluc,ao de Problemas

   6. Aplicac,oes Comerciais

   7. Aplicac,oes de Usuario

   8. Configurac,aao do Kernel

   9. Discos, Sistemas de Arquivos e Carregadores de Inicializac,ao (Boot
   Loaders)

   10. Administrac,ao do Sistema

   11. O sistema X, sistema de interface grafica e os Consoles Virtuais

   12. Redes

   13. Seguranc,a

   14. PPP

   15. Comunicac,oes Seriais

   16. Perguntas Variadas

   17. As gracinhas do FreeBSD

   18. Topicos Avanc,ados

   19. Reconhecimentos

   Lista de Tabelas

   3.1. Tamanho maximo dos arquivos.

   12.1. Interfaces de rede baseadas no chipset DEC PCI

   Lista de Exemplos

   11.1. Sec,ao "Pointer" no XF86Config para o mouse com bolinha de scroll,
   da serie 3.3.x do XFree86, usando a traduc,ao se;rie 3.3.x do XFree86,
   usando a traduc,ao por meio do moused

   11.2. Sec,ao "InputDevice" do XF86Config para usar a traduc,ao do X Server
   na serie 4.X do XFree86.

   11.3. Exemplo de ".emacs" para usar paginamento em mouse com bolinha de
   scroll.

   11.4. Sec,ao "Pointer" do XF86Config com um mouse com scroll na serie
   3.3.x do XFree86.

   11.5. Sec,ao "InputDevice" do XF86Config com um mouse com scroll na serie
   4.x do XFree86.

   11.6. Arquivo ".emacs" para usar paginamento em mouse com bolinha de
   scroll.

   11.7. Configurac,ao do Emacs para Imwheel

   11.8. Configurac,ao do Xemacs para Imwheel

                            Capitulo 1. Introduc,ao

   Bem vindo `as Perguntas Mais Frequ:entes (FAQ) para as versoes 2.X `a 4.X
   do FreeBSD!

   Como e de costume em Perguntas Mais Frequ:entes (FAQ) da Usenet, este
   documento pretende cobrir as perguntas mais frequ:entes relacionadas ao
   sistema operacional FreeBSD (e claro, responde-las todas!). Embora
   originalmente tais documentos tivessem apenas a finalidade de reduzir a
   utilizac,ao da largura de banda da rede ao evitar que o mesmo tipo de
   pergunta antiga fosse sempre repetida, FAQs tornaram-se reconhecidamente
   uma fonte valiosa de informac,oes.

   Inumeros esforc,os foram feitos para tornar este FAQ o mais informativo
   possivel; se voce tiver alguma sugestao de como esse documento pode ser
   melhorado, sinta-se a vontade para enviar suas sugestoes por e-mail para o
   Responsavel pelo FAQ <faq@FreeBSD.org>.

   1.1. O que e FreeBSD?

   1.2. Qual o objetivo do Projeto FreeBSD?

   1.3. A licenc,a FreeBSD tem alguma restric,ao?

   1.4. O FreeBSD pode substituir meu sistema operacional atual?

   1.5. Por que o sistema se chama FreeBSD?

   1.6. Qual a versao mais recente do FreeBSD?

   1.7. O que e FreeBSD-CURRENT?

   1.8. Qual o conceito por tras do FreeBSD-STABLE?

   1.9. Quando sao realizados lanc,amentos FreeBSD?

   1.10. Quem e responsavel pelo FreeBSD?

   1.11. Onde posso obter o FreeBSD?

   1.12. Como eu acesso o banco de dados de Relatorios de Problemas?

   1.13. Como eu me torno um espelho do sitio WWW FreeBSD?

   1.14. Que outras fontes de informac,oes sobre o FreeBSD existem?

1.1.  O que e FreeBSD?                                                                                         
      Em sintese, FreeBSD e um sistema operacional UN*X-like para plataformas i386 e Alpha/AXP, baseado no     
      "4.4BSD-Lite" da Universidade da California em Berkeley, com alguns aprimoramentos adotados do           
      "4.4BSD-Lite2". O FreeBSD tambem e baseado, indiretamente, na conversao de William Jolitz conhecida como 
      "386BSD" para a plataforma i386 do "Net/2" da Universidade da California, em Berkeley; apesar que        
      pouquissimo codigo originado do 386BSD ainda exista no FreeBSD. Uma descric,ao mais abrangente do que e  
      FreeBSD e como o sistema funciona, pode ser encontrada na pagina principal do FreeBSD.                   
                                                                                                               
      O FreeBSD e amplamente utilizado por empresas, Provedores de Servic,o Internet, pesquisadores,           
      profissionais de informatica, estudantes e usuarios domesticos no mundo todo, para trabalho, educac,ao e 
      recreac,ao. Alguns destes exemplos podem ser observados na Galeria FreeBSD,.                             
                                                                                                               
      Para informac,oes mais detalhadas sobre o FreeBSD, por favor, leia o Manual do FreeBSD.                  
1.2.  Qual o objetivo do Projeto FreeBSD?                                                                      
      O objetivo do Projeto FreeBSD e oferecer software que possa ser utilizado para qualquer finalidade e sem 
      obrigac,oes anexadas `a esse codigo. Muitos de nos investimos significantemente no codigo (e no projeto  
      como um todo), e com certeza nao nos importariamos em receber algum tipo de compensac,ao financeira      
      neste momento ou qualquer outro no futuro, mas ninguem no projeto insistira nisso. Acreditamos que a     
      nossa primeira e mais importante missao e oferecer codigo para toda e qualquer pessoa, que possa ser     
      utilizado para qualquer proposito, de forma que esse codigo oferec,a o maior numero possivel de          
      beneficios e formas de uso. Nos acreditamos que este e um dos objetivos fundamentais do Software Livre,  
      e e um dos quais nos apoiamos com entusiasmo.                                                            
                                                                                                               
      O codigo fonte em nossa arvore que e distribuido sob a Licenc,a Publica Geral GNU (GPL) ou sob a         
      Licenc,a Publica Geral de Bibliotecas GNU (LGPL) inclue, pode-se dizer, algumas obrigac,oes anexadas a   
      ele; contudo tais restric,oes visam garantir o acesso livre a esse codigo, e nao o contrario. Devido `a  
      complexidades adicionais que envolvem a utilizac,ao comercial de software licenciado sob GPL, nos        
      procuramos substituir tais softwares sob a mais relaxada licenc,a de direito autoral FreeBSD sempre que  
      possivel;.                                                                                               
1.3.  A licenc,a FreeBSD tem alguma restric,ao?                                                                
      Sim. Entrentanto, essas restric,oes nao definem regras a respeito de como o codigo deve ser utilizado,   
      mas de como voce deve tratar o Projeto FreeBSD ao utilizar codigo distribuido pelo mesmo. Se voce tem    
      serias duvidas sobre o licenc,iamento, sinta-se a vontade para ler a licenc,a. Para os meramente         
      curiosos, a licenc,a pode ser resumida em:                                                               
                                                                                                               
        * Nao alegue que o codigo foi escrito por voce.                                                        
                                                                                                               
        * Nao nos processe se o codigo falhar.                                                                 
1.4.  O FreeBSD pode substituir meu sistema operacional atual?                                                 
      Para maioria das pessoas, sim. Mas essa nao e uma pergunta tao simples assim.                            
                                                                                                               
      A maioria das pessoas, na verdade, nao utiliza um sistema operacional. As aplicac,oes utilizadas pelos   
      usuarios e que realmente usam o sistema operacional. O FreeBSD e projetado de forma a oferecer um        
      ambiente robusto e completo para as aplicac,oes. Suporta uma enorme variedade de navegadores internet,   
      de suites de escritorio, clientes de e-mail, programas de manipulac,ao grafica, ambientes de             
      programac,ao, servidores e servic,os de rede, e praticamente tudo mais que voce pode desejar. A maioria  
      destas aplicac,oes podem ainda ser gerenciadas atraves da Colec,ao de Ports.                             
                                                                                                               
      Em circunstancias nas quais precise usar uma aplicac,ao disponivel apenas para um determinado sistema    
      operacional, nao e possivel substituir aquele sistema operacional. Entretanto, ha uma boa chance que     
      alguma aplicac,ao similar `a que voce precisa, exista para FreeBSD. Se voce quer ter, desde um solido    
      conjunto de aplicac,oes para escritorio, ate um robusto e altamente escalavel servidor Internet, ou      
      simplesmente uma estac,ao de trabalho confiavel, onde voce possa realizar seu trabalho sem               
      interrupc,oes, FreeBSD provavelmente vai suprir todas as suas necessidades. Inumeras pessoas pelo mundo  
      todo, desde usuarios novatos `a administradores de sistemas UNIX experientes usam FreeBSD como seu unico 
      sistema operacional para desktop.                                                                        
                                                                                                               
      Se voce esta migrando para FreeBSD a partir de algum outro ambiente UNIX, provavelmente ja sabe quase    
      tudo o que precisa pra comec,ar a se envolver com o sistema. Entretanto, se o seu historico em           
      computac,ao envolveu somente sistemas operacionais baseados em ambientes graficos como Windows e antigos 
      Mac OS, sera necessario investir algum tempo a mais aprendendo a maneira UNIX de fazer as coisas. Este   
      FAQ e o Manual do FreeBSD sao excelentes formas de comec,ar sua jornada.                                 
1.5.  Por que o sistema se chama FreeBSD?                                                                      
        * Pode ser utilizado sem nenhum encargo monetario, inclusive para uso comercial.                       
                                                                                                               
        * O codigo fonte completo do sistema operacional e livremente distribuido, e pode ser adquirido        
          gratuitamente. O menor numero possivel de restric,oes foram colocadas sobre o uso do sistema, sua    
          distribuic,ao e sua incorporac,ao `a outro projeto (comercial ou nao).                               
                                                                                                               
        * Qualquer pessoa que tiver feito alguma correc,ao ou aprimoramento do codigo do sistema pode          
          livremente enviar suas alterac,oes e ter seu codigo adicionado `a arvore de codigo fonte do sistema  
          (obviamente sujeito a previas analises).                                                             
                                                                                                               
      E importante ressaltar que a palavra de origem inglesa "free" em portugues pode ser traduzida como       
      "livre" e "gratuito". Alem disso, a palavra "free" esta sendo usada aqui com dois significados: "sem     
      custo" e "voce pode fazer o que quiser". "Free" no nome do sistema operacional remete aos dois           
      significados da palavra. O sistema pode ser utilizado "sem nenhum custo", e pode ser utilizado "da forma 
      que voce quiser". Exceto por algumas poucas coisinhas que voce nao pode fazer com o FreeBSD (por         
      exemplo, fingir que foi voce quem o escreveu), voce pode realmente fazer o que bem entender com o        
      sistema.                                                                                                 
1.6.  Qual a versao mais recente do FreeBSD?                                                                   
      A versao 11.1 e a versao RELEASE mais recente; lanc,ada em July 2017. Esta tambem e a versao STABLE mais 
      recente.                                                                                                 
                                                                                                               
      Resumidamente, -STABLE e a serie voltada para Provedores de Servic,o de Internet, usuarios corporativos, 
      ou qualquer usuario que deseje estabilidade e um numero minimo de alterac,oes e novas caracteristicas    
      adotadas do snapshot -CURRENT. Lanc,amentos podem vir de qualquer um dos ramos de desenvolvimento; a     
      serie -CURRENT, todavia, deveria ser utilizada apenas por usuarios preparados para um ambiente em        
      constante modificac,ao, instavel em muitas de suas caracteristicas e extremamente sem garantias (ao      
      menos, quando comparado ao -STABLE).                                                                     
                                                                                                               
      Lanc,amentos sao realizados de alguns em alguns meses. Muitos usuarios mantem o codigo fonte de seus     
      sistemas em mais sincronia com a arvore de desenvolvimento do FreeBSD (veja as perguntas sobre           
      FreeBSD-CURRENT e FreeBSD-STABLE) que isto, fazer isto e uma demonstrac,ao de interesse e compromisso    
      visto que o codigo fonte sofre constantes modificac,oes.                                                 
1.7.  O que e FreeBSD-CURRENT?                                                                                 
      FreeBSD-CURRENT e a versao de desenvolvimento do sistema operacional, que brevemente se tornara a serie  
      5.0-RELEASE. Exatamente por ser uma serie de desenvolvimento, e portanto sem garantias de estabilidade,  
      o uso desse sistema operacional e de interesse exclusivo de desenvolvedores que trabalham no sistema,    
      usuarios extremamente experientes que acompanham e analisam (testam) o novo sistema ou daqueles que o    
      fazem por hobby. Veja a sec,ao relevante no Manual do FreeBSD.                                           
                                                                                                               
      Se voce nao tem familiaridade com o sistema operacional, nao e um usuario experiente ou nao consegue     
      distinguir a diferenc,a entre um problema de verdade e um problema temporario, entao e desaconselhavel   
      que voce use o FreeBSD-CURRENT. Essa serie, as vezes, evolui de forma extremamente rapida, e pode se     
      tornar extremamente instavel e subutilizavel por varios dias seguidos. Usuarios do FreeBSD-CURRENT devem 
      ser capazes de analisar qualquer problema no sistema, e apenas relatar a falha se o problema tratar-se   
      de um erro ou um engano no desenvolvimento do mesmo ao inves de "pequenos problemas temporarios de       
      instabilidade (glitches)". Perguntas sobre o porque de "make world produzir erros a respeito de grupos"  
      sao devidamente ignoradas ou escrachadas na lista de discussao da serie -CURRENT.                        
                                                                                                               
      Diariamente, snapshots sao lanc,ados baseados no estado atual de desenvolvimento dos ramos -CURRENT e    
      -STABLE. Atualmente, distribuic,oes ocasionais de snapshots estao sendo disponibilizadas. Os objetivos   
      por tras do lanc,amento de cada snapshot sao:                                                            
                                                                                                               
        * Testar a versao mais recente do programa de instalac,ao.                                             
                                                                                                               
        * Dar a oportunidade para aqueles que querem usar o -CURRENT ou o -STABLE - mas nao tem tempo ou nao   
          tem uma conexao Internet rapida o suficiente para estarem diariamente sincronizados com a versao     
          mais atualizada do codigo no projeto.                                                                
                                                                                                               
        * Manter um ponto de referencia fixo, em relac,ao ao codigo em desenvolvimento e o codigo disponivel   
          ate entao, para o caso de nos seriamente "quebrarmos" alguma coisa. (Embora CVS normalmente previna  
          que desastres horriveis como este acontec,am :)                                                      
                                                                                                               
        * Garantir que todas as novas caracteristicas e func,oes do sistema que precisem ser testadas, tenham  
          o maior numero possivel de pessoas potencialmente testando-as.                                       
                                                                                                               
      Sob nenhuma circunstancia, nenhum snapshot -CURRENT pode ser considerado software de "qualidade de       
      produc,ao" para qualquer que seja o proposito, e por mais maduro que o codigo -CURRENT atual possa       
      parecer. Se a intenc,ao e usar um sistema estavel e completamente testado, voce devera usar apenas       
      lanc,amentos, ou snapshots do ramo -STABLE.                                                              
                                                                                                               
      Os snapshots lanc,ados podem ser diretamente acessados em ftp://current.FreeBSD.org/pub/FreeBSD/ para a  
      serie 5.0-CURRENT e em releng4.FreeBSD.org para snapshots da serie 4-STABLE. Snapshots para a serie      
      3-STABLE nao estao sendo produzidos na data em que este documento foi escrito (Maio de 2000).            
                                                                                                               
      Normalmente, os snapshots sao gerados uma vez ao dia, para todas as series em desenvolvimento ativo.     
1.8.  Qual o conceito por tras do FreeBSD-STABLE?                                                              
      Nos primordios do projeto quando o FreeBSD 2.0.5 foi lanc,ado, a arvore de desenvolvimento do sistema    
      foi dividida em dois ramos. Um ramo foi chamado -STABLE e o outro -CURRENT. O FreeBSD-STABLE e           
      direcionado para Provedores de Servic,os de Internet e para outros empreendimentos comerciais que nao    
      pretendem conviver com mudanc,as bruscas ou testar novas caracteristicas experimentais do sistema. Ele   
      recebe apenas codigo que tenha sido totalmente testado, correc,oes de problemas e outras pequenas        
      inovac,oes incrementais. O FreeBSD-CURRENT, por outro lado, tem sido uma linha sem interrupc,oes visando 
      ao 5.0-RELEASE (e alem) desde o lanc,amento 2.0. Se uma pequena ilustrac,ao em arte ASCII ajudasse, isto 
      seria o que pareceria:                                                                                   
                                                                                                               
                       2.0                                                                                     
                        |                                                                                      
                        |                                                                                      
                        |  [2.1-STABLE]                                                                        
       *BRANCH*       2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1  [2.1-STABLE termina]                          
                        |                            (Mar 1997)                                                
                        |                                                                                      
                        |                                                                                      
                        |  [2.2-STABLE]                                                                        
       *BRANCH*       2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [fim]                         
                        |       (Mar 1997)    (Out 97) (Abr 98) (Jul 98) (Dez 98)                              
                        |                                                                                      
                        |                                                                                      
                     3.0-SNAPs  (inicio Q1 1997)                                                               
                        |                                                                                      
                        |                                                                                      
                     3.0-RELEASE (Out 1998)                                                                    
                        |                                                                                      
                        |  [3.0-STABLE]                                                                        
       *BRANCH*      3.1-RELEASE  (Fev 1999) -> 3.2 -> 3.3 -> 3.4 -> 3.5 -> 3.5.1                              
                        |                     (Mai 1999) (Set 1999) (Dez 1999) (Jun 2000) (Jul 2000)           
                        |                                                                                      
                        |  [4.0-STABLE]                                                                        
       *BRANCH*        4.0  (Mar 2000) -> 4.1 -> 4.1.1 -> 4.2 -> 4.3 -> 4.4 -> ... Lanc,amentos 4.x futuro ... 
                        |                                                                                      
                        |              (Jul 2000)   (Set 2000)   (Nov 2000)                                    
                       \|/                                                                                     
                        +                                                                                      
                [5.0-CURRENT continua]                                                                         
                                                                                                               
      O ramo 2.2-STABLE saiu de produc,ao com o lanc,amento 2.2.8. O ramo 3-STABLE saiu de produc,ao com o     
      lanc,amento 3.5.1, que foi tambem o ultimo -RELEASE 3.X. As unicas modificac,oes ainda realizadas em     
      quaisquer destes ramos sao praticamente relacionados apenas `a correc,oes de seguranc,a.                 
                                                                                                               
      O 4-STABLE e o ramo -STABLE em desenvolvimento ativo. A versao mais recente da serie 4-STABLE e          
      11.1-RELEASE, lanc,ada em July 2017.                                                                     
                                                                                                               
      O ramo 5-CURRENT esta lentamente progredindo para o que se tornara o FreeBSD 5.0-RELEASE e alem. Veja O  
      que e FreeBSD-CURRENT? para obter mais informac,oes sobre este ramo.                                     
1.9.  Quando sao realizados lanc,amentos FreeBSD?                                                              
      O Time de engenharia de Lanc,amento <re@FreeBSD.org> lanc,a uma nova versao do FreeBSD, em media, a cada 
      4 meses. As datas de lanc,amento sao anunciadas com uma certa antecedencia, de forma que os              
      desenvolvedores trabalhando no sistema saibam quando seus projetos precisam estar terminados e testados. 
      Um periodo de testes antecede cada novo lanc,amento, de forma a garantir que a adic,ao de novas          
      caracteristicas nao comprometa a estabilidade do lanc,amento. Muitos usuarios consideram tais            
      precauc,oes uma das principais vantagens do projeto FreeBSD, mesmo admitindo que, as vezes, esperar que  
      as novidades sejam adotadas pelo ramo -STABLE possa ser um pouco frustante.                              
                                                                                                               
      Mais informac,oes sobre o processo de engenharia de lanc,amento (incluindo a programac,ao de novos       
      lanc,amentos) podem ser obtidas nas paginas de engenharia de lanc,amento no sitio WWW do FreeBSD.        
                                                                                                               
      Para as pessoas que precisam, ou desejam um pouco mais de emoc,ao, snapshots binarios sao feitos         
      diariamente como discutido acima.                                                                        
1.10. Quem e responsavel pelo FreeBSD?                                                                         
      As principais decisoes relacionadas ao Projeto FreeBSD, como os objetivos e direc,ao geral do projeto, e 
      quem tem permissao para adicionar codigo `a arvore de codigo, sao tomadas por um grupo central (core     
      team) composto de 9 pessoas. Existe um grupo muito maior, composto de mais de 200 desenvolvedores,       
      denominados committers, que tem autorizac,ao para fazer alterac,oes diretamente na arvore de codigo do   
      FreeBSD.                                                                                                 
                                                                                                               
      Entretanto, a maioria das alterac,oes nao triviais sao previamente discutidas nas listas de discussoes,  
      e nao existe restric,ao quanto a quem pode participar das discussoes.                                    
1.11. Onde posso obter o FreeBSD?                                                                              
      Todo lanc,amento significativo do FreeBSD esta disponivel via FTP anonimo no sitio FTP do Projeto        
      FreeBSD:                                                                                                 
                                                                                                               
        * Para obter o lanc,amento 3.X-STABLE corrente, 3.5.1-RELEASE, veja diretorio 3.5.1-RELEASE.           
                                                                                                               
        * O lanc,amento 4-STABLE corrente, 11.1-RELEASE pode ser encontrado no diretorio 11.1-RELEASE.         
                                                                                                               
        * Snapshots 4.X sao normalmente criados uma vez ao dia.                                                
                                                                                                               
        * Lanc,amentos Snapshot 5.0 sao feitos uma vez ao dia no ramo -CURRENT, util apenas tanto para aqueles 
          que gostam de viver no limite quanto para aqueles que precisam usar a versao mais recente possivel   
          com todas as ultimas caracteristicas; sejam pessoas conduzindo testes ou desenvolvedores.            
                                                                                                               
      Informac,ao sobre como obter o FreeBSD em CD, DVD, e outras midias, pode ser encontrada no Manual do     
      FreeBSD.                                                                                                 
1.12. Como eu acesso o banco de dados de Relatorios de Problemas?                                              
      A base de dados de Relatorios de Problemas e um banco de pedidos de alterac,oes realizados pelos         
      usuarios. Todos os pedidos de alterac,ao ja realizados podem ser consultados (ou novos submetidos)       
      atraves de nossas interfaces PR WWW para submeter (novos pedidos) e consultar (ja submetidos). O comando 
      send-pr(1) tambem pode ser usado para submeter relatorios de problema e pedidos de alterac,ao por meio   
      de correio eletronico.                                                                                   
                                                                                                               
      Antes de enviar um relatorio de problema, por favor, leia o artigo Escrevendo Relatorios de Problemas    
      para o FreeBSD, que da boas dicas de como escrever um bom relatorio de problema.                         
1.13. Como eu me torno um espelho do sitio WWW FreeBSD?                                                        
      Existam varias formas de espelhar o sitio WWW do FreeBSD.                                                
                                                                                                               
        * Voce pode obter os arquivos ja formatados a partir de um servidor CVSup FreeBSD usando o aplicativo  
          net/cvsup. O arquivo /usr/share/examples/cvsup/www-supfile oferece um exemplo de configurac,ao do    
          CVSup para espelhar o servidor WWW do projeto FreeBSD.                                               
                                                                                                               
        * Voce pode obter o codigo fonte do sitio WWW do projeto FreeBSD a partir de qualquer servidor FTP do  
          projeto usando sua ferramento de espelhamento ftp favorita. Considere que estes fontes devem ser     
          processados para publica-los em formato WWW tradicional. Voce pode comec,ar a espelhar o projeto a   
          partir de ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www.                                     
1.14. Que outras fontes de informac,oes sobre o FreeBSD existem?                                               
      Por gentileza, queira verificar a lista de Documentac,ao no sitio WWW principal FreeBSD.                 

                      Capitulo 2. Documentac,ao e Suporte

   2.1. Quais bons livros existem sobre FreeBSD?

   2.2. A documentac,ao esta disponivel em outros formatos, como texto puro
   (ASCII) ou Postscript?

   2.3. Onde posso obter informac,oes sobre as listas de discussao FreeBSD?

   2.4. Que grupos de noticias (news groups) existem sobre o FreeBSD?

   2.5. Existem canais de bate-papo retransmitido via Internet (IRC) FreeBSD?

   2.6. Onde eu consigo treinamento em e suporte comercial ao FreeBSD?

2.1. Quais bons livros existem sobre FreeBSD?                                                       
     O projeto FreeBSD produz um grande numero de documentos disponiveis em                         
     http://www.FreeBSD.org/docs.html. Alem destes, outros livros recomendados sao referenciados    
     nas Bibliografias disponiveis ao final deste FAQ e do Manual do FreeBSD.                       
2.2. A documentac,ao esta disponivel em outros formatos, como texto puro (ASCII) ou Postscript?     
     Claro. A documentac,ao pode ser obtida em uma variedade de formatos e opc,oes de compressao no 
     servidor FTP do FreeBSD, sob o diretorio /pub/FreeBSD/doc/.                                    
                                                                                                    
     A documentac,ao e organizada em diversas categorias, como:                                     
                                                                                                    
       * O nome do documento, como faq ou Manual do FreeBSD.                                        
                                                                                                    
       * A codificac,ao e lingua do conteudo do documento. Tal categorizac,ao e baseada nos nomes   
         de localizac,ao, que podem ser encontrados sob /usr/share/locale no seu FreeBSD.           
         Atualmente existem documentos nas seguintes linguas e codificac,oes:                       
                                                                                                    
              Nome               Significado                                                        
         en_US.ISO8859-1 Ingles Americano                                                           
         de_DE.ISO8859-1 Alemao                                                                     
         es_ES.ISO8859-1 Espanhol                                                                   
         fr_FR.ISO8859-1 Frances                                                                    
         ja_JP.eucJP     Japones (codificac,ao EUC)                                                 
         ru_RU.KOI8-R    Russo (codificac,ao KOI8-R)                                                
         zh_TW.Big5      Chines (codificac,ao Big5)                                                 
                                                                                                    
       Nota:                                                                                        
                                                                                                    
         Alguns documentos podem nao estar disponiveis em todas as linguas.                         
                                                                                                    
       * Formato da documentac,ao. A documentac,ao e produzida em varios formatos. Cada qual com    
         suas vantagens e desvantagens. Alguns formatos sao mais apropriados para leitura on-line,  
         enquanto outros sao mais agradeveis esteticamente em formato impresso. Disponibilizar a    
         documentac,ao em todos estes formatos, garante que os leitores poderao sempre ler os       
         trechos de seu interesse, tanto no monitor do seu computador quanto em papel impresso.     
         Atualmente os formatos disponiveis sao:                                                    
                                                                                                    
                 Formato                                     Significado                            
         html-split               Uma serie de pequenos documentos HTML, devidamente ligados.       
         html                     Um unico grande arquivo HTML contendo todo o documento.           
         pdb                      Formato de banco de dados pra Palm Pilot, para ser usado com o    
                                  visualizador iSilo.                                               
         pdf                      PDF (Formato de Documento Portavel) da Adobe                      
         ps                       Postscript                                                        
         rtf                      RTF (Formato de Texto Enriquecido) da Microsoft[a]                
         txt                      Texto puro                                                        
         [a] A numerac,ao de pagina nao e automaticamente atualizada quando este tipo de arquivo e  
         aberto no Word. Digite CTRL+A, CTRL+END, F9 depois de abrir o documento no Word, para      
         atualizar a numerac,ao das paginas.                                                        
                                                                                                    
       * As tecnicas de compressao e empacotamento dos arquivos. Atualmente, 3 destes formatos      
         estao em uso:                                                                              
                                                                                                    
           1. Para o formato html-split, os arquivos sao todos empacotados com tar(1). O resultado  
              e um arquivo .tar que e posteriormente comprimido usando as tecnicas de compressao    
              detalhadas a seguir.                                                                  
                                                                                                    
           2. Todos os outros formatos geram apenas um arquivo, nomeado book.formato (por exemplo,  
              book.pdb, book.html, e outros).                                                       
                                                                                                    
              Estes arquivos sao, entao comprimidos utilizando tres tecnicas de compressao:         
                                                                                                    
              Tipo                                    Descric,ao                                    
              zip  Formato Zip. Se voce quiser descomprimir este formato no FreeBSD, sera           
                   necessario instalar o port archivers/unzip antes.                                
              gz   Formato GNU Zip. Para descomprimir estes arquivos, use o comando gunzip(1) que   
                   faz parte do FreeBSD.                                                            
                   Formato BZip2. Esse formato e menos popular que os outros, mas geralmente produz 
              bz2  arquivos menores. Instale o port archivers/bzip2 para descomprimir arquivos      
                   deste formato.                                                                   
                                                                                                    
              Portanto, o Manual do FreeBSD em formato Postscript comprimido com o BZip2 sera       
              armazenado como book.ps.bz2 sob o diretorio handbook/.                                
                                                                                                    
           3. A documentac,ao formatada esta disponivel ainda como um pacote FreeBSD.               
                                                                                                    
     Apos escolher o formato e o mecanismo de compressao, voce deve decidir se vai ou nao pegar o   
     documento em formato de pacote FreeBSD.                                                        
                                                                                                    
     A vantagem de baixar e instalar os pacotes e que a documentac,ao pode entao ser gerenciada     
     usando os comandos de gerenciamento de pacotes FreeBSD, como pkg_add(1) e pkg_delete(1).       
                                                                                                    
     Se decidir baixar e instalar o pacote, entao voce deve conhecer o nome do arquivo antes de     
     comec,ar. Os arquivos de documentac,ao-como-pacotes estao estocados em um diretorio chamado    
     packages. Cada arquivo de pacote segue o padrao de nome                                        
     document-name.lang.encoding.format.tgz.                                                        
                                                                                                    
     Por exemplo, o FAQ, em lingua Inglesa e formato PDF, estara no pacote de nome                  
     faq.en_US.ISO8859-1.pdf.tgz.                                                                   
                                                                                                    
     Sabendo isto, voce pode usar o seguinte comando pra instalar o pacote contendo o FAQ na lingua 
     Inglesa e formato PDF:                                                                         
                                                                                                    
     # pkg_add                                                                                      
                   ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgz       
                                                                                                    
     Depois disso, voce pode usar o pkg_info(1) pra determinar onde o documento foi instalado.      
                                                                                                    
     # pkg_info -f faq.en_US.ISO8859-1.pdf                                                          
     Information for faq.en_US.ISO8859-1.pdf:                                                       
                                                                                                    
     Packing list:                                                                                  
             Package name: faq.en_US.ISO8859-1.pdf                                                  
             CWD to /usr/share/doc/en_US.ISO8859-1/books/faq                                        
     File: book.pdf                                                                                 
             CWD to .                                                                               
     File: +COMMENT (ignored)                                                                       
     File: +DESC (ignored)                                                                          
                                                                                                    
     Como pode ver, book.pdf tera sido instalado sob /usr/share/doc/en_US.ISO8859-1/books/faq.      
                                                                                                    
     Se voce preferir nao usar pacotes, sera necessario baixar os arquivos comprimidos, depois      
     descomprimi-los e copiar os documentos apropriados para os lugares corretos.                   
                                                                                                    
     Por exemplo, a versao do FAQ dividido em varios arquivos HTML, comprimido usando gzip(1), pode 
     ser encontrado no arquivo doc/en_US.ISO8859-1/books/faq/book.html-split.tar.gz. Para baixar e  
     descomprimir aquele arquivo, voce deveria fazer o seguinte.                                    
                                                                                                    
     # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.gz 
     # gzip -d book.html-split.tar.gz                                                               
     # tar xvf book.html-split.tar                                                                  
                                                                                                    
     Sera criada, entao, uma serie de arquivos .html. O principal arquivo e chamado index.html      
     contendo o indice, material introdutorio e links para outras partes do documento.              
     Posteriormente, voce pode copiar ou mover esses arquivos pra onde voce quiser.                 
2.3. Onde posso obter informac,oes sobre as listas de discussao FreeBSD?                            
     Voce pode encontrar uma vasta gama de informac,oes na sec,ao do Manual do FreeBSD sobre listas 
     de discussao.                                                                                  
2.4. Que grupos de noticias (news groups) existem sobre o FreeBSD?                                  
     Informac,oes completas podem ser encontradas na sec,ao do Manual do FreeBSD sobre grupos de    
     noticias (newsgroups).                                                                         
2.5. Existem canais de bate-papo retransmitido via Internet (IRC) FreeBSD?                          
     Sim, a maioria das grandes redes de bate-papo retransmitido via Internet (IRC) tem um canal de 
     bate-papo sobre FreeBSD:                                                                       
                                                                                                    
       * O canal #FreeBSD na EFNet e essencialmente um forum sobre FreeBSD, mas nao entre no canal  
         se voce procura suporte tecnico, nem se voce esta procurando uma maneira de evitar a       
         leitura de paginas de manual ou fazer suas proprias pesquisas. Este e essencialmente um    
         canal de bate-papo geral. Assuntos como sexo, esportes ou armas nucleares sao tao comuns   
         quanto FreeBSD no canal. Lembre-se, Voce Foi Avisado! Para conectar-se, use o servidor     
         irc.chat.org.                                                                              
                                                                                                    
       * O canal #FreeBSDhelp na EFNet e dedicado a suporte e auxilio de usuarios de FreeBSD. Os    
         participantes neste canal sao bem mais receptivos a perguntas que os do canal #FreeBSD.    
                                                                                                    
       * O canal #FreeBSD na DALNET pode ser acessado em irc.dal.net nos Estados Unidos, e          
         irc.eu.dal.net na Europa.                                                                  
                                                                                                    
       * O canal #FreeBSD na UNDERNET pode ser acessado em us.undernet.org nos Estados Unidos, e    
         eu.undernet.org na Europa. Partindo do principio que esse e um canal de ajuda, esteja      
         preparado para ler todos os documentos a que for referido.                                 
                                                                                                    
       * O canal #FreeBSD na HybNet e um canal de ajuda. Uma lista de servidores pode ser           
         encontrada no sitio WWW da HybNet.                                                         
                                                                                                    
     Cada um destes canais e independente, e exatamente por estarem em redes distintas, nao e       
     conectada ou relacionada entre si. Os estilos de bate-papo em cada um dos canais sao bastante  
     distintos, pode ser necessario testar cada um para descobrir qual a mais adequado ao seu       
     estilo pessoal de bate-papo. Como em toda rede de bate-papo retransmitido via Internet (IRC),  
     nem considere acessar os canais se voce ofende-se facilmente ou se voce nao se da bem com      
     muita gente jovem (e alguns bem velhos) que usam as mais irregulares formas de escrita e       
     conversac,ao possivel, quase sempre assassinando sem o menor pudor todos os principios verbais 
     - de qualquer lingua que seja.                                                                 
2.6. Onde eu consigo treinamento em e suporte comercial ao FreeBSD?                                 
     DaemonNews oferece treinamento em e suporte comercial ao FreeBSD. Mais informac,oes podem ser  
     obtidas no sitio WWW BSD Mall.                                                                 
                                                                                                    
     FreeBSD Services oferece suporte comercial ao FreeBSD no Reino Unido (alem de vender o FreeBSD 
     em midia DVD). Veja o sitio WWW deles para maiores informac,oes.                               
                                                                                                    
     A FreeBSD Mall oferece suporte comercial ao FreeBSD. Maiores informac,oes podem ser obtidas no 
     sitio WWW deles.                                                                               
                                                                                                    
     Qualquer outra organizac,ao que oferec,a treinamento em ou suporte ao FreeBSD deve entrar em   
     contato com o projeto para serem listadas aqui.                                                

                            Capitulo 3. Instalac,ao

   Nik Clayton

   3.1. De qual arquivo eu devo baixar o FreeBSD da rede?

   3.2. O que eu devo fazer se as imagens de disquete nao couberem em um
   unico disco?

   3.3. Onde estao as instruc,oes para instalar o FreeBSD?

   3.4. O que e preciso para usar o FreeBSD?

   3.5. Eu tenho apenas 4 MB de memoria RAM. Posso usar o FreeBSD?

   3.6. Como eu crio meu proprio disquete de instalac,ao?

   3.7. O Windows 95/98 pode co-existir com o FreeBSD?

   3.8. O Windows 95/98 sobrescreveu meu gerenciador de inicializac,ao
   (boot)! Como eu instalo ele de volta?

   3.9. O meu IBM Thinkpad serie A, T ou X trava sempre, quando eu tento
   inicializar (boot) o FreeBSD. Como eu resolvo isso?

   3.10. Posso instalar o FreeBSD em um disco com bad blocks?

   3.11. Eu acabei de atualizar o sistema da serie 3.X para 4.X, e a minha
   primeira inicializac,ao (boot) falhou com a mensagem bad sector table not
   supported

   3.12. Como eu fac,o se um disco tem informac,oes criadas pelo bad144 antes
   de atualizar o sistema, e depois de atualizado para o FreeBSD 4.0 ou
   posterior, a inicializac,ao falha?

   3.13. Como eu removo o bad144 do meu sistema anterior ao 4.X de forma que
   eu possa atualiza-lo com seguranc,a?

   3.14. Coisas estranhas acontecem quando inicio o sistema com o disco de
   instalac,ao! O que esta acontecendo?

   3.15. Eu inicializei o FreeBSD a partir do meu CDROM ATAPI, mas o programa
   de instalac,ao diz que o CDROM nao foi encontrado. Para onde ele foi?

   3.16. Posso instalar o FreeBSD no meu laptop via PLIP (IP em Linha
   Paralela)?

   3.17. Qual geometria eu devo utilizar para um disco?

   3.18. Existem restric,oes quanto ao particionamento de discos?

   3.19. O FreeBSD suporta programas gerenciadores de discos?

   3.20. Quando eu inicio o FreeBSD, eu obtenho a mensagem Missing Operating
   System. O que esta acontecendo?

   3.21. Porque eu nao consigo passar da tela F? do gerenciador de
   inicializac,ao (boot)?

   3.22. Eu preciso instalar todos os fontes do sistema operacional?

   3.23. Eu preciso criar um kernel personalizado?

   3.24. Eu devo usar criptografia DES, Blowfish, ou MD5 para senhas do
   sistema? Como eu defino qual delas o usuario deve usar?

   3.25. Por que o disco de inicializac,ao (boot) inicia, mas trava na tela
   Probing Devices...?

   3.26. Por que ocorre o erro panic: can't mount root, quando eu reinicio o
   sistema, depois de te-lo instalado.

   3.27. Quais sao as limitac,oes de memoria?

   3.28. Qual a limitac,ao para o sistema de arquivos FFS?

   3.29. Por que a mensagem de erro archsw.readin.failed me perturba sempre,
   depois que eu recompilo e carrego um kernel novo?

   3.30. Como eu atualizo meu sistema da serie 3.X para 4.X?

   3.31. Onde estao essas "especificac,oes de seguranc,a"?

   3.1.  De qual arquivo eu devo baixar o FreeBSD da rede?                       
         Ate a versao 3.1 era necessario apenas um disquete para instalac,ao do  
         FreeBSD, o disco era o floppies/boot.flp. Contudo, depois que o 3.1 foi 
         lanc,ado, o Projeto adicionou ao kernel generico o suporte a uma grande 
         variedade de dispositivos, de forma que ele passou a consumir mais      
         espac,o. Por este motivo, desde a serie 3.X sao necessarios dois        
         disquetes, o floppies/kernel.flp e o floppies/mfsroot.flp. Essas        
         imagens precisam ser copiadas para disquetes, usando ferramentas como o 
         fdimage ou o dd(1).                                                     
                                                                                 
         Caso seja necessario baixar da rede a distribuic,ao do sistema (por     
         exemplo, para uma instalac,ao por meio de um sistema de arquivos DOS),  
         voce tera que obter as seguintes estruturas da distribuic,ao padrao:    
                                                                                 
           * bin/                                                                
                                                                                 
           * manpages/                                                           
                                                                                 
           * compat*/                                                            
                                                                                 
           * doc/                                                                
                                                                                 
           * src/ssys.*                                                          
                                                                                 
         Para obter instruc,oes completas sobre o procedimento de instalac,ao do 
         FreeBSD e maiores detalhes sobre os meios de instalac,ao, por           
         gentileza, consulte a sec,ao de instalac,ao no Manual do FreeBSD.       
   3.2.  O que eu devo fazer se as imagens de disquete nao couberem em um unico  
         disco?                                                                  
         Um disquete de 3.5 polegadas (1,44 MB) armazena ate 1474560 bytes de    
         dados. O tamanho da imagem de inicializac,ao e de exatamente 1474560    
         bytes.                                                                  
                                                                                 
         Erros comuns, cometidos na preparac,ao dos discos de inicializac,ao,    
         sao:                                                                    
                                                                                 
           * Baixar a imagem de disco via FTP sem utilizar o modo de             
             transferencia binario.                                              
                                                                                 
             Alguns clientes de FTP - especialmente navegadores de Internet -    
             costumam usar por padrao o modo de transferencia ascii nas sessoes  
             FTP, e para normalizar o arquivo de acordo com o sistema, eles      
             tentam alterar os caracteres finais de cada linha do arquivo.       
             Invariavelmente esse comportamento resulta em baixar uma imagem de  
             inicializac,ao (boot) corrompida. Verifique o tamanho da imagem que 
             voce tem em maos, se e exatamente do mesmo tamanho da imagem no     
             servidor. Caso o tamanho nao seja exatamente o mesmo, voce pode     
             suspeitar do arquivo que voce baixou.                               
                                                                                 
             Para garantir que esse problema nao ocorra, digite binary na prompt 
             de comando do seu cliente FTP, ou defina as preferencias do         
             programa para utilizar o modo binario. Ai sim, fac,a baixe da rede  
             a imagem de inicializac,ao.                                         
                                                                                 
           * Usar o comando copy do DOS (ou simplesmente copiar, por meio da     
             Interface Grafica do sistema) para transferir a imagem de           
             inicializac,ao para o disquete.                                     
                                                                                 
             Programas como o copy nao vao funcionar para copiar a imagem de     
             inicializac,ao direto para o disquete, exatamente porque a imagem   
             foi criada de forma que ela seja carregada diretamente. A imagem    
             tem o conteudo completo que o disquete deve ter, com seus dados     
             alocados trilha-a-trilha, e portanto nao pode ser copiado para o    
             disquete como um simples arquivo. Voce tem que copiar a imagem para 
             o disquete usando alguma ferramenta de "copia crua" (raw copy, como 
             o fdimage ou o rawrite) como descrito no guia de instalac,ao do     
             FreeBSD.                                                            
   3.3.  Onde estao as instruc,oes para instalar o FreeBSD?                      
         As instruc,oes de instalac,ao do FreeBSD podem ser encontradas na       
         sec,ao de instalac,ao do FreeBSD no Manual do FreeBSD.                  
   3.4.  O que e preciso para usar o FreeBSD?                                    
         Voce vai precisar, no minimo de um PC 386 com 5MB de memoria RAM e no   
         minimo 60 MB em disco. Essa configurac,ao permite o uso de uma placa de 
         video MDA simples, mas para usar o X11R6 e necessario uma placa de      
         video VGA ou mais avanc,ada.                                            
                                                                                 
         Para mais informac,oes consulte Capitulo 4, Compatibilidade de Hardware 
   3.5.  Eu tenho apenas 4 MB de memoria RAM. Posso usar o FreeBSD?              
         O FreeBSD 2.1.7 foi a ultima versao do sistema que rodava com apenas    
         4MB de memoria. A partir do FreeBSD 2.2, e necessario no minimo 5MB de  
         memoria para usar o sistema.                                            
                                                                                 
         Praticamente todas as versoes do FreeBSD podem rodar com 4MB de memoria 
         RAM, contudo, a instalac,ao do sistema operacional nao pode ser feita   
         com apenas 4MB. Voce pode colocar mais memoria para o processo de       
         instalac,ao do sistema, e depois de instalado, voltar a maquina para    
         apenas 4MB de memoria, ou como alternativa, instale o seu disco rigido  
         em uma maquina com mais de 4MB, efetue a instalac,ao do sistema, e      
         depois instale o seu disco de volta na maquina com apenas 4MB.          
                                                                                 
         O FreeBSD 2.1.7 nao ira instalar em sistemas que usam 640 Kb de memoria 
         base + 3 MB de memoria extendida. Se sua placa mae pode fazer o         
         remapeamento da memoria "subutilizada" que vai sobrar dos 640kB da      
         regiao de 1MB, ai sim, voce vai conseguir usar o FreeBSD 2.1.7. Entre   
         no Setup da sua BIOS, procure a opc,ao ``remap'' e habilite-a. Talvez   
         voce tenha que desabilitar a opc,ao de ROM shadowing. Com certeza e     
         mais facil voce conseguir mais 4MB apenas para a instalac,ao, compilar  
         um kernel customizado e portanto menor, e ai sim, tirar esses 4MB       
         sobresalentes e usar o sistema com apenas os 4MB originais. Tambem e    
         possivel instalar o FreeBSD 2.0.5 e depois "atualiza-lo" para o 2.1.7   
         com a opc,ao ``upgrade'' disponivel no programa de instalac,ao do       
         FreeBSD 2.1.7.                                                          
                                                                                 
         Depois de instalado o sistema, voce pode compilar um kernel             
         personalizado, que provavelmente ira permitir que o sistema seja usado  
         com 4MB de memoria apenas. Existem relatos de sucesso na utilizac,ao do 
         sistema com apenas 2MB de memoria, contudo, nesse caso e praticamente   
         impossivel usar alguma outra aplicac,ao junto ao sistema operacional.   
   3.6.  Como eu crio meu proprio disquete de instalac,ao?                       
         Atualmente nao existe uma forma de simplesmente criar um disco de       
         instalac,ao personalizado. Para criar um disquete personalizado voce    
         tera que preparar todo um novo release, o qual, ai sim, teria           
         instruc,oes de instalac,ao.                                             
                                                                                 
         Para montar um release personalizado siga as instruc,oes do artigo de   
         Engenharia de Release article.                                          
   3.7.  O Windows 95/98 pode co-existir com o FreeBSD?                          
         Sim. Primeiro voce deve instalar o seu Windows, e depois instalar o     
         FreeBSD. O gerenciador de inicializac,ao (boot) do FreeBSD vai ser      
         instalado na MBR do seu disco, e vai conseguir controlar o              
         inicializac,ao entre o FreeBSD e seu Windows. Se voce instalar o        
         Windows depois do FreeBSD, a instalac,ao dele ira sobrescrever o setor  
         de inicializac,ao (boot) do seu disco, e consequ:entemente seu          
         gerenciador de inicializac,ao (boot), sem avisar ou pedir qualquer      
         confirmac,ao. Se esse for o caso, leia a proxima sec,ao.                
   3.8.  O Windows 95/98 sobrescreveu meu gerenciador de inicializac,ao (boot)!  
         Como eu instalo ele de volta?                                           
         Voce pode reinstalar o gerenciador de inicializac,ao (boot) do FreeBSD  
         de uma das 3 maneiras:                                                  
                                                                                 
           * Sob o DOS, entre no diretorio tools/ da sua distribuic,ao do        
             FreeBSD (seu CDROM por exemplo) e procure o programa bootinst.exe.  
             Depois, execute-o da seguinte forma:                                
                                                                                 
          ...\TOOLS> bootinst.exe boot.bin                                       
                                                                                 
             e o gerenciador de inicializac,ao (boot) sera reinstalado.          
                                                                                 
           * Fac,a a inicializac,ao do FreeBSD pelos disquetes de instalac,ao ou 
             pelo CDROM novamente. Entre na opc,ao "Custom" do menu de           
             instalac,ao, escolha a o item de partic,oes (Partition), selecione  
             o drive do disco que continha o seu gerenciador de inicializac,ao   
             (boot) (normalmente, se trata do primeiro disco) e entao voce entra 
             no editor de partic,oes. Nao fac,a nenhuma alterac,ao, apenas       
             aperte a tecla W (Write). O programa de instalac,ao ira pedir a     
             confirmac,ao, se voce quer gravar suas informac,oes mesmo sem ter   
             feito nenhuma alterac,ao. Escolha Sim. O programa ira perguntar se  
             voce deseja instalar o gerenciador de inicializac,ao (boot) do      
             FreeBSD ou se voce deseja deixar o setor de inicializac,ao (boot)   
             intacto (ou instalar um setor de inicializac,ao (boot) padrao)      
             exatamente como no instante da primeira instalac,ao do FreeBSD.     
             Escolha "Boot Manager". Agora o gerenciador de inicializac,ao       
             (boot) sera reinstalado no disco. Saia do programa de instalac,ao e 
             reinicie o processo de inicializac,ao pelo HD normalmente.          
                                                                                 
           * Inicie o FreeBSD com o disquete (ou CD) de inicializac,ao           
             tradicional, escolha a opc,ao "Fixit" no menu do sysinstall.        
             Escolha entre o disquete de correc,ao ou o segundo CDROM (a opc,ao  
             "live" na distribuic,ao padrao do FreeBSD) no menu a seguir, e      
             entre na shell de correc,ao do sistema. Em seguida execute o        
             comando:                                                            
                                                                                 
          Fixit# fdisk -B -b /boot/boot0 bootdevice                              
                                                                                 
             substituindo bootdevice pela device controladora do seu disco, como 
             por exemplo, ad0 (para o primeiro disco IDE),ad4 (para o primeiro   
             disco IDE na controladora secundaria), da0 (para o primeiro disco   
             SCSI), etc.                                                         
   3.9.  O meu IBM Thinkpad serie A, T ou X trava sempre, quando eu tento        
         inicializar (boot) o FreeBSD. Como eu resolvo isso?                     
         Um bug nas primeiras versoes da BIOS da IBM nessas maquinas,            
         erroneamente identifica as partic,oes FreeBSD como partic,oes FAT       
         especiais. Quando a BIOS tenta reconhecer a partic,ao FreeBSD, o        
         sistema trava.                                                          
                                                                                 
         De acordo com a IBM[1], os seguintes modelos/BIOS tem esse problema     
         corrigido:                                                              
                                                                                 
         Modelo    Revisao da BIOS                                               
         T20    IYET49WW ou posterior                                            
         T21    KZET22WW ou posterior                                            
         A20p   IVET62WW ou posterior                                            
         A20m   IWET54WW ou posterior                                            
         A21p   KYET27WW ou posterior                                            
         A21m   KXET24WW ou posterior                                            
         A21e   KUET30WW                                                         
                                                                                 
         Existem relatos de que as revisoes posteriores das BIOS IBM             
         re-introduziram esse bug. Essa mensagem enviada por Jacques Vidrine     
         para a lista de discussao de temas especificos ao uso do FreeBSD em     
         notebooks e demais equipamentos moveis. descreve uma serie de           
         procedimentos que podem funcionar no seu laptop IBM, caso seja uma      
         versao um pouco mais nova, e que nao consiga inicializar (boot) o       
         FreeBSD corretamente. Voce pode ainda fazer uma atualizac,ao ou         
         desatualizac,ao (upgrade ou downgrade) da BIOS.                         
                                                                                 
         Se a BIOS e mais antiga, e voce nao considera sua atualizac,ao, existe  
         uma opc,ao que pode sanar seu problema. A instalac,ao do FreeBSD pode   
         ser feita alterando-se a identificac,ao da partic,ao (partition ID) do  
         sistema, e depois instalar novos setores de inicializac,ao (boot) que   
         podem controlar uma partition ID diferente.                             
                                                                                 
         O primeiro passo e restaurar o seu laptop ao ponto onde ele pode fazer  
         os auto-testes, ou seja, os testes basicos de I/O da BIOS. Para fazer   
         isso, basta ligar o computador de forma que ele nao consiga encontrar a 
         partic,ao primaria do FreeBSD. A maneira mais simples de faze-lo, e     
         retirando o disco rigido do seu laptop, e temporariamente ligando-o em  
         um ThinkPad mais antigo (como oThinkPad 600) ou em um PC comum, com um  
         cabo de conversao apropriado. Uma vez feito isso, basta apagar a        
         partic,ao FreeBSD e colocar o disco de volta no laptop. Agora sim, o    
         ThinkPad deve estar de volta ao estado onde ele pode reconhecer o       
         disco.                                                                  
                                                                                 
         Com a maquina funcionando, basta seguir as proximas instruc,oes para    
         fazer o seu FreeBSD instalar:                                           
                                                                                 
          1. Baixe da rede os arquivos boot1 e boot2 no site                     
             http://people.FreeBSD.org/~bmah/ThinkPad/. Coloque esses arquivos   
             em algum lugar onde voce possa acessa-los posteriormente.           
                                                                                 
          2. Instale o FreeBSD normalmente no ThinkPad. Nao use o modo           
             Dangerously Dedicated. Nao reinicie o sistema quando o processo de  
             instalac,ao for concluido.                                          
                                                                                 
          3. Va para a "Shell Holografica de Emergencia" (ALT+F4) ou inicie uma  
             shell de recuperac,ao - "fixit"                                     
                                                                                 
          4. Use o fdisk(8) para alterar a partition ID de 165 para 166 (166 e o 
             ID usado pelo OpenBSD).                                             
                                                                                 
          5. Coloque os arquivos boot1 e boot2 no sistema de arquivos local.     
                                                                                 
          6. Use o disklabel(8) para escrever o boot1 e o boot2 na sua partic,ao 
             FreeBSD.                                                            
                                                                                 
          # disklabel -B -b boot1 -s boot2 ad0sn                                 
                                                                                 
             n e o numero da partic,ao onde o FreeBSD esta instalado.            
                                                                                 
          7. Reinicie o sistema. O gerenciador de inicializac,ao (boot)          
             oferecera a opc,ao de iniciar o OpenBSD, mas na verdade essa opc,ao 
             estara iniciando o FreeBSD.                                         
                                                                                 
         Agora, se voce quer manter os sistemas operacionais OpenBSD e FreeBSD   
         no mesmo laptop ThinkPad, pode considerar isso um exercicio pratico que 
         fica a criterio do leitor.                                              
   3.10. Posso instalar o FreeBSD em um disco com bad blocks?                    
         Ate a versao 3.0, o FreeBSD tinha um utilitario chamado bad144, que     
         automaticamente remapeava os bad blocks. Atualmente, os discos IDE      
         modernos sao capazes de fazer isso sozinhos, portanto o bad144 foi      
         retirado da arvore do FreeBSD. Se sua intenc,ao e instalar o FreeBSD    
         3.0 ou alguma versao mais recente, nos sinceramente aconselhamos que    
         voce compre um novo disco. Se voce nao quer comprar um disco novo,      
         entao use o FreeBSD 2.X.                                                
                                                                                 
         Se voce esta tendo problemas de bad block com algum disco IDE moderno,  
         provavelmente o disco sera perdido em breve, ja que ele esta tao        
         corrompido que a controladora interna nao esta conseguindo corrigir e   
         remapear os bad blocks. Sugerimos que voce compre um disco novo logo, e 
         realize copia de seguranc,a (backup) dos dados, enquanto o disco ainda  
         funciona.                                                               
                                                                                 
         Se o drive de disco e SCSI e esta apresentando bad blocks, leia essa    
         resposta.                                                               
   3.11. Eu acabei de atualizar o sistema da serie 3.X para 4.X, e a minha       
         primeira inicializac,ao (boot) falhou com a mensagem bad sector table   
         not supported                                                           
         O FreeBSD 3.X e anteriores suportavam o programa bad144, que            
         automaticamente remapeava bad blocks. O FreeBSD 4.X e posteriores nao   
         suportam mais esse programa, devido ao fato que os controladores de     
         discos IDE atuais conseguem remapear bad blocks automaticamente. Leia   
         essa pergunta para mais informac,oes.                                   
                                                                                 
         Para corrigir esse problema depois de uma atualizac,ao, e necessario    
         mover fisicamente o disco com problemas para um outro sistema FreeBSD   
         funcional e usar o disklabel(8) da forma discutida a seguir.            
   3.12. Como eu fac,o se um disco tem informac,oes criadas pelo bad144 antes de 
         atualizar o sistema, e depois de atualizado para o FreeBSD 4.0 ou       
         posterior, a inicializac,ao falha?                                      
         Use o disklabel(8) para identificar esse ambiente. disklabel -r drive   
         device vai te mostrar o conteudo do disco. Procure o campo flags. Se    
         encontrar a informac,ao flags: badsect e porque esse disco esta usando  
         o bad144. Por exemplo, o disco a seguir tem o bad144 habilitado:        
                                                                                 
         # disklabel -r wd0                                                      
         # /dev/rwd0c:                                                           
         type: ESDI                                                              
         disk: wd0s1                                                             
         label:                                                                  
         flags: badsect                                                          
         bytes/sector: 512                                                       
         sectors/track: 63                                                       
   3.13. Como eu removo o bad144 do meu sistema anterior ao 4.X de forma que eu  
         possa atualiza-lo com seguranc,a?                                       
         Use o comando disklabel -e -rwd0 para editar as informac,oes do seu     
         disco. Basta retirar a palavra badsect do seu campo flags, salvar a     
         alterac,ao e sair do programa. O bad144 ainda estara ocupando algum     
         espac,o no seu disco, mas ele estara funcional para serie 4.X e         
         posteriores.                                                            
                                                                                 
         Caso seu disco tenha um numero muito alto de bad blocks, e recomendado  
         a troca do disco.                                                       
   3.14. Coisas estranhas acontecem quando inicio o sistema com o disco de       
         instalac,ao! O que esta acontecendo?                                    
         Se sua maquina esta desligando ou espontaneamente reiniciando sempre    
         que voce tenta iniciar o sistema com o disco de instalac,ao, aqui vao   
         algumas perguntas que voce deveria fazer a si mesmo:                    
                                                                                 
          1. O disco de instalac,ao foi feito a partir de um disquete novo,      
             recem formatado e completamente livre de erros (de preferencia      
             algum disco que acabou de sair da caixa, ao contrario desse seu     
             disco que estava perdido ha quase 3 anos debaixo da cama)?          
                                                                                 
          2. Voce baixou da rede a imagem em modo binario? (nao se envergonhe,   
             ate o melhor de nos ja baixou um arquivo binario em modo ASCII ao   
             menos uma vez na vida!)                                             
                                                                                 
          3. No Windows 95 ou 98, voce usou o fdimage ou o rawrite em modo DOS?  
             Esses sistemas operacionais as vezes interferem na forma com que os 
             programas escrevem dados diretamente no hardware, exatamente o que  
             o processo de criac,ao da imagem de disco faz, mesmo que voce       
             execute um prompt do DOS no ambiente grafico o problema pode        
             ocorrer.                                                            
                                                                                 
         Ainda existem noticias de arquivos de imagens sendo corrompidos pelo    
         Netscape, durante o download, por isso e mais seguro utilizar um        
         cliente de FTP diferente.                                               
   3.15. Eu inicializei o FreeBSD a partir do meu CDROM ATAPI, mas o programa de 
         instalac,ao diz que o CDROM nao foi encontrado. Para onde ele foi?      
         A causa desse problema curioso e a configurac,ao errada do seu drive de 
         CDROM. Hoje em dia muitos PCs vem com o CDROM instalado como escravo na 
         segunda controladora IDE, sem nenhum disco ou drive optico do tipo      
         mestre na mesma controladora. De acordo com as especificac,oes ATAPI    
         esse tipo de configurac,ao e incorreta e ilegal. Alguns sistemas, como  
         o Windows, simplesmente ignoram uma serie de especificac,oes legais na  
         arquitetura de computadores pessoais, e acabam oferecendo suporte a     
         essa configurac,ao erronea - o que mais tarde pode causar outros        
         conflitos. Depois que o sistema inicia, a BIOS passa a ignorar esse     
         drive, e por isso o FreeBSD nao consegue encontra-lo, para completar a  
         instalac,ao.                                                            
                                                                                 
         Reconfigure o seu computador de forma que o CDROM esteja como mestre na 
         sua controladora IDE, ou que exista um outro periferico como mestre na  
         controladora onde o CD estiver como escravo.                            
   3.16. Posso instalar o FreeBSD no meu laptop via PLIP (IP em Linha Paralela)? 
         Claro. Use o cabo laplink padrao. Caso necessario, verifique a sec,ao   
         de PLIP do Manual do FreeBSD para obter detalhes sobre a instalac,ao do 
         FreeBSD via rede em porta paralela.                                     
                                                                                 
         Se voce esta usando o FreeBSD 3.X ou anterior, de uma olhada na pagina  
         de Computac,ao Movel.                                                   
   3.17. Qual geometria eu devo utilizar para um disco?                          
           Nota:                                                                 
                                                                                 
         Por "geometria", nos entendemos o numero de cilindros, cabec,as e       
         setores/trilhas de um disco. Por conveniencia, vamos nos referir `a     
         esses dados como C/H/S (Cylinders/Heads/Sectores). E a partir dessa     
         informac,ao que a BIOS dos PCs definem quais areas de um disco podem    
         ser usadas para leitura/escrita.                                        
                                                                                 
         A geometria de disco costuma causar uma serie de confusoes entre        
         administradores de sistemas menos experientes. Para comec,ar, a         
         geometria fisica de um disco SCSI e totalmente irrelevante, pois o      
         FreeBSD trabalha com blocos de discos. Na verdade, nao existe           
         exatamente "a" geometria fisica de um disco, visto que a densidade de   
         um setor varia de acordo com os discos. Os fabricantes chamam de        
         "geometria fisica" as especificac,oes que eles definem para que o menor 
         espac,o possivel em disco seja desperdic,ado. Em discos IDE, o FreeBSD  
         trabalha com as informac,oes de C/H/S, mas todos os dispositivos        
         modernos, internamente convertem essa informac,oes em referencias a     
         blocos de disco.                                                        
                                                                                 
         O que importa, portanto, e a geometria logica. O valor logico e a       
         resposta que a BIOS obtem quando pergunto "qual sua geometria?" ao      
         disco. E esse valor, entao, que e usado para definir a forma de acesso  
         ao dispositivo de armazenamento. O FreeBSD usa as informac,oes da BIOS  
         quando inicializa (boot), e por isso e extremamente importante obter    
         essa informac,ao de maneira correta. No geral, se voce tem mais de um   
         sistema operacional no mesmo disco, eles devem concordar no valor       
         logico da geometria do disco, caso contrario voce tera serios problemas 
         ao iniciar o sistema.                                                   
                                                                                 
         Em discos SCSI, a geometria `a ser utilizada depende do suporte `a      
         traduc,ao extendida definido na sua controladora de disco (normalmente  
         esse suporte e chamado de "support for DOS disks >1GB", que identifica  
         o suporte `a discos DOS cuja capacidade de armazenamento e maior que    
         1GB - ou alguma identificac,ao similar.). Se essa opc,ao esta           
         desabilitada, entao o C/H/S do disco sera de N cilindros, 64 cabec,as e 
         32 setores/trilhas, onde o valor N equivale a capacidade (em MB) do     
         disco. Por exemplo, um disco de 2GB teria 2048 cilindros, 64 cabec,as e 
         32 setores/trilhas.                                                     
                                                                                 
         Se a opc,ao estiver habilitada (normalmente ela e habilitada por        
         padrao, para sanar algumas limitac,oes de sistemas baseados em MSDOS),  
         e a capacidade do disco forma maior que 1GB, os valores C/H/S do disco  
         serao M cilindros, 63 setores por trilha (nao 64) e 255 cabec,as, sendo 
         'M' a capacidade do disco, em MB, dividido por 7.844238 (!). Entao, por 
         exemplo, o mesmo disco de 2GB nessa situac,ao teria 261 cilindros, 63   
         setores por trilha e 255 cabec,as.                                      
                                                                                 
         Se voce nao entendeu o porque disso, ou se o seu FreeBSD falha no       
         momento de reconhecer a geometria correta do seu disco durante a        
         instalac,ao, existe uma forma de tentar resolver esse problema. Crie    
         uma pequena partic,ao do tipo DOS no seu disco, e verifique se a BIOS   
         consegue identificar corretamente a geometria do mesmo. Caso consiga, a 
         instalac,ao vai se completar com tranqu:ilidade, e a pequena partic,ao  
         DOS pode sempre ser deletada, com o editor de partic,oes do FreeBSD.    
                                                                                 
         Como alternativa, existe uma aplicac,ao gratuitamente disponivel com a  
         distribuic,ao do FreeBSD, chamada de pfdisk.exe. Ela pode ser           
         encontrada sob o diretorio tools no CDROM do FreeBSD ou nos servidores  
         FTP do projeto. Esse programa serve para descobrir qual a geometria     
         usada por outros sistemas operacionais no disco local. Nesse caso, esse 
         valor pode ser definido no editor de partic,oes do FreeBSD.             
   3.18. Existem restric,oes quanto ao particionamento de discos?                
         Sim, existem. A principal delas, e que a partic,ao "root" nao pode ter  
         mais de 1024 cilindros, senao a BIOS nao consegue iniciar o kernel do   
         sistema a partir dessa partic,ao. (Note que essa e uma limitac,ao das   
         BIOS dos computadores pessoais, e nao do FreeBSD).                      
                                                                                 
         Em um disco SCSI, essa limitac,ao implica que a partic,ao raiz (root)   
         deve estar alocada nos primeiros 1024MB do disco (ou nos primeiros      
         4096MB, caso o suporte a traduc,ao extendida esteja habilitada - veja   
         pergunta anterior). Em discos IDE, o valor correspondente equivale a    
         504MB para partic,ao raiz (root).                                       
   3.19. O FreeBSD suporta programas gerenciadores de discos?                    
         O FreeBSD reconhece apenas o "Ontrack Disk Manager". Outros             
         gerenciadores de discos nao sao suportados.                             
                                                                                 
         Se sua intenc,ao e usar o disco com FreeBSD, voce nao precisa de um     
         gerenciador de discos. Basta configurar o disco para o total de espac,o 
         que a BIOS reconhece (normalmente 504MB) e o FreeBSD vai conseguir      
         identificar o tamanho real do disco. Se voce estiver usando um disco    
         antigo com uma controladora MFM, sera necessario avisar ao FreeBSD      
         quantos cilindros o disco tem.                                          
                                                                                 
         Caso queira usar o disco com FreeBSD e algum outro sistema operacional, 
         provavelmente tambem nao sera necessario um gerenciador de discos.      
         Certifique-se apenas que a partic,ao de inicializac,ao (boot) do        
         FreeBSD e a partic,ao do outro sistema operacional estejam nos          
         primeiros 1024 cilindros do disco. Normalmente, para administradores de 
         sistemas que tomam decisoes racionais, 20MB de espac,o em uma partic,ao 
         de inicializac,ao (boot) e mais que o suficiente.                       
   3.20. Quando eu inicio o FreeBSD, eu obtenho a mensagem Missing Operating     
         System. O que esta acontecendo?                                         
         Esse e um caso topico do FreeBSD e o DOS ou qualquer outro sistema      
         operacional discordando de suas definic,oes em relac,ao a geometria do  
         disco. Provavelmente voce tera que reinstalar o FreeBSD, mas se seguir  
         as instruc,oes citadas nas perguntas anteriores, raramente esse         
         problema vai acontecer.                                                 
   3.21. Porque eu nao consigo passar da tela F? do gerenciador de               
         inicializac,ao (boot)?                                                  
         Esse e mais um sintoma do problema descrito na pergunta anterior. A     
         geometria que a sua BIOS reconhece nao equivale ao valor definido no    
         FreeBSD! Se a sua controladora de disco ou sua BIOS suportam o modo de  
         traduc,ao de cilindros (normalmente chamado de ">1GB drive support"),   
         tente alterar essa opc,ao e reinstalar o FreeBSD.                       
   3.22. Eu preciso instalar todos os fontes do sistema operacional?             
         Geralmente nao, mas e altamente recomendavel que voce instale ao menos  
         os fontes base, que incluem inumeros arquivos mencionados ao longo      
         desse documento, como as fontes do sistema, sys que inclui as fontes do 
         kernel do FreeBSD, sem os quais nao se pode criar um kernel             
         personalizado. Nao existe qualquer dependencia do sistema operacional   
         em relac,ao aos seus fontes; com a unica excec,ao do programa           
         config(8), o resto do sistema operacional nao precisa dos fontes para   
         funcionar. Os outros fontes do sistema operacional - exceto os fontes   
         do kernel - podem ser montados remotamente (via NFS, por exemplo) em    
         qualquer lugar, e ainda assim novos binarios podem ser compilados a     
         partir dos mesmos. Devido a restric,ao unica dos fontes do kernel, e    
         recomendavel que os outros fontes nao sejam diretamente montados sob    
         /usr/src mas sim, que sejam montados separadamente e depois             
         interligados com links simbolicos apropriados.                          
                                                                                 
         Tendo todos os fontes disponiveis, e sabendo reconstruir o sistema a    
         partir dos mesmos, sera muito mais facil manter o FreeBSD sincronizado  
         e atualizado com futuros releases.                                      
                                                                                 
         Para escolher um subconjunto dos fontes do sistema, escolha a opc,ao    
         Custom quando estiver na opc,ao Distributions do programa de            
         instalac,ao do sistema.                                                 
   3.23. Eu preciso criar um kernel personalizado?                               
         Construir um novo kernel costumava ser uma obrigac,ao na instalac,ao do 
         FreeBSD, mas hoje em dia existe uma interface de configurac,ao do       
         kernel muito mais amigavel, que permite a redefinic,ao de recursos do   
         sistema. Para acessar essa ferramenta, basta inicializar (boot) o       
         sistema com a opc,ao -c no prompt de (boot:). Em especial, os           
         principais perifericos ISA - normalmente os mais problematicos - podem  
         ser facilmente configurados com essa opc,ao.                            
                                                                                 
         Ainda e recomendavel que se construa um kernel personalizado, apenas    
         com suporte aos equipamentos e caracteristicas do sistema que voce      
         precisa, de forma a economizar recursos no sistema (especialmente       
         memoria RAM), mas essa recompilac,ao nao e mais uma obrigac,ao na       
         maioria dos sistemas - mas e sem duvida um habito saudavel.             
   3.24. Eu devo usar criptografia DES, Blowfish, ou MD5 para senhas do sistema? 
         Como eu defino qual delas o usuario deve usar?                          
         O formato padrao para senhas no FreeBSD e a criptografia MD5. Esse      
         padrao e considerado mais seguro do que os formatos tradicionais de     
         senhas Unix, que normalmente eram baseados no algoritimo DES. O FreeBSD 
         ainda pode trabalhar com senhas em formato DES caso voce precise        
         compartilha-las com sistemas que ainda armazenam suas senhas no formato 
         antigo - e menos seguro - dos sistemas Unix originais (para isso voce   
         tera que instalar a distribuic,ao "crypto" via sysinstall ou apartir do 
         codigo fonte). Instalando as bibliotecas crypto sera possivel utilizar  
         outros tipos de criptografia, como o formato Blowfish, que e ainda mais 
         seguro do que o MD5. A definic,ao de qual codificac,ao utilizar e       
         definida no campo "passwd_format" do arquivo de configurac,oes de       
         login, o /etc/login.conf. Esse campo deve ter o valor "des", "blf"      
         (caso suas bibliotecas estejam disponiveis) ou "md5". Veja a pagina de  
         manuais do login.conf(5) para maiores informac,oes.                     
   3.25. Por que o disco de inicializac,ao (boot) inicia, mas trava na tela      
         Probing Devices...?                                                     
         Se voce tem um drive Zip IDE ou um Jaz conectado ao seu computador,     
         remova-o e tente de novo. A inicializac,ao (boot) de instalac,ao do     
         sistema se confunde as vezes quando esses dispositivos estao            
         disponiveis no computador. Depois da instalac,ao os drives sao          
         reconhecidos e controlados normalmente. Provavelmente - esperamos -     
         esse problema sera corrigido nas proximas versoes.                      
   3.26. Por que ocorre o erro panic: can't mount root, quando eu reinicio o     
         sistema, depois de te-lo instalado.                                     
         Esse problema costuma ocorrer por conta de uma pequena confusao entre   
         os blocos do setor de inicializac,ao (boot) do disco, e as definic,oes  
         de disco no kernel. E um erro tipico apenas de sistemas com dois discos 
         IDE, quando os mesmos estao definidos como disco mestre e escravo, mas  
         em controladoras distintas, e com o FreeBSD instalado na controladora   
         secundaria. Os blocos de inicializac,ao (boot) acham que o sistema esta 
         instalado no segundo disco IDE (o segundo disco reconhecido pela BIOS)  
         enquanto o kernel assume o primeiro disco na segunda controladora IDE.  
         Depois do reconhecimento dos equipamentos do sistema o kernel tenta     
         montar a partic,ao raiz no disco que o bloco de inicializac,ao (boot)   
         acredita ser o disco de inicializac,ao (boot), wd1, ao inves do disco   
         correto na segunda controladora, wd2, e por isso o processo de          
         inicializac,ao falha.                                                   
                                                                                 
         Para corrigir esse problema, voce tem tres opc,oes:                     
                                                                                 
          1. No FreeBSD 3.3 e posteriores, reincie o sistema e aperte Enter na   
             tela Booting kernel in 10 seconds; hit [Enter] to interrupt. Voce   
             sera direcionado ao boot loader.                                    
                                                                                 
             Depois, digite set root_disk_unit="disk_number". disk_number devera 
             ser 0 se o FreeBSD estiver instalado como mestre na primeira        
             controladora IDE, 1 se for o escravo na primeira controladora, 2 se 
             for o mestre da segunda controladora IDE, e 3 se for o escravo na   
             segunda controladora.                                               
                                                                                 
             Depois digite boot, e seu sistema deve ser iniciado corretamente.   
                                                                                 
             Para tornar essa alterac,ao permanente, (para que voce nao tenha    
             que digitar isso na mao toda vez que seu FreeBSD tiver que          
             reiniciar) basta colocar a linha root_disk_unit="disk_number" no    
             arquivo /boot/loader.conf.local.                                    
                                                                                 
          2. Se voce estiver usando o FreeBSD 3.2 ou alguma versao anterior,     
             digite 1:wd(2,a)kernel na prompt de inicializac,ao do sistema e     
             aperte Enter. Se o sistema iniciar normalmente, execute o comando   
             echo "1:wd(2,a)kernel" > /boot.config para tornar essa alterac,ao   
             permanente.                                                         
                                                                                 
          3. Mude o disco com o FreeBSD para primeira controladora IDE.          
                                                                                 
          4. Recompile o kernel, altere as linhas de configurac,ao wd para:      
                                                                                 
          controller      wdc0    at isa? port "IO_WD1" bio irq 14 vector wdintr 
          disk            wd0     at wdc0 drive 0                                
          # disk            wd1     at wdc0 drive 1 # comment out this line      
                                                                                 
          controller      wdc1    at isa? port "IO_WD2" bio irq 15 vector wdintr 
          disk            wd1     at wdc1 drive 0 # change from wd2 to wd1       
          disk            wd2     at wdc1 drive 1 # change from wd3 to wd2       
                                                                                 
             E instale o novo kernel. Se voce mudou seu disco e quer voltar ele  
             para configurac,ao original, mude a ordem deles no PC e reinicie o  
             sistema. Seu sistema deve iniciar com sucesso.                      
   3.27. Quais sao as limitac,oes de memoria?                                    
         A limitac,ao de memoria e de 4 gigabytes. Essa definic,ao foi testada,  
         veja a configurac,ao do wcarchive para obter mais detalhes. Se voce     
         pretende instalar essa quantidade de memoria no FreeBSD, seja           
         cuidadoso. De preferencia para memorias ECC e reduza a capacidade de    
         carga usando modules de memoria de 9 chips, ai inves dos modulos de 18  
         chips.                                                                  
   3.28. Qual a limitac,ao para o sistema de arquivos FFS?                       
         Para o sistema de arquivos FFS, o limite maximo, na teoria e de 8       
         terabytes (para blocos de 2K), ou 16TB para o tamanho padrao dos        
         blocos, que e de 8K. Na pratica os limites variam de 1TB a 4TB de       
         acordo com algumas modificac,oes no sistema de arquivos.                
                                                                                 
         O tamanho maximo para um arquivo no sistema FFS e de 1G de blocos (4TB) 
         caso os blocos sejam de 4K.                                             
                                                                                 
         Tabela 3.1. Tamanho maximo dos arquivos.                                
                                                                                 
         +---------------------------------------------------------------------+ 
         |   Tamanho do    | 2.2.7-stable | 3.0-current | Funciona |   Deve    | 
         |      bloco      |              |             |   com    | funcionar | 
         |-----------------+--------------+-------------+----------+-----------| 
         | 4K              | 4T-1         | 4T-1        | 4T-1     | >4T       | 
         |-----------------+--------------+-------------+----------+-----------| 
         | 8K              | >32G         | 8T-1        | >32G     | 32T-1     | 
         |-----------------+--------------+-------------+----------+-----------| 
         | 16K             | >128G        | 16T-1       | >128G    | 32T-1     | 
         |-----------------+--------------+-------------+----------+-----------| 
         | 32K             | >512G        | 32T-1       | >512G    | 64T-1     | 
         |-----------------+--------------+-------------+----------+-----------| 
         | 64K             | >2048G       | 64T-1       | >2048G   | 128T-1    | 
         +---------------------------------------------------------------------+ 
                                                                                 
         Quando o sistema de arquivos possui blocos de 4K, o triplo de blocos    
         indiretores funcionam, e o limite maximo do sistema de arquivos deveria 
         ser atingido, mas a triplicac,ao dos blocos indiretores (representados  
         aproximadamente pelo resultado de 1K^3 + 1K^2 + 1K) se limita ao valor  
         (erroneo) de 1G-1 no numero de blocos do sistema de arquivos. O limite  
         do numero de blocos deveria ser 2G-1. Mas por causa de alguns problemas 
         com o numero dos blocos no sistema de arquivos, esse valor nao pode ser 
         alcanc,ado quando o tamanho dos blocos no sistema de arquivos e 4K.     
                                                                                 
         Em blocos com tamanho de 8K ou maiores, o limite geral e de 2G-1 no     
         numero de blocos do sistema de arquivos, exceto no FreeBSD -STABLE onde 
         o triplo indireto do numero de blocos pode ser alcanc,ado, de forma que 
         o limite maximo do sistema de arquivos seja representado pela equac,ao  
         ((blocksize/4)^2 + (blocksize/4)), e sob o -CURRENT onde a excec,ao     
         desse limite pode causar problemas.                                     
   3.29. Por que a mensagem de erro archsw.readin.failed me perturba sempre,     
         depois que eu recompilo e carrego um kernel novo?                       
         Voce pode carregar um novo kernel ao especifica-lo diretamente no       
         segundo estagio do processo de inicializac,ao, simplesmente apertando   
         qualquer tecla quando o pipe ( | ) aparecer, antes que o loader seja    
         carregado. Provavelmente voce atualizou todo o sistema operacional, mas 
         recompilou apenas o kernel, sem dar um make world. Essa ac,ao e         
         arriscada e nao e suportada. Fac,a um Make World!!!!                    
   3.30. Como eu atualizo meu sistema da serie 3.X para 4.X?                     
         E altamente recomendavel que voce use snapshots binarios para fazer     
         isso. Snapshots binario do 4-STABLE podem ser encontrados em            
         ftp://releng4.FreeBSD.org/.                                             
                                                                                 
         Devido `as inumeras alterac,oes da serie 3.X para serie 4-STABLE, uma   
         atualizac,ao direta, a partir dos fontes, corre grande riscos de        
         falhar. A atualizac,ao dos fontes pode ser feita, inclusive desde as    
         primordias versoes 2.X ate as mais recentes 4-STABLE ou ate mesmo       
         5-CURRENT, mas essa atualizac,ao deve ser realizada em varios estagios. 
         Primeiro, atualize a sua serie 3.X pra versao mais recente, a 3-STABLE  
         (RELENG_3). Depois atualize para o 4.1.1-RELEASE                        
         (RELENG_4_1_1_RELEASE). Finalmente, tente atualizar para o 4-STABLE     
         (RELENG_4).                                                             
                                                                                 
         Se voce pretende atualizar seu sistema a partir dos fontes, por         
         gentileza, refira-se ao Manual do FreeBSD para maiores informac,oes.    
                                                                                 
           Cuidado:                                                              
                                                                                 
         A atualizac,ao direta por meio dos fontes nunca e aconselhavel para     
         usuarios inexperientes, a atualizac,ao da serie 3.X para 4.X portanto e 
         menos aconselhavel ainda, portanto, caso voce nao tenha experiencias    
         com esse processo de atualizac,ao, leia todas as instruc,oes            
         disponiveis no Manual do FreeBSD com cuidado.                           
   3.31. Onde estao essas "especificac,oes de seguranc,a"?                       
         Uma "especificac,ao de seguranc,a" se refere a um conjunto de           
         configurac,oes e de opc,oes no sistema, que tendem a garantir um nivel  
         desejavel de seguranc,a, por meio de definir ou desabilitar algumas     
         opc,oes e programas no FreeBSD. Para maiores detalhes, veja a sec,ao de 
         Especificac,ao de Seguranc,a no capitulo de pos-instalac,ao do Manual   
         do FreeBSD.                                                             

     ----------------------------------------------------------------------

   [1] Em um e-mail enviado por Keith Frechettei <kfrechet@us.ibm.com>.

                    Capitulo 4. Compatibilidade de Hardware

   4.1. O FreeBSD suporta outras arquiteturas alem da x86?

   4.2. Preciso adquirir um novo hardware para um sistema com FreeBSD. Qual o
   melhor modelo/marca/tipo?

   4.3. Que tipos de discos rigido o FreeBSD suporta?

   4.4. Quais controladoras SCSI sao suportadas pelo FreeBSD?

   4.5. Quais drives de CDROM sao suportados pelo FreeBSD?

   4.6. Quais drives de CD-RW sao suportados pelo FreeBSD?

   4.7. O FreeBSD suporta ZIP Drives?

   4.8. O FreeBSD suporta discos JAZ, EZ ou outras unidades removiveis?

   4.9. Que dispositivos seriais de multiplas portas sao suportados pelo
   FreeBSD?

   4.10. O FreeBSD suporta meu teclado USB?

   4.11. Eu tenho um mouse de barramento nao tradicional. Como o configuro?

   4.12. Como eu uso o meu mouse ("mouse port" ou "keyboard") PS/2?

   4.13. E possivel usar mouse de alguma forma, fora do sistema X Windows?

   4.14. Como eu copio e colo com o mouse em um console modo texto?

   4.15. O FreeBSD suporta mouse USB?

   4.16. Eu tenho um mouse do tipo Wheel com uma rodinha e botoes adicionais.
   Posso usa-lo no FreeBSD?

   4.17. Por que meu mouse PS/2 do tipo Wheel fica louco, pulando pela tela?

   4.18. Como eu uso o mouse/bolinha-de-rolagem/touchpad no meu laptop?

   4.19. Que tipos de dispositivos de fitas sao suportados pelo FreeBSD?

   4.20. O FreeBSD suporta bibliotecas de fitas?

   4.21. Quais placas de som sao suportadas pelo FreeBSD?

   4.22. Qual a soluc,ao para falta de som da minha placa es1370 com o
   controlador pcm?

   4.23. Quais placas de rede o FreeBSD suporta?

   4.24. Eu nao tenho um co-processador matematico. Isso e ruim?

   4.25. Que outros dispositivos o FreeBSD suporta?

   4.26. O FreeBSD suporta gerenciamento de energia no meu laptop?

   4.27. Por que placas Micron travam na inicializac,ao(boot)?

   4.28. Por que o FreeBSD nao reconhece nenhuma controladora SCSI Adaptec?

   4.29. Por que o FreeBSD nao encontra o meu Modem Plug & Play interno?

   4.30. O FreeBSD suporta software modems, como os Winmodems?

   4.31. Como eu fac,o para o interpretador(prompt) de inicializac,ao(boot):
   aparecer no console serial?

   4.32. Por que a placa de rede PCI da 3Com nao funciona com motherboards
   Micron?

   4.33. O FreeBSD suporta Multiprocessamento Simetrico (SMP)?

   4.34. O disquete de inicializac,ao(boot) trava em um computador cuja
   placa-mae e a ASUS K7V. O que eu fac,o?

4.1.  O FreeBSD suporta outras arquiteturas alem da x86?                              
      Sim. Atualmente o FreeBSD tem suporte para arquiteturas Intel x86 e DEC (agora  
      Compaq) Alpha. Tambem existe um interesse conhecido no port FreeBSD para        
      plataforma SPARC. Caso exista interesse em participar desse projeto ou saber    
      mais informac,oes sobre port para esta arquitetura, queira juntar-se `a lista   
      de discussao do lista de discussao sobre o port do FreeBSD para a plataforma    
      SPARC. As plataformas IA-64 e Power-PC foram recentemente adicionadas `a lista  
      de arquiteturas que serao futuramente suportadas; entre na lista do lista de    
      discussao sobre o port do FreeBSD para a plataforma IA64 e/ou lista de          
      discussao sobre o port do FreeBSD para PowerPC para mais informac,oes sobre     
      tais arquiteturas. Para discussoes gerais sobre outras arquiteturas, entre na   
      lista de discussao lista de discussao sobre o port do FreeBSD para plataformas  
      que nao sejam Intel.                                                            
                                                                                      
      Caso seu computador seja de uma arquitetura nao suportada pelo FreeBSD e        
      precise de uma soluc,ao imediata, nos sugerimos uma olhada no NetBSD ou         
      OpenBSD.                                                                        
4.2.  Preciso adquirir um novo hardware para um sistema com FreeBSD. Qual o melhor    
      modelo/marca/tipo?                                                              
      Essa e uma discussao tradicional nas listas do FreeBSD. Partindo do principio   
      que os tipos de equipamentos e suas caracteristicas alteram-se de forma muita   
      rapida, e que nos tentamos suportar essas mudanc,as e torna-las suportadas, e   
      fortemente recomendado que voce sempre leia as Notas de Hardware e fac,a uma    
      busca nos historico das listas de discussao antes de perguntar sobre os         
      melhores e mais novos equipamentos disponiveis. E muito provavel que as         
      informac,oes que voce quer sobre determinado equipamento tenham sido discutidas 
      ha menos de uma semana.                                                         
                                                                                      
      Caso voce esteja procurando informac,oes sobre laptops, verifique o historico   
      da lista FreeBSD-mobile. Do contrario, o historico da FreeBSD-questions sera o  
      mais indicado, ou de alguma lista especifica sobre o tipo de hardware em        
      questao.                                                                        
4.3.  Que tipos de discos rigido o FreeBSD suporta?                                   
      O FreeBSD suporta discos EIDE e SCSI (com alguma controladora compativel; veja  
      a proxima pergunta) e todos os outros discos que usam a interface de controle   
      original da "Western Digital" (MFM, RLL, ESDI, e e claro IDE). Algumas          
      controladoras ESDI que usam interfaces de controle proprietaria nao funcionarao 
      no FreeBSD: mude para controladoras do tipo WD1002/3/6/7 ou algum clone dessa   
      interface.                                                                      
4.4.  Quais controladoras SCSI sao suportadas pelo FreeBSD?                           
      Veja a lista completa de equipamentos suportados nas Notas de Hardware atuais.  
4.5.  Quais drives de CDROM sao suportados pelo FreeBSD?                              
      Quaisquer drives SCSI ligados `a controladoras suportadas sao controladas pelo  
      FreeBSD.                                                                        
                                                                                      
      As seguintes interfaces proprietarias de CDROM tambem sao suportadas:           
                                                                                      
        * Mitsumi LU002 (8bits), LU005 (16bits) e FX001D (16bits velocidade 2x (2x    
          Speed)).                                                                    
                                                                                      
        * Sony CDU 31/33A.                                                            
                                                                                      
        * CDROM Sound Blaster nao-SCSI.                                               
                                                                                      
        * CDROM Matsushita/Panasonic.                                                 
                                                                                      
        * CDROMs IDE compativeis com o padrao ATAPI.                                  
                                                                                      
      Todo equipamento nao-SCSI e reconhecidamente mais lento do que os SCSI, e       
      alguns drives de CDROM ATAPI podem nao funcionar corretamente.                  
                                                                                      
      A partir da versao 2.2, todos os CDROM do FreeBSD distribuidos pela FreeBSD     
      Mall podem ser iniciados (booting) diretamente pela unidade de CD.              
4.6.  Quais drives de CD-RW sao suportados pelo FreeBSD?                              
      O FreeBSD suporta qualquer tipo de unidade CD-RW ou CD-R IDE compativeis com o  
      padrao ATAPI. No FreeBSD 4.0 e posteriores, leia a pagina de manual do          
      burncd(8).Em versoes anteriores, veja os exemplos de utilizac,ao desses         
      equipamentos em /usr/share/examples/atapi.                                      
                                                                                      
      O FreeBSD tambem suporta qualquer drive de CD-R ou CD-RW do tipo SCSI. Instale  
      o aplicativo cdrecord a partir da colec,ao de ports ou como pacote, e tenha     
      certeza de ter o device pass compilado no seu kernel.                           
4.7.  O FreeBSD suporta ZIP Drives?                                                   
      O FreeBSD suporta ZIP Drives do tipo SCSI, e claro. Essa unidade deve ser       
      configurada apenas nos SCSI ID numeros 5 ou 6, mas se a sua BIOS tem suporte `a 
      inicializac,o(boot) pela unidade SCSI, essa caracteristica pode ser usada sem   
      problemas. Nao esta claro exatamente quais adaptadores SCSI suportam a          
      caracteristica de inicializac,o(boot) em IDs diferentes de 0 ou 1, portanto     
      sera necessario consultar o manual do seu equipamento para obter informac,oes   
      mais precisas sobre esse recurso.                                               
                                                                                      
      Os ZIP Drives padrao ATAPI (IDE) sao suportados pelo FreeBSD desde a versao     
      2.2.6 e em todas as posteriores.                                                
                                                                                      
      O FreeBSD tem suporte ainda a ZIP Drives de Porta Paralela desde a versao 3.0.  
      Caso seu sistema seja dessa versao ou superior, verifique o suporte a scbus0,   
      da0, ppbus0, vp0 no seu kernel (o kernel GENERIC tem todos esses suportes,      
      exceto `a device vp0). Com esses suportes presentes no kernel, o drive de Porta 
      Paralela deve estar disponivel em /dev/da0s4. Os discos ZIP podem ser montados  
      usando o comando mount /dev/da0s4 /mnt OU (discos formatados como DOS)          
      mount_msdos /dev/da0s4 /mnt, como e de costume.                                 
                                                                                      
      Verifique tambem o FAQ sobre discos removiveis disponivel ainda nesse capitulo, 
      e as notas sobre "formatac,ao" no capitulo de Administrac,ao.                   
4.8.  O FreeBSD suporta discos JAZ, EZ ou outras unidades removiveis?                 
      Fora a versao IDE dos discos EZ, os outros discos sao todos do tipo SCSI, e     
      portanto devem todos ser reconhecidos como discos SCSI no FreeBSD. O drive EZ   
      tipo IDE deve ser reconhecido como disco IDE.                                   
                                                                                      
      Nao ha uma certeza quanto `a forma que o FreeBSD trata uma alterac,ao de midia  
      enquanto o sistema esta em pleno uso, entao e necessario desmontar a unidade    
      antes de trocar de disco e garantir que qualquer unidade externa esteja ligada  
      quando o sistema for bootado, de forma que o FreeBSD possa reconhece-las.       
                                                                                      
      Veja essa nota sobre "formatac,ao".                                             
4.9.  Que dispositivos seriais de multiplas portas sao suportados pelo FreeBSD?       
      Existe uma lista dessas unidades na sec,ao de Dispositivos Diversos do Manual   
      do FreeBSD.                                                                     
                                                                                      
      Alguns dispositivos clones parecem tambem funcionar normalmente no sistema, em  
      especial equipamentos que se dizem ser AST compativeis.                         
                                                                                      
      Verifique a pagina de manual do sio(4) para obter mais informac,oes quanto `a   
      configurac,ao desses dispositivos.                                              
4.10. O FreeBSD suporta meu teclado USB?                                              
      O suporte a dispositivos USB foi adicionado no FreeBSD desde a versao 3.1.      
      Contudo, na versao 3.1, o suporte ainda e muito preliminar, e alguns            
      equipamentos podem nao funcionar antes da versao 3.2. Caso voce queira usar o   
      suporte a teclados USB, tente o seguinte.                                       
                                                                                      
       1. No FreeBSD 3.2 ou posterior.                                                
                                                                                      
       2. Adicione as seguintes linhas no arquivo de configurac,ao do seu kernel, e   
          recompile-o.                                                                
                                                                                      
       device  uhci                                                                   
       device  ohci                                                                   
       device  usb                                                                    
       device  ukbd                                                                   
       options KBD_INSTALL_CDEV                                                       
                                                                                      
          Em versoes anteriores `a 4.0, use:                                          
                                                                                      
       controller      uhci0                                                          
       controller      ohci0                                                          
       controller      usb0                                                           
       controller      ukbd0                                                          
       options         KBD_INSTALL_CDEV                                               
                                                                                      
       3. No diretorio /dev, crie os seguintes devices:                               
                                                                                      
       # cd /dev                                                                      
       # ./MAKEDEV kbd0 kbd1                                                          
                                                                                      
       4. Edite o /etc/rc.conf e adicione as seguintes linhas:                        
                                                                                      
       usbd_enable="YES"                                                              
       usbd_flags=""                                                                  
                                                                                      
      Depois de reiniciado(rebooting) o sistema, o teclado AT aparece como /dev/kbd0i 
      e o teclado USB aparece como /dev/kbd1 , se ambos estiverem conectados ao       
      sistema. Se estiver somente o teclado USB, ele estara como /dev/ukbd0.          
                                                                                      
      Caso queira usar o teclado USB no console, e necessario informar explicitamente 
      ao driver do console que ele deve usar esse teclado. Isso pode ser feito com o  
      seguinte comando em tempo de inicializac,ao do sistema:                         
                                                                                      
      # kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null                              
                                                                                      
      Note que se o teclado USB for o unico teclado disponivel, ele sera acessado via 
      /dev/kbd0, portanto a linha de comando deve-se parecer com:                     
                                                                                      
      # kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/null                              
                                                                                      
      O arquivo /etc/rc.i386 e um bom lugar para colocar o comando acima.             
                                                                                      
      Depois de configurado, o teclado USB deve funcionar tambem no ambiente X, sem   
      nenhuma outra configurac,ao especial.                                           
                                                                                      
      Conectar e desconectar o teclado USB com o sistema ligado ainda nao e um        
      comportamento completamente suportado, portando e aconselhavel ligar o teclado  
      antes de iniciar o sistema e apenas desliga-lo depois que o computador estiver  
      desligado, para evitar possiveis problemas.                                     
                                                                                      
      Veja a pagina de manual do ukbd(4) para maiores informac,oes.                   
4.11. Eu tenho um mouse de barramento nao tradicional. Como o configuro?              
      O FreeBSD suporta o barramento de mouse tradicional do tipo InPort fabricados   
      pela Microsoft, Logitech e ATI. O suporte a esse periferico e compilado por     
      padrao no kernel GENERIC do FreeBSD na versao 2.X, mas nao e suportado por      
      padrao na versao 3.0 e posteriores. Se voce quer recompilar um kernel com       
      suporte ao barramento de mouse, adicionando a linha ao seu arquivo de           
      configurac,ao:                                                                  
                                                                                      
      No FreeBSD 3.0 e anteriores, adicione:                                          
                                                                                      
      device mse0 at isa? port 0x23c tty irq5 vector mseintr                          
                                                                                      
      Na serie 3.X do FreeBSD, a linha deve ser:                                      
                                                                                      
      device mse0 at isa? port 0x23c tty irq5                                         
                                                                                      
      E na serie 4.X e posteriores, a linha deve ser:                                 
                                                                                      
      device mse0 at isa? port 0x23c irq5                                             
                                                                                      
      Barramentos de mouse costumam ter uma interface dedicada que permite definir o  
      enderec,o de memoria e a IRQ que a placa vai funcionar. Nesse caso, refira-se   
      ao manual do seu equipamento e `a pagina de manual do mse(4) para maiores       
      informac,oes.                                                                   
4.12. Como eu uso o meu mouse ("mouse port" ou "keyboard") PS/2?                      
      Em versoes posteriores ao 2.2.5, o kernel do FreeBSD inclui por padrao o        
      suporte ao device psm, que controlara seu mouse PS/2 desde o momento de         
      inicializac,ao do sistema.                                                      
                                                                                      
      Caso seu FreeBSD seja 2.1.X ou similar, o suporte a PS/2 pode ser incluido no   
      kernel, no momento da instalac,ao, ou mesmo depois desse processo, com a opc,ao 
      -c na tela de boot: do sistema. O suporte nesse caso e desabilitado por padrao  
      e por isso deve ser explicitamente habilitado.                                  
                                                                                      
      Caso sua versao de FreeBSD seja antiga, adicione a seguinte linha ao seu kernel 
      e recompile-o:                                                                  
                                                                                      
      No FreeBSD 3.0 e anteriores, a linha e:                                         
                                                                                      
      device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr           
                                                                                      
      No FreeBSD 3.1 e posteriores da mesma serie, a linha deve ser:                  
                                                                                      
      device psm0 at isa? tty irq 12                                                  
                                                                                      
      No FreeBSD 4.0 e posteriores, a linha e:                                        
                                                                                      
      device psm0 at atkbdc? irq 12                                                   
                                                                                      
      Veja a sec,ao de configurac,ao do kernel no Manual do FreeBSD caso voce nao     
      tenha experiencia com a compilac,ao do kernel.                                  
                                                                                      
      Uma vez detectado o psm0 durante a inicializac,ao (boot) do seu sistema, tenha  
      certeza de que existe uma entrada psm0 no /dev. Fac,a o seguinte:               
                                                                                      
      # cd /dev; sh MAKEDEV psm0                                                      
                                                                                      
      logado como usuario root.                                                       
4.13. E possivel usar mouse de alguma forma, fora do sistema X Windows?               
      Se estiver utilizando o driver padrao de console, o syscons, pode-se usar o     
      mouse para copiar & colar texto. Execute o mouse daemon, moused, para habilitar 
      o mouse nos consoles virtuais da seguinte forma:                                
                                                                                      
      # moused -p /dev/xxxx -t yyyy                                                   
      # vidcontrol -m on                                                              
                                                                                      
      Onde xxxx deve ser substituido pelo nome de device do seu mouse e yyyy pelo     
      tipo de protocolo do mesmo. Veja a pagina de manual do moused(8) para maiores   
      informac,oes quanto aos tipos de protocolos suportados.                         
                                                                                      
      E provavel que voce queira usar o mouse daemon automaticamente, sempre que o    
      FreeBSD for iniciado. Na versao 2.2.1, defina as seguintes variaveis, no        
      arquivo /etc/sysconfig.                                                         
                                                                                      
      mousedtype="yyyy"                                                               
      mousedport="xxxx"                                                               
      mousedflags=""                                                                  
                                                                                      
      Da versao 2.2.2 ate a 3.0, defina as seguintes variaveis no /etc/rc.conf.       
                                                                                      
      moused_type="yyyy"                                                              
      moused_port="xxxx"                                                              
      moused_flags=""                                                                 
                                                                                      
      Da versao 3.1 em diante, caso voce tenha um mouse PS/2 e necessario apenas      
      adicionar a opc,ao moused_enable="YES" no arquivo /etc/rc.conf.                 
                                                                                      
      E se a intenc,ao e usar o mouse em todos os terminais virtuais ao inves de      
      apenas no console, insira a seguinte linha no /etc/rc.conf.                     
                                                                                      
      allscreens_flags="-m on"                                                        
                                                                                      
      Desde a versao 2.2.6 do FreeBSD, o mouse daemon e capaz de detectar o tipo de   
      protocolo do mouse automaticamente, a nao ser que o dispositivo em questao seja 
      um mouse serial muito velho. Defina auto para que o programa identifique o      
      protocolo do mouse automaticamente.                                             
                                                                                      
      Quando o daemon esta rodando, o acesso ao dispositivo deve ser coordenado entre 
      ele e qualquer outra aplicac,ao, como o X-Windows, por exemplo. Leia uma outra  
      pergunta sobre esse assunto.                                                    
4.14. Como eu copio e colo com o mouse em um console modo texto?                      
      Uma vez configurado o mouse (veja a pergunta anterior), aperte o botao 1 (botao 
      esquerdo) do mouse e mova o cursor por toda a regiao desejada, selecionando o   
      texto em questao. Depois, basta apertar o botao 2 (do meio) ou o botao 3        
      (direito) para colar o conteudo selecionado anteriormente.                      
                                                                                      
      A partir da versao 2.2.6 o botao 2 cola o texto copiado, enquanto o botao 3     
      ``extende'' a regiao selecionada. Caso seu mouse nao tenha o botao do meio, e   
      possivel remapear (ou emular) os botoes do periferico usando algumas opc,oes    
      especificas do mouse daemon. Veja a pagina de manual do moused(8) para maiores  
      detalhes.                                                                       
4.15. O FreeBSD suporta mouse USB?                                                    
      No FreeBSD 3.1 existe um suporte preliminar `a recursos USB que nao funciona    
      muito bem dependendo da situac,ao. A partir da versao 4.0 o FreeBSD suporta     
      dispositivos USB por padrao. Caso queira usar um mouse USB no FreeBSD 3.X, siga 
      as seguintes instruc,oes.                                                       
                                                                                      
       1. Atualize seu sistema para FreeBSD 3.2 ou posterior.                         
                                                                                      
       2. Adicione o seguinte suporte ao seu kernel, e recompile-o:                   
                                                                                      
       device  uhci                                                                   
       device  ohci                                                                   
       device  usb                                                                    
       device  ums                                                                    
                                                                                      
          Em versoes anteriores `a 4.0 o suporte `a ser adicionado e:                 
                                                                                      
       controller        uhci0                                                        
       controller        ohci0                                                        
       controller        usb0                                                         
       device            ums0                                                         
                                                                                      
       3. Entre no diretorio /dev e crie os devices necessarios:                      
                                                                                      
       # cd /dev                                                                      
       # ./MAKEDEV ums0                                                               
                                                                                      
       4. Edite o /etc/rc.conf e adicione as linhas:                                  
                                                                                      
       moused_enable="YES"                                                            
       moused_type="auto"                                                             
       moused_port="/dev/ums0"                                                        
       moused_flags=""                                                                
       usbd_enable="YES"                                                              
       usbd_flags=""                                                                  
                                                                                      
          Veja a sec,ao anterior para uma discussao mais detalhada sobre o moused.    
                                                                                      
       5. Para configurar o mouse USB no X, edite o XF86Config e, caso esteja usando  
          o XFree86 3.3.2 ou posterior, adicione as seguintes linhas na sec,ao        
          Pointer:                                                                    
                                                                                      
       Device    "/dev/sysmouse"                                                      
       Protocol        "Auto"                                                         
                                                                                      
          Caso esteja usando uma versao anterior do Xfree86, adicione tambem na       
          sec,ao Pointer as seguintes linhas:                                         
                                                                                      
       Device    "/dev/sysmouse"                                                      
       Protocol        "SysMouse"                                                     
                                                                                      
      Leia tambem uma outra pergunta sobre o uso do mouse em ambiente X.              
                                                                                      
      Conectar e desconectar o teclado USB com o sistema ligado ainda nao e um        
      comportamento completamente suportado, portando e aconselhavel ligar o teclado  
      antes de iniciar o sistema e apenas desliga-lo depois que o computador estiver  
      desligado, para evitar possiveis problemas.                                     
4.16. Eu tenho um mouse do tipo Wheel com uma rodinha e botoes adicionais. Posso      
      usa-lo no FreeBSD?                                                              
      A resposta, infelizmente e, "Depende". Esse tipo de mouse tem algumas           
      caracteristicas especiais que requerem o uso de drivers especiais na maioria    
      dos casos. A nao ser que o device do seu mouse tenha suporte especifico, ou se  
      a aplicac,ao em questao reconhecer esse tipo de equipamento, ele ira funcionar  
      simplesmente como um mouse tradicional de dois ou tres botoes.                  
                                                                                      
      Mais informac,oes sobre o uso de mouse do tipo Wheel em ambiente X Windows,     
      refira-se a essa sec,ao.                                                        
4.17. Por que meu mouse PS/2 do tipo Wheel fica louco, pulando pela tela?             
      O suporte ao mouse PS/2 no FreeBSD 3.2 e anteriores e falho quanto a mouses do  
      tipo Wheel, incluindo o modelo M-S48 da Logitech e seus similares OEM. Aplique  
      o seguinte patch no arquivo /sys/i386/isa/psm.c e recompile seu kernel:         
                                                                                      
      Index: psm.c                                                                    
      ===================================================================             
      RCS file: /src/CVS/src/sys/i386/isa/Attic/psm.c,v                               
      retrieving revision 1.60.2.1                                                    
      retrieving revision 1.60.2.2                                                    
      diff -u -r1.60.2.1 -r1.60.2.2                                                   
      --- psm.c        1999/06/03 12:41:13 1.60.2.1                                   
      +++ psm.c        1999/07/12 13:40:52 1.60.2.2                                   
      @@ -959,14 +959,28 @@                                                           
           sc->mode.packetsize = vendortype[i].packetsize;                            
                                                                                      
           /* set mouse parameters */                                                 
      +#if 0                                                                          
      +    /*                                                                         
      +     * A version of Logitech FirstMouse+ won't report wheel movement,          
      +     * if SET_DEFAULTS is sent...  Don't use this command.                     
      +     * This fix was found by Takashi Nishida.                                  
      +     */                                                                        
           i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS);                         
           if (verbose >= 2)                                                          
               printf("psm%d: SET_DEFAULTS return code:%04x\n", unit, i);             
      +#endif                                                                         
           if (sc->config & PSM_CONFIG_RESOLUTION) {                                  
               sc->mode.resolution                                                    
                   = set_mouse_resolution(sc->kbdc,                                   
      -                (sc->config & PSM_CONFIG_RESOLUTION) - 1);                     
      +                       (sc->config & PSM_CONFIG_RESOLUTION) - 1);              
      +    } else if (sc->mode.resolution >= 0) {                                     
      +        sc->mode.resolution                                                    
      +            = set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution);        
      +    }                                                                          
      +    if (sc->mode.rate > 0) {                                                   
      +        sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate); 
           }                                                                          
      +    set_mouse_scaling(sc->kbdc, 1);                                            
                                                                                      
           /* request a data packet and extract sync. bits */                         
           if (get_mouse_status(sc->kbdc, stat, 1, 3) < 3) {                          
                                                                                      
      Em versoes posteriores `a 3.2, o suporte deve funcionar.                        
4.18. Como eu uso o mouse/bolinha-de-rolagem/touchpad no meu laptop?                  
      Por gentileza, leia a pergunta anterior. Verifique tambem a pagina de           
      Computac,ao Movel do Projeto.                                                   
4.19. Que tipos de dispositivos de fitas sao suportados pelo FreeBSD?                 
      O FreeBSD suporta dispositivos de fitas do tipo SCSI e QIC-36 (com interface    
      QIC-02). Tal suporte inclui drives 8-mm (tambem conhecidos como Exabyte) e      
      unidades de fita DAT.                                                           
                                                                                      
      Alguns dispositivos 8-mm mais antigos nao sao compativeis com o padrao SCSI-2 e 
      por isso podem nao funcionar bem no FreeBSD.                                    
4.20. O FreeBSD suporta bibliotecas de fitas?                                         
      O FreeBSD suporta alternadores (tambem conhecidos com carrosseis) SCSI, usando  
      o device ch(4) e o comando chio(1). Os detalhes relativos a como controlar o    
      alternador de fitas podem ser encontrados na pagina de manual do chio(1).       
                                                                                      
      Caso voce nao esteja usando o AMANDA ou qualquer outro produto que entenda o    
      funcionamento dos alternadores, lembre-se que tal equipamento simplesmente      
      alterna a posic,ao da fita, de um compartimento para outro, e portanto deve-se  
      saber em qual compartimento a fita esta e para qual ela deve voltar.            
4.21. Quais placas de som sao suportadas pelo FreeBSD?                                
      O FreeBSD suporta as placas SoundBlaster, SoundBlaster Pro, SoundBlaster 16,    
      Pro Audio Spectrum 16, AdLib e Gravis UltraSound. Existe ainda um suporte -     
      limitado, e verdade - para as placas MPU-401 e placas MIDI compativeis. Placas  
      de som que estiverem em conformidade com a especificac,ao MSS (Microsoft Sound  
      System) tambem sao suportadas pela controladora pcm do kernel.                  
                                                                                      
        Nota:                                                                         
                                                                                      
      Esse suporte e especifico para apenas som! Exceto no caso das placas            
      SoundBlaster, o suporte nao inclui controle de joysticks, CDROMs ou SCSI. A     
      interface SCSI da SoundBlaster e alguns CDROMs nao-SCSI sao suportados, mas o   
      sistema nao pode iniciar(booting) a partir desses dispositivos.                 
4.22. Qual a soluc,ao para falta de som da minha placa es1370 com o controlador pcm?  
      Basta aumentar o volume do seu som ;-) Use os seguintes comandos, sempre que o  
      sistema iniciar:                                                                
                                                                                      
      # mixer pcm 100 vol 100 cd 100                                                  
4.23. Quais placas de rede o FreeBSD suporta?                                         
      Veja a sec,ao de Placas Ethernet do Manual do FreeBSD para uma lista detalhada  
      dos dispostivos suportados.                                                     
4.24. Eu nao tenho um co-processador matematico. Isso e ruim?                         
        Nota:                                                                         
                                                                                      
      Vale apenas para proprietarios de 386/486SX/486SLC - outras maquinas terao um   
      co-processador integrado `a CPU.                                                
                                                                                      
      No geral, a falta de um co-processador matematico nao traz nenhum problema, mas 
      existem algumas circunstancias onde voce encontrara serias limitac,oes, seja no 
      desempenho ou na precisao da emulac,ao dos seus calculos (veja a sec,ao de      
      emulac,ao FP). Por exemplo, a renderizac,ao de circulos e arcos no ambiente     
      grafico sera uma tarefa muito lenta. E recomendavel comprar um co-processador   
      matematico; vale a pena.                                                        
                                                                                      
        Nota:                                                                         
                                                                                      
      Alguns co-processadores matematicos sao melhores que outros. E estranho ter que 
      dizer isso, mas ninguem nunca se deu mal ao comprar co-processadores Intel,     
      portanto tenha certeza absoluta que o produto vai funcionar com o FreeBSD antes 
      de comprar um clone.                                                            
4.25. Que outros dispositivos o FreeBSD suporta?                                      
      Veja o Manual do FreeBSD para obter uma listagem dos outros dispostivos         
      suportados.                                                                     
4.26. O FreeBSD suporta gerenciamento de energia no meu laptop?                       
      O FreeBSD suporta APM em alguns computadores. Por gentileza, refira-se ao       
      arquivo LINT de configurac,ao do kernel; procure pela palavra APM. Mais         
      informac,oes na pagina de manual do apm(4).                                     
4.27. Por que placas Micron travam na inicializac,ao(boot)?                           
      Algumas placas-mae Micron nao tem conformidade na implementac,ao de sua BIOS e  
      por isso confundem o FreeBSD no momento da inicializac,ao(boot), pois os        
      equipamentos em questao nao foram configurados nos enderec,os que a BIOS        
      reportou.                                                                       
                                                                                      
      Procure a opc,ao "Plug and Play Operating System" - ou algo parecido - na sua   
      BIOS e desabilite-a para corrigir o problema. Mais informac,oes sobre esse      
      problema podem ser encontradas em                                               
      http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron.                   
4.28. Por que o FreeBSD nao reconhece nenhuma controladora SCSI Adaptec?              
      As series mais novas (AIC789x) dos chips Adaptec tem suporte no modo CAM SCSI,  
      que sera redefinido na versao 3.0 do FreeBSD. Na versao 2.2-STABLE, voce pode   
      aplicar as correc,oes disponiveis em                                            
      ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/. Caso voce precise instalar  
      um sistema com essas controladoras, existe um disquete de inicializac,ao(boot)  
      com suporta a CAM, disponivel em http://people.FreeBSD.org/~abial/cam-boot/.    
      Nos dois casos leia o arquivo README antes de tomar qualquer ac,ao.             
4.29. Por que o FreeBSD nao encontra o meu Modem Plug & Play interno?                 
      Sera necessario adicionar o ID PnP do modem na lista de drivers seriais do      
      sistema para que ele reconhec,a-o normalmente. Isso requer hackear um pouco o   
      sistema. Pra habilitar o suporte Plug & Play, compile um novo kernel com a      
      opc,ao controller pnp0 e reinicie o seu FreeBSD. O kernel ira mostrar os IDs    
      PnP de todos os dispositivos que ele encontrar, no momento da                   
      inicializac,ao(boot). Copie o ID PnP do modem em questao para a tabela no       
      arquivo /sys/i386/isa/sio.c, por volta da linha 2777. Procure a expressao       
      SUP1310 na estrutura siopnp_ids[] para encontrar essa tabela. Recompile o seu   
      kernel, instale-o e reinicie o sistema. Seu modem deve ser encontrado.          
                                                                                      
      Provavelmente sera necessario configurar o dispositivo PnP manualmente, usando  
      o comando pnp no momento do boot, como a seguir:                                
                                                                                      
      pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8                                     
                                                                                      
      para forc,ar detecc,ao do modem.                                                
4.30. O FreeBSD suporta software modems, como os Winmodems?                           
      O FreeBSD suporta alguns software modems por meio de programas adicionais. A    
      aplicac,ao comms/ltmdm disponivel na colec,ao de Ports do FreeBSD suporta os    
      modems baseados no popular chipset Lucent LT. A aplicac,ao comms/mwavem suporta 
      o modem em laptops IBM Thinkpad 600 e 700.                                      
                                                                                      
      Nao e possivel instalar o FreeBSD via software modem, visto que os programas    
      adicionais para controlar esse equipamento so podem ser configurados depois que 
      o sistema operacional ja esta instalado.                                        
4.31. Como eu fac,o para o interpretador(prompt) de inicializac,ao(boot): aparecer no 
      console serial?                                                                 
       1. Construa um kernel com a opc,ao options COMCONSOLE.                         
                                                                                      
       2. Crie o arquivo /boot.config e coloque os caracteres -P como o unico texto   
          no arquivo.                                                                 
                                                                                      
       3. Desligue o teclado do computador.                                           
                                                                                      
      Leia o arquivo /usr/src/sys/i386/boot/biosboot/README.serial para mais          
      informac,oes.                                                                   
4.32. Por que a placa de rede PCI da 3Com nao funciona com motherboards Micron?       
      Algumas placas-mae Micron nao tem conformidade na implementac,ao de sua BIOS e  
      por isso confundem o FreeBSD no momento do boot, pois os equipamentos em        
      questao nao foram configurados nos enderec,os que a BIOS reportou.              
                                                                                      
      Procure a opc,ao "Plug and Play Operating System" - ou algo parecido - na sua   
      BIOS e desabilite-a para corrigir o problema.                                   
                                                                                      
      Mais informac,oes sobre esse problema podem ser encontradas em                  
      http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron                    
4.33. O FreeBSD suporta Multiprocessamento Simetrico (SMP)?                           
      SMP e suportado a partir do FreeBSD 3.0-STABLE. O suporte ao SMP                
      (multiprocessamento simetrico) nao esta disponivel por padrao no kernel         
      GENERIC, portanto e necessario compilar um novo kernel para habilitar o suporte 
      SMP. Veja o arquivo /sys/i386/conf/LINT para descobrir quais opc,oes sao        
      necessarias adicionar ao seu kernel.                                            
4.34. O disquete de inicializac,ao(boot) trava em um computador cuja placa-mae e a    
      ASUS K7V. O que eu fac,o?                                                       
      Entre na configurac,ao da BIOS da sua placa e desligue a opc,ao "boot virus     
      protection".                                                                    

                      Capitulo 5. Resoluc,ao de Problemas

   5.1. O que fazer quando meu disco rigido tiver bad blocks?

   5.2. Por que o FreeBSD nao reconhece a minha controladora SCSI EISA Bustek
   742a?

   5.3. Por que o FreeBSD nao detecta a controladora SCSI do Netserver HP??

   5.4. O que esta havendo com minha controladora IDE CMD640?

   5.5. Eu sempre vejo mensagens como ed1: timeout. O que elas significam?

   5.6. Por que minha placa 3COM 3C509 parou de funcionar sem motivo
   aparente?

   5.7. Minha impressora paralela esta ridiculamente lenta. O que devo fazer?

   5.8. Por que alguns programas ocasionalmente morrem com erro de Signal 11
   ?

   5.9. O meu sistema trava com o erro Fatal trap 12: page fault in kernel
   mode, ou panic:, e sai mostrando uma quantidade enorme de informac,oes. O
   que eu fac,o?

   5.10. Por que a tela fica preta e perde sincronia quando eu inicio o
   sistema?

   5.11. Por que o FreeBSD so detecta 64MB de memoria RAM se eu tenho 128MB
   instalados?

   5.12. Por que o FreeBSD 2.0 entre em panico com a mensagem kmem_map too
   small!?

   5.13. Por que o erro /kernel: proc: table is fullocorre?

   5.14. Por que acontece o erro CMAP busy quando eu reinicio com um novo
   kernel?

   5.15. O que a mensagem ahc0: brkadrint, Illegal Host Access at seqaddr 0x0
   significa??

   5.16. Quando eu inicio o sistema, encontro o erro ahc0: illegal cable
   configuration, mas o meu cabo esta certo. O que esta havendo?

   5.17. Por que o Sendmail retorna um erro que diz "mail loops back to
   myself"?

   5.18. Porque algumas aplicac,oes que usam tela inteira nao se comportam
   muito bem em estac,oes remotas?

   5.19. Por que meu computador apresenta a mensagem calcru: negative
   time...?

   5.20. Acontece da pcm nao ser encontrada, com a mensagem pcm0 not found ou
   entao minha placa de som e encontrada na pcm1 mas no meu kernel a entrada
   se refere a device pcm0. O que esta havendo?

   5.21. Porque a minha placa PnP nao e mais encontrada (ou e encontrada como
   unknown) desde a atualizac,ao para o FreeBSD 4.X?

   5.22. Qual a causa do erro nlist failed quando eu executo, por exemplo, o
   top ou o systat?

   5.23. Porque demora tanto para a conexao se estabelecer via ssh ou telnet?

   5.24. O que a mensagem stray IRQ quer dizer?

   5.25. Por que a mensagem file: table is full aparece repetidas vezes no
   dmesg?

   5.26. Por que o relogio do meu laptop mantem a hora incorreta?

   5.27. Por que o meu laptop nao funciona muito bem na hora de identificar
   cartoes PCMCIA?

   5.28. Por que o bootloader do FreeBSD mostra a mensagem Read error e para
   completamente logo apos a tela da BIOS?

   5.29. Outro sistema operacional destruiu o meu gerenciador de
   inicializac,ao(Boot Manager). Como eu o recupero?

   5.30. O que o erro swap_pager: indefinite wait buffer: quer dizer?

5.1.  O que fazer quando meu disco rigido tiver bad blocks?                                              
      Com controladoras SCSI, o drive (HD) deveria ser capaz de remapear blocos ruins e corrigi-los      
      automaticamente. Porem, muitos desses discos mantem essa func,ao desabilitada por alguma razao     
      misteriosa...                                                                                      
                                                                                                         
      Para habilitar essa func,ao e necessario editar o primeiro modo de pagina do dispositivo, o qual   
      pode ser feito com o comando abaixo (como root)                                                    
                                                                                                         
      # scsi -f /dev/rsd0c -m 1 -e -P 3                                                                  
                                                                                                         
      E mudando os valores de AWRE e ARRE de 0 para 1:-                                                  
                                                                                                         
      AWRE (Auto Write Reallocation Enbld):  1                                                           
      ARRE (Auto Read Reallocation Enbld):  1                                                            
                                                                                                         
      Os paragrafos seguintes foram enviados por Ted Mittelstaedt <tedm@toybox.placo.com>:               
                                                                                                         
      Para os discos IDE, qualquer bad block e considerado um sinal de dificuldade em potencial. Todos   
      os discos IDE modernos ja vem com um remapeador interno que realoca bad blocks por outros blocos   
      em bom estado, automaticamente. Todos os disco rigido IDE fabricados hoje em dia oferecem          
      garantias extensas.                                                                                
                                                                                                         
      Se ainda quiser tentar salvar um drive IDE com bad blocks, pode fazer um download do programa de   
      diagnostico e correc,ao do proprio fabricante do disco rigido. As vezes estes programas podem      
      fixar e forc,ar eletronicamente o disco a marcar estes blocos ruins e desativa-los.                
                                                                                                         
      Em discos ESDI, RLL e MFM, a existencia de bad blocks e normal e nao representa nenhum sinal de    
      dificuldade,geralmente. Em um PC, a placa controladora das unidades de disco e, a BIOS se          
      encarregam da tarefa de re-mapear os bad blocks. Isso funciona em sistemas operacionais como DOS   
      que usa codigo da BIOS para acessar o disco. Porem, o driver (software controlador) do FreeBSD nao 
      trabalha ou acessa comandos da BIOS para para interagir com o drive (HD), entao um mecanismo       
      chamado bad144, existente no FreeBSD, acaba substituindo esta funcionalidade. O bad144 so trabalha 
      com o drive wd (portanto, nao e suportado no FreeBSD 4.0), e nao pode ser usado com drive SCSI. O  
      bad144 trabalha marcando e organizando setores ruins encontrados no HD, em um arquivo especial no  
      disco.                                                                                             
                                                                                                         
      Uma caracteristica do bad144 - o bloco danificado e colocado em um arquivo especial situado na     
      ultima trilha do disco. Como este arquivo contem uma lista de setores defeituosos que pode incluir 
      valores perto do inicio do disco, onde o /kernel pode estar alocado, esse arquivo devera ser       
      acessivel ao bootstrap para que o programa - por meio da BIOS - leia o kernel; isso significa que  
      o disco usado com bad144 nao deve exceder 1024 cilindros, 16 cabec,as, e 63 setores, logo, temos   
      um limite efetivo de 500MB para discos mapeados com o bad144..                                     
                                                                                                         
      Para ativar o uso do bad144, simplesmente defina a opc,ao de procurar por "Bad Block" como ON na   
      tela do fdisk do FreeBSD, durante a instalac,ao. Essas instruc,oes funcionam a partir do FreeBSD   
      2.2.7, e o disco deve ter menos que 1024 cilindros. Geralmente recomenda-se que a unidade de disco 
      esteja em operac,ao durante pelo menos 4 horas antes de executar o bad144, permitindo assim a      
      expansao termica do HD.                                                                            
                                                                                                         
      Se o disco tem mais de 1024 cilindros (como um disco ESDI grande) a controladora ESDI usa um tipo  
      de traduc,ao especial em modo DOS. A device wd tambem entende esses mesmos modos de traduc,ao e    
      conversao, isso se o "tradutor" de geometria for ativado como "geometria fixa", quando             
      particionado pelo fdisk. Voce tambem nao deve usar o modo "dangerously dedicated" para criar       
      partic,oes do FreeBSD, pois isso ignora o tipo de geometria. Embora o fdisk use a geometria        
      definida pelo usuario, ele continua reconhecendo o tamanho verdadeiro do disco, e tentara criar    
      uma partic,ao maior para o FreeBSD. Se a geometria de disco for alterada para geometria            
      traduzida(translated geometry), a partic,ao DEVE ser criada manualmente, informando os numeros de  
      blocos do HD.                                                                                      
                                                                                                         
      Um truque rapido e usar um disco grande ESDI com uma controladora ESDI, iniciar(booting) o sistema 
      com um disco DOS e formatar uma partic,ao DOS. Depois reiniciar o sistema com um disco de          
      instalac,ao do FreeBSD, e anotar o numero e tamanho dos blocos que serao apresentados na tela do   
      fdisk para a partic,ao DOS. Redefina a geometria do disco com os valores anotados, apague a        
      partic,ao DOS e crie uma partic,ao FreeBSD "cooperativa". Defina essa partic,ao como bootavel e    
      habilite o reconhecimento de bad blocks. Na instalac,ao, o bad144 e carregado antes que qualquer   
      outro sistema de arquivos seja criado (voce pode ver isso com um Alt+F2). Se houver problemas na   
      criac,ao do arquivo de definic,oes de setor danificado (o arquivo de badsector) e porque a         
      geometria definida e maior do que o seu valor real - reinicie o sistema e comece todos os          
      procedimentos novamente, inclusive o particionamento e formatac,ao da partic,ao DOS.               
                                                                                                         
      Se o remapeamento ja estiver habilitado e os problemas com bad block continuarem, considere a      
      substituic,ao imediata do disco, pois os danos e os bad blocks aumentarao consideravelmente com o  
      passar do tempo.                                                                                   
5.2.  Por que o FreeBSD nao reconhece a minha controladora SCSI EISA Bustek 742a?                        
      As informac,oes a seguir sao para o modelo 742a, mas provavelmente tambem servem para as placas    
      Buslogic. (Bustek = Buslogic).                                                                     
                                                                                                         
      Existem duas "versoes" tradicionais da placa 742a. Sao os equipamentos de revisao A-G e de revisao 
      H; as letras de cada revisao sao colocadas depois do numero de fabricac,ao, ao lado das placas. A  
      placa 742a possui 2 chips ROM acoplados, o primeiro e o chip da BIOS e o segundo e o do Firmware.  
      Para o FreeBSD a versao da BIOS e irrelevante, mas a versao do Firmware e uma informac,ao          
      fundamental. E interessante dizer que, se voce fizer uma chamada ao departamento de suporte da     
      Buslogic, eles irao te enviar um upgrade desses ROMs, e e muito bom sempre manter a versao mais    
      recente do ROM do seu Firmware para a versao de revisao do seu equipamento.                        
                                                                                                         
      As placas cuja letra de revisao e A-G aceitam apenas atualizac,oes da BIOS/Firmware de versao      
      2.41/2.21 respectivamente. A revisao H (REV H) aceita as versoes mais recentes da BIOS/Firmware    
      ate a versao 4.70/3.37. A principal diferenc,a entre as versoes do Firmware e que a versao 3.37    
      tem suporte a"round robin".                                                                        
                                                                                                         
      As placas Buslogic tambem tem um numero serial. Caso seu equipamento seja antigo, tente abrir uma  
      chamada no departamento de RMA da Buslogic e informe-os o numero de serie da sua placa. Se ela     
      estiver entre os seriais de abrangencia, a Buslogic vai aceitar seu equipamento para revisao.      
                                                                                                         
      O FreeBSD 2.1 aceita apenas as revisoes de Firmware ate o 2.21. Caso o seu Firmware seja mais      
      antigo do que o 2.21 sua placa nao sera reconhecida como Buslogic. Contudo, e possivel que o       
      equipamento seja reconhecido como Adaptec 1540, ja que os Firmware mais antigos da Buslogic        
      possuem um modo de "emulac,ao" da AHA1540, o que nao e uma boa coisa, para uma placa EISA.         
                                                                                                         
      Caso seu Firmware seja antigo e voce conseguiu obter uma revisao para a versao 2.21, nao se        
      esquec,a que e necessario alterar o jumper W1 da posic,ao A-B (padrao) para posic,ao B-C ao        
      atualizar a placa.                                                                                 
5.3.  Por que o FreeBSD nao detecta a controladora SCSI do Netserver HP??                                
      Isso ja e um problema conhecido. A controladora SCSI on-board EISA dos servidores HP Netserver     
      estao no slot EISA numero 11, portanto todos os "verdadeiros" slots EISA estao na sua frente. O    
      enderec,o definido para os slots EISA >= 10 ocupa um enderec,o compartilhado com o barramento PCI, 
      e portanto entra em conflito com seus recursos. Essa e uma situac,ao onde a configurac,ao          
      automatica do FreeBSD nao se comporta muito bem.                                                   
                                                                                                         
      Portanto o que voce deve fazer, e fingir que nao existe limitac,ao quanto ao intervalo de          
      enderec,os, definindo a opc,ao option EISA_SLOTS do kernel para o valor 12. Configure e compile um 
      novo kernel, conforme descrito no capitulo de configurac,ao do kernel no Manual do FreeBSD.        
                                                                                                         
      Obviamente esse problema e ainda maior quando se trata de uma nova instalac,ao. Para corrigir esse 
      problema e necessario uma pequena alterac,ao no modo UserConfig. Nao use a interface de            
      configurac,ao "visual" do kernel, use a Interface de Linha de Comando (CLI), simplesmente          
      digitando:                                                                                         
                                                                                                         
      eisa 12                                                                                            
      quit                                                                                               
                                                                                                         
      na tela do modo CLI, e continue a instalac,ao do FreeBSD como de costume. De qualquer forma, e     
      recomendavel recompilar e instalar um novo kernel depois da instalac,ao do sistema..               
                                                                                                         
      Futuras versoes do FreeBSD terao esse problema corrigido automaticamente.                          
                                                                                                         
        Nota:                                                                                            
                                                                                                         
      Nao use discos em modo dangerously dedicated com um HP Netserver. Veja essa nota para maiores      
      informac,oes.                                                                                      
5.4.  O que esta havendo com minha controladora IDE CMD640?                                              
      Esta com defeito! Nao suporta mais comandos nos dois canais de forma simultanea.                   
                                                                                                         
      Existe uma correc,ao disponivel e automaticamente habilitada, se voce usa uma controladora com     
      esse chip. Para maiores detalhes, refira-se a pagina de manual da controladora de disco (wd(4)).   
                                                                                                         
      Se o FreeBSD em questao e o FreeBSD 2.2.1 ou 2.2.2 com essa controladora em questao, e voce quer   
      usar o segundo canal, compile um novo kernel com a opc,ao options "CMD640" habilitada. Essa        
      configurac,ao e padrao para o FreeBSD 2.2.5 e posteriores.                                         
5.5.  Eu sempre vejo mensagens como ed1: timeout. O que elas significam?                                 
      Normalmente esse problema e causado por um conflito de interrupc,oes (por exemplo, duas placas     
      usando a mesma IRQ). O FreeBSD ate a versao 2.0.5R costumava ser tolerante quanto a esse problema  
      e a placa de rede continuava funcionando mesmo com IRQ conflitantes. Contudo desde a versao 2.0.5R 
      os conflitos de interrupc,oes nao sao mais tolerados. Inicie o sistema com a opc,ao de boot -c e   
      mude as device ed0/de0/... para o valor correspondente ao da placa.                                
                                                                                                         
      Caso esteja usando um conector BNC na sua placa de rede, e provavel que existam device timeout por 
      causa de ma terminac,ao do barramento. Pra tirar isso a limpo coloque um terminador direto na      
      placa (sem cabos) e veja se as mensagens de erro param.                                            
                                                                                                         
      Algumas placas compativeis NE2000 apresentarao esse problema caso a porta UTP nao receba sinal de  
      link, ou se o cabo estiver desconectado.                                                           
5.6.  Por que minha placa 3COM 3C509 parou de funcionar sem motivo aparente?                             
      Esse cartao tem um habito horrivel de perder suas informac,oes de configurac,ao. Redefina as       
      informac,oes da placa usando o programa de DOS chamado 3c5x9.exe.                                  
5.7.  Minha impressora paralela esta ridiculamente lenta. O que devo fazer?                              
      Se o unico problema e a lerdeza terrivel da sua impressora, tente mudar seu modo da porta de       
      impressao conforme discutido na sec,ao de Configurac,ao de Impressoras no Manual do FreeBSD.       
5.8.  Por que alguns programas ocasionalmente morrem com erro de Signal 11 ?                             
      Erros de sinal 11 sao fruto de tentativas de acesso indevido a memoria. Esse acesso normalmente e  
      controlado pelo sistema operacional, e quando o sistema nao permite acessar determinados           
      enderec,os, o processo e morto com signal 11. Se isso estiver acontecendo em intervalos aleatorios 
      de tempo, e preciso investigar as causas com cuidado.                                              
                                                                                                         
      Esse problema normalmente e atribuido a:                                                           
                                                                                                         
       1. Se o problema ocorre apenas em um programa especifico que voce mesmo esta desenvolvendo, se    
          trata de um bug no codigo do seu programa.                                                     
                                                                                                         
       2. Se o problema e com algum programa que faz parte da base do FreeBSD, e possivel que tambem     
          seja um problema de bug no codigo em questao. Contudo, esses problemas costumam ser corrigidos 
          antes que os usuarios tradicionais percebam sua existencia - e necessitem ler este FAQ -       
          afinal, e para isso que o -CURRENT existe.                                                     
                                                                                                         
      Em especial, uma indicac,ao que esse problema nao e um bug do FreeBSD, e um erro repetitivo no     
      mesmo instante da compilac,ao, mas o problema que o compilador apresenta muda de linha a cada nova 
      compilac,ao.                                                                                       
                                                                                                         
      Por exemplo, suponha que voce esteja executando um "make buildworld", e a compilac,ao falha na     
      hora de compilar o ls.c em ls.o. Se voce rodar o "make buildworld" de novo e a compilac,ao falha   
      exatamente no mesmo trecho do codigo, entao o problema realmente e com o fonte da aplicac,ao,      
      nesse caso atualize os fontes do FreeBSD e tente novamente. Agora se a compilac,ao falhar em um    
      trecho diferente do codigo, e quase certo que o problema seja fisico, ou seja, com o seu           
      equipamento.                                                                                       
                                                                                                         
      O que deve ser feito:                                                                              
                                                                                                         
      Em primeiro lugar, deve-se usar um debugador, como o gdb, por exemplo, para encontrar o ponto      
      exato do codigo que esta tentando acessar um enderec,o problematico de memoria, e corrigi-lo.      
                                                                                                         
      Em segundo lugar, verifique se a culpa nao e do seu equipamento.                                   
                                                                                                         
      As causas mais comuns para o problema incluem::                                                    
                                                                                                         
       1. Os seus discos rigidos podem estar superaquecidos: Verifique se o sistema de ventilac,ao do    
          seu PC esta funcionando. Verifique coolers internos (da fonte) e externos, e verifique se nao  
          existe superaquecimento de outros componentes do computador.                                   
                                                                                                         
       2. O processador esta superaquecido: Pode ser porque foi feito um overclock no processador em     
          questao, ou no caso mais tradicional, pode ser que o cooler tenha parado de funcionar ou que   
          esteja sujo e portanto funcionando em rotac,ao baixa. Em ambos os casos, o primeiro passo e    
          garantir que o processador esteja rodando sob as mesmas condic,oes que ele foi construido para 
          funcionar - por exemplo, com a velocidade do clock original e com a ventilac,ao adequada.      
                                                                                                         
          Caso tenha sido feito overclock no processador, lembre-se que e mais barato usar um computador 
          um pouco mais lento, do que trocar o processador da maquina por causa de um chip fritado ;-)   
          Alem do que a maioria das pessoas nao sao simpatizantes de overclock, mesmo que voce considere 
          a ac,ao segura ou nao.                                                                         
                                                                                                         
       3. Caso tenha multiplos pentes de memoria SIMM/DIMM, tente desliga-los e experimente usar cada    
          pente de uma vez, indiviualmente. Com isso e possivel descobrir se o problema e com algum chip 
          DIMM/SIMM ou se o problema e a combinac,ao entre os pentes.                                    
                                                                                                         
       4. Configurac,oes super otimistas na BIOS da sua placa mae sao outra causa provavel. Algumas BIOS 
          tem opc,oes que permitem alterar a velocidade e frequencia de varios recursos. Normalmente os  
          valores padrao na BIOS sao os mais conservadores, e portanto devem ser o bastante para         
          controlar corretamente o equipamento; contudo algumas opc,oes como por exemplo "RAM Speed:     
          Turbo" ou alguma opc,ao parecida coloca o estado de espera para o acesso a memoria em um valor 
          muito baixo, e as vezes, por mais otimista que voce seja, sua memoria pode nao ser rapida o    
          bastante. O ideal e definir os valores padrao da sua BIOS, mas e interessante anotar os        
          valores atuais primeiro!                                                                       
                                                                                                         
       5. Alimentac,ao insuficiente de energia na placa-mae. Caso exista alguma placa que nao esteja     
          sendo utilizada, algum disco rigido ou CDROM, e interessante desliga-los temporariamente do    
          computador, ou simplesmente remover o cabo de energia desses equipamentos. Mesmo em sub        
          utilizac,ao, essas placas e discos estao sob constante alimentac,ao e talvez sua fonte consiga 
          suprir uma carga menor. Ou tente trocar a fonte do seu PC, de preferencia por uma com maior    
          poder de alimentac,ao (por exemplo, se a sua fonte e de 250 Watts troque por uma de 300        
          Watts).                                                                                        
                                                                                                         
      Leia ainda o FAQ SIG11 (disponivel a seguir) que tem outras boas explicac,oes sobre esses          
      problemas. O FAQ tambem discute como alguns programas de teste de memoria podem pensar que um      
      pente problematico esta funcionando corretamente.                                                  
                                                                                                         
      Finalmente, se nenhum dos casos acima ajudou a solucionar seu problema, pode ser que exista um bug 
      no FreeBSD. Voce deve seguir as intruc,ooes para enviar um relatorio de problemas para o Projeto   
      FreeBSD.                                                                                           
                                                                                                         
      Existe um FAQ extenso que cobre esse assunto, disponivel no FAQ dos problemas com SIG11.           
5.9.  O meu sistema trava com o erro Fatal trap 12: page fault in kernel mode, ou panic:, e sai          
      mostrando uma quantidade enorme de informac,oes. O que eu fac,o?                                   
      A equipe de desenvolvimento do FreeBSD tem muito interesse nesse tipo de erro, mas e necessario    
      obter algumas informac,oes suplementares, do que apenas o erro que voce esta tendo. Copie sua      
      mensagem de erro inteira, consulte o FAQ sobre kernel panics, compile um kernel em modo de         
      debugac,ao e tente analisar o problema. Parece uma tarefa dificil, mas nao e necessario            
      conhecimento de programac,ao; basta seguir as instruc,oes.                                         
5.10. Por que a tela fica preta e perde sincronia quando eu inicio o sistema?                            
      Esse e um problema conhecido da placa de video ATI Mach 64. O problema e que essa placa usa o      
      enderec,o 2e8, o mesmo utilizado pela quarta porta serial dos computadores pessoais. Devido a um   
      bug (ou uma vantagem?) da sio(4) ,essa porta sera sempre reconhecida, ainda que nao exista a       
      quarta porta serial no seu computador, ou mesmo se o sio3 (a quarta porta) estiver desabilitado.   
                                                                                                         
      Ate que o bug seja corrigido, voce pode usar essa soluc,ao:                                        
                                                                                                         
       1. Entre no modo de configurac,ao do kernel com opc,ao -c na tela de inicializac,ao(boot). (Isto  
          colocara o kernel no modo de configurac,ao).                                                   
                                                                                                         
       2. Desabilite a sio0, sio1, sio2 e sio3 (todas elas). Dessa forma sera ativada, logo, voce nao    
          tera -> problemas.                                                                             
                                                                                                         
       3. Digite exit para continuar o boot.                                                             
                                                                                                         
      Caso queira usar as portas seriais, sera necessario construir um kernel customizado, com as        
      seguintes alterac,oes: no fonte /usr/src/sys/i386/isa/sio.c encontre a ocorrencia da expressao     
      0x2e8 e apague essa expressao e a virgula que a antecede (mantenha a outra). Depois compile o novo 
      kernel normalmente.                                                                                
                                                                                                         
      Mesmo depois dessa correc,ao, e provavel que o X Windows ainda nao funcione como esperado. Se for  
      o caso, garanta que a versao do Xfree86 em questao seja ao menos o XFree86 3.3.3 ou uma versao     
      superior. Esse XFree86 e os posteriores tem suporte nativo `as placas de video Mach64, e tem       
      inclusive um X Server dedicado para tal equipamento.                                               
5.11. Por que o FreeBSD so detecta 64MB de memoria RAM se eu tenho 128MB instalados?                     
      Devido `a maneira que o FreeBSD obtem as informac,oes quanto ao tamanho da memoria disponivel por  
      intermedio da BIOS, pode acontecer de apenas 16 bits validos serem detectados (65535 Kbytes =      
      64MB) ou ate menos, dependendo da BIOS (em alguns casos, apenas 16MB). Mesmo nessa situac,ao o     
      FreeBSD tenta detectar mais que 64MB de memoria, mas esse reconhecimento pode falhar.              
                                                                                                         
      Pra corrigir esse problema pode ser usada a opc,ao do kernel descrita a seguir. Existe uma forma   
      de obter informac,oes completas quanto ao tamanho da memoria, a partir da BIOS, mas devido a       
      algumas limitac,oes isso nem sempre e possivel hoje em dia. Futuramente sera. De qualquer forma,   
      temos ainda a opc,ao do kernel para situac,oes onde toda a memoria nao puder ser reconhecida.      
                                                                                                         
      options "MAXMEM=n"                                                                                 
                                                                                                         
      Onde n equivale `a memoria (em Kilobytes) disponivel no sistema. Para 128 MB de memoria, use o     
      valor 131072.                                                                                      
5.12. Por que o FreeBSD 2.0 entre em panico com a mensagem kmem_map too small!?                          
        Nota:                                                                                            
                                                                                                         
      A mensagem em questao tambem pode ser mb_map too small!                                            
                                                                                                         
      Essa mensagem de panico indica que o sistema ficou sem memoria suficiente pros buffers de rede     
      (especificamente, os mbuf clusters). A quantidade de memoria virtual disponivel para os clusters   
      mbuf pode ser elevada com a opc,ao::                                                               
                                                                                                         
      options "NMBCLUSTERS=n"                                                                            
                                                                                                         
      no arquivo de configurac,ao do seu kernel, onde n equivale ao valor entre 512-4096, dependendo do  
      numero de conexoes TCP simultaneas que voce espera poder suportar. O valor 2048 e recomendavel, e  
      provavelmente sera o bastante para sanar o problema que causa o panico em questao O numero de      
      clusters mbuf em uso pode ser monitorado com o comando netstat -m (veja netstat(1)). O valor       
      padrao para a variavel NMBCLUSTERS no kernel do FreeBSD e 512 + MAXUSERS * 16.                     
5.13. Por que o erro /kernel: proc: table is fullocorre?                                                 
      O kernel do FreeBSD limita o numero maximo de processos simultaneos existentes no sistema. O       
      numero em questao e baseado na opc,ao MAXUSERS. do sistema. A opc,ao MAXUSERS afeta ainda inumeros 
      outros limites do kernel do FreeBSD, como por exemplo os buffers disponiveis para o stack de rede  
      do sistema (veja esta resposta anterior). Se o computador estiver sob grande carga, provavelmente  
      sera necessario aumentar o MAXUSERS. Essa alterac,ao aumentara os limites do sistema em adic,ao ao 
      numero de processos permitido.                                                                     
                                                                                                         
      Desde a versao 4.4 do FreeBSD, o valor para MAXUSERS se tornou configuravel, nao sendo mais        
      necessario recompilar o kernel para altera-lo, bastando definir a variavel kern.maxusers no        
      arquivo /boot/loader.conf. Em versooes mais recentes do FreeBSD, deve-se ajustar o MAXUSERS em sua 
      configurac,ao do kernel.                                                                           
                                                                                                         
      Caso seu sistema nao esteja muito carregado, mas o numero de processos simultaneos ainda assim e   
      alto basta definir a variavel kern.maxproc com o sysctl. Em casos especiais, onde esses inumeros   
      processos estao sendo executados por um unico usuario, sera preciso alterar ainda alterar o valor  
      da variavel kern.maxprocperuid para um a menos do que o valor de kern.maxproc. (deve ser ao menos  
      1 processo a menos, visto que ao menos o init(8) do sistema vai estar sempre em execuc,ao.)        
                                                                                                         
      Para tornar uma alterac,ao de variavel do sysctl permanente, defina-a no arquivo /etc/sysctl.conf  
      nas versoes mais recentes do FreeBSD, ou entao no arquivo /etc/rc.local em versoes mais antigas do 
      sistema.                                                                                           
5.14. Por que acontece o erro CMAP busy quando eu reinicio com um novo kernel?                           
      A logica que tenta detectar uma data errada nos arquivos /var/db/kvm_*.db as vezes e falha, o que  
      leva o sistema a entrar em panico.                                                                 
                                                                                                         
      Se for o caso, reinicie seu sistema em modo monousuario e fac,a:                                   
                                                                                                         
      # rm /var/db/kvm_*.db                                                                              
5.15. O que a mensagem ahc0: brkadrint, Illegal Host Access at seqaddr 0x0 significa??                   
      Trata-se de um conflito com o Ultrastor SCSI Host Adapter.                                         
                                                                                                         
      Durante o processo de inicializac,ao(boot), entre no menu de configurac,ao do kernel e desabilite  
      a uha0, que esta causando o problema.                                                              
5.16. Quando eu inicio o sistema, encontro o erro ahc0: illegal cable configuration, mas o meu cabo esta 
      certo. O que esta havendo?                                                                         
      A placa-mae em questao nao consegue se dar bem com o suporte a terminac,ao automatica do           
      barramento. Altere sua BIOS SCSI para a terminac,ao correta, de acordo com a configurac,ao do      
      equipamento, ao inves de usar terminac,ao automatica. O driver AIC7XXX nao consegue descobrir se o 
      reconhecimento externo dos cabos (e consequ:ente auto-terminac,ao) esta disponivel, e portanto ele 
      simplesmente assume que o suporte existe, caso a configurac,ao da EEPROM serial esteja definida    
      como automatic termination. Sem o reconhecimento de cabo externo o driver ira sempre configurar a  
      terminac,ao de forma incorreta, o que compromete a confiabilidade do barramento SCSI.              
5.17. Por que o Sendmail retorna um erro que diz "mail loops back to myself"?                            
      Essa pergunta e respondida no FAQ do proprio Sendmail, e diz:-                                     
                                                                                                         
              * Eu estou tendo problemas de configurac,oes local "Local configuration error" como essas: 
                                                                                                         
              553 relay.domain.net config error: mail loops back to myself                               
              554 <user@domain.net>...  Local configuration error                                        
                                                                                                         
      Como posso resolver esse problema?                                                                 
                                                                                                         
      Voce definiu que as mensagens enviadas para o dominio                                              
      em questao (domain.net) devem ser repassadas para uma outra                                        
      estac,ao especifica (nesse caso para                                                               
      relay.domain.net) usando um registro MX, mas essa maquina de                                       
      relay nao se reconhece como a estac,ao                                                             
      responsavel pelas mensagens do dominio domain.net.                                                 
      Adicione domain.net no arquivo /etc/mail/local-host-names                                          
      (caso voce esteja usando FEATURE(use_cw_file)) ou entao                                            
      adicione a linha "Cw domain.net" em /etc/mail/sendmail.cf.                                         
                                                                                                         
                                                                                                         
      Atualmente a versao mais recente do FAQ do sendmail e mantida em sincronia com as versoes mais     
      atuais do MTA, mas ela ainda e enviada regularmente para os grupos de noticias comp.mail.sendmail, 
      comp.mail.misc, comp.mail.smail, comp.answers, e news.answers. Ainda e possivel receber um copia   
      por e-mail do FAQ, enviando uma mensagem para <mail-server@rtfm.mit.edu> com o comando send        
      usenet/news.answers/mail/sendmail-faq no corpo da mensagem.                                        
5.18. Porque algumas aplicac,oes que usam tela inteira nao se comportam muito bem em estac,oes remotas?  
      A estac,ao remota deve estar definindo o terminal como algum tipo diferente do cons25 que e o tipo 
      de terminal usado pelo console do FreeBSD.                                                         
                                                                                                         
      Existem inumeras correc,oes para esse problema:                                                    
                                                                                                         
        * Depois de logar-se na estac,ao remota, defina a variavel de ambiente TERM como ansi ou sco     
          caso a maquina em questao tenha informac,oes quanto a esse tipo de terminal.                   
                                                                                                         
        * Use um emulador VT100 como o screen no console do FreeBSD. O screen oferece a possibilidade de 
          usar multiplas sessoes concorrentes em um mesmo terminal, e e um grande programa. Cada janela  
          do screen se comporta como um terminal VT100, portanto a variavel TERM deve ser definida como  
          vt100.                                                                                         
                                                                                                         
        * Instale a base do cons25 na estac,ao remota. A maneira correta de faze-lo depende do sistema   
          operacional em questao na estac,ao remota. Consulte os manuais de administrac,ao do sistema    
          remoto em questao para descobrir como faze-lo.                                                 
                                                                                                         
        * Levante um X server do lado FreeBSD da coisa e acesse a estac,ao remota usando um terminal     
          baseado no ambiente X, como o xterm ou o rxvt. A variavel TERM deve ser definida comoxterm ou  
          vt100 no lado remoto.                                                                          
5.19. Por que meu computador apresenta a mensagem calcru: negative time...?                              
      Esse comportamento pode ser causado por diversos motivos relacionados a interrupc,oes de hardware  
      e/ou software. Pode ser devido a algum bug, mas tambem pode acontecer por causa da natureza de     
      alguns devices. Por exemplo, usar TCP/IP via porta paralela com uma MTU muito grande e uma boa     
      forma de provocar esse comportamento. Aceleradores graficos tambem sao eficientes para criar esse  
      tipo de problema, nesse caso, sendo necessario analisar as configurac,oes de interrupc,oes do      
      software.                                                                                          
                                                                                                         
      Um efeito colateral desse problema sao processos que morrem"SIGXCPU exceeded cpu time limit".      
                                                                                                         
      No FreeBSD 3.0 e sistemas posteriores a 29 de Novembro de 1998, caso o problema nao possa ser      
      solucionado de outra forma, uma correc,ao pode ser definir a seguinte variavel do sysctl:          
                                                                                                         
      # sysctl -w kern.timecounter.method=1                                                              
                                                                                                         
      Isso causa um impacto de performance, mas dependendo do problema que causava esse comportamento, e 
      provavel que nem consiga-se notar a mudanc,a nessa performance. Se o problema continuar, mantenha  
      a variavel do sysctl habilitada e defina a opc,ao NTIMECOUNTER no kernel para valores crescentes.  
      Se chegar a um ponto em que foi necessario definir NTIMECOUNTER=20 e o problema ainda nao tiver    
      sido resolvido, as interrupc,oes sao serias demais e seu comportamento nao e confiavel.            
5.20. Acontece da pcm nao ser encontrada, com a mensagem pcm0 not found ou entao minha placa de som e    
      encontrada na pcm1 mas no meu kernel a entrada se refere a device pcm0. O que esta havendo?        
      Isso acontece no FreeBSD 3.X com placas de som PCI. A pcm0 e reservada exclusivamente para placas  
      de som ISA e por isso se a placa em questao e PCI, ela sera reconhecida como pcm1 e a mensagem em  
      questao pode acontecer.                                                                            
                                                                                                         
        Nota:                                                                                            
                                                                                                         
      Nao e possivel evitar a mensagem de advertencia simplesmente alterando o seu kernel e definindo    
      device pcm1 pois isso resultara na pcm1 sendo reservada para placas ISA, e o seu equipamento PCI   
      sera reconhecido na pcm2 (e a mensagem de advertencia pcm1 not found continuara).                  
                                                                                                         
      Caso sua placa de som seja PCI ainda sera preciso criar a device snd1 ao inves da snd0:            
                                                                                                         
      # cd /dev                                                                                          
      # ./MAKEDEV snd1                                                                                   
                                                                                                         
      Esse comportamento nao ocorre na serie 4.X do FreeBSD, muito trabalho foi feito para tornar o      
      sistema mais PnP-centric e a device pcm0 nao e mais reservada exclusivamente para placas ISA.      
5.21. Porque a minha placa PnP nao e mais encontrada (ou e encontrada como unknown) desde a atualizac,ao 
      para o FreeBSD 4.X?                                                                                
      O FreeBSD 4.X e muito mais PnP-centric do que as versoes anteriores, e isso causou alguns efeitos  
      distintos em algumas placas PnP (como algumas placas de som e alguns modems interno por exemplo)   
      que nao funcionam mais da forma como funcionavam no FreeBSD 3.X.                                   
                                                                                                         
      O motivo para esse comportamento e explicado no seguinte e-mail, que foi enviada na lista          
      freebsd-questions pelo Reter Wemm, respondendo uma pergunta sobre um modem interno que nao era     
      mais reconhecido no FreeBSD depois de atualizar o sistema para versao 4.X (os comentarios entre    
      []foram adicionados com a intenc,ao de explicar melhor o contexto da mensagem).                    
                                                                                                         
        Nota:                                                                                            
                                                                                                         
      Os indices dessa citac,ao foram atualizados de seu texto original                                  
                                                                                                         
        A bios PNP configurou ele [o modem] e o deixou conectado na porta em questao, por isso o estilo  
        antigo [no 3.X] "reconhece" o equipamento ISA.                                                   
                                                                                                         
        No FreeBSD 4 o codigo ISA e bem mais PnP-centric. Era possivel [no 3.X] encontrar uma placa ISA  
        que funcionava com "determinada" device e depois, o id PNP da mesma device encontrava a mesma    
        placa novamente, como se fosse uma outra usando os mesmos recursos do sistema, e por isso ele    
        falhava, como se fosse um conflito de recursos. Portanto, agora ele desabilita o suporta `as     
        placas programaveis de forma que essa confusao e dupla detecc,ao de hardware nao ocorra. Essa    
        mudanc,a implica tambem na necessidade de se saber previamente os ids PnP para cada tipo de      
        equipamento suportado, aumentando um pouco mais a lista de TODO do suporte PnP no sistema.       
                                                                                                         
      Para fazer o equipamento voltar a funcionar, e necessario encontrar seu PnP id e adiciona-lo a     
      lista de devices ISA reconhecidas como PnP. Essa informac,ao pode ser obtida usando pnpinfo(8) que 
      detecta a configurac,ao dos equipamentos. Por exemplo, veja a saida do pnpinfo(8) de um modem      
      interno:                                                                                           
                                                                                                         
      # pnpinfo                                                                                          
      Checking for Plug-n-Play devices...                                                                
                                                                                                         
      Card assigned CSN #1                                                                               
      Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff                                           
      PnP Version 1.0, Vendor Version 0                                                                  
      Device Description: Pace 56 Voice Internal Plug & Play Modem                                       
                                                                                                         
      Logical Device ID: PMC2430 0x3024a341 #0                                                           
              Device supports I/O Range Check                                                            
      TAG Start DF                                                                                       
          I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8                                               
              [16-bit addr]                                                                              
          IRQ: 4  - only one type (true/edge)                                                            
                                                                                                         
      [algumas linhas com TAG foram eliminadas]                                                          
                                                                                                         
      TAG End DF                                                                                         
      End Tag                                                                                            
                                                                                                         
      Successfully got 31 resources, 1 logical fdevs                                                     
      -- card select # 0x0001                                                                            
                                                                                                         
      CSN PMC2430 (0x3024a341), Serial Number 0xffffffff                                                 
                                                                                                         
      Logical device #0                                                                                  
      IO:  0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8                                       
      IRQ 5 0                                                                                            
      DMA 4 0                                                                                            
      IO range check 0x00 activate 0x01                                                                  
                                                                                                         
      A informac,ao que voce quer e a linha "Vendor ID" no comec,o da saida do comando. O valor          
      hexadecimal entre parenteses (0x3024a341 esse caso) e PnP id e o conjunto de caracteres que o      
      antecede (PMC2430) e a identificac,ao ASCII unica.                                                 
                                                                                                         
      Alternativamente, se o pnpinfo(8) nao listou sua placa em questao, o pciconf(8) pode ser usado     
      preferivelmente. Esta e a saida do comando pciconf -vl de uma placa de som onboard:                
                                                                                                         
      # pciconf -vl                                                                                      
      chip1@pci0:31:5:        class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02 hdr=0x00           
          vendor   = 'Intel Corporation'                                                                 
          device   = '82801AA 8xx Chipset AC'97 Audio Controller'                                        
          class    = multimedia                                                                          
          subclass = audio                                                                               
                                                                                                         
      Aqui deve-se usar o valor do chip, "0x24158086".                                                   
                                                                                                         
      Tais informac,oes (Vendor ID ou valor do chip) precisam ser adicionadas ao arquivo                 
      /usr/src/sys/isa/sio.c.                                                                            
                                                                                                         
      Primeiro fac,a uma copia de seguranc,a do sio.c no caso de algo dar errado e tambem para que voce  
      possa fazer um patch para enviar junto com o seu Relatorio de Problemas (voce vai enviar um PR,    
      nao vai?) e depois edite o sio.c e procure a linha                                                 
                                                                                                         
      static struct isa_pnp_id sio_ids[] = {                                                             
                                                                                                         
      Depois analise as linhas logo abaixo para encontrar o lugar apropriado para sua placa. As entradas 
      na tabela ficam todas parecidas com essa logo abaixo, e sao ordenadas de acordo com a              
      identificac,ao ASCII do fabricante do produto a qual deve ser incluida como comentario na coluna   
      do lado do codigo em questao, e junto com a descric,ao da placa ou parte dela, conforme            
      identificada na saida do pnpinfo(8):                                                               
                                                                                                         
      {0x0f804f3f, NULL},     /* OZO800f - Zoom 2812 (56k Modem) */                                      
      {0x39804f3f, NULL},     /* OZO8039 - Zoom 56k flex */                                              
      {0x3024a341, NULL},     /* PMC2430 - Pace 56 Voice Internal Modem */                               
      {0x1000eb49, NULL},     /* ROK0010 - Rockwell ? */                                                 
      {0x5002734a, NULL},     /* RSS0250 - 5614Jx3(G) Internal Modem */                                  
                                                                                                         
      Adicione o ID hexadecimal do fabricante da placa no local apropriado, salve o arquivo e recompile  
      o kernel, depois reinicie o sistema. Agora a sua placa deve ter sido encontrada como uma device    
      sio exatamente como era encontrada no FreeBSD 3.X                                                  
5.22. Qual a causa do erro nlist failed quando eu executo, por exemplo, o top ou o systat?               
      O problema e que o programa que voce esta tentando executar tenta ler alguma informac,ao           
      especifica do kernel, baseando-se no kernel symbol em questao, mas por algum motivo, essa          
      informac,ao nao pode ser encontrada; esse erro e causado por um dos seguintes problemas:           
                                                                                                         
        * O kernel e o userland do sistema nao estao em sincronia (por exemplo, voce compilou um kernel  
          novo e o instalou sem de dar um installworld, ou vice-versa), e por isso a tabela de           
          informac,oes dos kernel symbols e diferente do que o programa pensa que e. Se esse for o caso  
          basta completar os procedimentos de atualizac,ao do sistema (veja o arquivo /usr/src/UPDATING  
          para a correta sequ:encia de ac,oes).                                                          
                                                                                                         
        * O /boot/loader nao esta sendo usado para carregar o kernel dessa estac,ao, ao inves dele, o    
          boot2 (veja boot(8)) esta sendo usado diretamente. Apesar de nao ter problema algum deixar de  
          usar o /boot/loader, ele costuma se comportar melhor na hora de tornar os kernel symbols       
          disponiveis para aplicac,oes em nivel de usuario.                                              
5.23. Porque demora tanto para a conexao se estabelecer via ssh ou telnet?                               
      O sintoma: existe um atraso muito grande entre o estabelecimento da conexao TCP e o momento que o  
      programa cliente pede a senha (ou no caso do telnet(1), quando a tela de login aparece).           
                                                                                                         
      O problema: o programa servidor dessa transac,ao leva muito tempo tentando resolver o nome da      
      estac,ao cliente que esta se conectando. A maioria dos servidores, incluindo os servidores Telnet  
      e SSH que vem junto com o FreeBSD tentam resolver o numero IP do cliente no nome da estac,ao,      
      para, entre outras coisas, gravar essa informac,ao em um arquivo de log para referencias futuras   
      por parte do administrador.                                                                        
                                                                                                         
      A soluc,ao: Se o problema acontece apenas quando voce (o cliente) tenta se conectar no servidor, o 
      problema e com o lado cliente da transac,ao; se o problema acontece com qualquer estac,ao que      
      tente se conectar ao computador (servidor) entao o problema e do lado servidor.                    
                                                                                                         
      Se o problema e com o cliente, a unica maneira de corrigir o problema e configurar corretamente o  
      servidor DNS que responde autoritativamente pelo enderec,o da estac,ao. Se for uma rede local      
      considere esse comportamento um problema do servidor, e continue lendo; se a conexao deve ser      
      estabelecida na rede global (internet) , entao entre em contato com o seu Provedor de Servic,os    
      Internet e solicite que eles corrijam o problema.                                                  
                                                                                                         
      Se o problema e do lado servidor, e a rede em questao, se trata de uma rede local, sera necessario 
      configurar o servidor de forma que ele consiga resolver os enderec,os dos clientes em nomes. Veja  
      as paginas de manual do hosts(5) e named(8) para obter mais informac,oes. Se a conexao e na        
      Internet, provavelmente o resolvedor (lado cliente do servic,o de nomes) do seu servidor nao esta  
      funcionando corretamente. Pra fazer o teste, tente descobrir o enderec,o IP do site www.yahoo.com  
      por exemplo. Se nao funcionar, esta ai o problema.                                                 
5.24. O que a mensagem stray IRQ quer dizer?                                                             
      Stray IRQs sao sintomas de hardware que interrompe o pedido de interrupc,ao no meio de um ciclo de 
      autorizac,ao de interrupc,ao.                                                                      
                                                                                                         
      Existem tres formas de tratar o problema:                                                          
                                                                                                         
        * Aprenda a conviver com as mensagens de advertencia. De qualquer forma, todas as mensagens      
          exceto as 5 primeiras para cada IRQ sao suprimidas pelo sistema mesmo.                         
                                                                                                         
        * Evite o inconveniente alterando de 5 para 0 na func,ao isa_strayintr() o numero de mensagens   
          antes de suprimir as advertencias.                                                             
                                                                                                         
        * Evite as advertencias instalando algum equipamento de porta paralela que use a IRQ 7 e o       
          driver PPP (e o usual, na maioria dos sistemas) e instale algum driver IDE ou qualquer outro   
          dispositivo que use a IRQ 15 e seu respectivo suporte.                                         
5.25. Por que a mensagem file: table is full aparece repetidas vezes no dmesg?                           
      Esse erro indica que voce excedeu o numero maximo de descrevedores (descriptors) de arquivos no    
      sistema. Leia a sec,ao kern.maxfiles da capitulo de Ajuste de Limites do Kernel no Manual do       
      FreeBSD do FreeBSD para obter mais informac,oes sobre o problema.                                  
5.26. Por que o relogio do meu laptop mantem a hora incorreta?                                           
      Rode o comando dmesg(8), e procure algumas linhas com a expressao Timecounter. A ultima linha      
      encontrada sera o relogio que o FreeBSD escolheu, e com certeza ele sera TSC.                      
                                                                                                         
      # dmesg | grep Timecounter                                                                         
      Timecounter "i8254"  frequency 1193182 Hz                                                          
      Timecounter "TSC"  frequency 595573479 Hz                                                          
                                                                                                         
      Essa informac,ao pode ser confirmada ao verificar a variavel kern.timecounter.hardware do          
      sysctl(3).                                                                                         
                                                                                                         
      # sysctl kern.timecounter.hardware                                                                 
      kern.timecounter.hardware: TSC                                                                     
                                                                                                         
      A BIOS do laptop altera a frequencia do relogio TSC de forma a modificar a velocidade do           
      processador quando o computador estiver sendo utilizado com baterias, ou se o mesmo entrar em modo 
      de economia de energia. O FreeBSD nao faz distinc,ao entre frequencia do clock e modos especiais   
      de trabalho, e por isso pode atrasar ou adiantar a hora do sistema.                                
                                                                                                         
      Esse exemplo, o laptop em questao tem dois relogios; portanto o i8254 pode ser definido como       
      padrao na variavel kern.timecounter.hardware do sysctl(3).                                         
                                                                                                         
      # sysctl -w kern.timecounter.hardware=i8254                                                        
      kern.timecounter.hardware: TSC -> i8254                                                            
                                                                                                         
      Agora o seu laptop deve conseguir manter a data e hora de forma mais precisa.                      
                                                                                                         
      Pra tornar essa alterac,ao automatica, adicione a seguinte linha no arquivo /etc/sysctl.conf.      
                                                                                                         
      kern.timecounter.hardware=i8254                                                                    
5.27. Por que o meu laptop nao funciona muito bem na hora de identificar cartoes PCMCIA?                 
      Esse problema e comum em laptops que tem mais de um sistema operacional instalado. Alguns sistemas 
      nao-BSD fazem os cartoes PCMCIA ficarem em um estado inconsistente, causando um reconhecimento     
      problematico dos dispositivos por parte do pccardd, como por exemplo, detectando os cartoes como   
      "(null)""(null)" ao inves da sua marca e modelo verdadeiros.                                       
                                                                                                         
      E necessario desligar completamente a alimentac,ao de energia do equipamento para garantir que o   
      mesmo seja completamente resetado. Desligue completamente o laptop (nao suspenda seu               
      funcionamento, nao o deixe entrar em modo de espera, conhecido como standby, a alimentac,ao deve   
      ser completamente interrompida), espere alguns - poucos - minutos e reinicie o laptop. Tudo deve   
      correr bem.                                                                                        
                                                                                                         
      Alguns laptops sao grandes mentirosos quando afirmam estar desligados. Se o procedimento acima nao 
      funcionar, tire a bateria do laptop, espere alguns minutos e ligue o sistema novamente.            
5.28. Por que o bootloader do FreeBSD mostra a mensagem Read error e para completamente logo apos a tela 
      da BIOS?                                                                                           
      O inicializador do FreeBSD reconheceu a geometria de disco de forma incorreta e por isso esse      
      valor deve ser definido manualmente com o fdisk(8) ao criar ou modificar uma partic,ao FreeBSD.    
                                                                                                         
      A geometria correta do disco pode ser verificada na BIOS do computador. Procure pelo numero de     
      cilindros, cabec,as e de setores do disco em questao.                                              
                                                                                                         
      No fdisk do sysinstall(8), aperte a tecla G para definir a geometria do disco manualmente.         
                                                                                                         
      Ira aparecer uma janela de dialogo perguntando o numero de cilindros, cabec,as e setores do disco. 
      Defina esses valores, conforme anotados da BIOS do sistema e separados por barras.                 
                                                                                                         
      5000 cilindros, 250 cabec,as e 60 setores, por exemplo, seria definido como 5000/250/60.           
                                                                                                         
      Aperte ENTER para confirmar os valores e depois aperte a tecla W para escrever as novas            
      informac,oes na tabela de partic,oes do disco.                                                     
5.29. Outro sistema operacional destruiu o meu gerenciador de inicializac,ao(Boot Manager). Como eu o    
      recupero?                                                                                          
      Entre no sysinstall(8) e escolha o menu Configure, seguido do Fdisk. Escolha o disco onde o        
      gerenciador de boot costumava ficar e aperte a barra de espac,os(space). Depois aperte a tecla W   
      para escrever as novas informac,oes no disco. Vai aparecer uma tela, perguntando o que deve ser    
      instalado na MBR do disco. Escolha o Gerenciador de inicializac,ao(Boot Manager), e ele sera       
      reinstalado.                                                                                       
5.30. O que o erro swap_pager: indefinite wait buffer: quer dizer?                                       
      Quer dizer que existe um processo tentando paginar uma area da memoria para o disco, e que esse    
      processo demorou mais de 20 segundos; portanto falhou. E provavel que a causa desse erro sejam     
      blocos defeituosos no disco, falha nos cabos, ou ate mesmo algum outro erro de I/O relacionado ao  
      hardware. Se o disco estiver danificado, serao apresentadas mensagens de erro referentes ao mesmo  
      em /var/log/messages e tambem na saida do dmesg. Do contrario, verifique seus cabos e conectores.  

                       Capitulo 6. Aplicac,oes Comerciais

  Nota:

   Esta sec,ao se encontra ainda muito escassa, embora esperamos,
   naturalmente, que as empresas fac,am adic,oes a ela! :) Os desenvolvedores
   do FreeBSD nao tem interesses financeiros em nenhuma das empresas listadas
   aqui, mas apenas as listam como um servic,o publico (e sente que o
   interesse comercial no FreeBSD pode ter muitos efeitos positivos na
   viabilidade do uso do sistema a longo prazo). Nos encorajamos que os
   vendedores de softwares comerciais mandem seus softwares para inclusao.
   Consulte a pagina de Fabricantes para obter uma lista maior.

   6.1. Onde eu posso conseguir Office Suite) para o FreeBSD?

   6.2. Onde posso conseguir o Motif para o FreeBSD?

   6.3. Onde posso adquirir o CDE para o FreeBSD?

   6.4. Existe algum servidor X comercial de alta-performance?

   6.5. Existe algum sistema de Banco de Dados para o FreeBSD?

   6.6. Posso rodar o Oracle no FreeBSD?

   6.1. Onde eu posso conseguir Office Suite) para o FreeBSD?                 
          * A FreeBSD Mall oferece uma versao nativa do VistaSource           
            ApplixWare 5 para o FreeBSD.                                      
                                                                              
            O ApplixWare e uma poderosa suite comercial de aplicac,oes para   
            escritorio no FreeBSD. Ela contem um processador de texto,        
            planilha de calculos, um programa de apresentac,ao e um pacote    
            para desenho vetorial e outros aplicativos.                       
                                                                              
            O ApplixWare e vendido com parte integrante da edic,ao de         
            Desktops BSD da FreeBSD Mall.                                     
                                                                              
          * A versao para Linux do StarOffice funciona sem problemas no       
            FreeBSD. A maneira mais facil de instalar a versao para Linux do  
            StarOffice e pela Colec,ao de Ports do FreeBSD. Versoes futuras   
            da suite Open-Source de escritorio,OpenOffice deverao funcionar   
            tambem.                                                           
   6.2. Onde posso conseguir o Motif para o FreeBSD?                          
        O Open Group lanc,ou o codigo fonte do Motif 2.1.30, que pode ser     
        instalado como o pacote open-motif, ou entao ser compilado pelo       
        Ports. Consulte a sec,ao sobre o Ports no Manual do FreeBSD para      
        obter mais informac,oes sobre o assunto.                              
                                                                              
          Nota:                                                               
                                                                              
        O Open Motif pode ser redistribuido apenas se sua distribuic,ao       
        estiver sendo usada em sistemas operacionais open source.             
                                                                              
        Em contrapartida, existem distribuic,oes comerciais do Motif          
        disponiveis. Tais distribuic,oes contudo nao sao gratuitas, mas suas  
        licenc,as permitem que ele seja utilizando em softwares de codigo     
        fechado. Contate a Apps2go para obter informac,oes quanto a versao    
        mais barata do ELF Motif 2.1.20 para FreeBSD (tanto para i386 quanto  
        para Alpha).                                                          
                                                                              
        Existem duas distribuic,oes, a "development edition" e a "runtime     
        edition" (bem mais barata). Tais distribuic,oes incluem:              
                                                                              
          * OSF/Motif manager, xmbind, panner, wsm.                           
                                                                              
          * Kit de Desenvolvimento com uil, mrm, xm, xmcxx, arquivos include  
            e arquivos.                                                       
                                                                              
          * Bibliotecas ELF estaticas e dinamicas (para serem usadas com      
            FreeBSD 3.0 e superiores).                                        
                                                                              
          * Applets de demonstrac,ao.                                         
                                                                              
        Lembre-se de especificar que voce quer a versao para FreeBSD do Motif 
        quando encomendado (nao esquec,a de mencionar a arquitetura que voce  
        quer tambem)! Versoes para NetBSD e OpenBSD tambem sao vendidas pela  
        Apps2go. Atualmente o produto e apenas disponivel para download via   
        FTP.                                                                  
                                                                              
        Mais informac,oes:                                                    
                                                                              
           Pagina WWW da Apps2go                                              
                                                                              
        ou                                                                    
                                                                              
           <sales@apps2go.com> ou <support@apps2go.com>                       
                                                                              
        ou                                                                    
                                                                              
           fone [EUA] (817) 431 8775 ou +1 817 431-8775                       
                                                                              
        Contate Metro Link para obter informac,oes quanto a versao ELF ou a   
        versao a.out do Motif 2.1 para o FreeBSD.                             
                                                                              
        Tal distribuic,ao inclui:                                             
                                                                              
          * Gerenciador OSF/Motif, xmbind, panner, wsm.                       
                                                                              
          * Kit de desenvolvimento com uil, mrm, xm, xmcxx, arquivos include  
            e arquivos Imake.                                                 
                                                                              
          * Bibliotecas estaticas e dinamicas (nao se esquec,a de especificar 
            que voce quer o formato ELF, caso queira usar com o FreeBSD 3.0 e 
            posteriores; ou o formato a.out para usar com FreeBSD 2.2.8 e     
            anteriores).                                                      
                                                                              
          * Applets de Demonstrac,ao.                                         
                                                                              
          * Paginas de manual previamente formatadas.                         
                                                                              
        Certifique-se de especificar que voce quer a versao para FreeBSD do   
        Motif quando encomenda-lo! Versoes para Linux tambem sao vendidas     
        pela Metro Link. O produto esta disponivel em CDROM ou download via   
        FTP.                                                                  
                                                                              
        Contate a Xi Graphics para obter informac,oes quanto a versao a.out   
        do Motif 2.0 para o FreeBSD.                                          
                                                                              
        A distribuic,ao inclui:                                               
                                                                              
          * Gerenciador OSF/Motif, xmbind, panner, wsm.                       
                                                                              
          * Kit de desenvolvimento com uil, mrm, xm, xmcxx, arquivos include  
            e arquivos Imake.                                                 
                                                                              
          * Bibliotecas estaticas e dinamicas (para o FreeBSD 2.2.8 e         
            anteriores).                                                      
                                                                              
          * Applets de Demonstrac,ao.                                         
                                                                              
          * Paginas de manual previamente formatadas.                         
                                                                              
        certifique-se de especificar que voce quer a versao para FreeBSD do   
        Motif quando encomenda-lo! Versoes para BSDI e para Linux tambem sao  
        vendidas pela Xi Graphics. Atualmente o produto se trata de um        
        conjunto de 4 disquetes... futuramente se tornara uma distribuic,ao   
        unica em CD, como o CDE da mesma empresa.                             
   6.3. Onde posso adquirir o CDE para o FreeBSD?                             
        A Xi Graphics costumava vender o CDE para o FreeBSD, mas nao o faz    
        mais.                                                                 
                                                                              
        O KDE e um Desktop de codigo fonte aberto para X11 similar ao CDE em  
        muitos aspectos. Talvez voce tambem aprecie o visual e as             
        caracteristicas do xfce. KDE e xfce estao ambos disponiveis no        
        sistema de ports do FreeBSD.                                          
   6.4. Existe algum servidor X comercial de alta-performance?                
        Sim, a Xi Graphics e a Metro Link vendem produtos da Accelerated-X    
        para o FreeBSD e para outros sistemas baseados em Intel.              
                                                                              
        O que a Metro Link oferece e um servidor X de alta-performance que    
        possui um esquema de configurac,ao extremamente facil, fazendo uso da 
        suite de ferramentas de gerenciamento de pacotes do FreeBSD, com      
        suporte a multiplas placas de video simultaneas e e distribuido       
        apenas em forma binaria, por meio conveniente de um download via FTP. 
        Sem esquecer que, o produto oferecido pela Metro Link esta disponivel 
        a um prec,o muito razoavel, $39 dolares.                              
                                                                              
        A Metro Link vende tambem o Motif e formato ELF e a.out para o        
        FreeBSD (veja pergunta anterior).                                     
                                                                              
        informac,oes:                                                         
                                                                              
           Pagina WWW da Metro Link                                           
                                                                              
        ou                                                                    
                                                                              
           <sales@metrolink.com> ou <tech@metrolink.com>                      
                                                                              
        ou                                                                    
                                                                              
           fone [EUA] (954) 938-0283 ou +1 954 938-0283                       
                                                                              
        O produto oferecido pela Xi Graphics e um servidor X de alta          
        performance, que oferece uma interface facil de configurac,ao e com   
        suporte a multiplas placas de video simultaneas, e e distribuido      
        apenas de forma binaria em uma distribuic,ao unica para FreeBSD e     
        Linux. A Xi Graphics oferece ainda um servidor X de alta performance  
        com suporte desenvolvido especificamente para laptops.                
                                                                              
        Existe uma versao de"demonstrac,ao de compatibilidade" disponivel na  
        versao 5.0 do servidor grafico.                                       
                                                                              
        A Xi Graphics vende ainda o Motif e o CDE para o FreeBSD (veja        
        acima).                                                               
                                                                              
        Mais informac,oes:                                                    
                                                                              
           Pagina WWW da Xi Graphics                                          
                                                                              
        ou                                                                    
                                                                              
           <sales@xig.com> ou <support@xig.com>                               
                                                                              
        ou                                                                    
                                                                              
           fone [EUA] (800) 946 7433 ou +1 303 298-7478.                      
   6.5. Existe algum sistema de Banco de Dados para o FreeBSD?                
        Sim! Veja a sec,ao de Fabricantes Comerciais do Web site do FreeBSD.  
                                                                              
        De uma olhada tambem na sec,ao de Databases da Colec,ao de Ports do   
        FreeBSD.                                                              
   6.6. Posso rodar o Oracle no FreeBSD?                                      
        Pode. As paginas a seguir descrevem exatamente como configurar o      
        Oracle para Linux no FreeBSD:                                         
                                                                              
          * http://www.scc.nl/~marcel/howto-oracle.html                       
                                                                              
          * http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd    

                       Capitulo 7. Aplicac,oes de Usuario

   7.1. Entao, onde estao todas as aplicac,oes de usuarios?

   7.2. Onde eu encontro a libc.so.3.0?

   7.3. Por que eu estou tendo problemas cuja mensagem de erro mostra "Error:
   can't find libc.so.4.0"?.

   7.4. Por que o ghostscript gera um monte de erros no meu 386/486SX?

   7.5. Por que aplicac,oes do SCO/iBCS2 bombardeiam o ``socksys''? (FreeBSD
   3.0 e anteriores, apenas).

   7.6. Como eu configuro um sistema de INN (Internet News) na minha
   estac,ao?

   7.7. Qual versao do Microsoft FrontPage eu devo usar?

   7.8. O FreeBSD suporta Java?

   7.9. Por que eu nao consigo compilar determinado port na minha estac,ao
   3.X-STABLE?

   7.10. Onde posso encontrar o arquivo ld.so?

   7.11. Eu atualizei meus fontes. E agora, como eu atualizo meus Ports
   instalados?

   7.12. Por que o /bin/sh e tao pequeno? Por que o FreeBSD nao usa o bash ou
   outro interpretador de comandos (shell)?

   7.13. Por que o Netscape e o Opera demoram tanto para iniciar?

   7.1.  Entao, onde estao todas as aplicac,oes de usuarios?                    
         Por gentileza, de uma olhada na pagina do Ports para informac,oes      
         sobre pacotes de programas disponiveis na Colec,ao de Ports do         
         FreeBSD. A lista atualmente ultrapassa 24,000 aplicac,oes e esta       
         crescendo diariamente, entao retorne `a pagina e verifique             
         frequ:entemente as aplicac,oes, ou enta inscreva-se na lista de        
         discussao freebsd-announce mailing list para atualizac,oes periodicas  
         ou novas adic,oes.                                                     
                                                                                
         A maioria dos ports devem estar disponiveis para as versoes 2.2, 3.x e 
         4.x, e muitos deles devem funcionar tambem em sistemas 2.1.x. Cada vez 
         que um lanc,amento do FreeBSD e produzido, um snapshot da arvore do    
         ports do momento da lanc,amento tambem e incluida no diretorio ports/. 
                                                                                
         O FreeBSD tambem suporta o conceito de "pacote", que essencialmente    
         nada mais e do que uma distribuic,ao binaria compactada com o gzip e   
         com um pouco de inteligencia extra embutido nesse pacote, para fazer o 
         trabalho que e requerido para uma instalac,ao customizada. Um pacote   
         pode ser instalado e desinstalado repetidas vezes de forma facil, sem  
         ter que se conhecer os detalhes horrendos dos arquivos que ele inclui. 
                                                                                
         Use o menu de instalac,ao de pacotes em /stand/sysinstall (sobre a     
         opc,ao do pos-configuration menu) ou invoque o comando pkg_add(1) nos  
         arquivos de pacotes especificos que voc;e quer instalar. Os pacotes    
         podem ser identificados normalmente pelo sufixo .tgz e o pessoal da    
         distribuic,ao em CDROM tem um diretorio /packages/All no cd que conte  
         esses arquivos. Eles podem tambem ser baixados pela rede para varias   
         versoes do FreeBSD nos seguintes enderec,os: do (sobre a opc,ao        
         PostConfiguration do menu) ou invoque o comando pkg_add(1)             
                                                                                
         para o 2.2.8-RELEASE/2.2.8-STABLE                                      
                                                                                
            ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/        
                                                                                
         para o 3.X-RELEASE/3.X-STABLE                                          
                                                                                
            ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/     
                                                                                
         para o 4.X-RELEASE/4-STABLE                                            
                                                                                
            ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/     
                                                                                
         para o 5.X-CURRENT                                                     
                                                                                
            ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current     
                                                                                
         ou em um sitio espelho mais perto de voce.                             
                                                                                
         Note que nem todos os Ports podem estar disponiveis em formato de      
         pacotes, visto que a atualizac,ao da Colec,ao de Ports do FreeBSD e    
         muito frequ:ente, e novos programas sao constantemente adicionados, e  
         outros sao atualizados. E sempre bom verificar periodicamente quais    
         pacotes estao disponiveis no servidor FTP mestre do projeto FreeBSD, o 
         ftp.FreeBSD.org.                                                       
   7.2.  Onde eu encontro a libc.so.3.0?                                        
         Voce esta tentando usar um pacote construido para o FreeBSD 2.2 ou     
         para versoes posteriores, em um sistema 2.1.X. Por gentileza, de uma   
         olhada na sec,ao anterior e pegue o port/pacote correto para o seu     
         sistema.                                                               
   7.3.  Por que eu estou tendo problemas cuja mensagem de erro mostra "Error:  
         can't find libc.so.4.0"?.                                              
         Acidentalmente voce pegou um pacote construido para FreeBSD 4.X ou     
         para o 5.X e esta tentando instala-lo no seu FreeBSD 2.X ou 3.X. Por   
         favor, pegue a versao correta dos pacotes.                             
   7.4.  Por que o ghostscript gera um monte de erros no meu 386/486SX?         
         Deixe-me adivinhar. Voce nao tem um co-processador matematico, certo?  
         Sera necessario adicionar um co-processador matematico alternativo ao  
         seu kernel; voce pode fazer isso adicionando a seguinte linha no       
         arquivo de configurac,ao do seu kernel, e depois recompila-lo:         
                                                                                
         options GPL_MATH_EMULATE                                               
                                                                                
           Nota:                                                                
                                                                                
         Quando voce fizer isto, sera necessario remover a opc,ao MATH_EMULATE  
   7.5.  Por que aplicac,oes do SCO/iBCS2 bombardeiam o ``socksys''? (FreeBSD   
         3.0 e anteriores, apenas).                                             
         Primeiro, e necessario editar o arquivo /etc/sysconfig (ou             
         /etc/rc.conf, veja o rc.conf(5)) e modificar a ultima sec,ao,          
         alterando para YES a seguinte variavel:                                
                                                                                
         # Set to YES if you want ibcs2 (SCO) emulation loaded at startup       
         ibcs2=NO                                                               
                                                                                
         Essa alterac,ao fara o sistema carregar os modulos de kernel do ibcs2  
         na inicializac,ao.                                                     
                                                                                
         Depois, sera necessario alterar o /compat/ibcs2/dev para parecer com:  
                                                                                
         lrwxr-xr-x  1 root  wheel         9 Oct 15 22:20 X0R@ -> /dev/null     
         lrwxr-xr-x  1 root  wheel         7 Oct 15 22:20 nfsd@ -> socksys      
         -rw-rw-r--  1 root  wheel         0 Oct 28 12:02 null                  
         lrwxr-xr-x  1 root  wheel         9 Oct 15 22:20 socksys@ -> /dev/null 
         crw-rw-rw-  1 root  wheel   41,   1 Oct 15 22:14 spx                   
                                                                                
         E necessario que o socksys aponte para /dev/null (veja null(4)) para   
         fingir o processo de abertura e fechamento do device. O codigo mais    
         recente (-CURRENT) se encarregara dos outros detalhes. Essa maneira de 
         trabalhar o socksys e bem mais limpa do que a forma que era usada      
         anteriormente. Se voce quer que o driver spx fique disponivel para um  
         socket X local, defina a opc,ao SPX_HACK no kernel do FreeBSD quando   
         voce o recompilar.                                                     
   7.6.  Como eu configuro um sistema de INN (Internet News) na minha estac,ao? 
         Depois de instalar o pacote news/inn ou o port, um excelente lugar     
         para iniciar e Dave Barr's INN Page onde voc,e encontrara o FAQ do     
         INN.                                                                   
   7.7.  Qual versao do Microsoft FrontPage eu devo usar?                       
         Use os Ports, Luke! Uma versao previamente corrigida do                
         Apache,apache13-fp, esta disponivel na arvore do Ports.                
   7.8.  O FreeBSD suporta Java?                                                
         Veja a pagina http://www.FreeBSD.org/java/.                            
   7.9.  Por que eu nao consigo compilar determinado port na minha estac,ao     
         3.X-STABLE?                                                            
         Caso esteja usando uma versao do FreeBSD significativamente mais velha 
         do que o -CURRENT ou o -STABLE, sera necessario usar o kit de          
         atualizac,ao dos Ports, disponivel em http://www.FreeBSD.org/ports/.   
         Caso esteja atualizado mas ainda assim voce tem dificuldades, e        
         provavel que alguem disponibilizou uma versao do programa que funciona 
         perfeitamente no -CURRENT mas que nao compila corretamente no -STABLE. 
         Por gentileza, envie um Relatorio de Problemas com o comando           
         send-pr(1) porque a colec,ao de Ports deve funcionar tanto no -STABLE  
         quanto no -CURRENT.                                                    
   7.10. Onde posso encontrar o arquivo ld.so?                                  
         Algumas aplicac,oes cujo formato binario e o a.out, como o Netscape    
         Navigator, necessitam das bibliotecas a.out. Uma versao do FreeBSD     
         nativamente construido com bibliotecas ELF nao instala as bibliotecas  
         a.out por padrao. Voce tera problemas por nao ter o                    
         /usr/libexec/ld.so, se esse for o caso do seu sistema. Estas           
         bibliotecas estao disponiveis embutidas na distribuic,ao compat22.     
         Utilize o sysinstall(8) para instala-los. Pode-se instala-lo apartir   
         do codigo fonte do FreeBSD:                                            
                                                                                
         # cd /usr/src/lib/compat/compat22                                      
         # make install clean                                                   
                                                                                
         Se quiser instalar as bibliotecas mais recentes do compat22 sempre que 
         executar o make world, edite /etc/make.conf para incluir COMPAT22=YES. 
         Bibliotecas de compatibilidade antigas raramente sofrem mudanc,as , as 
         vezes nunca, entao geralmente nao e necessario.                        
                                                                                
         Tambem veja as paginas de ERRATAS para o 3.1-RELEASE e 3.2-RELEASE.    
   7.11. Eu atualizei meus fontes. E agora, como eu atualizo meus Ports         
         instalados?                                                            
         FreeBSD nao inclui uma ferramenta de atualizac,ao do ports, mas        
         existem algumas ferramentas que tornam o processo de atualizac,ao dos  
         Ports uma tarefa, digamos, facil. E possivel ainda instalar algumas    
         ferramentas adicionais que facilitam o gerenciamento dos Ports         
         instalados                                                             
                                                                                
         O comando pkg_version(1) pode gerar um script que atualizara os ports  
         instalados para as ultimas versoes da arvore de Ports.                 
                                                                                
         # pkg_version -c > /tmp/myscript                                       
                                                                                
         O script de saida deve ser editado manualmente antes de ser usado. As  
         versoes mais recentes do pkg_version(1) forc,am a edic,ao do arquivo,  
         colocando um exit(1) no comec,o do script.                             
                                                                                
         A saida do script deve ser salva pois ela gera informac,oes sobre os   
         pacotes que sao dependencias dos que estao sendo atualizados. Tais     
         dependencias podem precisar ser atualizadas ou nao, dependendo de cada 
         uma delas. Os casos comuns onde as dependencias precisam ser           
         atualizadas e quando a versao das bibliotecas compartilhadas foram     
         alteradas, portanto o port que usava aquela biblioteca precisa ser     
         atualizado para que a nova versao seja usada.                          
                                                                                
         Caso tenha espac,o o bastante em disco , pode ser interessante usar a  
         ferramenta portupgrade para automatizar o processo de atualizac,ao das 
         aplicac,oes instalados por meio de ports ou pacotes. Posto que ele foi 
         programado em Ruby, o portupgrade e um candidato improvavel `a se      
         tornar parte da arvore principal do FreeBSD. Mas isso nao evita que    
         qualquer pessoa use o programa. Alias, ele e uma otima ferramenta. Ele 
         esta disponivel em sysutils/portupgrade.                               
                                                                                
         Se a estac,ao fica constantemente conectada, e interessante usar o     
         sistema periodic(8) para gerar um relatorio semanal sobre as versoes   
         do Ports que podem ser atualizadas. Pra configurar o sistema para      
         isso, insira a linha weekly_status_pkg_enable="YES" no                 
         /etc/periodic.conf.                                                    
   7.12. Por que o /bin/sh e tao pequeno? Por que o FreeBSD nao usa o bash ou   
         outro interpretador de comandos (shell)?                               
         Porque o POSIX diz que e assim que deve ser um interpretador de        
         comandos (shell)?                                                      
                                                                                
         A reposta mais complicada: muitas pessoas precisam escrever scripts    
         shell que sejam portaveis atraves de muitos sistemas. E por isso que o 
         POSIX especifica o interpretador de comandos (shell) e comandos        
         utilitarios com tanto detalhe. A maioria dos scripts sao escritos para 
         o interpretador de comandos Bourne (Bourne shell), e varias interfaces 
         importantes de programac,ao (make(1), system(3), popen(3) e analogos   
         em linguagens de alto-nivel como Perl e Tcl) o usam como interpretador 
         de comandos (shell) padrao. Por ser tao amplamente utilizado e         
         importante que o interpretador de comandos (shell) Bourne seja rapido  
         para carregar, seja deterministico em seu comportamento, e que tenha   
         uma pequena alocac,ao de memoria.                                      
                                                                                
         A implementac,ao atual e o nosso melhor esforc,o para encontrar a      
         maior parte destes requerimentos simultaneamente. Como forma de manter 
         o /bin/sh do menor tamanho possivel, nao incluimos muitas das          
         caracteristicas convenientes que outros interpretadores de comando     
         (shell) possuem. E por isso que a Colec,ao de Ports disponibiliza      
         outros interpretadores de comandos (shell) com caracteristicas mais    
         abrangentes, como o bash, o csh, o tcsh, e o zsh. (Voce pode comparar  
         a utilizac,ao de memoria entre todos esses interpretadores de comandos 
         (shell), analisando as colunas "VSZ" e "RSS" na saida do comando ps    
         -u.)                                                                   
   7.13. Por que o Netscape e o Opera demoram tanto para iniciar?               
         A resposta tradicional e que o DNS no seu computador esta mal          
         configurado. O Netscape e o Opera fazem verificac,ao de DNS ao         
         iniciar, e por isso nao se tornarao disponiveis ate que obtenham uma   
         resposta do servidor DNS ou ate que eles determinem que a estac,ao nao 
         esta conectada na rede.                                                

                      Capitulo 8. Configurac,aao do Kernel

   8.1. Eu gostaria de configurar meu kernel. E dificil?

   8.2. A compilac,ao do meu kernel falha porque esta faltando o _hw_float.
   Como eu resolvo o problema?

   8.3. Por que meu kernel e tao grande (cerca de 10MB)?

   8.4. Porque estao ocorrendo conflitos de interrupc,ao com portas
   multi-seriais?

   8.5. Porque todo kernel que eu tento construir falha na compilac,ao, mesmo
   o GENERIC?

   8.1. Eu gostaria de configurar meu kernel. E dificil?                      
        De modo algum! Veja a sec,ao "kernel config" do Manual do FreeBSD.    
                                                                              
          Nota:                                                               
                                                                              
        Recomenda-se que voce fac,a uma copia datada do seu kernel na forma   
        /kernel.AAMMDD e o diretorio /modules para /modules.AAMMDD depois que 
        estiver tudo funcionando. Desta forma se voce fizer alguma bobagem    
        quando mexer com a sua configurac,ao, pode-se iniciar aquele kernel   
        ao inves de ter que desfazer tudo novamente no kernel.GENERIC. Isso e 
        particularmente importante se voce estiver dando boot em um           
        equipamento nao suportado pelo kernel generico (GENERIC).             
   8.2. A compilac,ao do meu kernel falha porque esta faltando o _hw_float.   
        Como eu resolvo o problema?                                           
        Deixa eu adivinhar. Voce removeu o npx0 (veja npx(4)) do arquivo de   
        configurac,ao do kernel porque voce nao possui um co-processador      
        aritmetico, certo? Errado! :-) O npx0 e OBRIGATORIO. Mesmo que voce   
        nao tenha um co-processador aritmetico, o dispositivo npx0 deve ser   
        incluido.                                                             
   8.3. Por que meu kernel e tao grande (cerca de 10MB)?                      
        Provavelmente, seu kernel foi compilado em modo de depurac,ao         
        (debug). Um kernel construido em modo de depurac,ao (debug) contem    
        muitos simbolos usados para depurac,ao que aumentam muito o seu       
        tamanho. Note que se voce esta executando um FreeBSD 3.0 ou superior, 
        tera pouca, ou nenhuma, perda de performance por usar um kernel em    
        modo de depurac,ao (debug), sendo util ter um para o caso de pane no  
        sistema.                                                              
                                                                              
        Entretanto, se voce possui pouco espac,o em disco, ou simplesmente    
        nao quer executar um kernel para depurac,ao, certifique-se que os     
        dois itens abaixo sejam verdadeiros:                                  
                                                                              
          * Nao existe a seguinte linha no arquivo de configurac,ao do kernel 
                                                                              
         makeoptions DEBUG=-g                                                 
                                                                              
          * Voce nao esta executando config(8) com a opc,ao -g.               
                                                                              
        Ambas as situac,oes acima fazem com que o kernel seja compilado no    
        modo de depurac,ao (debug). Tao logo voce tenha certeza que nao se    
        enquadra naqueles itens, o kernel podera ser compilado normalmente e  
        notadamente diminuira o tamanho; a maioria dos kernels tendem a ficar 
        em torno de 1.5MB a 2MB.                                              
   8.4. Porque estao ocorrendo conflitos de interrupc,ao com portas           
        multi-seriais?                                                        
        Quando se compila um kernel com suporte a porta multi-serial, ele     
        avisa que somente a primeira porta e testada e as demais sao          
        ignoradas devido a conflitos de interrupc,ao. Como eu conserto isto?  
                                                                              
        O problema, neste caso, e que o FreeBSD possui codigo para evitar que 
        o kernel fique com lixo (trashed kernel) por causa de conflitos de    
        hardware ou software. A maneira de corrigir isto e excluindo as       
        definic,os de IRQ em todas as portas exceto uma. Veja o exemplo:      
                                                                              
        #                                                                     
        # Multiport high-speed serial line - 16550 UARTS                      
        #                                                                     
        device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr   
        device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr         
        device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr         
        device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr         
   8.5. Porque todo kernel que eu tento construir falha na compilac,ao, mesmo 
        o GENERIC?                                                            
        Existem varias causas possiveis para esse problema. Elas sao, sem uma 
        ordem particular:                                                     
                                                                              
          * Voce nao esta usando os comandos make buildkernel e make          
            installkernel, e seus fontes estao estruturados de forma          
            diferente daqueles usados para construir o sistema atual (por     
            exemplo, esta sendo um 4.3-RELEASE em um sistema 4.0-RELEASE). Se 
            estiver sendo feita uma atualizac,ao, leia o arquivo              
            /usr/src/UPDATING, prestando atenc,ao ao final da sec,ao "COMMON  
            ITEMS".                                                           
                                                                              
          * Voce esta usando os comandos make buildkernel e make              
            installkernel, mas nao garantiu a correta finalizac,ao do comando 
            make buildworld. O make buildkernel depende de arquivos gerados   
            pelo make buildworld para fazer seu trabalho corretamente.        
                                                                              
          * Mesmo que voce esteja tentando construir um FreeBSD-STABLE, e     
            possivel que os fontes tenham sido pegos quando estavam sendo     
            modificados, ou inconsistentes por alguma outra razao; somente os 
            releases sao absolutamente garantidos de serem compilados, embora 
            o FreeBSD-STABLE possa ser compilado com sucesso na grande        
            maioria das vezes. Caso ja nao tenha conseguido, tente buscar os  
            fontes novamente e veja se o problema ja nao foi resolvido. Tente 
            um servidor diferente, para o caso daquele que esta sendo usado   
            estar com problemas.                                              

Capitulo 9. Discos, Sistemas de Arquivos e Carregadores de Inicializac,ao (Boot
                                    Loaders)

   9.1. Como eu mudo todo o meu sistema operacional para um disco novo?

   9.2. Um disco no modo "dangerously dedicated" pode ser prejudicial a minha
   saude?

   9.3. Em quais partic,oes podemos seguramente usar o softupdates? Eu tenho
   ouvido falar de problemas em se usar o softupdates na partic,ao /?

   9.4. O que e inapropriado no meu ccd?

   9.5. Porque eu nao posso editar o disklabel do meu ccd?

   9.6. Posso montar outros tipos de partic,oes externas sobre FreeBSD?

   9.7. Como montar uma partic,ao DOS secundaria?

   9.8. Existe um sistema de arquivos criptografado para o FreeBSD?

   9.9. Como posso usar o carregador do NT para iniciar o FreeBSD?

   9.10. Como posso iniciar o FreeBSD e o Linux com o LILO?

   9.11. Como eu inicio o FreeBSD e o Linux usando o BootEasy?

   9.12. Como eu altero a tela de inicializac,ao (boot) de ??? para algo mais
   significativo?

   9.13. Possuo uma nova unidade de disco removivel, como posso usa-la?

   9.14. Por que eu tive o erro Incorrect super block na hora de montar um
   CDROM?

   9.15. Device not configured ocorre na hora de montar o CDROM?

   9.16. Porque todos caracteres nao-Ingles sao apresentados como "?" no
   sistema de arquivos do CD que acabou de ser montado no FreeBSD?

   9.17. Eu queimei um CD no FreeBSD e agora esse disco nao pode ser lido em
   nenhum outro sistema operacional. Por que?

   9.18. Como posso criar uma imagem de um CD de dados?

   9.19. Por que um CD de audio nao pode ser montado com o comando mount?

   9.20. Como eu monto um CD com multiplas sessoes de gravac,ao?

   9.21. Como posso permitir que usuarios comuns montem disquetes, CDROMs e
   outros tipos de midia removivel?

   9.22. Os comandos du e df apresentam quantias distintas de espac,o em
   disco disponivel. O que esta havendo?

   9.23. Como eu posso adicionar mais espac,o para swap?

9.1.  Como eu mudo todo o meu sistema operacional para um disco novo?             
      A melhor maneira de migrar seu sistema de um disco para o outro e           
      reinstalar completamente o SO na nova unidade de armazenamento e depois     
      migrar os dados dos usuarios do disco antigo para nova instalac,ao. Essa    
      forma e a mais recomendada, caso o sistema tenha sido -STABLE por mais de   
      uma versao, ou caso tenha atualizado um Release ao inves de ter instalado   
      um novo sistema. O booteasy pode ser facilmente instalado com o comando     
      boot0cfg(8), de forma a permitir que o sistema possa iniciar dois sistemas  
      distintos, ate que voce esteja satisfeito com o novo sistema. Pule o        
      proximo paragrafo para saber algumas formas seguras de migrar os dados dos  
      usuarios para o novo disco.                                                 
                                                                                  
      Voce pode ter decidido por nao refazer uma nova instalac,ao; nesse caso     
      sera necessario reparticionar o novo disco com o /stand/sysinstall, ou      
      fdisk(8) ou disklabel(8). Tambem e necessario instalar o booteasy em ambas  
      as unidades com o comando boot0cfg(8), de forma que voce possa alternar a   
      inicializac,ao entre o novo sistema e a configurac,ao atual do mesmo, ate   
      que a copia dos dados tenha sido efetuada.                                  
                                                                                  
      Agora, com um novo disco configurado, voce esta pronto para comec,ar a      
      mover os dados da antiga para nova unidade de armazenamento. Infelizmente   
      os dados nao podem simplesmente ser copiados ao acaso. Existem alguns       
      arquivos especiais (como os arquivos de dispositivos /dev), flags, e links  
      que tendem a nao funcionar no novo sistema, visto que esses arquivos ocupam 
      inodes ou tem informac,oes especificas da unidade, e por isso nao podem ser 
      copiados como um arquivo comum. E necessario usar ferramentas que entendam  
      esse comportamento. Isso significa que voce tera que usar o dump(8). E      
      sempre uma boa ideia realizar esse processo de copia de dados em modo       
      mono-usuario, contudo tal precauc,ao nao e obrigatoria - e apenas sinal de  
      cuidado.                                                                    
                                                                                  
      Nao e aconselhavel usar nenhuma outra ferramenta a nao ser o dump(8) e      
      restore(8) para copiar o sistema de arquivos da partic,ao raiz ("/"). O     
      tar(1) pode funcionar de forma satisfatoria, mas pode ser que nao. Tambem e 
      otima ideia usar o dump(8) e restore(8) para copiar (ou mover               
      completamente) os dados em uma partic,ao para uma outra partic,ao vazia. Os 
      passos necessarios para usar o dump para copiar os dados de uma partic,ao   
      existente para uma nova partic,ao sao:                                      
                                                                                  
       1. Crie um novo sistema de arquivos com o newfs(8) na nova partic,ao.      
                                                                                  
       2. Monte a partic,ao em um ponto de montagem temporario.                   
                                                                                  
       3. Entre (cd) no ponto de montagem em questao.                             
                                                                                  
       4. Finalmente mova os dados da partic,ao existente para a nova partic,ao   
          com o dump(8).                                                          
                                                                                  
      Por exemplo, se a intenc,ao e copiar os dados da partic,ao raiz para a      
      partic,ao /dev/ad1s1a, cujo ponto de montagem temporario e o /mnt, fac,a o  
      seguinte:                                                                   
                                                                                  
      # newfs /dev/ad1s1a                                                         
      # mount /dev/ad1s1a /mnt                                                    
      # cd /mnt                                                                   
      # dump 0af - / | restore xf -                                               
                                                                                  
      Redefinir a estrutura das partic,oes com o dump(8) e um processo um pouco   
      mais trabalhoso. Caso voce queira, por exemplo, unir o conteudo da          
      partic,ao /var com as partic,oes de nivel acima, crie uma partic,ao que     
      seja grande o bastante para alocar o conteudo de ambas, copie a partic,ao   
      principal como no exemplo descrito acima e depois copie as sub-partic,oes   
      para os diretorios vazios que o primeiro comando deve ter criado:           
                                                                                  
      # newfs /dev/ad1s1a                                                         
      # mount /dev/ad1s1a /mnt                                                    
      # cd /mnt                                                                   
      # dump 0af - / | restore xf -                                               
      # cd var                                                                    
      # dump 0af - /var | restore xf -                                            
                                                                                  
      Para separar um diretorio de sua estrutura atual, ou seja, no mesmo exemplo 
      ainda, alocar os dados de /var em uma partic,ao propria quando na           
      definic,ao atual o /var e apenas um diretorio comum, e necessario montar a  
      sub partic,ao no diretorio apropriado do ponto de montagem temporario,      
      simulando assim o sistema de arquivos a ser criado a partir da raiz         
      (montada no diretorio temporario), depois basta copiar os dados do          
      diretorio antigo para nova partic,ao:                                       
                                                                                  
      # newfs /dev/ad1s1a                                                         
      # newfs /dev/ad1s1d                                                         
      # mount /dev/ad1s1a /mnt                                                    
      # mkdir /mnt/var                                                            
      # mount /dev/ad1s1d /mnt/var                                                
      # cd /mnt                                                                   
      # dump 0af - / | restore xf -                                               
                                                                                  
      Talvez voce prefira usar cpio(1), pax(1), tar(1) ao inves de dump(8) na     
      hora de copiar os dados de usuarios. Quando este FAQ foi escrito, esses     
      comandos costumavam perder atributos especiais dos arquivos ou mesmo        
      alterar algumas permissoes ou autoridade (dono dos arquivos), portanto use  
      esses comandos com cuidado.                                                 
9.2.  Um disco no modo "dangerously dedicated" pode ser prejudicial a minha       
      saude?                                                                      
      O processo de instalac,ao permite a escolha entre dois modos distintos de   
      particionar o(s) disco(s) rigido. A maneira tradicional permite que outros  
      sistemas operacionais na mesma estac,ao possam acessar essas partic,oes,    
      criando entradas na tabela do fdisk (entradas chamadas de "slices" no       
      FreeBSD) sob uma partic,ao FreeBSD propria. Uma caracteristica desse        
      particionamento e permitir multiplos sistemas operacionais e permitir a     
      instalac,ao de um gerenciador de inicializac,ao (boot) para alternar entre  
      esses sistemas. A segunda maneira, a alternativa ao modo tradicional faz    
      uso do disco todo para o FreeBSD e nao faz esforc,os para se tornar         
      compativel com outros sistemas operacionais.                                
                                                                                  
      Entao, por que esse modo e chamado de "modo perigosamente dedicado"? Um     
      disco particionado dessa forma nao tem algumas caracteristicas tradicionais 
      que os PCs poderiam considerar entradas validas do fdisk. Dependendo das    
      circunstancias o PC pode reclamar e gerar advertencias sobre o disco em     
      questao, assim que o primeiro contato com essa unidade seja feito, ou pior, 
      o PC pode ainda danificar o processo de inicializac,ao (boot) do BSD        
      (bootstrap) sem pedir confirmac,ao da alterac,ao ou ate mesmo sem avisar o  
      usuario dessa mudanc,a. O "modo perigosamente dedicado" ainda costuma       
      confundir varias BIOS, inclusive as BIOS AWARD (encontradas, por exemplo no 
      HP Netserver e em sistemas Micronics assim como em muitos outros) e as BIOS 
      Symbios/NCR (da popular serie 53C8xx de controladoras SCSI). Nao sao apenas 
      esses dois modelos que podem apresentar dificuldades com esse modo de       
      particionamento de disco, a lista completa e ainda maior. O principal       
      sintoma desse tipo de confusao e a presenc,a de mensagens de read error     
      apresentada pelo bootstrap do FreeBSD quando ele tem dificuldades de        
      encontrar-se; outro sintoma e a falta de sistema operacional no momento da  
      inicializac,ao do PC.                                                       
                                                                                  
      Entao porque esse modo de particionamento de disco existe? Esse modo        
      economiza o uso de alguns poucos kbytes de espac,o em disco, e pode, em     
      contrapartida gerar grandes problemas em uma nova instalac,ao do sistema. O 
      modo "perigosamente dedicado" em sua origem e um desejo antigo dos usuarios 
      do FreeBSD, especialmente durante a instalac,ao, que e simplesmente poder   
      ignorar a "geometria" de disco reconhecida pela BIOS e usar o disco todo de 
      forma independente, sem prestar satisfac,ao ao sistema basico de            
      entrada/saida do PC.                                                        
                                                                                  
      O conceito de "Geometria" e ultrapassado, mas infelizmente ainda faz parte  
      do corac,ao da BIOS dos Computadores Pessoais, sendo extremamente           
      necessario para a interac,ao do computador com seus discos. Quando o        
      FreeBSD cria as partic,oes, ele tem que gravar sua localizac,ao de forma    
      correspondente a maneira que a BIOS ira procura-la. Se essa informac,ao nao 
      e acessivel `a BIOS, pode ser que o sistema nao consiga iniciar-se.         
                                                                                  
      "O modo Dangerously dedicated" tenta evitar esse desconforto fazendo a      
      operac,ao se tornar mais simples. Em muitos casos essa forma de             
      particionamento funciona, mas ela foi criada para ser usada como ultima     
      alternativa `a necessidade de definir a geometria do disco - em 99% dos     
      casos existem formas mais vantajosas de resolver problemas com geometria.   
                                                                                  
      Mas entao, como evitar a necessidade do modo "DD" na instalac,ao do         
      sistema? Comece anotando os valores pra geometria que a BIOS diz estar      
      usando pros discos locais. Esses valores podem ser apresentados pelo kernel 
      do FreeBSD, especificando a opc,ao -v no prompt de boot: usando boot -v nas 
      configurac,oes do loader do sistema operacional. Antes do programa de       
      instalac,ao ser carregado o kernel apresenta a listagem dos valores para a  
      Geometria de discos reconhecida pela BIOS do computador; nao se precipite   
      nem se preocupe, essas informac,oes podem ser visualizadas paginando a tela 
      para as notac,oes anteriores, sendo possivel assim verificar esses valores. 
      Normalmente as unidades de disco da BIOS sao apresentadas na mesma ordem    
      que o FreeBSD as encontra, sendo primeiro as unidades IDE seguido das SCSI. 
                                                                                  
      No momento do particionamento do disco, verifique se a geometria            
      apresentada pelo FDISK corresponde ao valor apresentado pela BIOS; caso nao 
      corresponda use a tecla g para redefinir esses valores. Tambem pode ser     
      necessario definir a geometria manualmente em casos onde o disco em questao 
      esta vazio e sem nenhum outro tipo de partic,ao criada, ou se o disco foi   
      instalado em um outro computador e foi colocado na estac,ao atual           
      recentemente. Note que esse tipo de complicac,ao nao e comum, e quando      
      acontece, acontece apenas com o disco onde o FreeBSD esta iniciando;        
      Qualquer outro disco existente no computador sera controlado perfeitamente  
      pelo FreeBSD em qualquer situac,ao.                                         
                                                                                  
      Uma vez existindo a concordancia de Geometria entre a BIOS e o FreeBSD, com 
      certeza seus problemas terao acabado, e nao existia a necessidade de usar o 
      modo "DD". Contudo, se em casos extremos ainda ocorrerem erros de read      
      error entao pode cruzar os dedos e usar o modo dedicado (DD), afinal nao ha 
      nada a perder, visto que das formas tradicionais sua BIOS insiste em nao    
      cooperar de forma correta.                                                  
                                                                                  
      Para voltar um disco particionado em modo "dangerously dedicated" para uso  
      normal em um PC existem duas alternativas. A primeira e alocar dados nulos  
      (NULL bytes) o bastante na MBR do disco, de forma que qualquer instalac,ao  
      posterior acredite que o disco esta vazio. Isso pode ser feito, por         
      exemplo, da seguinte maneira:                                               
                                                                                  
      # dd if=/dev/zero of=/dev/rda0 count=15                                     
                                                                                  
      E a segunda forma, a "opc,ao" nao documentada do DOS:                       
                                                                                  
      C:\> fdisk /mbr                                                             
                                                                                  
      instalara um novo registro mestre de inicializac,ao no disco em questao,    
      sobrepondo inclusive o bootstrap do BSD.                                    
9.3.  Em quais partic,oes podemos seguramente usar o softupdates? Eu tenho ouvido 
      falar de problemas em se usar o softupdates na partic,ao /?                 
      A resposta breve: o softupdates pode ser usado com seguranc,a em todas as   
      partic,oes.                                                                 
                                                                                  
      A resposta mais completa: existiam algumas restric,oes quanto ao uso do     
      softupdates na partic,ao raiz do sistema. Tais restric,oes se deviam a duas 
      caracteristicas causadas pelo softupdates, que eram a pouquissima chance de 
      perder alguns dados da partic,ao raiz se acontecesse algum system crash;    
      apesar das probabilidades de perda de dados serem minimas, elas existem;    
      nao existe uma danificac,ao ou corrosao do sistema de arquivos, apenas      
      alguns arquivos podem ser simplesmente perdidos. E a segunda caracteristica 
      e a diminuic,ao temporaria de espac,o em disco.                             
                                                                                  
      Quando o softupdates esta ativado o kernel pode levar ate trinta segundos   
      para realmente escrever alguns dados fisicamente em disco. Caso algum       
      arquivo grande seja apagado, ela permanece temporariamente em disco ate que 
      o kernel realmente o apague, o que pode causar uma condic,ao de corrida     
      simples(simple race condition). Imagine, apenas para ilustrar, que voce     
      apague um arquivo enorme do disco, e logo em seguida crie um outro arquivo  
      tao grande quanto o primeiro; a gravac,ao de metadados no disco pode nao    
      ter sido realizada ainda quando o segundo arquivo e criado, ou seja o       
      primeiro nao foi realmente definido como um arquivo apagado. Nesse caso e   
      provavel que voce receba uma mensagem dizendo que nao existe espac,o o      
      bastante em disco para o segundo arquivo, quando voce tem certeza absoluta  
      que o espac,o que acabou de ser liberado ao apagar o primeiro arquivo e o   
      suficiente para alocar o segundo! Ai voce tenta gravar o segundo arquivo    
      mais uma vez, alguns meros segundos depois, e o processo de criac,ao do     
      mesmo, simplesmente funciona como esperado. Esse tipo de comportamento ja   
      levou mais de um usuario a balanc,ar sua cabec,a e duvidar de sua propria   
      sanidade, ou mesmo da sanidade do sistema de arquivos do FreeBSD; em caso   
      extremos, de duvidas do bom estado de ambos, a sanidade do sistema de       
      arquivos e do proprio usuario ;-)                                           
                                                                                  
      Se o sistema falhar antes do kernel aceitar um conjunto de dados que tem    
      que ser escrito no disco antes do mesmo ser gravado, e provavel que exista  
      perda dos dados em questao. Esse risco e extremamente baixo, e geralmente e 
      contornavel. O uso, por exemplo, das opc,oes de cache de gravac,ao das      
      unidades de disco IDE e um fator que causa a possibilidade desse tipo de    
      desconforto, portanto e altamente recomendavel que essa opc,ao seja         
      desativada nos discos IDE quando for usar o softupdates.                    
                                                                                  
      Esse comportamento afeta todas as partic,oes que estiverem com softupdates. 
      Portanto, o que isso implica para a partic,ao raiz?                         
                                                                                  
      A maioria das informac,oes vitais da partic,ao raiz mudam com pouquissima   
      frequ:encia. Arquivos como o /kernel e o conteudo do /etc sao alterados     
      apenas durante a manutenc,ao do sistema operacional, ou quando os usuarios  
      alteram suas senhas. Caso o sistema falhe durante essa janela de trinta     
      segundos, depois que uma dessas alterac,oes foi feita, e possivel que       
      alguns dados sejam perdidos. Esse risco e baixissimo e praticamente         
      indiferente para maioria das aplicac,oes, mas deve-se atentar que o risco   
      existe. Caso seu sistema nao tolere nem uma possibilidade tao baixa de      
      riscos, nao use o softupdates na partic,ao raiz!                            
                                                                                  
      A / normalmente e uma das menores partic,oes do sistema. Por padrao o       
      FreeBSD coloca o diretorio /tmp na partic,ao /, comportamento este que pode 
      ser modificado por administradores de sistemas mais experientes. Caso seu   
      /tmp costume ocupar muito espac,o, pode ser criado um link simbolico para o 
      /var/tmp, o comportamento inverso tambem e valido e bastante seguro, caso o 
      /tmp seja uma partic,ao grande o bastante para alocar os dados do /var/tmp  
      tambem.                                                                     
9.4.  O que e inapropriado no meu ccd?                                            
      Os sintomas desse tipo de duvida:                                           
                                                                                  
      # ccdconfig -C                                                              
      ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format 
                                                                                  
      Esse problema normalmente ocorre quando se tenta concatenar as partic,oes c 
      cujo tipo padrao e unused. O ccd requer que a partic,ao que ele esteja      
      usando seja do tipo FS_BSDFFS. Edite o disklabel dos discos em questao e    
      altere o tipo das partic,oes para 4.2BSD.                                   
9.5.  Porque eu nao posso editar o disklabel do meu ccd?                          
      Os sintomas desse tipo de duvida:                                           
                                                                                  
      # disklabel ccd0                                                            
      (it prints something sensible here, so let us try to edit it)               
      # disklabel -e ccd0                                                         
      (edit, save, quit)                                                          
      disklabel: ioctl DIOCWDINFO: No disk label on disk;                         
      use "disklabel -r" to install initial label                                 
                                                                                  
      Isso acontece por que o disklabel que o ccd retorna e na verdade um valor   
      "falso", que nao esta realmente gravado no disco. Esse problema pode ser    
      resolvido ao reescrever explicitamente esse dado, da seguinte forma:        
                                                                                  
      # disklabel ccd0 > /tmp/disklabel.tmp                                       
      # disklabel -Rr ccd0 /tmp/disklabel.tmp                                     
      # disklabel -e ccd0                                                         
      (agora ira funcionar)                                                       
9.6.  Posso montar outros tipos de partic,oes externas sobre FreeBSD?             
      Digital UNIX                                                                
                                                                                  
         CDROMs do tipo UFS podem ser montados diretamente no FreeBSD, ja a       
         montagem de partic,oes de disco do Digital UNIX que usam o UFS pode ser  
         um pouco mais complexa, dependendo dos detalhes do particionamento de    
         disco para o sistema operacional em questao.                             
                                                                                  
      Linux                                                                       
                                                                                  
         A partir do 2.2, o FreeBSD suporta partic,oes do tipo ext2fs. Veja o     
         mount_ext2fs(8) para obter mais informac,oes.                            
                                                                                  
      NT                                                                          
                                                                                  
         Existe suporte somente-leitura as partic,oes NTFS no FreeBSD. Para obter 
         mais informac,oes leia esse tutorial, escrito por Mark Ovens em          
         http://ukug.uk.FreeBSD.org/~mark/ntfs_install.html.                      
                                                                                  
      Mais informac,oes sobre esse assunto seriam bem vindas :-)                  
9.7.  Como montar uma partic,ao DOS secundaria?                                   
      As partic,oes secundarias do DOS sao encontradas depois que TODAS as        
      partic,oes primarias foram definidas. Por exemplo, se voce tem a partic,ao  
      "E" como a segunda partic,ao DOS no segundo disco SCSI, sera necessario     
      criar um arquivo especial para essa "quinta partic,ao" (slice 5) no /dev,   
      depois montar /dev/da1s5:                                                   
                                                                                  
      # cd /dev                                                                   
      # sh MAKEDEV da1s5                                                          
      # mount -t msdos /dev/da1s5 /dos/e                                          
9.8.  Existe um sistema de arquivos criptografado para o FreeBSD?                 
      Sim, veja o port security/cfs.                                              
9.9.  Como posso usar o carregador do NT para iniciar o FreeBSD?                  
      Esse procedimento e um pouco diferente entre o FreeBSD 2.2.X e o 3.X (que   
      tem um sistema de inicio (boot) de 3 fases).                                
                                                                                  
      A ideia geral se consiste em copiar os primeiros setores da partic,ao raiz  
      nativa do FreeBSD e transforma-los em um arquivo, para ser colocado dentro  
      da partic,ao DOS/NT. Se assumir-mos que voce vai chamar esse arquivo de     
      c:\bootsect.bsd (inspirado por c:\bootsect.dos), pode-se entao editar o     
      arquivo c:\boot.ini de forma a carrega, mais ou menos assim:                
                                                                                  
      [boot loader]                                                               
      timeout=30                                                                  
      default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS                         
      [operating systems]                                                         
      multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"                    
      C:\BOOTSECT.BSD="FreeBSD"                                                   
      C:\="DOS"                                                                   
                                                                                  
      No 2.2.X esse procedimento assume que o DOS, o NT, o FreeBSD, ou o que quer 
      que seja, tenha sido instalado em suas partic,oes respectivas do fdisk no   
      mesmo disco. Esse exemplo foi testado em um sistema onde o DOS & NT estavam 
      instalados na primeira partic,ao do fdisk, e o FreeBSD na segunda. O        
      FreeBSD havia sido configurado para iniciar a partir de sua partic,ao       
      nativa, e nao pela MBR do disco.                                            
                                                                                  
      Monte um disquete formatado em DOS (caso ele tenha sido convertido para     
      NTFS) ou em FAT, por exemplo, sob o ponto de montagem /mnt.                 
                                                                                  
      # dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1                      
                                                                                  
      Reinicie o computador no DOS ou NT. Sobre o NTFS, copie o arquivo           
      bootsect.bsd e/ou arquivo bootsect.lnx do disquete para C:\. Modifique os   
      atributos originais(permissoes) do boot.ini com:                            
                                                                                  
      C:\> attrib -s -r c:\boot.ini                                               
                                                                                  
      Edite e adicione as entradas apropriadas no boot.ini seguindo o exemplo     
      anterior e volte os atributos originais:                                    
                                                                                  
      C:\> attrib +s +r c:\boot.ini                                               
                                                                                  
      Se o FreeBSD estiver inicializando pela MBR, reconstrua-a com o comando     
      fdisk do DOS depois de configurar os sistemas para iniciar a partir de suas 
      partic,oes nativas.                                                         
                                                                                  
      No FreeBSD 3.X esse procedimento e mais simples.                            
                                                                                  
      Se o FreeBSD estiver instalado no mesmo disco que a partic,ao de            
      inicializac,ao (boot) do NT esta instalada, copie o /boot/boot1 para        
      C:\BOOTSECT.BSD. Contundo, se o FreeBSD estiver em uma partic,ao distinta,  
      o /boot/boot1 nao ira funcionar, nesse caso, o /boot/boot0 sera necessario. 
                                                                                  
        Atenc,ao:                                                                 
                                                                                  
      NAO COPIE SIMPLESMENTE O /boot/boot0 NO LUGAR DO /boot/boot1, POIS A TABELA 
      DE PARTIC,AO SERA REESCRITA, E O COMPUTADOR SE TORNARA NAO INICIALIZAVEL!!  
                                                                                  
      O /boot/boot0 precisa ser instalado com o sysinstall, selecionando o        
      gerenciador de inicializac,ao (boot) do FreeBSD na tela que o programa      
      pergunta se voce deseja usar um gerenciador de inicializac,ao(boot          
      manager). Isso se deve ao fato que o /boot/boot0 contem informac,oes sobre  
      a area da tabela de partic,oes definidas como caracteres nulos, mas o       
      sysinstall copia a tabela de partic,oes antes de copiar o /boot/boot0 para  
      a MBR.                                                                      
                                                                                  
      Quando o gerenciador de inicializac,ao (boot) do FreeBSD e executado, ele   
      grava qual ultimo sistema operacional foi carregado, definindo uma flag de  
      sistema ativo na tabela de partic,ao referente aquele sistema, e depois ele 
      escreve todos os 512 bytes do proprio gerenciador de inicializac,ao (boot)  
      de volta na MBR, portanto se o /boot/boot0 simplesmente for copiado para    
      C:\BOOTSECT.BSD sera definida uma tabela de partic,ao vazia com a flag de   
      partic,ao ativa, na MBR.                                                    
9.10. Como posso iniciar o FreeBSD e o Linux com o LILO?                          
      Caso o FreeBSD e o Linux estejam no mesmo disco, basta seguir as            
      instruc,oes de instalac,ao do LILO para carregar sistemas operacionais      
      nao-Linux. De forma breve, tais instruc,oes sao                             
                                                                                  
      Carregue o Linux e adicione as seguintes linhas no /etc/lilo.conf:          
                                                                                  
      other=/dev/hda2                                                             
              table=/dev/hda                                                      
              label=FreeBSD                                                       
                                                                                  
      (A definic,ao acima assume que a sua partic,ao FreeBSD e conhecida pelo     
      Linux como /dev/hda2; altere esse valor para sua necessidade). Depois basta 
      executar o comando lilo como usuario root e deve estar pronto.              
                                                                                  
      Caso o FreeBSD esteja em um outro disco, sera preciso criar uma entrada     
      loader=/boot/chain.b no LILO. Por exemplo:                                  
                                                                                  
      other=/dev/dab4                                                             
              table=/dev/dab                                                      
              loader=/boot/chain.b                                                
              label=FreeBSD                                                       
                                                                                  
      Em alguns casos e necessario especificar o numero da unidade da BIOS para   
      que o loader do FreeBSD consiga carregar o sistema com sucesso, a partir do 
      segundo disco. Por exemplo, caso o disco SCSI com o FreeBSD seja            
      reconhecido pela BIOS como o disco 1, na tela do carregadir de              
      inicializac,ao (boot loader) do FreeBSD sera necessario definir:            
                                                                                  
      Boot: 1:da(0,a)/kernel                                                      
                                                                                  
      No FreeBSD 2.2.5 e posteriores, o boot(8) pode ser configurado para que ele 
      automaticamente defina essa informac,ao na hora da inicializac,ao (boot).   
                                                                                  
      The Linux+FreeBSD mini-HOWTO e uma boa referencia sobre a utilizac,ao do    
      FreeBSD com o Linux.                                                        
9.11. Como eu inicio o FreeBSD e o Linux usando o BootEasy?                       
      Instale o LILO no comec,o da sua partic,ao de inicializac,ao (boot) do      
      Linux ao inves de instala-lo na MBR. Agora o LILO pode ser carregado a      
      partir do BootEasy.                                                         
                                                                                  
      Com Windows 9x e Linux essa e uma ac,ao recomendada sempre, para garantir   
      que o Linux possa ser iniciado de forma mais facil caso seja necessario     
      reinstalar o Windows (que e um sistema operacional que nao espera nenhum    
      outro sistema na MBR).                                                      
9.12. Como eu altero a tela de inicializac,ao (boot) de ??? para algo mais        
      significativo?                                                              
      Voce nao pode alterar esse comportamento no gerenciador de inicializac,ao   
      (boot) padrao sem reescreve-lo. Existem inumeros outros gerenciadores de    
      inicializac,ao (boot) na categoria sysutils da da colec,ao de ports, que    
      oferecem esse recurso.                                                      
9.13. Possuo uma nova unidade de disco removivel, como posso usa-la?              
      Ainda que seja uma unidade removivel como um ZIP Drive, um EZ Drive (ou ate 
      um disquete, caso queira usa-lo dessa maneira), ou um novo disco, uma vez   
      instalado e reconhecido pelo sistema e assim que o                          
      cartucho/disquete/outra-coisa esteja ligado a unidade em questao, as coisas 
      passam a funcionar da mesma forma para qualquer tipo de dispositivo.        
                                                                                  
      (essa sec,ao e baseada no ZIP FAQ de Mark Mayo)                             
                                                                                  
      Caso o dispositivo seja um ZIP Drive ou um disquete cujo sistema de         
      arquivos ja tenha sido criado como sendo do tipo DOS, o seguinte comando e  
      o bastante para monta-lo:                                                   
                                                                                  
      # mount -t msdos /dev/fd0c /floppy                                          
                                                                                  
      caso seja um disquete, ou entao:                                            
                                                                                  
      # mount -t msdos /dev/da2s4 /zip                                            
                                                                                  
      caso seja um disco ZIP com as configurac,oes de fabrica.                    
                                                                                  
      Para outros tipos de disco, veja como eles sao tratados, usando o fdisk(8)  
      ou sysinstall(8).                                                           
                                                                                  
      Os proximos exemplos serao para um ZIP Drive controlado pela device da2, ou 
      seja, correspondente ao terceiro disco SCSI.                                
                                                                                  
      A nao ser que se trate de um disquete ou de um disco removivel que se       
      planeje compartilhar com outras pessoas, provavelmente e mais sensata a     
      ideia de colocar um sistema de arquivos do tipo BSD nesse disco. Um sistema 
      de arquivos desse tipo possibilita usar o suporte a nomes longos de         
      arquivos, ter uma performance de, pelo menos 2x, e oferece muito mais       
      estabilidade e confianc,a. O primeiro passo e redefinir a partic,ao DOS da  
      unidade removivel de forma que a mesma passe a ser do tipo BSD; o fdisk(8)  
      ou /stand/sysinstall podem ser usados para esse fim, em um disco pequeno    
      onde nao se queira preocupac,oes quanto a possibilidade de manter suporte a 
      multiplos sistemas operacionais. Nesse caso simplesmente elimine toda a     
      partic,ao FAT do disco e use o particionador do BSD:                        
                                                                                  
      # dd if=/dev/zero of=/dev/rda2 count=2                                      
      # disklabel -Brw da2 auto                                                   
                                                                                  
      O disklabel ou /stand/sysinstall podem ser usados para criar multiplas      
      partic,oes do tipo BSD. Certamente o usuario vai querer criar mais de uma   
      partic,ao BSD se a intenc,ao for criar espac,o de Swap. De qualquer forma,  
      esse tipo de ac,ao e irrelevante em um disco removivel do tipo ZIP.         
                                                                                  
      Finalmente, crie um novo sistema de arquivos como esse, que usa todo o      
      disco em um ZIP Drive:                                                      
                                                                                  
      # newfs /dev/rda2c                                                          
                                                                                  
      e monte-o:                                                                  
                                                                                  
      # mount /dev/da2c /zip                                                      
                                                                                  
      provavelmente e uma boa ideia adicionar uma entrada no /etc/fstab para      
      facilitar o processo de montagem dessa unidade(veja fstab(5))de forma que   
      seja apenas necessario digitar o comando mount /zip no futuro:              
                                                                                  
      /dev/da2c /zip ffs rw,noauto 0 0                                            
9.14. Por que eu tive o erro Incorrect super block na hora de montar um CDROM?    
      E necessario avisar ao mount(8) que tipo de unidade esta sendo montada.     
      Essa definic,ao e tratada com mais detalhes em na sec,ao de midias opticas  
      do Manual do FreeBSD , mais precisamente na sec,ao Usando CDs de Dados.     
9.15. Device not configured ocorre na hora de montar o CDROM?                     
      Geralmente esse tipo de comportamento indica que nao existe nenhum CD na    
      unidade de CDROM, ou entao, que o CD em questao nao e visivel ao barramento 
      de dados do seu PC, comum quando um CD-RW nao pode ser lido por um drive    
      tradicional. Por gentileza, queira referir-se a Usando CDs de Dados da      
      sec,ao do Manual do FreeBSD para uma discussao mais detalhada sobre esse    
      assunto.                                                                    
9.16. Porque todos caracteres nao-Ingles sao apresentados como "?" no sistema de  
      arquivos do CD que acabou de ser montado no FreeBSD?                        
      Provavelmente seu CDROM usa extensoes "Joliet" para armazenar informac,oes  
      sobre tipos de arquivos e diretorios. Esse assunto e discutido no capitulo  
      de Criac,ao e Uso de CDROMs do Manual do FreeBSD, mais precisamente na      
      sec,ao de Uso de CDs de Dados.                                              
9.17. Eu queimei um CD no FreeBSD e agora esse disco nao pode ser lido em nenhum  
      outro sistema operacional. Por que?                                         
      Provavelmente voce queimou um CD de forma crua (usando raw mode) no seu     
      sistema, ao inves de criar um sistema de arquivos do tipo ISO 9660. De uma  
      olhada no Capitulo de Criac,ao de CDROMs do Manual do FreeBSD, em           
      especifico na sec,ao criando CDS de dados puros.                            
9.18. Como posso criar uma imagem de um CD de dados?                              
      A criac,ao de imagens de CDs de dados e discutida na sec,ao duplicando CDs  
      de dados do Manual do FreeBSD. Para mais informac,oes sobre unidades        
      opticas, por gentileza, queira referir-se a sec,ao Criac,ao de CDs no       
      capitulo de Armazenamento do Manual do FreeBSD.                             
9.19. Por que um CD de audio nao pode ser montado com o comando mount?            
      Ao tentar montar um CD de audio, o mais provavel e que ocorra um erro do    
      tipo cd9660: /dev/acd0c: Invalid argument. Isso se deve ao fato que o       
      comando mount trabalha exclusivamente com sistema de arquivos, o que nao e  
      o caso de CDs de audio. CDs de audio contem apenas dados, e por isso e      
      necessario alguma aplicac,ao capaz de ler tais CDs. Use algum programa como 
      o audio/xmcdna colec,ao de Ports do FreeBSD para ler dados em CDs desse     
      tipo.                                                                       
9.20. Como eu monto um CD com multiplas sessoes de gravac,ao?                     
      Por padrao, o mount(8) tenta montar a ultima trilha de dados (sessao) de um 
      CD. Caso queira montar uma sessao anterior pode-se usar o argumento -s na   
      linha de comando em questao. Por gentileza, refira-se a pagina de manual do 
      comando mount_cd9660(8) para obter exemplos especificos do uso dessa e de   
      outras opc,oes.                                                             
9.21. Como posso permitir que usuarios comuns montem disquetes, CDROMs e outros   
      tipos de midia removivel?                                                   
      Usuarios comuns podem ter a permissao de montar dispositivos. Veja como:    
                                                                                  
       1. Como root defina a variavel vfs.usermount do sysctl para 1.             
                                                                                  
       # sysctl -w vfs.usermount=1                                                
                                                                                  
       2. Como root defina as permissoes apropriadas nos dispositivos associados  
          ao controle da midia removivel.                                         
                                                                                  
          Por exemplo, para permitir que os usuarios possam montar a primeira     
          unidade de disquete, use:                                               
                                                                                  
       # chmod 666 /dev/fd0                                                       
                                                                                  
          Para permitir que os usuarios do grupo operator montem a unidade de     
          CDROM, use:                                                             
                                                                                  
       # chgrp operator /dev/cd0c                                                 
       # chmod 640 /dev/cd0c                                                      
                                                                                  
       3. Finalmente, para tornar essa alterac,ao permanente, adicione a linha    
          vfs.usermount=1 no arquivo /etc/sysctl.conf.                            
                                                                                  
      Agora todos os usuarios podem montar qualquer disquete no /dev/fd0 em algum 
      ponto de montagem que lhes pertenc,a:                                       
                                                                                  
      % mkdir ~/my-mount-point                                                    
      % mount -t msdos /dev/fd0 ~/my-mount-point                                  
                                                                                  
      Os usuarios no grupo operator agora tem permissao para montar os CDs no     
      /dev/cd0c em qualquer ponto de montagem que lhes pertenc,a:                 
                                                                                  
      % mkdir ~/my-mount-point                                                    
      % mount -t msdos /dev/cd0c ~/my-mount-point                                 
                                                                                  
      Desmontar o dispositivo e extremamente simples:                             
                                                                                  
      % umount ~/my-mount-point                                                   
                                                                                  
      Contudo, habilitar a opc,ao vfs.usermount, contudo, causa algumas           
      implicancias quanto ao quesito seguranc,a;. A forma mais racional de        
      acessar midia do tipo MSDOS no FreeBSD e usando a aplicac,ao mtools ,       
      disponivel na Colec,ao de Ports.                                            
9.22. Os comandos du e df apresentam quantias distintas de espac,o em disco       
      disponivel. O que esta havendo?                                             
      E necessario entender o que os comandos du e df realmente fazem. O du       
      percorre a arvore de diretorios medindo o tamanho de cada arquivo e         
      apresentando o total da soma de todos os arquivos encontrados em um dado    
      diretorio, e posteriormente apresentando a soma de ambos subdiretorios no   
      diretorio de nivel seguinte, df simplesmente pergunta ao sistema de         
      arquivos quanto espac,o ainda lhe resta. Parece o mesmo comportamento, mas  
      um arquivo alocado fora de um diretorio, por exemplo, afeta os dados        
      apresentados pelo df, mas nao afeta o du.                                   
                                                                                  
      Quando um programa esta usando algum arquivo, e este e apagado, o arquivo   
      nao e retirado do sistema de arquivos ate que o programa em questao pare de 
      usa-lo. Contudo, esse arquivo e imediatamente deletado da listagem de       
      diretorios; isso pode ser mais bem observado com algum paginador como o     
      more. Por exemplo, assuma que existe um arquivo grande o bastante que sua   
      presenc,a seja perceptivel claramente na saida dos comandos du e df.        
      (Considerando que hoje em dia os discos sao bem grandes, o arquivo em       
      questao deve ser um arquivo de tamanho extremamente consideravel!) Caso o   
      arquivo seja apagado em quanto ele esteja sendo paginado com o more,        
      pode-se perceber que o more nao passa a reclamar que o arquivo nao pode     
      mais ser visualizado no mesmo instante. Contudo, a listagem, do diretorio   
      em questao nao apresentara mais esse arquivo, de forma que nenhum usuario   
      ou outro programa possa acessa-lo. A entrada do arquivo no diretorio e      
      simplesmente removida. O du vai mostrar que esse arquivo nao existe mais -  
      -- afinal, o du percorreu todo o diretorio e nao encontrou esse arquivo     
      listado -- contudo o df mostra que o arquivo continua no disco, pois o      
      sistema de arquivos sabe que o more continua usando aquele espac,o de dados 
      que se encontram no disco. Uma vez terminada a sessao do more,du e df       
      concordarao entre si.                                                       
                                                                                  
      Note que em sistemas de arquivos com softupdates, a liberac,ao de espac,o   
      em disco tambem pode ser atrasada em ate 30 segundos dependendo da          
      situac,ao; apenas depois desse tempo, a alterac,ao em disco sera visivel!   
                                                                                  
      Esse comportamento e comum e facil de ser observado em Servidores Web.      
      Muitos usuarios configuram algum Servidor Web no FreeBSD e se esquecem de   
      rotacionar os arquivos de log da aplicac,ao, os quais entopem o /var. O     
      novo administrador do sistema deleta os arquivos de log em questao, mas o   
      sistema operacional continua reclamando que a partic,ao esta cheia, ate que 
      o Servidor Web seja desligado e religado, de forma que a aplicac,ao libera  
      o arquivo e permite que o sistema apague o arquivo, recuperando o espac,o   
      em disco em questao. Para prevenir que isso ocorra, configure o             
      newsyslog(8).                                                               
9.23. Como eu posso adicionar mais espac,o para swap?                             
      No capitulo Configurac,ao e Ajuste Fino (Tuning) do Manual do FreeBSD, pode 
      ser encontrada uma sec,ao descrevendo como fazer isto.                      

                     Capitulo 10. Administrac,ao do Sistema

   10.1. Onde estao os arquivos que configuram a inicializac,ao do sistema ?

   10.2. Como posso adicionar um usuario de forma simples?

   10.3. Depois de editar o crontab, mensagens como root: not found ficam
   aparecendo sempre. Por que?

   10.4. Porque o erro you are not in the correct group to su root ocorre,
   quando eu tento virar root com o su ?

   10.5. Cometi um erro no rc.conf, ou em algum outro arquivo de
   inicializac,ao, e agora nao posso corrigir essa alterac,ao porque o
   sistema de arquivos e apenas-leitura. O que devo fazer?

   10.6. Porque estou tendo problemas ao configurar minha impressora?

   10.7. Como posso corrigir o mapeamento de teclados do meu sistema?

   10.8. O que causa mensagens como: unknown: <PNP0303> can't assign
   resources na inicializac,ao do sistema?

   10.9. Porque eu nao consigo fazer as quotas de usuarios funcionarem de
   forma correta?

   10.10. O FreeBSD suporta as primitivas de IPC do System V?

   10.11. Como posso usar o sendmail para entregar mensagens com UUCP?

   10.12. Como eu configuro e-mail em uma conexao dialup com a rede?

   10.13. Que outros servidores de correio eletronico posso usar no lugar do
   Sendmail?

   10.14. Esqueci a senha de root! O que eu fac,o?

   10.15. Como posso evitar que a sequ:encia de teclas Control+Alt+Delete
   reinicie o sistema?

   10.16. Como posso converter arquivos de texto do DOS para o formato do
   Unix?

   10.17. Como eu mato processos pelo seu nome?

   10.18. Por que motivos o su esta me atazanando pelo fato de nao pertencer
   `a ACL do root?

   10.19. Como eu desinstalo o Kerberos?

   10.20. Como posso adicionar pseudo-terminais ao sistema?

   10.21. Por que motivo nao consigo criar a device snd0?

   10.22. Como posso reler o /etc/rc.conf e reiniciar o /etc/rc sem rebootar
   o sistema?

   10.23. O que e uma sandbox?

   10.24. O que e securelevel (nivel de seguranc,a do sistema)?

   10.25. Tentei atualizar meu sistema para o ultimo -STABLE, mas ele se
   tornou -RC ou -PRERELEASE! O que esta havendo?

   10.26. Tentei instalar um novo kernel, mas a rotina de chflags falhou. O
   que posso fazer?

   10.27. Nao consigo alterar mais de um segundo na hora no meu sistema. O
   que posso fazer?

   10.28. Por que motivo o rpc.statd esta usando 256 megabytes de memoria?

   10.29. Por que eu nao posso retirar a flag schg dos arquivos?

   10.30. Por que a autenticac,ao do SSH via .shosts nao funciona por padrao
   nas versoes recentes do FreeBSD?

   10.31. O que e o vnlru?

10.1.  Onde estao os arquivos que configuram a inicializac,ao do sistema ?                   
       Do FreeBSD 2.0.5R ate o 2.2.1R, o arquivo de configurac,oes primario e o              
       /etc/sysconfig. Todas as opc,oes devem ser definidas nesse arquivo ou entao em        
       outros, como o /etc/rc (veja o manual para o rc(8)) e o /etc/netstart                 
                                                                                             
       De uma olhada no /etc/sysconfig e altere as variaveis de acordo com o que voce quer   
       configurar no seu sistema. O arquivo e repleto de comentarios que auxiliam a correta  
       definic,ao dos valores a serem definidos.                                             
                                                                                             
       A partir do 2.2.1 ate o 3.0, o /etc/sysconfig foi renomeado para rc.conf(5), que e    
       auto-descritivo, e cuja sintaxe foi melhorada no processo de substituic,ao. O         
       /etc/netstart agora se chama /etc/rc.network, de forma que todos os arquivos possam   
       ser copiados com um simples comando como um cp /usr/src/etc/rc* /etc                  
                                                                                             
       E depois, a partir do FreeBSD 3.1, o /etc/rc.conf foi alterado para o                 
       /etc/defaults/rc.conf. Nao edite esse arquivo! Ao inves disso, para todas as entradas 
       que voce queira alterar no /etc/defaults/rc.conf, basta apenas copiar a linha         
       relativa `a essa entrada para o /etc/rc.conf e depois modificar seu valor.            
                                                                                             
       Por exemplo, caso deseje iniciar o named, o servidor DNS disponivel no FreeBSD, a     
       partir do FreeBSD 3.1 basta fazer isso:                                               
                                                                                             
       # echo named_enable="YES" >> /etc/rc.conf                                             
                                                                                             
       Para iniciar servic,os locais no FreeBSD 3.1 e posteriores, basta colocar os scripts  
       shell de inicializac,ao desses servic,os no diretorio /usr/local/etc/rc.d. Tais shell 
       scripts devem ser executaveis e terminarem com a extensao .sh. No FreeBSD 3.0 ou      
       anteriores, o arquivo /etc/rc.local era a unica opc,ao para iniciar                   
       servic,os/processos locais automaticamente.                                           
                                                                                             
       O arquivo /etc/rc.serial e usado para a inicializac,ao de portas seriais (por         
       exemplo, para definir as caracteristicas das portas, e assim por diante).             
                                                                                             
       O arquivo /etc/rc.i386 e usado para configurac,oes especificas de sistemas Intel e    
       compativeis, como por exemplo, emulac,ao iBCS2 ou definic,oes do sistema de console   
       dos PC.                                                                               
10.2.  Como posso adicionar um usuario de forma simples?                                     
       Use o comando adduser(8). Caso prefira uma forma mais complexa (e mais completa), use 
       o comando pw(8).                                                                      
                                                                                             
       Para remover o usuario do sistema, use o comando rmuser(8). Mais uma vez, o pw(8)     
       tambem funciona muito bem nesse caso.                                                 
10.3.  Depois de editar o crontab, mensagens como root: not found ficam aparecendo sempre.   
       Por que?                                                                              
       Normalmente esse e um problema causado ao se editar o crontab do sistema              
       (/etc/crontab) e depois usar o crontab(1) para instala-lo:                            
                                                                                             
       # crontab /etc/crontab                                                                
                                                                                             
       Essa nao e a forma correta de fazer as coisas. O crontab do sistema tem um formato    
       distinto do crontab dos usuarios, o qual o crontab(1) atualiza (o manual do           
       crontab(5) explica tais diferenc,as de forma mais detalhada).                         
                                                                                             
       Caso voce tenha cometido esse engano, o novo crontab e uma simples copia do           
       /etc/crontab, ou seja, com um formato errado. Apague-o com o comando:                 
                                                                                             
       # crontab -r                                                                          
                                                                                             
       Da proxima vez que editar o /etc/crontab, nenhuma ac,ao precisa ser tomada para       
       avisar o cron(8) das alterac,oes. Ele vai perceber as mudanc,as automaticamente.      
                                                                                             
       Caso queira executar alguma tarefa diaria, semanal ou mensal, e mais indicado         
       adicionar alguns scripts de shell sob o /usr/local/etc/periodic e deixar o programa   
       periodic(8), chamado a partir da tabela cron do sistema, cuidar das suas tarefas      
       assim como ele faz com as outras tarefas pertinentes ao sistema.                      
                                                                                             
       A unica razao para esse erro e que a tabela de cron do sistema tem um campo a mais,   
       que especifica o usuario que deve executar o comando. No crontab do sistema padrao do 
       FreeBSD, esse usuario e o root, em todas as entradas. Quando essa crontab e usada     
       como a tabela de cron do root (que e diferente da tabela de cron do sistema), o       
       cron(8) assume que a string root fosse um primeiro comando, mas esse comando nao      
       existe, por isso ocorre o erro.                                                       
10.4.  Porque o erro you are not in the correct group to su root ocorre, quando eu tento     
       virar root com o su ?                                                                 
       Essa e uma caracteristica de seguranc,a do FreeBSD. Para se tornar root com o su (ou  
       qualquer outro usuario com privilegios de super usuario), e preciso fazer parte do    
       grupo wheel. Sem essa caracteristica, qualquer usuario com uma conta valida no        
       sistema que soubesse a senha de root poderia obter privilegios de super usuario. Por  
       causa do comportamento atual, essa afirmac,ao nao e verdadeira, uma vez que o su nao  
       vai nem permitir que o usuario de a senha de root, caso ele nao esteja no grupo       
       wheel.                                                                                
                                                                                             
       Para permitir que algum usuario se torne root, basta que ele fac,a parte do grupo     
       wheel.                                                                                
10.5.  Cometi um erro no rc.conf, ou em algum outro arquivo de inicializac,ao, e agora nao   
       posso corrigir essa alterac,ao porque o sistema de arquivos e apenas-leitura. O que   
       devo fazer?                                                                           
       Nessa situac,ao, o comportamento esperado e que o sistema entre em modo monousuario e 
       pec,a o caminho completo para o seu interpretador de comandos (sua shell). Basta      
       confirmar a shell padrao, que ele oferece, com um simples ENTER, e depois executar um 
       mount / para remontar o sistema de arquivos raiz ( / ) em modo leitura/escrita (rw).  
       Tambem pode ser necessario executar um mount -a -t ufs para montar o sistema de       
       arquivos onde o seu editor de texto preferido vai estar disponivel. Caso seu editor   
       esteja em um sistema de arquivos da rede, sera necessario configurar a rede           
       manualmente, ou usar um editor disponivel localmente, como o ed(1).                   
                                                                                             
       Caso queira usar um editor de tela inteira como o vi(1) ou emacs(1), sera necessario  
       definir a variavel de ambiente TERM como do tipo cons25, bastando um simples export   
       TERM=cons25, de forma que tais editores possam carregar as informac,oes corretas da   
       base de dados do termcap(5).                                                          
                                                                                             
       Depois disso, o /etc/rc.conf pode ser editado normalmente, e a sintaxe problematica,  
       corrigida. A mensagem de erro apresentada imediatamente apos o carregamento do kernel 
       indica o numero da linha e o arquivo onde o erro aconteceu.                           
10.6.  Porque estou tendo problemas ao configurar minha impressora?                          
       Por gentileza, de uma olhada nas paginas sobre impressao do Manual do FreeBSD. O      
       documento deve responder a maioria de suas duvidas. Veja a entrada sobre Impressao no 
       Manual do FreeBSD.                                                                    
                                                                                             
       Algumas impressoras precisam de um driver local, baseado em estac,oes, para prover    
       qualquer tipo de impressao. Essas impressoras sao chamadas de "WinPrinters" e nao sao 
       suportadas nativamente pelo FreeBSD. Se sua impressora nao funciona sob DOS ou com    
       Windows NT 4.0, provavelmente ela e uma WinPrinter. A unica esperanc,a de se obter    
       uma impressora desse tipo funcionando, e verificar se o port print/pnm2ppa tem        
       suporte para ela.                                                                     
10.7.  Como posso corrigir o mapeamento de teclados do meu sistema?                          
       Por gentileza, refira-se `a sec,ao usando localizac,ao do Manual do FreeBSD, mais     
       precisamente na parte sobre a configurac,ao do console.                               
10.8.  O que causa mensagens como: unknown: <PNP0303> can't assign resources na              
       inicializac,ao do sistema?                                                            
       O trecho a seguir e citac,ao de uma mensagem enviada na lista freebsd-current.        
                                                                                             
         A mensagem "can't assign resources" indica que os equipamentos em questao sao do    
         tipo ISA, e que nao existem entradas indicando drivers nao-PnP compiladas no        
         kernel. Esses equipamentos podem ser controladoras de teclados, controladora de     
         interrupc,ao programavel e varias outras pec,as da infra-estrutura padrao do        
         sistema. Os recursos nao podem ser atribuidos por ja existirem drivers usando       
         tais enderec,os.                                                                    
                                                            --Garrett Wollman, 24 Abril 2001 
10.9.  Porque eu nao consigo fazer as quotas de usuarios funcionarem de forma correta?       
        1. Nao habilite quotas na /,                                                         
                                                                                             
        2. Coloque o arquivo de quotas indicando o sistema de arquivos onde se deseja        
           estabelecer as quotas, por exemplo:                                               
                                                                                             
           Sistemas de arquivos Arquivos de quotas                                           
           /usr                 /usr/admin/quotas                                            
           /home                /home/admin/quotas                                           
           ...                  ...                                                          
10.10. O FreeBSD suporta as primitivas de IPC do System V?                                   
       Sim, o FreeBSD suporta IPC ao estilo do System V. Esse suporte inclui                 
       compartilhamento de memoria, mensagens e semaforos. E necessario adicionar as         
       seguintes linhas no arquivo de configurac,oes do seu kernel, para ativar o suporte:   
                                                                                             
       options    SYSVSHM        # habilita memoria compartilhada                            
       options    SYSVSEM          # habilita semaforos                                      
       options    SYSVMSG          # habilita mensagens                                      
                                                                                             
         Nota:                                                                               
                                                                                             
       No FreeBSD 3.2 e posteriores, tais opc,oes ja fazem parte do kernel GENERIC, o que    
       significa que tal suporte ja deve estar compilado no seu sistema.                     
                                                                                             
       Recompile e instale o novo kernel.                                                    
10.11. Como posso usar o sendmail para entregar mensagens com UUCP?                          
       A configurac,ao do sendmail disponivel por padrao no FreeBSD e direcionada para sites 
       que estejam conectados `a Internet. Servidores que pretendem entregar suas mensagens  
       via UUCP devem instalar um novo arquivo de configurac,oes do sendmail.                
                                                                                             
       Alterar o /etc/mail/sendmail.cf manualmente e considerado tarefa para os mais         
       puristas. A versao 8 do sendmail tem uma nova abordagem de arquivos de configurac,ao  
       por meio de pre processamento com o m4(1), onde os modelos de configurac,ao sao       
       manipulados em um nivel mais alto de abstrac,ao. Use os arquivos de configurac,ao     
       disponiveis sob /usr/src/usr.sbin/sendmail/cf.                                        
                                                                                             
       Caso seu sistema nao tenha sido instalado com os fontes, os arquivos de configurac,ao 
       do sendmail foram divididos em pacotes separados. Assumindo que voce tenha o CDROM do 
       FreeBSD montado, fac,a o seguinte:                                                    
                                                                                             
       # cd /cdrom/src                                                                       
       # cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail                            
                                                                                             
       Nao se desespere, sao apenas algumas centenas de Kilobytes em tamanho. O arquivo      
       README no diretorio cf serve de introduc,ao basica ao uso do m4.                      
                                                                                             
       Para entregar mensagens via UUCP, o melhor conselho e usar o mailtertable. Trata-se   
       de uma base de dados que o sendmail usa para basear suas decisoes de roteamento de    
       mensagens.                                                                            
                                                                                             
       Primeiro, e necessario criar seu arquivo .mc. O diretorio                             
       /usr/src/usr.sbin/sendmail/cf/cf e o diretorio home para esse tipo de arquivo. De uma 
       olhada, ja existem alguns exemplos disponiveis por la. Se assumirmos que voce chamou  
       o arquivo de foo.mc, para converte-lo para um arquivo sendmail.cf valido basta:       
                                                                                             
       # cd /usr/src/usr.sbin/sendmail/cf/cf                                                 
       # make foo.cf                                                                         
       # cp foo.cf /etc/mail/sendmail.cf                                                     
                                                                                             
       Um arquivo .mc tipico, se parece com algo mais ou menos assim:                        
                                                                                             
       VERSIONID(`Numero da sua versao')                                                     
       OSTYPE(bsd4.4)                                                                        
                                                                                             
       FEATURE(accept_unresolvable_domains)                                                  
       FEATURE(nocanonify)                                                                   
       FEATURE(mailertable, `hash -o /etc/mail/mailertable')                                 
                                                                                             
       define(`UUCP_RELAY', your.uucp.relay)                                                 
       define(`UUCP_MAX_SIZE', 200000)                                                       
       define(`confDONT_PROBE_INTERFACES')                                                   
                                                                                             
       MAILER(local)                                                                         
       MAILER(smtp)                                                                          
       MAILER(uucp)                                                                          
                                                                                             
       Cw    your.alias.host.name                                                            
       Cw    youruucpnodename.UUCP                                                           
                                                                                             
       As linhas contendo as entradas accept_unresolvable_domains, nocanonify, e             
       confDONT_PROBE_INTERFACES previnem o uso do DNS durante a entrega das mensagens. A    
       clausula UUCP_RELAY e necessaria por razoes bizarras, nem pergunte quais. Apenas      
       coloque o nome de uma estac,ao que possa manipular enderec,os com pseudo-dominio      
       .UUCP; normalmente o enderec,o de relay de e-mail do seu Provedor de Servic,o         
       Internet deve servir.                                                                 
                                                                                             
       Depois disso, e necessario usar o arquivo /etc/mail/mailertable. Caso exista apenas   
       um link para fora, por onde todos os e-mails sao roteados, as seguintes definic,oes   
       sao o bastante:                                                                       
                                                                                             
       #                                                                                     
       # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable                       
       .        uucp-dom:your.uucp.relay                                                     
                                                                                             
       Um exemplo mais complexo, se pareceria com:                                           
                                                                                             
       #                                                                                     
       # makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable                       
       #                                                                                     
       horus.interface-business.de   uucp-dom:horus                                          
       .interface-business.de        uucp-dom:if-bus                                         
       interface-business.de         uucp-dom:if-bus                                         
       .heep.sax.de                  smtp8:%1                                                
       horus.UUCP                    uucp-dom:horus                                          
       if-bus.UUCP                   uucp-dom:if-bus                                         
       .                             uucp-dom:                                               
                                                                                             
       Como pode-se perceber, se trata de um arquivo usado na vida real. As primeiras tres   
       linhas tratam situac,oes especiais onde as mensagens enderec,adas aquele dominio nao  
       devem ser roteadas pela saida padrao, mas ao inves disso, ser entregues para algum    
       servidor UUCP vizinho, de forma a encurtar o caminho para entrega dos e-mails. A      
       linha seguinte trata mensagens para rede Ethernet local, para dominios onde os mails  
       possam ser entregues via SMTP. Finalmente, os vizinhos UUCP sao mencionados na        
       notac,ao do pseudo-dominio .UUCP, que permite um uucp-neighbor!recipient sobrescrever 
       as regras padrao. A ultima linha e sempre um ponto, que indica que todos os e-mails   
       que nao foram tratados pelas entradas anteriores cuja entrega seja do tipo UUCP,      
       devem ser tratados por um dos vizinhos UUCP que sirva como gateway universal com o    
       resto do mundo. Todas as estac,oes antecedendo a entrada uucp-dom: devem ser nomes de 
       vizinhos UUCP validos, que podem ser checados com o comando uuname.                   
                                                                                             
       Para lembrar que esse arquivo precisa ser convertido em base de dados do tipo DBM, o  
       comando necessario para tomar essa ac,ao esta comentado no inicio do arquivo          
       mailertable. Esse comando deve ser executado sempre que o mailertable for alterado.   
                                                                                             
       Dica final: caso tenha duvidas se uma rota de e-mail em particular ira funcionar,     
       lembre-se que a opc,ao -bt do sendmail permite que ele seja iniciado em modo de       
       testes de enderec,o; simplesmente digite 3,0 seguido do enderec,o que voce quer       
       testar o roteamento de mensagens. A ultima linha ira indicar o agente de              
       transferencia interno que foi usado, a estac,ao de destino com a qual esse agente de  
       entrega ira se comunicar, e o seu enderec,o. Para sair desse modo, digite Control-D.  
                                                                                             
       % sendmail -bt                                                                        
       ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)                               
       Enter <ruleset> <address>                                                             
       > 3,0 foo@example.com                                                                 
       canonify           input: foo @ example . com                                         
       ...                                                                                   
       parse            returns: $# uucp-dom $@ your.uucp.relay $: foo < @ example . com . > 
       > ^D                                                                                  
10.12. Como eu configuro e-mail em uma conexao dialup com a rede?                            
       Se a sua conexao discada lhe atribui um enderec,o IP estatico, nao e necessario       
       configurar nenhuma opc,ao extra. Ajuste o nome da sua estac,ao para o nome que a      
       identifica na Internet, e o sendmail fara o resto.                                    
                                                                                             
       Mas se a conexao PPP lhe atribui enderec,os dinamicos, provavelmente o seu Provedor   
       de Servic,o Internet oferece uma conta de correio eletronico em seus servidores.      
       Vamos assumir que o nome do dominio do seu provedor e example.net, e que o nome do    
       seu usuario e user. Vamos assumir tambem que o nome da sua estac,ao seja bsd.home e   
       que o Provedor de Servic,o Internet defina que o enderec,o relay.example.net deva ser 
       usado para relay de mensagens eletronicas.                                            
                                                                                             
       Para acessar as mensagens da sua caixa de correio, e necessario usar um agente de     
       busca. O Fetchmail e uma boa escolha, ja que ele suporta varios protocolos distintos. 
       Normalmente o provedor em questao oferece servic,o de POP3. Caso sua conexao PPP seja 
       estabelecida `a nivel de usuario (user-PPP), para acessar suas mensagens              
       automaticamente ao estabelecer-se uma conexao com a rede, basta adicionar a seguinte  
       entrada no arquivo /etc/ppp/ppp/linkup:                                               
                                                                                             
       MYADDR:                                                                               
         !bg su user -c fetchmail                                                            
                                                                                             
       Caso esteja usando o sendmail (como foi descrito anteriormente) para entregar suas    
       mensagens para enderec,os nao-locais, insira o comando:                               
                                                                                             
         !bg su user -c "sendmail -q"                                                        
                                                                                             
       depois da entrada apresentada anteriormente. Esse comando ira forc,ar o sendmail a    
       processar sua fila de e-mail tao logo uma conexao com a  rede seja estabelecida.      
                                                                                             
       Assumindo que exista uma conta para o user na maquina bsd.home. No diretorio home do  
       user na estac,ao bsd.home, crie um arquivo .fetchmailrc com o seguinte conteudo:      
                                                                                             
       poll example.net protocol pop3 fetchall pass MySecret                                 
                                                                                             
       Esse arquivo nao deve ter permissao de leitura para nenhum outro usuario, a nao ser o 
       user ja que ele contem a sua senha.                                                   
                                                                                             
       Para garantir que o cabec,alho from: esteja sempre correto, e necessario indicar ao   
       sendmail que o enderec,o user@example.net deve ser usado ao inves de user@bsd.home.   
       Tambem e interessante configurar o sendmail para entregar suas mensagens via          
       relay.example.net, permitindo transmissao de mensagens de forma mais rapida.          
                                                                                             
       O seguinte arquivo .mc deve ser o bastante:                                           
                                                                                             
       VERSIONID(`bsd.home.mc version 1.0')                                                  
       OSTYPE(bsd4.4)dnl                                                                     
       FEATURE(nouucp)dnl                                                                    
       MAILER(local)dnl                                                                      
       MAILER(smtp)dnl                                                                       
       Cwlocalhost                                                                           
       Cwbsd.home                                                                            
       MASQUERADE_AS(`example.net')dnl                                                       
       FEATURE(allmasquerade)dnl                                                             
       FEATURE(masquerade_envelope)dnl                                                       
       FEATURE(nocanonify)dnl                                                                
       FEATURE(nodns)dnl                                                                     
       define(`SMART_HOST', `relay.example.net')                                             
       Dmbsd.home                                                                            
       define(`confDOMAIN_NAME',`bsd.home')dnl                                               
       define(`confDELIVERY_MODE',`deferred')dnl                                             
                                                                                             
       Por gentileza, refira-se `a sec,ao anterior para obter detalhes sobre como            
       transformar esse arquivo .mc em um arquivo sendmail.cf. Nao se esquec,a tambem de     
       reiniciar o sendmail depois de alterar o sendmail.cf.                                 
10.13. Que outros servidores de correio eletronico posso usar no lugar do Sendmail?          
       O Sendmail e o programa servidor de correio eletronico padrao no FreeBSD, mas ele     
       pode ser facilmente substituido por qualquer outro MTA (por instancia, um MTA         
       instalado a partir do ports).                                                         
                                                                                             
       Existem varios MTA's que servem de alternativa ao Sendmail na Colec,ao de Ports do    
       FreeBSD, sendo o mail/exim, mail/postfix, mail/qmail, mail/zmailer, os mais           
       populares.                                                                            
                                                                                             
       A diversidade e sempre uma boa indicac,ao, e o fato de ter varios servidores de       
       e-mail disponiveis e otimo. Conteudo, evite perguntas como "O Sendmail e melhor que o 
       Qmail?" nas listas de discussao. Se voce realmente quer saber, procure no historico   
       das listas. As vantagens e desvantagens de cada MTA ja foram discutidas inumeras      
       vezes.                                                                                
10.14. Esqueci a senha de root! O que eu fac,o?                                              
       Em primeiro lugar, nao entre em panico! Reinicie o seu FreeBSD, digite boot -s na     
       tela do Boot: (ou apenas -s para as versoes anteriores `a 3.2 do FreeBSD) para entrar 
       e modo monousuario. Quando o sistema perguntar sobre que shell usar, aperte ENTER.    
       Voce estara em uma prompt de comandos; digite mount -u / para montar o sistema de     
       arquivos raiz com leitura/escrita, e depois mount -a para remontar todos os seus      
       sistemas de arquivos. Execute o comando passwd root para modificar a senha de root do 
       sistema, e depois digite exit(1) para continuar  a inicializac,ao em modo             
       multiusuario.                                                                         
10.15. Como posso evitar que a sequ:encia de teclas Control+Alt+Delete reinicie o sistema?   
       Caso esteja usando o syscons (o driver padrao para o console) em um sistema FreeBSD   
       2.2.7 ou posterior, construa e instale um novo kernel com a opc,ao:                   
                                                                                             
       options SC_DISABLE_REBOOT                                                             
                                                                                             
       Caso use o driver de console PCVT em um FreeBSD 2.2.5 ou posterior, use a seguinte    
       linha:                                                                                
                                                                                             
       options PCVT_CTRL_ALT_DEL                                                             
                                                                                             
       Em versoes anteriores `as citadas, edite o mapeamento do seu teclado, usado para o    
       console, e substitua a palavra boot por nop. O mapeamento de teclado padrao esta em   
       /usr/share/syscons/keymaps/us.iso.kbd. O /etc/rc.conf deve ser instruido de forma que 
       esse arquivo seja lido. Se voce estiver usando um outro mapa especifico para o seu    
       pais, edite esse mapa ao inves do padrao.                                             
10.16. Como posso converter arquivos de texto do DOS para o formato do Unix?                 
       Use esse comando do perl:                                                             
                                                                                             
       % perl -i.bak -npe 's/\r\n/\n/g' file...                                              
                                                                                             
       onde file indica o arquivo ou arquivos a serem processados. As modificac,oes sao      
       feitas no proprio arquivo e o original e salvo com a extensao .bak.                   
                                                                                             
       O comando tr(1) tambem pode ser usado:                                                
                                                                                             
       % tr -d '\r' < dos-text-file > unix-file                                              
                                                                                             
       Onde dos-text-file e o arquivo com o texto em formato DOS, enquanto o unix-file       
       armazenara a saida convertida. Usar o tr(1) e um pouco mais rapido do que usar o      
       perl.                                                                                 
10.17. Como eu mato processos pelo seu nome?                                                 
       Use o comando killall(1).                                                             
10.18. Por que motivos o su esta me atazanando pelo fato de nao pertencer `a ACL do root?    
       Esse erro e proveniente do sistema de autenticac,ao da distric,ao do Kerberos. O      
       problema nao e uma perturbac,ao fatal. Basta executar o su com a opc,ao -K ou entao   
       desinstalar o Kerberos, como sera descrito na proxima questao.                        
10.19. Como eu desinstalo o Kerberos?                                                        
       Para remover o Kerberos do sistema, reinstale a distribuic,ao bin da versao que esta  
       sendo usada. Caso tenha o CDROM do FreeBSD, monte-o (vamos assumir, em /cdrom) e      
       execute os comandos:                                                                  
                                                                                             
       # cd /cdrom/bin                                                                       
       # ./install.sh                                                                        
                                                                                             
       Ou entao, apague todas as opc,oes "MAKE_KERBEROS" do /etc/make.conf e recompile todo  
       o sistema com um build world.                                                         
10.20. Como posso adicionar pseudo-terminais ao sistema?                                     
       Caso tenha inumeras conexoes telnet, ssh, X, ou tela de usuario, e provavel que voce  
       atingira o limite dos seus pseudo-terminais. Aqui estao as instruc,oes de como        
       adicionar mais pseudo-terminais:                                                      
                                                                                             
        1. Construa e instale um novo kernel com a linha                                     
                                                                                             
        pseudo-device pty 256                                                                
                                                                                             
           em seu arquivo de configurac,oes.                                                 
                                                                                             
        2. Execute os comandos                                                               
                                                                                             
        # cd /dev                                                                            
        # sh MAKEDEV pty{1,2,3,4,5,6,7}                                                      
                                                                                             
           de forma a criar 256 novos devices para os novos terminais.                       
                                                                                             
        3. Edite o /etc/ttys e adicione uma linha para cada um dos 256 terminais. Tais       
           entradas devem ter o formato correspondente `as entradas ja existentes, por       
           exemplo:                                                                          
                                                                                             
        ttyqc none network                                                                   
                                                                                             
           A ordem de definic,ao das letras e expressa como tty[pqrsPQRS][0-9a-v], ao        
           ilustrarmos em expressoes regulares.                                              
                                                                                             
        4. Reinicie o sistema com o novo kernel, e pronto.                                   
10.21. Por que motivo nao consigo criar a device snd0?                                       
       Simples, porque nao existe a device snd. Esse nome e usado para identificar o         
       conjunto de devices que compoem os drivers de som do FreeBSD, como as devices mixer,  
       sequencer, e dsp.                                                                     
                                                                                             
       Para criar tais devices, basta executar:                                              
                                                                                             
       # cd /dev                                                                             
       # sh MAKEDEV snd0                                                                     
10.22. Como posso reler o /etc/rc.conf e reiniciar o /etc/rc sem rebootar o sistema?         
       Va para o modo monousuario e volte para o modo multiusuario.                          
                                                                                             
       E simples; no console, fac,a:                                                         
                                                                                             
       # shutdown now                                                                        
       (Note: without -r or -h)                                                              
                                                                                             
       # return                                                                              
       # exit                                                                                
10.23. O que e uma sandbox?                                                                  
       "Sandbox" e um jargao usado em discussoes pertinentes `a seguranc,a de sistemas. Pode 
       significar duas coisas:                                                               
                                                                                             
         * Um processo enquadrado em um conjunto de paredes virtuais que sao criadas para    
           prevenir que algum usuario, ao explorar alguma inconformidade do processo, possa  
           tambem explorar e obter privilegios no sistema operacional como um todo.          
                                                                                             
           O processo deve conseguir "rodar" dentro dessas paredes, ou seja, nada que o      
           processo possa fazer ao executar seu codigo, pode ser capaz de violar tais        
           paredes. Dessa forma nao e necessaria uma auditoria detalhada do codigo e das     
           ac,oes do processo para que se possa realizar algumas afirmac,oes pertinentes `a  
           seguranc,a de tal sistema.                                                        
                                                                                             
           Tais paredes podem ser a identificac,ao de um usuario (userid), por exemplo. Essa 
           e a definic,ao de sandbox usada nas paginas de manuais do named e de security.    
                                                                                             
           Observe o servic,o ntalk, como exemplo (veja o /etc/inetd.conf). Esse servic,o    
           costumava ser executado com userid do root. Hoje em dia o processo roda com o     
           userid do tty. O usuario tty, portanto, e uma sandbox criada para dificultar      
           qualquer atividade de um usuario malicioso que por ventura consiga acesso ao      
           sistema por meio do ntalk. Com essa sandbox, uma violac,ao de seguranc,a bem      
           sucedida via ntalk dificultaria qualquer ac,ao tomada alem das possiveis com o    
           userid do tty.                                                                    
                                                                                             
         * Um processo criado dentro de um ambiente de simulac,ao. Essa e uma situac,ao mais 
           complexa. Basicamente implica que qualquer pessoa ma intencionada que consiga     
           explorar tal processo, acreditara que pode obter acesso `a todo o ambiente, nas   
           na verdade, estara apenas acessando um sistema de simulac,ao, nao alterando       
           nenhum dado real.                                                                 
                                                                                             
           A forma mais comum de conseguir criar um ambiente simulado como esse, e criando   
           um subdiretorio `a partir de onde o processo consiga acessar (uma copia de)       
           qualquer arquivo do sistema que por ventura ele precise, e executar esse processo 
           simulando um diretorio raiz (ou seja, para o processo, o / sera o subdiretorio    
           determinado, e nao o verdadeiro / do sistema).                                    
                                                                                             
           Outra situac,ao comum e montar um sistema de arquivos base com apenas permissao   
           de leitura, e depois criar um outro sistema de arquivos em uma camada superior,   
           com acesso de escrita/leitura, dando ao processo a impressao de poder             
           ler/escrever em todo o sistema de arquivos. Apenas o processo em questao percebe  
           esse ambiente, enquanto os outros nao sao necessariamente ludibriados.            
                                                                                             
           A intenc,ao e que tais sandbox sejam tao transparentes que qualquer usuario (ou   
           hacker) nao consiga perceber que esta dentro de uma.                              
                                                                                             
       Os sistemas Unix costumam implementar esses dois principais tipos de sandbox, um em   
       nivel de processo e o outro, muito comum, em nivel de userid.                         
                                                                                             
       Cada processo Unix e completamente separado dos outros, por meio de algum tipo de     
       parede de seguranc,a. Um processo nunca modifica o espac,o de enderec,amento de       
       outro, diferente do ambiente Windows onde cada processo pode facilmente sobrescrever  
       enderec,os de outros processos, fazendo o sistema travar.                             
                                                                                             
       Cada processo Unix e de propriedade de um userid em particular. Caso o userid nao     
       seja do root, ele serve de parede de seguranc,a em relac,ao aos processos             
       pertencentes a outros usuarios. Os userid tambem sao usados para proteger dados       
       armazenados em disco.                                                                 
10.24. O que e securelevel (nivel de seguranc,a do sistema)?                                 
       securelevel (nivel de seguranc,a do sistema) e um mecanismo de seguranc,a             
       implementado no kernel do FreeBSD. Basicamente, quando o securelevel e positivo, o    
       kernel restringe algumas tarefas do sistema; nem mesmo o superusuario (por exemplo, o 
       root) tem permissao de realizar tais tarefas. Na data que este FAQ foi escrito, o     
       mecanismo de securelevel do FreeBSD era capaz de, entre outras coisas, limitar as     
       habilidades de:                                                                       
                                                                                             
         * retirar algumas flags de arquivos, como a schg (flag de imutabilidade do          
           sistema),                                                                         
                                                                                             
         * escrever na memoria do kernel por meio do /dev/mem e /dev/kmem,                   
                                                                                             
         * carregar modulos do kernel, e                                                     
                                                                                             
         * alterar regras de Firewall do ipfirewall(4).                                      
                                                                                             
       Para verificar o estado do securelevel (nivel de seguranc,a do sistema) em um sistema 
       em funcionando, simplesmente execute o seguinte comando:                              
                                                                                             
       # sysctl kern.securelevel                                                             
                                                                                             
       A saida apresentara o nome da variavel do sysctl(8) (nesse caso, kern.securelevel) e  
       um numero. Esse ultimo sera o valor atual do nivel de seguranc,a do kernel do         
       FreeBSD. Caso esse valor seja positivo (maior que 0), ao menos algumas das            
       caracteristicas dos niveis de seguranc,a estarao habilitadas.                         
                                                                                             
       Os niveis de seguranc,a nao podem ser diminuidos em um sistema que esta funcionando   
       se isso fosse possivel o securelevel (nivel de seguranc,a do sistema) perderia sua    
       funcionalidade. Caso seja necessario executar alguma tarefa que necessite que o nivel 
       de seguranc,a seja nao-positivo (por exemplo, um installworld ou alterar a data do    
       sistema) sera preciso alterar as definic,oes de securelevel (nivel de seguranc,a do   
       sistema) no /etc/rc.conf (mais precisamente, as variaveis kern_securelevel e          
       kern_securelevel_enable) e reiniciar o sistema.                                       
                                                                                             
       Para obter mais informac,oes quanto aos niveis de seguranc,a e sobre as func,oes      
       especificas de cada nivel, por gentileza, consulte a pagina de manual do init(8).     
                                                                                             
         Atenc,ao:                                                                           
                                                                                             
       O securelevel (nivel de seguranc,a do sistema) nao e uma bala de prata; ele tem       
       varias deficiencias obvias. A mais frequente e provocar uma falsa sensac,ao de        
       seguranc,a.                                                                           
                                                                                             
       Um dos maiores problemas, e portanto que deve ser bem observada pelo administrador do 
       sistema, e que, para que o securelevel (nivel de seguranc,a do sistema) se torne      
       efetivo, todos os arquivos usados pelo processo de inicializac,ao ate que os niveis   
       de seguranc,a se tornem positivos, devem estar seguros. Se um usuario que deseja      
       atacar o sistema, conseguir que seu codigo seja executado antes que o nivel de        
       seguranc,a seja definido (o que ocorre pouco depois do processo de inicializac,ao,    
       visto que algumas func,oes que o sistema precisa realizar, nao podem ser iniciadas    
       com um nivel elevado de seguranc,a), a protec,ao do securelevel (nivel de seguranc,a  
       do sistema) sera invalidada. Por outro lado, a tarefa de assegurar que todos os       
       arquivos necessarios pelo processo de inicializac,ao estejam em conformidade, nao e   
       tecnicamente impossivel, mas, O processo de manutenc,ao de um ambiente em tais        
       condic,oes se tornaria um pesadelo, visto que seria necessario baixar o sistema, no   
       minimo para modo monousuario sempre que fosse necessario modificar os arquivos de     
       configurac,ao do mesmo.                                                               
                                                                                             
       Esse e outros pontos sao frequ:entemente discutidos nas listas do FreeBSD, em         
       especial na freebsd-security. Por gentileza, queira fazer uma busca no historico da   
       lista, clicando aqui, para uma discussao extensa sobre o assunto. Algumas pessoas     
       estao esperanc,osas de que o securelevel logo sera afastado, em favor de um mecanismo 
       de seguranc,a mais refinado, mas as coisas ainda estao confusas a este respeito.      
                                                                                             
       Considere-se advertido.                                                               
10.25. Tentei atualizar meu sistema para o ultimo -STABLE, mas ele se tornou -RC ou          
       -PRERELEASE! O que esta havendo?                                                      
       A resposta mais curta: E so um nome, RC e um acronimo para "Release Candidate".       
       Significa que uma nova versao esta eminente. No FreeBSD, -PRERELEASE e tipicamente um 
       sinonimo de codigo congelado antes de uma nova versao. (Em algumas versoes, o titulo  
       -BETA foi usado sob as mesmas circunstancias em que o -PRERELEASE seria).             
                                                                                             
       A resposta longa: O FreeBSD normalmente deriva suas versoes de duas fontes de origem. 
       As versoes principais, ponto-zero, como o 3.0-RELEASE e o 4.0-RELEASE que sao         
       marcadas inicialmente como o topo da cadeia de desenvolvimento, normalmente chamados  
       de -CURRENT. As versoes menores (como 3.1-RELEASE ou 4.2-RELEASE), sao criados a      
       partir do snapshot mais recente da ramificac,ao ativa marcada como -STABLE. A partir  
       do 4.3-RELEASE, cada versao conta tambem com sua propria ramificac,ao, que pode ser   
       acessada por usuarios que queiram apenas um nivel extremamente conservador de         
       desenvolvimento (tipicamente, apenas consultores de seguranc,a).                      
                                                                                             
       Quando uma versao esta para ser criada, a ramificac,ao de onde ela se derivara deve   
       passar por um certo processo. Parte desse processo e o congelamento do codigo. Quando 
       o processo de congelamento do codigo se inicia, o nome desta ramificac,ao e alterado  
       para indicar que ela esta para se tornar uma versao. Por exemplo, se a ramificac,ao   
       usada chamava-se 4.5-STABLE, ela passa a se chamar 4.6-PRERELEASE para indicar que o  
       codigo esta congelado, e indicar que testes extras, pre versao, estao acontecendo.    
       Durante esse periodo alterac,oes pertinentes a correc,oes de problemas sao            
       realizadas. Quando o novo codigo esta pronto para ser lanc,ado, ele passa a ser       
       chamado de -RC (nesse exemplo, 4.6-RC), indicando que provavelmente a nova versao     
       sera criada a partir do codigo atual. Nesse estagio, apenas os problemas mais serios  
       sao corrigidos. Depois que a versao e finalmente lanc,ado (4.6-RELEASE nesse exemplo) 
       e a nova ramificac,ao com o nome dessa versao foi criada, ela passa a se chamar       
       -STABLE; 4.6-STABLE no nosso exemplo.                                                 
                                                                                             
       Para obter mais informac,oes sobre a numerac,ao das versoes e sobre as varias         
       ramificac,oes CVS, por gentileza, refira-se ao artigo sobre a Engenharia de Releases. 
10.26. Tentei instalar um novo kernel, mas a rotina de chflags falhou. O que posso fazer?    
       A resposta curta: provavelmente voce esta com o securelevel (nivel de seguranc,a do   
       sistema) acima do 0. Reinicie o sistema em modo mono usuario e instale o kernel.      
                                                                                             
       A resposta mais completa: O FreeBSD nao permite que as flags do sistema sejam         
       alteradas caso o securelevel (nivel de seguranc,a do sistema) seja maior que 0. O     
       nivel atual do securelevel (nivel de seguranc,a do sistema) pode ser verificado com o 
       comando:                                                                              
                                                                                             
       # sysctl kern.securelevel                                                             
                                                                                             
       O securelevel (nivel de seguranc,a do sistema) nao pode ser diminuido; e necessario   
       iniciar o sistema em modo mono usuario, ou alterar o nivel de seguranc,a em           
       /etc/rc.conf, depois reiniciar. Veja a pagina de manual do init(8) para obter         
       informac,oes mais detalhadas sobre o securelevel (nivel de seguranc,a do sistema), e  
       veja tambem o /etc/defaults/rc.conf e a pagina de manual do rc.conf(5) para obter     
       mais informac,oes quanto ao rc.conf.                                                  
10.27. Nao consigo alterar mais de um segundo na hora no meu sistema. O que posso fazer?     
       A resposta curta: provavelmente o sistema esta com securelevel (nivel de seguranc,a   
       do sistema) acima do 1. Reinicie o sistema em modo mono usuario e altere a data.      
                                                                                             
       A resposta mais completa: O FreeBSD nao permite que a hora do sistema seja alterada   
       por mais de um segundo quando o securelevel (nivel de seguranc,a do sistema) do       
       kernel e maior que 1. O nivel atual do securelevel (nivel de seguranc,a do sistema)   
       pode ser verificado com o comando:                                                    
                                                                                             
       # sysctl kern.securelevel                                                             
                                                                                             
       O securelevel (nivel de seguranc,a do sistema) nao pode ser diminuido; e necessario   
       iniciar o sistema em modo mono usuario, ou alterar o nivel de seguranc,a em           
       /etc/rc.conf, depois reiniciar. Veja a pagina de manual do init(8) para obter         
       informac,oes mais detalhadas sobre o securelevel (nivel de seguranc,a do sistema), e  
       veja tambem o /etc/defaults/rc.conf e a pagina de manual do rc.conf(5) para obter     
       mais informac,oes quanto ao rc.conf.                                                  
10.28. Por que motivo o rpc.statd esta usando 256 megabytes de memoria?                      
       Nao, mao existe nenhuma falha no uso da memoria, e ele na e usando 256MB de RAM. Ele  
       simplesmente gosta de (ele sempre faz isso) mapear uma quantia obscena de memoria em  
       seu enderec,amento, simplesmente por conveniencia. Nao existe nada terrivelmente      
       errado com esse comportamento, de um ponto de vista tecnico; a unica questao e que    
       assim o top(1) e o ps(1) ficam completamente perdidos.                                
                                                                                             
       O rpc.statd(8) mapeia seu arquivo de status (localizado sob o /var) no seu            
       enderec,amento para economiza preocupac,oes sobre esse remapeamento em um segundo     
       momento, quando o arquivo precisa crescer. O mapeamento e feito a um valor enorme.    
       Analisando o codigo fonte, podemos evidenciar que o tamanho do argumento do mmap(2) e 
       0x10000000, ou exatos 256MB em sistemas de arquitetura IA32.                          
10.29. Por que eu nao posso retirar a flag schg dos arquivos?                                
       O sistema esta sendo executado em um nivel de seguranc,a elevado (maior que 0).       
       Diminua o nivel de seguranc,a e tente novamente. Para obter mais informac,oes, por    
       gentileza, refira-se `a sec,ao sobre securelevel (nivel de seguranc,a do sistema) do  
       FAQ, e `a pagina de manual do init(8)                                                 
10.30. Por que a autenticac,ao do SSH via .shosts nao funciona por padrao nas versoes        
       recentes do FreeBSD?                                                                  
       O motivo e simples. A autenticac,ao via .shosts nao funciona mais por padrao porque o 
       ssh(1) nao esta instalado com suid de root por padrao. Razoes obvias de seguranc,a.   
       Para "corrigir" isto, pode-se fazer o seguinte:                                       
                                                                                             
         * Para uma alterac,ao permanente, defina ENABLE_SUID_SSH como true no arquivo       
           /etc/make.conf e recompile o ssh (ou execute um make world).                      
                                                                                             
         * Uma correc,ao temporaria pode ser mudar os modos de permissao do  /usr/bin/ssh    
           para 4555 simplesmente executando o comando chmod 4555 /usr/bin/ssh logado como   
           root. Depois, defina ENABLE_SUID_SSH= true no /etc/make.conf para que as          
           alterac,oes tenham efeito todas as vezes que um make world for feito.             
10.31. O que e o vnlru?                                                                      
       O vnlru limpa e libera os vnodes quando o sistema atinge o limite do kern.maxvnodes.  
       Essa thread do kernel se mantem inativa a maior parte do tempo, e so se inicia caso   
       exista uma grande quantidade de memoria RAM, e o sistema esteja acessando dezenas de  
       milhares de arquivos pequenos.                                                        

 Capitulo 11. O sistema X, sistema de interface grafica e os Consoles Virtuais

   11.1. Quero rodar a interface grafica X, como procedo?

   11.2. Tentei rodar o X, mas o erro KDENABIO failed (Operation not
   permitted) sempre aparece, quando eu digito o comando startx. O que posso
   fazer?

   11.3. Por que meu mouse nao funciona com o X?

   11.4. Meu mouse possui aquela bolinha (esfera) simpatica de scroll. Posso
   usa-lo no X?

   11.5. Por que os menus e caixas de dialogo do X, sistema de interface
   grafica nao funcionam direito?

   11.6. O que e um console virtual, e como eu crio mais consoles?

   11.7. Como posso acessar os consoles virtuais quando eu estiver no X?

   11.8. Como eu inicio o XDM no processo de inicializac,ao?

   11.9. Por que eu enfrento um Couldn't open console ao executar o xconsole?

   11.10. Antes eu conseguia usar o XFree86 com um usuario sem privilegios.
   Porque agora o servidor diz que eu tenho que ser root?

   11.11. Por que meu mouse PS/2 nao se comporta corretamente no X?

   11.12. Por que meu mouse PS/2 da MouseSystems nao funciona?

   11.13. Ao compilar uma aplicac,ao X, o imake nao consegue encontrar o
   Imake.tmpl. Onde ele esta?

   11.14. Estou construindo uma aplicac,ao grafica que depende do XFree86
   3.3.X, mas eu estou com o XFree86 4.X instalado. O que fazer?

   11.15. Como posso inverter as func,oes dos botoes do mouse?

   11.16. Como instalar uma Splash Screen e onde posso encontra-las?

   11.17. Posso usar as teclas do Windows(R) que meu teclado possui, sob o X?

   11.18. Como posso obter a acelerac,ao de equipamentos 3D para o OpenGL?

11.1.  Quero rodar a interface grafica X, como procedo?                                                   
       A maneira mais facil e simplesmente especificar o desejo de usar o X durante o processo de         
       instalac,ao do FreeBSD.                                                                            
                                                                                                          
       Depois disso, leia e siga as instruc,oes documentadas na ferramenta xf86config, que auxilia o      
       usuario a configurar o XFree86 para os diversos monitores, placas de video, mouse e etc,           
       suportados pelo X, sistema de interface grafica.                                                   
                                                                                                          
       Tambem pode ser interessante dar uma olhada no servidor Xaccel. Confira a sec,ao do FAQ pertinente 
       `a Xi Graphics ou Metro Link para obter mais detalhes.                                             
11.2.  Tentei rodar o X, mas o erro KDENABIO failed (Operation not permitted) sempre aparece, quando eu   
       digito o comando startx. O que posso fazer?                                                        
       Seu sistema esta rodando com um securelevel (nivel de seguranc,a do sistema) elevado, nao esta? E  
       impossivel iniciar o X com um secureleve elevado. Para saber exatamente os motivos dessa           
       inviabilidade, por gentileza, de uma olhada na pagina de manual do init(8).                        
                                                                                                          
       Entao, a pergunta pode ser sobre o que voce deve fazer nesse caso; basicamente, existem duas       
       escolhas: diminua seu securelevel (nivel de seguranc,a do sistema), colocando-o de volta para zero 
       (normalente via /etc/rc.conf), ou entao inicie o xdm(1) durante o processo de inicializac,ao do    
       sistema (antes que o securelevel (nivel de seguranc,a do sistema) seja elevado).                   
                                                                                                          
       Veja a pergunta P: 11.8, para obter mais informac,oes sobre como iniciar o xdm(1) durante o boot.  
11.3.  Por que meu mouse nao funciona com o X?                                                            
       Caso esteja usando o syscons (o driver padrao do console), o FreeBSD pode ser configurado para     
       suportar um cursor de mouse em cada tela virtual. Com o intuito de evitar conflitos com o X, o     
       syscons suporta um dispositivo virtual, chamado /dev/sysmouse. Todos os eventos relacionados ao    
       mouse, que o sistema recebe, sao antes enviados para o device sysmouse, por meio do moused. Se a   
       intenc,ao e usar o mouse em um ou mais consoles virtuais, e tambem usar o X, leia P: 4.13 e        
       configure o moused.                                                                                
                                                                                                          
       Depois, edite o /etc/XF86Config e garanta que existam as seguintes linhas no arquivo:              
                                                                                                          
       Section         Pointer                                                                            
       Protocol        "SysMouse"                                                                         
       Device          "/dev/sysmouse"                                                                    
       .....                                                                                              
                                                                                                          
       O exemplo acima refere-se ao XFree86 3.3.2 e posteriores. Para versoes anteriores, a clausula      
       Protocol deve ser substituida por MouseSystems.                                                    
                                                                                                          
       Alguns preferem usar a device /dev/mouse sob o X. Para que isso funcione, fac,a um link de         
       /dev/mouse para /dev/sysmouse (veja a pagina de manual do sysmouse(4)).                            
                                                                                                          
       # cd /dev                                                                                          
       # rm -f mouse                                                                                      
       # ln -s sysmouse mouse                                                                             
11.4.  Meu mouse possui aquela bolinha (esfera) simpatica de scroll. Posso usa-lo no X?                   
       Pode, mas e necessario customizar os programas do X. Veja a pagina do Colas Nahaboo sobre o        
       assunto ( http://www.inria.fr/koala/colas/mouse-wheel-scroll/.                                     
                                                                                                          
       Caso queira usar o programa imwheel, simplesmente siga os seguintes passos:                        
                                                                                                          
        1. Traduza os eventos da esfera de scroll:                                                        
                                                                                                          
           O programa imwheel funciona assim: ele traduz os botoes 4 e 5 do mouse em eventos do teclado   
           do computador. Dessa forma e necessario assegurar que o driver do mouse esteja traduzindo os   
           eventos da esfera de scroll para os eventos dos botoes 4 e 5, ou seja assimilar suas func,oes. 
           Existem duas formas de fazer isso, a primeira e usando o moused(8) para fazer essas            
           assimilac,oes, e a segunda, e usar o proprio X para traduzir os eventos.                       
                                                                                                          
             a. Usando o moused(8) para traduzir os eventos da bolinha de scroll.                         
                                                                                                          
                Para que o moused(8) fac,a as assimilac,oes de eventos, basta adicionar as opc,oes -z 4   
                nas opc,oes de linhas de comando, usadas para iniciar o moused(8). Por exemplo, se        
                normalmente voce inicia o moused(8) via moused -p /dev/psm0 basta substituir o comando    
                por moused -p /dev/psm0 -z 4. Se o moused(8) e executado automaticamente durante o        
                processo de inicializac,ao do FreeBSD, por meio das entradas definidas no /etc/rc.conf,   
                basta adicionar -z 4 na variavel moused_flags do /etc/rc.conf.                            
                                                                                                          
                Voce precisa agora dizer para o X que voce tem o botao 5 no mouse. Para fazer isto,       
                simplesmente adicione a linha Buttons 5 para a sec,ao "Pointer" do /etc/XF86Config. Por   
                exemplo, voce pode seguir a sec,ao "Pointer" em /etc/XF86Config.                          
                                                                                                          
                Exemplo 11.1. Sec,ao "Pointer" no XF86Config para o mouse com bolinha de scroll, da serie 
                3.3.x do XFree86, usando a traduc,ao se;rie 3.3.x do XFree86, usando a traduc,ao por meio 
                do moused                                                                                 
                                                                                                          
        Section "Pointer"                                                                                 
        Protocol        "SysMouse"                                                                        
        Device          "/dev/sysmouse"                                                                   
        Buttons         5                                                                                 
        EndSection                                                                                        
                                                                                                          
                Exemplo 11.2. Sec,ao "InputDevice" do XF86Config para usar a traduc,ao do X Server na     
                serie 4.X do XFree86.                                                                     
                                                                                                          
        Section "InputDevice"                                                                             
        Identifier      "Mouse1"                                                                          
        Driver          "mouse"                                                                           
        Option          "Protocol" "auto"                                                                 
        Option          "Device" "/dev/sysmouse"                                                          
        Option          "Buttons" "5"                                                                     
        EndSection                                                                                        
                                                                                                          
                Exemplo 11.3. Exemplo de ".emacs" para usar paginamento em mouse com bolinha de scroll.   
                                                                                                          
        ;; wheel mouse                                                                                    
        (global-set-key [mouse-4] 'scroll-down)                                                           
        (global-set-key [mouse-5] 'scroll-up)                                                             
                                                                                                          
             b. Usando o X Server para traduzir os eventos da esfera de scroll.                           
                                                                                                          
                Se voce nao usa o moused(8) ou simplesmente nao quer que ele fac,a a traduc,ao de         
                eventos, e possivel que o servidor X fac,a o trabalho, no lugar do moused(8). Essa ac,ao  
                requer algumas alterac,oes no seu arquivo /etc/XF86Config. Primeiro, e necessario definir 
                o protocolo apropriado para o mouse. A maioria dos mouses com esferas de scroll usam o    
                protocolo "IntelliMouse". De qualquer forma, o XFree86 nao suporta outros protocolos como 
                o "MouseManPlusPS/2" dos MouseMan+ Logitechfor. Uma vez definido o protocolo, e           
                necessario criar uma entrada apropriada na sec,ao "Pointer".                              
                                                                                                          
                Depois, e preciso definir que o servidor X deve remapear os eventos 4 e 5 do mouse. A     
                opc,ao ZAxisMapping e usada para essa finalidade.                                         
                                                                                                          
                Por exemplo, caso nao estejas usando o moused(8) e exista um IntelliMouse ligado na PS/2  
                do seu computador, use o seguinte, no /etc/XF86Config.                                    
                                                                                                          
                Exemplo 11.4. Sec,ao "Pointer" do XF86Config com um mouse com scroll na serie 3.3.x do    
                XFree86.                                                                                  
                                                                                                          
        Section "Pointer"                                                                                 
        Protocol        "IntelliMouse"                                                                    
        Device          "/dev/psm0"                                                                       
        ZAxisMapping    4 5                                                                               
        EndSection                                                                                        
                                                                                                          
                Exemplo 11.5. Sec,ao "InputDevice" do XF86Config com um mouse com scroll na serie 4.x do  
                XFree86.                                                                                  
                                                                                                          
        Section "InputDevice"                                                                             
        Identifier      "Mouse1"                                                                          
        Driver          "mouse"                                                                           
        Option          "Protocol" "auto"                                                                 
        Option          "Device" "/dev/psm0"                                                              
        Option          "ZAxisMapping" "4 5"                                                              
        EndSection                                                                                        
                                                                                                          
                Exemplo 11.6. Arquivo ".emacs" para usar paginamento em mouse com bolinha de scroll.      
                                                                                                          
        ;; wheel mouse                                                                                    
        (global-set-key [mouse-4] 'scroll-down)                                                           
        (global-set-key [mouse-5] 'scroll-up)                                                             
                                                                                                          
        2. Instale o imwheel                                                                              
                                                                                                          
           Depois, instale o imwheel `a partir da colec,ao de ports do FreeBSD; ele pode ser encontrado   
           sob a categoria x11. A finalidade desse programa e assimilar os eventos dos botoes 4 e 5 do    
           mouse, com os eventos de alguma tecla do teclado. Por exemplo, o programa deve enviar o evento 
           da tecla Page Up quando a esfera for deslocada para frente. O imwheel usa um arquivo de        
           configurac,oes para assimilar esses eventos `a uma tecla, de forma que possam ser configuradas 
           ac,oes diferentes (teclas diferentes) para aplicac,oes diferentes. O arquivo de configurac,ao  
           padrao do imwheel e instalado em /usr/X11R6/etc/imwheelrc. Ele pode ser copiado para           
           ~/.imwheelrc e editado, caso se deseja customizar o arquivo de configurac,ao. O formato        
           esperado para o arquivo e documentado na pagina de manual do imwheel(1).                       
                                                                                                          
        3. Configure o Emacs para trabalhar em conjunto com o Imwheel (optional)                          
                                                                                                          
           Se voce usa o emacs ou o Xemacs, sera necessario adicionar uma breve sec,ao ao arquivo         
           ~/.emacs. No emacs, adicione o seguinte:                                                       
                                                                                                          
           Exemplo 11.7. Configurac,ao do Emacs para Imwheel                                              
                                                                                                          
        ;;; For imwheel                                                                                   
        (setq imwheel-scroll-interval 3)                                                                  
        (defun imwheel-scroll-down-some-lines ()                                                          
          (interactive)                                                                                   
          (scroll-down imwheel-scroll-interval))                                                          
        (defun imwheel-scroll-up-some-lines ()                                                            
          (interactive)                                                                                   
          (scroll-up imwheel-scroll-interval))                                                            
        (global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines)                                        
        (global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines)                                      
        ;;; end imwheel section                                                                           
                                                                                                          
           Pro Xemacs, adicione o seguinte, no seu arquivo ~/.emacs:                                      
                                                                                                          
           Exemplo 11.8. Configurac,ao do Xemacs para Imwheel                                             
                                                                                                          
        ;;; For imwheel                                                                                   
        (setq imwheel-scroll-interval 3)                                                                  
        (defun imwheel-scroll-down-some-lines ()                                                          
          (interactive)                                                                                   
          (scroll-down imwheel-scroll-interval))                                                          
        (defun imwheel-scroll-up-some-lines ()                                                            
          (interactive)                                                                                   
          (scroll-up imwheel-scroll-interval))                                                            
        (define-key global-map [(control meta \))] 'imwheel-scroll-up-some-lines)                         
        (define-key global-map [(control meta \()] 'imwheel-scroll-down-some-lines)                       
        ;;; end imwheel section                                                                           
                                                                                                          
        4. Execute o Imwheel                                                                              
                                                                                                          
           Basta digitar imwheel em algum terminal X (xterm) para inicia-lo, uma vez que tudo esteja      
           pronto. Imediatamente o programa vai estar efetivo e vai se tornar um processo em segundo      
           plano. Caso queira sempre iniciar o imwheel, basta adicionar o comando no seu arquivo .xinitrc 
           ou no .xsession. E possivel que o imwheel mostre algumas mensagens de advertencia sobre        
           arquivos PID; elas podem ser seguramente ignoradas, visto que sao mensagens que se aplicam `a  
           versao para Linux.                                                                             
11.5.  Por que os menus e caixas de dialogo do X, sistema de interface grafica nao funcionam direito?     
       Tente desativar a tecla Num Lock.                                                                  
                                                                                                          
       Se por padrao seu Num Lock e ativo na hora do processo de inicializac,ao, adicione a seguinte      
       linha a sec,ao Keyboard do seu arquivo XF86Config.                                                 
                                                                                                          
       # Deixar o servidor fazer o trabalho do NumLock.  Deve ser usado apenas em versoes anteriores a R6 
           ServerNumLock                                                                                  
11.6.  O que e um console virtual, e como eu crio mais consoles?                                          
       Consoles virtuais simplesmente permitem que se tenha varias sessoes simultaneas em uma mesma       
       maquina, sem a necessidade de fazer nada complicado como configurar uma rede ou usar um servidor   
       X.                                                                                                 
                                                                                                          
       Quando o sistema e iniciado, a primeira ac,ao e apresentar um prompt de login na tela do usuario,  
       tao logo todas as mensagens do processo de inicializac,ao sejam apresentadas. Nesse momento e      
       possivel entrar com seu nome de usuario e senha para comec,ar trabalhar (ou brincar!) no primeiro  
       console virtual.                                                                                   
                                                                                                          
       Em algum momento, e provavel que se deseje iniciar uma outra sessao, talvez para ler a             
       documentac,ao de alguma aplicac,ao que esta sendo usada, ou para ler e-mail enquanto a             
       transferencia FTP se conclui, enfim, qualquer ac,ao (a)tipica de um sistema multitarefa. Nesse     
       caso, basta pressionar Alt+F2 (segure a tecla Alt e depois aperte a tecla F2), e outro prompt de   
       login estara esperando voce no segundo "console virtual"! Quando quizer alternar de volta `a       
       sessao original, digite Alt+F1.                                                                    
                                                                                                          
       A instalac,ao padrao do FreeBSD oferece tres consoles virtuais ja habilitados (8 a partir do       
       3.3-RELEASE), e as teclas Alt+F1, Alt+F2, e Alt+F3 ira alternar entre esses consoles.              
                                                                                                          
       Para habilitar mais consoles, edite o /etc/ttys (veja a pagina de manual do ttys(5)) e adicione as 
       entradas da ttyv4 `a ttyvc depois do comentario sobre "Virtual terminals":                         
                                                                                                          
       # Edite as entradas existentes para ttyv3 e mude de "off" para "on"                                
       ttyv3   "/usr/libexec/getty Pc"         cons25  on secure                                          
       ttyv4   "/usr/libexec/getty Pc"         cons25  on secure                                          
       ttyv5   "/usr/libexec/getty Pc"         cons25  on secure                                          
       ttyv6   "/usr/libexec/getty Pc"         cons25  on secure                                          
       ttyv7   "/usr/libexec/getty Pc"         cons25  on secure                                          
       ttyv8   "/usr/libexec/getty Pc"         cons25  on secure                                          
       ttyv9   "/usr/libexec/getty Pc"         cons25  on secure                                          
       ttyva   "/usr/libexec/getty Pc"         cons25  on secure                                          
       ttyvb   "/usr/libexec/getty Pc"         cons25  on secure                                          
                                                                                                          
       Use quantos consoles desejar. Quanto mais, maior o uso de recursos; essa e uma considerac,ao       
       relevante quando se tem 8MB de RAM ou menos. Tambem pode ser interessante mudar o terminal de      
       secure para insecure.                                                                              
                                                                                                          
         Importante:                                                                                      
                                                                                                          
       Caso se deseje usar um servidor X, e necessario garantir que exista ao menos um terminal virtual   
       fora de uso (ou desligado). Com isso, entenda que, se sua intec,ao for usar consoles virtuais nas  
       suas doze teclas de func,oes, nada feito; apenas onze poderao ser usadas caso deseje-se usar o X   
       na mesma maquina.                                                                                  
                                                                                                          
       A maneira mais simples de desabilitar um console, e desligando-o. Por exemplo, caso existam 12     
       terminais definidos, como mencionado na situac,ao acima, e se queira usar o servidor X, o mais     
       interessante e mudar as configurac,oes do terminal 12 de:                                          
                                                                                                          
       ttyvb   "/usr/libexec/getty Pc"        cons25  on  secure                                          
                                                                                                          
       para:                                                                                              
                                                                                                          
       ttyvb   "/usr/libexec/getty Pc"        cons25  off  secure                                         
                                                                                                          
       Caso seu teclado tenha apenas dez teclas de func,oes, basta encerrar as definic,oes com:           
                                                                                                          
       ttyv9   "/usr/libexec/getty Pc"         cons25  off secure                                         
       ttyva   "/usr/libexec/getty Pc"         cons25  off secure                                         
       ttyvb   "/usr/libexec/getty Pc"         cons25  off secure                                         
                                                                                                          
       (Claro que as linhas poderiam simplesmente ser apagadas.)                                          
                                                                                                          
       Uma vez editado o /etc/ttys, o passo seguinte e garantir que existam devices o bastante pros       
       terminais virtuais. A forma mais facil de fazer isso e:                                            
                                                                                                          
       # cd /dev                                                                                          
       # sh MAKEDEV vty12                                                                                 
                                                                                                          
       Em seguida, a maneira mais facil (e mais limpa) de ativar cada um dos consoles virtuais e          
       reiniciar o sistema. Mas se reiniciar o FreeBSD nao e a intenc,ao, basta desligar o servidor X,    
       sistema de interface grafica e executar (logado como root):                                        
                                                                                                          
       # kill -HUP 1                                                                                      
                                                                                                          
       E obrigatorio tirar por completo o X, sistema de interface grafica do ar antes de dar esse         
       comando, caso o X esteja sendo usado. Se isso nao for feito, o sistema vai parecer que travou.     
11.7.  Como posso acessar os consoles virtuais quando eu estiver no X?                                    
       Use Ctrl+Alt+Fn para alternar de volta para algum console virtual. Por exemplo, Ctrl+Alt+F1        
       retornaria ao primeiro console virtual.                                                            
                                                                                                          
       Uma vez de volta ao console textual, pode-se usar Alt+Fn normalmente, para alternar entre os       
       consoles virtuais.                                                                                 
                                                                                                          
       Pra voltar para sessao X basta alternar para o console virtual onde o X esta sendo executado. Caso 
       o X tenha sido iniciado por linha de comando (por exemplo, com o comando startx) a sessao tera     
       sido assimilada ao proximo console virtual fora de uso, e nao ao console onde o comando foi        
       digitado. Caso existam oito terminais virtuais ativos, o X estara sendo executado no nono. Nesse   
       caso as teclas Alt+F9 retornarao ao sistema grafico.                                               
11.8.  Como eu inicio o XDM no processo de inicializac,ao?                                                
       Existem duas formas classicas de iniciar o xdm. A primeira consiste em incia-lo a partir do        
       /etc/ttys (veja a pagina de manual do ttys(5)) usando o exemplo disponivel no arquivo; a segunda   
       forma e simplesmente executar o xdm a partir do rc.local (veja a pagina de manual do rc(8)) ou     
       entao por um script X.sh em /usr/local/etc/rc.d. As duas maneiras sao igualmente validas, mas      
       algumas podem ser mais eficientes em algumas situac,oes, onde a outra forma nao seria ideal. Nos   
       dois casos, o resultado sera o mesmo: o X iniciara o mostrando uma tela de login: grafica.         
                                                                                                          
       O metodo de inicializac,ao via ttys oferece a vantagem de definir explicitamente em qual vtyX o    
       servidor grafico vai ser carregado, passando a responsabilidade da reinicializac,ao do X para o    
       init, no momento do logout. O metodo via rc.local oferece facilidades caso seja necessario         
       encerrar o processo xdm, no caso, por exemplo, de ocorrerem problemas ao carregar o servidor       
       grafico.                                                                                           
                                                                                                          
       Ao usar o rc.local para carregar o xdm, ele nao deve ser acompanhado de nenhum argumento (deve ser 
       iniciado como um daemon e deve ser iniciado DEPOIS que o getty ja estiver em execussao, senao e    
       provavel que ocorram conflitos entre ambos, podendo travar o console. A melhor forma de assegurar  
       o correto funcionamento desse metodo e fazer com que o script espere 10 segundos (por exemplo, com 
       um sleep 10;) antes de iniciar o xdm.                                                              
                                                                                                          
       Se a intec,ao e iniciar o xdm a partir do /etc/ttys, ainda existe a probabilidade de conflitos     
       entre o xdm e o getty(8). Uma forma interessante de evitar esse tipo de desconforto, e definir, no 
       arquivo /usr/X11R6/lib/X11/xdm/Xservers, o numero do vt onde o X deve ser iniciado, da seguinte    
       forma:                                                                                             
                                                                                                          
       :0 local /usr/X11R6/bin/X vt4                                                                      
                                                                                                          
       O exemplo acima indica que o servidor X sera ativado no /dev/ttyv3. Note que existe um offset de   
       um vt, ja que o X comec,a a contar os terminais (vty) a partir do um, enquando o kernel do FreeBSD 
       os conta a partir do zero.                                                                         
11.9.  Por que eu enfrento um Couldn't open console ao executar o xconsole?                               
       Se o X for iniciado com um startx, as permissoes do /dev/console nao serao redefinidas, resultando 
       em situac,oes onde um xterm -C ou mesmo o xconsole nao funcionarao corretamente.                   
                                                                                                          
       O motivo disso e a forma como as permissoes sao definidas por padrao. Em sistemas multiusuario,    
       normalmente nao se espera que qualquer pessoa possa escrever no console do sistema. Para os        
       usuarios que estao se logando diretamente na maquina, em algum VTY, existe o arquivo fbtab(5) que  
       resolve esse tipo de problema.                                                                     
                                                                                                          
       Se for apropriado, garanta que exista uma linha assim                                              
                                                                                                          
       /dev/ttyv0 0600 /dev/console                                                                       
                                                                                                          
       No arquivo /etc/fbtab (veja a pagina de manual do fbtab(5)). Essa linha garantira que qualquer     
       usuario que se logar no /dev/ttyv0 sera tambem proprietario do console.                            
11.10. Antes eu conseguia usar o XFree86 com um usuario sem privilegios. Porque agora o servidor diz que  
       eu tenho que ser root?                                                                             
       Todo servidor grafico precisa ser executado como root para que o sistema permita acesso direto aos 
       equipamentos de video. Acontece que nas versoes mais antigas, o XFree86 (versoes <= 3.3.6)         
       instalava o servidor de forma que ele era automaticamente executado como root (setuid de root).    
       Obviamente esse comportamente implica em riscos de seguranc,a em qualquer caso onde o programa em  
       questao seja complexo e grande; esse e o caso dos servidores X. As versoes mais atuais do XFree86  
       nao instalam os servidores graficos com todo esse poder, exatamente por esse motivo.               
                                                                                                          
       E claro que rodar o X como usuario root nao e uma ideia muito aceitavel, especialmente em relac,ao 
       `a seguranc,a. Existem duas formas de usar o X como usuario comum. A primeira e usar o xdm ou      
       qualquer outro gerenciador de display (como o kdm); a segunda e usar o Xwrapper.                   
                                                                                                          
       O xdm e um daemon que controla logins graficos. Normalmente ele e iniciado no processo de          
       inicializac,ao e e responsavel pela autenticac,ao dos usuarios, e por inciar suas sessoes;         
       essencialmente e a uniao grafica do getty(8) como o login(1). Para mais informac,oes sobre o xdm,  
       por gentileza, refira-se `a documentac,ao do XFree86 e `a questao do FAQ sobre xdm.                
                                                                                                          
       O Xwrapper e um intermediador do servidor grafico; e um programa bem pequeno que possibilita a     
       inicializac,ao manual do servidor grafico por qualquer usuario, garantindo razoavel seguranc,a `a  
       operac,ao. O programa ainda faz algumas verificac,oes na linha de comando definida pelo usuario,   
       para garantir a sanidade das intenc,oes do mesmo. Se todas as intenc,oes forem aprovadas, ele      
       executa o X. Se por qualquer razao, a ideia de usar um gerenciador de displays nao te agrada, o    
       Xwrapper e feito para voce. Caso a colec,ao de Ports esteja instalada, o programa pode ser         
       encontrado em /usr/ports/x11/wrapper.                                                              
11.11. Por que meu mouse PS/2 nao se comporta corretamente no X?                                          
       O seu mouse e a device que o controla devem ter desincronizado.                                    
                                                                                                          
       Nas versoes 2.2.5 e anteriores, a simples alternancia entre o X e o terminal, e voltar para o X,   
       forc,a a resincronizac,ao do mouse. Se o problema se tornar frequente, adicione a seguinte opc,ao  
       ao arquivo de configurac,ao do seu kernel, e o recompile:                                          
                                                                                                          
       options PSM_CHECKSYNC                                                                              
                                                                                                          
       Veja a sec,ao sobre a compilac,ao do kernel, caso voce nao tenha experiencia com isso.             
                                                                                                          
       Com essa opc,ao as chances de ter problemas com a sincronia do mouse sao bem pequenas. Contudo, se 
       ainda assim o problema persistir, clique em qualquer botao durante o movimento do mouse. E o       
       bastante para resincroniza-lo.                                                                     
                                                                                                          
       Infelizmente essa opc,ao pode nao funcionar em alguns sistemas, dependendo de qual driver controle 
       o seu mouse PS/2; especialmente se a device de controle for do tipo ALPS GlidePoint.               
                                                                                                          
       Na versao 2.2.6 e posteriores, a verificac,ao de sincronia se tornou razoavelmente melhor, e e     
       padrao nos mouses PS/2. Deve funcionar corretamente com GlidePoint, inclusive (como o codigo de    
       verificac,ao de sincronia ter se tornado padrao, a opc,ao PSM_CHECKSYNC nao existe mais). Contudo, 
       em situac,oes muito raras, o driver de controle do mouse pode, erroneamente reportar problemas de  
       sincronizac,ao, mostrando a seguinte mensagem do kernel:                                           
                                                                                                          
       psmintr: out of sync (xxxx != yyyy)                                                                
                                                                                                          
       Pensando que seu mouse nao esta funcionando corretamente.                                          
                                                                                                          
       Se for o caso, desligue o codigo de verificac,ao de sincronia do mouse PS/2, definindo a flag      
       0x100 na device de controle do mesmo. Entre no modo UserConfig definindo a opc,ao -c na tela do    
       processo de inicializac,ao:                                                                        
                                                                                                          
       boot: -c                                                                                           
                                                                                                          
       Depois, na linha de comando do UserConfig, digite:                                                 
                                                                                                          
       UserConfig> flags psm0 0x100                                                                       
       UserConfig> quit                                                                                   
11.12. Por que meu mouse PS/2 da MouseSystems nao funciona?                                               
       Existem noticias que alguns modelos de mouse PS/2 da MouseSystems funcionam corretamente apenas em 
       modo de alta resoluc,ao. Do contrario, o cursor do mouse costuma pular para diagonal superior      
       esquerda da tela com certa frequencia.                                                             
                                                                                                          
       Infelizmente nao existe soluc,ao `a esse problema, nas versoes 2.0.X e 2.1.X. Contudo, das versoes 
       2.2 `a 2.2.5, basta aplicar o seguinte patch, no /sys/i386/isa/psm.c e recompilar o kernel. Veja a 
       sec,ao sobre compilac,ao do kernel caso nao tenha experiencia com o assunto.                       
                                                                                                          
       @@ -766,6 +766,8 @@                                                                                
            if (verbose >= 2)                                                                             
                log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",                                  
                    unit, i);                                                                             
       +    set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH);                                                
       +                                                                                                  
        #if 0                                                                                             
            set_mouse_scaling(sc->kbdc);        /* 1:1 scaling */                                         
            set_mouse_mode(sc->kbdc);                /* stream mode */                                    
                                                                                                          
       Na versao 2.2.6 e versoes posteriores, basta especificar a flag 0x04 para device de controle do    
       mouse PS/2, colocando-o em modo de alta resoluc,ao. Entre no modo UserConfig com a opc,ap -c na    
       tela do processo de inicializac,ao:                                                                
                                                                                                          
       boot: -c                                                                                           
                                                                                                          
       Depois, na linha de comando do UserConfig digite:                                                  
                                                                                                          
       UserConfig> flags psm0 0x04                                                                        
       UserConfig> quit                                                                                   
                                                                                                          
       Veja a pergunta anterior, sobre outra causa possivel de problemas com o mouse.                     
11.13. Ao compilar uma aplicac,ao X, o imake nao consegue encontrar o Imake.tmpl. Onde ele esta?          
       O Imake.tmpl e parte do pacote Imake, uma aplicac,ao padrao para construc,ao de aplicac,oes        
       graficas. O Imake.tmpl, assim como varios outros arquivos de cabec,alhos necessarios para compilar 
       aplicac,oes graficas, e parte da distribuic,ao do X. Eles podem ser instalados pelo sysinstall ou  
       manualmente a partir dos arquivos da distribuic,ao.                                                
11.14. Estou construindo uma aplicac,ao grafica que depende do XFree86 3.3.X, mas eu estou com o XFree86  
       4.X instalado. O que fazer?                                                                        
       Pra definir que a construc,ao do Port deve ser linkada `as bibliotecas do XFree86 4.X, adicione o  
       seguinte, no seu /etc/make.conf, (se o arquivo nao existir, crie-o):                               
                                                                                                          
       XFREE86_VERSION=        4                                                                          
11.15. Como posso inverter as func,oes dos botoes do mouse?                                               
       Execute o comando xmodmap -e "pointer = 3 2 1" `a partir do .xinitrc ou do .xsession.              
11.16. Como instalar uma Splash Screen e onde posso encontra-las?                                         
       A partir da lanc,amento do FreeBSD 3.1, uma nova caracteristica foi adicionada ao sistema,         
       permitindo que alguns arquivos de imagens sejam usados como "Splash Screens" durante as mensagens  
       do processo de inicializac,ao. Tais imagens devem ser arquivos do tipo bitmap com 256 cores        
       (*.BMP) ou entao ZSoft PCX (*.PCX). Devem ainda ter resoluc,ao de 320x200 pixels (ou menos), para  
       funcionarem corretamente em adaptadores de video VGA tradicionais. Caso o kernel tenha sido        
       compilado com suporte `a VESA, entao podem ser usados bitmaps maiores, ate 1024.768 px. O suporte  
       `a VESA pode ser diretamente compilado no kernel, com a opc,ao VESA no arquivo de configurac,ao,   
       ou carregado como modulo, com o kld, durante o processo de inicializac,ao do sistema.              
                                                                                                          
       Para definir a "Splash Screens", basta modificar alguns arquivos de inicializac,ao que controlam o 
       processo de inicializac,ao do FreeBSD. Tais arquivos foram alterados na versao 3.2 do FreeBSD,     
       existindo portanto duas formas de carregar uma "Splash Screens":                                   
                                                                                                          
         * No FreeBSD 3.1                                                                                 
                                                                                                          
           O primeiro passo e escolher o seu bitmap, e sua versao. Ate o FreeBSD 3.1, apenas os bitmaps   
           do tipo Windows eram suportados. Assim que escolher (ou criar) sua "Splash Screens", copie-a   
           para /boot/splash.bmp. Depois, basta editar (ou criar, caso nao exista) o arquivo              
           /boot/loader.rc e adicionar as seguintes linhas:                                               
                                                                                                          
        load kernel                                                                                       
        load -t splash_image_data /boot/splash.bmp                                                        
        load splash_bmp                                                                                   
        autoboot                                                                                          
                                                                                                          
         * No FreeBSD 3.2 e posteriores                                                                   
                                                                                                          
           Alem de adicionar suporte a "Splash Screens" de formato PCX, o FreeBSD 3.2 passou a oferecer   
           uma maneira mais interessante de configurar o processo de inicializac,ao. Caso prefira, o      
           metodo descrito acima, para o FreeBSD 3.1 tambem funciona. Nesse caso, se a imagem for do tipo 
           PCX basta substituir a entrada splash_bmp por splash_pcx. Caso queira usar a nova              
           configurac,ao do processo de inicializac,ao, basta criar um arquivo /boot/loader.rc com o      
           seguinte conteudo:                                                                             
                                                                                                          
        include /boot/loader.4th                                                                          
        start                                                                                             
                                                                                                          
           e depois, um /boot/loader.conf com o seguinte:                                                 
                                                                                                          
        splash_bmp_load="YES"                                                                             
        bitmap_load="YES"                                                                                 
                                                                                                          
           Essa configurac,ao assume que o /boot/splash.bmp deve ser usado como sua "Splash Screens".     
           Caso prefira usar um arquivo PCX, copie para o /boot/splash.pcx, e crie um /boot/loader.rc, da 
           forma como foi indicado anteriormente; depois crie um /boot/loader.conf com o seguinte:        
                                                                                                          
        splash_pcx_load="YES"                                                                             
        bitmap_load="YES"                                                                                 
        bitmap_name="/boot/splash.pcx"                                                                    
                                                                                                          
       Agora voce so precisa de uma imagem, para servir de "Splash Screens". Pra isso, de uma navegada na 
       galeria disponivel em http://www.baldwin.cx/splash/.                                               
11.17. Posso usar as teclas do Windows(R) que meu teclado possui, sob o X?                                
       Pode. Basta usar o xmodmap(1) para redefinir a func,ao das teclas.                                 
                                                                                                          
       Assumindo que todos os teclados "Windows(R)" sejam padrao, os codigos de mapeamento pras 3 teclas  
       sao:                                                                                               
                                                                                                          
         * 115 - Windows(R), entre a tecla Ctr e a Alt do lado esquerdo.                                  
                                                                                                          
         * 116 - Windows(R), `a direita a tecla AltGr.                                                    
                                                                                                          
         * 117 - Menu, do lado esquerdo da tecla Ctrl esquerda                                            
                                                                                                          
       Por exemplo, para fazer com que a tecla Windows(R) esquerda imprima uma virgula, fac,a o seguinte: 
                                                                                                          
       # xmodmap -e "keycode 115 = comma"                                                                 
                                                                                                          
       E provavel que seu gerenciador de janelas tenha que ser reiniciado, para visualizar o resultado.   
                                                                                                          
       Pra forc,ar o carregamento automatico do mapeamento das teclas Windows(R), coloque os comandos do  
       xmodmap no arquivo ~/.xinitrc ou de preferencia, crie um arquivo ~/.xmodmaprc e inclua as opc,oes  
       do xmodmap uma por linha, nesse arquivo. Depois adicione:                                          
                                                                                                          
       xmodmap $HOME/.xmodmaprc                                                                           
                                                                                                          
       No seu ~/.xinitrc.                                                                                 
                                                                                                          
       Por exemplo, pode-se mapear as 3 teclas em questao para fazer o papel das teclas F13, F14, e F15,  
       respectivamente. Dessa forma, seria facil mapear as aplicac,oes de forma que as teclas tivessem    
       ac,oes no seu sistema, como veremos agora.                                                         
                                                                                                          
       Adicione o seguinte conteudo, no arquivo ~/.xmodmaprc.                                             
                                                                                                          
       keycode 115 = F13                                                                                  
       keycode 116 = F14                                                                                  
       keycode 117 = F15                                                                                  
                                                                                                          
       Se o gerenciador de janelas em questao for o fvwm2, por exemplo, pode-se mapear as teclas de forma 
       que o F13 minimize (ou maximize) a janela que o cursor esta apontando, a tecla F14 de forma que    
       ela traga a janela marcada pelo cursor para frente (ou volte para tras, caso ja esteja `a frente), 
       e o F15 pode alternar o menu da area detrabalho principal, o que e bem util quando a tela nao e    
       visivel.                                                                                           
                                                                                                          
       As seguintes definic,oes no ~/.fvwmrc implementam a configurac,ao acima descrita:                  
                                                                                                          
       Key F13 FTIWS    A      Iconify                                                                    
       Key F14        FTIWS    A        RaiseLower                                                        
       Key F15        A        A        Menu Workplace Nop                                                
11.18. Como posso obter a acelerac,ao de equipamentos 3D para o OpenGL?                                   
       A disponibilidade da acelerac,ao 3D depende da versao do XFree86 e da placa de video. Caso a placa 
       seja NVIDIA, verifique a pagina da Iniciativa de Driver NVIDIA para o FreeBSD, que discute a       
       acelerac,ao 3D em chips NVIDIA com XFree86-4. Pra outras placas em conjunto com o XFree86-4,       
       incluindo a Matrox G200/G400, a ATI Rage 128/Radeon, as 3dfx Voodoo 3, 4, 5, e Banshee, refira-se  
       `a pagina sobre Renderizac,ao Direta do XFree86-4 no FreeBSD. Usuarios do XFree86 na versao 3.3    
       podem usar o port do Utah-GLX que pode ser encontrado em graphics/utah-glx para conseguir alguma   
       (limitada) acelerac,ao 3D para o OpenGL em placas Matrox Gx00, ATI Rage Pro, SiS 6326, i810,       
       Savage, e algumas NVIDIA antigas.                                                                  

                               Capitulo 12. Redes

   12.1. Onde obter informac,oes a respeito do processo de processo de
   inicializac,ao sem disco rigido (diskless booting)?

   12.2. Um sistema FreeBSD pode ser utilizado como roteador dedicado para
   uma rede?

   12.3. Posso conectar minha maquina com Win95 `a Internet, atraves do meu
   FreeBSD?

   12.4. O FreeBSD suporta SLIP e PPP?

   12.5. O FreeBSD suporta NAT ou Masquerading?

   12.6. Como posso conectar duas estac,oes FreeBSD por linha paralela,
   usando o PLIP?

   12.7. Por que eu nao posso criar um dispositivo /dev/ed0?

   12.8. Como eu configuro aliases (apelidos) de Ethernet?

   12.9. Como eu configuro minha placa 3Com 3C503 para utilizar outra
   interface de conexao ?

   12.10. Por que eu tenho problemas com NFS no FreeBSD?

   12.11. Por que nao e possivel montar sistemas de arquivos NFS de maquinas
   Linux?

   12.12. Por que nao e possivel montar sistemas de arquivos NFS de maquinas
   Sun?

   12.13. Por que o mountd informa repetidamente que can't change attributes
   e bad exports list utilizando o servidor de NFS do FreeBSD?

   12.14. Por que existem problemas na comunicac,ao (via protocolo PPP) com
   maquinas NeXTStep?

   12.15. Como habilitar o suporte a IP multicast?

   12.16. Quais interfaces de rede sao baseadas no chipset DEC PCI?

   12.17. Por que preciso utilizar um FQDN (Nomes de dominio completamente
   qualificados) pras estac,oes da minha rede?

   12.18. Por que obtenho o erro, Permission denied, para todas as operac,oes
   de rede?

   12.19. Qual o acrescimo de sobrecarga ocasionado pelo IPFW?

   12.20. Minha regra de fwd do IPFW, que deveria redirecionar um servic,o
   para outra estac,ao, nao esta funcionando. Por que?

   12.21. Como redirecionar requisic,oes de servic,o de uma maquina para
   outra?

   12.22. Onde obtenho uma ferramenta de gerenciamento de banda?

   12.23. O que causa o erro /dev/bpf0: device not configured?

   12.24. Como montar o disco de uma estac,ao Windows na minha rede, de forma
   semelhante ao smbmount em sistemas Linux?

   12.25. O que sao as mensagens sobre "icmp-response bandwidth limit 300/200
   pps" em meus registros de logs?

   12.26. Do que se trata estas mensagens de erro arp: unknown hardware
   address format?

   12.27. Acabei de instalar o CVSup, mas ao tentar usa-lo, aparecem erros. O
   que esta havendo?

12.1.  Onde obter informac,oes a respeito do processo de processo de inicializac,ao  
       sem disco rigido (diskless booting)?                                          
       O processo de processo de inicializac,ao sem disco implica na possibilidade   
       de uma maquina FreeBSD ser inicializada atraves da rede, lendo os arquivos    
       necessarios `a partir de um servidor, ao inves de um disco rigido. Para       
       maiores detalhes, por favor, consulte o item diskless booting no Manual do    
       FreeBSD.                                                                      
12.2.  Um sistema FreeBSD pode ser utilizado como roteador dedicado para uma rede?   
       Pode. Por gentileza, refira-se `a documentac,ao do Manual do FreeBSD sobre    
       configurac,oes avanc,adas de rede, mais especificamente, a sec,ao sobre       
       roteamento e gateways.                                                        
12.3.  Posso conectar minha maquina com Win95 `a Internet, atraves do meu FreeBSD?   
       Normalmente, as pessoas que propoem esse tipo de questao possuem dois         
       computadores em casa, um com FreeBSD e outro com Win95. A ideia e utilizar a  
       maquina com FreeBSD para se conectar `a Internet, e entao oferecer acesso     
       Internet a maquina Win95 atraves do FreeBSD. Essa e apenas uma extensao       
       especial da questao anterior.                                                 
                                                                                     
       ... e a resposta e sim! No FreeBSD 3.x, o ppp(8) em modo usuario oferece a    
       opc,ao -nat. Se o ppp(8) for executado com essa opc,ao, basta definir a       
       variavel gateway_enable para YES no arquivo /etc/rc.conf, e configurar        
       corretamente a maquina Windows. Isso e o bastante.                            
                                                                                     
       Para obter mais informac,oes, por gentileza, refira-se a pagina de manual do  
       ppp(8)                                                                        
                                                                                     
       Se o ppp(8) estiver sendo usado em modo kernel (kernel-mode) ou a conexao com 
       a Internet for via Ethernet, a opc,ao mais viavel sera utilizar o natd(8).    
       Por favor, consulte a sec,ao natd dessa documentac,ao.                        
12.4.  O FreeBSD suporta SLIP e PPP?                                                 
       Claro. Veja as paginas de manual do slattach(8), sliplogin(8), ppp(8), e      
       pppd(8). O ppp(8) e o pppd(8) oferecem suporte `a conexoes entrantes e de     
       saida (conexoes incoming/outgoing), enquanto o slattach(8) `a conexoes de     
       saida (outgoing).                                                             
                                                                                     
       Para obter mais informac,oes sobre a correta utilizac,ao desses recursos, por 
       gentileza, refira-se ao Capitulo sobre PPP e SLIP do Manual do FreeBSD.       
                                                                                     
       Se o seu acesso `a Internet for apenas por meio de uma conta Shell, pode ser  
       interessante dar uma olhada no port da aplicac,ao net/slirp. Esse port        
       oferece acesso (limitado) `a servic,os como FTP e HTTP direto da maquina      
       local.                                                                        
12.5.  O FreeBSD suporta NAT ou Masquerading?                                        
       Se no seu caso, existe uma subrede (uma ou mais maquinas locais               
       interconectadas em rede), mas o seu Provedor de Internet disponibiliza apenas 
       um IP (ou se o enderec,o IP em questao e dinamico), com certeza e             
       interessante dar uma olhada no natd(8). O natd(8) possibilita que uma subrede 
       inteira acesse a Internet atraves de um unico enderec,o IP.                   
                                                                                     
       O ppp(8) oferece suporte interno `a essa mesma funcionalidade, atraves da     
       opc,ao -nat do programa. A biblioteca libalias(3) e usada tanto pelo ppp(8)   
       quanto pelo natd(8).                                                          
12.6.  Como posso conectar duas estac,oes FreeBSD por linha paralela, usando o PLIP? 
       Por gentileza, refira-se `a sec,ao sobre PLIP do Manual do FreeBSD.           
12.7.  Por que eu nao posso criar um dispositivo /dev/ed0?                           
       Porque nao e preciso! Na estrutura de redes de Berkeley, as interfaces de     
       rede sao acessadas somente (e diretamente) pelo codigo do kernel. Por favor   
       verifique o arquivo /etc/rc.network e as paginas do manual para os diversos   
       programas de rede ali mencionados, para maiores informac,oes. Se isto         
       deixa-lo completamente confuso, consulte um livro que descreva a              
       administrac,ao de rede em um outro sistema operacional baseado no modelo BSD. 
       Com poucas excec,oes significativas, a administrac,ao de rede em sistemas     
       FreeBSD e basicamente a mesma da utilizada em sistemas como o SunOS 4.0 ou o  
       Ultrix.                                                                       
12.8.  Como eu configuro aliases (apelidos) de Ethernet?                             
       Se a intenc,ao e definir um apelido IP para uma subrede previamente           
       configurada, basta adicionar a mascara 0xffffffff junto `a sintaxe usual para 
       definic,ao de alias no ifconfig(8):                                           
                                                                                     
       # ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff                             
                                                                                     
       Do contrario, basta definir o enderec,o de rede e a netmask em questao, da    
       forma tradicional:                                                            
                                                                                     
       # ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00                          
12.9.  Como eu configuro minha placa 3Com 3C503 para utilizar outra interface de     
       conexao ?                                                                     
       Se voce deseja utilizar uma outra interface de conexao, devera especificar    
       alguns parametros adicionais na linha de comando do ifconfig(8). A porta      
       padrao e a link0. Para usar a porta AUI ao inves da porta BNC utilize a flag  
       link2. Tais flags devem ser definidas atraves das variaveis ifconfig_* no     
       arquivo /etc/rc.conf. (consulte o rc.conf(5)).                                
12.10. Por que eu tenho problemas com NFS no FreeBSD?                                
       Certas interfaces de rede para PC sao melhores do que outras (para adotarmos  
       um eufemismo) e as vezes podem causar problemas em aplicac,oes que utilizam a 
       rede de modo intensivo, como o NFS.                                           
                                                                                     
       Consulte o item NFS do Manual do FreeBSD para obter mais informac,oes sobre o 
       assunto.                                                                      
12.11. Por que nao e possivel montar sistemas de arquivos NFS de maquinas Linux?     
       Algumas versoes do codigo NFS do Linux aceitam requisic,oes de montagem       
       provenientes apenas de portas privilegiadas, experimente o comando:           
                                                                                     
       # mount -o -P linuxbox:/blah /mnt                                             
12.12. Por que nao e possivel montar sistemas de arquivos NFS de maquinas Sun?       
       Estac,oes de trabalho Sun rodando SunOS 4.X aceitam requisic,oes de montagem  
       provenientes apenas de portas privilegiadas, experimente o comando:           
                                                                                     
       # mount -o -P sunbox:/blah /mnt                                               
12.13. Por que o mountd informa repetidamente que can't change attributes e bad      
       exports list utilizando o servidor de NFS do FreeBSD?                         
       O problema mais frequ:ente e o nao entendimento correto do formato do arquivo 
       /etc/exports. Por gentileza, leia com atenc,ao a pagina de manual do          
       exports(5) e a documentac,ao sobre NFS no Manual do FreeBSD, especialmente a  
       sec,ao sobre a configurac,ao do NFS.                                          
12.14. Por que existem problemas na comunicac,ao (via protocolo PPP) com maquinas    
       NeXTStep?                                                                     
       Experimente desabilitar a variavel TCP extensions no arquivo /etc/rc.conf     
       (consulte rc.conf(5)) alterando a variavel abaixo para NO:                    
                                                                                     
       tcp_extensions=NO                                                             
                                                                                     
       Maquinas Annex da Xylogic tambem apresentam um problema similar neste         
       aspecto, e voce deve adotar a mesma soluc,ao para conectar-se a estes         
       sistemas.                                                                     
12.15. Como habilitar o suporte a IP multicast?                                      
       Desde o FreeBSD 2.0 que operac,oes Multicast sao completamente suportadas por 
       padrao. Se a itenc,ao e fazer o sistema FreeBSD atuar como um roteador        
       multicast, sera necessario que o kernel do sistema seja recompilado com a     
       opc,ao MROUTING e que o mrouted(8) seja executado. O FreeBSD, `a partir da    
       versao 2.2, pode iniciar o mrouted(8) durante o processo de inicializac,ao se 
       a variavel mrouted_enable estiver configurada com o parametro "YES" no        
       arquivo /etc/rc.conf.                                                         
                                                                                     
       As ferramentas MBONE estao disponiveis em sua propria categoria na colec,ao   
       de ports, mbone. Se voce esta procurando as ferramentas de conferencia vic e  
       vat, procure neste diretorio!                                                 
12.16. Quais interfaces de rede sao baseadas no chipset DEC PCI?                     
       Esta e uma lista compilada por Glen Foster <gfoster@driver.nsta.org>, com     
       algumas adic,oes recentes:                                                    
                                                                                     
       Tabela 12.1. Interfaces de rede baseadas no chipset DEC PCI                   
                                                                                     
       +---------------------------------------------------------------------------+ 
       |   Vendedor   |                           Modelo                           | 
       |--------------+------------------------------------------------------------| 
       | ASUS         | PCI-L101-TB                                                | 
       |--------------+------------------------------------------------------------| 
       | Accton       | ENI1203                                                    | 
       |--------------+------------------------------------------------------------| 
       | Cogent       | EM960PCI                                                   | 
       |--------------+------------------------------------------------------------| 
       | Compex       | ENET32-PCI                                                 | 
       |--------------+------------------------------------------------------------| 
       | D-Link       | DE-530                                                     | 
       |--------------+------------------------------------------------------------| 
       | Dayna        | DP1203, DP2100                                             | 
       |--------------+------------------------------------------------------------| 
       | DEC          | DE435, DE450                                               | 
       |--------------+------------------------------------------------------------| 
       | Danpex       | EN-9400P3                                                  | 
       |--------------+------------------------------------------------------------| 
       | JCIS         | Condor JC1260                                              | 
       |--------------+------------------------------------------------------------| 
       | Linksys      | EtherPCI                                                   | 
       |--------------+------------------------------------------------------------| 
       | Mylex        | LNP101                                                     | 
       |--------------+------------------------------------------------------------| 
       | SMC          | EtherPower 10/100 (Model 9332)                             | 
       |--------------+------------------------------------------------------------| 
       | SMC          | EtherPower (Model 8432)                                    | 
       |--------------+------------------------------------------------------------| 
       | TopWare      | TE-3500P                                                   | 
       |--------------+------------------------------------------------------------| 
       | Znyx (2.2.x) | ZX312, ZX314, ZX342, ZX345, ZX346, ZX348                   | 
       |--------------+------------------------------------------------------------| 
       | Znyx (3.x)   | ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444,       | 
       |              | ZX474, ZX478, ZX212, ZX214 (10mbps/hd)                     | 
       +---------------------------------------------------------------------------+ 
12.17. Por que preciso utilizar um FQDN (Nomes de dominio completamente              
       qualificados) pras estac,oes da minha rede?                                   
       Provavelmente voce vai estar trabalhando com estac,oes em dominios            
       diferentes. Por exemplo, se voce esta em foo.bar.edu e deseja alcanc,ar uma   
       estac,ao chamada mumble no dominio foo.bar.edu, devera referir-se `a essa     
       esse host atraves do seu nome de dominio qualificado, mumble.foo.bar.edu, ao  
       inves de apenas mumble.                                                       
                                                                                     
       Normalmente era possivel alcanc,ar a estac,ao apenas por seu nome. Essa       
       func,ao era realizada pelos resolvedores BIND do ISC. Contudo, as versoes     
       atuais do BIND (veja o named(8)) que acompanham o FreeBSD nao oferecem mais   
       abreviac,oes padrao para dominios que nao sejam FQDN, com a unica excec,ao do 
       dominio que sua propria estac,ao faz parte. Dessa forma, o host mumble, se    
       nao for localizado como mumble.foo.bar.edu, sera localizado atraves de uma    
       busca direta `a partir da raiz dos servidores de resoluc,ao.                  
                                                                                     
       Este comportamento e diferente do verificado anteriormente onde a pesquisa    
       continuaria atraves de mumble.bar.edu e mumble.edu. Consulte a RFC 1535 para  
       descobrir porque isso e considerado uma pratica ruim, e ate mesmo uma brecha  
       de seguranc,a.                                                                
                                                                                     
       Uma alternativa e adicionar a linha abaixo:                                   
                                                                                     
       search foo.bar.edu bar.edu                                                    
                                                                                     
       ao inves da linha previamente existente                                       
                                                                                     
       domain foo.bar.edu                                                            
                                                                                     
       em seu arquivo /etc/resolv.conf (consulte resolv.conf(5)). Contudo verifique  
       se a ordem de pesquisa nao vai alem da fronteira entre a administrac,ao       
       publica e a local, conforme definido na RFC 1535.                             
12.18. Por que obtenho o erro, Permission denied, para todas as operac,oes de rede?  
       Se o kernel do seu FreeBSD foi compilado com a opc,ao IPFIREWALL, voce deve   
       compreender que a politica padrao, `a partir da versao 2.1.7 (atualmente      
       alterada durante o desenvolvimento da versao 2.1-STABLE) e negar todos os     
       pacotes que nao forem explicitamente permitidos.                              
                                                                                     
       A seu firewall foi erroneamente configurado, de forma nao intencional, a      
       operacionalidade do sistema pode ser restaurada, simplesmente digitando o     
       seguinte (conectado como root):                                               
                                                                                     
       # ipfw add 65534 allow all from any to any                                    
                                                                                     
       A variavel firewall_type="open" tambem pode ser definida, no arquivo          
       /etc/rc.conf.                                                                 
                                                                                     
       Para maiores informac,oes sobre a configurac,ao de firewall, por gentileza,   
       consulte a sec,ao correspondente no Manual do FreeBSD.                        
12.19. Qual o acrescimo de sobrecarga ocasionado pelo IPFW?                          
       Por gentileza, refira-se ao capitulo sobre Firewalls do Manual do FreeBSD     
       mais especificamente, a sec,ao sobre Overhead & Otimizac,ao do IPFW.          
12.20. Minha regra de fwd do IPFW, que deveria redirecionar um servic,o para outra   
       estac,ao, nao esta funcionando. Por que?                                      
       Provavelmente porque a verdadeira intenc,ao e traduzir os pacotes que chegam  
       na sua estac,ao, e rescreve-los para renviar para a outra maquina, e nao      
       simplesmente redirecionar o pacote. Normalmente o ideal e fazer NAT           
       (traduc,ao de enderec,os de rede). Uma regra de reenvio de pacotes, faz       
       exatamente o que ela deve fazer: reenviar pacotes. As regras nao alteram      
       (rescrevem) o conteudo ou cabec,alhos dos dados presentes no pacote. Por      
       exemplo, digamos que a questao seja a seguinte regra:                         
                                                                                     
       01000 fwd 10.0.0.1 from any to foo 21                                         
                                                                                     
       Quando um pacote destinado `a estac,ao foo chegar no FreeBSD que filtra essa  
       regra, ele sera encaminhado para a maquina cujo enderec,o IP e 10.0.0.1, mas  
       o enderec,o de destino original do pacote sera mantido, ou seja, os pacotes   
       chegando em 10.0.0.1 ainda terao a estac,ao foo como destino final, marcado   
       em seu cabec,alho TCP. O enderec,o de destino nao e alterado (reescrito) para 
       a maquina 10.0.0.1, o que propicia um comportamento de verificac,ao de        
       checksum do cabec,alho IP. O comportamento normal e que a maquina 10.0.0.1    
       descarte o pacote, ja que o enderec,o de destino do mesmo nao e o enderec,o   
       da estac,ao em questao. Esse comportamento costuma confundir alguns usuarios  
       menos experientes, nao correspondendo a ac,ao com suas expectativas. Essa e   
       uma caracteristica do IPFW, e nao um problema.                                
                                                                                     
       Consulte o FAQ sobre Redirecionamento de Servic,os, a pagina de manual do     
       natd(8), ou uma das diversas ferramentas de redirecionamento disponiveis na   
       Colec,ao de Ports, para verificar a forma correta de obter o comportamento    
       desejado.                                                                     
12.21. Como redirecionar requisic,oes de servic,o de uma maquina para outra?         
       Servic,os como FTP (e outros) podem ser redirecionados com o pacote socket,   
       disponivel na arvore de Colec,ao do Ports, sob a categoria "sysutils".        
       Simplesmente substitua a linha de comando do servic,o a ser redirecionado     
       para executar a ferramenta socket, como no exemplo abaixo:                    
                                                                                     
       ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.example.com ftp 
                                                                                     
       Onde ftp.foo.com e ftp sao a maquina (host) e a porta de conexao que sera     
       utilizada para o redirecionamento, respectivamente.                           
12.22. Onde obtenho uma ferramenta de gerenciamento de banda?                        
       Existem tres ferramentas de gerenciamento de banda disponiveis para o         
       FreeBSD. O dummynet(4), integrada ao FreeBSD (ou mais especificamente ao      
       ipfw(4));, o ALTQ, disponivel gratuitamente, e o Bandwidth Manager da         
       Emerging Technologies, um produto comercial.                                  
12.23. O que causa o erro /dev/bpf0: device not configured?                          
       Voce esta tentando usar um programa que precisa do Berkeley Packet Filter     
       (veja a pagina de manual do bpf(4) para obter maiores informac,oes), mas ele  
       nao esta compilado no kernel. Adicione a seguinte linha no arquivo de         
       configurac,ao do seu kernel e recompile-o:                                    
                                                                                     
       pseudo-device bpf        # Berkeley Packet Filter                             
                                                                                     
       Depois que reiniciar o sistema com o novo kernel, basta criar a interface do  
       dispositivo, o que pode ser feito ao executar o seguinte comando, no          
       diretorio /dev:                                                               
                                                                                     
       # sh MAKEDEV bpf0                                                             
                                                                                     
       Por gentileza, refira-se `a sec,ao sobre Criac,ao de interface de             
       Dispositivos do Manual do FreeBSD, para obter mais informac,oes sobre o       
       assunto.                                                                      
12.24. Como montar o disco de uma estac,ao Windows na minha rede, de forma           
       semelhante ao smbmount em sistemas Linux?                                     
       Use o conjunto de ferramentas SMBFS. Se trata de um conjunto de modificac,oes 
       no kernel, e uma serie de aplicac,oes especificas. O programa e outras        
       informac,oes podem ser obtidos na Colec,ao de Ports do FreeBSD, em net/smbfs, 
       ou no sistema base do FreeBSD a partir da versao 4.5-RELEASE.                 
12.25. O que sao as mensagens sobre "icmp-response bandwidth limit 300/200 pps" em   
       meus registros de logs?                                                       
       E o resultado de seu kernel informando-o que alguma atividade esta provocando 
       o envio de um numero de respostas ICMP ou TCP reset (RST) superior ao numero  
       que o kernel julga adequado. Respostas ICMP sao, geralmente, comportamento    
       ocasionado pela tentativa de conexao em portas UDP nao utilizadas. As         
       respostas TCP reset sao o resultado gerado pelas tentativas de conexao em     
       portas TCP nao poniveis. Entre outras causas, algumas das atividades que      
       podem ocasionar esse tipo de mensage, sao:                                    
                                                                                     
         * Ataques de negac,ao de servic,o (DoS) por forc,a bruta (em oposic,ao a    
           ataques baseados em um unico pacote que visa explorar uma vulnerabilidade 
           especifica).                                                              
                                                                                     
         * Varreduras de porta (port scans) que visam rastrear um elevado numero de  
           portas (em oposic,ao a ataques que tentam varrer apenas um pequeno numero 
           de portas conhecidas).                                                    
                                                                                     
       O primeiro numero (valor) na mensagem indica quantos pacotes foram enviados   
       pelo kernel antes do limite passar a vigorar e o segundo valor indica o       
       limite estabelecido no kernel. Voce pode controlar este limite atraves da     
       variavel net.inet.icmp.icmplim do sysctl com instruc,oes como esta abaixo,    
       onde estabelecemos um limite de 300 pacotes por segundo:                      
                                                                                     
       # sysctl -w net.inet.icmp.icmplim=300                                         
                                                                                     
       Se a intenc,ao e nao registrar essas mensagens nos arquivos de registros, mas 
       ainda assim manter a capacidade do kernel limitar as respostas, a variavel    
       net.inet.icmp.icmplim_output do sysctl pode ser usada para desabilitar o      
       registro:                                                                     
                                                                                     
       # sysctl -w net.inet.icmp.icmplim_output=0                                    
                                                                                     
       Finalmente se a intec,ao e desabilitar esse comportamento por completo, basta 
       definir a variavel net.inet.icmp.icmplim do sysctl (conforme o exemplo acima) 
       como 0. Desabilitar o recurso de limite de resposta e desencorajado pelas     
       razoes acima expostas.                                                        
12.26. Do que se trata estas mensagens de erro arp: unknown hardware address format? 
       Significa que alguma interface de rede no mesmo barramento Ethernet que voce, 
       esta usando um enderec,o de MAC cujo formato nao e reconhecido pelo FreeBSD.  
       Provavelmente isso deve estar sendo causado por algum outro usuario, fazendo  
       experiencias com placas Ethernet em algum lugar na sua mesma rede. Em redes   
       com Cable Modens esse comportamento e ainda mais comum; nao e prejudicial e   
       nao atrapalha a performance do seu FreeBSD.                                   
12.27. Acabei de instalar o CVSup, mas ao tentar usa-lo, aparecem erros. O que esta  
       havendo?                                                                      
       Primeiro, verifique se as mensagens de erro em questao sao como essas:        
                                                                                     
       /usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found               
                                                                                     
       Esse tipo de erro se deve `a instalac,ao do port net/cvsup em estac,oes sem o 
       XFree86. Se a intec,ao e usar a interface grafica oferecida pelo CVSup, entao 
       instale o XFree86 imediatamente. Do contrario, se a intenc,ao e usar o CVSup  
       apenas por linha de comando, basta desinstalar a aplicac,ao anterior e        
       instalar o port net/cvsup-without-gui. A sec,ao sobre CVSup do Manual do      
       FreeBSD cobre essas questoes de forma mais detalhada.                         

                            Capitulo 13. Seguranc,a

   13.1. O BIND (named) esta escutando na porta 53 e em outras portas
   elevadas. O que esta havendo?

   13.2. O Sendmail esta ouvindo na porta 587 alem da tradicional porta 25! O
   que esta havendo?

   13.3. O que e a conta do usuario toor que tem UID 0? Meu sistema foi
   comprometido?

   13.4. Por que o suidperl nao esta funcionando corretamente?

   13.1. O BIND (named) esta escutando na porta 53 e em outras portas         
         elevadas. O que esta havendo?                                        
         O FreeBSD, a partir da versao 3.0, utiliza portas nao privilegiadas  
         e elevadas, aleatoriamente, para responder `a requisic,oes de DNS.   
         Se a intenc,ao e usar a porta 53 para responder a estas              
         requisic,oes, para adequar o comportamento do BIND `a um firewall ou 
         apenas para sentir-se melhor, experimente acrescentar a instruc,oo   
         abaixo no arquivo /etc/namedb/named.conf:                            
                                                                              
         options {                                                            
                     query-source address * port 53;                          
                     };                                                       
                                                                              
         O * deve ser substituido por um enderec,o IP unico, caso se deseje   
         restringir ainda mais este comportamento.                            
                                                                              
         De qualquer forma, parabens. E uma pratica saudavel verificar        
         registros nao usuais no conteudo de saida do sockstat(1)             
   13.2. O Sendmail esta ouvindo na porta 587 alem da tradicional porta 25! O 
         que esta havendo?                                                    
         As versoes mais novas do Sendmail tem suporte `a uma caracteristica  
         que se chama Mail Submission, que ouve na porta 587. Esse servic,o   
         nao e completamente suportado ainda, mas sua popularidade vem        
         crescendo.                                                           
   13.3. O que e a conta do usuario toor que tem UID 0? Meu sistema foi       
         comprometido?                                                        
         Nao se preocupe. O usuario toor e uma conta "alternativa" com        
         poderes de super usuario (toor e root escrito ao contrario).         
         Normalmente esse usuario era criado quando o interpretador de        
         comandos bash(1) era instalado, mas agora o usuario existe por       
         padrao no sistema. A intenc,ao e que o usuario seja usado com um     
         interpretador de comandos fora do padrao, de forma que o ambiente de 
         linha de comando do usuario root nao tenha que ser alterada. Essa e  
         uma situac,ao importante quando nos referimos `a interpretadores de  
         comandos que nao fazem parte da base do sistema operacional (por     
         exemplo, que foram instaladas do Ports ou como pacotes, ja que       
         normalmente, elas sao instaladas sob o /usr/local/bin que por padrao 
         esta em um sistema de arquivos diferente da raiz do sistema. Em uma  
         situac,ao onde o interpretador de comandos do usuario estiver sob    
         /usr/local/bin ou sob /usr (ou onde quer que seja) e esse sistema de 
         arquivos nao puder ser montado por alguma razao, o usuario root      
         estara impossibilitado de se logar no sistema para corrigir o        
         problema (contudo, ao entrar em modo mono tarefa, o sistema pede o   
         caminho completo para algum interpretador de comandos.               
                                                                              
         Alguns administradores costumam usar o toor para tarefas do          
         dia-a-dia, com um interpretador de comandos (shell) nao comum, e     
         deixando o root com seu interpretador de comandos (shell) padrao     
         para realizar tarefas de emergencia ou de modo mono usuario. Por     
         padrao, o usuario toor nao pode ser usado, ja que ele nao tem uma    
         senha definida. Para habilitar a conta, logue-se como root no        
         sistema e defina uma senha para o toor.                              
   13.4. Por que o suidperl nao esta funcionando corretamente?                
         Por motivos de seguranc,a, a instalac,ao padrao do suidperl nao tem  
         o bit suid definido. Os administradores de sistemas podem reaver o   
         comportamento esperado com o seguinte comando:                       
                                                                              
         # chmod u+s /usr/bin/suidperl                                        
                                                                              
         Se a intenc,ao e que o suidperl seja compilado com suid durante as   
         atualizac,oes do sistema, edite o /etc/make.conf e adicione a linha  
         ENABLE_SUIDPERL=true no arquivo, antes de comec,ar um make           
         buildworld.                                                          

                                Capitulo 14. PPP

   14.1. Nao consigo fazer meu ppp(8) funcionar. O que estou fazendo de
   errado?

   14.2. Por que o ppp(8) fica pendurado quando eu o inicializo?

   14.3. Porque o ppp(8) nao disca em modo-auto

   14.4. O que No route to host significa?

   14.5. Porque minha conexao cai depois de (em media) 3 minutos?

   14.6. Por que minha conexao cai quando esta sobrecarregada?

   14.7. Por que minha conexao cai apos um periodo aleatorio de tempo?

   14.8. Por que minha conexao fica pendurada depois de um periodo aleatorio
   de tempo?

   14.9. A extremidade remota nao esta respondendo. O que eu posso fazer?

   14.10. O ppp(8) esta travado. O que eu posso fazer?

   14.11. Por que nao acontece nada depois da mensagem "Login OK!"?

   14.12. Eu vejo os mesmos erros sobre magic is the same. O que significa?

   14.13. As negociac,oes LCP continuam ate que a conexao seja fechada. O que
   esta errado?

   14.14. Por que o ppp(8) trava logo apo a conexao?

   14.15. Por que o ppp(8) trava quando executo comandos shell pelo ppp(8)?

   14.16. Como uma conexao por ppp(8) usando um nunca termina?

   14.17. Por que o ppp(8) disca sem nenhuma razao no modo -auto?

   14.18. O que estes erros de CCP significam?

   14.19. Por que o ppp(8) trava durante a transferencia de arquivo com erros
   de IO(Input/Output)?

   14.20. Por que o ppp(8) nao loga minha velocidade de conexao?

   14.21. Por que o ppp(8) ignora o caracter \ no meu script de conversac,ao?

   14.22. Por que o ppp(8) da um seg-fault, mas eu nao vejo nenhum arquivo
   ppp.core?

   14.23. Por que o processo que forc,a a discagem em auto mode nunca
   conecta?

   14.24. Por que a maioria dos jogos nao funciona com a opc,ao -nat?

   14.25. Alguem fez uma lista de numero de portas uteis?

   14.26. O que sao erros FCS?

   14.27. Por que a conexao do MacOS e Windows98 travam ao rodar o PPPoE no
   gateway?

   14.28. Nada disso me ajudou - Eu estou desesperado! O que eu posso fazer?

14.1.  Nao consigo fazer meu ppp(8) funcionar. O que estou fazendo de errado?          
       Deve-se primeiro ler a man page do ppp(8) e sec,ao PPP do Manual do FreeBSD.    
       Habilite os logs com o comando                                                  
                                                                                       
       set log Phase Chat Connect Carrier lcp ipcp ccp command                         
                                                                                       
       Este comando pode ser digitado no prompt do ppp(8) ou pode ser colocado no      
       /etc/ppp/ppp.conf (A sec,ao default no inicio do arquivo e o melhor lugar para  
       colocar isso). Tenha certeza de que seu/etc/syslog.conf (veja syslog.conf(5))   
       tenha as linhas                                                                 
                                                                                       
       !ppp *.*/var/log/ppp.log                                                        
                                                                                       
       e que o arquivo /var/log/ppp.log exista. Agora pode-se ver o que esta           
       acontecendo analisando seu arquivo de log. Nao se preocupe se isso nao faz      
       sentido mas se precisar de ajuda, esta informac,ao fara sentido a eles.         
                                                                                       
       Se a sua versao do ppp(8) nao suporta o comando set log ,deve-se fazer o        
       download da versao mais recente. O FreeBSD 2.1.5 (e posteriores) suporta a      
       compilac,ao do codigo mais recente.                                             
14.2.  Por que o ppp(8) fica pendurado quando eu o inicializo?                         
       Isso normalmente acontece porque seu hostname nao esta sendo resolvido. A       
       melhor maneira de corrigir isso e certificar-se de que o /etc/hosts esta sendo  
       consultado pelo resolvedor; editando primeiro o /etc/host.conf e colocando      
       hosts na primeira linha. Para isso, simplesmente adicione no /etc/hosts/ uma    
       entrada para sua maquina local. Se nao tem nenhuma rede local, mude a linha do  
       localhost:                                                                      
                                                                                       
       127.0.0.1        foo.example.com foo localhost                                  
                                                                                       
       Senao, adicione uma outra entrada para seu host. Consulte as man pages          
       relevantes para maiores detalhes.                                               
                                                                                       
       Ao terminar, deve ser possivel dar um ping -c1 `nomedohost` com sucesso.        
14.3.  Porque o ppp(8) nao disca em modo-auto                                          
       Primeiro verifique se ha uma rota padrao. Ao executar um netstat -rn (veja      
       netstat(1)), devem aparecer duas entradas como essas:                           
                                                                                       
       Destination        Gateway            Flags     Refs     Use     Netif Expire   
       default            10.0.0.2           UGSc        0        0      tun0          
       10.0.0.2           10.0.0.1           UH          0        0      tun0          
                                                                                       
       Assume-se o uso do enderec,o recomendado pelo Manual do FreeBSD, paginas de     
       manual ou no arquivo ppp.conf.sample. Se a rota padrao nao foi definida, e      
       possivel que a versao do ppp(8) seja antiga, uma vez que nao entendem a palavra 
       HISADDR no arquivo ppp.conf. Se a versao do seu FreeBSD for anterior a 2.2.5,   
       mude a linha                                                                    
                                                                                       
       add 0 0 HISADDR                                                                 
                                                                                       
       para                                                                            
                                                                                       
       add 0 0 10.0.0.2                                                                
                                                                                       
       Outra razao para a rota padrao estar ausente, pode ser porque voce              
       equivocadamente definiu uma rota default em seu arquivo /etc/rc.conf (veja      
       rc.conf(5)) (este arquivo era chamado /etc/sysconfig nas versoes anteriores a   
       2.2.2) e omitiu a linha                                                         
                                                                                       
       delete ALL                                                                      
                                                                                       
       no ppp.conf. Se este for o problema, volte para sec,ao de configurac,oes Finais 
       do Manual do FreeBSD.                                                           
14.4.  O que No route to host significa?                                               
       Este erro e causado pela falta das linhas                                       
                                                                                       
       MYADDR:                                                                         
         delete ALL                                                                    
         add 0 0 HISADDR                                                               
                                                                                       
       no seu arquivo /etc/ppp/ppp.linkup. Isso somente e necessario se voce tem um IP 
       dinamico ou nao sabe o enderec,o do seu gateway. Se voce esta usando o modo     
       interativo, pode-se digitar o seguinte, depois de ter entrado no modo packet (O 
       modo packet e indicado pelo PPP maiisculo no prompt):                           
                                                                                       
       delete ALL                                                                      
       add 0 0 HISADDR                                                                 
                                                                                       
       Consulte a sec,ao PPP e Enderec,os IPs dinamicos do Manual do FreeBSD para      
       maiores detalhes                                                                
14.5.  Porque minha conexao cai depois de (em media) 3 minutos?                        
       O default timeout do PPP e de 3 minutos. Isso pode ser ajustado com a linha     
                                                                                       
       set timeout NNN                                                                 
                                                                                       
       Onde NNN e o numero em segundos de inatividade antes da conexao ser fechada. Se 
       NNN e zero a conexao nunca sera fechada devido a um timeout. E possivel colocar 
       esse comando no ppp.conf ou digita-lo no modo interativo. Tambem e possivel que 
       isso seja ajustado enquanto sua conexao esta ativa conectando pelo socket do    
       servidor ppp usando telnet(1) ou pppctl(8). Consulte a man page do ppp(8) para  
       maiores detalhes.                                                               
14.6.  Por que minha conexao cai quando esta sobrecarregada?                           
       Se voce tem o relatorio da qualidade da ligac,ao (opc,ao LPR) configurado e     
       possivel que muitos pacotes LQR entre sua maquina e a origem estejam sendo      
       perdidos. O ppp deduz que sua linha deve ser ruim e desconecta. Antes da versao 
       2.2.5 do FreeBSD, o LQR era habilitado por default. Agora ele e desabilitado    
       por default. O LQR pode ser desabilitado com a linha                            
                                                                                       
       disable lqr                                                                     
14.7.  Por que minha conexao cai apos um periodo aleatorio de tempo?                   
       As vezes, em uma linha telefonica com ruidos, ou quando a linha tem espera de   
       ligac,oes, seu modem pode desligar, pensando (incorretamente) que perdeu o      
       sinal de linha.                                                                 
                                                                                       
       Existem ajustes em grande parte dos modems determinando o quao tolerante ele    
       deve ser a respeito de perdas de sinal de linha. No USR Sportster, por exemplo, 
       isso e medido pelo registrador S10 em decimos de segundo. Para fazer com que    
       seu modem nao caia, poderia-se adicionar a seguinte string dial up para         
       envio/espera:                                                                   
                                                                                       
       set dial "...... ATS10=10OK......"                                              
                                                                                       
                                                                                       
       Consulte o manual do seu modem para detalhes.                                   
14.8.  Por que minha conexao fica pendurada depois de um periodo aleatorio de tempo?   
       Muitas pessoas experimentam conexoes presas sem aparentemente nenhuma           
       explicac,ao.                                                                    
                                                                                       
       Se voce usa um modem externo, voce simplesmente pode tentar um ping(8) para ver 
       se a luz TD fica piscando quando voce transmite dados. Se piscar (e a luz do RD 
       nao), o problema e com a extremidade remota. Se o TD nao piscar, o problema e   
       local. Com um modem interno voce precisara usar o comando set server no seu     
       arquivo ppp.conf. Quando ocorrer de cair, conecte com o ppp(8) usando o         
       pppctl(8). Se a conexao de sua rede voltar de repente (o ppp voltou devido a    
       atividade no diagnostico do socket) ou se voce nao consegue conectar (assumindo 
       que o comando set socket foi iniciado com sucesso) o problema e local. Se voce  
       puder conectar e ainda as coisas estiverem "penduradas" habilite os logs do     
       async local com o comando set log local async e use o ping(8) de outra janela   
       ou terminal para forc,ar a atividade da conexao. Os logs async irao mostrar os  
       dados que estao sendo transmitidos e recebidos durante a ligac,ao. Se os dados  
       estao indo e nao estao voltando, o problema e remoto.                           
                                                                                       
       Tendo estabelecido que o problema e local ou remoto, voce tem agora duas        
       possibilidades:                                                                 
                                                                                       
         * Se o problema e remoto, leia a secc,ao P: 14.9.                             
                                                                                       
         * Se o problema for remoto, leia a secc,ao P: 14.10.                          
14.9.  A extremidade remota nao esta respondendo. O que eu posso fazer?                
       Ha muito pouco que pode ser feito em relac,ao a isso. A maioria dos provedores  
       irao recusar ajuda-lo se voce nao usar o Windows. Voce pode habilitar a lqr no  
       seu arquivo ppp.conf, permitindo ao ppp(8) detectar a falha remota e            
       desligar-se, mas essa detecc,ao e relativamente lenta e consequentemente        
       inutil. Pode-se querer evitar dizer ao seu provedor que voce esta rodando o     
       user-ppp....                                                                    
                                                                                       
       Primeiro tente desabilitar toda compressao local adicionando o seguinte em sua  
       configurac,ao:                                                                  
                                                                                       
       disable pred1 deflate deflate24 protocomp acfcomp shortseq vj                   
       deny pred1 deflate deflate24 protocomp acfcomp shortseq vj                      
                                                                                       
       Entao reconecte para assegurar de que isso nao fez diferenc,a. Se as coisas     
       melhoraram ou se o problema foi resolvido completamente, determine quais        
       ajustes fizeram a diferenc,a atraves de tentativas e erros. Isto fornecera uma  
       boa cartada quando voce contactar seu provedor (embora possa parecer que voce   
       nao esteja rodando um produto Microsoft).                                       
                                                                                       
       Antes de contactar seu provedor, habilite o log async localmente e aguarde ate  
       que sua conexao caia novamente. Isto pode usar um bocado de espac,o em disco. A 
       ultima leitura de dados da porta pode ser de seu interesse. Sao geramente dados 
       em ascii, e podem mesmo descrever o problema ("Memory fault, core dumped"?).    
                                                                                       
       Se seu provedor for prestativo, ele deve ser capaz de habilitar o log da        
       extremidade da conexao dele, entao quando a proxima queda de link ocorrer, eles 
       podem ser capazes de dizer porque o seu lado esta tendo problemas. Sinta-se     
       livre para enviar os detalhes para Brian Somers ou pec,a para seu provedor      
       contacta-lo diretamente.                                                        
14.10. O ppp(8) esta travado. O que eu posso fazer?                                    
       A melhor coisa a fazer aqui e recompilar o ppp(8) adicionando CFLAGS+=-g e      
       STRIP= no final do Makefile, depois fac,a make clean && make && make install.   
       Quando o ppp(8) ficar travado, procure o id do processo com um ps ajxww | fgrep 
       ppp e execute gdb ppp PID. No prompt do gdb voce pode entao usar o bt para      
       obter um rastreamento da pilha.                                                 
                                                                                       
       Envie os resultados para: <brian@Awfulhak.org>.                                 
14.11. Por que nao acontece nada depois da mensagem "Login OK!"?                       
       Antes da versao 2.2.5 do FreeBSD, uma vez que a conexao foi estabelecida, o     
       ppp(8) espera que o modem remoto inicie o protocolo do controle de linha (LCP), 
       Muitos provedores nao iniciarao a negociac,ao e esperarc,ao que o cliente a     
       fac,a. Para forc,ar o ppp(8) para iniciar o LCP, use a seguinte linha:          
                                                                                       
       set openmode active                                                             
                                                                                       
         Nota:                                                                         
                                                                                       
       Nota: isto geralmente nao prejudica em nada se a negociac,ao for iniciada por   
       ambos os lados, assim, a opc,ao openmode e agora ativada por padrao.            
       Entretanto, na proxima sec,ao sera explicado quando isso realmente proporciona  
       algum problema.                                                                 
14.12. Eu vejo os mesmos erros sobre magic is the same. O que significa?               
       Ocasionalmente, depois da conexao, voce pode ver mensagens no log dizendo       
       ""magic is the same"". As vezes essas mensagens sao sem importancia e as vezes  
       um lado ou o outro sai. A maioria das implementac,oes do ppp nao consegue       
       continuar com esse problema, e mesmo se a conexao estiver para ser              
       estabelecida, voce vera repetidas requisic,oes de configurac,ao e               
       reconhecimentos de configurac,ao no arquivo de log ate que o ppp(8)             
       eventualmente desista e feche a conexao.                                        
                                                                                       
       Isto normalmente acontece em maquinas com discos lentos que estao dando         
       spawning getty na porta e executam o ppp(8) atraves de um login script ou       
       programa depois do login. Eu tambem ouvi relatorios disso estar acontecendo     
       consistentemente ao usar slirp. A razao e que no tempo entre saida do getty(8)  
       e a inicializac,ao do ppp(8), o ppp(8) do lado cliente comec,a a emitir pacotes 
       do protocolo do controle da linha LCP). Porque o ECHO ainda esta ligado na      
       porta do servidor, o cliente entao ve esses pacotes serem "refletidos" de       
       volta.                                                                          
                                                                                       
       Uma parte da negociac,ao LCP deve estabelecer um numero magico para cada lado   
       da ligac,ao de modo que as "reflexoes" possam ser detectadas. O protocolo diz   
       que quando um ponto tenta negociar o mesmo numero magico, um NAK deve ser       
       emitido e um novo numero magico deve ser escolhido. Durante o periodo que a     
       porta do server tem o ECHO ligado, o ppp(8) cliente manda pacotes LCP, ve o     
       mesmo numero magico nos pacotes refletidos e manda NAKs a ele. Ve-se tambem o   
       NAK que foi refletido (que significa que o ppp(8) deve mudar o seu numero       
       magico). Isto produz um numero potencialmente enorme de mudanc,as de numeros    
       magicos que estao sendo empilhados no buffer do tty do servidor. Tao logo o     
       ppp(8) se inicia no servidor, ele e inundado com mudanc,as de numeros magicos   
       imediatamente ao negociar o LCP, e desiste. Enquanto isso, o cliente nao ve por 
       muito tempo as reflexoes e fica feliz apenas por algum tempo, ate receber a     
       desconexao do servidor.                                                         
                                                                                       
       Isto pode ser evitado permitindo que a negociac,ao seja iniciada pelo servidor  
       (peer), adicionando a seguinte linha no seu arquivo ppp.conf:                   
                                                                                       
       set openmode passive                                                            
                                                                                       
       Isso diz ao ppp(8) para esperar que o servidor inicie as negociac,oes LCP.      
       Alguns servidores, entretanto, podem nunca iniciar as negociac,oes. Se este for 
       o caso, voce deve fazer algo como:                                              
                                                                                       
       set openmode active 3                                                           
                                                                                       
       Isto diz ao ppp(8) para ser passivo durante 3 segundos, e entao comec,ar a      
       enviar requisic,oes LCP. Se o servidor (peer) comec,ar a enviar requisic,oes    
       durante esse periodo, o ppp(8) ira responder imediatamente, ao inves de         
       aguardar pelo periodo completo de 3 segundos.                                   
14.13. As negociac,oes LCP continuam ate que a conexao seja fechada. O que esta        
       errado?                                                                         
       Ha atualmente uma caracteristica faltando no ppp onde ele nao associa respostas 
       LCP , CCP & IPCP com suas requisic,oes originais. Como consequencia, se uma     
       implementac,ao ppp e 6 segundos mais lenta do que o outro lado, esse lado       
       emitira duas requisoes adicionais de configurac,ao LCP. Isto e fatal.           
                                                                                       
       Considere duas implementac,oes, A e B. A emite requisic,oes LCP imediatamente   
       apos a conexao e B leva 7 segundos para iniciar. Quando B inicia, A emitiu 3    
       LCP REQs. Nos estamos supondo que a linha ECHO esteja desabilitada, senao nos   
       veriamos problemas com numero magico como descritos na sec,ao anterior. B emite 
       um REQ, entao um ACK para o primeiro dos REQs de A. Isto resulta em A entrando  
       no estado OPENED e enviando um ACK (o primeiro) de volta a B. Enquanto isso, B  
       envia de volta mais dois ACKs em resposta aos dois REQs adicionais enviados por 
       A antes de B ter iniciado. B entao recebe o primeiro ACK de A e tambem entra no 
       estado de OPENED. A recebe o segundo ACK de B e retorna ao estado de REQ-SENT,  
       enviando um outro (seguinte) REQ conforme a RFC ordena. Entao, recebe o         
       terceiro ACK e entra no estado OPENED. Enquanto isso, B recebe REQ (posterior)  
       de A, tendo como resultado uma reversao para o estado ACK-SENT e enviando um    
       outro (segundo) REQ e (depois) ACK conforme a RFC. Conseguindo o REQ, A entra   
       em REQ-SENT e envia outro REQ. Imediatamente recebe o ACK seguinte e entra em   
       OPENED.                                                                         
                                                                                       
       Isto continuara ate que um dos lados descubra que eles nao estao indo a lugar   
       algum e desista.                                                                
                                                                                       
       A melhor maneira de evitar isso e configurar um lado para ser passivo - isso    
       faz com que um lado espere pelo outro para iniciar uma negociac,ao. Isto pode   
       ser feito com o comando                                                         
                                                                                       
       set openmode passive                                                            
                                                                                       
       Deve-se ter cuidado com esta opc,ao. Voce tambem deve usar o comando            
                                                                                       
       set stopped N                                                                   
                                                                                       
       para limitar a quantidade de tempo que o ppp(8) esperara pelo outro lado        
       iniciar a negociac,ao. Alternativamente o comando                               
                                                                                       
       set openmode active N                                                           
                                                                                       
       (onde N e o numero de segundos para esperar antes de iniciar as negociac,oes)   
       pode ser usado. Consulte as paginas de manual para detalhes.                    
14.14. Por que o ppp(8) trava logo apo a conexao?                                      
       Antes da versao 2.2.5 do FreeBSD, era possivel que sua ligac,ao fosse           
       desabilitada logo apos a conexao, devido a incapacidade de negociac,ao da       
       compressao Predictor1 do ppp(8). Isto aconteceria somente se ambos os lados     
       tentassem negociar protocolos diferentes do controle da compressao (CCP). Este  
       problema atualmente esta corrigido, mas se voce ainda roda uma versao antiga do 
       ppp(8), o problema pode ser resolvido com a linha:                              
                                                                                       
       disable pred1                                                                   
14.15. Por que o ppp(8) trava quando executo comandos shell pelo ppp(8)?               
       Quando executa-se o shell com o comando ! , o ppp(8) executa um shell (ou se    
       voce passar quaisquer argumentos, o ppp(8) executara aqueles argumentos). Ppp   
       aguardara o comando terminar antes de continuar. Se voce tentar usar a sua      
       ligac,o ppp enquanto e executado o comando, a ligac,ao aparacera congelada.     
       Isto porque o ppp estara esperando pelo finalizac,ao da comando.                
                                                                                       
       Se voce desejar executar comandos assim, use o comando !bg. Ele executara o     
       comando em background e o ppp(8) podera continuar a servir a conexao            
       normalmente.                                                                    
14.16. Como uma conexao por ppp(8) usando um nunca termina?                            
       Nao ha nenhuma maneira para que o ppp(8) determine automaticamente que uma      
       conexao direta caiu. Isto e devido `as linhas que sao usadas na serie de cable  
       null modems. Ao usar esse tipo de conexao o LQR deve sempre ser habilitado com  
       a linha:                                                                        
                                                                                       
       enable lqr                                                                      
                                                                                       
       A LQR e aceita por padrao, se negociada com o outro lado.                       
14.17. Por que o ppp(8) disca sem nenhuma razao no modo -auto?                         
       Se o ppp(8) esta discando inesperadamente, voce deve determinar a causa, e      
       setar os filtros de discagem (dfilters) para evitar esse comportamento.         
                                                                                       
       Para determinar a causa, use a seguinte linha:                                  
                                                                                       
       set log +tcp/ip                                                                 
                                                                                       
       Isto registrara todo o trafego atraves da conexao. A proxima vez que a linha    
       acima for ativada, voce vera a razao logada.                                    
                                                                                       
       Voce pode agora desabilitar a discagem sob estas circunstancias. Geralmente,    
       este tipo de problema ocorre devido aos lookups do DNS. Para evitar que os      
       lookups do DNS estabelec,am uma conexao (isto nao impedira que o ppp(8) passe   
       os pacotes atraves de uma conexao ja estabelecida) use o seguinte:              
                                                                                       
       set dfilter 1 deny udp src eq 53                                                
       set dfilter 2 deny udp dst eq 53                                                
       set dfilter 3 permit 0/0 0/0                                                    
                                                                                       
       Nem sempre isso e apropriado, porque ira interromper suas capacidades de        
       discagem por demanda - a maioria dos programas precisarao de lookup do DNS      
       antes de fazer alguma outra coisa relacionada a rede.                           
                                                                                       
       No caso do DNS, voce deve tentar determinar o que esta realmente tentando       
       resolver um hostname. Na maioria das vezes o sendmail(8) e o culpado. Voce deve 
       certificar-se que o sendmail nao deve fazer nenhum DNS lookup em seu arquivo de 
       configurac,ao. Veja na sec,ao Configurac,ao de Mail para detalhes de como criar 
       seu proprio arquivo de configurac,ao e o que deve conter nele. Voce pode tambem 
       adicionar a seguinte linha ao seu arquivo .mc:                                  
                                                                                       
       define(`confDELIVERY_MODE', `d')dnl                                             
                                                                                       
                                                                                       
       Isto fara o sendmail enfileirar tudo, ate que a fila esteja funcionando         
       (normalmente o sendmail e invocado com -bd -q30m, dizendo a ele para rodar a    
       fila (queue) a cada 30minutos) ou ate que o sendmail -q seja feito (talvez do   
       arquivo ppp.linkup)                                                             
14.18. O que estes erros de CCP significam?                                            
       Eu estou vendo os seguintes erros em meus logs:                                 
                                                                                       
       CCP: CcpSendConfigReq                                                           
       CCP: Received Terminate Ack (1) state = Req-Sent (6)                            
                                                                                       
       Isto e porque o ppp(8) esta tentando negociar a compressao Predictor1, e o      
       outro ponto nao quer negociar nenhuma compressao. As mensagens sao inofensivas, 
       mas se voce desejar remove-las, podera desabilitar a compressao Predictor1      
       tambem localmente:                                                              
                                                                                       
       disable pred1                                                                   
14.19. Por que o ppp(8) trava durante a transferencia de arquivo com erros de          
       IO(Input/Output)?                                                               
       No FreeBSD 2.2.2 e anteriores, havia um bug no driver tun, que impedia pacotes  
       de entrada de um tamanho maior do que o MTU da interface. O O recebimento de    
       pacotes maiores que o MTU da interface resulta em erro de IO que e logado       
       atraves do syslogd.                                                             
                                                                                       
       A especificac,ao do ppp diz que um MTU de 1500 deve ser sempre aceito como      
       minimo. Apesar de todas as negociac,oes de LCP, e possivel diminuir o MTU para  
       menos de 1500, independentemente disso, seu provedor ira transmitir pacotes de  
       1500 para voce, e isso travara sua conexao.                                     
                                                                                       
       O problema pode ser contornado por nunca ajustar um MTU menor que 1500 sobre o  
       FreeBSD 2.2.2 ou anteriores.                                                    
14.20. Por que o ppp(8) nao loga minha velocidade de conexao?                          
       A fim de logar todas as linhas de "conversac,ao" de seu modem voce deve         
       habilitar o seguinte:                                                           
                                                                                       
       set log +connect                                                                
                                                                                       
       Isto ira fazer o ppp(8) logar tudo, ate a ultima requisic,ao "expect".          
                                                                                       
       Se voce desejar ver sua velocidade de conexao e estiver usando PAP ou CHAP (e   
       consequentemente nao tenha qualquer coisa para o "chat" depois do CONNECT no    
       script de discagem - no set login script), voce deve certificar-se que instruiu 
       o ppp(8) a ``a esperar" a linha inteira CONNECT, algo como:                     
                                                                                       
       set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \                             
         \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"                        
                                                                                       
       Aqui nosso CONNECT, nao envia nada, ele espera entao um line-feed, forc,ando o  
       ppp(8) a ler toda a resposta do CONNECT.                                        
14.21. Por que o ppp(8) ignora o caracter \ no meu script de conversac,ao?             
       O Ppp analiza cada linha no seu arquivo de configurac,ao, entao isso pode ser   
       interpretado como string tal como set phone "123 456 789" corretamente e        
       compreende de fato que o numero e um unico argumento. A fim de especificar um   
       caracter", voce deve escapar desse comportamento, usando um a barra invertida   
       \.                                                                              
                                                                                       
       Quando o script de conversac,ao analizar cada argumento, ele reinterpretara o   
       argumento a fim de encontrar quaisquer sequencias especiais como \P ou \T (veja 
       a man page). Como resultado desta dupla analise, voce deve conseguir usar o     
       numero correto de espac,os.                                                     
                                                                                       
       Se voce deseja enviar um caracter \ para dizer a seu modem, voce precisara de   
       algo assim:                                                                     
                                                                                       
       set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"                                        
                                                                                       
       resultando a seguinte sequencia:                                                
                                                                                       
       ATZ                                                                             
       OK                                                                              
       AT\X                                                                            
       OK                                                                              
                                                                                       
       ou                                                                              
                                                                                       
       set phone 1234567                                                               
       set dial "\"\" ATZ OK ATDT\\T"                                                  
                                                                                       
       resultando na seguindo sequencia:                                               
                                                                                       
       ATZ                                                                             
       OK                                                                              
       ATDT1234567                                                                     
14.22. Por que o ppp(8) da um seg-fault, mas eu nao vejo nenhum arquivo ppp.core?      
       O Ppp (ou qualquer programa desta natureza) nunca dever dar core dump. Porque o 
       ppp(8) roda com um e-userid (effective user id) 0, o sistema operacional nao    
       ira escrever a imagem do core do ppp(8) em disco antes de termina-lo. Mas se    
       acontecer de o ppp(8) terminar devido a uma falha de segmentac,ao ou algum      
       outro sinal que normalmente causaria um core dumped, e voce tem certeza de que  
       esta usando uma versao mais recente do ppp (veja o comec,o desta sec,ao), voce  
       deve fazer o seguinte:                                                          
                                                                                       
       % tar xfz ppp-*.src.tar.gz                                                      
       % cd ppp*/ppp                                                                   
       % echo STRIP= >>Makefile                                                        
       % echo CFLAGS+=-g >>Makefile                                                    
       % make clean all                                                                
       % su                                                                            
       # make install                                                                  
       # chmod 555 /usr/sbin/ppp                                                       
                                                                                       
       Voce agora tem uma versao debugavel do ppp(8) instalada. Voce precisara ser     
       root para rodar o ppp porque todos os seus privilegios foram revogados. Quando  
       voce iniciar o ppp(8), tome nota com cuidado de qual era o seu diretorio        
       corrente naquele instante.                                                      
                                                                                       
       Agora, quando o ppp(8) receber uma violac,ao de segmento (seg-fault), voce tera 
       um arquivo chamado ppp.core. Voce deve entao fazer o seguinte:                  
                                                                                       
       % su                                                                            
       # gdb /usr/sbin/ppp ppp.core                                                    
       (gdb) bt                                                                        
       .......                                                                         
       (gdb) f 0                                                                       
       ......                                                                          
       (gdb) i args                                                                    
       ......                                                                          
       (gdb) l                                                                         
       .......                                                                         
                                                                                       
       Toda essa informac,ao deve ser dada com a sua pergunta, sendo possivel agora    
       diagnosticar o problema.                                                        
                                                                                       
       Se voce e familiarizado com o gdb, voce pode desejar encontrar alguns outros    
       bits e partes como as que causaram o dump e tambem os enderec,os e valores das  
       variaveis revelantes.                                                           
14.23. Por que o processo que forc,a a discagem em auto mode nunca conecta?            
       Este era um problema conhecido na configurac,ao ppp(8) para negociar um IP      
       local dinamico com o outro ponto no auto mode. Isto foi corrigido na versao     
       mais recente. Procure na man page do ppp(8) por iface.                          
                                                                                       
       O problema era que quando este programa inicial chamava o connect(2), o numero  
       IP da interface tun estava atribuido ao endpoint do soquete. O kernel cria o    
       primeiro pacote de saida e escreve-o no dispositivo tun. O ppp(8) entao le o    
       pacote e estabelece a conexao. Se em consequencia da atribuic,ao dinamica do IP 
       do ppp(8) o enderec,o da interface for mudado, o endpoint do soquete original   
       sera invalido. Todos os pacotes subsequentes emitidos ao outro ponto serao      
       geralmente descartados. Mesmo se nao forem descartados, nenhuma das respostas   
       ira voltar pela rota da maquina de origem, isto porque o numero IP ja nao       
       pertence a essa maquina.                                                        
                                                                                       
       Ha diversas maneiras teoricas para abordargem desse problema. Seria mais        
       agradavel se o ponto reatribuisse, se possivel o mesmo numero IP :-) A versao   
       atual do ppp(8) faz isso, mas a maioria das outras implementac,oes nao.         
                                                                                       
       O metodo mais facil do nosso lado, seria nunca mudar o numero IP da interface   
       tun, mas ao inves disso, mudar todos os pacotes de saida de modo que a origem   
       do numero IP e mudada da interface IP para o IP negociado dinamicamente. Isto e 
       essencialmente o que a opc,ao iface-alias na versao mais recente do ppp faz     
       (com a ajuda da libalias(3) e da opc,ao -nat do ppp(8)) - esta mantendo         
       enderec,os anteriores da interface e fazendo NAT do ultimo enderec,o negociado. 
                                                                                       
       Uma outra alternativa (e provavelmente a mais confiavel) seria implementar uma  
       chamada de sistema que mudasse todos os soquetes ligados de um IP para outro. O 
       ppp(8) usaria essa chamada para modificar os soquetes de todos os programas em  
       execuc,ao quando um novo enderec,o IP e negociado. O mesmo sistema de chamadas  
       poderia ser usado por clientes dhcp quando sao forc,ados a religar seus         
       soquetes.                                                                       
                                                                                       
       Ainda, outra possibilidade e permitir a interface para ser ativada sem um       
       numero IP. Os pacotes de saida seriam dados um numero IP 255.255.255.255 ate    
       que a primeira SIOCAIFADDR ioctl esteja pronta. Isto resultaria na completa     
       ligac,ao com o soquete. Seria ate o ppp(8) mudar o numero IP de origem, mas     
       somente se foi setado para 255.255.255.255, e somente o numero IP e o IP        
       checksum deveriam ser mudados. Isto porem, e um pequeno hack do kernel que deve 
       estar enviando maus pacotes para uma interface configurada, na suposic,ao de    
       que algum outro mecanismo e capaz de corrigir as coisas de forma                
       restrospectiva.                                                                 
14.24. Por que a maioria dos jogos nao funciona com a opc,ao -nat?                     
       A razao para os jogos e outros programas nao funcionarem quando a libalias esta 
       em uso e porque a maquina de fora ira tentar abrir uma conexao ou enviar        
       pacotes UDP (nao solicitados) para a maquina de dentro. O software NAT nao sabe 
       que deve enviar esses pacotes para a maquina interna.                           
                                                                                       
       Para que as coisas funcionem, certifique-se de que a unica coisa que esta       
       rodando e o software que voce esta tendo problemas, a seguir rode o tcpdump na  
       interface tun do gateway ou habilite ppp(8) tcp/ip logging (set log+tcp/ip) na  
       gateway.                                                                        
                                                                                       
       Quando voce iniciar o software, voce deve ver pacotes passando atraves da       
       maquina gateway. Quando alguma coisa volta vindo de fora, sera descartado (este 
       e o problema). Tome nota do numero da porta desses pacotes e a seguir feche o   
       software. Fac,a isso algumas vezes para ver se os numeros da porta sao          
       consistentes. Se eles forem, a seguinte linha no /etc/ppp/ppp.conf fara o       
       software funcional:                                                             
                                                                                       
       nat port protomaquinainterna:                                                   
       portaporta                                                                      
                                                                                       
       Onde proto e ou tcp ou udp, maquinainterna e a maquina de onde voce quer que os 
       pacotes sejam enviados e porta e numero da porta de destino dos pacotes.        
                                                                                       
       Voce nao podera usar o software em outras maquinas sem mudar o comando acima, e 
       rodar o software em duas maquinas internas ao mesmo tempo e fora de questao -   
       Apesar de tudo, o lado de fora esta vendo toda sua rede interna como sendo      
       somente uma maquina.                                                            
                                                                                       
       Se os numeros da porta nao sao consistentes, ha ainda mais 3 opc,oes.           
                                                                                       
        1. Enviar o suporte na libalias. Exemplos de 'casos especiais' podem ser       
           encontrados em /usr/src/lib/libalias/alias_*.c (alias_ftp.c eh um bom tipo  
           de protocolo). Isto geralmente envolve ler determinados pacotes             
           reconhecidos na saida, identificando a instruc,ao que chama a maquina       
           externa para iniciar a conexao de volta para a maquina interna em uma porta 
           (aleatoria) especifica e setar a "rota" na tabela de aliases de modo que os 
           pacotes subsequentes saibam para onde ir.                                   
                                                                                       
           Esta soluc,ao e a mais dificil, mas e a melhor e ira fazer o software       
           trabalhar com multipla maquinas.                                            
                                                                                       
        2. Use um proxy. A aplicac,ao podera suportar sock5 por exemplo, ou (como no   
           caso do "cvsup") pode ter uma opc,ao "passive" que evita sempre             
           requisic,oes feitas pelo outro ponto de volta para a maquina local.         
                                                                                       
        3. Redirecione tudo para a maquina interna usando nat addr. Pode-se dizer que  
           essa seja a apelac,ao.                                                      
14.25. Alguem fez uma lista de numero de portas uteis?                                 
       Nao ainda, mas a intensao e produzir tal lista (se algum interesse for          
       mostrado). Em cada exemplo, internal deve ser substituido pelo IP da maquina    
       que esta jogando o jogo.                                                        
                                                                                       
         * Asheron's Call                                                              
                                                                                       
           nat port udp internal:65000 65000                                           
                                                                                       
           Mude manualmente o numero da porta dentro do jogo para 65000. Se voce       
           comec,ar com um determinado numero de maquinas que voce deseja jogar        
           atribua uma porta para cada (por ex 65001, 65002, etc) e adicione uma porta 
           nat para cada uma.                                                          
                                                                                       
         * Half Life                                                                   
                                                                                       
           nat port udp internal:27005 27015                                           
                                                                                       
         * PCAnywhere 8.0                                                              
                                                                                       
           nat port udp internal:5632 5632                                             
                                                                                       
           nat port tcp internal:5631 5631                                             
                                                                                       
         * Quake                                                                       
                                                                                       
           nat port udp internal:6112 6112                                             
                                                                                       
           Alternativamente, voce pode querer ir em www.batle.net para dar uma olhada  
           no suporte de proxy do quake.                                               
                                                                                       
         * Quake 2                                                                     
                                                                                       
           nat port udp internal:27901 27901                                           
                                                                                       
           nat port udp internal:60021 60021                                           
                                                                                       
           nat port udp internal:60040 60040                                           
                                                                                       
         * Red Alert                                                                   
                                                                                       
           nat port udp internal:8675 8675                                             
                                                                                       
           nat port udp internal:5009 5009                                             
14.26. O que sao erros FCS?                                                            
       FCS significa Frame Check Sequence. Cada pacote do ppp tem um checksum anexado  
       para assegurar-se de que os dados que estao sendo recebidos sejam os dados que  
       estao sendo emitidos. Se o FCS de um pacote de entrada estiver incorreto, o     
       pacote sera perdido e a contagem do HDLC FCS e aumentada. Os valores de erro    
       HDLC podem ser mostrados usando o comando show hdlc.                            
                                                                                       
       Se a sua ligac,ao e ruim ou se o driver serial esta perdendo pacotes), voce ira 
       ver ocasionalmente erros FCS. Isto geralmente nao e motivo para se preocupar,   
       embora diminua substancialmente os protocolos de compressao. Se voce tem um     
       modem externo, certifique-se que seu cabo esteja protegido corretamente de      
       interferencias - Isso pode erradicar o problema.                                
                                                                                       
       Se sua ligac,ao congelar assim que voce conectar e vier um grande numero de     
       erros FCS, pode ser porque seu link nao esta com o bit 8 limpo. Certifique-se   
       que seu modem nao esteja usando o controle de fluxo do software (XON/XOFF). Se  
       o seu datalink deve usar software de controle de fluxo, use o comando set       
       accmap 0x000a0000 para dizer ao ppp para ignorar os caracteres ^Q e ^S.         
                                                                                       
       Uma outra razao para estar vendo muitos erros FCS pode ser que a extremidade    
       remota parou de comunicar com o PPP. Voce pode querer habilitar registros async 
       neste ponto para determinar se os dados entrantes sao realmente um alerta de    
       inicio de sessao do prompt da shell. Se voce tiver um prompt shell na           
       extremidade remota, e possivel terminar o ppp(8) sem deixar cair a linha usando 
       o comando close lcp (o comando term ira reconectar voce shell da maquina        
       remota). Se nada em seus logs indicar o porque de sua ligac,ao ter sido         
       terminada, voce pode perguntar ao administrador remoto (do seu provedor?)       
       porque a sessao foi terminada.                                                  
14.27. Por que a conexao do MacOS e Windows98 travam ao rodar o PPPoE no gateway?      
       Agradecimentos a Michael Wozniak <mwozniak@netcom.ca> por descobrir o problema, 
       e a Dan Flemming <danflemming@mac.com> pela soluc,ao do Mac:                    
                                                                                       
       Isto e devido ao que e chamado de roteador "Buraco Negro" (Black Hole). MacOS e 
       Windows98 (e talvez outros SO's da Microsoft) envia m pacotes TCP com um        
       tamanho de segmento requisitado muito grande para ser contido em um frame do    
       PPPoE (MTU por default na ethernet e de 1500) e tenha o "nao fragmento" do bit  
       ajustado (default do TCP) e o roteador Telco nao esta enviando ICMP "deve ser   
       fragmentado" de volta ao sitio www que voce esta tentando carregar.             
       (Alternativamente o roteador esta enviando pacotes ICMP corretamente, mas o     
       firewall no sitio www esta deixando perde-los). Quando o servidor www esta      
       enviando seus frames que nao cabem no pipe do PPPoE o roteador Telco deixa-os   
       perder e sua pagina nao e carregada (algumas paginas graficas carregam porque   
       sao menores que um MSS). Esta parece ser a configurac,ao default da maioria dos 
       Telco PPPoE (somente eles sabem como programar o roteador).                     
                                                                                       
       Um maneira de fixar isso e usando o regedit em sua seu Windows 95/98 e          
       adicionar a seguinte entrada de registro:                                       
                                                                                       
       HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU 
                                                                                       
       Deve ser uma string com um valor "1436", porque ha relatos de que alguns        
       roteadores ADSL sao incapazes de tratar os pacotes maiores que esse. Esta chave 
       de registro foi mudada para Tcpip\Parameters\Interfaces\ID-para-o-adptador\MTU  
       no windows 2000 e tornou-se um DWORD.                                           
                                                                                       
       Consulte os documentos da Microsoft Q158474 - Windows TCPIP Entradas de         
       registroi e Q120642 - TCPIP & NBT Parametros de configurac,ao para Windows NT   
       para maiores informacoes sobre alterac,oes de MTU no Windows para funcionar com 
       um roteador NAT.                                                                
                                                                                       
       Uma outra possibilidade do regedit sob o Windows 2000 e setar                   
       Tcpip\Parameters\Interfaces\ID-para-o-adaptador\EnablePMTUBHDetect DWORD para 1 
       como mencionado no documento original da Microsoft 120642 comentado acima.      
                                                                                       
       Infelizmente o MacOS nao oferece uma mudanc,a TCP/IP nas configurac,oes da      
       interface. Entretanto, ha um software comercial disponivel, o OTAdvancedTuner   
       (OT para OpenTransport, a pilha TCP/IP do MacOS) feito pela Sustainable         
       Softworks, ele permite aos usuarios customizar as configurac,oes TCP/IP. Os     
       usuarios de NAT do MacOS devem selecionar o ip_interface_MTU no menu drop-down, 
       colocar 1450 em vez de 1500, clique na caixa proximo ao Save as Auto Configure, 
       e clique em Make Active.                                                        
                                                                                       
       Versoes mais recentes do ppp(8) (2.3 ou mais recente) tem o comando enable      
       tcpmssfixup que ira automaticamente ajustar um valor apropriado ao MSS. Esta    
       facilidade e habilitada por default. Se voce for apaixonado pela versao mais    
       antiga do ppp(8) voce pode querer dar uma olhada no port do tcpmssd.            
14.28. Nada disso me ajudou - Eu estou desesperado! O que eu posso fazer?              
       Se tudo falhar, envie o maximo de informacoes que voce puder, incluindo seus    
       arquivos de configurac,ao, a forma como esta iniciando o ppp(8), os trechos     
       relevantes de seu arquivo de log e a saida do comando netstat -rn (antes e      
       depois de conectado) para a lista lista de discussao para perguntas gerais      
       sobre o FreeBSD ou para o grupo de noticias comp.unix.bsd.freebsd.misc. Alguem  
       deve ajudar a solucionar seu problema.                                          

                       Capitulo 15. Comunicac,oes Seriais

   Essa sec,ao cobre as perguntas mais comuns sobre comunicac,ao serial com o
   FreeBSD. PPP e SLIP sao abordados na sec,ao Capitulo 12, Redes.

   15.1. Como eu posso dizer se o FreeBSD encontrou minhas portas seriais?

   15.2. Como eu posso dizer se o FreeBSD encontrou minha placa de fax modem?

   15.3. Eu acabei de atualizar para a versao 2.0.5 e as minhas tty0X
   desapareceram! Como eu resolvo esse problema?

   15.4. Como eu acesso as portas seriais no FreeBSD?

   15.5. Como eu habilito suporte para uma placa serial de multiplas portas?

   15.6. O FreeBSD pode trabalhar com placas seriais de multiplas portas
   compartilhando irqs?

   15.7. Posso definir os parametros seriais padrao para uma porta?

   15.8. Como eu habilito logins dial-up no meu modem?

   15.9. Como eu conecto um terminal burro ao meu FreeBSD?

   15.10. Por que eu nao posso executar o tip ou o cu?

   15.11. Meu modem modelo Hayes nao e suportado - o que eu posso fazer?

   15.12. Como posso entrar nestes comandos AT?

   15.13. Porque o sinal <@> para a capacidade pn nao funciona?

   15.14. Como eu posso discar um numero de telefone pela linha de comando?

   15.15. Tenho que definir a taxa de bits por segundo sempre que fazer isso?

   15.16. Como posso facilmente acessar varios hosts atraves de um terminal
   server?

   15.17. O "tip" pode tentar discar mais de uma linha por vez?

   15.18. Por que eu tenho que pressionar duas vezes o CTRL+P para enviar
   CTRL+P uma unica vez?

   15.19. Por que tudo o que eu digito inesperadamente esta em CAIXA ALTA?

   15.20. Como eu posso transferir arquivos com o tip?

   15.21. Como eu posso executar o zmodem com o tip?

   15.22. O FreeBSD pode vir a nao encontrar minhas portas seriais, mesmo
   quando as configurac,oes estao corretas?

   15.1.  Como eu posso dizer se o FreeBSD encontrou minhas portas seriais?   
          Assim que o kernel do FreeBSD e carregado, ele ira varrer as portas 
          seriais do seu sistema procurando dispositivos nas portas           
          configuradas no kernel. Pode-se observar atentamente as mensagens   
          que o sistema exibe, ou entao executar o seguinte comando:          
                                                                              
          % dmesg | grep sio                                                  
                                                                              
          assim que o sistema estiver em funcionamento e execuc,ao.           
                                                                              
          Aqui estao alguns exemplos dos resultados do comando executado      
          acima:                                                              
                                                                              
          sio0 at 0x3f8-0x3ff irq 4 on isa                                    
          sio0: type 16550A                                                   
          sio1 at 0x2f8-0x2ff irq 3 on isa                                    
          sio1: type 16550A                                                   
                                                                              
          Eles mostram duas portas seriais. A primeira esta na irq 4, esta    
          usando o enderec,o de porta 0x3f8, e tem um chip modelo UART        
          16550A. O segundo utiliza o mesmo tipo de chip mas esta na irq 3 e  
          seu enderec,o de porta e 0x2f8. Modems internos sao tratados como   
          se fossem portas seriais -- exceto que sempre tem um modem          
          "conectado" `a porta.                                               
                                                                              
          O kernel GENERIC tem suporte para duas portas seriais utilizando os 
          mesmos irqs e configurac,oes de enderec,os de portas do exemplo     
          acima. Se tais configurac,oes nao estao certas para seu sistema, ou 
          se voce adicionou placas de modem ou tem mais portas seriais para o 
          qual o kernel foi configurado, apenas recompile seu kernel. Veja a  
          a sec,ao de compilac,ao do kernel para obter mais detalhes.         
   15.2.  Como eu posso dizer se o FreeBSD encontrou minha placa de fax       
          modem?                                                              
          Refira-se `a resposta da pergunta anterior.                         
   15.3.  Eu acabei de atualizar para a versao 2.0.5 e as minhas tty0X        
          desapareceram! Como eu resolvo esse problema?                       
          Nao se preocupe, eles foram incluidos com os dispositivos ttydX. No 
          entanto, voce deve mudar todos os arquivos da configurac,ao antiga  
          que voce tiver.                                                     
   15.4.  Como eu acesso as portas seriais no FreeBSD?                        
          A terceira porta serial, sio2 (veja sio(4), conhecida como COM3 no  
          DOS), esta na /dev/cuaa2 para os dispositivos dial-out, e na        
          /dev/ttyd2 para os dispositivos dial-in. Qual e a diferenc,a entre  
          essas duas classes de dispositivos?                                 
                                                                              
          Voce utiliza ttydX para dial-ins. Quando o /dev/ttydX se abre no    
          modo de bloqueio, um processo ira aguardar que o dispositivo cuaaX  
          correspondente torne-se inativo, e aguarda a detecc,ao do carrier   
          detect da linha para ativar-se. Quando a cuaaX se abre, ela deixa   
          claro que a porta nao esta ainda em uso pelo dispositivo ttydX. Se  
          a porta estiver disponivel, ela e "roubada" do dispositivo ttydX.   
          Alem disso, o dispositivo cuaaX nao se importa com o carrier        
          detect. Com esse esquema de auto-resposta do modem, voce pode ter   
          usuarios remotos conectando e voce pode ainda discar para fora com  
          o mesmo modem, que o sistema ira cuidar de todos os conflitos.      
   15.5.  Como eu habilito suporte para uma placa serial de multiplas portas? 
          Novamente, a sec,ao de configurac,ao do kernel prove informac,oes   
          sobre a configurac,ao de seu kernel. Para uma placa serial de       
          multiplas portas, coloque uma linha sio(4) para cada porta serial   
          da placa, no arquivo de configurac,ao do kernel. Mas coloque o irq  
          e as espeficicac,oes do vetor apenas em uma das entradas. Todas as  
          portas da placa devem compartilhar uma irq. Para consistencia,      
          utilize a ultima porta serial para especificar a irq. Alem disso,   
          especifique a opc,ao COM_MULTIPORT.                                 
                                                                              
          O exemplo seguinte e para uma placa serial AST 4-portas na irq 7:   
                                                                              
          options "COM_MULTIPORT"                                             
          device sio4 at isa? port 0x2a0 tty flags 0x781                      
          device sio5 at isa? port 0x2a8 tty flags 0x781                      
          device sio6 at isa? port 0x2b0 tty flags 0x781                      
          device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr 
                                                                              
          As flags indicam que a porta master tem um "minor number" 7         
          (0x700), diagnosticos habilitados durante o escaneamento (0x080), e 
          todas as portas compartilham uma irq (0x001).                       
   15.6.  O FreeBSD pode trabalhar com placas seriais de multiplas portas     
          compartilhando irqs?                                                
          Ainda nao. Voce devera utilizar uma irq diferente para cada placa.  
   15.7.  Posso definir os parametros seriais padrao para uma porta?          
          O ttydX (cuaaX) e um dispositivo regular que voce vai querer abrir  
          para suas aplicac,oes. Quando um processo abre um dispositivo, ele  
          tem um conjunto padrao de configurac,oes de terminais de E/S. Voce  
          pode ver essas configurac,oes com o comando                         
                                                                              
          # stty -a -f /dev/ttyd1                                             
                                                                              
          Ao alterar as configurac,oes para esse dispositivo, elas se         
          manterao em efeito ate que o dispositivo seja fechado. Quando ele   
          for reaberto, vai para o estado padrao. Para fazer mudanc,as nos    
          ajustes padrao, pode-se abrir e ajustar as configurac,oes do        
          "estado inicial" do dispositivo. Por exemplo, para ligar o modo     
          CLOCAL, 8 bits, e o controle de fluxo XON/XOFF padrao para a ttyd5, 
          fac,a:                                                              
                                                                              
          # stty -f /dev/ttyid5 clocal cs8 ixon ixoff                         
                                                                              
          Um bom lugar para fazer isso e no /etc/rc.serial. Agora, uma        
          aplicac,ao tera estas configurac,oes por padrao quando abrir o      
          ttyd5. No entanto, pode-se ainda modificar estas configurac,oes a   
          seu gosto.                                                          
                                                                              
          Voce pode prevenir certas configurac,oes de serem modificadas por   
          uma aplicac,ao fazendo ajustes no dispositivo de "lock state". Por  
          exemplo, para travar a velocidade do ttyd5 em 57600 bps, fac,a:     
                                                                              
          # stty -f /dev/ttyld5 57600                                         
                                                                              
          Agora, uma aplicac,ao, ao abrir o ttyd5, se tentar modificar a      
          velocidade da porta, ficara travada a 57600 bps.                    
                                                                              
          Naturalmente voce deve garantir que os dispositivos de estado       
          inicial e o estado de trava (lock) tenham permissao de escrita      
          apenas para o root. O script MAKEDEV(8) NAO faz isso quando ele     
          cria as entradas de dispositivos.                                   
   15.8.  Como eu habilito logins dial-up no meu modem?                       
          Entao voce quer tornar-se um provedor de servic,os internet, nao e? 
          Primeiro, voce precisa de um ou mais modems que auto-respondam `as  
          chamadas. Seu modem precisa confirmar o "carrier detect" quando ele 
          for detectado e nao faze-lo todo o tempo. Ele precisara desligar o  
          telefone e resetar a si mesmo quando a linha DTR (Data Terminal     
          Ready) alternar de ligado para desligado. Ele provavelmente deve    
          utilizar o controle de fluxo RTS/CTS ou nenhum controle local de    
          fluxo. Finalmente, ele deve utilizar uma velocidade constante entre 
          o computador e si mesmo, mas (para ser simpatico com seus usuarios) 
          ele deve negociar uma velocidade entre si mesmo e o modem remoto.   
                                                                              
          Para muitos modems compativeis com o conjunto de comandos do Hayes  
          este comando criara estas configurac,oes e as armazenara na memoria 
          nao volatil:                                                        
                                                                              
          AT &C1 &D3 &K3 &Q6 S0=1 &W                                          
                                                                              
          Veja a sec,ao enviando comandos AT abaixo para mais informac,oes    
          sobre como fazer estas configurac,oes sem o auxilio de um programa  
          de terminal MS-DOS.                                                 
                                                                              
          Depois, fac,a uma entrada em /etc/ttys (veja ttys(5)) para o modem. 
          Este arquivo lista todas as portas nas quais o sistema ira aguardar 
          pelos logins. Adicione uma parecida com essa:                       
                                                                              
          ttyd1 "/usr/libexec/getty std.57600" dialup on insecure             
                                                                              
          Esta linha indica que a segunda porta serial (/dev/ttyd1) tem um    
          modem conectado e rodando a 57600 bps e sem paridade (std.57600,    
          que vem do arquivo /etc/gettytab, veja gettytab(5)). O tipo de      
          terminal para esta porta e dialup. A porta esta ligada e e insegura 
          - quer dizer que o login do usuario root nao e permitido. Para      
          portas dialin como esta, utiliza-se a entrada ttydX                 
                                                                              
          E uma pratica comum utilizar dialup como o tipo do terminal. Muitos 
          usuarios configuram um prompt para seus arquivos .profile ou .login 
          para o tipo de terminal existente se o tipo iniciante e dialup. O   
          exemplo mostra a porta como insegura. Para tornar-se root nesta     
          porta, voce tem que logar-se como um usuario regular, e entao su(1) 
          para tornar-se root. Se voce usar seguro, entao o root vai poder    
          efetuar o login diretamente.                                        
                                                                              
          Apos efetuar as operac,oes no /etc/ttys, voce precisa enviar um     
          sinal de hangup ou HUP para o processo init(8):                     
                                                                              
          # kill -HUP 1                                                       
                                                                              
          Esse comando forc,ara a releitura do arquivo /etc/ttys. O processo  
          init iniciara os processos getty em todas as portas configuradas em 
          on (ligadas). Voce pode descobrir se seus logins estao disponiveis  
          para sua porta digitando:                                           
                                                                              
          % ps -ax | grep '[t]tyd1'                                           
                                                                              
          Voce deve ver algo como:                                            
                                                                              
          747 ??  I      0:00.04 /usr/libexec/getty std.57600 ttyd1           
   15.9.  Como eu conecto um terminal burro ao meu FreeBSD?                   
          Se voce esta usando outro computador como um terminal de seu        
          sistema FreeBSD, consiga um cabo "null modem" para ser usado entre  
          as duas portas seriais. Se voce esta utilizando um terminal         
          proprio, veja as instruc,oes que o acompanham.                      
                                                                              
          Entao, modifique o /etc/ttys (veja ttys(5)), como acima. Por        
          exemplo, se voce esta ligando um terminal WYSE 50 `a quinta porta   
          serial, utilize uma entrada como esta::                             
                                                                              
          ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure               
                                                                              
          Esse exemplo mostra que a porta em /dev/ttyd4 tem um terminal       
          wyse50 conectado a 38400 bps (bits por segundo) sem nenhuma         
          paridade (std.38400 de /etc/gettytab, veja gettytab(5))) e o login  
          do root e permitido (seguro).                                       
   15.10. Por que eu nao posso executar o tip ou o cu?                        
          Em seu sistema, os programas tip(1) e cu(1) sao provavelmente       
          executaveis somente pro uucp e para o grupo dialer. Voce pode       
          utilizar o grupo dialer para controlar quem acessa o seu modem ou   
          sistemas remotos. Basta adicionar voce mesmo ao grupo dialer.       
                                                                              
          Alternativamente, voce pode permitir a todos no seu sistema         
          executarem o tip(1) e o cu(1) digitando:                            
                                                                              
          # chmod 4511 /usr/bin/cu                                            
          # chmod 4511 /usr/bin/tip                                           
   15.11. Meu modem modelo Hayes nao e suportado - o que eu posso fazer?      
          De fato a manpage para o tip(1) esta desatualizada. Ha um discador  
          generico do Hayes ja incorporado. Apenas insira at=hayes em seu     
          arquivo /etc/remote (veja remote(5)).                               
                                                                              
          O drive do Hayes nao e inteligente o bastante para reconhecer       
          algumas das avanc,adas caracteristicas dos modems mais novos -      
          mensagens como BUSY, NO DIALTONE, ou CONNECT 115200 estarao apenas  
          confundindo-o. Voce deve desabilitar estas mensagens quando         
          utilizar o tip(1) (com o comando ATX0&W).                           
                                                                              
          Alem disso, o timeout para discagem com o tip(1) e de 60 segundos.  
          Seu modem deve utilizar um valor menor, senao o tip pensara que     
          existe um problema de comunicac,ao. Tente ATS7=45&W.                
                                                                              
          De fato, como o tip(1) nao foi compilado para suportar HAYES, essa  
          funcionalidade nao e completamente suportada. A soluc,ao e editar o 
          arquivo tipconf.h no diretorio /usr/src/usr.bin/tip/tip. Obviamente 
          voce precisa da distribuic,ao fonte para fazer isso.                
                                                                              
          Edite a linha #define HAYES 0 alterando-a para #define HAYES 1.     
          Depois digite make e make install. Tudo funcionara bem depois       
          disso.                                                              
   15.12. Como posso entrar nestes comandos AT?                               
          Fac,a o que e chamado de uma entrada "direta" no seu /etc/remote    
          (veja remote(5)). Por exemplo, se o seu modem esta definido na      
          primeira porta serial, /dev/cuaa0, coloque a seguinte linha:        
                                                                              
          cuaa0:dv=/dev/cuaa0:br#19200:pa=none                                
                                                                              
          Utilize a taxa de velocidade mais alta que seu modem suportar na    
          capacidade br. Entao digite tip cuaa0 (veja tip(1)) e voce estara   
          conectado ao seu modem.                                             
                                                                              
          Se nao existir nenhum /dev/cuaa0 no sistema, fac,a isso:            
                                                                              
          # cd /dev                                                           
          # sh MAKEDEV cuaa0                                                  
                                                                              
          Ou utilize cu como root com o seguinte comando:                     
                                                                              
          # cu -lline -sspeed                                                 
                                                                              
          com a line sendo a porta serial (por exemplo, /dev/cuaa0) e speed   
          sendo a velocidade (por exemplo, 57600). Quando terminar com os     
          comandos AT, digite ~. para sair.                                   
   15.13. Porque o sinal <@> para a capacidade pn nao funciona?               
          O sinal <@> no numero de telefone diz ao tip para procurar em       
          /etc/phones por um numero de telefone. Mas o sinal <@> e tambem um  
          caracter especial em arquivos como o /etc/remote. Escape dele com   
          um \ (barra invertida):                                             
                                                                              
          pn=\@                                                               
   15.14. Como eu posso discar um numero de telefone pela linha de comando?   
          Coloque o que e chamado de uma entrada "generica" no arquivo        
          /etc/remote (veja remote(5)). Por exemplo:                          
                                                                              
          tip115200|Disque para qualquer numero em 115200 bps:\               
                  :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:               
          tip57600|Disque para qualquer numero em 57600 bps:\                 
                  :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:                
                                                                              
          Depois voce pode fazer algo como tip -115200 5551234. Se preferir o 
          cu(1) ao inves do tip(1), utilize uma entrada generica:             
                                                                              
          cu115200|Use o cu para discar qualquer numero em 115200bps:\        
                  :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:                
                                                                              
          e digite cu 5551234 -s 115200.                                      
   15.15. Tenho que definir a taxa de bits por segundo sempre que fazer isso? 
          Coloque uma entrada para tip1200 ou para cu1200, mas va em frente e 
          utilize quaisquer taxas de bps (bits por segundo) que sejam         
          apropriadas para a capacidade br. O tip(1) diz que um bom padrao e  
          1200 bps porque ele procura uma entrada tip1200. De qualquer forma, 
          voce nao precisa utilizar 1200 bps.                                 
   15.16. Como posso facilmente acessar varios hosts atraves de um terminal   
          server?                                                             
          Ao inves de esperar ate a conexao, digitando CONNECT host sempre,   
          use a opc,ao cm do tip. Por exemplo, estas entradas em /etc/remote  
          (veja remote(5)):                                                   
                                                                              
          pain|pain.deep13.com|Forrester's machine:\                          
                  :cm=CONNECT pain\n:tc=deep13:                               
          muffin|muffin.deep13.com|Frank's machine:\                          
                  :cm=CONNECT muffin\n:tc=deep13:                             
          deep13:Gizmonics Institute terminal server:\                        
                  :dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234:     
                                                                              
          permitira a voce digitar tip pain ou tip muffin para se conectar    
          aos hosts pain ou muffin; e tip deep13 para se conectar ao terminal 
          server.                                                             
   15.17. O "tip" pode tentar discar mais de uma linha por vez?               
          Normalmente esse e um problema tradicional onde uma universidade    
          possue varias linhas de modems e varios milhares de estudantes      
          tentando usa-las...                                                 
                                                                              
          Fac,a uma entrada para sua universidade em/etc/remote (veja         
          remote(5)) e utilize a <\@> para a caracteristica pn:               
                                                                              
          big-university:\                                                    
                  :pn=\@:tc=dialout                                           
          dialout:\                                                           
                  :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:               
                                                                              
          Entao, liste os numeros de telefones para a universidade em         
          /etc/phones (veja phones(5)):                                       
                                                                              
          big-university 5551111                                              
          big-university 5551112                                              
          big-university 5551113                                              
          big-university 5551114                                              
                                                                              
          O tip(1) tentara usar cada um na ordem listada, e depois desistira. 
          Se voce quer manter-se tentando, execute o tip(1) em um loop while. 
   15.18. Por que eu tenho que pressionar duas vezes o CTRL+P para enviar     
          CTRL+P uma unica vez?                                               
          CTRL+P e o padrao para "force character", utilizado para dizer ao   
          tip(1) que o proximo caracter e um dado literal. Voce pode definir  
          o force character para qualquer outro caracter com o escape ~s, que 
          quer dizer "defina uma variavel".                                   
                                                                              
          Digite ~sforce=single-char seguido de uma newline.                  
          single-charcaracter e qualquer caracter unico. Se voce deixar       
          single-char, entao o "force character" sera o caracter nulo, que    
          voce pode ao digitar CTRL+2 ou CTRL+SPACE. Um valor muito bom para  
          o single-char e SHIFT+CTRL+6, o qual eu vi sendo usado em alguns    
          servidores de terminais.                                            
                                                                              
          Voce pode ter o "force character" que voce quiser especificando o   
          seguinte em seu arquivo $HOME/.tiprc o seguinte:                    
                                                                              
          force=single-char                                                   
   15.19. Por que tudo o que eu digito inesperadamente esta em CAIXA ALTA?    
          Voce deve ter pressionado CTRL+A, o "raise character do tip(1)",    
          especialmente projetado para pessoas com teclas Caps Lock que nao   
          funcionam. Use o ~s como acima, e defina a variavel "raisechar"     
          para algo razoavel. De fato, voce pode definir isso para o force    
          character tambem, se voce nunca espera utilizar ambas as            
          caracteristicas.                                                    
                                                                              
          Aqui esta um exemplo de arquivo .tiprc perfeito para os usuarios de 
          Emacs que precisam digitar muitos CTRL+2 e CTRL+A:                  
                                                                              
          force=^^                                                            
          raisechar=^^                                                        
                                                                              
          O ^^ e obtido com SHIFT+CTRL+6.                                     
   15.20. Como eu posso transferir arquivos com o tip?                        
          Se voce esta conversando com outro sistema Unix, voce pode enviar e 
          receber arquivos com ~p (put) e com ~t (take). Estes comandos       
          executam o cat(1) e o echo(1) no sistema remoto para aceitar e      
          enviar arquivos. Sua sintaxe e:                                     
                                                                              
          ~p <local-file> [<remote-file>]                                     
          ~t <remote-file> [<local-file>]                                     
                                                                              
          Nao ha nenhuma checagem de erro, entao voce provavelmente deve usar 
          um outro protocolo, como o zmodem                                   
   15.21. Como eu posso executar o zmodem com o tip?                          
          Primeiro, instale um dos programas zmodem da colec,ao de ports      
          (tais como lrzsz ou o rzsz).                                        
                                                                              
          Para receber arquivos, inicie o programa de envio no destino        
          remoto. Entao, pressione ENTER e digite ~C rz (ou ~C lrz caso tenha 
          instalado o lrzsz) para iniciar o recebimento local                 
                                                                              
          Para enviar arquivos, inicie o programa do lado remoto. Depois,     
          aperte ENTER e digite ~C sz arquivos (ou ~C lsz arquivos) para      
          envia-los ao sistema remoto.                                        
   15.22. O FreeBSD pode vir a nao encontrar minhas portas seriais, mesmo     
          quando as configurac,oes estao corretas?                            
          Sim, se sua placa-mae for Acer UARTS. Elas nao escaneiam            
          corretamente o barramento serial, nao permitindo que o FreeBSD      
          encontre as Serial Input/Output (sio) da placa. O patch disponivel  
          em www.lemis.com pode corrigir esse problema.                       

                        Capitulo 16. Perguntas Variadas

   16.1. O FreeBSD usa bem mais espac,o de swap do que o Linux. Por que?

   16.2. Por que o top me mostra pouquissima memoria livre, mesmo quando eu
   nao tenho muitos programas rodando?

   16.3. Por que usar (alias, o que sao) os formatos executaveis a.out e ELF?

   16.4. Certo, mas por que existem tantos formatos diferentes?

   16.5. Por que o chmod nao modifica as permissoes dos links simbolicos?

   16.6. Por que os nomes de login (ou username) sao restritos `a 8
   caracteres no FreeBSD 2.2.X e anteriores?

   16.7. Posso rodar binarios do DOS sob FreeBSD?

   16.8. O que eu preciso para traduzir um documento do FreeBSD para a minha
   lingua nativa?

   16.9. Por que meu e-mail para qualquer enderec,o em FreeBSD.org sempre
   falha?

   16.10. Onde eu consigo uma conta gratuita em um FreeBSD?

   16.11. O que e sup, e como eu uso isso?

   16.12. Qual o nome daquele capetinha vermelho simpatico?

   16.13. Posso usar a imagem do BSD daemon?

   16.14. Voces tem algumas imagens do BSD daemon que eu poderia usar?

   16.15. O que significa MFC?

   16.16. O que significa BSD?

   16.17. O que significa POLA?

   16.18. O que e um repo-copy?

   16.19. Porque eu devo me preocupar com a cor do quartinho de bicicletas
   (bikeshed)?

   16.1.  O FreeBSD usa bem mais espac,o de swap do que o Linux. Por que?     
          So parece que o FreeBSD usa mais swap do que o Linux. Na verdade    
          nao usa. A principal diferenc,a entre o FreeBSD e o Linux nesse     
          quesito e que o FreeBSD vai sempre remanejar - de forma pro-ativa - 
          toda memoria que estiver completamente inativa e subutilizada, para 
          o swap, dessa forma garantindo sempre mais memoria principal        
          disponivel para utilizac,ao. O Linux tende a remanejar paginas de   
          memoria para o swap apenas como ultima alternativa. A utilizac,ao   
          mais acentuada do swap e balanceada pela utilizac,ao mais eficiente 
          da memoria principal.                                               
                                                                              
          Note que, pelo fato do FreeBSD ser proativo nesse quesito, ele nao  
          decide arbitrariamente fazer swap das paginas quando o sistema esta 
          de fato inativo. Portanto voce nao corre o risco de encontrar todo  
          seu sistema despaginado pela manha, depois de uma noite inteira de  
          inatividade.                                                        
   16.2.  Por que o top me mostra pouquissima memoria livre, mesmo quando eu  
          nao tenho muitos programas rodando?                                 
          A resposta simples e que memoria principal livre e memoria          
          desperdic,ada. Toda memoria que nao estiver ativamente alocada      
          pelos seus programas sao utilizadas pelo Kernel do FreeBSD como     
          cache de disco. Os valores que o top(1) mostra como Inact, Cache, e 
          Buf sao dados referentes ao cache de disco, em estagios distintos   
          de utilizac,ao. Esses dados cacheados garantem que o sistema nao    
          tenha que fazer acesso em um disco local (muito mais lento que a    
          memoria) para utilizar os dados que foram acessados recentemente,   
          garantindo assim melhora significativa na performance geral. Na     
          maioria dos casos, se o top(1) mostrar que existe pouca memoria     
          disponivel, isso e uma boa indicac,ao, a nao ser que seja uma       
          quantidade extremamente baixa.                                      
   16.3.  Por que usar (alias, o que sao) os formatos executaveis a.out e     
          ELF?                                                                
          Para entender porque o FreeBSD usa o formato ELF, voce deve         
          primeiro saber um pouco sobre os 3 formatos de executaveis Unix     
          "dominantes" atualmente:                                            
                                                                              
            Nota:                                                             
                                                                              
          Ate a versao 3.x o FreeBSD usava o formato a.out.                   
                                                                              
            * a.out(5)                                                        
                                                                              
              O mais antigo e "classico"formato de objetos Unix. Ele usa um   
              cabec,alho curto e compacto, com um "magic number" no inicio    
              que e frequentemente utilizado para identificar seu formato     
              (mais detalhes veja a.out(5)). Ele contem tres segmentos a      
              serem carregados: .text, .data, e .bss acrescidos de uma tabela 
              de simbolos e uma tabela de caractereres adicionais.            
                                                                              
            * COFF                                                            
                                                                              
              O formato de objetos SVR3. Seu cabec,alho se consiste agora em  
              uma tabela de sec,oes, dessa forma garantindo que voce tenha    
              outras sec,oes alem de .text, .data, e .bss.                    
                                                                              
            * ELF                                                             
                                                                              
              O sucessor do COFF, atribuido de Multiplas sec,oes e valores de 
              32-bit ou 64-bit. Um de seus principais inconvenientes: O       
              formato ELF foi originalmente desenvolvido presumindo-se que    
              existiria apenas um unico ABI por arquitetura. A presunc,ao e   
              incorreta, e nem mesmo em relac,ao ao mundo comercial do SYSV   
              (onde encontramos ao menos tres ABIs distintas: SVR4, Solaris,  
              SCO) isso acontece.                                             
                                                                              
              O FreeBSD tenta se virar com esse problema com um utilitario    
              que identifica um executavel ELF relacionando-o ao ABI com o    
              qual ele e compativel. Veja a pagina de manual do brandelf(1)   
              para maiores informac,oes.                                      
                                                                              
          O FreeBSD vem de tradic,ao "classica" e por isso sempre usou o      
          formado a.out(5) que e uma tecnologia que foi experimentada e       
          aprovada por varias gerac,oes de sistemas BSD. Apesar de, ha algum  
          tempo tambem ser possivel para o FreeBSD trabalhar nativamente com  
          binarios ELF (e tambem kernels), o FreeBSD inicialmente resistiu `a 
          "pressao" em assumir o ELF como formato padrao. Por que? Bem,       
          quando o campo do Linux resolveu fazer sua dolorosa transic,ao para 
          o formato ELF, nao sobrou muito para ser aproveitado dos formatos   
          a.out especialmente por causa das limitac,oes de tabelas que podiam 
          ser utilizadas em seus cabec,alhos, e isso tornou o desenvolvimento 
          de bibliotecas compartilhadas extremamente arduo para fabricantes e 
          desenvolvedores em geral. Depois disso, as ferramentas ELF          
          comec,aram `a oferecer soluc,oes para o compartilhamento de         
          bibliotecas, soluc,oes que fossem extremamente satisfatorias, e a   
          migrac,ao, apesar dos custos necessarios que a envolvia, foi        
          aceita, e a transic,ao para ELF passou a ser o "caminho `a ser      
          seguido".                                                           
                                                                              
          No caso do FreeBSD, o nosso mecanismo de bibliotecas compartilhadas 
          tem uma base mais proxima do estilo do SunOS, da Sun, e e           
          extremamente facil de ser utilizado. Contudo, `a partir da serie    
          3.0, o FreeBSD oficialmente adotou o formato de binarios ELF como   
          padrao. Apesar do formato a.out sempre ter servido muito bem `as    
          nossas necessidades, o pessoal da GNU, autores de algumas das       
          ferramentas de compilac,ao que nos usamos, simplesmente deixaram de 
          suportar o formato a.out. Tal fato nos forc,ou `a manter versoes    
          distintas do compilador e do linkador, e nos permitiriam usufruir   
          dos esforc,os que nos achassemos interessantes nos desenvolvimentos 
          GNU. Finalmente, a demanda pelo ISO-C++, notaveis compiladores e    
          descompiladores, tambem contribuiram para uma adoc,ao nativa dos    
          binarios ELF nas versoes futuras do FreeBSD.                        
   16.4.  Certo, mas por que existem tantos formatos diferentes?              
          De volta `as origens, em um passado obscuro, existiam apenas        
          hardwares mais simples. Esse hardware simples, suportava sistemas   
          simples e pequenos. A a.out era completamente adequada para o       
          servic,o de representar o formato binario nesses sistemas (os       
          PDP-11). Conforme as pessoas iam portando o Unix desse sistema mais 
          simples, eles mantinham o formato a.out porque era bom o bastante   
          para portar para arquiteturas como o Motorola 68k, VAXen, etc.      
                                                                              
          Entao, algum engenheiro de hardware brilhante, decidiu que se ele   
          pudesse forc,ar o software `a dar conta de algumas coisinhas,       
          alguns truquezinhos, ele poderia entao passar por cima de algumas   
          restric,oes de design, e permitir que a base de sua CPU tivesse um  
          desempenho melhor. Para poder trabalhar como esse novo tipo de      
          hardware (que hoje e conhecido como RISC), a a.out nao se encaixava 
          muito bem em suas func,oes, e entao muitos formatos foram           
          desenvolvidos afim de obter melhor performance desse hardware, que  
          a simples a.out nao podia comportar. Coisas como COFF, ECOFF e      
          outras ainda mais obscuras foram inventadas, e todas suas           
          limitac,oes foram exploradas, ate que se resultasse o formato ELF.  
                                                                              
          Em adic,ao, o tamanho dos programas passou a crescer, e os discos   
          (assim como a memoria fisica) ainda eram relativamente pequenos,    
          entao nasceu o conceito de compartilhamento de bibliotecas. O       
          sistema de Memoria Virtual (VM) tambem se tornou mais sofisticado.  
          Cada um desses avanc,os eram feitos utilizando-se o formato a.out,  
          e o seu uso crescia mais e mais com cada nova caracteristica.       
          Depois, as pessoas comec,aram a querer que as coisas fossem         
          dinamicamente carregadas em tempo de execussao, ou entao queriam    
          poder descartar algum trecho de seus programas depois que seu       
          codigo de inicializac,ao tivesse sido executado, de modo `a         
          economizar memoria principal ou mesmo Swap. As linguagens de        
          programac,ao se tornaram mais sofisticadas, entao as pessoas        
          queriam codigos com chamadas automaticas antes do programa          
          principal (main). Comec,ou-se entao a hackear a a.out de forma que  
          ela pudesse suprir essas necessidades. E de fato por algum tempo    
          ela as supriu. Depois a a.out passou a nao suportar mais            
          determinados problemas sem resultar em uma sobrecarga ou            
          complexidade exagerada de codigo. Por outro lado, o formato ELF     
          resolvia a maioria desses problemas, mas seria doloroso demais      
          simplesmente abandonar um formato e sistema que, basicamente        
          funcionavam bem. Entao o formato ELF teve que esperar ate que fosse 
          ainda mais doloroso continuar com o formato a.out do que migrar     
          para ELF.                                                           
                                                                              
          Contudo, com o passar do tempo, as ferramentas de desenvolvimento   
          `as quais o FreeBSD derivava suas proprias ferramentas de           
          desenvolvimento (especialmente o assembler e o carregador - loader) 
          se envolveram em duas arvores paralelas. A arvore do FreeBSD        
          adicionou inumeras bibliotecas compartilhadas, e arrumou inumeros   
          bugs. E a rapaziada do GNU, que originalmente escreviam algumas     
          dessas ferramentas, passaram a rescreve-las e adicionaram suporte   
          para compilac,ao derivada, adoc,oes de formatos diferentes, etc.    
          Depois pensou-se em desenvolver um formato derivado, visando o      
          FreeBSD, mas nao obteve-se sorte o bastante, especialmente porque   
          os fontes antigos do "ld" do FreeBSD nao davam conta da tarefa. A   
          corrente de novas ferramentas GNU (as chamadas binutils) agora      
          suportam compilac,ao derivada, formato ELF, bibliotecas             
          compartilhadas, extensoes de C++, etc, etc. Em adic,ao ainda,       
          muitos fabricantes passaram `a lanc,ar binarios ELF, e entao, por   
          que continuar nos chateando com o formato a.out? A a.out e um       
          cavalo velho e muito cansado, que ja provou ser extremamente util   
          no passado, mas agora esta na hora de tira-lo do pasto, como        
          recompensa por seus longos e fieis anos de servic,o.                
                                                                              
          O formato ELF e mais expressivo do que o a.out, e vai permitir      
          muito mais extensibilidade `a base do sistema. As ferramentas ELF   
          sao mantidas de forma mais confiavel, e oferecem suporte `a         
          compilac,ao derivada, o que e importante para muita gente. O        
          formato ELF e um pouco mais lento do que o formato a.out, mas e     
          quase impossivel comparar ambos, existem inumeros detalhes que os   
          fazem diferentes, desde o mapeamento de paginas de memoria, ate a   
          forma como eles tratam o codigo de inicializac,ao de um binario     
          (init code). Nenhuma dessas questoes e importante, mas existem      
          diferenc,as. Com o tempo, o suporte para o formato a.out vai ser    
          retirado do kernel GENERIC, e eventualmente sera retirado em        
          definitivo do kernel, uma vez que a necessidade de rodar programas  
          a.out tenham se tornado passado.                                    
   16.5.  Por que o chmod nao modifica as permissoes dos links simbolicos?    
          Links simbolicos nao tem permissoes, e por padrao, o chmod(1) nao   
          vai seguir os links afim de mudar as permissoes do arquivo          
          original. Portanto, se voce tem um arquivo qualquer, e um link      
          simbolico para esse arquivo, o seguinte comando vai lhe servir.     
                                                                              
          % chmod g-w <link simbolico>                                        
                                                                              
          Contudo, as permissoes para o arquivo original nao serao alteradas. 
          Mas se voce usar a opc,ao -H ou -L em conjunto com -R, voce vai     
          poder altera-la. Veja as paginas de manuais do chmod(1) e do        
          symlink(7) para mais informac,oes.                                  
                                                                              
            Atenc,ao:                                                         
                                                                              
          A opc,ao -R resulta em um chmod(1) RECURSIVO. Tome muito cuidado    
          quando for definir diretorios ou links simbolicos com chmod(1). Se  
          voce quer alterar as permissoes dentro do diretorio referenciado    
          pelo symlink, entao basta usar o chmod(1) sem qualquer outra        
          opc,ao, mas com uma barra /. Por exemplo, se A for um link          
          simbolico para o arquivo original B, entao para alterar sua         
          permissao basta um simples:                                         
                                                                              
          % chmod 555 A/                                                      
                                                                              
          Com essa barra, o chmod(1) vai seguir o link simbolico para mudar   
          as permissoes do arquivo original.                                  
   16.6.  Por que os nomes de login (ou username) sao restritos `a 8          
          caracteres no FreeBSD 2.2.X e anteriores?                           
          Voce pode pensar que seria bem confortavel simplesmente mudar o     
          UT_NAMESIZE e depois recompilar todo o sistema operacional, ai tudo 
          iria funcionar maravilhosamente bem. Infelizmente nao e assim que   
          as coisas funcionam, existem estruturas de aplicac,oes e            
          utilitarios (incluindo ferramentas do sistema) que foram            
          codificadas utilizando numeros pequenos (nem sempre 8 ou 9, mas     
          alguns valores mais arbitrarios como 15 e 20) em estruturas e       
          buffers. Voce nao vai ter problemas apenas com arquivos de logs,    
          que serao inutilizados (devido ao tamanho variavel dos dados        
          gravados, quando apenas um tamanho constante era esperado), mas vai 
          tambem ter problemas com clientes NIS de maquinas Sun, e            
          potencialmente provocar outros problemas ao interagir com outros    
          sistemas Unix.                                                      
                                                                              
          No FreeBSD 3.0 e posteriores, o tamanho maximo do nome de usuario   
          foi elevado para 16 caracteres, e todas as ferramentas e trechos do 
          codigo principal do sistema que poderiam apresentar problemas em    
          relac,ao `a isso, foram encontradas e corrigidas. O fato dessa      
          alterac,ao mudar tantos fatores importantes no sistema e que,       
          nenhuma mudanc,a tinha sido feita ate a versao 3.0.                 
                                                                              
          Se voce confia completamente em suas habilitades para procurar e    
          corrigir esses provaveis problemas sozinho, entao basta aumentar o  
          tamanho do nome de usuario no arquivo /usr/include/utmp.h e mudar a 
          UT_NAMESIZE para o valor desejado. Voce tambem vai ter que          
          atualizar o MAXLOGNAME no /usr/include/sys/param.h para ficar de    
          acordo com a mudanc,a no UT_NAMESIZE. Finalmente, se voce vai       
          recompilar os fontes, nao se esquec,a que o /usr/include e          
          atualizado sempre. Mude entao os arquivos apropriados em            
          /usr/src(...) para garantir que voce vai estar alterando sempre a   
          fonte do problema, e nao apenas a instancia instalada, no sistema.  
   16.7.  Posso rodar binarios do DOS sob FreeBSD?                            
          Sim, `a partir da versao 3.0, voce pode utilizar o emulador doscmd  
          da BSDI. A emulac,ao DOS desse aplicativo foi totalmente redefinida 
          depois da sua integrac,ao do FreeBSD. Entre na lista de discussao   
          sobre a emulac,ao de outros sistemas operacionais no FreeBSD se     
          voce tem interesse em se juntar ao grupo que se esforc,a nessa      
          jornada.                                                            
                                                                              
          Em sistemas anteriores ao 3.0, existe um utilitario nao muito       
          interessante, chamado pcemu no Ports. O pcemu emula um 8088 e       
          algumas func,ao de BIOS que sao o bastante para rodar aplicac,oes   
          DOS que sejam textuais. Ele requer o X, sistema de interface        
          grafica (XFree86).                                                  
   16.8.  O que eu preciso para traduzir um documento do FreeBSD para a minha 
          lingua nativa?                                                      
          Veja o FAQ de Traduc,ao no FreeBSD Documentation Project Primer.    
   16.9.  Por que meu e-mail para qualquer enderec,o em FreeBSD.org sempre    
          falha?                                                              
          O sistema de correio eletronico do site FreeBSD.org implementa      
          algumas das restric,oes do Postfix, verificando nas mensagens que   
          estao chegando, se elas estao sendo entregues por algum servidor    
          mal configurado, ou se representa algum tipo de SPAM em potencial.  
          As suas mensagens podem estar voltando por algum dos seguintes      
          motivos:                                                            
                                                                              
            * A mensagem esta sendo enviada de um dominio ou bloco de         
              enderec,os IP reconhecidamente utilizados para SPAM.            
                                                                              
              Os servidores de correio eletronico do projeto FreeBSD rejeitam 
              mensagens de qualquer fonte de SPAM conhecida. Se voce utiliza  
              os servic,os de uma empresa que costuma fazer SPAM ou permitir  
              que seus clientes o fac,am, por gentileza, mude o seu provedor  
              de servic,os, para um que nao permite tal pratica.              
                                                                              
            * O corpo da mensagem contem apenas HTML.                         
                                                                              
              Mensagens de correio eletronico devem ser enviadas apenas como  
              texto puro. Mensagens de e-mail nao sao web sites. Configure o  
              seu cliente de correio eletronico de modo que ele apenas envie  
              mensagens de texto puro.                                        
                                                                              
            * Os servidores da FreeBSD.org nao conseguem resolver o seu       
              enderec,o IP para o nome da estac,ao que esta entregando a      
              mensagem eletronica.                                            
                                                                              
              Por padrao, ter registros de DNS reverso e um dos requisitos    
              para que nossos servidores recebam sua mensagem. Configure o    
              DNS reverso para o IP do seu servidor de e-mail. Lembre-se que, 
              alguns servic,os residenciais (como ADSL, dialup, cable, etc)   
              nao permitem que voce mesmo configure o seu reverso. Nesse      
              caso, envie sua mensagem pelo servidor de e-mail do seu         
              provedor de servic,os, ou pec,a ao provedor que ajuste o        
              reverso do seu IP.                                              
                                                                              
            * O nome da estac,ao enviada no cabec,alho inicial EHLO/HELO,     
              parte do protocolo de envio SMTP nao pode ser resolvido em um   
              enderec,o IP correspondente.                                    
                                                                              
              O servidor que esta tentando entregar a mensagem deve ter o     
              registro de nomes configurado corretamente, de forma que o nome 
              da estac,ao possa ser resolvido em um enderec,o IP. Caso sua    
              estac,ao nao tenha um registro DNS configurado, utilize o       
              servidor de correio eletronico do seu provedor de servic,os.    
                                                                              
            * Sua mensagem teve uma identificac,ao que terminava com o        
              conjunto de caracteres "localhost".                             
                                                                              
              Alguns clientes de correio eletronico geram ID -                
              identificac,oes - das mensagens de forma impropria. Nesse caso, 
              o seu servidor de correio deve redefinir o ID da mensagem, ou   
              voce deve reconfigura-lo de modo que ele gere tal               
              identificac,ao de forma aceitavel.                              
   16.10. Onde eu consigo uma conta gratuita em um FreeBSD?                   
          O Projeto FreeBSD nao permite acesso publico a nenhum dos seus      
          servidores, contudo algumas empresas oferecem acesso irrestrito `a  
          sistemas Unix. Os prec,os variam, e alguns servic,os limitados      
          podem ser disponibilizados.                                         
                                                                              
          A Arbornet, Inc, tambem conhecida como M-Net, prove acesso `a       
          sistemas Unix desde 1983. Inicialmente rodando sob um System III em 
          arquitetura Altos, o site mudou seu sistema para BSD/OS em 1991. Em 
          junho de 2000 o site mudou novamente seu sistema para FreeBSD. A    
          M-Net pode ser acessada via telnet e SSH, e proporciona acesso      
          basico a uma gama completa de softwares do FreeBSD. Contudo, o      
          acesso `a rede e limitado aos membros e patronos da instituic,ao,   
          que fazem doac,oes `a empresa, uma vez que a mesma e uma            
          organizac,ao sem fins lucrativos. A M-Net tambem oferece um Boletim 
          periodico e Chat interativo.                                        
                                                                              
          A Grex tambem oferece um acesso parecido com o da M-Net, inclusive  
          com os mesmos servic,os, contudo a maquina e uma Sun 4M e seu       
          sistema Unix e o SunOS. Vale pela curiosidade, e para comparac,ao   
          entre os sistemas.                                                  
   16.11. O que e sup, e como eu uso isso?                                    
          SUP significa Protocolo de Atualizac,ao de Programa (Software       
          Update Protocol ), e foi desenvolvido pela CMU para manter suas     
          arvores de desenvolvimento sempre sincronizadas. Nos utilizamos     
          esse protocolo para manter alguns sites remotos em sincronia com os 
          nossos servidores centrais de desenvolvimento.                      
                                                                              
          SUP nao e amigavel com a banda de tramissao (consome muita banda) , 
          e por isso foi aposentado. Atualmente recomendados que voce fac,a   
          uso do CVSup para manter seus fontes atualizados.                   
   16.12. Qual o nome daquele capetinha vermelho simpatico?                   
          Ele nao tem um nome, e simplesmente chamado de "the BSD daemon". Se 
          voce insiste em dar um nome `a ele, por gentileza, chame-o de       
          "beastie" ;-) Note que "beastie" se pronuncia "BSD".                
                                                                              
          Voce pode saber mais sobre o BSD daemon na sua home page.           
   16.13. Posso usar a imagem do BSD daemon?                                  
          Talvez. O BSD daemon e de direitos autorais de Marshall Kirk        
          McKusick. Voce deve pedir a permissao do McKusick para usar a       
          imagem do BSD Daemon, e pedir para saber os termos de utilizac,ao   
          da figura publica do nosso querido capetinha ;-)                    
                                                                              
          Resumindo, voce pode fazer uso da imagem dele, dependendo da        
          maneira, para uso pessoal, por exemplo. Se os creditos apropriados  
          forem dados, tudo bem. Para fazer uso comercial da imagem, ai sim   
          voce deve falar com o McKusick, e dar uma olhada na home page do    
          BSD Daemon para mais detalhes..                                     
   16.14. Voces tem algumas imagens do BSD daemon que eu poderia usar?        
          Voce vai encontrar algumas figuras em eps e Xfig sob o diretorio    
          /usr/share/examples/BSD_daemon/.                                    
   16.15. O que significa MFC?                                                
          MFC e um acronimo para "obtido a partir do ramo -CURRENT" (Merged   
          From -CURRENT). E usado nos logs do CVS para identificar uma        
          mudanc,a que seja originada e migrada da serie de desenvolvimento   
          (-CURRENT) para serie estavel (-STABLE).                            
   16.16. O que significa BSD?                                                
          O significado da sigla BSD e algo, em uma lingua secreta que apenas 
          os membros podem saber. Literalmente nao seria possivel traduzir    
          BSD para uma lingua que voce pudesse entender, mas poderiamos       
          tentar explicar seu significado como algo bem proximo de "Equipe de 
          Formula-1", "Penguins sao aperitivos saborosos", e tambem "Nos      
          temos mais senso de humor do que o Linux". :-)                      
                                                                              
          A versao seria e que BSD e um acronimo para "Berkeley Software      
          Distribution", que e o nome que o Grupo de Pesquisa de Ciencia da   
          Computac,ao da Universidade de Berkeley - Berkeley CSRG (Computer   
          Systems Research Group) - escolheu para sua propria distribuic,ao   
          do Unix.                                                            
   16.17. O que significa POLA?                                               
          E o Principio de Menor Alterac,ao. Significa que durante o processo 
          de desenvolvimento do FreeBSD, toda e qualquer modificac,ao que     
          seja visivel para o usuario, deve ser menos surpreendente possivel, 
          mantendo assim uma compatibilidade previa com a forma de            
          utilizac,ao do sistema. Por exemplo, nao se pode alterar            
          arbitrariamente as variaveis dos scripts de configurac,ao do        
          sistema, em /etc/defaults/rc.conf, pois esse tipo de ac,ao violaria 
          a POLA. O desenvolvimento do FreeBSD apenas considera POLA quando   
          as alterac,oes sao visiveis pelo usuario.                           
   16.18. O que e um repo-copy?                                               
          Um repo-copy (que e uma forma breve de chamar um "repository copy") 
          e simplesmente a copia direta de arquivos em um repositorio CVS.    
                                                                              
          Sem um repo-copy, uma alterac,ao por parte de algum mantenedor, se  
          tornaria uma copia comum, originada via cvs, seguida de um rm para  
          deletar o arquivo original que tivesse sido modificado.             
                                                                              
          Esse processo contudo, resulta em uma nao constatac,ao historica do 
          arquivo antigo, nos novos registros de log. O Projeto FreeBSD       
          considera extremamente importante a manutenc,ao desse historico, e  
          por isso as copias de repositorio sao frequentemente utilizadas.    
          Nesse processo, um dos repositorios centrais vai copiar os arquivos 
          diretamente para outro repositorio, e nao simplesmente fazer uma    
          sincronia com o programa cvs(1).                                    
   16.19. Porque eu devo me preocupar com a cor do quartinho de bicicletas    
          (bikeshed)?                                                         
          A resposta mais curta, e que voce nao deve. A resposta longa e que, 
          so porque voce e capaz de fazer quarto para guardar sua propria     
          bicicleta, voce nao pode fazer as outras pessoas pararem de         
          construir seus proprios quartinhos tambem, simplesmente porque voce 
          nao gosta da cor que as pessoas os pintam. Essa metafora indica que 
          voce nao tem que argumentar nem reclamar sobre cada coisinha, so    
          porque tem conhecimento o bastante para critica-la. Algumas pessoas 
          dizem que a quantidade de barulho provocada por uma alterac,ao e    
          inversamente proporcional `a complexidade da mudanc,a.              
                                                                              
          A resposta ainda mais completa, e maior, e que, depois de muita     
          discussao sobre quando o sleep(1) deveria trabalhar com argumentos  
          de segundos fracionados, Poul-Henning Kamp enviou uma mensagem,     
          longa, chamada de "Um quarto de bicicleta (qualquer cor serve) em   
          um gramado mais verde...". As partes devidas da mensagem estao      
          citadas abaixo.                                                     
                                                                              
            "O que e isso sobre a cor do quartinho da bicicleta?" Alguns de   
            voces me perguntaram.                                             
                                                                              
            E uma longa historia, ou melhor, e uma antiga historia, mas       
            pode ser meio curta na verdade. Um cara chamado C. Northcote      
            Parkinson escreveu um livro em meados de 1960 chamado de "A Lei   
            de Parkinson", que continha varios insights sobre as dinamicas    
            da administrac,ao.                                                
                                                                              
            [trechos irrelevantes foram cortados]                             
                                                                              
            Vamos deixar de falar sobre o livro em si, mas vamos tratar       
            apenas um exemplo. O exemplo especifico, do caso do quartinho     
            da bicileta, tem outro componente de vital importancia, que e     
            uma usina nuclear. Isso ilustra a epoca que o livro foi           
            escrito.                                                          
                                                                              
            Parkinson mostra como voce pode fazer para chegar em um corpo     
            de diretores de uma empresa e convence-los a construir uma        
            usina atomica multi-milhionaria ou ate mesmo bilhionaria, mas     
            diz que se voce abordar os diretores da mesma forma, tentando     
            aprovar a construc,ao de um quartinho de bicicleta, voce vai      
            cair em uma discussao profunda, e sem fim.                        
                                                                              
            Parkinson explica que isso acontece porque uma usina atomica e    
            tao vasta, tao cara e tao complicada que as pessoas               
            simplesmente preferem nao discutir, e mesmo que tentem faze-lo,   
            eles assumem que alguem ja observou todos os detalhes possiveis   
            antes que tal proposta chegasse `a tal ponto. Richard P.          
            Feunmann da alguns exemplos interessantes, sobre o que acontece   
            em Los Alamos em seus livros.                                     
                                                                              
            Por outro lado, um barracao de bicicleta pode ser construido      
            por qualquer um, em um fim de semana qualquer, e ainda sobraria   
            tempo ao seu desenvolvedor para assistir o jogo na TV. Entao,     
            nao importa o quao bem preparado voce esteja, alguem vai sempre   
            querer aparecer diante de uma situac,ao dessas, e querer          
            discutir as coisas mais pequenas possiveis. Na Dinamarca isso     
            se chama "Deixar sua marquinha". Envolve prestigio e orgulho      
            pessoal, envolve a possibilidade de apontar para algum lugar      
            (qualquer lugar que seja) e apontar dizendo "Aquilo! Eu fiz       
            aquilo" (o que quer que aquilo seja). Isso e comum em             
            politicos, mas aparece em qualquer pessoa a quem se de a          
            chance. Simplesmente pense em pegadas, no cimento fresco."        
              --Poul-Henning Kamp na freebsd-hackers, em 2 de Outubro de 1999 
                                                                              
          Na verdade, um "quartinho de bicicletas" ou "barracao de            
          bicicletas" e uma traduc,ao literal para a expressao "bikeshed";    
          comumente utilizada na lingua inglesa. Um "bikeshed", no            
          significado definido pelo dicionario norte americano e um pequeno   
          quarto ou barrac,ao nao raramente encontrado no fundo de uma casa,  
          que e utilizado para guardar bicicletas e outras coisas pequenas.   
          Normalmente os norte americanos constroem esses quartinhos eles     
          mesmos, de madeira, no fundo de suas casas ou proximos `a garagem   
          de automoveis. A expressao e normalmente utilizada pelos            
          desenvolvedores do FreeBSD quando se comec,a uma discussao sobre    
          algum assunto que nao e tao importante para o bom funcionamento de  
          alguma outra coisa, como por exemplo, qual a importancia da cor de  
          um quartinho de bicicletas, quando o mesmo ja esta construido e     
          servindo bem ao seu proposito?                                      

                      Capitulo 17. As gracinhas do FreeBSD

   17.1. Quao fresco e o FreeBSD?

   17.2. Quem esta arranhando meus pentes de memoria??

   17.3. Quantos FreeBSD hackers sao necessarios para trocar uma lampada?

   17.4. Para onde vao os dados que sao escritos no dispositivo /dev/null ?

   17.1. Quao fresco e o FreeBSD?                                             
         P. Alguem ja fez algum tipo de teste de temperatura ao rodar o       
         FreeBSD? Eu sei que o Linux costuma ser mais fresco que o DOS, mas   
         nunca ouvi falar nada a respeito do FreeBSD. Parece que ele e um     
         sistema muito caliente!                                              
                                                                              
         R. Nao, mas nos ja fizemos varios testes de sabor com usuarios       
         vendados que, alem de tudo, haviam tomado 250 microgramas de LSD-25. 
         35% dos voluntarios disseram que o FreeBSD tinha um sabor parecido   
         com laranja, enquanto o Linux tinha sabor de nevoa purpura. Nenhum   
         dos dois grupos comentou nada significante sobre a variac,ao de      
         temperatura. Eventualmente, tivemos que jogar o resultado desses     
         testes fora, ja que descobrimos que varios desses voluntarios        
         estavam vagando fora do quarto, prejudicando os resultados.          
         Acreditamos que hoje, a maioria desses voluntarios trabalhe na       
         Apple. Eles devem estar criando novas interfaces graficas do tipo    
         "arranha e cheira". E um trabalho divertido e classico, do qual nos  
         fazemos parte!                                                       
                                                                              
         Falando serio, o FreeBSD e o Linux usam as instruc,oes HLT (halt)    
         quando o sistema esta inativo. Isto diminui consideravelmente o      
         consumo de energia e, consequ:entemente, o aquecimento que ele       
         proporciona. Alem disso, se seu sistema possui APM (sistema          
         avanc,ado de gerenciamento de energia) configurado, o FreeBSD coloca 
         a CPU em modo de consumo menor de energia.                           
   17.2. Quem esta arranhando meus pentes de memoria??                        
         P. Existe alguma "bruxaria" que o FreeBSD faz ao compilar o kernel   
         que, por ventura, estaria fazendo meus pentes de memoria fazer       
         barulhos estranhos, como se estivessem sendo arranhados? Durante a   
         compilac,ao do sistema (e um pouquinho depois, assim que a unidade   
         de disquete e reconhecida, e apos a inicializac,ao tambem), um       
         barulho estranho de arranhos comec,a a emanar de algum lugar que     
         parece ser os pentes de memoria.                                     
                                                                              
         R. Claro! Com muita frequencia, voce vai ouvir falar dos "daemons"   
         na documentac,ao do BSD. O que a maioria das pessoas nao sabem e que 
         essa e uma referencia genuina `as entidades nao-corporais que estao  
         possuindo o seu computador. O barulho que parece o som de alguma     
         coisa sendo arranhada, na verdade sao sussuros em tons extremamente  
         agudos que os "daemonios" emanam, ao decidir entre si as melhores    
         maneiras de tratar as varias tarefas referentes `a administrac,ao do 
         seu sistema.                                                         
                                                                              
         Se o barulho te dominar, um bom fdisk /mbr no DOS pode fazer voce se 
         livrar dos sons, mas nao se surpreenda se a reac,ao dos daemons      
         forem adversas, ao tentar evitar que voce fac,a isso. Na verdade, ha 
         qualquer momento, e possivel que voce ouc,a a voz satanica do Bill   
         Gates pelo auto-falante interno do seu PC. Se isso acontecer, CORRA! 
         Corra sem parar e nao olhe para tras por qualquer que seja o motivo! 
         Depois de se liberarem das influencias contrastantes dos daemons     
         BSD, os demonios gemeos do DOS e do Windows costumam ter sucesso ao  
         repossuir total controle do seu computador, e depois disso, o tempo  
         garantira que eles consigam a dominac,ao total da sua alma. Agora    
         que voce ja conhece a verdade, esperamos que sua escolha seja        
         conviver com os barulhinos agudos. Ou nao?                           
   17.3. Quantos FreeBSD hackers sao necessarios para trocar uma lampada?     
         Mil cento e sessenta e nove:                                         
                                                                              
         Vinte e tres para reclamarem no -CURRENT que estao sem luz;          
                                                                              
         Quatro para dizer que e um problema na configurac,ao, e que essa     
         pergunta deveria ser feita na freebsd-questions;                     
                                                                              
         Tres para enviar Relatorio de Problemas sobre a lampada, dos quais   
         ao menos um, nao esta completamente concluido, e consiste apenas de  
         um breve "ta escuro";                                                
                                                                              
         Um para adicionar uma lampada que nunca foi testada, que danifica    
         todo o buildworld e depois de 5 minutos tem que ser retirada;        
                                                                              
         Oito para reclamarem para os autores dos Relatorios de Problemas por 
         nao ter incluido correc,oes em seus relatorios;                      
                                                                              
         Cinco para reclamar que o buildworld nao esta funcionando;           
                                                                              
         Trinta e um para responder que funciona para eles, e que os          
         problematicos devem ter feito CVSup na hora errada;                  
                                                                              
         Um para enviar uma correc,ao para a nova lampada na freebsd-hackers; 
                                                                              
         Um para reclamar que ele tinha correc,oes para essa lampada ha 3     
         anos, mas que quando elas foram enviadas para o -CURRENT, foram      
         simplesmente ignoradas, e que sua experiencia com o sistema de       
         Relatorio de Problemas nao foram as melhores possiveis; alem disso a 
         nova lampada proposta nao era reflexiva;                             
                                                                              
         Trinta e sete para gritarem em alto e bom som que as lampadas nao    
         fazem parte da base do sistema, e que os desenvolvedores nao tem o   
         direito de sair fazendo esse tipo de coisa sem antes consultar a     
         comunidade, e O QUE O -CORE ESTA FAZENDO SOBRE ISSO!?                
                                                                              
         Duzendos para reclamar da cor do quartinho de bicicletas;            
                                                                              
         Tres para dizer que a correc,ao enviada nao esta de acordo com os    
         padroes que o codigo do kernel deve ter, conforme documentado na     
         pagina de manual do style(9);                                        
                                                                              
         Dezessete para reclamar que a nova lampada proposta esta licenciada  
         sob a Licenc,a Publica Geral GNU (GPL);                              
                                                                              
         Quinhentos e oitenta e seis para entrarem de corpo e alma em uma     
         discussao sobre as vantagens comparativas entre a licenc,a Publica   
         Geral GNU (GPL), a licenc,a BSD, a licenc,a do MIT, a NPL e a        
         higiene pessoal dos fundadores da Free Software Foundation;          
                                                                              
         Sete para copiar varios trechos da discussao para a lista de         
         discussao freebsd-chat e para a freebsd-advocacy;                    
                                                                              
         Um para trocar a nova lampada sugerida, apesar de a nova brilha bem  
         menos que a antiga;                                                  
                                                                              
         Dois para retirarem a lampada furiosos, dizendo que o FreeBSD esta   
         melhor no escuro do que com uma lampada tao fraca;                   
                                                                              
         Quarenta e seis para contestarem vorazmente sobre a retirada da      
         lampada fraca e escreverem um relatorio para o -core;                
                                                                              
         Onze para dar a ideia de criar uma lampada menorzinha, que poderia   
         caber no Tamagotchi deles, se um dia nos decidirmos portar o FreeBSD 
         para tal plataforma;                                                 
                                                                              
         Setenta e tres para reclamar da razao sinal versus ruido na          
         freebsd-chat e na freebsd-hackers, e se retirarem das listas em      
         protesto;                                                            
                                                                              
         Treze para enviarem mensagens com o conteudo "unsubscribe", "Como eu 
         saio da lista?", ou "Por favor, me tirem da lista", seguidas do      
         rodape tradicional do servidor de discussao com as instruc,oes para  
         sair da lista;                                                       
                                                                              
         Um, para adicionar uma nova lampada que funciona bem, enquanto todos 
         os outros estao ocupados demais com a discussao para perceber que    
         alguem ja trocou a lampada por uma funcional;                        
                                                                              
         Trinta e um para afirmar que a nova lampada brilha em media 0.364%   
         mais, se comparada com as lampadas TenDRA (contudo, ela tera que ser 
         refeita em formato de cubo) e que o FreeBSD deveria mudar para       
         TenDRA ao inves do GCC;                                              
                                                                              
         Um para reclamar que a nova lampada nao e honesta;                   
                                                                              
         Nove (incluindo aqueles que enviaram os Relatorios de Problemas)     
         para perguntar "o que significa MFC?";                               
                                                                              
         Cinquenta e sete para reclamar que ficaram no escuro por duas        
         semanas ate que a lampada fosse trocada.                             
                                                                              
         Um adendo do Nik Clayton:                                            
                                                                              
         Eu estava rindo um bocado aqui.                                      
                                                                              
         Ai pensei, "Perai, nao deveria ter ao menos '1 para documentar a     
         nova lampada' em algum lugar?                                        
                                                                              
         Dai eu fui iluminado :-)                                             
   17.4. Para onde vao os dados que sao escritos no dispositivo /dev/null ?   
         Esses dados sao enviados para um dissipador especial da CPU que os   
         converte em calor, para que depois sejam ventilados pelo cooler do   
         computador. E por isso que o esfriamento do processador e cada vez   
         mais importante; quanto mais rapido os processadores se tornam,      
         menos importancia os usuarios dao `a seus dados, por isso cada vez   
         mais lixo e enviado para o /dev/null, gerando um superaquecimento    
         das CPUs. Se o /dev/null for apagado (dessa forma desabilitando o    
         dissipador de dados da CPU), o sistema vai rodar a uma temperatura   
         mais amena. Contudo, o computador vai manter tanto lixo inutil       
         existente, que o sistema vai logo comec,ar a falhar. Se voce tiver   
         uma conexao de rede bem rapida, da para resfriar o computador lendo  
         todos os dados criados na /dev/random e enviando-os para algum lugar 
         da rede. Contudo existe o risco de superaquecer sua rede ou do       
         Provedor de Servic,o Internet ficar meio bravo com voce, ja que todo 
         esse calor normalmente e recebido pelo equipamento do provedor. Mas  
         nao se preocupe, os provedores tem grandes ventiladores para esfriar 
         suas maquinas, entao se voce nao insistir nisso com muita            
         frequencia, vai ficar tudo bem.                                      
                                                                              
         Adendo de Paul Robinson:                                             
                                                                              
         Existem outros metodos. Como todo bom administrador de sistemas      
         sabe, faz parte da pratica comum enviar dados das mais variadas      
         especies para a tela. Isto mantem todos os pixies (pixie significa   
         fadinhas em ingles) de tela felizes. Os pixies de tela (normalmente  
         escritos com erro de ortografia, como 'pixels') sao divididos de     
         acordo com o tipo de bone que eles usam (vermelho, verde ou azul) e  
         costumam aparecer ou sumir (mostrando a cor de seus bones) sempre    
         que eles ganham alguma coisinha para comer. As placas de video       
         transformam os dados em comida de pixies, e manda essa comida para   
         eles. Quanto mais cara for a placa de video, melhor e a qualidade da 
         comida. Dessa forma, mais felizes ficam os pixies. Os pixies tambem  
         precisam ser constantemente estimulados - e para isso que existem as 
         protec,oes de telas.                                                 
                                                                              
         Entao, para seguir a sugestao anterior, e interessante mandar todos  
         os dados que sairem do /dev/random para a tela do console, para      
         alimentar os pixies. Isso nao causa nenhum aquecimento do            
         computador, e em contrapartida, faz os pixies viverem mais felizes,  
         e ainda pode ser que fac,a voce se livrar rapidamente de todos os    
         dados existentes no /dev/random, mesmo considerando que a tela fique 
         um pouco confusa.                                                    
                                                                              
         Como um ex-administrador de um provedor que teve algumas mas         
         experiencias tentando manter a estabilidade da temperatura da sala   
         dos servidores, eu recomendo sinceramente que as pessoas nao tentem  
         enviar todos os seus dados para a rede. Existem umas pequenas        
         fadinhas encantadas que fazem a alternancia dos pacotes de redes, e  
         que fazem o roteamento desses mesmos pacotes. Algumas vezes essas    
         fadinhas ficam meio revoltadas com os usuarios malvados que ficam    
         mandando seus dados inuteis para a rede.                             

                        Capitulo 18. Topicos Avanc,ados

   18.1. Como eu posso aprender mais sobre as caracteristicas internas do
   FreeBSD?

   18.2. Como posso contribuir com o projeto FreeBSD?

   18.3. O que sao SNAPs e RELEASEs?

   18.4. Como fac,o a minha propria distribuic,ao personalizada?

   18.5. Por que o make world sobrescreve os binarios ja instalados?

   18.6. Por que quando meu sistema inicializa, ele diz "(bus speed
   defaulted)"?

   18.7. Posso acompanhar a serie -CURRENT mesmo tendo acesso limitado `a
   Internet?

   18.8. Como o FreeBSD foi dividido em arquivos de 240k?

   18.9. Eu escrevi uma extensao para o kernel; a quem eu envio?

   18.10. Como as placas Plug N Play ISA sao detectadas e inicializadas?

   18.11. Voces podem definir um numero principal para um driver de
   dispositivo que eu escrevi?

   18.12. E sobre politicas alternativas de layout de diretorios?

   18.13. O que fazer com os dados que eu vejo quando tenho um kernel panic?

   18.14. Por que a dlsym() nao funciona mais nos executaveis ELF?

   18.15. Como eu posso aumentar ou reduzir o espac,o de enderec,amento
   disponivel para o kernel?

18.1.  Como eu posso aprender mais sobre as caracteristicas internas do FreeBSD?                    
       Atualmente nao ha nenhum livro especifico sobre as caracteristicas internas do Sistema       
       Operacional FreeBSD. Contudo, a maior parte do conhecimento generico sobre UNIX pode ser     
       aplicado diretamente a ele. Alem disso existem livros especificos para sistemas BSD cuja     
       leitura e recomendada.                                                                       
                                                                                                    
       Para uma lista, verifique a sessao de bibliografia sobre caracteristicas internas dos        
       sistemas operacionais no Manual do FreeBSD.                                                  
18.2.  Como posso contribuir com o projeto FreeBSD?                                                 
       Por gentileza, consulte o artigo Contribuindo com o Projeto FreeBSD para obter algumas dicas 
       sobre o assunto. Toda ajuda e mais que bem vinda!                                            
18.3.  O que sao SNAPs e RELEASEs?                                                                  
       Atualmente existem tres series ativas/semi-ativas no Repositorio CVS do projeto FreeBSD (a   
       RELENG_2 que e provavelmente alterada somente duas vezes ao ano, sendo esta a razao de       
       termos somente tres series em desenvolvimento):                                              
                                                                                                    
         * RELENG_2_2 ou 2.2-STABLE                                                                 
                                                                                                    
         * RELENG_3 ou 3.X-STABLE                                                                   
                                                                                                    
         * RELENG_4 ou 4-STABLE                                                                     
                                                                                                    
         * HEAD ou -CURRENT ou 5.0-CURRENT                                                          
                                                                                                    
       HEAD nao e um nome de uma tag de serie, como os outros dois; e somente uma constante         
       simbolica para "o atual desenvolvimento corrente, mas nao de serie" a qual nos simplesmente  
       nos referimos como "-CURRENT".                                                               
                                                                                                    
       Neste momento, a "-CURRENT" se refere ao desenvolvimento atual do FreeBSD 5.0. A serie       
       4-STABLE, RELENG_4 originou-se da "-CURRENT" em Marc,o de 2000.                              
                                                                                                    
       A serie 2.2-STABLE, RELENG_2_2, originou-se da "-CURRENT" em Novembro de 1996, e foi         
       praticamente descontinuada.                                                                  
18.4.  Como fac,o a minha propria distribuic,ao personalizada?                                      
       Por gentileza, consulte o artigo sobre a Engenharia de Releases..                            
18.5.  Por que o make world sobrescreve os binarios ja instalados?                                  
       Porque essa e a ideia geral sobre como ele deve funcionar; como seu nome sugere, o make      
       world reconstroi todo o sistema binario a partir do zero, garantindo que o usuario tenha um  
       ambiente limpo e consistente ao final da operac,ao (e por isso que o processo demora tanto). 
                                                                                                    
       Se a variavel de ambiente DESTDIR estiver definida enquanto um make world ou make            
       installworld estiver sendo executado, os binarios recem criados serao distribuidos no        
       diretorio definido em ${DESTDIR}, criando no mesmo uma replica do conteudo do / do sistema.  
       Algumas alterac,oes aleatorias nas bibliotecas compartilhadas podem ocasionar falhas na hora 
       de reconstruir o sistema com o make world.                                                   
18.6.  Por que quando meu sistema inicializa, ele diz "(bus speed defaulted)"?                      
       Os controladores SCSI Adaptec 1542 permitem que o usuario defina a velocidade de acesso ao   
       barramento por meio de software. Algumas versoes mais antigas deste dispositivo tentavam     
       determinar automaticamente a maior velocidade possivel e tentavam ajustar sua velocidade `a  
       esse limite maximo. Descobriu-se contudo, que esse comportamento as vezes era prejudicial, e 
       fazia com que algumas maquinas nao funcionassem de forma adequada, por este motivo essa      
       caracteristica agora vem desabilitada por default, para ativa-la e necessario definir a      
       opc,ao TUNE_1542 no kernel do FreeBSD. Essa opc,ao, em sistemas onde ela se aplica,          
       provavelmente assegura que seus discos sejam acessados de forma mais rapida e eficiente;     
       contudo, em sistemas onde o uso desse algoritmo e inviavel, pode resultar em perda de dados. 
18.7.  Posso acompanhar a serie -CURRENT mesmo tendo acesso limitado `a Internet?                   
       Sim, e possivel acompanhar a serie de desenvolvimento sem precisar baixar sempre todo o      
       codigo fonte do sistema, basta utilizar o recurso de CTM.                                    
18.8.  Como o FreeBSD foi dividido em arquivos de 240k?                                             
       O comando split que acompanha as novas versoes dos sistemas BSD tem uma opc,ao -b que        
       permite dividir os arquivos em limites arbitrarios de bytes.                                 
                                                                                                    
       Eis um exemplo tirado do /usr/src/Makefile.                                                  
                                                                                                    
       bin-tarball:                                                                                 
       (cd ${DISTDIR}; \                                                                            
       tar cf - . \                                                                                 
       gzip --no-name -9 -c | \                                                                     
       split -b 240640 - \                                                                          
       ${RELEASEDIR}/tarballs/bindist/bin_tgz.)                                                     
18.9.  Eu escrevi uma extensao para o kernel; a quem eu envio?                                      
       Por gentileza, consulte o artigo "Contribuindo com o Projeto FreeBSD" para obter mais        
       informac,oes sobre como enviar codigo fonte ao projeto.                                      
                                                                                                    
       E obrigado pelo seu interesse! :)                                                            
18.10. Como as placas Plug N Play ISA sao detectadas e inicializadas?                               
       Por: Frank Durda IV <uhclem@nemesis.lonestar.org>                                            
                                                                                                    
       Simplificando, existem poucas portas de E/S que todas as placas PnP respondem quando o       
       sistema indaga se algum dispositivo esta usando-a. Entao, quando a rotina de procura do PnP  
       comec,a, ele pergunta se ha alguma placa PnP presente, e todas as placas PnP respondem com   
       seus respectivos numeros de modelo para uma leitura de E/S da mesma porta. A rotina de       
       procura recebe entao um sinal wired-OR representando um "sim" `a pergunta em questao. Ao     
       menos um bit positivo constitui essa resposta. Entao o codigo de procura e capaz de fazer    
       com que as placas com o modelo de identificac,ao (atribuido pela Microsoft/Intel) inferior a 
       X sejam colocados em modo "off-line". Ele entao ira verificar se alguma placa respondeu a    
       consulta. Se a resposta for 0 o sistema assume que nao ha placas com identificac,ao acima de 
       X. Depois a rotina de busca verifica se ha alguma placa cujo ID e inferior a X. Se a         
       resposta for positiva, a rotina de busca sabe que ainda existem placas identificadas com um  
       valor menor que X. Ai a busca tenta identificar placas com ID superior `a X (limite / 4) e   
       ordena que entrem em modo off-line. Repete-se o ciclo de pesquisas e identificac,oes nessa   
       forma semi-binaria ate que um numero necessario de interac,oes seja concluido. Ao final do   
       processo o sistema tera identificado todas as placas PnP presentes na maquina em questao,    
       com o numero de interac,oes necessarias sempre menor que 2^64.                               
                                                                                                    
       Os IDs (codigos de identificac,ao) sao dois campos de 32-bits (portanto, 2^64) acrescidos de 
       8 bits que e o checksum (verificac,ao de consistencia de dados). Os primeiros 32 bits        
       identificam o fabricante da placa. Nenhum fabricante assume isso, mas podemos perceber que   
       diferentes tipos de placas do mesmo fabricante costumam ter diferentes identificac,oes de    
       32-bit. O motivo correto, nao se sabe, mas percebe-se que 32 bits exclusivos para os         
       fabricantes chega a ser um exagero.                                                          
                                                                                                    
       Os ultimos 32 bits e um numero serial que torna a identificac,ao dessa placa unica. O        
       fabricante nao pode nunca produzir uma placa que tenha os 32 bits finais iguais, a nao ser   
       que os 32 bits iniciais sejam distintos. Dessa forma e possivel existir varias placas do     
       mesmo tipo e fabricante, e ainda assim todos os 64 bits dessas placas serem unicos.          
                                                                                                    
       Os grupos de 32 bits nunca podem ser todos zero. Isso permite ao wired-OR identificar bits   
       nao nulos durante a procura binaria inicial.                                                 
                                                                                                    
       Uma vez que o sistema tenha identificado todas as IDs presentes, ele vai reativar cada       
       placa, uma por vez (pela mesma porta de E/S) e achar os recursos que cada uma necessita,     
       quais opc,oes de interrupc,oes estao disponiveis, etc. Uma busca e feita em todas as placas  
       para obter estas informac,oes.                                                               
                                                                                                    
       Tal informac,ao e entao combinada com as informac,oes encontradas nos arquivos ECU, no       
       sistema, ou entao da MLB BIOS. O suporte da BIOS PnP e da ECU costuma ser sintetica,         
       portanto os perifericos nao sao exatamente PnP como e dito. Contudo, ao examinar as          
       informac,oes da da BIOS e da ECU, as rotinas de busca podem identificar dispositivos ditos   
       PnP e evitar que eles requeiram recursos tambem necessarios por outros dispositivos, que por 
       sua vez nao podem realocar tais valores automaticamente.                                     
                                                                                                    
       Os dispositivos PnP sao visitados mais uma vez e recebem seus enderec,os de E/S, DMA, IRQ e  
       enderec,amentos atribuidos na memoria. Os dispositivos permaneceram naquela ordem ate a      
       proxima inicializac,ao do sistema, apesar de que nada impede que eles sejam movidos quando   
       se desejar.                                                                                  
                                                                                                    
       Essa explicac,ao e muito simplista, mas provavelmente voce entendeu a ideia geral do         
       comportamento PnP.                                                                           
                                                                                                    
       A Microsoft fez um exame sobre algumas das portas primarias de status de impressoras para    
       fazer PnP, dentro da logica que nenhuma placa poderia decodificar aqueles enderec,os para os 
       ciclos opostos de E/S. Eu encontrei uma placa genuina de impressora IBM que enviou dados     
       decodificados da porta de status durante o comec,o do periodo da proposta de revisao do PnP, 
       mas a Microsoft "ficou brava". Entao eles resolveram fazer um envio para a porta de status   
       da impressora, de forma a justar o enderec,o usado (naquele instante + 0x800) e uma terceira 
       porta de E/S para a leitura que tecnicamente pode ser localizada em qualquer lugar entre     
       0x200 e 0x3ff.                                                                               
18.11. Voces podem definir um numero principal para um driver de dispositivo que eu escrevi?        
       Isso depende se voce pretende tornar o driver disponivel para o publico. Se sim, entao por   
       favor nos mande uma copia do codigo-fonte do driver, mais as devidas modificac,oes para o    
       files.i386, um exemplo do arquivo de configurac,ao, e os devidos codigos do MAKEDEV(8) para  
       criar qualquer arquivo especial que seu dispositivo precise. Se voce nao pode, ou esta       
       impedido por causa de restric,oes de licenc,a, entao o character major number 32 e o block   
       major number 8 estao reservados especificadamente para este proposito; por favor, use-os. De 
       qualquer maneira, nos gostariamos de obter maiores informac,oes sobre seu driver na lista de 
       discussao de assuntos tecnicos relacionados ao FreeBSD.                                      
18.12. E sobre politicas alternativas de layout de diretorios?                                      
       Em resposta a questao da politica de formatos alternativos para diretorios, o esquema que    
       esta atualmente em uso esta imutavel desde quando eu o escrevi em 1983. Eu escrevi aquela    
       politica para o FFS (fast filesystem) original, e nunca o revisei. Ele funciona bem em       
       evitar que os os grupos de cilindros sejam completamente preenchidos. Como muitos de voces   
       notaram, ele funciona mediocremente para procura. A maioria dos sistemas de arquivos sao     
       criados `a partir de arquivos que foram criados por uma primeira procura em profundidade     
       (depth first search, tambem conhecido como ftw). Estes diretorios acabam sendo distribuidos  
       pelo grupo de cilindros, criando assim um cenario horrivel em relac,ao a futuras primeiras   
       buscas de profundidade. Se pudessemos saber o numero total de diretorios a serem criados, a  
       soluc,ao seria criar (total / fs_ncg) por grupo de cilindros antes de move-los.              
       Evidentemente, seria necessario criar um conjunto de metodos heuristicos para adivinhar esse 
       numero. Mesmo usando um pequeno numero fixo, digamos 10, ele produziria um aumento na ordem  
       de magnitude. Para diferenciar restaurac,oes de operac,oes normais (quando o algoritmo atual 
       e provavelmente mais sensivel), voce poderia usar o agrupamento acima de 10 se eles fossem   
       finalizados dentro de uma janela de dez segundos. De qualquer maneira, minha conclusao e que 
       isso e uma area pronta para experimentac,oes.                                                
                                                                                                    
       Kirk McKusick, Setembro de 1998                                                              
18.13. O que fazer com os dados que eu vejo quando tenho um kernel panic?                           
       [Esta sec,ao foi extraida de um e-mail escrito por Bill Paul na freebsd-current por          
       Dag-Erling Smo/rgrav, que arrumou alguns problemas de impressao e adicionou os comentarios   
       entre chaves]                                                                                
                                                                                                    
       From: Bill Paul <wpaul@skynet.ctr.columbia.edu>                                              
       Subject: Re: the fs fun never stops                                                          
       To: Ben Rosengart                                                                            
       Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)                                                  
       Cc: current@FreeBSD.org                                                                      
                                                                                                    
       Ben Rosengart posted the following panic message]                                            
                                                                                                    
       > Fatal trap 12: page fault while in kernel mode                                             
       > fault virtual address   = 0x40                                                             
       > fault code              = supervisor read, page not present                                
       > instruction pointer     = 0x8:0xf014a7e5                                                   
                                       ^^^^^^^^^^                                                   
       > stack pointer           = 0x10:0xf4ed6f24                                                  
       > frame pointer           = 0x10:0xf4ed6f28                                                  
       > code segment            = base 0x0, limit 0xfffff, type 0x1b                               
       >                         = DPL 0, pres 1, def32 1, gran 1                                   
       > processor eflags        = interrupt enabled, resume, IOPL = 0                              
       > current process         = 80 (mount)                                                       
       > interrupt mask          =                                                                  
       > trap number             = 12                                                               
       > panic: page fault                                                                          
                                                                                                    
       [Quando] voce ve uma mensagem como essa, nao e suficiente somente reproduzi-la e envia-la em 
       um e-mail. O valor do ponteiro de instruc,ao (instruction pointer) que eu destaquei acima e  
       muito importante; infelizmente, ele tambem depende de configurac,ao. Em outras palavras, os  
       valores variam de acordo com a exata imagem do kernel que voce estiver usando. Se voce       
       estiver usando uma imagem GENERIC do kernel de um dos snapshots, entao e possivel que alguem 
       acompanhe a func,ao ofensiva, mas se voce esta rodando um kernel customizado entao so voce   
       pode nos dizer aonde a falha ocorreu.                                                        
                                                                                                    
       O que voce deve fazer e isso:                                                                
                                                                                                    
        1. Anote o valor do ponteiro de instruc,ao. Observe que o 0x8: parte do comec,o nao e       
           significante. Nesse caso e o 0xf0xxxxxx que nos queremos.                                
                                                                                                    
        2. Quando o sistema reinicializar, fac,a o seguinte:                                        
                                                                                                    
        % nm -n /kernel.that.caused.the.panic | grep f0xxxxxx                                       
                                                                                                    
           Onde f0xxxxxx e o valor do ponteiro de instruc,ao. As chances sao que voce nao tera um   
           resultado exato visto que os simbolos na tabela de simbolos do kernel sao para os pontos 
           de entrada (entry points) de func,oes e o enderec,o do ponteiro de instruc,ao estarao em 
           algum lugar dentro de uma func,ao, nao no comec,o. Se voce nao receber um resultado      
           exato, omita o ultimo digito do valor do ponteiro de instruc,ao e tente novamente, ex:   
                                                                                                    
        % nm -n /kernel.that.caused.the.panic | grep f0xxxxx                                        
                                                                                                    
           Se isso nao produz nenhum resultado, corte outro digito. Repita ate que voce tenha algum 
           tipo de retorno. O resultado sera uma possivel lista de func,oes que causaram o panic.   
           Isso e menos do que um mecanismo exato para rastreamento de um ponto de falha, mas e     
           melhor que nada.                                                                         
                                                                                                    
       Eu vejo pessoas constantemente mostrando mensagens de panic como essa, mas eu raramente vejo 
       alguem comparar o ponteiro de instruc,ao com uma func,ao na tabela de simbolos do kernel.    
                                                                                                    
       A melhor maneira de rastrear a causa de um panic e guardar as mensagens de falha (crash      
       dump), e entao usar o gdb(1) para gerar um stack trace da falha.                             
                                                                                                    
       Em qualquer caso, o metodo que eu normalmente uso e esse:                                    
                                                                                                    
        1. Definir um arquivo de configurac,ao do kernel, opcionalmente adiconando a options DDB se 
           voce acha que precisa do debugger do kernel para algo. (Eu uso isso principalmente para  
           ajustar breakpoints se eu suspeito que ha uma condic,ao de lac,o infinito (infinite loop 
           ou algo do tipo).                                                                        
                                                                                                    
        2. Use config -g KERNELCONFIG configurar o diretorio da construc,ao.                        
                                                                                                    
        3. cd /sys/compile/ KERNELCONFIG; make                                                      
                                                                                                    
        4. Espere o kernel acabar de compilar.                                                      
                                                                                                    
        5. make install                                                                             
                                                                                                    
        6. reboot                                                                                   
                                                                                                    
       O processo do make(1) tera construido dois kernels. kernel e kernel.debug. O kernel foi      
       instalado como /kernel, enquanto o kernel.debug pode ser usado como fonte simbolos de debug  
       para o gdb(1).                                                                               
                                                                                                    
       Para ter certeza que voce ira capturar o crash dump, voce precisa editar o /etc/rc.conf e    
       ajustar o dumpdev para apontar para sua partic,ao swap. Isso fara com que os scripts rc(8)   
       usem o comando dumpon(8) para habilitar os crash dumps. Voce pode tambem executar o          
       dumpon(8) manualmente. Depois de um panic, o crash dump pode ser recuperado usando o         
       savecore(8); se variavel dumpdev estiver definida no /etc/rc.conf, os scripts rc(8) irao     
       executar o savecore(8) automaticamente e colocar o crash dump em /var/crash.                 
                                                                                                    
         Nota:                                                                                      
                                                                                                    
       Os crash dumps do FreeBSD sao geralmente do mesmo tamanho da memoria RAM fisica da sua       
       maquina. Isto e, se voce tem 64MB de RAM, voce tera um crash dump de 64MB. Entao voce deve   
       ter certeza que ha espac,o suficiente em /var/crash para alocar o dump. Alternativamente,    
       voce executa o savecore(8) manualmente e pode faze-lo recuperar o crash dump para onde voce  
       tenha mais espac,o. E possivel limitar o tamanho do crash dump utilizando a opc,ao options   
       MAXMEM=(foo) para ajustar a quantia de memoria que o kernel ira usar para algo um pouco mais 
       sensivel. Por exemplo, se voce tem 128MB de RAM, voce pode limitar o uso de memoria do       
       kernel para 16MB para que o tamanho do seu crash dump tenha somente 16MB ao inves de 128MB.  
                                                                                                    
       Uma vez que voce recuperou o crash dump, voce pode ter um stack trace com o gdb(1) como      
       segue:                                                                                       
                                                                                                    
       % gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0                          
       (gdb) where                                                                                  
                                                                                                    
       Note que ha varias telas com informac,oes valiosas; seria ideal o uso do script(1) para      
       capturar todas elas. Usando a imagem (unstripped) do kernel com todos os simbolos de debug   
       deve mostrar a linha exata do codigo-fonte do kernel onde o panic ocorreu. Geralmente e mais 
       interessante ler o stack trace de baixo para cima a fim de rastrear a exata sequ:encia de    
       eventos que levaram ao crash. Voce tambem pode usar o gdb(1) para exibir os conteudos de     
       varias variaveis ou estruturas a fim de examinar o estado do sistema no instante do crash.   
                                                                                                    
       Agora, se voce e realmente louco e tem um segundo computador, voce tambem pode configurar o  
       gdb(1) para executar um debug remoto, tanto que voce pode usar o gdb(1) em um sistema para   
       debugar o kernel em outro sistema, incluindo o ajuste de breakpoints, rastreamento           
       passo-a-passo pelo codigo do kernel, do mesmo modo que voce pode fazer com um programa do    
       modo de usuario normal. Eu ainda nao brinquei com isso pois nao tive a chance de configurar  
       duas lado a lado com o unico proposito de debugging.                                         
                                                                                                    
       [Adendo de Bill: "Eu esqueci de mencionar uma coisa: se voce tem DDB habilitado e o kernel   
       em modo de debug, voce pode forc,ar um panic (e um crash dump) apenas digitando 'panic' no   
       prompt do ddb. Ele pode parar no debugger novamente durante a fase de panic. Se isso         
       acontecer, digite 'continue' e ele finalizara o crash dump."-ed]                             
18.14. Por que a dlsym() nao funciona mais nos executaveis ELF?                                     
       A toolchain (cadeia de ferramentas) ELF nao faz, por padrao, os simbolos definidos em um     
       executavel visivel para o linkador dinamico (dynamic linker). Consequ:entemente, a procura   
       em nomes obtidos de chamadas com a dlsym() para dlopen(NULL, flags) ira falhar ao buscar     
       tais simbolos.                                                                               
                                                                                                    
       Se a intenc,ao e usar a dlsym() para buscar simbolos que possam existir nos executaveis      
       principais do processo, e necessario linkar o programa com a opc,ao -export-dynamic com o    
       linker ELF (ld(1)).                                                                          
18.15. Como eu posso aumentar ou reduzir o espac,o de enderec,amento disponivel para o kernel?      
       Por padrao, o espac,o de enderec,amento (address space) do kernel e 256 MB no FreeBSD 3.x e  
       1 GB no FreeBSD 4.x. Em um servidor de rede com trafego intensivo (por exemplo, um servidor  
       FTP ou HTTP de muito trafego) pode acontecer de, por exemplo, 256MB de memoria nao ser o     
       suficiente.                                                                                  
                                                                                                    
       Mas entao, como aumentar esse espac,o? Existem duas formas. Primeiro, e necessario dizer ao  
       kernel que ele deve reservar uma grande quantidade de espac,o em memoria para ele mesmo.     
       Segundo, considerando que o kernel e carregado no topo do espac,o de enderec,amento, e       
       preciso diminuir o enderec,o de forma que nao conflite com as paginas anteriores de memoria, 
       e que no lugar disso, ele seja carregado em seu novo local.                                  
                                                                                                    
       O primeiro objetivo e facilmente atingido aumentando as definic,oes de valores do NKPDE no   
       arquivo src/sys/i386/include/pmap.h. Aqui esta o arquivo, como deve ser, para 1GB de         
       enderec,o de memoria:                                                                        
                                                                                                    
       #ifndef NKPDE                                                                                
       #ifdef SMP                                                                                   
       #define NKPDE                   254     /* addressable number of page tables/pde's */        
       #else                                                                                        
       #define NKPDE                   255     /* addressable number of page tables/pde's */        
       #endif  /* SMP */                                                                            
       #endif                                                                                       
                                                                                                    
       Para achar o valor correto de NKPDE, divida o numero desejado (em megabytes) por quatro,     
       entao subtraia um para maquinas mono processadas e dois para maquinas com SMP.               
                                                                                                    
       Para atingir o segundo objetivo e necessario descobrir o enderec,o correto de carregamento.  
       Para isso basta subtrair o tamanho do espac,o de enderec,amento desejado (em bytes) de       
       0x100100000; o resultado e 0xc0100000 para um enderec,o de espac,o de 1 GB. Ajuste           
       LOAD_ADDRESS em src/sys/i386/conf/Makefile.i386 para esse valor, agora ajuste o contador de  
       posic,oo listada no inicio do src/sys/i386/conf/kernel.script para o mesmo valor, como a     
       seguir:                                                                                      
                                                                                                    
       OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")                                      
       OUTPUT_ARCH(i386)                                                                            
       ENTRY(btext)                                                                                 
       SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib); 
       SECTIONS                                                                                     
       {                                                                                            
         /* Read-only sections, merged into text segment: */                                        
         . = 0xc0100000 + SIZEOF_HEADERS;                                                           
         .interp     : { *(.interp)    }                                                            
                                                                                                    
       Agora recompile e reinstale seu kernel. Provavelmente aparecerao problemas com o ps(1) e com 
       o top(1), executar um make world deve solucionar tais problemas (ou entao, a recompilac,ao   
       manual da libkvm, do ps(1) e do top(1), depois de incluir o pmap.h alterado em               
       /usr/include/vm/.                                                                            
                                                                                                    
       OBS: o tamanho do espac,o em memoria do kernel deve ser um multiplo de quatro megabytes.     
                                                                                                    
       [Adendo por David Greenman: Acho que o enderec,o de espac,o do kernel precisa ser uma        
       potencia de dois, mas eu nao estou certo disso. O codigo do processo de inicializac,ao       
       antigo costumava mexer com os bits de enderec,o de alta ordem, o que implicava em uma        
       granularidade de 256MB]                                                                      

                          Capitulo 19. Reconhecimentos

     Se voce encontrar algum problema no FAQ ou se desejar submeter uma       
     nova entrada, por favor envie um e-mail para o Responsavel pelo FAQ    
     <faq@FreeBSD.org>. Nos apreciamos o seu feedback e nao podemos tornar  
     este FAQ melhor sem a sua ajuda!                                       
                                          --Grupo Central (FreeBSD Core Team)

   Jordan K. Hubbard

           Atualizac,oes e ajustes ocasionais na ordenac,ao das informac,oes
           do FAQ.

   Doug White

           Pelos servic,os prestados acima e alem da chamada do dever em
           freebsd-questions

   Jo:rg Wunsch

           Pelos servic,os prestados acima e alem da chamada do dever na
           Usenet

   Garrett Wollman

           Rede (networking) e formatac,ao

   Jim Lowe

           Informac,oes sobre "Multicast"

   Peter da Silva

           Escravo de digitac,ao mecanica do FAQ FreeBSD

   A Equipe FreeBSD

           Reclamac,oes, rabujices e envio de informac,oes

   E a todos os outros que nos nos esquecemos, nossas desculpas e obrigado do
   corac,ao!
