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

  Projeto de Documentac,ao do FreeBSD

   Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
   Projeto de Documentac,ao do FreeBSD

   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 [English
   Content/Conteudo em Ingles] <freebsd-doc@FreeBSD.org>. 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).

   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.

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

   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 8.2 e a versao RELEASE mais recente; lanc,ada em Jan
   2011. 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 8.2-RELEASE, lanc,ada em Jan
   2011.

   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 Equipe 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, 8.2-RELEASE pode ser
       encontrado no diretorio 8.2-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. Onde encontro informac,oes sobre a compatibilidade FreeBSD
   ano 2000 (FreeBSD Y2K)?

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

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

   2.7. 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                                   
       Notas:            
       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                      
                 Formato Zip. Se voce quiser descomprimir este        
            zip  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   
            bz2  outros, mas geralmente produz 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. Onde encontro informac,oes sobre a compatibilidade FreeBSD
   ano 2000 (FreeBSD Y2K)?

   Informac,oes completas na pagina FreeBSD Y2K.

   2.5. 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.6. 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.7. 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. Posso ter mais de um sistema operacional no meu PC?

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

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

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

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

   3.12. 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.13. 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.14. Como eu removo o bad144 do meu sistema anterior ao 4.X de
   forma que eu possa atualiza-lo com seguranc,a?

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

   3.16. 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.17. Posso instalar o FreeBSD no meu laptop via PLIP (IP em Linha
   Paralela)?

   3.18. Qual geometria eu devo utilizar para um disco?

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

   3.20. O FreeBSD suporta programas gerenciadores de discos?

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

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

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

   3.24. Eu preciso criar um kernel personalizado?

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

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

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

   3.28. Quais sao as limitac,oes de memoria?

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

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

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

   3.32. 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

   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. Posso ter mais de um sistema operacional no meu PC?

   De uma olhada na pagina de multiplos-SO.

   3.8. 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.9. 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.10. 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 FreeBSD computadores laptop
   [English Content/Conteudo em Ingles] <freebsd-mobile@FreeBSD.org>
   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.11. 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.12. 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.13. 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.14. 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.15. 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.16. 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.17. 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.18. 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.19. 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.20. 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.21. 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.22. 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.23. 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.24. 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.25. 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.26. 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.27. 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.28. 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.29. 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.30. 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.31. 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.

     CuidadoA 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.32. 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.

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

                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 do port FreeBSD para plataforma SPARC [English
   Content/Conteudo em Ingles] <freebsd-sparc@FreeBSD.org>. 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 do port FreeBSD para plataforma IA64
   [English Content/Conteudo em Ingles] <freebsd-ia64@FreeBSD.org>
   e/ou lista de discussao do port FreeBSD para plataforma PowerPC
   [English Content/Conteudo em Ingles] <freebsd-ppc@FreeBSD.org>
   para mais informac,oes sobre tais arquiteturas. Para discussoes
   gerais sobre outras arquiteturas, entre na lista de discussao
   lista de discussao do port FreeBSD para plataformas nao-Intel
   [English Content/Conteudo em Ingles]
   <freebsd-platforms@FreeBSD.org>.

   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?

   * Construa um kernel com a opc,ao options COMCONSOLE.

   * Crie o arquivo /boot.config e coloque os caracteres -P como o
     unico texto no arquivo.

   * 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 full"ocorre?

   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 full"ocorre?

   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 20,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 procedo para adicionar um novo disco rigido no FreeBSD?

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

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

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

   9.5. O que e inapropriado no meu ccd?

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

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

   9.8. Como montar uma partic,ao DOS secundaria?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   9.1. Como procedo para adicionar um novo disco rigido no FreeBSD?

   Veja o Tutorial sobre a Formatac,ao de Discos no sitio
   www.FreeBSD.org.

   9.2. 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. Veja o artigo  referente a
   formatac,ao de midias para obter mais detalhes quanto a esse
   processo.

   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.3. 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.4. 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.5. 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.6. 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.7. 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.8. 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.9. Existe um sistema de arquivos criptografado para o FreeBSD?

   Sim, veja o port security/cfs.

   9.10. 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,aoNAO 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.11. 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.12. 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.13. 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.14. 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.15. 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.16. "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.17. 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.18. 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.19. 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.20. 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.21. 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.22. 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.23. 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.24. 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 <wollman@FreeBSD.org>, 24 Abril 2001   

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

   * Nao habilite quotas na /,

   * 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,aoO 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, entre a tecla Ctr e a Alt do lado esquerdo.

     * 116 - Windows, `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, 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 <brian@FreeBSD.org> 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 FreeBSD de perguntas genericas [English
   Content/Conteudo em Ingles] <freebsd-questions@FreeBSD.org> 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.

   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,aoA 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 FreeBSD emulation [English Content/Conteudo em Ingles]
   <freebsd-emulation@FreeBSD.org> 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 <phk@FreeBSD.org>
   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 <phk@FreeBSD.org> 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 <nik@FreeBSD.org>:

   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
   discussoes tecnicas FreeBSD (hackers) [English Content/Conteudo em
   Ingles] <freebsd-hackers@FreeBSD.org>.

   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
   <wpaul@FreeBSD.org> na freebsd-current por Dag-Erling C. Smo/rgrav
   <des@FreeBSD.org>, 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 <dg@FreeBSD.org>: 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 <jkh@FreeBSD.org>

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

   Doug White <dwhite@FreeBSD.org>

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

   Jo:rg Wunsch <joerg@FreeBSD.org>

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

   Garrett Wollman <wollman@FreeBSD.org>

           Rede (networking) e formatac,ao

   Jim Lowe

           Informac,oes sobre "Multicast"

   Peter da Silva <pds@FreeBSD.org>

           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!

  Notas

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

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

            Este, e outros documentos, podem ser obtidos em
                ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

  Para perguntas sobre FreeBSD, leia a documentac,ao antes de contatar
                        <questions@FreeBSD.org>.
       Para perguntas sobre esta documentac,ao, envie e-mail para
                           <doc@FreeBSD.org>.
