15425 lines
544 KiB
XML
15425 lines
544 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
|
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
|
|
<!ENTITY bibliography SYSTEM "../../share/xml/bibliography.xml">
|
|
]>
|
|
<!--
|
|
The FreeBSD Documentation Project
|
|
The FreeBSD Brazilian Portuguese Documentation Project
|
|
|
|
Original revision: 1.456
|
|
|
|
$FreeBSD$
|
|
-->
|
|
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="pt_br">
|
|
<info><title>Perguntas mais freqüentes sobre FreeBSD 2.X, 3.X e
|
|
4.X</title>
|
|
|
|
|
|
<author><orgname>Projeto de Documentação do FreeBSD</orgname></author>
|
|
|
|
<copyright>
|
|
<year>1995</year>
|
|
<year>1996</year>
|
|
<year>1997</year>
|
|
<year>1998</year>
|
|
<year>1999</year>
|
|
<year>2000</year>
|
|
<year>2001</year>
|
|
<year>2002</year>
|
|
<holder>Projeto de Documentação do FreeBSD</holder>
|
|
</copyright>
|
|
|
|
&legalnotice;
|
|
|
|
<releaseinfo>$FreeBSD$</releaseinfo>
|
|
|
|
<abstract>
|
|
<para>Estas são as Perguntas Mais Freqüentes
|
|
(<literal>FAQ</literal>) para as versões 2.X, 3.X e 4.X
|
|
do FreeBSD. Deve-se assumir que todos os assuntos aqui
|
|
tratados são relevantes para FreeBSD 2.0.5 ou
|
|
posterior, a não ser que o contrário esteja
|
|
explicitamente denotado. Todos os assuntos assinalados com
|
|
<XXX> estão em processo de desenvolvimento. Se
|
|
você estiver interessado em ajudar este projeto, envie
|
|
e-mail para &a.doc;. A versão mais atualizada deste
|
|
documento está sempre disponível no <link xlink:href="../../../../index.html">servidor WWW do
|
|
FreeBSD</link>. Também pode ser obtida como um
|
|
único grande arquivo <link xlink:href="book.html">HTML</link> via HTTP; ou, como texto puro,
|
|
ou nos formatos postscript, PDF, etc. no <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">servidor FTP do
|
|
FreeBSD</link>. Você também pode querer
|
|
<link xlink:href="../../../../search/index.html">realizar uma busca
|
|
nas Perguntas Mais Freqüentes
|
|
(<literal>FAQ</literal>)</link>.</para>
|
|
</abstract>
|
|
</info>
|
|
|
|
<chapter xml:id="introduction">
|
|
<title>Introdução</title>
|
|
|
|
<para>Bem vindo às Perguntas Mais Freqüentes
|
|
(<literal>FAQ</literal>) para as versões 2.X à 4.X
|
|
do FreeBSD!</para>
|
|
|
|
<para>Como é de costume em Perguntas Mais Freqüentes
|
|
(<literal>FAQ</literal>) da Usenet, este documento pretende
|
|
cobrir as perguntas mais freqüentes relacionadas ao sistema
|
|
operacional FreeBSD (e claro, respondê-las todas!).
|
|
Embora originalmente tais documentos tivessem apenas a
|
|
finalidade de reduzir a utilização da largura de
|
|
banda da rede ao evitar que o mesmo tipo de pergunta antiga
|
|
fosse sempre repetida, <literal>FAQs</literal> tornaram-se
|
|
reconhecidamente uma fonte valiosa de
|
|
informações.</para>
|
|
|
|
<para>Inúmeros esforços foram feitos para tornar
|
|
este <literal>FAQ</literal> o mais informativo possível;
|
|
se você tiver alguma sugestão de como esse
|
|
documento pode ser melhorado, sinta-se a vontade para enviar
|
|
suas sugestões por e-mail para o &a.faq;.</para>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="what-is-FreeBSD">
|
|
<para>O que é FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Em síntese, FreeBSD é um sistema
|
|
operacional <foreignphrase>UN*X-like</foreignphrase> para
|
|
plataformas i386 e Alpha/AXP, baseado no
|
|
<quote>4.4BSD-Lite</quote> da Universidade da
|
|
Califórnia em Berkeley, com alguns aprimoramentos
|
|
adotados do <quote>4.4BSD-Lite2</quote>. O FreeBSD
|
|
também é baseado, indiretamente, na
|
|
conversão de William Jolitz conhecida como
|
|
<quote>386BSD</quote> para a plataforma i386 do
|
|
<quote>Net/2</quote> da Universidade da Califórnia,
|
|
em Berkeley; apesar que pouquíssimo código
|
|
originado do 386BSD ainda exista no FreeBSD. Uma
|
|
descrição mais abrangente do que é
|
|
FreeBSD e como o sistema funciona, pode ser encontrada na
|
|
<link xlink:href="../../../../index.html">página
|
|
principal do FreeBSD</link>.</para>
|
|
|
|
<para>O FreeBSD é amplamente utilizado por empresas,
|
|
Provedores de Serviço Internet, pesquisadores,
|
|
profissionais de informática, estudantes e
|
|
usuários domésticos no mundo todo, para
|
|
trabalho, educação e
|
|
recreação. Alguns destes exemplos podem ser
|
|
observados na <link xlink:href="../../../../gallery/index.html">Galeria
|
|
FreeBSD,</link>.</para>
|
|
|
|
<para>Para informações mais detalhadas sobre o
|
|
FreeBSD, por favor, leia o <link xlink:href="../handbook/index.html">&a.ptbr.p.handbook;</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="FreeBSD-goals">
|
|
<para>Qual o objetivo do Projeto FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O objetivo do Projeto FreeBSD é oferecer
|
|
<foreignphrase>software</foreignphrase> que possa ser
|
|
utilizado para qualquer finalidade e sem
|
|
obrigações anexadas à esse
|
|
código. Muitos de nós investimos
|
|
significantemente no código (e no projeto como um
|
|
todo), e com certeza não nos importaríamos
|
|
em receber algum tipo de compensação
|
|
financeira neste momento ou qualquer outro no futuro, mas
|
|
ninguém no projeto insistirá nisso.
|
|
Acreditamos que a nossa primeira e mais importante
|
|
missão é oferecer código para toda e
|
|
qualquer pessoa, que possa ser utilizado para qualquer
|
|
propósito, de forma que esse código
|
|
ofereça o maior número possível de
|
|
benefícios e formas de uso. Nós acreditamos
|
|
que este é um dos objetivos fundamentais do
|
|
<foreignphrase>Software</foreignphrase> Livre, e é
|
|
um dos quais nós apoiamos com entusiasmo.</para>
|
|
|
|
<para>O código fonte em nossa árvore que
|
|
é distribuído sob a <link xlink:href="http://www.FreeBSD.org/copyright/COPYING">Licença
|
|
Pública Geral GNU (GPL)</link> ou sob a <link xlink:href="http://www.FreeBSD.org/copyright/COPYING.LIB">
|
|
Licença Pública Geral de Bibliotecas GNU
|
|
(LGPL)</link> inclue, pode-se dizer, algumas
|
|
obrigações anexadas a ele; contudo tais
|
|
restrições visam garantir o acesso livre a
|
|
esse código, e não o contrário.
|
|
Devido à complexidades adicionais que envolvem a
|
|
utilização comercial de software licenciado
|
|
sob GPL, nós procuramos substituir tais softwares
|
|
sob a mais relaxada <link xlink:href="http://www.FreeBSD.org/copyright/freebsd-license.html">licença
|
|
de direito autoral FreeBSD</link> sempre que
|
|
possível;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="bsd-license-restrictions">
|
|
<para>A licença FreeBSD tem alguma
|
|
restrição?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim. Entrentanto, essas restrições
|
|
não definem regras a respeito de como o
|
|
código deve ser utilizado, mas de como você
|
|
deve tratar o Projeto FreeBSD ao utilizar código
|
|
distribuído pelo mesmo. Se você tem
|
|
sérias dúvidas sobre o licençiamento,
|
|
sinta-se a vontade para ler a <link xlink:href="http://www.FreeBSD.org/copyright/freebsd-license.html">
|
|
licença</link>. Para os meramente curiosos, a
|
|
licença pode ser resumida em:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Não alegue que o código foi escrito
|
|
por você.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Não nos processe se o código
|
|
falhar.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="replace-current-OS">
|
|
<para>O FreeBSD pode substituir meu sistema operacional
|
|
atual?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Para maioria das pessoas, sim. Mas essa não
|
|
é uma pergunta tão simples assim.</para>
|
|
|
|
<para>A maioria das pessoas, na verdade, não utiliza
|
|
um sistema operacional. As aplicações
|
|
utilizadas pelos usuários é que realmente
|
|
usam o sistema operacional. O FreeBSD é projetado
|
|
de forma a oferecer um ambiente robusto e completo para as
|
|
aplicações. Suporta uma enorme variedade de
|
|
navegadores internet, de suítes de
|
|
escritório, clientes de e-mail, programas de
|
|
manipulação gráfica, ambientes de
|
|
programação, servidores e serviços de
|
|
rede, e praticamente tudo mais que você pode
|
|
desejar. A maioria destas aplicações podem
|
|
ainda ser gerenciadas através da <link xlink:href="http://www.freebsd.org/ports/">Coleção
|
|
de <literal>Ports</literal></link>.</para>
|
|
|
|
<para>Em circunstâncias nas quais precise usar uma
|
|
aplicação disponível apenas para um
|
|
determinado sistema operacional, não é
|
|
possível substituir aquele sistema operacional.
|
|
Entretanto, há uma boa chance que alguma
|
|
aplicação similar à que você
|
|
precisa, exista para FreeBSD. Se você quer ter,
|
|
desde um sólido conjunto de
|
|
aplicações para escritório,
|
|
até um robusto e altamente escalável
|
|
servidor Internet, ou simplesmente uma
|
|
estação de trabalho confiável, onde
|
|
você possa realizar seu trabalho sem
|
|
interrupções, FreeBSD provavelmente vai
|
|
suprir todas as suas necessidades. Inúmeras
|
|
pessoas pelo mundo todo, desde usuários novatos
|
|
à administradores de sistemas UNIX experientes usam
|
|
FreeBSD como seu único sistema operacional para
|
|
<foreignphrase>desktop</foreignphrase>.</para>
|
|
|
|
<para>Se você está migrando para FreeBSD a
|
|
partir de algum outro ambiente UNIX, provavelmente
|
|
já sabe quase tudo o que precisa pra começar
|
|
a se envolver com o sistema. Entretanto, se o seu
|
|
histórico em computação envolveu
|
|
somente sistemas operacionais baseados em ambientes
|
|
gráficos como Windows e antigos Mac OS, será
|
|
necessário investir algum tempo a mais aprendendo a
|
|
maneira UNIX de fazer as coisas. Este
|
|
<literal>FAQ</literal> e o <link xlink:href="../handbook/index.html">&a.ptbr.p.handbook;</link>
|
|
são excelentes formas de começar sua
|
|
jornada.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="why-called-FreeBSD">
|
|
<para>Por que o sistema se chama FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Pode ser utilizado sem nenhum encargo
|
|
monetário, inclusive para uso comercial.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>O código fonte completo do sistema
|
|
operacional é livremente distribuído, e
|
|
pode ser adquirido gratuitamente. O menor
|
|
número possível de
|
|
restrições foram colocadas sobre o uso
|
|
do sistema, sua distribuição e sua
|
|
incorporação à outro projeto
|
|
(comercial ou não).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Qualquer pessoa que tiver feito alguma
|
|
correção ou aprimoramento do
|
|
código do sistema pode livremente enviar suas
|
|
alterações e ter seu código
|
|
adicionado à árvore de código
|
|
fonte do sistema (obviamente sujeito a prévias
|
|
análises).</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>É importante ressaltar que a palavra de origem
|
|
inglesa <quote>free</quote> em português pode ser
|
|
traduzida como <quote>livre</quote> e
|
|
<quote>gratuito</quote>. Além disso, a palavra
|
|
<quote>free</quote> está sendo usada aqui com dois
|
|
significados: <quote>sem custo</quote> e <quote>você
|
|
pode fazer o que quiser</quote>. <quote>Free</quote> no
|
|
nome do sistema operacional remete aos dois significados
|
|
da palavra. O sistema pode ser utilizado <quote>sem
|
|
nenhum custo</quote>, e pode ser utilizado <quote>da
|
|
forma que você quiser</quote>. Exceto por algumas
|
|
poucas coisinhas que você não pode fazer com
|
|
o FreeBSD (por exemplo, fingir que foi você quem o
|
|
escreveu), você pode realmente fazer o que bem
|
|
entender com o sistema.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="latest-version">
|
|
<para>Qual a versão mais recente do FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A versão <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">&rel.current;</link>
|
|
é a versão <emphasis>RELEASE</emphasis> mais
|
|
recente; lançada em &rel.current.date;. Esta
|
|
também é a versão
|
|
<emphasis>STABLE</emphasis> mais recente.</para>
|
|
|
|
<para>Resumidamente, <emphasis>-STABLE</emphasis> é a
|
|
série voltada para Provedores de Serviço de
|
|
Internet, usuários corporativos, ou qualquer
|
|
usuário que deseje estabilidade e um número
|
|
mínimo de alterações e novas
|
|
características adotadas do
|
|
<foreignphrase>snapshot</foreignphrase>
|
|
<emphasis>-CURRENT</emphasis>. Lançamentos podem
|
|
vir de qualquer um dos ramos de desenvolvimento; a
|
|
série <emphasis>-CURRENT</emphasis>, todavia,
|
|
deveria ser utilizada apenas por usuários
|
|
preparados para um ambiente em constante
|
|
modificação, instável em muitas de
|
|
suas características e extremamente sem garantias
|
|
(ao menos, quando comparado ao
|
|
<emphasis>-STABLE</emphasis>).</para>
|
|
|
|
<para>Lançamentos são realizados <link linkend="release-freq">de alguns em alguns meses</link>.
|
|
Muitos usuários mantém o código fonte
|
|
de seus sistemas em mais sincronia com a árvore de
|
|
desenvolvimento do FreeBSD (veja as perguntas sobre <link linkend="current">FreeBSD-CURRENT</link> e <link linkend="stable">FreeBSD-STABLE</link>) que isto, fazer
|
|
isto é uma demonstração de interesse
|
|
e compromisso visto que o código fonte sofre
|
|
constantes modificações.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="current">
|
|
<para>O que é FreeBSD-CURRENT?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para><link xlink:href="../handbook/cutting-edge.html#CURRENT">FreeBSD-CURRENT</link>
|
|
é a versão de desenvolvimento do sistema
|
|
operacional, que brevemente se tornará a
|
|
série 5.0-<literal>RELEASE</literal>. Exatamente
|
|
por ser uma série de desenvolvimento, e portanto
|
|
sem garantias de estabilidade, o uso desse sistema
|
|
operacional é de interesse exclusivo de
|
|
desenvolvedores que trabalham no sistema, usuários
|
|
extremamente experientes que acompanham e analisam
|
|
(testam) o novo sistema ou daqueles que o fazem por
|
|
<foreignphrase>hobby</foreignphrase>. Veja a <link xlink:href="../handbook/cutting-edge.html#CURRENT">seção
|
|
relevante</link> no <link xlink:href="../handbook/index.html">&a.ptbr.p.handbook;</link>.</para>
|
|
|
|
<para>Se você não tem familiaridade com o
|
|
sistema operacional, não é um usuário
|
|
experiente ou não consegue distinguir a
|
|
diferença entre um problema de verdade e um
|
|
problema temporário, então é
|
|
desaconselhável que você use o
|
|
FreeBSD-CURRENT. Essa série, as vezes, evolui de
|
|
forma extremamente rápida, e pode se tornar
|
|
extremamente instável e subutilizável por
|
|
vários dias seguidos. Usuários 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 invés de
|
|
<quote>pequenos problemas temporários de
|
|
instabilidade
|
|
(<foreignphrase>glitches</foreignphrase>)</quote>.
|
|
Perguntas sobre o porquê de <quote>make world
|
|
produzir erros a respeito de grupos</quote> são
|
|
devidamente ignoradas ou escrachadas na lista de
|
|
discussão da série -CURRENT.</para>
|
|
|
|
<para>Diariamente, <link xlink:href="../../../../releases/snapshots.html"><foreignphrase>snapshots</foreignphrase></link>
|
|
são lançados baseados no estado atual de
|
|
desenvolvimento dos ramos -CURRENT e -STABLE. Atualmente,
|
|
distribuições ocasionais de
|
|
<foreignphrase>snapshots</foreignphrase> estão
|
|
sendo disponibilizadas. Os objetivos por trás do
|
|
lançamento de cada
|
|
<foreignphrase>snapshot</foreignphrase> são:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Testar a versão mais recente do programa de
|
|
instalação.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Dar a oportunidade para aqueles que querem usar o
|
|
-CURRENT ou o -STABLE - mas não tem tempo ou
|
|
não tem uma conexão Internet
|
|
rápida o suficiente para estarem diariamente
|
|
sincronizados com a versão mais atualizada do
|
|
código no projeto.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Manter um ponto de referência fixo, em
|
|
relação ao código em
|
|
desenvolvimento e o código disponível
|
|
até então, para o caso de nós
|
|
seriamente <quote>quebrarmos</quote> alguma coisa.
|
|
(Embora CVS normalmente previna que desastres
|
|
horríveis como este aconteçam :)</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Garantir que todas as novas características
|
|
e funções do sistema que precisem ser
|
|
testadas, tenham o maior número possível
|
|
de pessoas potencialmente testando-as.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Sob nenhuma circunstância, nenhum
|
|
<foreignphrase>snapshot</foreignphrase> -CURRENT pode ser
|
|
considerado software de <quote>qualidade de
|
|
produção</quote> para qualquer que seja o
|
|
propósito, e por mais maduro que o código
|
|
-CURRENT atual possa parecer. Se a intenção
|
|
é usar um sistema estável e completamente
|
|
testado, você deverá usar apenas
|
|
lançamentos, ou
|
|
<foreignphrase>snapshots</foreignphrase> do ramo
|
|
-STABLE.</para>
|
|
|
|
<para>Os <foreignphrase>snapshots</foreignphrase>
|
|
lançados podem ser diretamente acessados em <link xlink:href="ftp://current.FreeBSD.org/pub/FreeBSD/">
|
|
ftp://current.FreeBSD.org/pub/FreeBSD/</link> para a
|
|
série 5.0-CURRENT e em <link xlink:href="ftp://releng4.FreeBSD.org/pub/FreeBSD">
|
|
releng4.FreeBSD.org</link> para
|
|
<foreignphrase>snapshots</foreignphrase> da série
|
|
4-STABLE. <foreignphrase>Snapshots</foreignphrase> para a
|
|
série 3-STABLE não estão sendo
|
|
produzidos na data em que este documento foi escrito (Maio
|
|
de 2000).</para>
|
|
|
|
<para>Normalmente, os snapshots são gerados uma vez
|
|
ao dia, para todas as séries em desenvolvimento
|
|
ativo.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="stable">
|
|
<para>Qual o conceito por trás do
|
|
FreeBSD-STABLE?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Nos primórdios do projeto quando o FreeBSD
|
|
2.0.5 foi lançado, a árvore de
|
|
desenvolvimento do sistema foi dividida em dois ramos. Um
|
|
ramo foi chamado <link xlink:href="../handbook/current-stable.html#STABLE">-STABLE</link>
|
|
e o outro <link xlink:href="../handbook/current-stable.html#CURRENT">-CURRENT</link>.
|
|
O FreeBSD-STABLE é direcionado para Provedores de
|
|
Serviços de Internet e para outros empreendimentos
|
|
comerciais que não pretendem conviver com
|
|
mudanças bruscas ou testar novas
|
|
características experimentais do sistema. Ele
|
|
recebe apenas código que tenha sido totalmente
|
|
testado, correções de problemas e outras
|
|
pequenas inovações incrementais. O
|
|
FreeBSD-CURRENT, por outro lado, tem sido uma linha sem
|
|
interrupções visando ao 5.0-RELEASE (e
|
|
além) desde o lançamento 2.0. Se uma
|
|
pequena ilustração em arte ASCII ajudasse,
|
|
isto seria o que pareceria:</para>
|
|
|
|
|
|
<programlisting> 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 -> ... Lançamentos 4.x futuro ...
|
|
|
|
|
| (Jul 2000) (Set 2000) (Nov 2000)
|
|
\|/
|
|
+
|
|
[5.0-CURRENT continua]</programlisting>
|
|
|
|
|
|
<para>O ramo 2.2-STABLE saiu de produção com o
|
|
lançamento 2.2.8. O ramo 3-STABLE saiu de
|
|
produção com o lançamento 3.5.1, que
|
|
foi também o último -RELEASE 3.X. As
|
|
únicas modificações ainda realizadas
|
|
em quaisquer destes ramos são praticamente
|
|
relacionados apenas à correções de
|
|
segurança.</para>
|
|
|
|
<para>O 4-STABLE é o ramo -STABLE em desenvolvimento
|
|
ativo. A versão mais recente da série
|
|
4-STABLE é &rel.current;-RELEASE, lançada em
|
|
&rel.current.date;.</para>
|
|
|
|
<para>O ramo 5-CURRENT está lentamente progredindo
|
|
para o que se tornará o FreeBSD 5.0-RELEASE e
|
|
além. Veja <link linkend="current">O que é
|
|
FreeBSD-CURRENT?</link> para obter mais
|
|
informações sobre este ramo.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="release-freq">
|
|
<para>Quando são realizados lançamentos
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O &a.re; lança uma nova versão do
|
|
FreeBSD, em média, a cada 4 meses. As datas de
|
|
lançamento são anunciadas com uma certa
|
|
antecedência, de forma que os desenvolvedores
|
|
trabalhando no sistema saibam quando seus projetos
|
|
precisam estar terminados e testados. Um período
|
|
de testes antecede cada novo lançamento, de forma a
|
|
garantir que a adição de novas
|
|
características não comprometa a
|
|
estabilidade do lançamento. Muitos usuários
|
|
consideram tais precauções 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.</para>
|
|
|
|
<para>Mais informações sobre o processo de
|
|
engenharia de lançamento (incluindo a
|
|
programação de novos lançamentos)
|
|
podem ser obtidas nas páginas de <link xlink:href="http://www.FreeBSD.org/releng/index.html">engenharia
|
|
de lançamento</link> no sítio WWW do
|
|
FreeBSD.</para>
|
|
|
|
<para>Para as pessoas que precisam, ou desejam um pouco mais
|
|
de emoção,
|
|
<foreignphrase>snapshots</foreignphrase> binários
|
|
são feitos diariamente como discutido acima.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="responsible">
|
|
<para>Quem é responsável pelo FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>As principais decisões relacionadas ao Projeto
|
|
FreeBSD, como os objetivos e direção geral
|
|
do projeto, e quem tem permissão para adicionar
|
|
código à árvore de código,
|
|
são tomadas por um <link xlink:href="../../articles/contributors/article.html#STAFF-CORE">grupo
|
|
central (<literal>core team</literal>)</link> composto
|
|
de 9 pessoas. Existe um grupo muito maior, composto de
|
|
mais de 200 desenvolvedores, denominados <link xlink:href="../../articles/contributors/article.html#STAFF-COMMITTERS"><foreignphrase>committers</foreignphrase></link>,
|
|
que tem autorização para fazer
|
|
alterações diretamente na árvore de
|
|
código do FreeBSD.</para>
|
|
|
|
<para>Entretanto, a maioria das alterações
|
|
não triviais são previamente discutidas nas
|
|
<link linkend="mailing"> listas de
|
|
discussões</link>, e não existe
|
|
restrição quanto a quem pode participar das
|
|
discussões.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="where-get">
|
|
<para>Onde posso obter o FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Todo lançamento significativo do FreeBSD
|
|
está disponível via FTP anônimo no
|
|
<link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/">sítio
|
|
FTP do Projeto FreeBSD</link>:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Para obter o lançamento 3.X-STABLE
|
|
corrente, 3.5.1-RELEASE, veja <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/3.5.1-RELEASE/">diretório
|
|
3.5.1-RELEASE</link>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>O lançamento 4-STABLE corrente,
|
|
&rel.current;-RELEASE pode ser encontrado no <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">diretório
|
|
&rel.current;-RELEASE</link>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><link xlink:href="ftp://releng4.FreeBSD.org/pub/FreeBSD/"><foreignphrase>Snapshots</foreignphrase>
|
|
4.X</link> são normalmente criados uma vez
|
|
ao dia.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Lançamentos <link xlink:href="ftp://current.FreeBSD.org/pub/FreeBSD/"><foreignphrase>Snapshot</foreignphrase>
|
|
5.0</link> são feitos uma vez ao dia no ramo
|
|
<link linkend="current">-CURRENT</link>, útil
|
|
apenas tanto para aqueles que gostam de viver no
|
|
limite quanto para aqueles que precisam usar a
|
|
versão mais recente possível com todas
|
|
as últimas características; sejam pessoas
|
|
conduzindo testes ou desenvolvedores.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Informação sobre como obter o FreeBSD em
|
|
CD, DVD, e outras mídias, pode ser encontrada no
|
|
<link xlink:href="../handbook/mirrors.html">&a.ptbr.p.handbook;</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="access-pr">
|
|
<para>Como eu acesso o banco de dados de Relatórios
|
|
de Problemas?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A base de dados de Relatórios de Problemas
|
|
é um banco de pedidos de alterações
|
|
realizados pelos usuários. Todos os pedidos de
|
|
alteração já realizados podem ser
|
|
consultados (ou novos submetidos) através de
|
|
nossas interfaces PR WWW para <link xlink:href="http://www.FreeBSD.org/send-pr.html">submeter
|
|
(novos pedidos)</link> e <link xlink:href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">consultar
|
|
(já submetidos)</link>.
|
|
O comando &man.send-pr.1; também pode ser usado
|
|
para submeter relatórios de problema e pedidos
|
|
de alteração por meio de correio
|
|
eletrônico.</para>
|
|
|
|
<para>Antes de enviar um relatório de problema, por
|
|
favor, leia o artigo <link xlink:href="../../articles/problem-reports/article.html">Escrevendo
|
|
Relatórios de Problemas para o FreeBSD</link>,
|
|
que dá boas dicas de como escrever um bom
|
|
relatório de problema.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="become-web-mirror">
|
|
<para>Como eu me torno um espelho do sítio WWW
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Existam várias formas de espelhar o
|
|
sítio WWW do FreeBSD.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Você pode obter os arquivos já
|
|
formatados a partir de um servidor CVSup FreeBSD
|
|
usando o aplicativo <package>net/cvsup</package>. O arquivo
|
|
<filename>/usr/share/examples/cvsup/www-supfile</filename>
|
|
oferece um exemplo de configuração do
|
|
CVSup para espelhar o servidor WWW do projeto
|
|
FreeBSD.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Você pode obter o código fonte do
|
|
sítio 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 publicá-los
|
|
em formato WWW tradicional. Você pode
|
|
começar a espelhar o projeto a partir de <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www">ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www</link>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="other-info-sources">
|
|
<para>Que outras fontes de informações sobre o
|
|
FreeBSD existem?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por gentileza, queira verificar a lista de <link xlink:href="http://www.FreeBSD.org/docs.html">Documentação</link>
|
|
no sítio WWW principal <link xlink:href="http://www.FreeBSD.org">FreeBSD</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="support">
|
|
<title>Documentação e Suporte</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="books">
|
|
<para>Quais bons livros existem sobre FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O projeto FreeBSD produz um grande número de
|
|
documentos disponíveis em <link xlink:href="http://www.freebsd.org/docs.html">http://www.FreeBSD.org/docs.html</link>.
|
|
Além destes, outros livros recomendados são
|
|
referenciados nas Bibliografias disponíveis ao
|
|
final deste <literal>FAQ</literal> e do
|
|
&a.ptbr.p.handbook;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="doc-formats">
|
|
<para>A documentação está
|
|
disponível em outros formatos, como texto puro
|
|
(ASCII) ou Postscript?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Claro. A documentação pode ser obtida
|
|
em uma variedade de formatos e opções de
|
|
compressão no servidor FTP do FreeBSD, sob o
|
|
diretório <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">/pub/FreeBSD/doc/</link>.</para>
|
|
|
|
<para>A documentação é organizada em
|
|
diversas categorias, como:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>O nome do documento, como <literal>faq</literal>
|
|
ou <literal>&a.ptbr.p.handbook;</literal>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>A codificação e língua do
|
|
conteúdo do documento. Tal
|
|
categorização é baseada nos nomes
|
|
de localização, que podem ser
|
|
encontrados sob <filename>/usr/share/locale</filename>
|
|
no seu FreeBSD. Atualmente existem documentos nas
|
|
seguintes línguas e
|
|
codificações:</para>
|
|
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Nome</entry>
|
|
|
|
<entry>Significado</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
<row>
|
|
<entry><literal>en_US.ISO8859-1</literal></entry>
|
|
|
|
<entry>Inglês Americano</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>de_DE.ISO8859-1</literal></entry>
|
|
|
|
<entry>Alemão</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>es_ES.ISO8859-1</literal></entry>
|
|
|
|
<entry>Espanhol</entry>
|
|
</row>
|
|
|
|
|
|
<row>
|
|
<entry><literal>fr_FR.ISO8859-1</literal></entry>
|
|
|
|
<entry>Francês</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>ja_JP.eucJP</literal></entry>
|
|
|
|
<entry>Japonês (codificação
|
|
EUC)</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>ru_RU.KOI8-R</literal></entry>
|
|
|
|
<entry>Russo (codificação
|
|
KOI8-R)</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>zh_TW.Big5</literal></entry>
|
|
|
|
<entry>Chinês (codificação
|
|
Big5)</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<note>
|
|
<para>Alguns documentos podem não estar
|
|
disponíveis em todas as
|
|
línguas.</para>
|
|
</note>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Formato da documentação. A
|
|
documentação é produzida em
|
|
vários formatos. Cada qual com suas vantagens
|
|
e desvantagens. Alguns formatos são mais
|
|
apropriados para leitura on-line, enquanto outros
|
|
são mais agradéveis estéticamente
|
|
em formato impresso. Disponibilizar a
|
|
documentação em todos estes formatos,
|
|
garante que os leitores poderão sempre ler os
|
|
trechos de seu interesse, tanto no monitor do seu
|
|
computador quanto em papel impresso. Atualmente os
|
|
formatos disponíveis são:</para>
|
|
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Formato</entry>
|
|
|
|
<entry>Significado</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>html-split</literal></entry>
|
|
|
|
<entry>Uma série de pequenos documentos
|
|
HTML, devidamente ligados.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>html</literal></entry>
|
|
|
|
<entry>Um único grande arquivo HTML
|
|
contendo todo o documento.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>pdb</literal></entry>
|
|
|
|
<entry>Formato de banco de dados pra Palm Pilot,
|
|
para ser usado com o visualizador <link xlink:href="http://www.iSilo.com/">iSilo</link>.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>pdf</literal></entry>
|
|
|
|
<entry>PDF (Formato de Documento
|
|
Portável) da Adobe</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>ps</literal></entry>
|
|
|
|
<entry>Postscript</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>rtf</literal></entry>
|
|
|
|
<entry>RTF (Formato de Texto Enriquecido) da
|
|
Microsoft<footnote>
|
|
<para>A númeração de
|
|
página não é
|
|
automaticamente atualizada quando este
|
|
tipo de arquivo é aberto no Word.
|
|
Digite <keycombo action="simul"><keycap>CTRL</keycap><keycap>A</keycap></keycombo>,
|
|
<keycombo action="simul"><keycap>CTRL</keycap><keycap>END</keycap></keycombo>,
|
|
<keycap>F9</keycap> depois de abrir o
|
|
documento no Word, para atualizar a
|
|
numeração das
|
|
páginas.</para>
|
|
</footnote>
|
|
</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>txt</literal></entry>
|
|
|
|
<entry>Texto puro</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>As técnicas de compressão e
|
|
empacotamento dos arquivos. Atualmente, 3 destes
|
|
formatos estão em uso:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Para o formato <literal>html-split</literal>,
|
|
os arquivos são todos empacotados com
|
|
&man.tar.1;. O resultado é um arquivo
|
|
<literal>.tar</literal> que é
|
|
posteriormente comprimido usando as
|
|
técnicas de compressão detalhadas a
|
|
seguir.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Todos os outros formatos geram apenas um
|
|
arquivo, nomeado
|
|
<filename>book.formato</filename>
|
|
(por exemplo, <filename>book.pdb</filename>,
|
|
<filename>book.html</filename>, e outros).</para>
|
|
|
|
<para>Estes arquivos são, então
|
|
comprimidos utilizando três técnicas
|
|
de compressão:</para>
|
|
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Tipo</entry>
|
|
|
|
<entry>Descrição</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>zip</literal></entry>
|
|
|
|
<entry>Formato Zip. Se você quiser
|
|
descomprimir este formato no FreeBSD,
|
|
será necessário instalar o
|
|
<literal>port</literal> <package>archivers/unzip</package>
|
|
antes.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>gz</literal></entry>
|
|
|
|
<entry>Formato GNU Zip. Para descomprimir
|
|
estes arquivos, use o comando
|
|
&man.gunzip.1; que faz parte do
|
|
FreeBSD.</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><literal>bz2</literal></entry>
|
|
|
|
<entry>Formato BZip2. Esse formato é
|
|
menos popular que os outros, mas
|
|
geralmente produz arquivos menores.
|
|
Instale o <literal>port</literal>
|
|
<package>archivers/bzip2</package>
|
|
para descomprimir arquivos deste
|
|
formato.</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<para>Portanto, o &a.ptbr.p.handbook; em formato
|
|
Postscript comprimido com o BZip2 será
|
|
armazenado como <filename>book.ps.bz2</filename>
|
|
sob o diretório
|
|
<filename>handbook/</filename>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>A documentação formatada
|
|
está disponível ainda como um pacote
|
|
FreeBSD.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Após escolher o formato e o mecanismo de
|
|
compressão, você deve decidir se vai ou
|
|
não pegar o documento em formato de
|
|
<emphasis>pacote</emphasis> FreeBSD.</para>
|
|
|
|
<para>A vantagem de baixar e instalar os pacotes é
|
|
que a documentação pode então ser
|
|
gerenciada usando os comandos de gerenciamento de pacotes
|
|
FreeBSD, como &man.pkg.add.1; e &man.pkg.delete.1;.</para>
|
|
|
|
<para>Se decidir baixar e instalar o pacote, então
|
|
você deve conhecer o nome do arquivo antes de
|
|
começar. Os arquivos de
|
|
documentação-como-pacotes estão
|
|
estocados em um diretório chamado
|
|
<filename>packages</filename>. Cada arquivo de pacote
|
|
segue o padrão de nome
|
|
<filename>document-name.lang.encoding.format.tgz</filename>.</para>
|
|
|
|
<para>Por exemplo, o <literal>FAQ</literal>, em
|
|
língua Inglesa e formato PDF, estará no
|
|
pacote de nome
|
|
<filename>faq.en_US.ISO8859-1.pdf.tgz</filename>.</para>
|
|
|
|
<para>Sabendo isto, você pode usar o seguinte comando
|
|
pra instalar o pacote contendo o <literal>FAQ</literal> na
|
|
língua Inglesa e formato PDF:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_add
|
|
ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/packages/faq.en_US.ISO8859-1.pdf.tgz</userinput></screen>
|
|
|
|
<para>Depois disso, você pode usar o &man.pkg.info.1;
|
|
pra determinar onde o documento foi instalado.</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_info -f faq.en_US.ISO8859-1.pdf</userinput>
|
|
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)</screen>
|
|
|
|
<para>Como pode ver, <filename>book.pdf</filename>
|
|
terá sido instalado sob
|
|
<filename>/usr/share/doc/en_US.ISO8859-1/books/faq</filename>.</para>
|
|
|
|
<para>Se você preferir não usar pacotes,
|
|
será necessário baixar os arquivos
|
|
comprimidos, depois descomprimí-los e copiar os
|
|
documentos apropriados para os lugares corretos.</para>
|
|
|
|
<para>Por exemplo, a versão do <literal>FAQ</literal>
|
|
dividido em vários arquivos HTML, comprimido usando
|
|
&man.gzip.1;, pode ser encontrado no arquivo
|
|
<filename>doc/en_US.ISO8859-1/books/faq/book.html-split.tar.gz</filename>.
|
|
Para baixar e descomprimir aquele arquivo, você
|
|
deveria fazer o seguinte.</para>
|
|
|
|
<screen>&prompt.root; <userinput>fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.gz</userinput>
|
|
&prompt.root; <userinput>gzip -d book.html-split.tar.gz</userinput>
|
|
&prompt.root; <userinput>tar xvf book.html-split.tar</userinput></screen>
|
|
|
|
<para>Será criada, então, uma série de
|
|
arquivos <filename>.html</filename>. O principal arquivo
|
|
é chamado <filename>index.html</filename> contendo
|
|
o índice, material introdutório e links para
|
|
outras partes do documento. Posteriormente, você
|
|
pode copiar ou mover esses arquivos pra onde você
|
|
quiser.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="mailing">
|
|
<para>Onde posso obter informações sobre as
|
|
listas de discussão FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Você pode encontrar uma vasta gama de
|
|
informações na <link xlink:href="../handbook/eresources.html#ERESOURCES-MAIL">seção
|
|
do &a.ptbr.p.handbook; sobre listas de
|
|
discussão</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="newsgroups">
|
|
<para>Que grupos de notícias (<foreignphrase>news
|
|
groups</foreignphrase>) existem sobre o FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Informações completas podem ser
|
|
encontradas na <link xlink:href="../handbook/eresources-news.html">seção
|
|
do &a.ptbr.p.handbook; sobre grupos de notícias
|
|
(<foreignphrase>newsgroups</foreignphrase>)</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="irc">
|
|
<para>Existem canais de bate-papo retransmitido via Internet
|
|
(<acronym>IRC</acronym>) FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim, a maioria das grandes redes de bate-papo
|
|
retransmitido via Internet (<acronym>IRC</acronym>) tem um
|
|
canal de bate-papo sobre FreeBSD:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>O canal <literal>#FreeBSD</literal> na <link xlink:href="http://www.efnet.org/index.php">EFNet</link>
|
|
é essencialmente um fórum sobre FreeBSD,
|
|
mas não entre no canal se você procura
|
|
suporte técnico, nem se você está
|
|
procurando uma maneira de evitar a leitura de
|
|
páginas de manual ou fazer suas próprias
|
|
pesquisas. Este é essencialmente um canal de
|
|
bate-papo geral. Assuntos como sexo, esportes ou
|
|
armas nucleares são tão comuns quanto
|
|
FreeBSD no canal. Lembre-se, Você Foi Avisado!
|
|
Para conectar-se, use o servidor
|
|
<systemitem>irc.chat.org</systemitem>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>O canal <literal>#FreeBSDhelp</literal> na <link xlink:href="http://www.efnet.org/index.php">EFNet</link>
|
|
é dedicado a suporte e auxilio de
|
|
usuários de FreeBSD. Os participantes neste
|
|
canal são bem mais receptivos a perguntas que
|
|
os do canal <literal>#FreeBSD</literal>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>O canal <literal>#FreeBSD</literal> na <link xlink:href="http://www.dal.net/">DALNET</link> pode ser
|
|
acessado em <systemitem>irc.dal.net</systemitem> nos Estados
|
|
Unidos, e <systemitem>irc.eu.dal.net</systemitem> na
|
|
Europa.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>O canal <literal>#FreeBSD</literal> na <link xlink:href="http://www.undernet.org/">UNDERNET</link> pode
|
|
ser acessado em <literal>us.undernet.org</literal> nos
|
|
Estados Unidos, e <literal>eu.undernet.org</literal>
|
|
na Europa. Partindo do princípio que esse
|
|
é um canal de ajuda, esteja preparado para ler
|
|
todos os documentos a que for referido.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>O canal <literal>#FreeBSD</literal> na <link xlink:href="http://www.hybnet.net/">HybNet</link>
|
|
<emphasis>é</emphasis> um canal de ajuda. Uma
|
|
lista de servidores pode ser encontrada no <link xlink:href="http://www.hybnet.net/">sítio WWW da
|
|
HybNet</link>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Cada um destes canais é independente, e
|
|
exatamente por estarem em redes distintas, não
|
|
é conectada ou relacionada entre si. Os estilos de
|
|
bate-papo em cada um dos canais são bastante
|
|
distintos, pode ser necessário testar cada um para
|
|
descobrir qual á mais adequado ao seu estilo
|
|
pessoal de bate-papo. Como em toda rede de bate-papo
|
|
retransmitido via Internet (<acronym>IRC</acronym>), nem
|
|
considere acessar os canais se você ofende-se
|
|
facilmente ou se você não se dá bem
|
|
com muita gente jovem (e alguns bem velhos) que usam as
|
|
mais irregulares formas de escrita e
|
|
conversação possível, quase sempre
|
|
assassinando sem o menor pudor todos os princípios
|
|
verbais - de qualquer língua que seja.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="training">
|
|
<para>Onde eu consigo treinamento em e suporte comercial ao
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>DaemonNews oferece treinamento em e suporte comercial
|
|
ao FreeBSD. Mais informações podem ser
|
|
obtidas no sítio WWW <link xlink:href="http://www.bsdmall.com/">BSD Mall</link>.</para>
|
|
|
|
<para>FreeBSD Services oferece suporte comercial ao FreeBSD
|
|
no Reino Unido (além de vender o FreeBSD em
|
|
mídia DVD). Veja o <link xlink:href="http://www.freebsd-services.com">sítio
|
|
WWW</link> deles para maiores
|
|
informações.</para>
|
|
|
|
<para>A FreeBSD Mall oferece suporte comercial ao FreeBSD.
|
|
Maiores informações podem ser obtidas no
|
|
<link xlink:href="http://www.freebsdmall.com/">sítio
|
|
WWW deles</link>.</para>
|
|
|
|
<para>Qualquer outra organização que
|
|
ofereça treinamento em ou suporte ao FreeBSD deve
|
|
entrar em contato com o projeto para serem listadas
|
|
aqui.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="install">
|
|
<info><title>Instalação</title>
|
|
<author><personname><firstname>Nik</firstname><surname>Clayton</surname></personname><affiliation>
|
|
<address><email>nik@FreeBSD.org</email></address>
|
|
</affiliation></author>
|
|
</info>
|
|
|
|
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="floppy-download">
|
|
<para>De qual arquivo eu devo baixar o FreeBSD da
|
|
rede?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Até a versão 3.1 era necessário
|
|
apenas um disquete para instalação do
|
|
FreeBSD, o disco era o
|
|
<filename>floppies/boot.flp</filename>. Contudo, depois
|
|
que o 3.1 foi lançado, o Projeto adicionou ao
|
|
<foreignphrase>kernel</foreignphrase> genérico o
|
|
suporte a uma grande variedade de dispositivos, de forma
|
|
que ele passou a consumir mais espaço. Por este
|
|
motivo, desde a série 3.X são
|
|
necessários dois disquetes, o
|
|
<filename>floppies/kernel.flp</filename> e o
|
|
<filename>floppies/mfsroot.flp</filename>. Essas imagens
|
|
precisam ser copiadas para disquetes, usando ferramentas
|
|
como o <command>fdimage</command> ou o &man.dd.1;.</para>
|
|
|
|
<para>Caso seja necessário baixar da rede a
|
|
distribuição do sistema (por exemplo, para
|
|
uma instalação por meio de um sistema de
|
|
arquivos DOS), você terá que obter as
|
|
seguintes estruturas da distribuição
|
|
padrão:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>bin/</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>manpages/</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>compat*/</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>doc/</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>src/ssys.*</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Para obter instruções completas sobre o
|
|
procedimento de instalação do FreeBSD e
|
|
maiores detalhes sobre os meios de
|
|
instalação, por gentileza, consulte a <link xlink:href="../handbook/install.html">seção de
|
|
instalação</link> no
|
|
&a.ptbr.p.handbook;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="floppy-image-too-large">
|
|
<para>O que eu devo fazer se as imagens de disquete
|
|
não couberem em um único disco?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Um disquete de 3.5 polegadas (1,44 MB) armazena
|
|
até 1474560 bytes de dados. O tamanho da imagem de
|
|
inicialização é de exatamente 1474560
|
|
bytes.</para>
|
|
|
|
<para>Erros comuns, cometidos na
|
|
preparação dos discos de
|
|
inicialização, são:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Baixar a imagem de disco via
|
|
<acronym>FTP</acronym> sem utilizar o modo de
|
|
transferência
|
|
<emphasis>binário</emphasis>.</para>
|
|
|
|
<para>Alguns clientes de FTP - especialmente navegadores
|
|
de Internet - costumam usar por padrão o modo
|
|
de transferência <emphasis>ascii</emphasis> nas
|
|
sessões 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 inicialização
|
|
(<foreignphrase>boot</foreignphrase>) corrompida.
|
|
Verifique o tamanho da imagem que você tem em
|
|
mãos, se é exatamente do mesmo tamanho
|
|
da imagem no servidor. Caso o tamanho não seja
|
|
<emphasis>exatamente</emphasis> o mesmo, você
|
|
pode suspeitar do arquivo que você
|
|
baixou.</para>
|
|
|
|
<para>Para garantir que esse problema não ocorra,
|
|
digite <emphasis>binary</emphasis> na prompt de
|
|
comando do seu cliente FTP, ou defina as
|
|
preferências do programa para utilizar o modo
|
|
binário. Aí sim, faça baixe da
|
|
rede a imagem de inicialização.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Usar o comando <command>copy</command> do DOS (ou
|
|
simplesmente copiar, por meio da Interface
|
|
Gráfica do sistema) para transferir a imagem de
|
|
inicialização para o disquete.</para>
|
|
|
|
<para>Programas como o <command>copy</command>
|
|
não vão funcionar para copiar a imagem
|
|
de inicialização direto para o disquete,
|
|
exatamente porque a imagem foi criada de forma que ela
|
|
seja carregada diretamente. A imagem tem o
|
|
conteúdo completo que o disquete deve ter, com
|
|
seus dados alocados trilha-a-trilha, e portanto
|
|
não pode ser copiado para o disquete como um
|
|
simples arquivo. Você tem que copiar a imagem
|
|
para o disquete usando alguma ferramenta de
|
|
<quote>cópia crua</quote> (raw copy, como o
|
|
<command>fdimage</command> ou o
|
|
<command>rawrite</command>) como descrito no <link xlink:href="../handbook/install.html">guia de
|
|
instalação do FreeBSD</link>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="install-instructions-location">
|
|
<para>Onde estão as instruções para
|
|
instalar o FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>As instruções de
|
|
instalação do FreeBSD podem ser encontradas
|
|
na <link xlink:href="../handbook/install.html">seção de
|
|
instalação do FreeBSD no
|
|
&a.ptbr.p.handbook;</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="need-to-run">
|
|
<para>O que é preciso para usar o FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Você vai precisar, no mínimo de um PC 386
|
|
com 5MB de memória RAM e no mínimo 60 MB em
|
|
disco. Essa configuração permite o uso de
|
|
uma placa de vídeo MDA simples, mas para usar o
|
|
X11R6 é necessário uma placa de vídeo
|
|
VGA ou mais avançada.</para>
|
|
|
|
<para>Para mais informações consulte <xref linkend="hardware"/></para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="four-meg-ram-install">
|
|
<para>Eu tenho apenas 4 MB de memória RAM. Posso
|
|
usar o FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD 2.1.7 foi a última versão do
|
|
sistema que rodava com apenas 4MB de memória. A
|
|
partir do FreeBSD 2.2, é necessário no
|
|
mínimo 5MB de memória para usar o
|
|
sistema.</para>
|
|
|
|
<para>Praticamente todas as versões do FreeBSD podem
|
|
<emphasis>rodar</emphasis> com 4MB de memória RAM,
|
|
contudo, a instalação do sistema operacional
|
|
não pode ser feita com apenas 4MB. Você pode
|
|
colocar mais memória para o processo de
|
|
instalação do sistema, e depois de
|
|
instalado, voltar a máquina para apenas 4MB de
|
|
memória, ou como alternativa, instale o seu disco
|
|
rígido em uma máquina com mais de 4MB,
|
|
efetue a instalação do sistema, e depois
|
|
instale o seu disco de volta na máquina com apenas
|
|
4MB.</para>
|
|
|
|
<para>O FreeBSD 2.1.7 não irá instalar em
|
|
sistemas que usam 640 Kb de memória base + 3 MB de
|
|
memória extendida. Se sua placa mãe pode
|
|
fazer o remapeamento da memória
|
|
<quote>subutilizada</quote> que vai sobrar dos 640kB da
|
|
região de 1MB, ai sim, você vai conseguir
|
|
usar o FreeBSD 2.1.7. Entre no Setup da sua BIOS, procure
|
|
a opção ``remap'' e habilite-a. Talvez
|
|
você tenha que desabilitar a opção de
|
|
ROM shadowing. Com certeza é mais fácil
|
|
você conseguir mais 4MB apenas para a
|
|
instalação, compilar um
|
|
<foreignphrase>kernel</foreignphrase> customizado e
|
|
portanto menor, e ai sim, tirar esses 4MB sobresalentes e
|
|
usar o sistema com apenas os 4MB originais. Também
|
|
é possível instalar o FreeBSD 2.0.5 e depois
|
|
<quote>atualizá-lo</quote> para o 2.1.7 com a
|
|
opção ``upgrade'' disponível no
|
|
programa de instalação do FreeBSD
|
|
2.1.7.</para>
|
|
|
|
<para>Depois de instalado o sistema, você pode
|
|
compilar um <foreignphrase>kernel</foreignphrase>
|
|
personalizado, que provavelmente irá permitir que o
|
|
sistema seja usado com 4MB de memória apenas.
|
|
Existem relatos de sucesso na utilização do
|
|
sistema com apenas 2MB de memória, contudo, nesse
|
|
caso é praticamente impossível usar alguma
|
|
outra aplicação junto ao sistema
|
|
operacional.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="custom-boot-floppy">
|
|
<para>Como eu crio meu próprio disquete de
|
|
instalação?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Atualmente não existe uma forma de
|
|
<emphasis>simplesmente criar</emphasis> um disco de
|
|
instalação personalizado. Para criar um
|
|
disquete personalizado você terá que preparar
|
|
todo um novo <literal>release</literal>, o qual, aí
|
|
sim, teria instruções de
|
|
instalação.</para>
|
|
|
|
<para>Para montar um <literal>release</literal>
|
|
personalizado siga as instruções do artigo
|
|
de <link xlink:href="../../articles/releng/article.html">Engenharia de
|
|
<literal>Release</literal></link> article.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="windows-coexist">
|
|
<para>O Windows 95/98 pode co-existir com o FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim. Primeiro você deve instalar o seu Windows,
|
|
e depois instalar o FreeBSD. O gerenciador de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do FreeBSD vai ser
|
|
instalado na MBR do seu disco, e vai conseguir controlar o
|
|
inicialização entre o FreeBSD e seu Windows.
|
|
Se você instalar o Windows depois do FreeBSD, a
|
|
instalação dele irá sobrescrever o
|
|
setor de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do seu disco, e
|
|
conseqüentemente seu gerenciador de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>), sem avisar ou pedir
|
|
qualquer confirmação. Se esse for o caso,
|
|
leia a próxima seção.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="win95-damaged-boot-manager">
|
|
<para>O Windows 95/98 sobrescreveu meu gerenciador de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>)! Como eu instalo ele
|
|
de volta?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Você pode reinstalar o gerenciador de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do FreeBSD de uma
|
|
das 3 maneiras:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Sob o DOS, entre no diretório tools/ da sua
|
|
distribuição do FreeBSD (seu CDROM por
|
|
exemplo) e procure o programa
|
|
<filename>bootinst.exe</filename>. Depois, execute-o
|
|
da seguinte forma:</para>
|
|
|
|
<screen><prompt>...\TOOLS></prompt> <userinput>bootinst.exe boot.bin</userinput></screen>
|
|
|
|
<para>e o gerenciador de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) será
|
|
reinstalado.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Faça a inicialização do
|
|
FreeBSD pelos disquetes de instalação ou
|
|
pelo CDROM novamente. Entre na opção
|
|
"Custom" do menu de
|
|
instalação, escolha a o ítem de
|
|
partições (Partition), selecione o drive
|
|
do disco que continha o seu gerenciador de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) (normalmente, se
|
|
trata do primeiro disco) e então você
|
|
entra no editor de partições. Não
|
|
faça nenhuma alteração, apenas
|
|
aperte a tecla W (Write). O programa de
|
|
instalação irá pedir a
|
|
confirmação, se você quer gravar
|
|
suas informações mesmo sem ter feito
|
|
nenhuma alteração. Escolha Sim. O
|
|
programa irá perguntar se você deseja
|
|
instalar o gerenciador de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do FreeBSD ou se
|
|
você deseja deixar o setor de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) intacto (ou
|
|
instalar um setor de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) padrão)
|
|
exatamente como no instante da primeira
|
|
instalação do FreeBSD. Escolha
|
|
<quote>Boot Manager</quote>. Agora o gerenciador de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) será
|
|
reinstalado no disco. Saia do programa de
|
|
instalação e reinicie o processo de
|
|
inicialização pelo HD
|
|
normalmente.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Inicie o FreeBSD com o disquete (ou CD) de
|
|
inicialização tradicional, escolha a
|
|
opção <quote>Fixit</quote> no menu do
|
|
sysinstall. Escolha entre o disquete de
|
|
correção ou o segundo CDROM (a
|
|
opção <quote>live</quote> na
|
|
distribuição padrão do FreeBSD)
|
|
no menu a seguir, e entre na shell de
|
|
correção do sistema. Em seguida execute
|
|
o comando:</para>
|
|
|
|
<screen><prompt>Fixit#</prompt> <userinput>fdisk -B -b /boot/boot0 bootdevice</userinput></screen>
|
|
|
|
<para>substituindo <replaceable>bootdevice</replaceable>
|
|
pela device controladora do seu disco, como por
|
|
exemplo, <filename>ad0</filename> (para o primeiro
|
|
disco IDE),<filename>ad4</filename> (para o
|
|
primeiro disco IDE na controladora secundária),
|
|
<filename>da0</filename> (para o primeiro disco
|
|
SCSI), etc.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="boot-on-thinkpad">
|
|
<para>O meu IBM Thinkpad série A, T ou X trava
|
|
sempre, quando eu tento inicializar
|
|
(<foreignphrase>boot</foreignphrase>) o FreeBSD. Como eu
|
|
resolvo isso?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Um bug nas primeiras versões da BIOS da IBM
|
|
nessas máquinas, erroneamente identifica as
|
|
partições FreeBSD como
|
|
partições FAT especiais. Quando a BIOS
|
|
tenta reconhecer a partição FreeBSD, o
|
|
sistema trava.</para>
|
|
|
|
<para>De acordo com a IBM<footnote><para>Em um e-mail
|
|
enviado por Keith Frechettei
|
|
<email>kfrechet@us.ibm.com</email>.</para></footnote>,
|
|
os seguintes modelos/BIOS tem esse problema
|
|
corrigido:</para>
|
|
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Modelo</entry>
|
|
|
|
<entry>Revisão da BIOS</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>T20</entry>
|
|
|
|
<entry>IYET49WW ou posterior</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>T21</entry>
|
|
|
|
<entry>KZET22WW ou posterior</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>A20p</entry>
|
|
|
|
<entry>IVET62WW ou posterior</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>A20m</entry>
|
|
|
|
<entry>IWET54WW ou posterior</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>A21p</entry>
|
|
|
|
<entry>KYET27WW ou posterior</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>A21m</entry>
|
|
|
|
<entry>KXET24WW ou posterior</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>A21e</entry>
|
|
|
|
<entry>KUET30WW</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
|
|
<para>Existem relatos de que as revisões posteriores
|
|
das BIOS IBM re-introduziram esse bug. <link xlink:href="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=200565+208320+/usr/local/www/db/text/2001/freebsd-mobile/20010429.freebsd-mobile">Essa
|
|
mensagem</link> enviada por Jacques Vidrine para a
|
|
&a.mobile; descreve uma série de procedimentos que
|
|
podem funcionar no seu laptop IBM, caso seja uma
|
|
versão um pouco mais nova, e que não consiga
|
|
inicializar (<foreignphrase>boot</foreignphrase>) o
|
|
FreeBSD corretamente. Você pode ainda fazer uma
|
|
atualização ou desatualização
|
|
(upgrade ou downgrade) da BIOS.</para>
|
|
|
|
<para>Se a BIOS é mais antiga, e você
|
|
não considera sua atualização, existe
|
|
uma opção que pode sanar seu problema. A
|
|
instalação do FreeBSD pode ser feita
|
|
alterando-se a identificação da
|
|
partição (partition ID) do sistema, e depois
|
|
instalar novos setores de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) que podem controlar
|
|
uma partition ID diferente.</para>
|
|
|
|
<para>O primeiro passo é restaurar o seu laptop ao
|
|
ponto onde ele pode fazer os auto-testes, ou seja, os
|
|
testes básicos de I/O da BIOS. Para fazer isso,
|
|
basta ligar o computador de forma que ele não
|
|
consiga encontrar a partição primária
|
|
do FreeBSD. A maneira mais simples de faze-lo, é
|
|
retirando o disco rígido do seu laptop, e
|
|
temporariamente ligando-o em um ThinkPad mais antigo (como
|
|
oThinkPad 600) ou em um PC comum, com um cabo de
|
|
conversão apropriado. Uma vez feito isso, basta
|
|
apagar a partição 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.</para>
|
|
|
|
<para>Com a máquina funcionando, basta seguir as
|
|
próximas instruções para fazer o seu
|
|
FreeBSD instalar:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Baixe da rede os arquivos
|
|
<filename>boot1</filename> e
|
|
<filename>boot2</filename> no site <link xlink:href="http://people.FreeBSD.org/~bmah/ThinkPad/">http://people.FreeBSD.org/~bmah/ThinkPad/</link>.
|
|
Coloque esses arquivos em algum lugar onde você
|
|
possa acessá-los posteriormente.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Instale o FreeBSD normalmente no ThinkPad.
|
|
<emphasis>Não</emphasis> use o modo
|
|
<literal>Dangerously Dedicated</literal>.
|
|
<emphasis>Não</emphasis> reinicie o sistema
|
|
quando o processo de instalação for
|
|
concluído.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Vá para a <quote>Shell Holográfica
|
|
de Emergência</quote> (<keycombo action="simul"><keycap>ALT</keycap>
|
|
<keycap>F4</keycap></keycombo>) ou inicie uma shell
|
|
de recuperação -
|
|
<quote>fixit</quote></para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Use o &man.fdisk.8; para alterar a partition ID de
|
|
<literal>165</literal> para <literal>166</literal>
|
|
(166 é o ID usado pelo OpenBSD).</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Coloque os arquivos <filename>boot1</filename> e
|
|
<filename>boot2</filename> no sistema de arquivos
|
|
local.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Use o &man.disklabel.8; para escrever o
|
|
<filename>boot1</filename> e o
|
|
<filename>boot2</filename> na sua
|
|
partição FreeBSD.</para>
|
|
|
|
<screen>&prompt.root; <userinput>disklabel -B -b boot1 -s boot2 ad0sn</userinput></screen>
|
|
|
|
<para><replaceable>n</replaceable> é o
|
|
número da partição onde o FreeBSD
|
|
está instalado.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Reinicie o sistema. O gerenciador de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>)
|
|
oferecerá a opção de iniciar o
|
|
<literal>OpenBSD</literal>, mas na verdade essa
|
|
opção estará iniciando o
|
|
FreeBSD.</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Agora, se você quer manter os sistemas
|
|
operacionais OpenBSD e FreeBSD no mesmo laptop ThinkPad,
|
|
pode considerar isso um exercício prático
|
|
que fica a critério do leitor.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="install-bad-blocks">
|
|
<para>Posso instalar o FreeBSD em um disco com bad
|
|
blocks?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Até a versão 3.0, o FreeBSD tinha um
|
|
utilitário chamado <command>bad144</command>, que
|
|
automaticamente remapeava os bad blocks. Atualmente, os
|
|
discos IDE modernos são capazes de fazer isso
|
|
sozinhos, portanto o <command>bad144</command> foi
|
|
retirado da árvore do FreeBSD. Se sua
|
|
intenção é instalar o FreeBSD 3.0 ou
|
|
alguma versão mais recente, nós sinceramente
|
|
aconselhamos que você compre um novo disco. Se
|
|
você não quer comprar um disco novo,
|
|
então use o FreeBSD 2.X.</para>
|
|
|
|
<para>Se você esta tendo problemas de bad block com
|
|
algum disco IDE moderno, provavelmente o disco será
|
|
perdido em breve, já que ele está tão
|
|
corrompido que a controladora interna não
|
|
está conseguindo corrigir e remapear os bad blocks.
|
|
Sugerimos que você compre um disco novo logo, e
|
|
realize cópia de segurança
|
|
(<foreignphrase>backup</foreignphrase>) dos dados,
|
|
enquanto o disco ainda funciona.</para>
|
|
|
|
<para>Se o drive de disco é SCSI e está
|
|
apresentando bad blocks, leia <link linkend="awre">essa
|
|
resposta</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="bad144-3x-4x">
|
|
<para>Eu acabei de atualizar o sistema da série 3.X
|
|
para 4.X, e a minha primeira inicialização
|
|
(<foreignphrase>boot</foreignphrase>) falhou com a
|
|
mensagem <errorname>bad sector table not
|
|
supported</errorname></para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD 3.X e anteriores suportavam o programa
|
|
<command>bad144</command>, que automaticamente remapeava
|
|
bad blocks. O FreeBSD 4.X e posteriores não
|
|
suportam mais esse programa, devido ao fato que os
|
|
controladores de discos IDE atuais conseguem remapear bad
|
|
blocks automaticamente. Leia <link linkend="install-bad-blocks">essa pergunta</link> para
|
|
mais informações.</para>
|
|
|
|
<para>Para corrigir esse problema depois de uma
|
|
atualização, é necessário
|
|
mover fisicamente o disco com problemas para um outro
|
|
sistema FreeBSD funcional e usar o &man.disklabel.8; da
|
|
forma discutida a seguir.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="find-bad144">
|
|
<para>Como eu faço se um disco tem
|
|
informações criadas pelo
|
|
<command>bad144</command> antes de atualizar o sistema, e
|
|
depois de atualizado para o FreeBSD 4.0 ou posterior, a
|
|
inicialização falha?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Use o &man.disklabel.8; para identificar esse ambiente.
|
|
<command>disklabel -r drive
|
|
device</command> vai te mostrar o
|
|
conteúdo do disco. Procure o campo
|
|
<literal>flags</literal>. Se encontrar a
|
|
informação <literal>flags: badsect</literal>
|
|
é porque esse disco está usando o bad144.
|
|
Por exemplo, o disco a seguir tem o
|
|
<command>bad144</command> habilitado:</para>
|
|
|
|
<screen>&prompt.root; disklabel -r wd0
|
|
# /dev/rwd0c:
|
|
type: ESDI
|
|
disk: wd0s1
|
|
label:
|
|
flags: badsect
|
|
bytes/sector: 512
|
|
sectors/track: 63</screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="disable-bad144">
|
|
<para>Como eu removo o <command>bad144</command> do meu
|
|
sistema anterior ao 4.X de forma que eu possa
|
|
atualizá-lo com segurança?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Use o comando <command>disklabel -e -rwd0</command>
|
|
para editar as informações do seu disco.
|
|
Basta retirar a palavra <literal>badsect</literal> do seu
|
|
campo flags, salvar a alteração e sair do
|
|
programa. O bad144 ainda estará ocupando algum
|
|
espaço no seu disco, mas ele estará
|
|
funcional para série 4.X e posteriores.</para>
|
|
|
|
<para>Caso seu disco tenha um número muito alto de
|
|
bad blocks, é recomendado a troca do disco.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="boot-floppy-strangeness">
|
|
<para>Coisas estranhas acontecem quando inicio o sistema com
|
|
o disco de instalação! O que está
|
|
acontecendo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se sua máquina está desligando ou
|
|
espontâneamente reiniciando sempre que você
|
|
tenta iniciar o sistema com o disco de
|
|
instalação, aqui vão algumas
|
|
perguntas que você deveria fazer a si mesmo:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>O disco de instalação foi feito a
|
|
partir de um disquete novo, recém formatado e
|
|
completamente livre de erros (de preferência
|
|
algum disco que acabou de sair da caixa, ao
|
|
contrário desse seu disco que estava perdido
|
|
há quase 3 anos debaixo da cama)?</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Você baixou da rede a imagem em modo
|
|
binário? (não se envergonhe, até
|
|
o melhor de nós já baixou um arquivo
|
|
binário em modo ASCII ao menos uma vez na
|
|
vida!)</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>No Windows 95 ou 98, você usou o
|
|
<command>fdimage</command> ou o
|
|
<command>rawrite</command> 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 criação
|
|
da imagem de disco faz, mesmo que você execute
|
|
um prompt do DOS no ambiente gráfico o problema
|
|
pode ocorrer.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
|
|
<para>Ainda existem notícias de arquivos de imagens
|
|
sendo corrompidos pelo Netscape, durante o
|
|
<foreignphrase>download</foreignphrase>, por isso é
|
|
mais seguro utilizar um cliente de FTP diferente.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="no-install-cdrom">
|
|
<para>Eu inicializei o FreeBSD a partir do meu CDROM ATAPI,
|
|
mas o programa de instalação diz que o CDROM
|
|
não foi encontrado. Para onde ele foi?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A causa desse problema curioso é a
|
|
configuração 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 óptico do tipo mestre na mesma controladora.
|
|
De acordo com as especificações ATAPI esse
|
|
tipo de configuração é incorreta e
|
|
ilegal. Alguns sistemas, como o Windows, simplesmente
|
|
ignoram uma série de especificações
|
|
legais na arquitetura de computadores pessoais, e acabam
|
|
oferecendo suporte a essa configuração
|
|
errônea - 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 não
|
|
consegue encontrá-lo, para completar a
|
|
instalação.</para>
|
|
|
|
<para>Reconfigure o seu computador de forma que o CDROM
|
|
esteja como mestre na sua controladora IDE, ou que exista
|
|
um outro periférico como mestre na controladora
|
|
onde o CD estiver como escravo.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="install-PLIP">
|
|
<para>Posso instalar o FreeBSD no meu laptop via PLIP (IP em
|
|
Linha Paralela)?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Claro. Use o cabo laplink padrão. Caso
|
|
necessário, verifique a <link xlink:href="../handbook/plip.html">seção de
|
|
PLIP</link> do &a.ptbr.p.handbook; para obter detalhes
|
|
sobre a instalação do FreeBSD via rede em
|
|
porta paralela.</para>
|
|
|
|
<para>Se você está usando o FreeBSD 3.X ou
|
|
anterior, dê uma olhada na página de <link xlink:href="http://www.FreeBSD.org/docs.html#PAO">Computação
|
|
Móvel</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="geometry">
|
|
<para>Qual geometria eu devo utilizar para um disco?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<note>
|
|
<para>Por <quote>geometria</quote>, nós entendemos
|
|
o número de cilindros, cabeças e
|
|
setores/trilhas de um disco. Por conveniência,
|
|
vamos nos referir à esses dados como C/H/S
|
|
(Cylinders/Heads/Sectores). É a partir dessa
|
|
informação que a BIOS dos PCs definem
|
|
quais áreas de um disco podem ser usadas para
|
|
leitura/escrita.</para>
|
|
</note>
|
|
|
|
<para>A geometria de disco costuma causar uma série
|
|
de confusões entre administradores de sistemas
|
|
menos experientes. Para começar, a geometria
|
|
<emphasis>física</emphasis> de um disco SCSI
|
|
é totalmente irrelevante, pois o FreeBSD trabalha
|
|
com blocos de discos. Na verdade, não existe
|
|
exatamente <quote>a</quote> geometria física de um
|
|
disco, visto que a densidade de um setor varia de acordo
|
|
com os discos. Os fabricantes chamam de <quote>geometria
|
|
física</quote> as especificações
|
|
que eles definem para que o menor espaço
|
|
possível em disco seja desperdiçado. Em
|
|
discos IDE, o FreeBSD trabalha com as
|
|
informações de C/H/S, mas todos os
|
|
dispositivos modernos, internamente convertem essa
|
|
informações em referências a blocos de
|
|
disco.</para>
|
|
|
|
<para>O que importa, portanto, é a geometria
|
|
<emphasis>lógica</emphasis>. O valor lógico
|
|
é a resposta que a BIOS obtém quando
|
|
pergunto <quote>qual sua geometria?</quote> ao disco.
|
|
É esse valor, então, que é usado para
|
|
definir a forma de acesso ao dispositivo de armazenamento.
|
|
O FreeBSD usa as informações da BIOS quando
|
|
inicializa (<foreignphrase>boot</foreignphrase>), e por
|
|
isso é extremamente importante obter essa
|
|
informação de maneira correta. No geral, se
|
|
você tem mais de um sistema operacional no mesmo
|
|
disco, eles devem concordar no valor lógico da
|
|
geometria do disco, caso contrário você
|
|
terá sérios problemas ao iniciar o
|
|
sistema.</para>
|
|
|
|
<para>Em discos SCSI, a geometria à ser utilizada
|
|
depende do suporte à tradução
|
|
extendida definido na sua controladora de disco
|
|
(normalmente esse suporte é chamado de
|
|
<quote>support for DOS disks >1GB</quote>, que
|
|
identifica o suporte à discos DOS cuja capacidade
|
|
de armazenamento é maior que 1GB - ou alguma
|
|
identificação similar.). Se essa
|
|
opção está desabilitada, então
|
|
o C/H/S do disco será de
|
|
<replaceable>N</replaceable> cilindros, 64 cabeças
|
|
e 32 setores/trilhas, onde o valor
|
|
<replaceable>N</replaceable> equivale a capacidade (em MB)
|
|
do disco. Por exemplo, um disco de 2GB teria 2048
|
|
cilindros, 64 cabeças e 32 setores/trilhas.</para>
|
|
|
|
<para>Se a opção <emphasis>estiver</emphasis>
|
|
habilitada (normalmente ela é habilitada por
|
|
padrão, para sanar algumas limitações
|
|
de sistemas baseados em MSDOS), e a capacidade do disco
|
|
forma maior que 1GB, os valores C/H/S do disco
|
|
serão M cilindros, 63 setores por trilha
|
|
(<emphasis>não</emphasis> 64) e 255 cabeças,
|
|
sendo 'M' a capacidade do disco, em MB, dividido por
|
|
7.844238 (!). Então, por exemplo, o mesmo disco de
|
|
2GB nessa situação teria 261 cilindros, 63
|
|
setores por trilha e 255 cabeças.</para>
|
|
|
|
<para>Se você não entendeu o porque disso, ou
|
|
se o seu FreeBSD falha no momento de reconhecer a
|
|
geometria correta do seu disco durante a
|
|
instalação, existe uma forma de tentar
|
|
resolver esse problema. Crie uma pequena
|
|
partição do tipo DOS no seu disco, e
|
|
verifique se a BIOS consegue identificar corretamente a
|
|
geometria do mesmo. Caso consiga, a
|
|
instalação vai se completar com
|
|
tranqüilidade, e a pequena partição DOS
|
|
pode sempre ser deletada, com o editor de
|
|
partições do FreeBSD.</para>
|
|
|
|
<para>Como alternativa, existe uma aplicação
|
|
gratuitamente disponível com a
|
|
distribuição do FreeBSD, chamada de
|
|
<filename>pfdisk.exe</filename>. Ela pode ser encontrada
|
|
sob o diretório <filename>tools</filename> 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
|
|
partições do FreeBSD.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="disk-divide-restrictions">
|
|
<para>Existem restrições quanto ao
|
|
particionamento de discos?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim, existem. A principal delas, é que a
|
|
partição <quote>root</quote> não pode
|
|
ter mais de 1024 cilindros, senão a BIOS não
|
|
consegue iniciar o <foreignphrase>kernel</foreignphrase>
|
|
do sistema a partir dessa partição. (Note
|
|
que essa é uma limitação das BIOS dos
|
|
computadores pessoais, e não do FreeBSD).</para>
|
|
|
|
<para>Em um disco SCSI, essa limitação implica
|
|
que a partição raiz (root) deve estar
|
|
alocada nos primeiros 1024MB do disco (ou nos primeiros
|
|
4096MB, caso o suporte a tradução extendida
|
|
esteja habilitada - veja pergunta anterior). Em discos
|
|
IDE, o valor correspondente equivale a 504MB para
|
|
partição raiz (root).</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="disk-manager">
|
|
<para>O FreeBSD suporta programas gerenciadores de
|
|
discos?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD reconhece apenas o <quote>Ontrack Disk
|
|
Manager</quote>. Outros gerenciadores de discos
|
|
não são suportados.</para>
|
|
|
|
<para>Se sua intenção é usar o disco
|
|
com FreeBSD, você não precisa de um
|
|
gerenciador de discos. Basta configurar o disco para o
|
|
total de espaço que a BIOS reconhece (normalmente
|
|
504MB) e o FreeBSD vai conseguir identificar o tamanho
|
|
real do disco. Se você estiver usando um disco
|
|
antigo com uma controladora MFM, será
|
|
necessário avisar ao FreeBSD quantos cilindros o
|
|
disco tem.</para>
|
|
|
|
<para>Caso queira usar o disco com FreeBSD e algum outro
|
|
sistema operacional, provavelmente também
|
|
não será necessário um gerenciador de
|
|
discos. Certifique-se apenas que a partição
|
|
de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do FreeBSD e a
|
|
partição do outro sistema operacional
|
|
estejam nos primeiros 1024 cilindros do disco.
|
|
Normalmente, para administradores de sistemas que tomam
|
|
decisões racionais, 20MB de espaço em uma
|
|
partição de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) é mais que o
|
|
suficiente.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="missing-os">
|
|
<para>Quando eu inicio o FreeBSD, eu obtenho a mensagem
|
|
<errorname>Missing Operating System</errorname>. O que
|
|
está acontecendo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esse é um caso tópico do FreeBSD e o DOS
|
|
ou qualquer outro sistema operacional discordando de suas
|
|
definições em relação a <link linkend="geometry">geometria</link> do disco.
|
|
Provavelmente você terá que reinstalar o
|
|
FreeBSD, mas se seguir as instruções citadas
|
|
nas perguntas anteriores, raramente esse problema vai
|
|
acontecer.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="stop-at-boot-manager">
|
|
<para>Porque eu não consigo passar da tela
|
|
<prompt>F?</prompt> do gerenciador de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>)?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esse é mais um sintoma do problema descrito na
|
|
pergunta anterior. A geometria que a sua BIOS reconhece
|
|
não equivale ao valor definido no FreeBSD! Se a sua
|
|
controladora de disco ou sua BIOS suportam o modo de
|
|
tradução de cilindros (normalmente chamado
|
|
de <quote>>1GB drive support</quote>), tente alterar
|
|
essa opção e reinstalar o FreeBSD.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="need-complete-sources">
|
|
<para>Eu preciso instalar todos os fontes do sistema
|
|
operacional?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Geralmente não, mas é altamente
|
|
recomendável que você instale ao menos os
|
|
fontes <literal>base</literal>, que incluem
|
|
inúmeros arquivos mencionados ao longo desse
|
|
documento, como as fontes do sistema,
|
|
<literal>sys</literal> que inclui as fontes do
|
|
<foreignphrase>kernel</foreignphrase> do FreeBSD, sem os
|
|
quais não se pode criar um
|
|
<foreignphrase>kernel</foreignphrase> personalizado.
|
|
Não existe qualquer dependência do sistema
|
|
operacional em relação aos seus fontes; com
|
|
a única exceção do programa
|
|
&man.config.8;, o resto do sistema operacional não
|
|
precisa dos fontes para funcionar. Os outros fontes do
|
|
sistema operacional - exceto os fontes do
|
|
<foreignphrase>kernel</foreignphrase> - podem ser montados
|
|
remotamente (via NFS, por exemplo) em qualquer lugar, e
|
|
ainda assim novos binários podem ser compilados a
|
|
partir dos mesmos. Devido a restrição
|
|
única dos fontes do
|
|
<foreignphrase>kernel</foreignphrase>, é
|
|
recomendável que os outros fontes não sejam
|
|
diretamente montados sob <filename>/usr/src</filename> mas
|
|
sim, que sejam montados separadamente e depois
|
|
interligados com links simbólicos
|
|
apropriados.</para>
|
|
|
|
<para>Tendo todos os fontes disponíveis, e sabendo
|
|
reconstruir o sistema a partir dos mesmos, será
|
|
muito mais fácil manter o FreeBSD sincronizado e
|
|
atualizado com futuros releases.</para>
|
|
|
|
<para>Para escolher um subconjunto dos fontes do sistema,
|
|
escolha a opção <literal>Custom</literal>
|
|
quando estiver na opção
|
|
<literal>Distributions</literal> do programa de
|
|
instalação do sistema.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="need-kernel">
|
|
<para>Eu preciso criar um
|
|
<foreignphrase>kernel</foreignphrase>
|
|
personalizado?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Construir um novo
|
|
<foreignphrase>kernel</foreignphrase> costumava ser uma
|
|
obrigação na instalação do
|
|
FreeBSD, mas hoje em dia existe uma interface de
|
|
configuração do
|
|
<foreignphrase>kernel</foreignphrase> muito mais
|
|
amigável, que permite a redefinição
|
|
de recursos do sistema. Para acessar essa ferramenta,
|
|
basta inicializar (<foreignphrase>boot</foreignphrase>) o
|
|
sistema com a opção <option>-c</option> no
|
|
prompt de (<literal>boot:</literal>). Em especial, os
|
|
principais periféricos ISA - normalmente os mais
|
|
problemáticos - podem ser facilmente configurados
|
|
com essa opção.</para>
|
|
|
|
<para>Ainda é recomendável que se construa um
|
|
<foreignphrase>kernel</foreignphrase> personalizado,
|
|
apenas com suporte aos equipamentos e
|
|
características do sistema que você precisa,
|
|
de forma a economizar recursos no sistema (especialmente
|
|
memória RAM), mas essa recompilação
|
|
não é mais uma obrigação na
|
|
maioria dos sistemas - mas é sem dúvida um
|
|
hábito saudável.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="password-encryption">
|
|
<para>Eu devo usar criptografia DES, Blowfish, ou MD5 para
|
|
senhas do sistema? Como eu defino qual delas o
|
|
usuário deve usar?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O formato padrão para senhas no FreeBSD
|
|
é a criptografia <emphasis>MD5</emphasis>. Esse
|
|
padrão é considerado mais seguro do que os
|
|
formatos tradicionais de senhas Unix, que normalmente eram
|
|
baseados no algorítimo <emphasis>DES</emphasis>. O
|
|
FreeBSD ainda pode trabalhar com senhas em formato DES
|
|
caso você precise compartilhá-las com
|
|
sistemas que ainda armazenam suas senhas no formato antigo
|
|
- e menos seguro - dos sistemas Unix originais (para isso
|
|
você terá que instalar a
|
|
distribuição <quote>crypto</quote> via
|
|
sysinstall ou apartir do código fonte). Instalando
|
|
as bibliotecas crypto será possivel utilizar outros
|
|
tipos de criptografia, como o formato Blowfish, que
|
|
é ainda mais seguro do que o MD5. A
|
|
definição de qual codificação
|
|
utilizar é definida no campo
|
|
<quote>passwd_format</quote> do arquivo de
|
|
configurações de login, o
|
|
<filename>/etc/login.conf</filename>. Esse campo deve ter
|
|
o valor <quote>des</quote>, <quote>blf</quote> (caso suas
|
|
bibliotecas estejam disponíveis) ou
|
|
<quote>md5</quote>. Veja a página de manuais do
|
|
&man.login.conf.5; para maiores
|
|
informações.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="boot-floppy-hangs">
|
|
<para>Por que o disco de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) inicia, mas trava na
|
|
tela <literal>Probing Devices...</literal>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
|
|
<para>Se você tem um drive Zip IDE ou um Jaz conectado
|
|
ao seu computador, remova-o e tente de novo. A
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) de
|
|
instalação do sistema se confunde as vezes
|
|
quando esses dispositivos estão disponíveis
|
|
no computador. Depois da instalação os
|
|
drives são reconhecidos e controlados normalmente.
|
|
Provavelmente - esperamos - esse problema será
|
|
corrigido nas próximas versões.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="panic-on-install-reboot">
|
|
<para>Por que ocorre o erro <errorname>panic: can't mount
|
|
root</errorname>, quando eu reinicio o sistema, depois
|
|
de tê-lo instalado.</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esse problema costuma ocorrer por conta de uma pequena
|
|
confusão entre os blocos do setor de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do disco, e as
|
|
definições de disco no
|
|
<foreignphrase>kernel</foreignphrase>. É um erro
|
|
típico apenas de sistemas com dois discos IDE,
|
|
quando os mesmos estão definidos como disco mestre
|
|
e escravo, mas em controladoras distintas, e com o FreeBSD
|
|
instalado na controladora secundária. Os blocos de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) acham que o sistema
|
|
está instalado no segundo disco IDE (o segundo
|
|
disco reconhecido pela BIOS) enquanto o
|
|
<foreignphrase>kernel</foreignphrase> assume o primeiro
|
|
disco na segunda controladora IDE. Depois do
|
|
reconhecimento dos equipamentos do sistema o
|
|
<foreignphrase>kernel</foreignphrase> tenta montar a
|
|
partição raiz no disco que o bloco de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) acredita ser o disco
|
|
de inicialização
|
|
(<foreignphrase>boot</foreignphrase>), wd1, ao
|
|
invés do disco correto na segunda controladora,
|
|
wd2, e por isso o processo de inicialização
|
|
falha.</para>
|
|
|
|
<para>Para corrigir esse problema, você tem três
|
|
opções:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>No FreeBSD 3.3 e posteriores, reincie o sistema e
|
|
aperte <keycap>Enter</keycap> na tela <literal>Booting
|
|
kernel in 10 seconds; hit [Enter] to
|
|
interrupt</literal>. Você será
|
|
direcionado ao <literal>boot loader</literal>.</para>
|
|
|
|
<para>Depois, digite <literal> set
|
|
root_disk_unit="disk_number"</literal>.
|
|
<replaceable>disk_number</replaceable> deverá
|
|
ser <literal>0</literal> se o FreeBSD estiver
|
|
instalado como mestre na primeira controladora IDE,
|
|
<literal>1</literal> se for o escravo na primeira
|
|
controladora, <literal>2</literal> se for o mestre da
|
|
segunda controladora IDE, e <literal>3</literal> se
|
|
for o escravo na segunda controladora.</para>
|
|
|
|
<para>Depois digite <literal>boot</literal>, e seu sistema deve ser iniciado corretamente.</para>
|
|
|
|
<para>Para tornar essa alteração
|
|
permanente, (para que você não tenha que
|
|
digitar isso na mão toda vez que seu FreeBSD
|
|
tiver que reiniciar) basta colocar a linha <literal>
|
|
root_disk_unit="disk_number"</literal>
|
|
no arquivo
|
|
<filename>/boot/loader.conf.local</filename>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Se você estiver usando o FreeBSD 3.2 ou
|
|
alguma versão anterior, digite
|
|
<literal>1:wd(2,a)kernel</literal> na prompt de
|
|
inicialização do sistema e aperte
|
|
<keycap>Enter</keycap>. Se o sistema iniciar
|
|
normalmente, execute o comando <command>echo
|
|
"1:wd(2,a)kernel" > /boot.config</command> para
|
|
tornar essa alteração permanente.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Mude o disco com o FreeBSD para primeira
|
|
controladora IDE.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><link xlink:href="../handbook/kernelconfig.html">Recompile o
|
|
<foreignphrase>kernel</foreignphrase></link>,
|
|
altere as linhas de configuração wd
|
|
para: </para>
|
|
|
|
<programlisting>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</programlisting>
|
|
|
|
<para>E instale o novo
|
|
<foreignphrase>kernel</foreignphrase>. Se você
|
|
mudou seu disco e quer voltar ele para
|
|
configuração original, mude a ordem
|
|
deles no PC e reinicie o sistema. Seu sistema deve
|
|
iniciar com sucesso.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="memory-limits">
|
|
<para>Quais são as limitações de
|
|
memória?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A limitação de memória é
|
|
de 4 gigabytes. Essa definição foi testada,
|
|
veja a <link xlink:href="ftp://ftp.cdrom.com/archive-info/configuration">configuração
|
|
do wcarchive</link> para obter mais detalhes. Se
|
|
você pretende instalar essa quantidade de
|
|
memória no FreeBSD, seja cuidadoso. Dê
|
|
preferência para memórias ECC e reduza a
|
|
capacidade de carga usando modules de memória de 9
|
|
chips, ai invés dos módulos de 18
|
|
chips.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ffs-limits">
|
|
<para>Qual a limitação para o sistema de
|
|
arquivos FFS?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Para o sistema de arquivos FFS, o limite
|
|
máximo, na teoria é de 8 terabytes (para
|
|
blocos de 2K), ou 16TB para o tamanho padrão dos
|
|
blocos, que é de 8K. Na prática os limites
|
|
variam de 1TB a 4TB de acordo com algumas
|
|
modificações no sistema de arquivos.</para>
|
|
|
|
<para>O tamanho máximo para um arquivo no sistema FFS
|
|
é de 1G de blocos (4TB) caso os blocos sejam de
|
|
4K.</para>
|
|
|
|
<table>
|
|
<title>Tamanho máximo dos arquivos.</title>
|
|
|
|
<tgroup cols="5">
|
|
<thead>
|
|
<row>
|
|
<entry>Tamanho do bloco</entry>
|
|
|
|
<entry>2.2.7-stable</entry>
|
|
|
|
<entry>3.0-current</entry>
|
|
|
|
<entry>Funciona com</entry>
|
|
|
|
<entry>Deve funcionar</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>4K</entry>
|
|
|
|
<entry>4T-1</entry>
|
|
|
|
<entry>4T-1</entry>
|
|
|
|
<entry>4T-1</entry>
|
|
|
|
<entry>>4T</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>8K</entry>
|
|
|
|
<entry>>32G</entry>
|
|
|
|
<entry>8T-1</entry>
|
|
|
|
<entry>>32G</entry>
|
|
|
|
<entry>32T-1</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>16K</entry>
|
|
|
|
<entry>>128G</entry>
|
|
|
|
<entry>16T-1</entry>
|
|
|
|
<entry>>128G</entry>
|
|
|
|
<entry>32T-1</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>32K</entry>
|
|
|
|
<entry>>512G</entry>
|
|
|
|
<entry>32T-1</entry>
|
|
|
|
<entry>>512G</entry>
|
|
|
|
<entry>64T-1</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>64K</entry>
|
|
|
|
<entry>>2048G</entry>
|
|
|
|
<entry>64T-1</entry>
|
|
|
|
<entry>>2048G</entry>
|
|
|
|
<entry>128T-1</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<para>Quando o sistema de arquivos possui blocos de 4K, o
|
|
triplo de blocos indiretores funcionam, e o limite
|
|
máximo do sistema de arquivos deveria ser atingido,
|
|
mas a triplicação dos blocos indiretores
|
|
(representados aproximadamente pelo resultado de 1K^3 +
|
|
1K^2 + 1K) se limita ao valor (errôneo) de 1G-1 no
|
|
número de blocos do sistema de arquivos. O limite
|
|
do número de blocos deveria ser 2G-1. Mas por
|
|
causa de alguns problemas com o número dos blocos
|
|
no sistema de arquivos, esse valor não pode ser
|
|
alcançado quando o tamanho dos blocos no sistema de
|
|
arquivos é 4K.</para>
|
|
|
|
<para>Em blocos com tamanho de 8K ou maiores, o limite geral
|
|
é de 2G-1 no número de blocos do sistema de
|
|
arquivos, exceto no FreeBSD -STABLE onde o triplo indireto
|
|
do número de blocos pode ser alcançado, de
|
|
forma que o limite máximo do sistema de arquivos
|
|
seja representado pela equação
|
|
((blocksize/4)^2 + (blocksize/4)), e sob o -CURRENT onde a
|
|
exceção desse limite pode causar
|
|
problemas.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="archsw-readin-failed-error">
|
|
<para>Por que a mensagem de erro
|
|
<errorname>archsw.readin.failed</errorname> me perturba
|
|
sempre, depois que eu recompilo e carrego um
|
|
<foreignphrase>kernel</foreignphrase> novo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Você pode carregar um novo
|
|
<foreignphrase>kernel</foreignphrase> ao especifica-lo
|
|
diretamente no segundo estágio do processo de
|
|
inicialização, simplesmente apertando
|
|
qualquer tecla quando o pipe ( | ) aparecer, antes que o
|
|
loader seja carregado. Provavelmente você atualizou
|
|
todo o sistema operacional, mas recompilou apenas o
|
|
<foreignphrase>kernel</foreignphrase>, <emphasis>sem dar
|
|
um make world</emphasis>. Essa ação
|
|
é arriscada e não é suportada.
|
|
Faça um Make World!!!!</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="upgrade-3x-4x">
|
|
<para>Como eu atualizo meu sistema da série 3.X para 4.X?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>É <emphasis>altamente</emphasis>
|
|
recomendável que você use
|
|
<foreignphrase>snapshots</foreignphrase> binários
|
|
para fazer isso. <foreignphrase>Snapshots</foreignphrase>
|
|
binário do 4-STABLE podem ser encontrados em <link xlink:href="ftp://releng4.FreeBSD.org/">ftp://releng4.FreeBSD.org/</link>.</para>
|
|
|
|
<para>Devido às inúmeras
|
|
alterações da série 3.X para
|
|
série 4-STABLE, uma atualização
|
|
direta, a partir dos fontes, corre grande riscos de
|
|
falhar. A atualização dos fontes pode ser
|
|
feita, inclusive desde as primórdias versões
|
|
2.X até as mais recentes 4-STABLE ou até
|
|
mesmo 5-CURRENT, mas essa atualização deve
|
|
ser realizada em vários estágios. Primeiro,
|
|
atualize a sua série 3.X pra versão mais
|
|
recente, a 3-STABLE (<literal>RELENG_3</literal>). Depois
|
|
atualize para o 4.1.1-RELEASE
|
|
(<literal>RELENG_4_1_1_RELEASE</literal>). Finalmente,
|
|
tente atualizar para o 4-STABLE
|
|
(<literal>RELENG_4</literal>).</para>
|
|
|
|
<para>Se você pretende atualizar seu sistema a partir
|
|
dos fontes, por gentileza, refira-se ao <link xlink:href="../handbook/cutting-edge.html">&a.ptbr.p.handbook;</link>
|
|
para maiores informações.</para>
|
|
|
|
<caution>
|
|
<para>A atualização direta por meio dos
|
|
fontes nunca é aconselhável para
|
|
usuários inexperientes, a
|
|
atualização da série 3.X para 4.X
|
|
portanto é menos aconselhável ainda,
|
|
portanto, caso você não tenha
|
|
experiências com esse processo de
|
|
atualização, leia todas as
|
|
instruções disponíveis no
|
|
&a.ptbr.p.handbook; com cuidado.</para>
|
|
</caution>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="security-profiles">
|
|
<para>Onde estão essas
|
|
<quote>especificações de
|
|
segurança</quote>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Uma <quote>especificação de
|
|
segurança</quote> se refere a um conjunto de
|
|
configurações e de opções no
|
|
sistema, que tendem a garantir um nível
|
|
desejável de segurança, por meio de definir
|
|
ou desabilitar algumas opções e programas no
|
|
FreeBSD. Para maiores detalhes, veja a
|
|
seção de <link xlink:href="../handbook/install-post.html#SECURITYPROFILE">
|
|
Especificação de Segurança</link>
|
|
no <link xlink:href="../handbook/install-post.html">capítulo de
|
|
pós-instalação</link> do
|
|
&a.ptbr.p.handbook;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="hardware">
|
|
<title>Compatibilidade de Hardware</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="architectures">
|
|
<para>O FreeBSD suporta outras arquiteturas além da
|
|
x86?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim. Atualmente o FreeBSD tem suporte para
|
|
arquiteturas Intel x86 e DEC (agora Compaq) Alpha.
|
|
Também existe um interesse conhecido no
|
|
<literal>port</literal> FreeBSD para plataforma SPARC.
|
|
Caso exista interesse em participar desse projeto ou saber
|
|
mais informações sobre
|
|
<literal>port</literal> para esta arquitetura, queira
|
|
juntar-se à lista de discussão do &a.sparc;.
|
|
As plataformas IA-64 e Power-PC foram recentemente
|
|
adicionadas à lista de arquiteturas que
|
|
serão futuramente suportadas; entre na lista do
|
|
&a.ia64; e/ou &a.ppc; para mais informações
|
|
sobre tais arquiteturas. Para discussões gerais
|
|
sobre outras arquiteturas, entre na lista de
|
|
discussão &a.platforms;.</para>
|
|
|
|
<para>Caso seu computador seja de uma arquitetura não
|
|
suportada pelo FreeBSD e precise de uma
|
|
solução imediata, nós sugerimos uma
|
|
olhada no <link xlink:href="http://www.netbsd.org/">NetBSD</link> ou <link xlink:href="http://www.openbsd.org/">OpenBSD</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="which-hardware-to-get">
|
|
<para>Preciso adquirir um novo hardware para um sistema com
|
|
FreeBSD. Qual o melhor modelo/marca/tipo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Essa é uma discussão tradicional nas
|
|
listas do FreeBSD. Partindo do princípio que os
|
|
tipos de equipamentos e suas características
|
|
alteram-se de forma muita rápida, e que nós
|
|
tentamos suportar essas mudanças e torná-las
|
|
suportadas, é <emphasis>fortemente
|
|
recomendado</emphasis> que você sempre leia as
|
|
<link xlink:href="&rel.current.hardware;">Notas de
|
|
Hardware</link> e faça uma busca nos <link xlink:href="http://www.freebsd.org/search/#mailinglists">histórico
|
|
das listas de discussão</link> antes de
|
|
perguntar sobre os melhores e mais novos equipamentos
|
|
disponíveis. É muito provável que as
|
|
informações que você quer sobre
|
|
determinado equipamento tenham sido discutidas há
|
|
menos de uma semana.</para>
|
|
|
|
<para>Caso você esteja procurando
|
|
informações sobre
|
|
<foreignphrase>laptops</foreignphrase>, verifique o
|
|
histórico da lista FreeBSD-mobile. Do
|
|
contrário, o histórico da FreeBSD-questions
|
|
será o mais indicado, ou de alguma lista
|
|
específica sobre o tipo de hardware em
|
|
questão.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="supported-hard-drives">
|
|
<para>Que tipos de discos rígido o FreeBSD
|
|
suporta?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD suporta discos EIDE e SCSI (com alguma
|
|
controladora compatível; veja a próxima
|
|
pergunta) e todos os outros discos que usam a interface de
|
|
controle original da <quote>Western Digital</quote> (MFM,
|
|
RLL, ESDI, e é claro IDE). Algumas controladoras
|
|
ESDI que usam interfaces de controle proprietária
|
|
não funcionarão no FreeBSD: mude para
|
|
controladoras do tipo WD1002/3/6/7 ou algum clone dessa
|
|
interface.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="supported-scsi-controllers">
|
|
<para>Quais controladoras SCSI são suportadas pelo
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Veja a lista completa de equipamentos suportados nas
|
|
<link xlink:href="&rel.current.hardware;">Notas de
|
|
Hardware</link> atuais.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="supported-cdrom-drives">
|
|
<para>Quais drives de CDROM são suportados pelo
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Quaisquer drives SCSI ligados à controladoras
|
|
suportadas são controladas pelo FreeBSD.</para>
|
|
|
|
<para>As seguintes interfaces proprietárias de CDROM
|
|
também são suportadas:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Mitsumi LU002 (8bits), LU005 (16bits) e FX001D
|
|
(16bits velocidade 2x (2x Speed)).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Sony CDU 31/33A.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>CDROM Sound Blaster não-SCSI.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>CDROM Matsushita/Panasonic.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>CDROMs IDE compatíveis com o padrão
|
|
ATAPI.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Todo equipamento não-SCSI é
|
|
reconhecidamente mais lento do que os SCSI, e alguns
|
|
drives de CDROM ATAPI podem não funcionar
|
|
corretamente.</para>
|
|
|
|
<para>A partir da versão 2.2, todos os CDROM do
|
|
FreeBSD distribuídos pela FreeBSD Mall podem ser
|
|
iniciados (booting) diretamente pela unidade de CD.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="supported-cdrw-drives">
|
|
<para>Quais drives de CD-RW são suportados pelo
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD suporta qualquer tipo de unidade CD-RW ou
|
|
CD-R IDE compatíveis com o padrão ATAPI. No
|
|
FreeBSD 4.0 e posteriores, leia a página de manual
|
|
do &man.burncd.8;.Em versões anteriores, veja os
|
|
exemplos de utilização desses equipamentos
|
|
em <filename>/usr/share/examples/atapi</filename>.</para>
|
|
|
|
<para>O FreeBSD também suporta qualquer drive de CD-R
|
|
ou CD-RW do tipo SCSI. Instale o aplicativo
|
|
<command>cdrecord</command> a partir da
|
|
coleção de <literal>ports</literal> ou como
|
|
pacote, e tenha certeza de ter o device
|
|
<filename>pass</filename> compilado no seu
|
|
<foreignphrase>kernel</foreignphrase>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="zip-support">
|
|
<para>O FreeBSD suporta ZIP Drives?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD suporta ZIP Drives do tipo SCSI, é
|
|
claro. Essa unidade deve ser configurada apenas nos SCSI
|
|
ID números 5 ou 6, mas se a sua BIOS tem suporte
|
|
à inicializãço(boot) pela unidade
|
|
SCSI, essa característica pode ser usada sem
|
|
problemas. Não está claro exatamente quais
|
|
adaptadores SCSI suportam a característica de
|
|
inicializãço(boot) em IDs diferentes de 0 ou
|
|
1, portanto será necessário consultar o
|
|
manual do seu equipamento para obter
|
|
informações mais precisas sobre esse
|
|
recurso.</para>
|
|
|
|
<para>Os ZIP Drives padrão ATAPI (IDE) são
|
|
suportados pelo FreeBSD desde a versão 2.2.6 e em
|
|
todas as posteriores.</para>
|
|
|
|
<para>O FreeBSD tem suporte ainda a ZIP Drives de Porta
|
|
Paralela desde a versão 3.0. Caso seu sistema seja
|
|
dessa versão ou superior, verifique o suporte a
|
|
<filename>scbus0</filename>,
|
|
<filename>da0</filename>,
|
|
<filename>ppbus0</filename>,
|
|
<filename>vp0</filename> no seu
|
|
<foreignphrase>kernel</foreignphrase> (o
|
|
<foreignphrase>kernel</foreignphrase> GENERIC tem todos
|
|
esses suportes, exceto à device
|
|
<filename>vp0</filename>). Com esses suportes
|
|
presentes no <foreignphrase>kernel</foreignphrase>, o
|
|
drive de Porta Paralela deve estar disponível em
|
|
<filename>/dev/da0s4</filename>. Os discos ZIP podem
|
|
ser montados usando o comando <command>mount /dev/da0s4
|
|
/mnt</command> OU (discos formatados como DOS)
|
|
<command>mount_msdos /dev/da0s4 /mnt</command>, como
|
|
é de costume.</para>
|
|
|
|
<para>Verifique também o <link linkend="jaz"><literal>FAQ</literal> sobre discos
|
|
removíveis</link> disponível ainda nesse
|
|
capítulo, e <link linkend="disklabel">as notas
|
|
sobre <quote>formatação</quote></link> no
|
|
capítulo de Administração.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="jaz-zip-removable-support">
|
|
<para>O FreeBSD suporta discos JAZ, EZ ou outras unidades
|
|
removíveis?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Fora a versão IDE dos discos EZ, os outros
|
|
discos são 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.</para>
|
|
|
|
<para><anchor xml:id="jaz"/>Não há uma certeza
|
|
quanto à forma que o FreeBSD trata uma
|
|
alteração de mídia enquanto o sistema
|
|
está em pleno uso, então é
|
|
necessário 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 reconhecê-las.</para>
|
|
|
|
<para>Veja essa <link linkend="disklabel">nota sobre
|
|
<quote>formatação</quote></link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="multiport-serial-support">
|
|
<para>Que dispositivos seriais de múltiplas portas
|
|
são suportados pelo FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Existe uma lista dessas unidades na
|
|
seção de <link xlink:href="../handbook/install.html#INSTALL-MISC">Dispositivos
|
|
Diversos</link> do &a.ptbr.p.handbook;.</para>
|
|
|
|
<para>Alguns dispositivos clones parecem também
|
|
funcionar normalmente no sistema, em especial equipamentos
|
|
que se dizem ser AST compatíveis.</para>
|
|
|
|
<para>Verifique a página de manual do &man.sio.4; para
|
|
obter mais informações quanto à
|
|
configuração desses dispositivos.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="usbkbd">
|
|
<para>O FreeBSD suporta meu teclado USB?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O suporte a dispositivos USB foi adicionado no FreeBSD
|
|
desde a versão 3.1. Contudo, na versão 3.1,
|
|
o suporte ainda é muito preliminar, e alguns
|
|
equipamentos podem não funcionar antes da
|
|
versão 3.2. Caso você queira usar o suporte
|
|
a teclados USB, tente o seguinte.</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>No FreeBSD 3.2 ou posterior.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Adicione as seguintes linhas no arquivo de
|
|
configuração do seu
|
|
<foreignphrase>kernel</foreignphrase>, e
|
|
recompile-o.</para>
|
|
|
|
<programlisting>device uhci
|
|
device ohci
|
|
device usb
|
|
device ukbd
|
|
options KBD_INSTALL_CDEV</programlisting>
|
|
|
|
<para>Em versões anteriores à 4.0,
|
|
use:</para>
|
|
|
|
<programlisting>controller uhci0
|
|
controller ohci0
|
|
controller usb0
|
|
controller ukbd0
|
|
options KBD_INSTALL_CDEV</programlisting>
|
|
</step>
|
|
|
|
<step>
|
|
<para>No diretório <filename>/dev</filename>,
|
|
crie os seguintes devices:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
|
&prompt.root; <userinput>./MAKEDEV kbd0 kbd1</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Edite o <filename>/etc/rc.conf</filename> e
|
|
adicione as seguintes linhas:</para>
|
|
|
|
<programlisting>usbd_enable="YES"
|
|
usbd_flags=""</programlisting>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Depois de reiniciado(rebooting) o sistema, o teclado
|
|
AT aparece como <filename>/dev/kbd0i</filename> e o
|
|
teclado USB aparece como
|
|
<filename>/dev/kbd1</filename> , se ambos estiverem
|
|
conectados ao sistema. Se estiver somente o teclado USB,
|
|
ele estará como
|
|
<filename>/dev/ukbd0</filename>.</para>
|
|
|
|
<para>Caso queira usar o teclado USB no console, é
|
|
necessário informar explicitamente ao driver do
|
|
console que ele deve usar esse teclado. Isso pode ser
|
|
feito com o seguinte comando em tempo de
|
|
inicialização do sistema:</para>
|
|
|
|
<screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null</userinput></screen>
|
|
|
|
<para>Note que se o teclado USB for o único teclado
|
|
disponível, ele será acessado via
|
|
<filename>/dev/kbd0</filename>, portanto a linha de
|
|
comando deve-se parecer com:</para>
|
|
|
|
<screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/null</userinput></screen>
|
|
|
|
<para>O arquivo <filename>/etc/rc.i386</filename> é
|
|
um bom lugar para colocar o comando acima.</para>
|
|
|
|
<para>Depois de configurado, o teclado USB deve funcionar
|
|
também no ambiente X, sem nenhuma outra
|
|
configuração especial.</para>
|
|
|
|
<para>Conectar e desconectar o teclado USB com o sistema
|
|
ligado ainda não é um comportamento
|
|
completamente suportado, portando é
|
|
aconselhável ligar o teclado antes de iniciar o
|
|
sistema e apenas desligá-lo depois que o computador
|
|
estiver desligado, para evitar possíveis
|
|
problemas.</para>
|
|
|
|
<para>Veja a página de manual do &man.ukbd.4; para
|
|
maiores informações.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="busmouse">
|
|
<para>Eu tenho um mouse de barramento não tradicional.
|
|
Como o configuro?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD suporta o barramento de mouse tradicional do
|
|
tipo InPort fabricados pela Microsoft, Logitech e ATI. O
|
|
suporte a esse periférico é compilado por
|
|
padrão no <foreignphrase>kernel</foreignphrase>
|
|
GENERIC do FreeBSD na versão 2.X, mas não
|
|
é suportado por padrão na versão 3.0
|
|
e posteriores. Se você quer recompilar um
|
|
<foreignphrase>kernel</foreignphrase> com suporte ao
|
|
barramento de mouse, adicionando a linha ao seu arquivo de
|
|
configuração:</para>
|
|
|
|
<para>No FreeBSD 3.0 e anteriores, adicione:</para>
|
|
|
|
<programlisting>device mse0 at isa? port 0x23c tty irq5 vector mseintr</programlisting>
|
|
|
|
<para>Na série 3.X do FreeBSD, a linha deve
|
|
ser:</para>
|
|
|
|
<programlisting>device mse0 at isa? port 0x23c tty irq5</programlisting>
|
|
|
|
<para>E na série 4.X e posteriores, a linha deve
|
|
ser:</para>
|
|
|
|
<programlisting>device mse0 at isa? port 0x23c irq5</programlisting>
|
|
|
|
<para>Barramentos de mouse costumam ter uma interface
|
|
dedicada que permite definir o endereço de
|
|
memória e a IRQ que a placa vai funcionar. Nesse
|
|
caso, refira-se ao manual do seu equipamento e à
|
|
página de manual do &man.mse.4; para maiores
|
|
informações.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ps2mouse">
|
|
<para>Como eu uso o meu mouse (<quote>mouse port</quote> ou
|
|
<quote>keyboard</quote>) PS/2?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Em versões posteriores ao 2.2.5, o
|
|
<foreignphrase>kernel</foreignphrase> do FreeBSD inclui
|
|
por padrão o suporte ao device
|
|
<filename>psm</filename>, que controlará seu
|
|
mouse PS/2 desde o momento de inicialização
|
|
do sistema.</para>
|
|
|
|
<para>Caso seu FreeBSD seja 2.1.X ou similar, o suporte a
|
|
PS/2 pode ser incluído no
|
|
<foreignphrase>kernel</foreignphrase>, no momento da
|
|
instalação, ou mesmo depois desse processo,
|
|
com a opção <option>-c</option> na tela de
|
|
<command>boot:</command> do sistema. O suporte nesse caso
|
|
é desabilitado por padrão e por isso deve
|
|
ser explicitamente habilitado.</para>
|
|
|
|
<para>Caso sua versão de FreeBSD seja antiga,
|
|
adicione a seguinte linha ao seu
|
|
<foreignphrase>kernel</foreignphrase> e
|
|
recompile-o:</para>
|
|
|
|
<para>No FreeBSD 3.0 e anteriores, a linha é:</para>
|
|
|
|
<programlisting>device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr</programlisting>
|
|
|
|
<para>No FreeBSD 3.1 e posteriores da mesma série, a
|
|
linha deve ser:</para>
|
|
|
|
<programlisting>device psm0 at isa? tty irq 12</programlisting>
|
|
|
|
<para>No FreeBSD 4.0 e posteriores, a linha é:</para>
|
|
|
|
<programlisting>device psm0 at atkbdc? irq 12</programlisting>
|
|
|
|
<para>Veja a seção de <link xlink:href="../handbook/kernelconfig.html">configuração
|
|
do <foreignphrase>kernel</foreignphrase></link> no
|
|
&a.ptbr.p.handbook; caso você não tenha
|
|
experiência com a compilação do
|
|
<foreignphrase>kernel</foreignphrase>.</para>
|
|
|
|
<para>Uma vez detectado o <filename>psm0</filename>
|
|
durante a inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do seu sistema,
|
|
tenha certeza de que existe uma entrada
|
|
<filename>psm0</filename> no
|
|
<filename>/dev</filename>. Faça o seguinte:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /dev; sh MAKEDEV psm0</userinput></screen>
|
|
|
|
<para>logado como usuário
|
|
<systemitem class="username">root</systemitem>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="moused">
|
|
<para>É possível usar mouse de alguma forma,
|
|
fora do sistema X Windows?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se estiver utilizando o driver padrão de
|
|
console, o syscons, pode-se usar o mouse para copiar &
|
|
colar texto. Execute o mouse daemon,
|
|
<command>moused</command>, para habilitar o mouse nos
|
|
consoles virtuais da seguinte forma:</para>
|
|
|
|
<screen>&prompt.root; <userinput>moused -p /dev/xxxx -t yyyy</userinput>
|
|
&prompt.root; <userinput>vidcontrol -m on</userinput></screen>
|
|
|
|
<para>Onde <replaceable>xxxx</replaceable> deve ser
|
|
substituído pelo nome de device do seu mouse e
|
|
<replaceable>yyyy</replaceable> pelo tipo de protocolo do
|
|
mesmo. Veja a página de manual do &man.moused.8;
|
|
para maiores informações quanto aos tipos de
|
|
protocolos suportados.</para>
|
|
|
|
<para>É provável que você queira usar o
|
|
mouse daemon automaticamente, sempre que o FreeBSD for
|
|
iniciado. Na versão 2.2.1, defina as seguintes
|
|
variáveis, no arquivo
|
|
<filename>/etc/sysconfig</filename>.</para>
|
|
|
|
<programlisting>mousedtype="yyyy"
|
|
mousedport="xxxx"
|
|
mousedflags=""</programlisting>
|
|
|
|
<para>Da versão 2.2.2 até a 3.0, defina as
|
|
seguintes variáveis no
|
|
<filename>/etc/rc.conf</filename>.</para>
|
|
|
|
<programlisting>moused_type="yyyy"
|
|
moused_port="xxxx"
|
|
moused_flags=""</programlisting>
|
|
|
|
<para>Da versão 3.1 em diante, caso você tenha
|
|
um mouse PS/2 é necessário apenas adicionar
|
|
a opção
|
|
<literal>moused_enable="YES"</literal> no
|
|
arquivo <filename>/etc/rc.conf</filename>.</para>
|
|
|
|
<para>E se a intenção é usar o mouse em
|
|
todos os terminais virtuais ao invés de apenas no
|
|
console, insira a seguinte linha no
|
|
<filename>/etc/rc.conf</filename>.</para>
|
|
|
|
<programlisting>allscreens_flags="-m on"</programlisting>
|
|
|
|
<para>Desde a versão 2.2.6 do FreeBSD, o mouse daemon
|
|
é capaz de detectar o tipo de protocolo do mouse
|
|
automaticamente, a não ser que o dispositivo em
|
|
questão seja um mouse serial muito velho. Defina
|
|
<literal>auto</literal> para que o programa identifique o
|
|
protocolo do mouse automaticamente.</para>
|
|
|
|
<para>Quando o daemon está rodando, o acesso ao
|
|
dispositivo deve ser coordenado entre ele e qualquer outra
|
|
aplicação, como o X-Windows, por exemplo.
|
|
Leia uma <link linkend="x-and-moused">outra
|
|
pergunta</link> sobre esse assunto.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="text-mode-cut-paste">
|
|
<para>Como eu copio e colo com o mouse em um console modo
|
|
texto?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Uma vez configurado o mouse (<link linkend="moused">veja a pergunta anterior</link>),
|
|
aperte o botão 1 (botão esquerdo) do mouse e
|
|
mova o cursor por toda a região desejada,
|
|
selecionando o texto em questão. Depois, basta
|
|
apertar o botão 2 (do meio) ou o botão 3
|
|
(direito) para colar o conteúdo selecionado
|
|
anteriormente.</para>
|
|
|
|
<para>A partir da versão 2.2.6 o botão 2 cola
|
|
o texto copiado, enquanto o botão 3 ``extende'' a
|
|
região selecionada. Caso seu mouse não
|
|
tenha o botão do meio, é possível
|
|
remapear (ou emular) os botões do periférico
|
|
usando algumas opções específicas do
|
|
mouse daemon. Veja a página de manual do
|
|
&man.moused.8; para maiores detalhes.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="usbmouse">
|
|
<para>O FreeBSD suporta mouse USB?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>No FreeBSD 3.1 existe um suporte preliminar à
|
|
recursos USB que não funciona muito bem dependendo
|
|
da situação. A partir da versão 4.0
|
|
o FreeBSD suporta dispositivos USB por padrão. Caso
|
|
queira usar um mouse USB no FreeBSD 3.X, siga as seguintes
|
|
instruções.</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Atualize seu sistema para FreeBSD 3.2 ou
|
|
posterior.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Adicione o seguinte suporte ao seu
|
|
<foreignphrase>kernel</foreignphrase>, e
|
|
recompile-o:</para>
|
|
|
|
<programlisting>device uhci
|
|
device ohci
|
|
device usb
|
|
device ums</programlisting>
|
|
|
|
<para>Em versões anteriores à 4.0 o
|
|
suporte à ser adicionado é:</para>
|
|
|
|
<programlisting>controller uhci0
|
|
controller ohci0
|
|
controller usb0
|
|
device ums0</programlisting>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Entre no diretório
|
|
<filename>/dev</filename> e crie os devices
|
|
necessários:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
|
&prompt.root; <userinput>./MAKEDEV ums0</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Edite o <filename>/etc/rc.conf</filename> e
|
|
adicione as linhas:</para>
|
|
|
|
<programlisting>moused_enable="YES"
|
|
moused_type="auto"
|
|
moused_port="/dev/ums0"
|
|
moused_flags=""
|
|
usbd_enable="YES"
|
|
usbd_flags=""</programlisting>
|
|
|
|
<para>Veja a <link linkend="moused">seção
|
|
anterior</link> para uma discussão mais
|
|
detalhada sobre o moused.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Para configurar o mouse USB no X, edite o
|
|
<filename>XF86Config</filename> e, caso esteja usando
|
|
o XFree86 3.3.2 ou posterior, adicione as seguintes
|
|
linhas na seção
|
|
<emphasis>Pointer</emphasis>:</para>
|
|
|
|
<programlisting>Device "/dev/sysmouse"
|
|
Protocol "Auto"</programlisting>
|
|
|
|
<para>Caso esteja usando uma versão anterior do
|
|
Xfree86, adicione também na seção
|
|
<emphasis>Pointer</emphasis> as seguintes
|
|
linhas:</para>
|
|
|
|
<programlisting>Device "/dev/sysmouse"
|
|
Protocol "SysMouse"</programlisting>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Leia também uma <link linkend="x-and-moused">outra pergunta</link> sobre o uso
|
|
do mouse em ambiente X.</para>
|
|
|
|
<para>Conectar e desconectar o teclado USB com o sistema
|
|
ligado ainda não é um comportamento
|
|
completamente suportado, portando é
|
|
aconselhável ligar o teclado antes de iniciar o
|
|
sistema e apenas desligá-lo depois que o computador
|
|
estiver desligado, para evitar possíveis
|
|
problemas.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="mouse-wheel-buttons">
|
|
<para>Eu tenho um mouse do tipo Wheel com uma rodinha e
|
|
botões adicionais. Posso usá-lo no
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A resposta, infelizmente é,
|
|
<quote>Depende</quote>. Esse tipo de mouse tem algumas
|
|
características especiais que requerem o uso de
|
|
<foreignphrase>drivers</foreignphrase> especiais na
|
|
maioria dos casos. A não ser que o device do seu
|
|
mouse tenha suporte específico, ou se a
|
|
aplicação em questão reconhecer esse
|
|
tipo de equipamento, ele irá funcionar simplesmente
|
|
como um mouse tradicional de dois ou três
|
|
botões.</para>
|
|
|
|
<para>Mais informações sobre o uso de mouse do
|
|
tipo Wheel em ambiente X Windows, refira-se a essa <link linkend="x-and-wheel">seção</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="psmerr">
|
|
<para>Por que meu mouse PS/2 do tipo Wheel fica louco,
|
|
pulando pela tela?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O suporte ao mouse PS/2 no FreeBSD 3.2 e anteriores
|
|
é falho quanto a mouses do tipo Wheel, incluindo o
|
|
modelo M-S48 da Logitech e seus similares OEM. Aplique o
|
|
seguinte patch no arquivo
|
|
<filename>/sys/i386/isa/psm.c</filename> e recompile seu
|
|
<foreignphrase>kernel</foreignphrase>:</para>
|
|
|
|
<programlisting>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) {</programlisting>
|
|
|
|
<para>Em versões posteriores à 3.2, o suporte
|
|
deve funcionar.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="laptop-mouse-trackball">
|
|
<para>Como eu uso o mouse/bolinha-de-rolagem/touchpad no meu
|
|
laptop?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por gentileza, <link linkend="ps2mouse">leia a
|
|
pergunta anterior</link>. Verifique também a
|
|
<link xlink:href="http://www.FreeBSD.org/docs.html#PAO">página
|
|
de Computação Móvel</link> do
|
|
Projeto.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="tape-support">
|
|
<para>Que tipos de dispositivos de fitas são
|
|
suportados pelo FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD suporta dispositivos de fitas do tipo SCSI e
|
|
QIC-36 (com interface QIC-02). Tal suporte inclui drives
|
|
8-mm (também conhecidos como Exabyte) e unidades de
|
|
fita DAT.</para>
|
|
|
|
<para>Alguns dispositivos 8-mm mais antigos não
|
|
são compatíveis com o padrão SCSI-2 e
|
|
por isso podem não funcionar bem no FreeBSD.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="tape-changer-support">
|
|
<para>O FreeBSD suporta bibliotecas de fitas?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD suporta alternadores (também
|
|
conhecidos com carrosséis) SCSI, usando o device
|
|
&man.ch.4; e o comando &man.chio.1;. Os detalhes
|
|
relativos a como controlar o alternador de fitas podem ser
|
|
encontrados na página de manual do
|
|
&man.chio.1;.</para>
|
|
|
|
<para>Caso você não esteja usando o
|
|
<application>AMANDA</application> ou qualquer outro
|
|
produto que entenda o funcionamento dos alternadores,
|
|
lembre-se que tal equipamento simplesmente alterna a
|
|
posição da fita, de um compartimento para
|
|
outro, e portanto deve-se saber em qual compartimento a
|
|
fita está e para qual ela deve voltar.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="sound-card-support">
|
|
<para>Quais placas de som são suportadas pelo
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD suporta as placas SoundBlaster, SoundBlaster
|
|
Pro, SoundBlaster 16, Pro Audio Spectrum 16, AdLib e
|
|
Gravis UltraSound. Existe ainda um suporte - limitado,
|
|
é verdade - para as placas MPU-401 e placas MIDI
|
|
compatíveis. Placas de som que estiverem em
|
|
conformidade com a especificação MSS
|
|
(Microsoft Sound System) também são
|
|
suportadas pela controladora pcm do
|
|
<foreignphrase>kernel</foreignphrase>.</para>
|
|
|
|
<note>
|
|
<para>Esse suporte é específico para apenas
|
|
som! Exceto no caso das placas SoundBlaster, o suporte
|
|
não inclui controle de joysticks, CDROMs ou SCSI.
|
|
A interface SCSI da SoundBlaster e alguns CDROMs
|
|
não-SCSI são suportados, mas o sistema
|
|
não pode iniciar(booting) a partir desses
|
|
dispositivos.</para>
|
|
</note>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="es1370-silent-pcm">
|
|
<para>Qual a solução para falta de som da
|
|
minha placa es1370 com o controlador pcm?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Basta aumentar o volume do seu som ;-) Use os
|
|
seguintes comandos, sempre que o sistema iniciar:</para>
|
|
|
|
<screen>&prompt.root; <userinput>mixer pcm 100 vol 100 cd 100</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="network-cards">
|
|
<para>Quais placas de rede o FreeBSD suporta?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Veja a seção de <link xlink:href="../handbook/install.html#INSTALL-NICS">Placas
|
|
Ethernet</link> do &a.ptbr.p.handbook; para uma lista
|
|
detalhada dos dispostivos suportados.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="no-math-coprocessor">
|
|
<para>Eu não tenho um co-processador
|
|
matemático. Isso é ruim?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<note>
|
|
<para>Vale apenas para proprietários de
|
|
386/486SX/486SLC - outras máquinas terão
|
|
um co-processador integrado à CPU.</para>
|
|
</note>
|
|
|
|
<para>No geral, a falta de um co-processador
|
|
matemático não traz nenhum problema, mas
|
|
existem algumas circunstâncias onde você
|
|
encontrará sérias limitações,
|
|
seja no desempenho ou na precisão da
|
|
emulação dos seus cálculos (veja a
|
|
seção de <link linkend="emul">emulação FP</link>). Por
|
|
exemplo, a renderização de círculos e
|
|
arcos no ambiente gráfico será uma tarefa
|
|
muito lenta. É recomendável comprar um
|
|
co-processador matemático; vale a pena.</para>
|
|
|
|
<note>
|
|
<para>Alguns co-processadores matemáticos
|
|
são melhores que outros. É estranho ter
|
|
que dizer isso, mas ninguém 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.</para>
|
|
</note>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="other-device-support">
|
|
<para>Que outros dispositivos o FreeBSD suporta?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Veja o <link xlink:href="../handbook/install.html#INSTALL-MISC">&a.ptbr.p.handbook;</link>
|
|
para obter uma listagem dos outros dispostivos
|
|
suportados.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="power-management-support">
|
|
<para>O FreeBSD suporta gerenciamento de energia no meu
|
|
laptop?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD suporta <acronym>APM</acronym> em alguns
|
|
computadores. Por gentileza, refira-se ao arquivo
|
|
<filename>LINT</filename> de configuração do
|
|
<foreignphrase>kernel</foreignphrase>; procure pela
|
|
palavra <acronym>APM</acronym>. Mais
|
|
informações na página de manual do
|
|
&man.apm.4;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="micron-hang-boot">
|
|
<para>Por que placas Micron travam na
|
|
inicialização(boot)?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Algumas placas-mãe Micron não tem
|
|
conformidade na implementação de sua BIOS e
|
|
por isso confundem o FreeBSD no momento da
|
|
inicialização(boot), pois os equipamentos em
|
|
questão não foram configurados nos
|
|
endereços que a BIOS reportou.</para>
|
|
|
|
<para>Procure a opção <quote>Plug and Play
|
|
Operating System</quote> - ou algo parecido - na sua
|
|
BIOS e desabilite-a para corrigir o problema. Mais
|
|
informações sobre esse problema podem ser
|
|
encontradas em <link xlink:href="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="newer-adaptec-support">
|
|
<para>Por que o FreeBSD não reconhece nenhuma
|
|
controladora SCSI Adaptec?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>As séries mais novas (AIC789x) dos chips
|
|
Adaptec tem suporte no modo CAM SCSI, que será
|
|
redefinido na versão 3.0 do FreeBSD. Na
|
|
versão 2.2-STABLE, você pode aplicar as
|
|
correções disponíveis em <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/</link>.
|
|
Caso você precise instalar um sistema com essas
|
|
controladoras, existe um disquete de
|
|
inicialização(boot) com suporta a CAM,
|
|
disponível em <link xlink:href="http://people.FreeBSD.org/~abial/cam-boot/">
|
|
http://people.FreeBSD.org/~abial/cam-boot/</link>. Nos
|
|
dois casos leia o arquivo README antes de tomar qualquer
|
|
ação.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="internal-plugnplay-modem">
|
|
<para>Por que o FreeBSD não encontra o meu Modem Plug
|
|
& Play interno?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Será necessário adicionar o ID PnP do
|
|
modem na lista de drivers seriais do sistema para que ele
|
|
reconheça-o normalmente. Isso requer hackear um
|
|
pouco o sistema. Pra habilitar o suporte Plug & Play,
|
|
compile um novo <foreignphrase>kernel</foreignphrase> com
|
|
a opção <literal>controller pnp0</literal> e
|
|
reinicie o seu FreeBSD. O
|
|
<foreignphrase>kernel</foreignphrase> irá mostrar
|
|
os IDs PnP de todos os dispositivos que ele encontrar, no
|
|
momento da inicialização(boot). Copie o ID
|
|
PnP do modem em questão para a tabela no arquivo
|
|
<filename>/sys/i386/isa/sio.c</filename>, por volta da
|
|
linha 2777. Procure a expressão
|
|
<literal>SUP1310</literal> na estrutura
|
|
<literal>siopnp_ids[]</literal> para encontrar essa
|
|
tabela. Recompile o seu
|
|
<foreignphrase>kernel</foreignphrase>, instale-o e
|
|
reinicie o sistema. Seu modem deve ser encontrado.</para>
|
|
|
|
<para>Provavelmente será necessário configurar
|
|
o dispositivo PnP manualmente, usando o comando
|
|
<literal>pnp</literal> no momento do boot, como a
|
|
seguir:</para>
|
|
|
|
<programlisting>pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8</programlisting>
|
|
|
|
<para>para forçar detecção do
|
|
modem.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="support-winmodem">
|
|
<para>O FreeBSD suporta software modems, como os
|
|
Winmodems?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD suporta alguns software modems por meio de
|
|
programas adicionais. A aplicação <package>comms/ltmdm</package> disponível
|
|
na coleção de <literal>Ports</literal> do
|
|
FreeBSD suporta os modems baseados no popular chipset
|
|
Lucent LT. A aplicação <package>comms/mwavem</package> suporta o modem
|
|
em laptops IBM Thinkpad 600 e 700.</para>
|
|
|
|
<para>Não é possível instalar o FreeBSD
|
|
via software modem, visto que os programas adicionais para
|
|
controlar esse equipamento só podem ser
|
|
configurados depois que o sistema operacional já
|
|
está instalado.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="serial-console-prompt">
|
|
<para>Como eu faço para o interpretador(prompt) de
|
|
inicialização(boot): aparecer no console
|
|
serial?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Construa um <foreignphrase>kernel</foreignphrase>
|
|
com a opção <literal>options
|
|
COMCONSOLE</literal>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Crie o arquivo /boot.config e coloque os
|
|
caracteres <option>-P</option> como o único
|
|
texto no arquivo. </para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Desligue o teclado do computador.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
|
|
<para>Leia o arquivo
|
|
<filename>/usr/src/sys/i386/boot/biosboot/README.serial</filename>
|
|
para mais informações.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="micron-3comnic-failure">
|
|
<para>Por que a placa de rede PCI da 3Com não
|
|
funciona com motherboards Micron?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Algumas placas-mãe Micron não tem
|
|
conformidade na implementação de sua BIOS e
|
|
por isso confundem o FreeBSD no momento do boot, pois os
|
|
equipamentos em questão não foram
|
|
configurados nos endereços que a BIOS
|
|
reportou.</para>
|
|
|
|
<para>Procure a opção <quote>Plug and Play
|
|
Operating System</quote> - ou algo parecido - na sua
|
|
BIOS e desabilite-a para corrigir o problema.</para>
|
|
|
|
<para>Mais informações sobre esse problema
|
|
podem ser encontradas em <link xlink:href="http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron">http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron</link></para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="smp-support">
|
|
<para>O FreeBSD suporta Multiprocessamento Simétrico
|
|
(SMP)?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>SMP é suportado a partir do FreeBSD 3.0-STABLE.
|
|
O suporte ao SMP (multiprocessamento simétrico)
|
|
não está disponível por padrão
|
|
no <foreignphrase>kernel</foreignphrase>
|
|
<emphasis>GENERIC</emphasis>, portanto é
|
|
necessário compilar um novo
|
|
<foreignphrase>kernel</foreignphrase> para habilitar o
|
|
suporte SMP. Veja o arquivo
|
|
<filename>/sys/i386/conf/LINT</filename> para descobrir
|
|
quais opções são necessárias
|
|
adicionar ao seu
|
|
<foreignphrase>kernel</foreignphrase>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="asusk7v-boot-failure">
|
|
<para>O disquete de inicialização(boot) trava
|
|
em um computador cuja placa-mãe é a ASUS
|
|
K7V. O que eu faço?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Entre na configuração da BIOS da sua
|
|
placa e desligue a opção <quote>boot virus
|
|
protection</quote>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="troubleshoot">
|
|
<title>Resolução de Problemas</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="awre">
|
|
<para>O que fazer quando meu disco rígido tiver bad
|
|
blocks?
|
|
</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Com controladoras SCSI, o drive (HD) deveria ser capaz
|
|
de remapear blocos ruins e corrigí-los
|
|
automaticamente. Porém, muitos desses discos
|
|
mantém essa função desabilitada por
|
|
alguma razão misteriosa...</para>
|
|
|
|
<para>Para habilitar essa função é
|
|
necessário editar o primeiro modo de página
|
|
do dispositivo, o qual pode ser feito com o comando abaixo
|
|
(como <systemitem class="username">root</systemitem>)</para>
|
|
|
|
<screen>&prompt.root; <userinput>scsi -f /dev/rsd0c -m 1 -e -P 3</userinput></screen>
|
|
|
|
<para>E mudando os valores de AWRE e ARRE de 0 para
|
|
1:-</para>
|
|
|
|
<programlisting>AWRE (Auto Write Reallocation Enbld): 1
|
|
ARRE (Auto Read Reallocation Enbld): 1</programlisting>
|
|
|
|
<para>Os parágrafos seguintes foram enviados por Ted
|
|
Mittelstaedt <email>tedm@toybox.placo.com</email>:</para>
|
|
|
|
<para>Para os discos IDE, qualquer bad block é
|
|
considerado um sinal de dificuldade em potencial. Todos
|
|
os discos IDE modernos já vêm com um
|
|
remapeador interno que realoca bad blocks por outros
|
|
blocos em bom estado, automaticamente. Todos os disco
|
|
rígido IDE fabricados hoje em dia oferecem
|
|
garantias extensas.</para>
|
|
|
|
<para>Se ainda quiser tentar salvar um drive IDE com bad
|
|
blocks, pode fazer um download do programa de
|
|
diagnóstico e correção do
|
|
próprio fabricante do disco rígido.
|
|
Às vezes estes programas podem fixar e
|
|
forçar eletronicamente o disco a marcar estes
|
|
blocos ruins e desativá-los.</para>
|
|
|
|
<para>Em discos ESDI, RLL e MFM, a existência de bad
|
|
blocks é normal e não 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 código da
|
|
BIOS para acessar o disco. Porém, o driver
|
|
(software controlador) do FreeBSD não trabalha ou
|
|
acessa comandos da BIOS para para interagir com o drive
|
|
(HD), então um mecanismo chamado bad144, existente
|
|
no FreeBSD, acaba substituindo esta funcionalidade. O
|
|
bad144 só trabalha com o drive wd (portanto,
|
|
não é suportado no FreeBSD 4.0), e
|
|
não pode ser usado com drive SCSI. O bad144
|
|
trabalha marcando e organizando setores ruins encontrados
|
|
no HD, em um arquivo especial no disco.</para>
|
|
|
|
<para>Uma característica do bad144 - o bloco
|
|
danificado é colocado em um arquivo especial
|
|
situado na última trilha do disco. Como este
|
|
arquivo contém uma lista de setores defeituosos que
|
|
pode incluir valores perto do início do disco, onde
|
|
o /kernel pode estar alocado, esse arquivo deverá
|
|
ser acessível ao bootstrap para que o programa -
|
|
por meio da BIOS - leia o
|
|
<foreignphrase>kernel</foreignphrase>; isso significa que
|
|
o disco usado com bad144 não deve exceder 1024
|
|
cilindros, 16 cabeças, e 63 setores, logo, temos um
|
|
limite efetivo de 500MB para discos mapeados com o
|
|
bad144..</para>
|
|
|
|
<para>Para ativar o uso do bad144, simplesmente defina a
|
|
opção de procurar por <quote>Bad
|
|
Block</quote> como ON na tela do fdisk do FreeBSD,
|
|
durante a instalação. Essas
|
|
instruções 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
|
|
operação durante pelo menos 4 horas antes de
|
|
executar o bad144, permitindo assim a expansão
|
|
térmica do HD.</para>
|
|
|
|
<para>Se o disco tem mais de 1024 cilindros (como um disco
|
|
ESDI grande) a controladora ESDI usa um tipo de
|
|
tradução especial em modo DOS. A device wd
|
|
também entende esses mesmos modos de
|
|
tradução e conversão, isso se o
|
|
<quote>tradutor</quote> de geometria for ativado como
|
|
<quote>geometria fixa</quote>, quando particionado pelo
|
|
fdisk. Você também não deve usar o
|
|
modo <quote>dangerously dedicated</quote> para criar
|
|
partições do FreeBSD, pois isso ignora o
|
|
tipo de geometria. Embora o fdisk use a geometria
|
|
definida pelo usuário, ele continua reconhecendo o
|
|
tamanho verdadeiro do disco, e tentará criar uma
|
|
partição maior para o FreeBSD. Se a
|
|
geometria de disco for alterada para geometria
|
|
traduzida(translated geometry), a partição
|
|
DEVE ser criada manualmente, informando os números
|
|
de blocos do HD.</para>
|
|
|
|
<para>Um truque rápido é usar um disco grande
|
|
ESDI com uma controladora ESDI, iniciar(booting) o sistema
|
|
com um disco DOS e formatar uma partição
|
|
DOS. Depois reiniciar o sistema com um disco de
|
|
instalação do FreeBSD, e anotar o
|
|
número e tamanho dos blocos que serão
|
|
apresentados na tela do fdisk para a
|
|
partição DOS. Redefina a geometria do disco
|
|
com os valores anotados, apague a partição
|
|
DOS e crie uma partição FreeBSD
|
|
<quote>cooperativa</quote>. Defina essa
|
|
partição como bootável e habilite o
|
|
reconhecimento de bad blocks. Na
|
|
instalação, o bad144 é carregado
|
|
antes que qualquer outro sistema de arquivos seja criado
|
|
(você pode ver isso com um
|
|
<keycombo action="simul"><keycap>Alt</keycap><keycap>F2</keycap></keycombo>).
|
|
Se houver problemas na criação do arquivo de
|
|
definições de setor danificado (o arquivo de
|
|
badsector) é porque a geometria definida é
|
|
maior do que o seu valor real - reinicie o sistema e
|
|
comece todos os procedimentos novamente, inclusive o
|
|
particionamento e formatação da
|
|
partição DOS.</para>
|
|
|
|
<para>Se o remapeamento já estiver habilitado e os
|
|
problemas com bad block continuarem, considere a
|
|
substituição imediata do disco, pois os
|
|
danos e os bad blocks aumentarão consideravelmente
|
|
com o passar do tempo.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="bustek742a-eisa-scsi">
|
|
<para>Por que o FreeBSD não reconhece a minha
|
|
controladora SCSI EISA Bustek 742a?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>As informações a seguir são para
|
|
o modelo 742a, mas provavelmente também servem para
|
|
as placas Buslogic. (Bustek = Buslogic).</para>
|
|
|
|
<para>Existem duas <quote>versões</quote>
|
|
tradicionais da placa 742a. São os equipamentos de
|
|
revisão A-G e de revisão H; as letras de
|
|
cada revisão são colocadas depois do
|
|
número de fabricação, ao lado das
|
|
placas. A placa 742a possui 2 chips ROM acoplados, o
|
|
primeiro é o chip da BIOS e o segundo é o do
|
|
Firmware. Para o FreeBSD a versão da BIOS é
|
|
irrelevante, mas a versão do Firmware é uma
|
|
informação fundamental. É
|
|
interessante dizer que, se você fizer uma chamada ao
|
|
departamento de suporte da Buslogic, eles irão te
|
|
enviar um upgrade desses ROMs, e é muito bom sempre
|
|
manter a versão mais recente do ROM do seu Firmware
|
|
para a versão de revisão do seu
|
|
equipamento.</para>
|
|
|
|
<para>As placas cuja letra de revisão é A-G
|
|
aceitam apenas atualizações da BIOS/Firmware
|
|
de versão 2.41/2.21 respectivamente. A
|
|
revisão H (REV H) aceita as versões mais
|
|
recentes da BIOS/Firmware até a versão
|
|
4.70/3.37. A principal diferença entre as
|
|
versões do Firmware é que a versão
|
|
3.37 tem suporte a<quote>round robin</quote>.</para>
|
|
|
|
<para>As placas Buslogic também tem um número
|
|
serial. Caso seu equipamento seja antigo, tente abrir uma
|
|
chamada no departamento de RMA da Buslogic e informe-os o
|
|
número de série da sua placa. Se ela
|
|
estiver entre os seriais de abrangência, a Buslogic
|
|
vai aceitar seu equipamento para revisão.</para>
|
|
|
|
<para>O FreeBSD 2.1 aceita apenas as revisões de
|
|
Firmware até o 2.21. Caso o seu Firmware seja mais
|
|
antigo do que o 2.21 sua placa não será
|
|
reconhecida como Buslogic. Contudo, é
|
|
possível que o equipamento seja reconhecido como
|
|
Adaptec 1540, já que os Firmware mais antigos da
|
|
Buslogic possuem um modo de
|
|
<quote>emulação</quote> da AHA1540, o que
|
|
não é uma boa coisa, para uma placa
|
|
EISA.</para>
|
|
|
|
<para>Caso seu Firmware seja antigo e você conseguiu
|
|
obter uma revisão para a versão 2.21,
|
|
não se esqueça que é
|
|
necessário alterar o jumper W1 da
|
|
posição A-B (padrão) para
|
|
posição B-C ao atualizar a placa.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="hpnetserver-scsi-failure">
|
|
<para>Por que o FreeBSD não detecta a controladora
|
|
SCSI do Netserver HP??</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Isso já é um problema conhecido. A
|
|
controladora SCSI on-board EISA dos servidores HP
|
|
Netserver estão no slot EISA número 11,
|
|
portanto todos os <quote>verdadeiros</quote> slots EISA
|
|
estão na sua frente. O endereço definido
|
|
para os slots EISA >= 10 ocupa um endereço
|
|
compartilhado com o barramento PCI, e portanto entra em
|
|
conflito com seus recursos. Essa é uma
|
|
situação onde a configuração
|
|
automática do FreeBSD não se comporta muito
|
|
bem.</para>
|
|
|
|
<para>Portanto o que você deve fazer, é fingir
|
|
que não existe limitação quanto ao
|
|
intervalo de endereços, definindo a
|
|
opção option <literal>EISA_SLOTS</literal>
|
|
do <foreignphrase>kernel</foreignphrase> para o valor 12.
|
|
Configure e compile um novo
|
|
<foreignphrase>kernel</foreignphrase>, conforme descrito
|
|
no <link xlink:href="../handbook/kernelconfig.html">capítulo de
|
|
configuração do
|
|
<foreignphrase>kernel</foreignphrase> no
|
|
&a.ptbr.p.handbook;</link>.</para>
|
|
|
|
<para>Obviamente esse problema é ainda maior quando
|
|
se trata de uma nova instalação. Para
|
|
corrigir esse problema é necessário uma
|
|
pequena alteração no modo
|
|
<emphasis>UserConfig</emphasis>. Não use a
|
|
interface de configuração
|
|
<quote>visual</quote> do
|
|
<foreignphrase>kernel</foreignphrase>, use a Interface de
|
|
Linha de Comando (CLI), simplesmente digitando:</para>
|
|
|
|
<programlisting>eisa 12
|
|
quit</programlisting>
|
|
|
|
<para>na tela do modo CLI, e continue a
|
|
instalação do FreeBSD como de costume. De
|
|
qualquer forma, é recomendável recompilar e
|
|
instalar um novo <foreignphrase>kernel</foreignphrase>
|
|
depois da instalação do sistema..</para>
|
|
|
|
<para>Futuras versões do FreeBSD terão esse
|
|
problema corrigido automaticamente.</para>
|
|
|
|
<note>
|
|
<para>Não use discos em modo <literal>dangerously
|
|
dedicated</literal> com um HP Netserver. Veja <link linkend="dedicate">essa nota</link> para maiores
|
|
informações.</para>
|
|
</note>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="cmd640-ide">
|
|
<para>O que está havendo com minha controladora IDE
|
|
CMD640?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Está com defeito! Não suporta mais
|
|
comandos nos dois canais de forma simultânea.</para>
|
|
|
|
<para>Existe uma correção disponível e
|
|
automaticamente habilitada, se você usa uma
|
|
controladora com esse chip. Para maiores detalhes,
|
|
refira-se a página de manual da controladora de
|
|
disco (&man.wd.4;).</para>
|
|
|
|
<para>Se o FreeBSD em questão é o FreeBSD
|
|
2.2.1 ou 2.2.2 com essa controladora em questão, e
|
|
você quer usar o segundo canal, compile um novo
|
|
<foreignphrase>kernel</foreignphrase> com a
|
|
opção <literal>options "CMD640"</literal>
|
|
habilitada. Essa configuração é
|
|
padrão para o FreeBSD 2.2.5 e posteriores.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ed1-timeout">
|
|
<para>Eu sempre vejo mensagens como <errorname>ed1:
|
|
timeout</errorname>. O que elas significam?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Normalmente esse problema é causado por um
|
|
conflito de interrupções (por exemplo, duas
|
|
placas usando a mesma IRQ). O FreeBSD até a
|
|
versão 2.0.5R costumava ser tolerante quanto a esse
|
|
problema e a placa de rede continuava funcionando mesmo
|
|
com IRQ conflitantes. Contudo desde a versão
|
|
2.0.5R os conflitos de interrupções
|
|
não são mais tolerados. Inicie o sistema
|
|
com a opção de boot -c e mude as device
|
|
ed0/de0/... para o valor correspondente ao da
|
|
placa.</para>
|
|
|
|
<para>Caso esteja usando um conector BNC na sua placa de
|
|
rede, é provável que existam device timeout
|
|
por causa de má terminação do
|
|
barramento. Pra tirar isso a limpo coloque um terminador
|
|
direto na placa (sem cabos) e veja se as mensagens de erro
|
|
param.</para>
|
|
|
|
<para>Algumas placas compatíveis NE2000
|
|
apresentarão esse problema caso a porta UTP
|
|
não receba sinal de link, ou se o cabo estiver
|
|
desconectado.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="bad-3c509">
|
|
<para>Por que minha placa 3COM 3C509 parou de funcionar sem
|
|
motivo aparente?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esse cartão tem um hábito
|
|
horrível de perder suas informações
|
|
de configuração. Redefina as
|
|
informações da placa usando o programa de
|
|
DOS chamado <command>3c5x9.exe</command>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="printer-slow">
|
|
<para>Minha impressora paralela está ridiculamente
|
|
lenta. O que devo fazer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se o único problema é a lerdeza
|
|
terrível da sua impressora, tente mudar seu <link xlink:href="../handbook/printing-intro-setup.html#PRINTING-PARALLEL-PORT-MODE">modo
|
|
da porta de impressão</link> conforme discutido
|
|
na seção de <link xlink:href="../handbook/printing-intro-setup.html">Configuração
|
|
de Impressoras</link> no &a.ptbr.p.handbook;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="signal11">
|
|
<para>Por que alguns programas ocasionalmente morrem com
|
|
erro de <errorname>Signal 11</errorname> ?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Erros de sinal 11 são fruto de tentativas de
|
|
acesso indevido a memória. Esse acesso normalmente
|
|
é controlado pelo sistema operacional, e quando o
|
|
sistema não permite acessar determinados
|
|
endereços, o processo é morto com signal 11.
|
|
Se isso estiver acontecendo em intervalos
|
|
aleatórios de tempo, é preciso investigar as
|
|
causas com cuidado.</para>
|
|
|
|
<para>Esse problema normalmente é atribuído
|
|
a:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Se o problema ocorre apenas em um programa
|
|
específico que você mesmo esta
|
|
desenvolvendo, se trata de um bug no código do
|
|
seu programa.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Se o problema é com algum programa que faz
|
|
parte da base do FreeBSD, é possível que
|
|
também seja um problema de bug no código
|
|
em questão. Contudo, esses problemas costumam
|
|
ser corrigidos antes que os usuários
|
|
tradicionais percebam sua existência - e
|
|
necessitem ler este <literal>FAQ</literal> - afinal,
|
|
é para isso que o -CURRENT existe.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
|
|
<para>Em especial, uma indicação que esse
|
|
problema <emphasis>não</emphasis> é um bug
|
|
do FreeBSD, é um erro repetitivo no mesmo instante
|
|
da compilação, mas o problema que o
|
|
compilador apresenta muda de linha a cada nova
|
|
compilação.</para>
|
|
|
|
<para>Por exemplo, suponha que você esteja executando
|
|
um <quote>make buildworld</quote>, e a
|
|
compilação falha na hora de compilar o
|
|
<filename>ls.c</filename> em <filename>ls.o</filename>. Se
|
|
você rodar o <quote>make buildworld</quote> de novo
|
|
e a compilação falha exatamente no mesmo
|
|
trecho do código, então o problema realmente
|
|
é com o fonte da aplicação, nesse
|
|
caso atualize os fontes do FreeBSD e tente novamente.
|
|
Agora se a compilação falhar em um trecho
|
|
diferente do código, é quase certo que o
|
|
problema seja físico, ou seja, com o seu
|
|
equipamento.</para>
|
|
|
|
<para>O que deve ser feito:</para>
|
|
|
|
<para>Em primeiro lugar, deve-se usar um debugador, como o
|
|
gdb, por exemplo, para encontrar o ponto exato do
|
|
código que está tentando acessar um
|
|
endereço problemático de memória, e
|
|
corrigi-lo.</para>
|
|
|
|
<para>Em segundo lugar, verifique se a culpa não
|
|
é do seu equipamento.</para>
|
|
|
|
<para>As causas mais comuns para o problema incluem::</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Os seus discos rígidos podem estar
|
|
superaquecidos: Verifique se o sistema de
|
|
ventilação do seu PC está
|
|
funcionando. Verifique coolers internos (da fonte) e
|
|
externos, e verifique se não existe
|
|
superaquecimento de outros componentes do
|
|
computador.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>O processador está superaquecido: Pode ser
|
|
porque foi feito um overclock no processador em
|
|
questão, ou no caso mais tradicional, pode ser
|
|
que o cooler tenha parado de funcionar ou que esteja
|
|
sujo e portanto funcionando em rotação
|
|
baixa. Em ambos os casos, o primeiro passo é
|
|
garantir que o processador esteja rodando sob as
|
|
mesmas condições que ele foi
|
|
construído para funcionar - por exemplo, com a
|
|
velocidade do clock original e com a
|
|
ventilação adequada.</para>
|
|
|
|
<para>Caso tenha sido feito overclock no processador,
|
|
lembre-se que é mais barato usar um computador
|
|
um pouco mais lento, do que trocar o processador da
|
|
máquina por causa de um chip fritado ;-)
|
|
Além do que a maioria das pessoas não
|
|
são simpatizantes de overclock, mesmo que
|
|
você considere a ação segura ou
|
|
não.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Caso tenha múltiplos pentes de
|
|
memória SIMM/DIMM, tente desligá-los e
|
|
experimente usar cada pente de uma vez,
|
|
indiviualmente. Com isso é possível
|
|
descobrir se o problema é com algum chip
|
|
DIMM/SIMM ou se o problema é a
|
|
combinação entre os pentes.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Configurações super otimistas na
|
|
BIOS da sua placa mãe são outra causa
|
|
provável. Algumas BIOS tem
|
|
opções que permitem alterar a velocidade
|
|
e frequência de vários recursos.
|
|
Normalmente os valores padrão na BIOS
|
|
são os mais conservadores, e portanto devem ser
|
|
o bastante para controlar corretamente o equipamento;
|
|
contudo algumas opções como por exemplo
|
|
<quote>RAM Speed: Turbo</quote> ou alguma
|
|
opção parecida coloca o estado de espera
|
|
para o acesso a memória em um valor muito
|
|
baixo, e as vezes, por mais otimista que você
|
|
seja, sua memória pode não ser
|
|
rápida o bastante. O ideal é definir os
|
|
valores padrão da sua BIOS, mas é
|
|
interessante anotar os valores atuais primeiro!</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Alimentação insuficiente de energia
|
|
na placa-mãe. Caso exista alguma placa que
|
|
não esteja sendo utilizada, algum disco
|
|
rígido ou CDROM, é interessante
|
|
desliga-los temporariamente do computador, ou
|
|
simplesmente remover o cabo de energia desses
|
|
equipamentos. Mesmo em sub utilização,
|
|
essas placas e discos estão sob constante
|
|
alimentação e talvez sua fonte consiga
|
|
suprir uma carga menor. Ou tente trocar a fonte do
|
|
seu PC, de preferência por uma com maior poder
|
|
de alimentação (por exemplo, se a sua
|
|
fonte é de 250 Watts troque por uma de 300
|
|
Watts).</para>
|
|
</listitem>
|
|
|
|
</orderedlist>
|
|
|
|
<para>Leia ainda o <literal>FAQ</literal> SIG11
|
|
(disponível a seguir) que tem outras boas
|
|
explicações sobre esses problemas. O
|
|
<literal>FAQ</literal> também discute como alguns
|
|
programas de teste de memória podem pensar que um
|
|
pente problemático está funcionando
|
|
corretamente.</para>
|
|
|
|
<para>Finalmente, se nenhum dos casos acima ajudou a
|
|
solucionar seu problema, pode ser que exista um bug no
|
|
FreeBSD. Você deve seguir as
|
|
intruçõoes para enviar um relatório
|
|
de problemas para o Projeto FreeBSD.</para>
|
|
|
|
<para>Existe um <literal>FAQ</literal> extenso que cobre
|
|
esse assunto, disponível <link xlink:href="http://www.bitwizard.nl/sig11/"> no
|
|
<literal>FAQ</literal> dos problemas com
|
|
SIG11.</link></para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="trap-12-panic">
|
|
<para>O meu sistema trava com o erro <errorname>Fatal trap
|
|
12: page fault in kernel mode</errorname>, ou
|
|
<errorname>panic:</errorname>, e sai mostrando uma
|
|
quantidade enorme de informações. O que eu
|
|
faço?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A equipe de desenvolvimento do FreeBSD tem muito
|
|
interesse nesse tipo de erro, mas é
|
|
necessário obter algumas informações
|
|
suplementares, do que apenas o erro que você
|
|
está tendo. Copie sua mensagem de erro inteira,
|
|
consulte o <literal>FAQ</literal> sobre <link linkend="kernel-panic-troubleshooting"><foreignphrase>kernel</foreignphrase>
|
|
panics</link>, compile um
|
|
<foreignphrase>kernel</foreignphrase> em modo de
|
|
debugação e tente analisar o problema.
|
|
Parece uma tarefa difícil, mas não é
|
|
necessário conhecimento de
|
|
programação; basta seguir as
|
|
instruções.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="screen-loses-sync">
|
|
<para>Por que a tela fica preta e perde sincronia quando eu
|
|
inicio o sistema?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esse é um problema conhecido da placa de
|
|
vídeo ATI Mach 64. O problema é que essa
|
|
placa usa o endereço <literal>2e8</literal>, o
|
|
mesmo utilizado pela quarta porta serial dos computadores
|
|
pessoais. Devido a um bug (ou uma vantagem?) da
|
|
&man.sio.4; ,essa porta será sempre reconhecida,
|
|
ainda que não exista a quarta porta serial no seu
|
|
computador, ou <emphasis>mesmo</emphasis> se o sio3 (a
|
|
quarta porta) estiver desabilitado.</para>
|
|
|
|
<para>Até que o bug seja corrigido, você pode
|
|
usar essa solução:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Entre no modo de configuração do
|
|
<foreignphrase>kernel</foreignphrase> com
|
|
opção <option>-c</option> na tela de
|
|
inicialização(boot). (Isto colocara o
|
|
<foreignphrase>kernel</foreignphrase> no modo de
|
|
configuração).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Desabilite a <filename>sio0</filename>,
|
|
<filename>sio1</filename>,
|
|
<filename>sio2</filename> e
|
|
<filename>sio3</filename> (todas elas). Dessa
|
|
forma será ativada, logo, você não
|
|
terá -> problemas.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Digite exit para continuar o boot.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
|
|
<para>Caso queira usar as portas seriais, será
|
|
necessário construir um
|
|
<foreignphrase>kernel</foreignphrase> customizado, com as
|
|
seguintes alterações: no fonte
|
|
<filename>/usr/src/sys/i386/isa/sio.c</filename> encontre
|
|
a ocorrência da expressão
|
|
<literal>0x2e8</literal> e apague essa expressão e
|
|
a vírgula que a antecede (mantenha a outra).
|
|
Depois compile o novo
|
|
<foreignphrase>kernel</foreignphrase> normalmente.</para>
|
|
|
|
<para>Mesmo depois dessa correção, é
|
|
provável que o X Windows ainda não funcione
|
|
como esperado. Se for o caso, garanta que a versão
|
|
do Xfree86 em questão seja ao menos o XFree86 3.3.3
|
|
ou uma versão superior. Esse XFree86 e os
|
|
posteriores tem suporte nativo às placas de
|
|
vídeo Mach64, e tem inclusive um X Server dedicado
|
|
para tal equipamento.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="reallybigram">
|
|
<para>Por que o FreeBSD só detecta 64MB de
|
|
memória RAM se eu tenho 128MB instalados?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Devido à maneira que o FreeBSD obtém as
|
|
informações quanto ao tamanho da
|
|
memória disponível por intermédio da
|
|
BIOS, pode acontecer de apenas 16 bits válidos
|
|
serem detectados (65535 Kbytes = 64MB) ou até
|
|
menos, dependendo da BIOS (em alguns casos, apenas 16MB).
|
|
Mesmo nessa situação o FreeBSD tenta
|
|
detectar mais que 64MB de memória, mas esse
|
|
reconhecimento pode falhar.</para>
|
|
|
|
<para>Pra corrigir esse problema pode ser usada a
|
|
opção do
|
|
<foreignphrase>kernel</foreignphrase> descrita a seguir.
|
|
Existe uma forma de obter informações
|
|
completas quanto ao tamanho da memória, a partir da
|
|
BIOS, mas devido a algumas limitações isso
|
|
nem sempre é possível hoje em dia.
|
|
Futuramente será. De qualquer forma, temos ainda a
|
|
opção do
|
|
<foreignphrase>kernel</foreignphrase> para
|
|
situações onde toda a memória
|
|
não puder ser reconhecida.</para>
|
|
|
|
<para><literal>options
|
|
"MAXMEM=n"</literal></para>
|
|
|
|
<para>Onde <replaceable>n</replaceable> equivale à
|
|
memória (em Kilobytes) disponível no
|
|
sistema. Para 128 MB de memória, use o valor
|
|
<literal>131072</literal>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="panic-kmemmap-too-small">
|
|
<para>Por que o FreeBSD 2.0 entre em pânico com a
|
|
mensagem <errorname>kmem_map too
|
|
small!</errorname>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<note>
|
|
<para>A mensagem em questão também pode ser
|
|
<literal>mb_map too small!</literal></para>
|
|
</note>
|
|
|
|
<para>Essa mensagem de pânico indica que o sistema
|
|
ficou sem memória suficiente pros buffers de rede
|
|
(especificamente, os mbuf clusters). A quantidade de
|
|
memória virtual disponível para os clusters
|
|
mbuf pode ser elevada com a opção::</para>
|
|
|
|
<para><literal>options
|
|
"NMBCLUSTERS=n"</literal></para>
|
|
|
|
<para>no arquivo de configuração do seu
|
|
<foreignphrase>kernel</foreignphrase>, onde
|
|
<replaceable>n</replaceable> equivale ao valor entre
|
|
512-4096, dependendo do número de conexões
|
|
TCP simultâneas que você espera poder
|
|
suportar. O valor 2048 é recomendável, e
|
|
provavelmente será o bastante para sanar o problema
|
|
que causa o pânico em questão O número
|
|
de clusters mbuf em uso pode ser monitorado com o comando
|
|
<command>netstat -m</command> (veja &man.netstat.1;). O
|
|
valor padrão para a variável NMBCLUSTERS no
|
|
<foreignphrase>kernel</foreignphrase> do FreeBSD é
|
|
<literal>512 + MAXUSERS * 16</literal>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="proc-table-full">
|
|
<para>Por que o erro <errorname>/kernel: proc: table is
|
|
full</errorname>ocorre?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O <foreignphrase>kernel</foreignphrase> do FreeBSD
|
|
limita o número máximo de processos
|
|
simultâneos existentes no sistema. O número
|
|
em questão é baseado na opção
|
|
<literal>MAXUSERS</literal>. do sistema. A
|
|
opção <literal>MAXUSERS</literal> afeta
|
|
ainda inúmeros outros limites do
|
|
<foreignphrase>kernel</foreignphrase> do FreeBSD, como por
|
|
exemplo os buffers disponíveis para o stack de rede
|
|
do sistema (veja <link linkend="panic-kmemmap-too-small">esta</link> resposta
|
|
anterior). Se o computador estiver sob grande carga,
|
|
provavelmente será necessário aumentar o
|
|
<literal>MAXUSERS</literal>. Essa alteração
|
|
aumentará os limites do sistema em
|
|
adição ao número de processos
|
|
permitido.</para>
|
|
|
|
<para>Desde a versão 4.4 do FreeBSD, o valor para
|
|
<literal>MAXUSERS</literal> se tornou configurável,
|
|
não sendo mais necessário recompilar o
|
|
<foreignphrase>kernel</foreignphrase> para
|
|
alterá-lo, bastando definir a variável
|
|
<varname>kern.maxusers</varname> no arquivo
|
|
<filename>/boot/loader.conf</filename>. Em
|
|
versõoes mais recentes do FreeBSD, deve-se ajustar
|
|
o <literal>MAXUSERS</literal> em sua
|
|
configuração do
|
|
<foreignphrase>kernel</foreignphrase>.</para>
|
|
|
|
<para>Caso seu sistema não esteja muito carregado,
|
|
mas o número de processos simultâneos ainda
|
|
assim é alto basta definir a variável
|
|
<varname>kern.maxproc</varname> com o sysctl. Em casos
|
|
especiais, onde esses inúmeros processos
|
|
estão sendo executados por um único
|
|
usuário, será preciso alterar ainda alterar
|
|
o valor da variável
|
|
<varname>kern.maxprocperuid</varname> para um a menos do
|
|
que o valor de <varname>kern.maxproc</varname>. (deve ser
|
|
ao menos 1 processo a menos, visto que ao menos o
|
|
&man.init.8; do sistema vai estar sempre em
|
|
execução.)</para>
|
|
|
|
<para>Para tornar uma alteração de
|
|
variável do sysctl permanente, defina-a no arquivo
|
|
<filename>/etc/sysctl.conf</filename> nas versões
|
|
mais recentes do FreeBSD, ou então no arquivo
|
|
<filename>/etc/rc.local</filename> em versões mais
|
|
antigas do sistema.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="cmap-busy-panic">
|
|
<para>Por que acontece o erro <errorname>CMAP
|
|
busy</errorname> quando eu reinicio com um novo
|
|
<foreignphrase>kernel</foreignphrase>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A lógica que tenta detectar uma data errada nos
|
|
arquivos <filename>/var/db/kvm_*.db</filename> as vezes
|
|
é falha, o que leva o sistema a entrar em
|
|
pânico.</para>
|
|
|
|
<para>Se for o caso, reinicie seu sistema em modo
|
|
monousuário e faça:</para>
|
|
|
|
<screen>&prompt.root; <userinput>rm /var/db/kvm_*.db</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="brkadrint-illegal-host-access">
|
|
<para>O que a mensagem <errorname>ahc0: brkadrint, Illegal
|
|
Host Access at seqaddr 0x0</errorname>
|
|
significa??</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Trata-se de um conflito com o Ultrastor SCSI Host
|
|
Adapter.</para>
|
|
|
|
<para>Durante o processo de
|
|
inicialização(boot), entre no menu de
|
|
configuração do
|
|
<foreignphrase>kernel</foreignphrase> e desabilite a
|
|
<filename>uha0</filename>, que esta causando o
|
|
problema.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="aci0-illegal-cable">
|
|
<para>Quando eu inicio o sistema, encontro o erro
|
|
<errorname>ahc0: illegal cable configuration</errorname>,
|
|
mas o meu cabo está certo. O que está
|
|
havendo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A placa-mãe em questão não
|
|
consegue se dar bem com o suporte a
|
|
terminação automática do barramento.
|
|
Altere sua BIOS SCSI para a terminação
|
|
correta, de acordo com a configuração do
|
|
equipamento, ao invés de usar
|
|
terminação automática. O driver
|
|
AIC7XXX não consegue descobrir se o reconhecimento
|
|
externo dos cabos (e conseqüente
|
|
auto-terminação) está
|
|
disponível, e portanto ele simplesmente assume que
|
|
o suporte existe, caso a configuração da
|
|
EEPROM serial esteja definida como automatic termination.
|
|
Sem o reconhecimento de cabo externo o driver irá
|
|
sempre configurar a terminação de forma
|
|
incorreta, o que compromete a confiabilidade do barramento
|
|
SCSI.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="mail-loopback">
|
|
<para>Por que o Sendmail retorna um erro que diz
|
|
<quote><errorname>mail loops back to
|
|
myself</errorname></quote>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Essa pergunta é respondida no
|
|
<literal>FAQ</literal> do próprio Sendmail, e
|
|
diz:-</para>
|
|
|
|
<literallayout> * Eu estou tendo problemas de configurações 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?
|
|
|
|
Você definiu que as mensagens enviadas para o domínio
|
|
em questão (domain.net) devem ser repassadas para uma outra
|
|
estação específica (nesse caso para
|
|
relay.domain.net) usando um registro MX, mas essa máquina de
|
|
relay não se reconhece como a estação
|
|
responsável pelas mensagens do domínio domain.net.
|
|
Adicione domain.net no arquivo /etc/mail/local-host-names
|
|
(caso você esteja usando FEATURE(use_cw_file)) ou então
|
|
adicione a linha "Cw domain.net" em /etc/mail/sendmail.cf.
|
|
</literallayout>
|
|
|
|
<para>Atualmente a versão mais recente do <link xlink:href="ftp://rtfm.mit.edu/pub/usenet/news.answers/mail/sendmail-faq"><literal>FAQ</literal>
|
|
do sendmail</link> é mantida em sincronia com as
|
|
versões mais atuais do MTA, mas ela ainda é
|
|
enviada regularmente para os grupos de notícias
|
|
<link xlink:href="news:comp.mail.sendmail">comp.mail.sendmail</link>,
|
|
<link xlink:href="news:comp.mail.misc">comp.mail.misc</link>,
|
|
<link xlink:href="news:comp.mail.smail">comp.mail.smail</link>,
|
|
<link xlink:href="news:comp.answers">comp.answers</link>, e
|
|
<link xlink:href="news:news.answers">news.answers</link>.
|
|
Ainda é possível receber um cópia por
|
|
e-mail do <literal>FAQ</literal>, enviando uma mensagem
|
|
para <email>mail-server@rtfm.mit.edu</email> com o comando
|
|
<literal>send
|
|
usenet/news.answers/mail/sendmail-faq</literal> no corpo
|
|
da mensagem.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="remote-fullscreen">
|
|
<para>Porque algumas aplicações que usam tela
|
|
inteira não se comportam muito bem em
|
|
estações remotas?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A estação remota deve estar definindo o
|
|
terminal como algum tipo diferente do
|
|
<literal>cons25</literal> que é o tipo de terminal
|
|
usado pelo console do FreeBSD.</para>
|
|
|
|
<para>Existem inúmeras correções para
|
|
esse problema:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Depois de logar-se na estação
|
|
remota, defina a variável de ambiente TERM como
|
|
<literal>ansi</literal> ou <literal>sco</literal> caso
|
|
a máquina em questão tenha
|
|
informações quanto a esse tipo de
|
|
terminal.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Use um emulador VT100 como o
|
|
<application>screen</application> no console do
|
|
FreeBSD. O <application>screen</application> oferece
|
|
a possibilidade de usar múltiplas
|
|
sessões concorrentes em um mesmo terminal, e
|
|
é um grande programa. Cada janela do
|
|
<application>screen</application> se comporta como um
|
|
terminal VT100, portanto a variável TERM deve
|
|
ser definida como <literal>vt100</literal>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Instale a base do <literal>cons25</literal> na
|
|
estação remota. A maneira correta de
|
|
faze-lo depende do sistema operacional em
|
|
questão na estação remota.
|
|
Consulte os manuais de administração do
|
|
sistema remoto em questão para descobrir como
|
|
faze-lo.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Levante um X server do lado FreeBSD da coisa e
|
|
acesse a estação remota usando um
|
|
terminal baseado no ambiente X, como o
|
|
<command>xterm</command> ou o <command>rxvt</command>.
|
|
A variável TERM deve ser definida
|
|
como<literal>xterm</literal> ou
|
|
<literal>vt100</literal> no lado remoto.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="calcru-negative">
|
|
<para>Por que meu computador apresenta a mensagem
|
|
<errorname>calcru: negative time...</errorname>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esse comportamento pode ser causado por diversos
|
|
motivos relacionados a interrupções de
|
|
<foreignphrase>hardware</foreignphrase> e/ou software.
|
|
Pode ser devido a algum bug, mas também pode
|
|
acontecer por causa da natureza de alguns devices. Por
|
|
exemplo, usar TCP/IP via porta paralela com uma MTU muito
|
|
grande é uma boa forma de provocar esse
|
|
comportamento. Aceleradores gráficos também
|
|
são eficientes para criar esse tipo de problema,
|
|
nesse caso, sendo necessário analisar as
|
|
configurações de interrupções
|
|
do software.</para>
|
|
|
|
<para>Um efeito colateral desse problema são
|
|
processos que morrem<quote>SIGXCPU exceeded cpu time
|
|
limit</quote>.</para>
|
|
|
|
<para>No FreeBSD 3.0 e sistemas posteriores a 29 de Novembro
|
|
de 1998, caso o problema não possa ser solucionado
|
|
de outra forma, uma correção pode ser
|
|
definir a seguinte variável do sysctl:</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysctl -w kern.timecounter.method=1</userinput></screen>
|
|
|
|
<para>Isso causa um impacto de performance, mas dependendo
|
|
do problema que causava esse comportamento, é
|
|
provável que nem consiga-se notar a mudança
|
|
nessa performance. Se o problema continuar, mantenha a
|
|
variável do sysctl habilitada e defina a
|
|
opção <literal>NTIMECOUNTER</literal> no
|
|
<foreignphrase>kernel</foreignphrase> para valores
|
|
crescentes. Se chegar a um ponto em que foi
|
|
necessário definir
|
|
<literal>NTIMECOUNTER=20</literal> e o problema ainda
|
|
não tiver sido resolvido, as
|
|
interrupções são serias demais e seu
|
|
comportamento não é confiável.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="pcm0-not-found">
|
|
<para>Acontece da pcm não ser encontrada, com a
|
|
mensagem <errorname>pcm0 not found</errorname> ou
|
|
então minha placa de som é encontrada na
|
|
<filename>pcm1</filename> mas no meu
|
|
<foreignphrase>kernel</foreignphrase> a entrada se refere
|
|
a <literal>device pcm0</literal>. O que está
|
|
havendo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Isso acontece no FreeBSD 3.X com placas de som PCI. A
|
|
<filename>pcm0</filename> é reservada
|
|
exclusivamente para placas de som ISA e por isso se a
|
|
placa em questão é PCI, ela será
|
|
reconhecida como <filename>pcm1</filename> e a
|
|
mensagem em questão pode acontecer.
|
|
</para>
|
|
|
|
<note>
|
|
<para>Não é possível evitar a
|
|
mensagem de advertência simplesmente alterando o
|
|
seu <foreignphrase>kernel</foreignphrase> e definindo
|
|
<literal>device pcm1</literal> pois isso
|
|
resultará na <filename>pcm1</filename> sendo
|
|
reservada para placas ISA, e o seu equipamento PCI
|
|
será reconhecido na <filename>pcm2</filename>
|
|
(e a mensagem de advertência <errorname>pcm1 not
|
|
found</errorname> continuará).</para>
|
|
</note>
|
|
|
|
<para>
|
|
Caso sua placa de som seja PCI ainda será preciso
|
|
criar a device <filename>snd1</filename> ao
|
|
invés da <filename>snd0</filename>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
|
&prompt.root; <userinput>./MAKEDEV snd1</userinput></screen>
|
|
|
|
<para>Esse comportamento não ocorre na série
|
|
4.X do FreeBSD, muito trabalho foi feito para tornar o
|
|
sistema mais <emphasis>PnP-centric</emphasis> e a device
|
|
<filename>pcm0</filename> não é mais
|
|
reservada exclusivamente para placas ISA.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="pnp-not-found">
|
|
<para>Porque a minha placa PnP não é mais
|
|
encontrada (ou é encontrada como
|
|
<literal>unknown</literal>) desde a
|
|
atualização para o FreeBSD 4.X?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD 4.X é muito mais
|
|
<emphasis>PnP-centric</emphasis> do que as versões
|
|
anteriores, e isso causou alguns efeitos distintos em
|
|
algumas placas PnP (como algumas placas de som e alguns
|
|
modems interno por exemplo) que não funcionam mais
|
|
da forma como funcionavam no FreeBSD 3.X.</para>
|
|
|
|
<para>O motivo para esse comportamento é explicado no
|
|
seguinte e-mail, que foi enviada na lista
|
|
freebsd-questions pelo Reter Wemm, respondendo uma
|
|
pergunta sobre um modem interno que não era mais
|
|
reconhecido no FreeBSD depois de atualizar o sistema para
|
|
versão 4.X (os comentários entre
|
|
<literal>[]</literal>foram adicionados com a
|
|
intenção de explicar melhor o contexto da
|
|
mensagem).</para>
|
|
|
|
<note>
|
|
<para>Os índices dessa citação foram
|
|
atualizados de seu texto original</para>
|
|
</note>
|
|
|
|
<blockquote>
|
|
<para>A bios PNP configurou ele [o modem] e o deixou
|
|
conectado na porta em questão, por isso o estilo
|
|
antigo [no 3.X] <quote>reconhece</quote> o equipamento
|
|
ISA.</para>
|
|
|
|
<para>No FreeBSD 4 o código ISA é bem mais
|
|
PnP-centric. Era possível [no 3.X] encontrar uma
|
|
placa ISA que funcionava com <quote>determinada</quote>
|
|
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 às placas
|
|
programáveis de forma que essa confusão e
|
|
dupla detecção de
|
|
<foreignphrase>hardware</foreignphrase> não
|
|
ocorra. Essa mudança implica também 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>
|
|
</blockquote>
|
|
|
|
<para>Para fazer o equipamento voltar a funcionar, é
|
|
necessário encontrar seu PnP id e
|
|
adicioná-lo a lista de devices ISA reconhecidas
|
|
como PnP. Essa informação pode ser obtida
|
|
usando &man.pnpinfo.8; que detecta a
|
|
configuração dos equipamentos. Por exemplo,
|
|
veja a saída do &man.pnpinfo.8; de um modem
|
|
interno:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pnpinfo</userinput>
|
|
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)</screen>
|
|
|
|
<para>[algumas linhas com TAG foram eliminadas]</para>
|
|
|
|
<screen>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</screen>
|
|
|
|
<para>A informação que você quer
|
|
é a linha <quote>Vendor ID</quote> no começo
|
|
da saída do comando. O valor hexadecimal entre
|
|
parênteses (0x3024a341 esse caso) é PnP id e
|
|
o conjunto de caracteres que o antecede (PMC2430) é
|
|
a identificação ASCII única.</para>
|
|
|
|
<para>Alternativamente, se o &man.pnpinfo.8; não
|
|
listou sua placa em questão, o &man.pciconf.8; pode
|
|
ser usado preferivelmente. Esta é a saída
|
|
do comando <command>pciconf -vl</command> de uma placa de
|
|
som onboard:</para>
|
|
|
|
<screen>&prompt.root; <userinput>pciconf -vl</userinput>
|
|
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</screen>
|
|
|
|
<para>Aqui deve-se usar o valor do <varname>chip</varname>,
|
|
<quote>0x24158086</quote>.</para>
|
|
|
|
<para>Tais informações (Vendor ID ou valor do
|
|
chip) precisam ser adicionadas ao arquivo
|
|
<filename>/usr/src/sys/isa/sio.c</filename>.</para>
|
|
|
|
<para>Primeiro faça uma cópia de
|
|
segurança do <filename>sio.c</filename> no caso de
|
|
algo dar errado e também para que você possa
|
|
fazer um patch para enviar junto com o seu
|
|
Relatório de Problemas (você vai enviar um
|
|
PR, não vai?) e depois edite o
|
|
<filename>sio.c</filename> e procure a linha</para>
|
|
|
|
<programlisting>static struct isa_pnp_id sio_ids[] = {</programlisting>
|
|
|
|
<para>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 são
|
|
ordenadas de acordo com a identificação
|
|
ASCII do fabricante do produto a qual deve ser
|
|
incluída como comentário na coluna do lado
|
|
do código em questão, e junto com a
|
|
<emphasis>descrição da placa</emphasis> ou
|
|
parte dela, conforme identificada na saída do
|
|
&man.pnpinfo.8;:</para>
|
|
|
|
<programlisting>{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 */</programlisting>
|
|
|
|
<para>Adicione o ID hexadecimal do fabricante da placa no
|
|
local apropriado, salve o arquivo e recompile o
|
|
<foreignphrase>kernel</foreignphrase>, depois reinicie o
|
|
sistema. Agora a sua placa deve ter sido encontrada como
|
|
uma device <literal>sio</literal> exatamente como era
|
|
encontrada no FreeBSD 3.X</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="nlist-failed">
|
|
<para>Qual a causa do erro <errorname>nlist
|
|
failed</errorname> quando eu executo, por exemplo, o
|
|
<command>top</command> ou o
|
|
<command>systat</command>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O problema é que o programa que você
|
|
está tentando executar tenta ler alguma
|
|
informação específica do
|
|
<foreignphrase>kernel</foreignphrase>, baseando-se no
|
|
<foreignphrase>kernel</foreignphrase> symbol em
|
|
questão, mas por algum motivo, essa
|
|
informação não pode ser encontrada;
|
|
esse erro é causado por um dos seguintes
|
|
problemas:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>O <foreignphrase>kernel</foreignphrase> e o
|
|
userland do sistema não estão em
|
|
sincronia (por exemplo, você compilou um
|
|
<foreignphrase>kernel</foreignphrase> novo e o
|
|
instalou sem de dar um
|
|
<buildtarget>installworld</buildtarget>, ou vice-versa),
|
|
e por isso a tabela de informações dos
|
|
<foreignphrase>kernel</foreignphrase> symbols é
|
|
diferente do que o programa pensa que é. Se
|
|
esse for o caso basta completar os procedimentos de
|
|
atualização do sistema (veja o arquivo
|
|
<filename>/usr/src/UPDATING</filename> para a correta
|
|
seqüência de ações).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>O <command>/boot/loader</command> não
|
|
está sendo usado para carregar o
|
|
<foreignphrase>kernel</foreignphrase> dessa
|
|
estação, ao invés dele, o boot2
|
|
(veja &man.boot.8;) está sendo usado
|
|
diretamente. Apesar de não ter problema algum
|
|
deixar de usar o <command>/boot/loader</command>, ele
|
|
costuma se comportar melhor na hora de tornar os
|
|
<foreignphrase>kernel</foreignphrase> symbols
|
|
disponíveis para aplicações em
|
|
nível de usuário.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="connection-delay">
|
|
<para>Porque demora tanto para a conexão se
|
|
estabelecer via <command>ssh</command> ou
|
|
<command>telnet</command>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O sintoma: existe um atraso muito grande entre o
|
|
estabelecimento da conexão TCP e o momento que o
|
|
programa cliente pede a senha (ou no caso do
|
|
&man.telnet.1;, quando a tela de login aparece).</para>
|
|
|
|
<para>O problema: o programa servidor dessa
|
|
transação leva muito tempo tentando resolver
|
|
o nome da estação cliente que está se
|
|
conectando. A maioria dos servidores, incluindo os
|
|
servidores Telnet e SSH que vem junto com o FreeBSD tentam
|
|
resolver o número IP do cliente no nome da
|
|
estação, para, entre outras coisas, gravar
|
|
essa informação em um arquivo de log para
|
|
referências futuras por parte do
|
|
administrador.</para>
|
|
|
|
<para>A solução: Se o problema acontece apenas
|
|
quando você (o cliente) tenta se conectar no
|
|
servidor, o problema é com o lado cliente da
|
|
transação; se o problema acontece com
|
|
qualquer estação que tente se conectar ao
|
|
computador (servidor) então o problema é do
|
|
lado servidor.</para>
|
|
|
|
<para>Se o problema é com o cliente, a única
|
|
maneira de corrigir o problema é configurar
|
|
corretamente o servidor DNS que responde autoritativamente
|
|
pelo endereço da estação. Se for uma
|
|
rede local considere esse comportamento um problema do
|
|
servidor, e continue lendo; se a conexão deve ser
|
|
estabelecida na rede global (internet) , então
|
|
entre em contato com o seu Provedor de Serviços
|
|
Internet e solicite que eles corrijam o problema.</para>
|
|
|
|
<para>Se o problema é do lado servidor, e a rede em
|
|
questão, se trata de uma rede local, será
|
|
necessário configurar o servidor de forma que ele
|
|
consiga resolver os endereços dos clientes em
|
|
nomes. Veja as páginas de manual do &man.hosts.5;
|
|
e &man.named.8; para obter mais informações.
|
|
Se a conexão é na Internet, provavelmente o
|
|
resolvedor (lado cliente do serviço de nomes) do
|
|
seu servidor não está funcionando
|
|
corretamente. Pra fazer o teste, tente descobrir o
|
|
endereço IP do site <systemitem>www.yahoo.com</systemitem>
|
|
por exemplo. Se não funcionar, esta ai o
|
|
problema.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="stray-irq">
|
|
<para>O que a mensagem <errorname>stray IRQ</errorname> quer
|
|
dizer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Stray IRQs são sintomas de
|
|
<foreignphrase>hardware</foreignphrase> que interrompe o
|
|
pedido de interrupção no meio de um ciclo de
|
|
autorização de
|
|
interrupção.</para>
|
|
|
|
<para>Existem três formas de tratar o problema:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Aprenda a conviver com as mensagens de
|
|
advertência. De qualquer forma, todas as
|
|
mensagens exceto as 5 primeiras para cada IRQ
|
|
são suprimidas pelo sistema mesmo.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Evite o inconveniente alterando de 5 para 0 na
|
|
função
|
|
<function>isa_strayintr()</function> o número
|
|
de mensagens antes de suprimir as
|
|
advertências.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Evite as advertências instalando algum
|
|
equipamento de porta paralela que use a IRQ 7 e o
|
|
driver PPP (é o usual, na maioria dos sistemas)
|
|
e instale algum driver IDE ou qualquer outro
|
|
dispositivo que use a IRQ 15 e seu respectivo
|
|
suporte.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="file-table-full">
|
|
<para>Por que a mensagem <errorname>file: table is
|
|
full</errorname> aparece repetidas vezes no
|
|
dmesg?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>
|
|
Esse erro indica que você excedeu o número
|
|
máximo de descrevedores (descriptors) de arquivos
|
|
no sistema. Leia a seção <link xlink:href="../handbook/configtuning-kernel-limits.html#KERN-MAXFILES">
|
|
kern.maxfiles </link>da<link xlink:href="../handbook/configtuning-kernel-limits.html">
|
|
capítulo de Ajuste de Limites do
|
|
<foreignphrase>Kernel</foreignphrase></link> no
|
|
&a.ptbr.p.handbook; do FreeBSD para obter mais
|
|
informações sobre o problema.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="laptop-clock-skew">
|
|
<para>Por que o relógio do meu laptop mantem a hora
|
|
incorreta?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Rode o comando &man.dmesg.8;, e procure algumas linhas
|
|
com a expressão <literal>Timecounter</literal>. A
|
|
última linha encontrada será o
|
|
relógio que o FreeBSD escolheu, e com certeza ele
|
|
será <literal>TSC</literal>.</para>
|
|
|
|
<screen>&prompt.root; <userinput>dmesg | grep Timecounter</userinput>
|
|
Timecounter "i8254" frequency 1193182 Hz
|
|
Timecounter "TSC" frequency 595573479 Hz</screen>
|
|
|
|
<para>Essa informação pode ser confirmada ao
|
|
verificar a variável
|
|
<varname>kern.timecounter.hardware</varname> do
|
|
&man.sysctl.3;.</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysctl kern.timecounter.hardware</userinput>
|
|
kern.timecounter.hardware: TSC</screen>
|
|
|
|
<para>A BIOS do laptop altera a frequência do
|
|
relógio 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 não faz distinção
|
|
entre frequência do clock e modos especiais de
|
|
trabalho, e por isso pode atrasar ou adiantar a hora do
|
|
sistema.</para>
|
|
|
|
<para>Esse exemplo, o laptop em questão tem dois
|
|
relógios; portanto o <literal>i8254</literal> pode
|
|
ser definido como padrão na variável
|
|
<varname>kern.timecounter.hardware</varname> do
|
|
&man.sysctl.3;.</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysctl -w kern.timecounter.hardware=i8254</userinput>
|
|
kern.timecounter.hardware: TSC -> i8254</screen>
|
|
|
|
<para>Agora o seu laptop deve conseguir manter a data e hora
|
|
de forma mais precisa.</para>
|
|
|
|
<para>Pra tornar essa alteração
|
|
automática, adicione a seguinte linha no arquivo
|
|
<filename>/etc/sysctl.conf</filename>.</para>
|
|
|
|
<programlisting>kern.timecounter.hardware=i8254</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="null-null">
|
|
<para>Por que o meu laptop não funciona muito bem na
|
|
hora de identificar cartões PCMCIA?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esse problema é comum em laptops que tem mais
|
|
de um sistema operacional instalado. Alguns sistemas
|
|
não-BSD fazem os cartões PCMCIA ficarem em
|
|
um estado inconsistente, causando um reconhecimento
|
|
problemático dos dispositivos por parte do
|
|
<command>pccardd</command>, como por exemplo, detectando
|
|
os cartões como
|
|
<errorname>"(null)""(null)"</errorname> ao invés da
|
|
sua marca e modelo verdadeiros.</para>
|
|
|
|
<para>É necessário desligar completamente a
|
|
alimentação de energia do equipamento para
|
|
garantir que o mesmo seja completamente resetado.
|
|
Desligue completamente o laptop (não suspenda seu
|
|
funcionamento, não o deixe entrar em modo de
|
|
espera, conhecido como standby, a
|
|
alimentação deve ser completamente
|
|
interrompida), espere alguns - poucos - minutos e reinicie
|
|
o laptop. Tudo deve correr bem.</para>
|
|
|
|
<para>Alguns laptops são grandes mentirosos quando
|
|
afirmam estar desligados. Se o procedimento acima
|
|
não funcionar, tire a bateria do laptop, espere
|
|
alguns minutos e ligue o sistema novamente.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="boot-read-error">
|
|
<para>Por que o bootloader do FreeBSD mostra a mensagem
|
|
<errorname>Read error</errorname> e pára
|
|
completamente logo após a tela da BIOS?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>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 partição FreeBSD.</para>
|
|
|
|
<para>A geometria correta do disco pode ser verificada na
|
|
BIOS do computador. Procure pelo número de
|
|
cilindros, cabeças e de setores do disco em
|
|
questão.
|
|
</para>
|
|
|
|
<para>No fdisk do &man.sysinstall.8;, aperte a tecla
|
|
<keycap>G</keycap> para definir a geometria do disco
|
|
manualmente.
|
|
</para>
|
|
|
|
<para>Irá aparecer uma janela de diálogo
|
|
perguntando o número de cilindros, cabeças e
|
|
setores do disco. Defina esses valores, conforme anotados
|
|
da BIOS do sistema e separados por barras.</para>
|
|
|
|
<para>5000 cilindros, 250 cabeças e 60 setores, por
|
|
exemplo, seria definido como
|
|
<userinput>5000/250/60.</userinput>
|
|
</para>
|
|
|
|
<para>Aperte ENTER para confirmar os valores e depois aperte
|
|
a tecla <keycap>W</keycap> para escrever as novas
|
|
informações na tabela de
|
|
partições do disco.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="bootmanager-restore">
|
|
<para>Outro sistema operacional destruiu o meu gerenciador
|
|
de inicialização(Boot Manager). Como eu o
|
|
recupero?
|
|
</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Entre no &man.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
|
|
<keycap>espaços(space)</keycap>. Depois aperte a
|
|
tecla <keycap>W</keycap> para escrever as novas
|
|
informações no disco. Vai aparecer uma
|
|
tela, perguntando o que deve ser instalado na MBR do
|
|
disco. Escolha o Gerenciador de
|
|
inicialização(Boot Manager), e ele
|
|
será reinstalado.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="indefinite-wait-buffer">
|
|
<para>O que o erro <errorname>swap_pager: indefinite wait
|
|
buffer:</errorname> quer dizer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Quer dizer que existe um processo tentando paginar uma
|
|
área da memória para o disco, e que esse
|
|
processo demorou mais de 20 segundos; portanto falhou.
|
|
É provável que a causa desse erro sejam
|
|
blocos defeituosos no disco, falha nos cabos, ou
|
|
até mesmo algum outro erro de I/O relacionado ao
|
|
<foreignphrase>hardware</foreignphrase>. Se o disco
|
|
estiver danificado, serão apresentadas mensagens de
|
|
erro referentes ao mesmo em
|
|
<filename>/var/log/messages</filename> e também na
|
|
saída do <command>dmesg</command>. Do
|
|
contrário, verifique seus cabos e
|
|
conectores.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="commercial">
|
|
<title>Aplicações Comerciais</title>
|
|
|
|
<note>
|
|
<para>Esta seção se encontra ainda muito
|
|
escassa, embora esperamos, naturalmente, que as empresas
|
|
façam adições a ela! :) Os
|
|
desenvolvedores do FreeBSD não tem interesses
|
|
financeiros em nenhuma das empresas listadas aqui, mas apenas
|
|
as listam como um serviço público (e sente que o
|
|
interesse comercial no FreeBSD pode ter muitos efeitos
|
|
positivos na viabilidade do uso do sistema a longo prazo).
|
|
Nós encorajamos que os vendedores de softwares
|
|
comerciais mandem seus softwares para inclusão.
|
|
Consulte <link xlink:href="../../../../commercial/index.html"> a
|
|
página de Fabricantes</link> para obter uma lista
|
|
maior.</para>
|
|
</note>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="officesuite">
|
|
<para>Onde eu posso conseguir <foreignphrase>Office
|
|
Suite</foreignphrase>) para o FreeBSD?</para>
|
|
</question>
|
|
<answer>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.freebsdmall.com/">A FreeBSD
|
|
Mall</link> oferece uma versão nativa do
|
|
<link xlink:href="http://www.vistasource.com/">VistaSource</link>
|
|
ApplixWare 5 para o FreeBSD.</para>
|
|
|
|
<para>O ApplixWare é uma poderosa suíte
|
|
comercial de aplicações para
|
|
escritório no FreeBSD. Ela contém um
|
|
processador de texto, planilha de cálculos, um
|
|
programa de apresentação e um pacote
|
|
para desenho vetorial e outros aplicativos.</para>
|
|
|
|
<para>O ApplixWare é vendido com parte integrante
|
|
da edição de Desktops BSD da FreeBSD
|
|
Mall.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>A versão para Linux do <link xlink:href="http://www.sun.com/staroffice/">StarOffice</link>
|
|
funciona sem problemas no FreeBSD. A maneira mais
|
|
fácil de instalar a versão para Linux do
|
|
StarOffice é pela <link xlink:href="../handbook/ports.html">Coleção
|
|
de <literal>Ports</literal> do FreeBSD</link>.
|
|
Versões futuras da suíte Open-Source de
|
|
escritório,<link xlink:href="http://www.openoffice.org/">OpenOffice</link>
|
|
deverão funcionar também.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="motif">
|
|
<para>Onde posso conseguir o Motif para o FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O Open Group lançou o código fonte do
|
|
Motif 2.1.30, que pode ser instalado como o pacote
|
|
<literal>open-motif</literal>, ou então ser
|
|
compilado pelo <literal>Ports</literal>. Consulte a
|
|
<link xlink:href="../handbook/ports.html"> seção
|
|
sobre o <literal>Ports</literal> no
|
|
&a.ptbr.p.handbook;</link> para obter mais
|
|
informações sobre o assunto.
|
|
|
|
<note>
|
|
<para>O Open Motif pode ser redistribuído apenas
|
|
se sua distribuição estiver sendo usada
|
|
em sistemas operacionais <link xlink:href="http://www.opensource.org/">open
|
|
source</link>.</para>
|
|
</note>
|
|
</para>
|
|
|
|
<para>Em contrapartida, existem distribuições
|
|
comerciais do Motif disponíveis. Tais
|
|
distribuições contudo não são
|
|
gratuitas, mas suas licenças permitem que ele seja
|
|
utilizando em softwares de código fechado. Contate
|
|
a <link linkend="apps2go">Apps2go</link> para obter
|
|
informações quanto a versão mais
|
|
barata do ELF Motif 2.1.20 para FreeBSD (tanto para i386
|
|
quanto para Alpha).<anchor xml:id="apps2go"/></para>
|
|
|
|
<para>Existem duas distribuições, a
|
|
<quote>development edition</quote> e a <quote>runtime
|
|
edition</quote> (bem mais barata). Tais
|
|
distribuições incluem:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>OSF/Motif manager, xmbind, panner, wsm.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Kit de Desenvolvimento com uil, mrm, xm, xmcxx,
|
|
arquivos include e arquivos.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Bibliotecas ELF estáticas e dinâmicas
|
|
(para serem usadas com FreeBSD 3.0 e
|
|
superiores).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Applets de demonstração.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Lembre-se de especificar que você quer a
|
|
versão para FreeBSD do Motif quando encomendado
|
|
(não esqueça de mencionar a arquitetura que
|
|
você quer também)! Versões para
|
|
NetBSD e OpenBSD também são vendidas pela
|
|
<emphasis>Apps2go</emphasis>. Atualmente o produto
|
|
é apenas disponível para download via
|
|
FTP.</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>Mais informações:</term>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.apps2go.com/">
|
|
Página WWW da Apps2go</link></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>ou</term>
|
|
<listitem>
|
|
<para>
|
|
<email>sales@apps2go.com</email> ou
|
|
<email>support@apps2go.com</email>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>ou</term>
|
|
<listitem>
|
|
<para>fone [EUA] (817) 431 8775 ou +1 817
|
|
431-8775</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>Contate <link linkend="metrox">Metro Link</link> para
|
|
obter informações quanto a versão ELF
|
|
ou a versão a.out do Motif 2.1 para o
|
|
FreeBSD.</para>
|
|
|
|
<para>Tal distribuição inclui:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Gerenciador OSF/Motif, xmbind, panner, wsm.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Kit de desenvolvimento com uil, mrm, xm, xmcxx,
|
|
arquivos include e arquivos Imake.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Bibliotecas estáticas e dinâmicas
|
|
(não se esqueça de especificar que
|
|
você 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).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Applets de Demonstração.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Páginas de manual previamente
|
|
formatadas.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Certifique-se de especificar que você quer a
|
|
versão para FreeBSD do Motif quando
|
|
encomendá-lo! Versões para Linux
|
|
também são vendidas pela <emphasis>Metro
|
|
Link</emphasis>. O produto está
|
|
disponível em CDROM ou download via FTP.</para>
|
|
|
|
<para>Contate a <link linkend="xig">Xi Graphics</link> para
|
|
obter informações quanto a versão
|
|
a.out do Motif 2.0 para o FreeBSD.</para>
|
|
|
|
<para>A distribuição inclui:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Gerenciador OSF/Motif, xmbind, panner, wsm.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Kit de desenvolvimento com uil, mrm, xm, xmcxx,
|
|
arquivos include e arquivos Imake.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Bibliotecas estáticas e dinâmicas
|
|
(para o FreeBSD 2.2.8 e anteriores).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Applets de Demonstração.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Páginas de manual previamente
|
|
formatadas.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>certifique-se de especificar que você quer a
|
|
versão para FreeBSD do Motif quando
|
|
encomendá-lo! Versões para BSDI e para
|
|
Linux também são vendidas pela <emphasis>Xi
|
|
Graphics</emphasis>. Atualmente o produto se trata de
|
|
um conjunto de 4 disquetes... futuramente se
|
|
tornará uma distribuição única
|
|
em CD, como o CDE da mesma empresa.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="cde">
|
|
<para>Onde posso adquirir o CDE para o FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para><link linkend="xig">A Xi Graphics</link> costumava
|
|
vender o CDE para o FreeBSD, mas não o faz
|
|
mais.</para>
|
|
|
|
<para><link xlink:href="http://www.kde.org/">O KDE</link>
|
|
é um Desktop de código fonte aberto para X11
|
|
similar ao CDE em muitos aspectos. Talvez você
|
|
também aprecie o visual e as características
|
|
do <link xlink:href="http://www.xfce.org/">xfce</link>. KDE e
|
|
xfce estão ambos disponíveis no <link xlink:href="../../../../ports/index.html">sistema de
|
|
<literal>ports</literal> do FreeBSD</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="commercial-xserver">
|
|
<para>Existe algum servidor X comercial de
|
|
alta-performance?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim, a <link xlink:href="http://www.xig.com/">Xi
|
|
Graphics</link> e a <link xlink:href="http://www.metrolink.com/">Metro Link</link>
|
|
vendem produtos da Accelerated-X para o FreeBSD e para
|
|
outros sistemas baseados em Intel.</para>
|
|
|
|
<para>O que a Metro Link oferece é um servidor X de
|
|
alta-performance que possui um esquema de
|
|
configuração extremamente fácil,
|
|
fazendo uso da suíte de ferramentas de
|
|
gerenciamento de pacotes do FreeBSD, com suporte a
|
|
múltiplas placas de vídeo simultâneas
|
|
e é distribuído apenas em forma
|
|
binária, por meio conveniente de um download via
|
|
FTP. Sem esquecer que, o produto oferecido pela Metro
|
|
Link está disponível a um preço muito
|
|
razoável, $39 dólares.<anchor xml:id="metrox"/></para>
|
|
|
|
<para>A Metro Link vende também o Motif e formato ELF
|
|
e a.out para o FreeBSD (veja pergunta anterior).</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>informações:</term>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.metrolink.com/">
|
|
Página WWW da Metro Link</link></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>ou</term>
|
|
<listitem>
|
|
<para><email>sales@metrolink.com</email> ou
|
|
<email>tech@metrolink.com</email>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>ou</term>
|
|
<listitem>
|
|
<para>fone [EUA] (954) 938-0283 ou +1 954
|
|
938-0283</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>O produto oferecido pela Xi Graphics é um
|
|
servidor X de alta performance, que oferece uma interface
|
|
fácil de configuração e com suporte a
|
|
múltiplas placas de vídeo simultâneas,
|
|
e é distribuído apenas de forma
|
|
binária em uma distribuição
|
|
única para FreeBSD e Linux. A Xi Graphics oferece
|
|
ainda um servidor X de alta performance com suporte
|
|
desenvolvido especificamente para laptops.<anchor xml:id="xig"/></para>
|
|
|
|
<para>Existe uma versão
|
|
de<quote>demonstração de
|
|
compatibilidade</quote> disponível na
|
|
versão 5.0 do servidor gráfico.</para>
|
|
|
|
<para>A Xi Graphics vende ainda o Motif e o CDE para o
|
|
FreeBSD (veja acima).</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>Mais informações:</term>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.xig.com/"> Página
|
|
WWW da Xi Graphics</link></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>ou</term>
|
|
<listitem>
|
|
<para><email>sales@xig.com</email> ou
|
|
<email>support@xig.com</email>
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>ou</term>
|
|
<listitem>
|
|
<para>fone [EUA] (800) 946 7433 ou +1 303
|
|
298-7478.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="database-systems">
|
|
<para>Existe algum sistema de Banco de Dados para o
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim! Veja a seção de <link xlink:href="../../../../commercial/software_bycat.html#CATEGORY_DATABASE">
|
|
Fabricantes Comerciais</link> do Web site do
|
|
FreeBSD.</para>
|
|
|
|
<para>Dê uma olhada também na
|
|
seção de <link xlink:href="../../../../ports/databases.html">
|
|
Databases</link> da Coleção de
|
|
<literal>Ports</literal> do FreeBSD.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="oracle-support">
|
|
<para>Posso rodar o Oracle no FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Pode. As páginas a seguir descrevem exatamente
|
|
como configurar o Oracle para Linux no FreeBSD:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><link xlink:href="http://www.scc.nl/~marcel/howto-oracle.html">
|
|
http://www.scc.nl/~marcel/howto-oracle.html</link></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><link xlink:href="http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd">
|
|
http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-freebsd</link></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="applications">
|
|
<title>Aplicações de Usuário</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="user-apps">
|
|
<para>Então, onde estão todas as
|
|
aplicações de usuários?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por gentileza, dê uma olhada <link xlink:href="../../../../ports/index.html">na página do
|
|
<literal>Ports</literal></link> para
|
|
informações sobre pacotes de programas
|
|
disponíveis na Coleção de
|
|
<literal>Ports</literal> do FreeBSD. A lista atualmente
|
|
ultrapassa &os.numports; aplicações e
|
|
está crescendo diariamente, então retorne
|
|
à página e verifique freqüentemente as
|
|
aplicações, ou entã inscreva-se na
|
|
lista de discussão
|
|
<literal>freebsd-announce</literal> <link linkend="mailing">mailing list</link> para
|
|
atualizações periódicas ou novas
|
|
adições.</para>
|
|
|
|
<para>A maioria dos <literal>ports</literal> devem estar
|
|
disponíveis para as versões 2.2, 3.x e 4.x,
|
|
e muitos deles devem funcionar também em sistemas
|
|
2.1.x. Cada vez que um lançamento do FreeBSD
|
|
é produzido, um
|
|
<foreignphrase>snapshot</foreignphrase> da árvore
|
|
do <literal>ports</literal> do momento da
|
|
lançamento também é incluída
|
|
no diretório <filename>ports/</filename>.</para>
|
|
|
|
<para>O FreeBSD também suporta o conceito de
|
|
<quote>pacote</quote>, que essencialmente nada mais
|
|
é do que uma distribuição
|
|
binária compactada com o gzip e com um pouco de
|
|
inteligência extra embutido nesse pacote, para fazer
|
|
o trabalho que é requerido para uma
|
|
instalação customizada. Um pacote pode ser
|
|
instalado e desinstalado repetidas vezes de forma
|
|
fácil, sem ter que se conhecer os detalhes
|
|
horrendos dos arquivos que ele inclui.</para>
|
|
|
|
<para>Use o menu de instalação de pacotes em
|
|
<filename>/stand/sysinstall</filename> (sobre a
|
|
opção do pos-configuration menu) ou invoque
|
|
o comando &man.pkg.add.1; nos arquivos de pacotes
|
|
específicos que voc;ê quer instalar. Os
|
|
pacotes podem ser identificados normalmente pelo sufixo
|
|
<filename>.tgz</filename> e o pessoal da
|
|
distribuição em CDROM tem um
|
|
diretório <filename>/packages/All </filename> no cd
|
|
que conté esses arquivos. Eles podem também
|
|
ser baixados pela rede para várias versões
|
|
do FreeBSD nos seguintes endereços: do (sobre a
|
|
opção PostConfiguration do menu) ou invoque
|
|
o comando &man.pkg.add.1;</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>para o 2.2.8-RELEASE/2.2.8-STABLE </term>
|
|
<listitem>
|
|
<para><link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/">
|
|
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/</link></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>para o 3.X-RELEASE/3.X-STABLE</term>
|
|
<listitem>
|
|
<para><link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/">
|
|
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/</link></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>para o 4.X-RELEASE/4-STABLE</term>
|
|
<listitem>
|
|
<para><link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/">
|
|
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/</link></para>
|
|
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>para o 5.X-CURRENT</term>
|
|
<listitem>
|
|
<para><link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/">
|
|
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current</link></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>ou em um sítio espelho mais perto de
|
|
você.</para>
|
|
|
|
<para>Note que nem todos os <literal>Ports</literal> podem
|
|
estar disponíveis em formato de pacotes, visto que
|
|
a atualização da Coleção de
|
|
<literal>Ports</literal> do FreeBSD é muito
|
|
freqüente, e novos programas são
|
|
constantemente adicionados, e outros são
|
|
atualizados. É sempre bom verificar periodicamente
|
|
quais pacotes estão disponíveis no servidor
|
|
FTP mestre do projeto FreeBSD, o <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp.FreeBSD.org.</link>
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="missing-libcso30">
|
|
<para>Onde eu encontro a libc.so.3.0?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Você está tentando usar um pacote
|
|
construído para o FreeBSD 2.2 ou para
|
|
versões posteriores, em um sistema 2.1.X. Por
|
|
gentileza, dê uma olhada na seção
|
|
anterior e pegue o <literal>port</literal>/pacote correto
|
|
para o seu sistema.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="missing-libcso40">
|
|
<para> Por que eu estou tendo problemas cuja mensagem de
|
|
erro mostra <quote>Error: can't find
|
|
libc.so.4.0</quote>?.</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Acidentalmente você pegou um pacote
|
|
construído para FreeBSD 4.X ou para o 5.X e
|
|
está tentando instala-lo no seu FreeBSD 2.X ou 3.X.
|
|
Por favor, pegue a versão correta dos
|
|
pacotes.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="emul">
|
|
<para> Por que o ghostscript gera um monte de erros no meu
|
|
386/486SX?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Deixe-me adivinhar. Você não tem um
|
|
co-processador matemático, certo? Será
|
|
necessário adicionar um co-processador
|
|
matemático alternativo ao seu
|
|
<foreignphrase>kernel</foreignphrase>; você pode
|
|
fazer isso adicionando a seguinte linha no arquivo de
|
|
configuração do seu
|
|
<foreignphrase>kernel</foreignphrase>, e depois
|
|
recompilá-lo:</para>
|
|
|
|
<programlisting>options GPL_MATH_EMULATE</programlisting>
|
|
|
|
<note>
|
|
<para>Quando você fizer isto, será
|
|
necessário remover a opção
|
|
<literal>MATH_EMULATE</literal></para>
|
|
</note>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="sco-socksys">
|
|
<para>Por que aplicações do SCO/iBCS2
|
|
bombardeiam o ``socksys''? (FreeBSD 3.0 e anteriores,
|
|
apenas).</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Primeiro, é necessário editar o arquivo
|
|
<filename>/etc/sysconfig</filename> (ou
|
|
<filename>/etc/rc.conf</filename>, veja o &man.rc.conf.5;)
|
|
e modificar a última seção, alterando
|
|
para <literal>YES</literal> a seguinte
|
|
variável:</para>
|
|
|
|
<programlisting># Set to YES if you want ibcs2 (SCO) emulation loaded at startup
|
|
ibcs2=NO</programlisting>
|
|
|
|
<para>Essa alteração fará o sistema
|
|
carregar os módulos de
|
|
<foreignphrase>kernel</foreignphrase> do ibcs2 na
|
|
inicialização.</para>
|
|
|
|
<para>Depois, será necessário alterar o
|
|
/compat/ibcs2/dev para parecer com:</para>
|
|
|
|
<screen>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</screen>
|
|
|
|
<para>É necessário que o socksys aponte para
|
|
<filename>/dev/null</filename> (veja &man.null.4;) para
|
|
fingir o processo de abertura e fechamento do device. O
|
|
código mais recente (<literal>-CURRENT</literal>)
|
|
se encarregará dos outros detalhes. Essa maneira
|
|
de trabalhar o socksys é bem mais limpa do que a
|
|
forma que era usada anteriormente. Se você quer que
|
|
o driver <filename>spx</filename> fique
|
|
disponível para um socket X local, defina a
|
|
opção <literal>SPX_HACK</literal> no
|
|
<foreignphrase>kernel</foreignphrase> do FreeBSD quando
|
|
você o recompilar.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="configure-inn">
|
|
<para> Como eu configuro um sistema de INN (Internet News)
|
|
na minha estação?
|
|
</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Depois de instalar o pacote <package>news/inn</package> ou o
|
|
<literal>port</literal>, um excelente lugar para iniciar
|
|
é <link xlink:href="http://www.cis.ohio-state.edu/~barr/INN.html">Dave
|
|
Barr's INN Page</link> onde voçe
|
|
encontrará o <literal>FAQ</literal> do INN.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ms-frontpage">
|
|
<para>Qual versão do Microsoft FrontPage eu devo
|
|
usar?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Use os <literal>Ports</literal>, Luke! Uma
|
|
versão previamente corrigida do Apache,<package>apache13-fp</package>, está
|
|
disponível na árvore do
|
|
<literal>Ports</literal>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="java">
|
|
<para>O FreeBSD suporta Java?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Veja a página <link xlink:href="../../../../java/index.html">
|
|
http://www.FreeBSD.org/java/</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ports-3x">
|
|
<para>Por que eu não consigo compilar determinado
|
|
<literal>port</literal> na minha estação
|
|
3.X-STABLE?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Caso esteja usando uma versão do FreeBSD
|
|
significativamente mais velha do que o -CURRENT ou o
|
|
-STABLE, será necessário usar o kit de
|
|
atualização dos <literal>Ports</literal>,
|
|
disponível em <link xlink:href="../../../../ports/index.html">http://www.FreeBSD.org/ports/</link>.
|
|
Caso esteja atualizado mas ainda assim você tem
|
|
dificuldades, é provável que alguém
|
|
disponibilizou uma versão do programa que funciona
|
|
perfeitamente no -CURRENT mas que não compila
|
|
corretamente no -STABLE. Por gentileza, envie um
|
|
Relatório de Problemas com o comando &man.send-pr.1;
|
|
porque a coleção de <literal>Ports</literal>
|
|
deve funcionar tanto no -STABLE quanto no -CURRENT.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="find-ldso">
|
|
<para>Onde posso encontrar o arquivo ld.so?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Algumas aplicações cujo formato
|
|
binário é o a.out, como o Netscape
|
|
Navigator, necessitam das bibliotecas a.out. Uma
|
|
versão do FreeBSD nativamente construído com
|
|
bibliotecas ELF não instala as bibliotecas a.out
|
|
por padrão. Você terá problemas por
|
|
não ter o <filename>/usr/libexec/ld.so</filename>,
|
|
se esse for o caso do seu sistema. Estas bibliotecas
|
|
estão disponíveis embutidas na
|
|
distribuição compat22. Utilize o
|
|
&man.sysinstall.8; para instalá-los. Pode-se
|
|
instalá-lo apartir do código fonte do
|
|
FreeBSD:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/src/lib/compat/compat22</userinput>
|
|
&prompt.root; <userinput>make install clean</userinput></screen>
|
|
|
|
<para>Se quiser instalar as bibliotecas mais recentes do
|
|
compat22 sempre que executar o <command>make
|
|
world</command>, edite
|
|
<filename>/etc/make.conf</filename> para incluir
|
|
<varname>COMPAT22=YES</varname>. Bibliotecas de
|
|
compatibilidade antigas raramente sofrem mudanças ,
|
|
as vezes nunca, então geralmente não
|
|
é necessário.</para>
|
|
<para> Também veja as páginas de ERRATAS para
|
|
o 3.1-RELEASE e 3.2-RELEASE.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ports-update">
|
|
<para>Eu atualizei meus fontes. E agora, como eu atualizo
|
|
meus <literal>Ports</literal> instalados?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>FreeBSD não inclui uma ferramenta de
|
|
atualização do <literal>ports</literal>, mas
|
|
existem algumas ferramentas que tornam o processo de
|
|
atualização dos <literal>Ports</literal> uma
|
|
tarefa, digamos, fácil. É possível
|
|
ainda instalar algumas ferramentas adicionais que
|
|
facilitam o gerenciamento dos <literal>Ports</literal>
|
|
instalados</para>
|
|
|
|
<para>O comando &man.pkg.version.1; pode gerar um script que
|
|
atualizará os <literal>ports</literal> instalados
|
|
para as últimas versões da árvore de
|
|
<literal>Ports</literal>.</para>
|
|
|
|
<screen>&prompt.root; <userinput>pkg_version -c > /tmp/myscript</userinput></screen>
|
|
|
|
<para>O script de saída <emphasis>deve</emphasis> ser
|
|
editado manualmente antes de ser usado. As versões
|
|
mais recentes do &man.pkg.version.1; forçam a
|
|
edição do arquivo, colocando um &man.exit.1;
|
|
no começo do script.</para>
|
|
|
|
<para>A saída do script deve ser salva pois ela gera
|
|
informações sobre os pacotes que são
|
|
dependências dos que estão sendo atualizados.
|
|
Tais dependências podem precisar ser atualizadas ou
|
|
não, dependendo de cada uma delas. Os casos comuns
|
|
onde as dependências precisam ser atualizadas
|
|
é quando a versão das bibliotecas
|
|
compartilhadas foram alteradas, portanto o
|
|
<literal>port</literal> que usava aquela biblioteca
|
|
precisa ser atualizado para que a nova versão seja
|
|
usada.</para>
|
|
|
|
<para>Caso tenha espaço o bastante em disco , pode
|
|
ser interessante usar a ferramenta
|
|
<command>portupgrade</command> para automatizar o processo
|
|
de atualização das aplicações
|
|
instalados por meio de <literal>ports</literal> ou
|
|
pacotes. Posto que ele foi programado em Ruby, o
|
|
<command>portupgrade</command> é um candidato
|
|
improvável à se tornar parte da
|
|
árvore principal do FreeBSD. Mas isso não
|
|
evita que qualquer pessoa use o programa. Alias, ele
|
|
é uma ótima ferramenta. Ele está
|
|
disponível em <package>sysutils/portupgrade</package>.</para>
|
|
|
|
<para>Se a estação fica constantemente
|
|
conectada, é interessante usar o sistema
|
|
&man.periodic.8; para gerar um relatório semanal
|
|
sobre as versões do <literal>Ports</literal> que
|
|
podem ser atualizadas. Pra configurar o sistema para
|
|
isso, insira a linha
|
|
<literal>weekly_status_pkg_enable="YES"</literal> no
|
|
<filename>/etc/periodic.conf</filename>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="minimal-sh">
|
|
<para>Por que o <command>/bin/sh</command> é
|
|
tão pequeno? Por que o FreeBSD não usa o
|
|
<command>bash</command> ou outro interpretador de comandos
|
|
(<foreignphrase>shell</foreignphrase>)?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Porque o POSIX diz que é assim que deve ser um
|
|
interpretador de comandos
|
|
(<foreignphrase>shell</foreignphrase>)?</para>
|
|
|
|
<para>A reposta mais complicada: muitas pessoas precisam
|
|
escrever scripts <foreignphrase>shell</foreignphrase> que
|
|
sejam portáveis através de muitos sistemas.
|
|
É por isso que o POSIX especifica o interpretador
|
|
de comandos (<foreignphrase>shell</foreignphrase>) e
|
|
comandos utilitários com tanto detalhe. A maioria
|
|
dos scripts são escritos para o interpretador de
|
|
comandos Bourne (Bourne
|
|
<foreignphrase>shell</foreignphrase>), e várias
|
|
interfaces importantes de programação
|
|
(&man.make.1;, &man.system.3;, &man.popen.3; e
|
|
análogos em linguagens de alto-nível como
|
|
Perl e Tcl) o usam como interpretador de comandos
|
|
(<foreignphrase>shell</foreignphrase>) padrão. Por
|
|
ser tão amplamente utilizado é importante
|
|
que o interpretador de comandos
|
|
(<foreignphrase>shell</foreignphrase>) Bourne seja
|
|
rápido para carregar, seja determinístico em
|
|
seu comportamento, e que tenha uma pequena
|
|
alocação de memória.
|
|
</para>
|
|
|
|
<para>A implementação atual é o nosso
|
|
melhor esforço para encontrar a maior parte destes
|
|
requerimentos simultaneamente. Como forma de manter o
|
|
<command>/bin/sh</command> do menor tamanho
|
|
possível, não incluímos muitas das
|
|
características convenientes que outros
|
|
interpretadores de comando
|
|
(<foreignphrase>shell</foreignphrase>) possuem. É
|
|
por isso que a Coleção de
|
|
<literal>Ports</literal> disponibiliza outros
|
|
interpretadores de comandos
|
|
(<foreignphrase>shell</foreignphrase>) com
|
|
características mais abrangentes, como o bash, o
|
|
csh, o tcsh, e o zsh. (Você pode comparar a
|
|
utilização de memória entre todos
|
|
esses interpretadores de comandos
|
|
(<foreignphrase>shell</foreignphrase>), analisando as
|
|
colunas <quote>VSZ</quote> e <quote>RSS</quote> na
|
|
saída do comando <command>ps -u</command>.)</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="netscape-slow-startup">
|
|
<para>Por que o Netscape e o Opera demoram tanto para
|
|
iniciar?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A resposta tradicional é que o DNS no seu
|
|
computador está mal configurado. O Netscape e o
|
|
Opera fazem verificação de DNS ao iniciar, e
|
|
por isso não se tornarão disponíveis
|
|
até que obtenham uma resposta do servidor DNS ou
|
|
até que eles determinem que a estação
|
|
não está conectada na rede.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="kernelconfig">
|
|
<title>Configuraçãao do
|
|
<foreignphrase>Kernel</foreignphrase></title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="make-kernel">
|
|
<para>Eu gostaria de configurar meu
|
|
<foreignphrase>kernel</foreignphrase>. É
|
|
difícil?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>De modo algum! Veja a <link xlink:href="../handbook/kernelconfig.html">seção
|
|
"kernel config" do &a.ptbr.p.handbook;</link>.</para>
|
|
|
|
<note>
|
|
<para>Recomenda-se que você faça uma
|
|
cópia datada do seu <filename>kernel</filename>
|
|
na forma <filename>/kernel.AAMMDD</filename> e o
|
|
diretório <filename>/modules</filename> para
|
|
<filename>/modules.AAMMDD</filename> depois que estiver
|
|
tudo funcionando. Desta forma se você fizer
|
|
alguma bobagem quando mexer com a sua
|
|
configuração, pode-se iniciar aquele
|
|
<foreignphrase>kernel</foreignphrase> ao invés de
|
|
ter que desfazer tudo novamente no
|
|
<filename>kernel.GENERIC</filename>. Isso é
|
|
particularmente importante se você estiver dando
|
|
boot em um equipamento não suportado pelo
|
|
<foreignphrase>kernel</foreignphrase> genérico
|
|
(<literal>GENERIC</literal>).</para>
|
|
</note>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="missing-hw-float">
|
|
<para>A compilação do meu
|
|
<foreignphrase>kernel</foreignphrase> falha porque
|
|
está faltando o <literal>_hw_float</literal>. Como
|
|
eu resolvo o problema?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Deixa eu adivinhar. Você removeu o
|
|
<filename>npx0</filename> (veja &man.npx.4;) do
|
|
arquivo de configuração do
|
|
<foreignphrase>kernel</foreignphrase> porque você
|
|
não possui um co-processador aritmético,
|
|
certo? Errado! :-) O <filename>npx0</filename>
|
|
é <emphasis>OBRIGATÓRIO</emphasis>. Mesmo
|
|
que você não tenha um co-processador
|
|
aritmético, o dispositivo
|
|
<filename>npx0</filename> <emphasis>deve</emphasis>
|
|
ser incluido.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="why-kernel-big">
|
|
<para>Por que meu <foreignphrase>kernel</foreignphrase>
|
|
é tão grande (cerca de 10MB)?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Provavelmente, seu
|
|
<foreignphrase>kernel</foreignphrase> foi compilado em
|
|
<emphasis>modo de depuração
|
|
(<literal>debug</literal>)</emphasis>. Um
|
|
<foreignphrase>kernel</foreignphrase> construído em
|
|
modo de depuração (<literal>debug</literal>)
|
|
contêm muitos símbolos usados para
|
|
depuração que aumentam muito o seu tamanho.
|
|
Note que se você está executando um FreeBSD
|
|
3.0 ou superior, terá pouca, ou nenhuma, perda de
|
|
performance por usar um
|
|
<foreignphrase>kernel</foreignphrase> em modo de
|
|
depuração (<literal>debug</literal>), sendo
|
|
útil ter um para o caso de pane no sistema.
|
|
</para>
|
|
|
|
<para>Entretanto, se você possui pouco espaço
|
|
em disco, ou simplesmente não quer executar um
|
|
<foreignphrase>kernel</foreignphrase> para
|
|
depuração, certifique-se que os dois itens
|
|
abaixo sejam verdadeiros:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Não existe a seguinte linha no arquivo de
|
|
configuração do
|
|
<foreignphrase>kernel</foreignphrase></para>
|
|
|
|
<programlisting>makeoptions DEBUG=-g</programlisting>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Você não está executando
|
|
&man.config.8; com a opção
|
|
<option>-g</option>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Ambas as situações acima fazem com que o
|
|
<foreignphrase>kernel</foreignphrase> seja compilado no
|
|
modo de depuração
|
|
(<literal>debug</literal>). Tão logo você
|
|
tenha certeza que não se enquadra naqueles itens, o
|
|
<foreignphrase>kernel</foreignphrase> poderá ser
|
|
compilado normalmente e notadamente diminuirá o
|
|
tamanho; a maioria dos
|
|
<foreignphrase>kernels</foreignphrase> tendem a ficar em
|
|
torno de 1.5MB a 2MB.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="multiport-serial-interrupts">
|
|
<para>Porque estão ocorrendo conflitos de
|
|
interrupção com portas multi-seriais?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Quando se compila um
|
|
<foreignphrase>kernel</foreignphrase> com suporte a porta
|
|
multi-serial, ele avisa que somente a primeira porta
|
|
é testada e as demais são ignoradas devido a
|
|
conflitos de interrupção. Como eu conserto
|
|
isto?</para>
|
|
|
|
<para>O problema, neste caso, é que o FreeBSD possui
|
|
código para evitar que o
|
|
<foreignphrase>kernel</foreignphrase> fique com lixo
|
|
(<foreignphrase>trashed kernel</foreignphrase>) por causa
|
|
de conflitos de hardware ou software. A maneira de
|
|
corrigir isto é excluindo as
|
|
definiçõs de IRQ em todas as portas exceto
|
|
uma. Veja o exemplo:</para>
|
|
|
|
<programlisting>#
|
|
# 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</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="generic-kernel-build-failure">
|
|
<para>Porque todo <foreignphrase>kernel</foreignphrase> que
|
|
eu tento construir falha na compilação,
|
|
mesmo o GENERIC?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Existem várias causas possíveis para
|
|
esse problema. Elas são, sem uma ordem particular:
|
|
</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Você não está usando os
|
|
comandos <command>make buildkernel</command> e
|
|
<command>make installkernel</command>, e seus fontes
|
|
estão estruturados de forma diferente daqueles
|
|
usados para construir o sistema atual (por exemplo,
|
|
está sendo um 4.3-RELEASE em um sistema
|
|
4.0-RELEASE). Se estiver sendo feita uma
|
|
atualização, leia o arquivo
|
|
<filename>/usr/src/UPDATING</filename>, prestando
|
|
atenção ao final da seção
|
|
<quote>COMMON ITEMS</quote>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Você está usando os comandos
|
|
<command>make buildkernel</command> e <command>make
|
|
installkernel</command>, mas não garantiu a
|
|
correta finalização do comando
|
|
<command>make buildworld</command>. O <command>make
|
|
buildkernel</command> depende de arquivos gerados
|
|
pelo <command>make buildworld</command> para fazer seu
|
|
trabalho corretamente.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Mesmo que você esteja tentando construir um
|
|
<link linkend="stable">FreeBSD-STABLE</link>, é
|
|
possível que os fontes tenham sido pegos quando
|
|
estavam sendo modificados, ou inconsistentes por
|
|
alguma outra razão; somente os releases
|
|
são absolutamente garantidos de serem
|
|
compilados, embora o <link linkend="stable">FreeBSD-STABLE</link> possa ser
|
|
compilado com sucesso na grande maioria das vezes.
|
|
Caso já não tenha conseguido, tente
|
|
buscar os fontes novamente e veja se o problema
|
|
já não foi resolvido. Tente um servidor
|
|
diferente, para o caso daquele que está sendo
|
|
usado estar com problemas.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="disks">
|
|
<title>Discos, Sistemas de Arquivos e Carregadores de
|
|
Inicialização (<foreignphrase>Boot
|
|
Loaders</foreignphrase>)</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="new-huge-disk">
|
|
<para>Como eu mudo todo o meu sistema operacional para um
|
|
disco novo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A melhor maneira de migrar seu sistema de um disco
|
|
para o outro é reinstalar completamente o SO na
|
|
nova unidade de armazenamento e depois migrar os dados dos
|
|
usuários do disco antigo para nova
|
|
instalação. Essa forma é a mais
|
|
recomendada, caso o sistema tenha sido -STABLE por mais de
|
|
uma versão, ou caso tenha atualizado um Release ao
|
|
invés de ter instalado um novo sistema. O booteasy
|
|
pode ser facilmente instalado com o comando
|
|
&man.boot0cfg.8;, de forma a permitir que o sistema possa
|
|
iniciar dois sistemas distintos, até que você
|
|
esteja satisfeito com o novo sistema. Pule o
|
|
próximo parágrafo para saber algumas formas
|
|
seguras de migrar os dados dos usuários para o novo
|
|
disco.</para>
|
|
|
|
<para>Você pode ter decidido por não refazer
|
|
uma nova instalação; nesse caso será
|
|
necessário reparticionar o novo disco com o
|
|
<filename>/stand/sysinstall</filename>, ou &man.fdisk.8;
|
|
ou &man.disklabel.8;. Também é
|
|
necessário instalar o booteasy em ambas as unidades
|
|
com o comando &man.boot0cfg.8;, de forma que você
|
|
possa alternar a inicialização entre o novo
|
|
sistema e a configuração atual do mesmo,
|
|
até que a cópia dos dados tenha sido
|
|
efetuada.</para>
|
|
|
|
<para>Agora, com um novo disco configurado, você
|
|
está pronto para começar a mover os dados da
|
|
antiga para nova unidade de armazenamento. Infelizmente
|
|
os dados não podem simplesmente ser copiados ao
|
|
acaso. Existem alguns arquivos especiais (como os
|
|
arquivos de dispositivos <filename>/dev</filename>),
|
|
flags, e links que tendem a não funcionar no novo
|
|
sistema, visto que esses arquivos ocupam inodes ou tem
|
|
informações específicas da unidade, e
|
|
por isso não podem ser copiados como um arquivo
|
|
comum. É necessário usar ferramentas que
|
|
entendam esse comportamento. Isso significa que
|
|
você terá que usar o &man.dump.8;. É
|
|
sempre uma boa idéia realizar esse processo de
|
|
cópia de dados em modo mono-usuário, contudo
|
|
tal precaução não é
|
|
obrigatória - é apenas sinal de
|
|
cuidado.</para>
|
|
|
|
<para>Não é aconselhável usar nenhuma
|
|
outra ferramenta a não ser o &man.dump.8; e
|
|
&man.restore.8; para copiar o sistema de arquivos da
|
|
partição raiz ("/"). O
|
|
&man.tar.1; pode funcionar de forma satisfatória,
|
|
mas pode ser que não. Também é
|
|
ótima idéia usar o &man.dump.8; e
|
|
&man.restore.8; para copiar (ou mover completamente) os
|
|
dados em uma partição para uma outra
|
|
partição vazia. Os passos
|
|
necessários para usar o dump para copiar os dados
|
|
de uma partição existente para uma nova
|
|
partição são:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Crie um novo sistema de arquivos com o
|
|
&man.newfs.8; na nova partição.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Monte a partição em um ponto de
|
|
montagem temporário.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Entre (cd) no ponto de montagem em
|
|
questão.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Finalmente mova os dados da partição
|
|
existente para a nova partição com o
|
|
&man.dump.8;.</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Por exemplo, se a intenção é
|
|
copiar os dados da partição raiz para a
|
|
partição
|
|
<filename>/dev/ad1s1a</filename>, cujo ponto de
|
|
montagem temporário é o
|
|
<filename>/mnt</filename>, faça o seguinte:</para>
|
|
|
|
<screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
|
|
&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
|
|
&prompt.root; <userinput>cd /mnt</userinput>
|
|
&prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen>
|
|
|
|
<para>Redefinir a estrutura das partições com
|
|
o &man.dump.8; é um processo um pouco mais
|
|
trabalhoso. Caso você queira, por exemplo, unir o
|
|
conteúdo da partição
|
|
<filename>/var</filename> com as partições
|
|
de nível acima, crie uma partição que
|
|
seja grande o bastante para alocar o conteúdo de
|
|
ambas, copie a partição principal como no
|
|
exemplo descrito acima e depois copie as
|
|
sub-partições para os diretórios
|
|
vazios que o primeiro comando deve ter criado:</para>
|
|
|
|
<screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
|
|
&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
|
|
&prompt.root; <userinput>cd /mnt</userinput>
|
|
&prompt.root; <userinput>dump 0af - / | restore xf -</userinput>
|
|
&prompt.root; <userinput>cd var</userinput>
|
|
&prompt.root; <userinput>dump 0af - /var | restore xf -</userinput></screen>
|
|
|
|
<para>Para separar um diretório de sua estrutura
|
|
atual, ou seja, no mesmo exemplo ainda, alocar os dados de
|
|
<filename>/var</filename> em uma partição
|
|
própria quando na definição atual o
|
|
/var é apenas um diretório comum, é
|
|
necessário montar a sub partição no
|
|
diretório apropriado do ponto de montagem
|
|
temporário, simulando assim o sistema de arquivos a
|
|
ser criado a partir da raiz (montada no diretório
|
|
temporário), depois basta copiar os dados do
|
|
diretório antigo para nova
|
|
partição:</para>
|
|
|
|
<screen>&prompt.root; <userinput>newfs /dev/ad1s1a</userinput>
|
|
&prompt.root; <userinput>newfs /dev/ad1s1d</userinput>
|
|
&prompt.root; <userinput>mount /dev/ad1s1a /mnt</userinput>
|
|
&prompt.root; <userinput>mkdir /mnt/var</userinput>
|
|
&prompt.root; <userinput>mount /dev/ad1s1d /mnt/var</userinput>
|
|
&prompt.root; <userinput>cd /mnt</userinput>
|
|
&prompt.root; <userinput>dump 0af - / | restore xf -</userinput></screen>
|
|
|
|
<para>Talvez você prefira usar &man.cpio.1;,
|
|
&man.pax.1;, &man.tar.1; ao invés de &man.dump.8;
|
|
na hora de copiar os dados de usuários. Quando
|
|
este <literal>FAQ</literal> foi escrito, esses comandos
|
|
costumavam perder atributos especiais dos arquivos ou
|
|
mesmo alterar algumas permissões ou autoridade
|
|
(dono dos arquivos), portanto use esses comandos com
|
|
cuidado.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="dangerously-dedicated">
|
|
<para>Um disco no modo <quote>dangerously dedicated</quote>
|
|
pode ser prejudicial a minha saúde?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para><anchor xml:id="dedicate"/>O processo de
|
|
instalação permite a escolha entre dois
|
|
modos distintos de particionar o(s) disco(s)
|
|
rígido. A maneira tradicional permite que outros
|
|
sistemas operacionais na mesma estação
|
|
possam acessar essas partições, criando
|
|
entradas na tabela do fdisk (entradas chamadas de
|
|
<quote>slices</quote> no FreeBSD) sob uma
|
|
partição FreeBSD própria. Uma
|
|
característica desse particionamento é
|
|
permitir múltiplos sistemas operacionais e permitir
|
|
a instalação de um gerenciador de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) para alternar entre
|
|
esses sistemas. A segunda maneira, a alternativa ao modo
|
|
tradicional faz uso do disco todo para o FreeBSD e
|
|
não faz esforços para se tornar
|
|
compatível com outros sistemas operacionais.</para>
|
|
|
|
<para>Então, por que esse modo é chamado de
|
|
<quote>modo perigosamente dedicado</quote>? Um disco
|
|
particionado dessa forma não tem algumas
|
|
características tradicionais que os PCs poderiam
|
|
considerar entradas válidas do fdisk. Dependendo
|
|
das circunstâncias o PC pode reclamar e gerar
|
|
advertências sobre o disco em questão, assim
|
|
que o primeiro contato com essa unidade seja feito, ou
|
|
pior, o PC pode ainda danificar o processo de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do BSD
|
|
(<foreignphrase>bootstrap</foreignphrase>) sem pedir
|
|
confirmação da alteração ou
|
|
até mesmo sem avisar o usuário dessa
|
|
mudança. O <quote>modo perigosamente
|
|
dedicado</quote> ainda costuma confundir várias
|
|
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 série
|
|
53C8xx de controladoras SCSI). Não são
|
|
apenas esses dois modelos que podem apresentar
|
|
dificuldades com esse modo de particionamento de disco, a
|
|
lista completa é ainda maior. O principal sintoma
|
|
desse tipo de confusão é a presença
|
|
de mensagens de <errorname>read error</errorname>
|
|
apresentada pelo <foreignphrase>bootstrap</foreignphrase>
|
|
do FreeBSD quando ele tem dificuldades de encontrar-se;
|
|
outro sintoma é a falta de sistema operacional no
|
|
momento da inicialização do PC.</para>
|
|
|
|
<para>Então porque esse modo de particionamento de
|
|
disco existe? Esse modo economiza o uso de alguns poucos
|
|
kbytes de espaço em disco, e pode, em contrapartida
|
|
gerar grandes problemas em uma nova
|
|
instalação do sistema. O modo
|
|
<quote>perigosamente dedicado</quote> em sua origem
|
|
é um desejo antigo dos usuários do FreeBSD,
|
|
especialmente durante a instalação, que
|
|
é simplesmente poder ignorar a
|
|
<quote>geometria</quote> de disco reconhecida pela BIOS e
|
|
usar o disco todo de forma independente, sem prestar
|
|
satisfação ao sistema básico de
|
|
entrada/saída do PC.</para>
|
|
|
|
<para>O conceito de <quote>Geometria</quote> é
|
|
ultrapassado, mas infelizmente ainda faz parte do
|
|
coração da BIOS dos Computadores Pessoais,
|
|
sendo extremamente necessário para a
|
|
interação do computador com seus discos.
|
|
Quando o FreeBSD cria as partições, ele tem
|
|
que gravar sua localização de forma
|
|
correspondente a maneira que a BIOS irá
|
|
procurá-la. Se essa informação
|
|
não é acessível à BIOS, pode
|
|
ser que o sistema não consiga iniciar-se.</para>
|
|
|
|
<para><quote>O modo Dangerously dedicated</quote> tenta
|
|
evitar esse desconforto fazendo a operação
|
|
se tornar mais simples. Em muitos casos essa forma de
|
|
particionamento funciona, mas ela foi criada para ser
|
|
usada como última alternativa à necessidade
|
|
de definir a geometria do disco - em 99% dos casos existem
|
|
formas mais vantajosas de resolver problemas com
|
|
geometria.</para>
|
|
|
|
<para>Mas então, como evitar a necessidade do modo
|
|
<quote>DD</quote> na instalação 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
|
|
opção <option>-v</option> no prompt de
|
|
<literal>boot:</literal> usando <command>boot
|
|
-v</command> nas configurações do loader
|
|
do sistema operacional. Antes do programa de
|
|
instalação ser carregado o kernel apresenta
|
|
a listagem dos valores para a Geometria de discos
|
|
reconhecida pela BIOS do computador; não se
|
|
precipite nem se preocupe, essas informações
|
|
podem ser visualizadas paginando a tela para as
|
|
notações anteriores, sendo possível
|
|
assim verificar esses valores. Normalmente as unidades de
|
|
disco da BIOS são apresentadas na mesma ordem que o
|
|
FreeBSD as encontra, sendo primeiro as unidades IDE
|
|
seguido das SCSI.</para>
|
|
|
|
<para>No momento do particionamento do disco, verifique se a
|
|
geometria apresentada pelo FDISK corresponde ao valor
|
|
apresentado pela BIOS; caso não corresponda use a
|
|
tecla <keycap>g</keycap> para redefinir esses valores.
|
|
Também pode ser necessário definir a
|
|
geometria manualmente em casos onde o disco em
|
|
questão está vazio e sem nenhum outro tipo
|
|
de partição criada, ou se o disco foi
|
|
instalado em um outro computador e foi colocado na
|
|
estação atual recentemente. Note que esse
|
|
tipo de complicação não é
|
|
comum, e quando acontece, acontece apenas com o disco onde
|
|
o FreeBSD está iniciando; Qualquer outro disco
|
|
existente no computador será controlado
|
|
perfeitamente pelo FreeBSD em qualquer
|
|
situação.</para>
|
|
|
|
<para>Uma vez existindo a concordância de Geometria
|
|
entre a BIOS e o FreeBSD, com certeza seus problemas
|
|
terão acabado, e não existia a necessidade
|
|
de usar o modo <quote>DD</quote>. Contudo, se em casos
|
|
extremos ainda ocorrerem erros de <errorname>read
|
|
error</errorname> então pode cruzar os dedos e
|
|
usar o modo dedicado (DD), afinal não há
|
|
nada a perder, visto que das formas tradicionais sua BIOS
|
|
insiste em não cooperar de forma correta.</para>
|
|
|
|
<para>Para voltar um disco particionado em modo
|
|
<quote>dangerously dedicated</quote> para uso normal em um
|
|
PC existem duas alternativas. A primeira é alocar
|
|
dados nulos (NULL bytes) o bastante na MBR do disco, de
|
|
forma que qualquer instalação posterior
|
|
acredite que o disco está vazio. Isso pode ser
|
|
feito, por exemplo, da seguinte maneira:</para>
|
|
|
|
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda0 count=15</userinput></screen>
|
|
|
|
<para>E a segunda forma, a
|
|
<quote>opção</quote> não documentada
|
|
do DOS:</para>
|
|
|
|
<screen><prompt>C:\></prompt> <userinput>fdisk /mbr</userinput></screen>
|
|
|
|
<para>instalará um novo registro mestre de
|
|
inicialização no disco em questão,
|
|
sobrepondo inclusive o
|
|
<foreignphrase>bootstrap</foreignphrase> do BSD.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="safe-softupdates">
|
|
<para>Em quais partições podemos seguramente
|
|
usar o softupdates? Eu tenho ouvido falar de problemas em
|
|
se usar o softupdates na partição
|
|
<filename>/</filename>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A resposta breve: o softupdates pode ser usado com
|
|
segurança em todas as
|
|
partições.</para>
|
|
|
|
<para>A resposta mais completa: existiam algumas
|
|
restrições quanto ao uso do softupdates na
|
|
partição raiz do sistema. Tais
|
|
restrições se deviam a duas
|
|
características causadas pelo softupdates, que eram
|
|
a pouquíssima chance de perder alguns dados da
|
|
partição raiz se acontecesse algum system
|
|
crash; apesar das probabilidades de perda de dados serem
|
|
mínimas, elas existem; não existe uma
|
|
danificação ou corrosão do sistema de
|
|
arquivos, apenas alguns arquivos podem ser simplesmente
|
|
perdidos. E a segunda característica é a
|
|
diminuição temporária de
|
|
espaço em disco.</para>
|
|
|
|
<para>Quando o softupdates está ativado o kernel pode
|
|
levar até trinta segundos para realmente escrever
|
|
alguns dados fisicamente em disco. Caso algum arquivo
|
|
grande seja apagado, ela permanece temporariamente em
|
|
disco até que o kernel realmente o apague, o que
|
|
pode causar uma condição de corrida
|
|
simples(simple race condition). Imagine, apenas para
|
|
ilustrar, que você apague um arquivo enorme do
|
|
disco, e logo em seguida crie um outro arquivo tão
|
|
grande quanto o primeiro; a gravação de
|
|
metadados no disco pode não ter sido realizada
|
|
ainda quando o segundo arquivo é criado, ou seja o
|
|
primeiro não foi realmente definido como um arquivo
|
|
apagado. Nesse caso é provável que
|
|
você receba uma mensagem dizendo que não
|
|
existe espaço o bastante em disco para o segundo
|
|
arquivo, quando você tem certeza absoluta que o
|
|
espaço que acabou de ser liberado ao apagar o
|
|
primeiro arquivo é o suficiente para alocar o
|
|
segundo! Aí você tenta gravar o segundo
|
|
arquivo mais uma vez, alguns meros segundos depois, e o
|
|
processo de criação do mesmo, simplesmente
|
|
funciona como esperado. Esse tipo de comportamento
|
|
já levou mais de um usuário a
|
|
balançar sua cabeça e duvidar de sua
|
|
própria sanidade, ou mesmo da sanidade do sistema
|
|
de arquivos do FreeBSD; em caso extremos, de
|
|
dúvidas do bom estado de ambos, a sanidade do
|
|
sistema de arquivos e do próprio usuário
|
|
;-)</para>
|
|
|
|
<para>Se o sistema falhar antes do kernel aceitar um
|
|
conjunto de dados que tem que ser escrito no disco antes
|
|
do mesmo ser gravado, é provável que exista
|
|
perda dos dados em questão. Esse risco é
|
|
extremamente baixo, e geralmente é
|
|
contornável. O uso, por exemplo, das
|
|
opções de cache de gravação
|
|
das unidades de disco IDE é um fator que causa a
|
|
possibilidade desse tipo de desconforto, portanto é
|
|
altamente recomendável que essa opção
|
|
seja desativada nos discos IDE quando for usar o
|
|
softupdates.</para>
|
|
|
|
<para>Esse comportamento afeta todas as
|
|
partições que estiverem com softupdates.
|
|
Portanto, o que isso implica para a partição
|
|
raiz?</para>
|
|
|
|
<para>A maioria das informações vitais da
|
|
partição raiz mudam com pouquíssima
|
|
freqüência. Arquivos como o
|
|
<filename>/kernel</filename> e o conteúdo do
|
|
<filename>/etc</filename> são alterados apenas
|
|
durante a manutenção do sistema operacional,
|
|
ou quando os usuários alteram suas senhas. Caso o
|
|
sistema falhe durante essa janela de trinta segundos,
|
|
depois que uma dessas alterações foi feita,
|
|
é possível que alguns dados sejam perdidos.
|
|
Esse risco é baixíssimo e praticamente
|
|
indiferente para maioria das aplicações, mas
|
|
deve-se atentar que o risco existe. Caso seu sistema
|
|
não tolere nem uma possibilidade tão baixa
|
|
de riscos, não use o softupdates na
|
|
partição raiz!</para>
|
|
|
|
<para>A <filename>/</filename> normalmente é uma das
|
|
menores partições do sistema. Por
|
|
padrão o FreeBSD coloca o diretório
|
|
<filename>/tmp</filename> na partição
|
|
<filename>/</filename>, comportamento este que pode ser
|
|
modificado por administradores de sistemas mais
|
|
experientes. Caso seu <filename>/tmp</filename> costume
|
|
ocupar muito espaço, pode ser criado um link
|
|
simbólico para o <filename>/var/tmp</filename>, o
|
|
comportamento inverso também é válido
|
|
e bastante seguro, caso o /tmp seja uma
|
|
partição grande o bastante para alocar os
|
|
dados do /var/tmp também.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="inappropriate-ccd">
|
|
<para>O que é inapropriado no meu ccd?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Os sintomas desse tipo de dúvida:</para>
|
|
|
|
<screen>&prompt.root; <userinput>ccdconfig -C</userinput>
|
|
ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format</screen>
|
|
|
|
<para>Esse problema normalmente ocorre quando se tenta
|
|
concatenar as partições <literal>c</literal>
|
|
cujo tipo padrão é
|
|
<literal>unused</literal>. O ccd requer que a
|
|
partição que ele esteja usando seja do tipo
|
|
FS_BSDFFS. Edite o disklabel dos discos em questão
|
|
e altere o tipo das partições para
|
|
<literal>4.2BSD</literal>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ccd-disklabel">
|
|
<para>Porque eu não posso editar o disklabel do meu
|
|
ccd?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Os sintomas desse tipo de dúvida:</para>
|
|
|
|
<screen>&prompt.root; <userinput>disklabel ccd0</userinput>
|
|
(it prints something sensible here, so let us try to edit it)
|
|
&prompt.root; <userinput>disklabel -e ccd0</userinput>
|
|
(edit, save, quit)
|
|
disklabel: ioctl DIOCWDINFO: No disk label on disk;
|
|
use "disklabel -r" to install initial label</screen>
|
|
|
|
<para>Isso acontece por que o disklabel que o ccd retorna
|
|
é na verdade um valor <quote>falso</quote>, que
|
|
não está realmente gravado no disco. Esse
|
|
problema pode ser resolvido ao reescrever explicitamente
|
|
esse dado, da seguinte forma:</para>
|
|
|
|
<screen>&prompt.root; <userinput>disklabel ccd0 > /tmp/disklabel.tmp</userinput>
|
|
&prompt.root; <userinput>disklabel -Rr ccd0 /tmp/disklabel.tmp</userinput>
|
|
&prompt.root; <userinput>disklabel -e ccd0</userinput>
|
|
(agora irá funcionar)</screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="mount-foreign-fs">
|
|
<para>Posso montar outros tipos de partições
|
|
externas sobre FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>Digital UNIX</term>
|
|
|
|
<listitem>
|
|
<para>CDROMs do tipo UFS podem ser montados
|
|
diretamente no FreeBSD, já a montagem de
|
|
partições 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 questão.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Linux</term>
|
|
|
|
<listitem>
|
|
<para>A partir do 2.2, o FreeBSD suporta
|
|
partições do tipo
|
|
<literal>ext2fs</literal>. Veja o
|
|
&man.mount.ext2fs.8; para obter mais
|
|
informações.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>NT</term>
|
|
|
|
<listitem>
|
|
<para>Existe suporte somente-leitura as
|
|
partições NTFS no FreeBSD. Para obter
|
|
mais informações leia esse tutorial,
|
|
escrito por Mark Ovens em <link xlink:href="http://ukug.uk.FreeBSD.org/~mark/ntfs_install.html">http://ukug.uk.FreeBSD.org/~mark/ntfs_install.html</link>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>Mais informações sobre esse assunto
|
|
seriam bem vindas :-)</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="mount-dos">
|
|
<para>Como montar uma partição DOS
|
|
secundária?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>As partições secundárias do DOS
|
|
são encontradas depois que TODAS as
|
|
partições primárias foram definidas.
|
|
Por exemplo, se você tem a partição
|
|
<quote>E</quote> como a segunda partição
|
|
DOS no segundo disco SCSI, será necessário
|
|
criar um arquivo especial para essa <quote>quinta
|
|
partição</quote> (slice 5) no /dev, depois
|
|
montar /dev/da1s5:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
|
&prompt.root; <userinput>sh MAKEDEV da1s5</userinput>
|
|
&prompt.root; <userinput>mount -t msdos /dev/da1s5 /dos/e</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="crypto-filesystem">
|
|
<para>Existe um sistema de arquivos criptografado para o
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim, veja o <literal>port</literal> <package>security/cfs</package>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="nt-bootloader">
|
|
<para>Como posso usar o carregador do NT para iniciar o
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esse procedimento é um pouco diferente entre o
|
|
FreeBSD 2.2.X e o 3.X (que tem um sistema de inicío
|
|
(<foreignphrase>boot</foreignphrase>) de 3 fases).</para>
|
|
|
|
<para>A idéia geral se consiste em copiar os
|
|
primeiros setores da partição raiz nativa do
|
|
FreeBSD e transforma-los em um arquivo, para ser colocado
|
|
dentro da partição DOS/NT. Se assumir-mos
|
|
que você vai chamar esse arquivo de
|
|
<filename>c:\bootsect.bsd</filename> (inspirado por
|
|
<filename>c:\bootsect.dos</filename>), pode-se
|
|
então editar o arquivo
|
|
<filename>c:\boot.ini</filename> de forma a
|
|
carregá, mais ou menos assim:</para>
|
|
|
|
<programlisting>[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"</programlisting>
|
|
|
|
<para>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 partições respectivas do fdisk no
|
|
<emphasis>mesmo</emphasis> disco. Esse exemplo foi
|
|
testado em um sistema onde o DOS & NT estavam
|
|
instalados na primeira partição do fdisk, e
|
|
o FreeBSD na segunda. O FreeBSD havia sido configurado
|
|
para iniciar a partir de sua partição
|
|
nativa, e não pela MBR do disco.</para>
|
|
|
|
<para>Monte um disquete formatado em DOS (caso ele tenha
|
|
sido convertido para NTFS) ou em FAT, por exemplo, sob o
|
|
ponto de montagem <filename>/mnt</filename>.</para>
|
|
|
|
<screen>&prompt.root; <userinput>dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1</userinput></screen>
|
|
|
|
<para>Reinicie o computador no DOS ou NT. Sobre o NTFS,
|
|
copie o arquivo <filename>bootsect.bsd</filename> e/ou
|
|
arquivo <filename>bootsect.lnx</filename> do disquete para
|
|
<filename>C:\</filename>. Modifique os atributos
|
|
originais(permissões) do
|
|
<filename>boot.ini</filename> com:</para>
|
|
|
|
<screen><prompt>C:\></prompt> <userinput>attrib -s -r c:\boot.ini</userinput></screen>
|
|
|
|
<para>Edite e adicione as entradas apropriadas no
|
|
<filename>boot.ini</filename> seguindo o exemplo anterior
|
|
e volte os atributos originais:</para>
|
|
|
|
<screen><prompt>C:\></prompt> <userinput>attrib +s +r c:\boot.ini</userinput></screen>
|
|
|
|
<para>Se o FreeBSD estiver inicializando pela MBR,
|
|
reconstrua-a com o comando <command>fdisk</command> do DOS
|
|
depois de configurar os sistemas para iniciar a partir de
|
|
suas partições nativas.</para>
|
|
|
|
<para>No FreeBSD 3.X esse procedimento é mais
|
|
simples.</para>
|
|
|
|
<para>Se o FreeBSD estiver instalado no mesmo disco que a
|
|
partição de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do NT está
|
|
instalada, copie o <filename>/boot/boot1</filename> para
|
|
<filename>C:\BOOTSECT.BSD</filename>. Contundo, se o
|
|
FreeBSD estiver em uma partição distinta, o
|
|
<filename>/boot/boot1</filename> não irá
|
|
funcionar, nesse caso, o <filename>/boot/boot0</filename>
|
|
será necessário.
|
|
|
|
<warning>
|
|
<para>NÃO COPIE SIMPLESMENTE O
|
|
<filename>/boot/boot0</filename> NO LUGAR DO
|
|
<filename>/boot/boot1</filename>, POIS A TABELA DE
|
|
PARTIÇÃO SERÁ REESCRITA, E O
|
|
COMPUTADOR SE TORNARÁ NÃO
|
|
INICIALIZÁVEL!!</para>
|
|
</warning> O <filename>/boot/boot0</filename> precisa ser
|
|
instalado com o sysinstall, selecionando o gerenciador de
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do FreeBSD na tela
|
|
que o programa pergunta se você deseja usar um
|
|
gerenciador de inicialização(boot manager).
|
|
Isso se deve ao fato que o
|
|
<filename>/boot/boot0</filename> contém
|
|
informações sobre a área da tabela de
|
|
partições definidas como caracteres nulos,
|
|
mas o sysinstall copia a tabela de partições
|
|
antes de copiar o <filename>/boot/boot0</filename> para a
|
|
MBR.</para>
|
|
|
|
<para>Quando o gerenciador de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do FreeBSD é
|
|
executado, ele grava qual último sistema
|
|
operacional foi carregado, definindo uma flag de sistema
|
|
ativo na tabela de partição referente aquele
|
|
sistema, e depois ele escreve todos os 512 bytes do
|
|
próprio gerenciador de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) de volta na MBR,
|
|
portanto se o <filename>/boot/boot0</filename>
|
|
simplesmente for copiado para
|
|
<filename>C:\BOOTSECT.BSD</filename> será definida
|
|
uma tabela de partição vazia com a flag de
|
|
partição ativa, na MBR.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="lilo-bootloader">
|
|
<para>Como posso iniciar o FreeBSD e o Linux com o
|
|
LILO?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Caso o FreeBSD e o Linux estejam no mesmo disco, basta
|
|
seguir as instruções de
|
|
instalação do LILO para carregar sistemas
|
|
operacionais não-Linux. De forma breve, tais
|
|
instruções são</para>
|
|
|
|
<para>Carregue o Linux e adicione as seguintes linhas no
|
|
<filename>/etc/lilo.conf</filename>:</para>
|
|
|
|
<programlisting>other=/dev/hda2
|
|
table=/dev/hda
|
|
label=FreeBSD</programlisting>
|
|
|
|
<para>(A definição acima assume que a sua
|
|
partição FreeBSD é conhecida pelo
|
|
Linux como <filename>/dev/hda2</filename>; altere esse
|
|
valor para sua necessidade). Depois basta executar o
|
|
comando <command>lilo</command> como usuário
|
|
<systemitem class="username">root</systemitem> e deve estar pronto.</para>
|
|
|
|
<para>Caso o FreeBSD esteja em um outro disco, será
|
|
preciso criar uma entrada
|
|
<literal>loader=/boot/chain.b</literal> no LILO. Por
|
|
exemplo:</para>
|
|
|
|
<programlisting>other=/dev/dab4
|
|
table=/dev/dab
|
|
loader=/boot/chain.b
|
|
label=FreeBSD</programlisting>
|
|
|
|
<para>Em alguns casos é necessário especificar
|
|
o número 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 inicialização
|
|
(<foreignphrase>boot loader</foreignphrase>) do FreeBSD
|
|
será necessário definir:</para>
|
|
|
|
<screen>Boot: <userinput>1:da(0,a)/kernel</userinput></screen>
|
|
|
|
<para>No FreeBSD 2.2.5 e posteriores, o &man.boot.8; pode
|
|
ser configurado para que ele automaticamente defina essa
|
|
informação na hora da
|
|
inicialização
|
|
(<foreignphrase>boot</foreignphrase>).</para>
|
|
|
|
<para>The <link xlink:href="http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+FreeBSD.html">
|
|
Linux+FreeBSD mini-HOWTO</link> é uma boa
|
|
referência sobre a utilização do
|
|
FreeBSD com o Linux.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="booteasy-loader">
|
|
<para>Como eu inicio o FreeBSD e o Linux usando o
|
|
BootEasy?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Instale o LILO no começo da sua
|
|
partição de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) do Linux ao
|
|
invés de instala-lo na MBR. Agora o LILO pode ser
|
|
carregado a partir do BootEasy.</para>
|
|
|
|
<para>Com Windows 9x e Linux essa é uma
|
|
ação recomendada sempre, para garantir que o
|
|
Linux possa ser iniciado de forma mais fácil caso
|
|
seja necessário reinstalar o Windows (que é
|
|
um sistema operacional que não espera nenhum outro
|
|
sistema na MBR).</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="changing-bootprompt">
|
|
<para>Como eu altero a tela de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) de
|
|
<literal>???</literal> para algo mais
|
|
significativo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Você não pode alterar esse comportamento
|
|
no gerenciador de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) padrão sem
|
|
reescreve-lo. Existem inúmeros outros
|
|
gerenciadores de inicialização
|
|
(<foreignphrase>boot</foreignphrase>) na categoria
|
|
<filename>sysutils</filename> da da coleção
|
|
de <literal>ports</literal>, que oferecem esse
|
|
recurso.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="removable-drives">
|
|
<para>Possuo uma nova unidade de disco removível,
|
|
como posso usa-la?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Ainda que seja uma unidade removível como um
|
|
ZIP Drive, um EZ Drive (ou até 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
|
|
questão, as coisas passam a funcionar da mesma
|
|
forma para qualquer tipo de dispositivo.</para>
|
|
|
|
<para><anchor xml:id="disklabel"/>(essa seção
|
|
é baseada no <link xlink:href="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">ZIP
|
|
<literal>FAQ</literal> de Mark Mayo</link>)</para>
|
|
|
|
<para>Caso o dispositivo seja um ZIP Drive ou um disquete
|
|
cujo sistema de arquivos já tenha sido criado como
|
|
sendo do tipo DOS, o seguinte comando é o bastante
|
|
para montá-lo:</para>
|
|
|
|
<screen>&prompt.root; <userinput>mount -t msdos /dev/fd0c /floppy</userinput></screen>
|
|
|
|
<para>caso seja um disquete, ou então:</para>
|
|
|
|
<screen>&prompt.root; <userinput>mount -t msdos /dev/da2s4 /zip</userinput></screen>
|
|
|
|
<para>caso seja um disco ZIP com as
|
|
configurações de fábrica.</para>
|
|
|
|
<para>Para outros tipos de disco, veja como eles são
|
|
tratados, usando o &man.fdisk.8; ou
|
|
&man.sysinstall.8;.</para>
|
|
|
|
<para>Os próximos exemplos serão para um ZIP
|
|
Drive controlado pela device da2, ou seja, correspondente
|
|
ao terceiro disco SCSI.</para>
|
|
|
|
<para>A não ser que se trate de um disquete ou de um
|
|
disco removível que se planeje compartilhar com
|
|
outras pessoas, provavelmente é mais sensata a
|
|
idéia 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 confiança. O primeiro passo
|
|
é redefinir a partição DOS da unidade
|
|
removível de forma que a mesma passe a ser do tipo
|
|
BSD; o &man.fdisk.8; ou
|
|
<filename>/stand/sysinstall</filename> podem ser usados
|
|
para esse fim, em um disco pequeno onde não se
|
|
queira preocupações quanto a possibilidade
|
|
de manter suporte a múltiplos sistemas
|
|
operacionais. Nesse caso simplesmente elimine toda a
|
|
partição FAT do disco e use o particionador
|
|
do BSD:</para>
|
|
|
|
<screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda2 count=2</userinput>
|
|
&prompt.root; <userinput>disklabel -Brw da2 auto</userinput></screen>
|
|
|
|
<para>O disklabel ou <filename>/stand/sysinstall</filename>
|
|
podem ser usados para criar múltiplas
|
|
partições do tipo BSD. Certamente o
|
|
usuário vai querer criar mais de uma
|
|
partição BSD se a intenção for
|
|
criar espaço de Swap. De qualquer forma, esse tipo
|
|
de ação é irrelevante em um disco
|
|
removível do tipo ZIP.</para>
|
|
|
|
<para>Finalmente, crie um novo sistema de arquivos como
|
|
esse, que usa todo o disco em um ZIP Drive:</para>
|
|
|
|
<screen>&prompt.root; <userinput>newfs /dev/rda2c</userinput></screen>
|
|
|
|
<para>e monte-o:</para>
|
|
|
|
<screen>&prompt.root; <userinput>mount /dev/da2c /zip</userinput></screen>
|
|
|
|
<para>provavelmente é uma boa idéia adicionar
|
|
uma entrada no <filename>/etc/fstab</filename> para
|
|
facilitar o processo de montagem dessa unidade(veja
|
|
&man.fstab.5;)de forma que seja apenas necessário
|
|
digitar o comando <command>mount /zip</command> no
|
|
futuro:</para>
|
|
|
|
<programlisting>/dev/da2c /zip ffs rw,noauto 0 0</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="mount-cd-superblock">
|
|
<para>Por que eu tive o erro <errorname>Incorrect super
|
|
block</errorname> na hora de montar um CDROM?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>É necessário avisar ao &man.mount.8; que
|
|
tipo de unidade está sendo montada. Essa
|
|
definição é tratada com mais detalhes
|
|
em <link xlink:href="../handbook/creating-cds.html"> na
|
|
seção de mídias ópticas do
|
|
&a.ptbr.p.handbook; </link>, mais precisamente na
|
|
seção <link xlink:href="../handbook/creating-cds.html#MOUNTING-CD">Usando
|
|
CDs de Dados</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="cdrom-not-configured">
|
|
<para><errorname>Device not configured</errorname> ocorre na
|
|
hora de montar o CDROM?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Geralmente esse tipo de comportamento indica que
|
|
não existe nenhum CD na unidade de CDROM, ou
|
|
então, que o CD em questão não
|
|
é visível ao barramento de dados do seu PC,
|
|
comum quando um CD-RW não pode ser lido por um
|
|
drive tradicional. Por gentileza, queira referir-se a
|
|
<link xlink:href="../handbook/creating-cds.html#MOUNTING-CD">Usando
|
|
CDs de Dados </link> da seção do
|
|
&a.ptbr.p.handbook; para uma discussão mais
|
|
detalhada sobre esse assunto.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="cdrom-unicode-filenames">
|
|
<para>Porque todos caracteres não-Inglês
|
|
são apresentados como <quote>?</quote> no sistema
|
|
de arquivos do CD que acabou de ser montado no
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Provavelmente seu CDROM usa extensões
|
|
<quote>Joliet</quote> para armazenar
|
|
informações sobre tipos de arquivos e
|
|
diretórios. Esse assunto é discutido no
|
|
capítulo de <link xlink:href="../handbook/creating-cds.html">
|
|
Criação e Uso de CDROMs do
|
|
&a.ptbr.p.handbook;</link>, mais precisamente na
|
|
seção <link xlink:href="../handbook/creating-cds.html#MOUNTING-CD">de Uso
|
|
de CDs de Dados</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="burncd-isofs">
|
|
<para>Eu queimei um CD no FreeBSD e agora esse disco
|
|
não pode ser lido em nenhum outro sistema
|
|
operacional. Por que?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Provavelmente você queimou um CD de forma crua
|
|
(usando raw mode) no seu sistema, ao invés de criar
|
|
um sistema de arquivos do tipo ISO 9660. Dê uma
|
|
olhada no <link xlink:href="../handbook/creating-cds.html">
|
|
Capítulo de Criação de CDROMs do
|
|
&a.ptbr.p.handbook;</link>, em específico na
|
|
seção <link xlink:href="../handbook/creating-cds.html#RAWDATA-CD">criando
|
|
CDS de dados puros</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="copy-cd">
|
|
<para>Como posso criar uma imagem de um CD de dados?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A criação de imagens de CDs de dados
|
|
é discutida na seção <link xlink:href="../handbook/creating-cds.html#IMAGING-CD">duplicando
|
|
CDs de dados do &a.ptbr.p.handbook;</link>. Para mais
|
|
informações sobre unidades ópticas,
|
|
por gentileza, queira referir-se a seção
|
|
<link xlink:href="../handbook/creating-cds.html">
|
|
Criação de CDs</link> no capítulo
|
|
de Armazenamento do &a.ptbr.p.handbook;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="mount-audio-CD">
|
|
<para>Por que um CD de áudio não pode ser
|
|
montado com o comando <command>mount</command>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Ao tentar montar um CD de áudio, o mais
|
|
provável é que ocorra um erro do tipo
|
|
<errorname>cd9660: /dev/acd0c: Invalid
|
|
argument</errorname>. Isso se deve ao fato que o
|
|
comando <command>mount</command> trabalha exclusivamente
|
|
com sistema de arquivos, o que não é o caso
|
|
de CDs de áudio. CDs de áudio contém
|
|
apenas dados, e por isso é necessário alguma
|
|
aplicação capaz de ler tais CDs. Use algum
|
|
programa como o <package>audio/xmcd</package>na
|
|
coleção de <literal>Ports</literal> do
|
|
FreeBSD para ler dados em CDs desse tipo.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="multi-session-CD">
|
|
<para>Como eu monto um CD com múltiplas
|
|
sessões de gravação?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por padrão, o &man.mount.8; tenta montar a
|
|
última trilha de dados (sessão) de um CD.
|
|
Caso queira montar uma sessão anterior pode-se usar
|
|
o argumento <option>-s</option> na linha de comando em
|
|
questão. Por gentileza, refira-se a página
|
|
de manual do comando &man.mount.cd9660.8; para obter
|
|
exemplos específicos do uso dessa e de outras
|
|
opções.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="user-floppymount">
|
|
<para>Como posso permitir que usuários comuns montem
|
|
disquetes, CDROMs e outros tipos de mídia
|
|
removível?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Usuários comuns podem ter a permissão de
|
|
montar dispositivos. Veja como:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Como <systemitem class="username">root</systemitem> defina a
|
|
variável <varname>vfs.usermount</varname> do
|
|
sysctl para <literal>1</literal>.</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysctl -w vfs.usermount=1</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Como <systemitem class="username">root</systemitem> defina as
|
|
permissões apropriadas nos dispositivos
|
|
associados ao controle da mídia
|
|
removível.</para>
|
|
|
|
<para>Por exemplo, para permitir que os usuários
|
|
possam montar a primeira unidade de disquete,
|
|
use:</para>
|
|
|
|
<screen>&prompt.root; <userinput>chmod 666 /dev/fd0</userinput></screen>
|
|
|
|
<para>Para permitir que os usuários do grupo
|
|
<systemitem class="groupname">operator</systemitem> montem a unidade de
|
|
CDROM, use:</para>
|
|
|
|
<screen>&prompt.root; <userinput>chgrp operator /dev/cd0c</userinput>
|
|
&prompt.root; <userinput>chmod 640 /dev/cd0c</userinput></screen>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Finalmente, para tornar essa
|
|
alteração permanente, adicione a linha
|
|
<literal> vfs.usermount=1</literal>
|
|
no arquivo
|
|
<filename>/etc/sysctl.conf</filename>.</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Agora todos os usuários podem montar qualquer
|
|
disquete no <filename>/dev/fd0</filename> em algum
|
|
ponto de montagem que lhes pertença:</para>
|
|
|
|
<screen>&prompt.user; <userinput>mkdir ~/my-mount-point</userinput>
|
|
&prompt.user; <userinput>mount -t msdos /dev/fd0 ~/my-mount-point</userinput></screen>
|
|
|
|
<para>Os usuários no grupo
|
|
<systemitem class="groupname">operator</systemitem> agora tem permissão
|
|
para montar os CDs no <filename>/dev/cd0c</filename>
|
|
em qualquer ponto de montagem que lhes
|
|
pertença:</para>
|
|
|
|
<screen>&prompt.user; <userinput>mkdir ~/my-mount-point</userinput>
|
|
&prompt.user; <userinput>mount -t msdos /dev/cd0c ~/my-mount-point</userinput></screen>
|
|
|
|
<para>Desmontar o dispositivo é extremamente
|
|
simples:</para>
|
|
|
|
<screen>&prompt.user; <userinput>umount ~/my-mount-point</userinput></screen>
|
|
|
|
<para>Contudo, habilitar a opção
|
|
<varname>vfs.usermount</varname>, contudo, causa algumas
|
|
implicâncias quanto ao quesito segurança;. A
|
|
forma mais racional de acessar mídia do tipo MSDOS
|
|
no FreeBSD é usando a aplicação
|
|
<link xlink:href="http://www.FreeBSD.org/cgi/ports.cgi?query=%5Emtools-&stype=name">mtools
|
|
</link>, disponível na Coleção de
|
|
<literal>Ports</literal>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="du-vs-df">
|
|
<para>Os comandos <command>du</command> e
|
|
<command>df</command> apresentam quantias distintas de
|
|
espaço em disco disponível. O que
|
|
está havendo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>É necessário entender o que os comandos
|
|
<command>du</command> e <command>df</command> realmente
|
|
fazem. O <command>du</command> percorre a árvore
|
|
de diretórios medindo o tamanho de cada arquivo e
|
|
apresentando o total da soma de todos os arquivos
|
|
encontrados em um dado diretório, e posteriormente
|
|
apresentando a soma de ambos subdiretórios no
|
|
diretório de nível seguinte,
|
|
<command>df</command> simplesmente pergunta ao sistema de
|
|
arquivos quanto espaço ainda lhe resta. Parece o
|
|
mesmo comportamento, mas um arquivo alocado fora de um
|
|
diretório, por exemplo, afeta os dados apresentados
|
|
pelo <command>df</command>, mas não afeta o
|
|
<command>du</command>.</para>
|
|
|
|
<para>Quando um programa está usando algum arquivo, e
|
|
este é apagado, o arquivo não é
|
|
retirado do sistema de arquivos até que o programa
|
|
em questão pare de usá-lo. Contudo, esse
|
|
arquivo é imediatamente deletado da listagem de
|
|
diretórios; isso pode ser mais bem observado com
|
|
algum paginador como o <command>more</command>. Por
|
|
exemplo, assuma que existe um arquivo grande o bastante
|
|
que sua presença seja perceptível claramente
|
|
na saída dos comandos <command>du</command> e
|
|
<command>df</command>. (Considerando que hoje em dia os
|
|
discos são bem grandes, o arquivo em questão
|
|
deve ser um arquivo de tamanho <emphasis>extremamente
|
|
considerável!</emphasis>) Caso o arquivo seja
|
|
apagado em quanto ele esteja sendo paginado com o
|
|
<command>more</command>, pode-se perceber que o
|
|
<command>more</command> não passa a reclamar que o
|
|
arquivo não pode mais ser visualizado no mesmo
|
|
instante. Contudo, a listagem, do diretório em
|
|
questão não apresentará mais esse
|
|
arquivo, de forma que nenhum usuário ou outro
|
|
programa possa acessá-lo. A entrada do arquivo no
|
|
diretório é simplesmente removida. O
|
|
<command>du</command> vai mostrar que esse arquivo
|
|
não existe mais — -- afinal, o du percorreu
|
|
todo o diretório e não encontrou esse
|
|
arquivo listado -- contudo o <command>df</command> mostra
|
|
que o arquivo continua no disco, pois o sistema de
|
|
arquivos sabe que o <command>more</command> continua
|
|
usando aquele espaço de dados que se encontram no
|
|
disco. Uma vez terminada a sessão do
|
|
<command>more</command>,<command>du</command> e
|
|
<command>df</command> concordarão entre si.</para>
|
|
|
|
<para>Note que em sistemas de arquivos com softupdates, a
|
|
liberação de espaço em disco
|
|
também pode ser atrasada em até 30 segundos
|
|
dependendo da situação; apenas depois desse
|
|
tempo, a alteração em disco será
|
|
visível!</para>
|
|
|
|
<para>Esse comportamento é comum e fácil de
|
|
ser observado em Servidores Web. Muitos usuários
|
|
configuram algum Servidor Web no FreeBSD e se esquecem de
|
|
rotacionar os arquivos de log da aplicação,
|
|
os quais entopem o <filename>/var</filename>. O novo
|
|
administrador do sistema deleta os arquivos de log em
|
|
questão, mas o sistema operacional continua
|
|
reclamando que a partição está cheia,
|
|
até que o Servidor Web seja desligado e religado,
|
|
de forma que a aplicação libera o arquivo e
|
|
permite que o sistema apague o arquivo, recuperando o
|
|
espaço em disco em questão. Para prevenir
|
|
que isso ocorra, configure o &man.newsyslog.8;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="add-swap-space">
|
|
<para>Como eu posso adicionar mais espaço para
|
|
<foreignphrase>swap</foreignphrase>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>No capítulo <link xlink:href="../handbook/config-tuning.html">Configuração
|
|
e Ajuste Fino
|
|
(<foreignphrase>Tuning</foreignphrase>)</link> do
|
|
&a.ptbr.p.handbook;, pode ser encontrada uma <link xlink:href="../handbook/adding-swap-space.html">seção
|
|
</link> descrevendo como fazer isto.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="admin">
|
|
<title>Administração do Sistema</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="startup-config-files">
|
|
<para>Onde estão os arquivos que configuram a
|
|
inicialização do sistema ?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Do FreeBSD 2.0.5R até o 2.2.1R, o arquivo de
|
|
configurações primário é o
|
|
<filename>/etc/sysconfig</filename>. Todas as
|
|
opções devem ser definidas nesse arquivo ou
|
|
então em outros, como o
|
|
<filename>/etc/rc</filename> (veja o manual para o
|
|
&man.rc.8;) e o <filename>/etc/netstart</filename></para>
|
|
|
|
<para>Dê uma olhada no
|
|
<filename>/etc/sysconfig</filename> e altere as
|
|
variáveis de acordo com o que você quer
|
|
configurar no seu sistema. O arquivo é repleto de
|
|
comentários que auxiliam a correta
|
|
definição dos valores a serem
|
|
definidos.</para>
|
|
|
|
<para>A partir do 2.2.1 até o 3.0, o
|
|
<filename>/etc/sysconfig</filename> foi renomeado para
|
|
&man.rc.conf.5;, que é auto-descritivo, e cuja
|
|
sintaxe foi melhorada no processo de
|
|
substituição. O
|
|
<filename>/etc/netstart</filename> agora se chama
|
|
<filename>/etc/rc.network</filename>, de forma que todos
|
|
os arquivos possam ser copiados com um simples comando
|
|
como um <command>cp /usr/src/etc/rc* /etc</command></para>
|
|
|
|
<para>E depois, a partir do FreeBSD 3.1, o
|
|
<filename>/etc/rc.conf</filename> foi alterado para o
|
|
<filename>/etc/defaults/rc.conf</filename>.
|
|
<emphasis>Não edite esse arquivo!</emphasis> Ao
|
|
invés disso, para todas as entradas que você
|
|
queira alterar no
|
|
<filename>/etc/defaults/rc.conf</filename>, basta apenas
|
|
copiar a linha relativa à essa entrada para o
|
|
<filename>/etc/rc.conf</filename> e depois modificar seu
|
|
valor.</para>
|
|
|
|
<para>Por exemplo, caso deseje iniciar o named, o servidor
|
|
DNS disponível no FreeBSD, a partir do FreeBSD 3.1
|
|
basta fazer isso:</para>
|
|
|
|
<screen>&prompt.root; <userinput>echo named_enable="YES" >> /etc/rc.conf</userinput></screen>
|
|
|
|
<para>Para iniciar serviços locais no FreeBSD 3.1 e
|
|
posteriores, basta colocar os scripts shell de
|
|
inicialização desses serviços no
|
|
diretório <filename>/usr/local/etc/rc.d</filename>.
|
|
Tais shell scripts devem ser executáveis e
|
|
terminarem com a extensão .sh. No FreeBSD 3.0 ou
|
|
anteriores, o arquivo <filename>/etc/rc.local</filename>
|
|
era a única opção para iniciar
|
|
serviços/processos locais automaticamente.</para>
|
|
|
|
<para>O arquivo <filename>/etc/rc.serial</filename> é
|
|
usado para a inicialização de portas seriais
|
|
(por exemplo, para definir as características das
|
|
portas, e assim por diante).</para>
|
|
|
|
<para>O arquivo <filename>/etc/rc.i386</filename> é
|
|
usado para configurações específicas
|
|
de sistemas Intel e compatíveis, como por exemplo,
|
|
emulação iBCS2 ou definições
|
|
do sistema de console dos PC.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="adding-users">
|
|
<para>Como posso adicionar um usuário de forma
|
|
simples?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Use o comando &man.adduser.8;. Caso prefira uma forma
|
|
mais complexa (e mais completa), use o comando
|
|
&man.pw.8;.</para>
|
|
|
|
<para>Para remover o usuário do sistema, use o
|
|
comando &man.rmuser.8;. Mais uma vez, o &man.pw.8;
|
|
também funciona muito bem nesse caso.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="root-not-found-cron-errors">
|
|
<para>Depois de editar o crontab, mensagens como
|
|
<errorname>root: not found</errorname> ficam aparecendo
|
|
sempre. Por que?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Normalmente esse é um problema causado ao se
|
|
editar o crontab do sistema
|
|
(<filename>/etc/crontab</filename>) e depois usar o
|
|
&man.crontab.1; para instala-lo:</para>
|
|
|
|
<screen>&prompt.root; <userinput>crontab /etc/crontab</userinput></screen>
|
|
|
|
<para>Essa não é a forma correta de fazer as
|
|
coisas. O crontab do sistema tem um formato distinto do
|
|
crontab dos usuários, o qual o &man.crontab.1;
|
|
atualiza (o manual do &man.crontab.5; explica tais
|
|
diferenças de forma mais detalhada).</para>
|
|
|
|
<para>Caso você tenha cometido esse engano, o novo
|
|
crontab é uma simples cópia do
|
|
<filename>/etc/crontab</filename>, ou seja, com um formato
|
|
errado. Apague-o com o comando:</para>
|
|
|
|
<screen>&prompt.root; <userinput>crontab -r</userinput></screen>
|
|
|
|
<para>Da próxima vez que editar o
|
|
<filename>/etc/crontab</filename>, nenhuma
|
|
ação precisa ser tomada para avisar o
|
|
&man.cron.8; das alterações. Ele vai
|
|
perceber as mudanças automaticamente.</para>
|
|
|
|
<para>Caso queira executar alguma tarefa diária,
|
|
semanal ou mensal, é mais indicado adicionar alguns
|
|
scripts de shell sob o
|
|
<filename>/usr/local/etc/periodic</filename> e deixar o
|
|
programa &man.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.</para>
|
|
|
|
<para>A única razão para esse erro é
|
|
que a tabela de cron do sistema tem um campo a mais, que
|
|
especifica o usuário que deve executar o comando.
|
|
No crontab do sistema padrão do FreeBSD, esse
|
|
usuário é o <systemitem class="username">root</systemitem>, em
|
|
todas as entradas. Quando essa crontab é usada
|
|
como a tabela de cron do <systemitem class="username">root</systemitem> (que
|
|
é diferente da tabela de cron do sistema), o
|
|
&man.cron.8; assume que a string <systemitem class="username">root</systemitem>
|
|
fosse um primeiro comando, mas esse comando não
|
|
existe, por isso ocorre o erro.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="su-wheel-group">
|
|
<para>Porque o erro <errorname>you are not in the correct
|
|
group to su root</errorname> ocorre, quando eu tento
|
|
virar <systemitem class="username">root</systemitem> com o su ?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Essa é uma característica de
|
|
segurança do FreeBSD. Para se tornar
|
|
<systemitem class="username">root</systemitem> com o su (ou qualquer outro
|
|
usuário com privilégios de super
|
|
usuário), é preciso fazer parte do grupo
|
|
<systemitem class="groupname">wheel</systemitem>. Sem essa
|
|
característica, qualquer usuário com uma
|
|
conta válida no sistema que soubesse a senha de
|
|
<systemitem class="username">root</systemitem> poderia obter privilégios
|
|
de super usuário. Por causa do comportamento
|
|
atual, essa afirmação não é
|
|
verdadeira, uma vez que o su não vai nem permitir
|
|
que o usuário dê a senha de
|
|
<systemitem class="username">root</systemitem>, caso ele não esteja no
|
|
grupo <systemitem class="groupname">wheel</systemitem>.</para>
|
|
|
|
<para>Para permitir que algum usuário se torne
|
|
<systemitem class="username">root</systemitem>, basta que ele faça parte
|
|
do grupo <systemitem class="groupname">wheel</systemitem>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="rcconf-readonly">
|
|
<para>Cometi um erro no <filename>rc.conf</filename>, ou em
|
|
algum outro arquivo de inicialização, e
|
|
agora não posso corrigir essa
|
|
alteração porque o sistema de arquivos
|
|
é apenas-leitura. O que devo fazer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Nessa situação, o comportamento esperado
|
|
é que o sistema entre em modo monousuário e
|
|
peça o caminho completo para o seu interpretador de
|
|
comandos (sua shell). Basta confirmar a shell
|
|
padrão, que ele oferece, com um simples
|
|
<literal>ENTER</literal>, e depois executar um
|
|
<command>mount /</command> para remontar o sistema de
|
|
arquivos raiz ( / ) em modo leitura/escrita (rw).
|
|
Também pode ser necessário executar um
|
|
<command>mount -a -t ufs</command> para montar o sistema
|
|
de arquivos onde o seu editor de texto preferido vai estar
|
|
disponível. Caso seu editor esteja em um sistema
|
|
de arquivos da rede, será necessário
|
|
configurar a rede manualmente, ou usar um editor
|
|
disponível localmente, como o &man.ed.1;.</para>
|
|
|
|
<para>Caso queira usar um editor de tela inteira como o
|
|
&man.vi.1; ou &man.emacs.1;, será necessário
|
|
definir a variável de ambiente TERM como do tipo
|
|
cons25, bastando um simples export TERM=cons25, de forma
|
|
que tais editores possam carregar as
|
|
informações corretas da base de dados do
|
|
&man.termcap.5;.</para>
|
|
|
|
<para>Depois disso, o <filename>/etc/rc.conf</filename> pode
|
|
ser editado normalmente, e a sintaxe problemática,
|
|
corrigida. A mensagem de erro apresentada imediatamente
|
|
após o carregamento do
|
|
<foreignphrase>kernel</foreignphrase> indica o
|
|
número da linha e o arquivo onde o erro
|
|
aconteceu.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="printer-setup">
|
|
<para>Porque estou tendo problemas ao configurar minha
|
|
impressora?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por gentileza, dê uma olhada nas páginas
|
|
sobre impressão do &a.ptbr.p.handbook;. O
|
|
documento deve responder a maioria de suas dúvidas.
|
|
Veja a entrada sobre <link xlink:href="../handbook/printing.html">Impressão no
|
|
&a.ptbr.p.handbook;</link>.</para>
|
|
|
|
<para>Algumas impressoras precisam de um driver local,
|
|
baseado em estações, para prover qualquer
|
|
tipo de impressão. Essas impressoras são
|
|
chamadas de <quote>WinPrinters</quote> e não
|
|
são suportadas nativamente pelo FreeBSD. Se sua
|
|
impressora não funciona sob DOS ou com Windows NT
|
|
4.0, provavelmente ela é uma WinPrinter. A
|
|
única esperança de se obter uma impressora
|
|
desse tipo funcionando, é verificar se o
|
|
<literal>port</literal> <package>print/pnm2ppa</package> tem suporte para
|
|
ela.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="keyboard-mappings">
|
|
<para>Como posso corrigir o mapeamento de teclados do meu
|
|
sistema?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por gentileza, refira-se à seção
|
|
usando <link xlink:href="../handbook/using-localization.html">localização
|
|
do &a.ptbr.p.handbook;</link>, mais precisamente na
|
|
parte sobre a <link xlink:href="../handbook/using-localization.html#SETTING-CONSOLE">configuração
|
|
do console</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="pnp-resources">
|
|
<para>O que causa mensagens como: <errorname>unknown:
|
|
<PNP0303> can't assign resources</errorname> na
|
|
inicialização do sistema?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O trecho a seguir é citação de
|
|
uma mensagem enviada na lista freebsd-current.</para>
|
|
|
|
<blockquote>
|
|
<attribution>&a.wollman;, 24 Abril 2001</attribution>
|
|
|
|
<para>A mensagem <quote>can't assign resources</quote>
|
|
indica que os equipamentos em questão são
|
|
do tipo ISA, e que não existem entradas indicando
|
|
drivers não-PnP compiladas no
|
|
<foreignphrase>kernel</foreignphrase>. Esses
|
|
equipamentos podem ser controladoras de teclados,
|
|
controladora de interrupção
|
|
programável e várias outras peças
|
|
da infra-estrutura padrão do sistema. Os
|
|
recursos não podem ser atribuídos por
|
|
já existirem drivers usando tais
|
|
endereços.</para>
|
|
</blockquote>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="user-quotas">
|
|
<para>Porque eu não consigo fazer as quotas de
|
|
usuários funcionarem de forma correta?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Não habilite quotas na
|
|
<filename>/</filename>,</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Coloque o arquivo de quotas indicando o sistema de
|
|
arquivos onde se deseja estabelecer as quotas, por
|
|
exemplo:</para>
|
|
|
|
<informaltable frame="none">
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Sistemas de arquivos</entry>
|
|
|
|
<entry>Arquivos de quotas</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry><filename>/usr</filename></entry>
|
|
|
|
<entry><filename>/usr/admin/quotas</filename></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry><filename>/home</filename></entry>
|
|
|
|
<entry><filename>/home/admin/quotas</filename></entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>…</entry>
|
|
|
|
<entry>…</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</listitem>
|
|
</orderedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="sysv-ipc">
|
|
<para>O FreeBSD suporta as primitivas de IPC do System
|
|
V?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim, o FreeBSD suporta IPC ao estilo do System V.
|
|
Esse suporte inclui compartilhamento de memória,
|
|
mensagens e semáforos. É necessário
|
|
adicionar as seguintes linhas no arquivo de
|
|
configurações do seu
|
|
<foreignphrase>kernel</foreignphrase>, para ativar o
|
|
suporte:</para>
|
|
|
|
<programlisting>options SYSVSHM # habilita memória compartilhada
|
|
options SYSVSEM # habilita semáforos
|
|
options SYSVMSG # habilita mensagens</programlisting>
|
|
|
|
<note>
|
|
<para>No FreeBSD 3.2 e posteriores, tais
|
|
opções já fazem parte do
|
|
<foreignphrase>kernel</foreignphrase>
|
|
<emphasis>GENERIC</emphasis>, o que significa que tal
|
|
suporte já deve estar compilado no seu
|
|
sistema.</para>
|
|
</note>
|
|
|
|
<para>Recompile e instale o novo
|
|
<foreignphrase>kernel</foreignphrase>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="uucpmail">
|
|
<para>Como posso usar o sendmail para entregar mensagens com
|
|
UUCP?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A configuração do sendmail
|
|
disponível por padrão no FreeBSD é
|
|
direcionada para sites que estejam conectados à
|
|
Internet. Servidores que pretendem entregar suas
|
|
mensagens via UUCP devem instalar um novo arquivo de
|
|
configurações do sendmail.</para>
|
|
|
|
<para>Alterar o <filename>/etc/mail/sendmail.cf</filename>
|
|
manualmente é considerado tarefa para os mais
|
|
puristas. A versão 8 do sendmail tem uma nova
|
|
abordagem de arquivos de configuração por
|
|
meio de pré processamento com o &man.m4.1;, onde os
|
|
modelos de configuração são
|
|
manipulados em um nível mais alto de
|
|
abstração. Use os arquivos de
|
|
configuração disponíveis sob
|
|
/usr/src/usr.sbin/sendmail/cf.</para>
|
|
|
|
<para>Caso seu sistema não tenha sido instalado com
|
|
os fontes, os arquivos de configuração do
|
|
sendmail foram divididos em pacotes separados. Assumindo
|
|
que você tenha o CDROM do FreeBSD montado,
|
|
faça o seguinte:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /cdrom/src</userinput>
|
|
&prompt.root; <userinput>cat scontrib.?? | tar xzf - -C /usr/src contrib/sendmail</userinput></screen>
|
|
|
|
<para>Não se desespere, são apenas algumas
|
|
centenas de Kilobytes em tamanho. O arquivo README no
|
|
diretório cf serve de introdução
|
|
básica ao uso do m4.</para>
|
|
|
|
<para>Para entregar mensagens via UUCP, o melhor conselho
|
|
é usar o <literal>mailtertable</literal>. Trata-se
|
|
de uma base de dados que o sendmail usa para basear suas
|
|
decisões de roteamento de mensagens.</para>
|
|
|
|
<para>Primeiro, é necessário criar seu arquivo
|
|
<filename>.mc</filename>. O diretório
|
|
<filename>/usr/src/usr.sbin/sendmail/cf/cf</filename>
|
|
é o diretório home para esse tipo de
|
|
arquivo. Dê uma olhada, já existem alguns
|
|
exemplos disponíveis por lá. Se assumirmos
|
|
que você chamou o arquivo de
|
|
<filename>foo.mc</filename>, para converte-lo para um
|
|
arquivo <filename>sendmail.cf</filename> válido
|
|
basta:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail/cf/cf</userinput>
|
|
&prompt.root; <userinput>make foo.cf</userinput>
|
|
&prompt.root; <userinput>cp foo.cf /etc/mail/sendmail.cf</userinput></screen>
|
|
|
|
<para>Um arquivo <filename>.mc</filename> típico, se
|
|
parece com algo mais ou menos assim:</para>
|
|
|
|
<programlisting>VERSIONID(`<replaceable>Número da sua versão</replaceable>')
|
|
OSTYPE(bsd4.4)
|
|
|
|
FEATURE(accept_unresolvable_domains)
|
|
FEATURE(nocanonify)
|
|
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
|
|
|
|
define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>)
|
|
define(`UUCP_MAX_SIZE', 200000)
|
|
define(`confDONT_PROBE_INTERFACES')
|
|
|
|
MAILER(local)
|
|
MAILER(smtp)
|
|
MAILER(uucp)
|
|
|
|
Cw <replaceable>your.alias.host.name</replaceable>
|
|
Cw <replaceable>youruucpnodename.UUCP</replaceable></programlisting>
|
|
|
|
<para>As linhas contendo as entradas
|
|
<literal>accept_unresolvable_domains</literal>,
|
|
<literal>nocanonify</literal>, e
|
|
<literal>confDONT_PROBE_INTERFACES</literal> previnem o
|
|
uso do DNS durante a entrega das mensagens. A
|
|
cláusula <literal>UUCP_RELAY</literal> é
|
|
necessária por razões bizarras, nem pergunte
|
|
quais. Apenas coloque o nome de uma estação
|
|
que possa manipular endereços com
|
|
pseudo-domínio .UUCP; normalmente o
|
|
endereço de relay de e-mail do seu Provedor de
|
|
Serviço Internet deve servir.</para>
|
|
|
|
<para>Depois disso, é necessário usar o
|
|
arquivo <filename>/etc/mail/mailertable</filename>. Caso
|
|
exista apenas um link para fora, por onde todos os e-mails
|
|
são roteados, as seguintes definições
|
|
são o bastante:</para>
|
|
|
|
<programlisting>#
|
|
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
|
|
. uucp-dom:<replaceable>your.uucp.relay</replaceable></programlisting>
|
|
|
|
<para>Um exemplo mais complexo, se pareceria com:</para>
|
|
|
|
<programlisting>#
|
|
# 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:</programlisting>
|
|
|
|
<para>Como pode-se perceber, se trata de um arquivo usado na
|
|
vida real. As primeiras três linhas tratam
|
|
situações especiais onde as mensagens
|
|
endereçadas aquele domínio não devem
|
|
ser roteadas pela saída padrão, mas ao
|
|
invés 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 domínios onde os mails possam
|
|
ser entregues via SMTP. Finalmente, os vizinhos UUCP
|
|
são mencionados na notação do
|
|
pseudo-domínio .UUCP, que permite um
|
|
<literal>uucp-neighbor!recipient</literal>
|
|
sobrescrever as regras padrão. A última
|
|
linha é sempre um ponto, que indica que todos os
|
|
e-mails que não 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
|
|
estações antecedendo a entrada
|
|
<literal>uucp-dom:</literal> devem ser nomes de vizinhos
|
|
UUCP válidos, que podem ser checados com o comando
|
|
<literal>uuname</literal>.</para>
|
|
|
|
<para>Para lembrar que esse arquivo precisa ser convertido
|
|
em base de dados do tipo DBM, o comando necessário
|
|
para tomar essa ação está comentado
|
|
no início do arquivo mailertable. Esse comando
|
|
deve ser executado sempre que o mailertable for
|
|
alterado.</para>
|
|
|
|
<para>Dica final: caso tenha dúvidas se uma rota de
|
|
e-mail em particular irá funcionar, lembre-se que a
|
|
opção <option>-bt</option> do sendmail
|
|
permite que ele seja iniciado em modo de testes de
|
|
endereço; simplesmente digite
|
|
<literal>3,0</literal> seguido do endereço que
|
|
você quer testar o roteamento de mensagens. A
|
|
última linha irá indicar o agente de
|
|
transferência interno que foi usado, a
|
|
estação de destino com a qual esse agente de
|
|
entrega irá se comunicar, e o seu endereço.
|
|
Para sair desse modo, digite Control-D.</para>
|
|
|
|
<screen>&prompt.user; <userinput>sendmail -bt</userinput>
|
|
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
|
|
Enter <ruleset> <address>
|
|
<prompt>></prompt> <userinput>3,0 foo@example.com</userinput>
|
|
canonify input: foo @ example . com
|
|
...
|
|
parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceable> $: foo < @ example . com . >
|
|
<prompt>></prompt> <userinput>^D</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ispmail">
|
|
<para>Como eu configuro e-mail em uma conexão dialup
|
|
com a rede?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se a sua conexão discada lhe atribui um
|
|
endereço IP estático, não é
|
|
necessário configurar nenhuma opção
|
|
extra. Ajuste o nome da sua estação para o
|
|
nome que a identifica na Internet, e o sendmail
|
|
fará o resto.</para>
|
|
|
|
<para>Mas se a conexão PPP lhe atribui
|
|
endereços dinâmicos, provavelmente o seu
|
|
Provedor de Serviço Internet oferece uma conta de
|
|
correio eletrônico em seus servidores. Vamos
|
|
assumir que o nome do domínio do seu provedor
|
|
é <systemitem class="fqdomainname">example.net</systemitem>, e
|
|
que o nome do seu usuário é
|
|
<systemitem class="username">user</systemitem>. Vamos assumir também
|
|
que o nome da sua estação seja <systemitem class="fqdomainname">bsd.home</systemitem> e que o Provedor de
|
|
Serviço Internet defina que o endereço
|
|
<systemitem class="fqdomainname">relay.example.net</systemitem> deva ser
|
|
usado para relay de mensagens eletrônicas.</para>
|
|
|
|
<para>Para acessar as mensagens da sua caixa de correio,
|
|
é necessário usar um agente de busca. O
|
|
<application>Fetchmail</application> é uma boa
|
|
escolha, já que ele suporta vários
|
|
protocolos distintos. Normalmente o provedor em
|
|
questão oferece serviço de POP3. Caso sua
|
|
conexão PPP seja estabelecida à nível
|
|
de usuário (user-PPP), para acessar suas mensagens
|
|
automaticamente ao estabelecer-se uma conexão com a
|
|
rede, basta adicionar a seguinte entrada no arquivo
|
|
<filename>/etc/ppp/ppp/linkup</filename>:</para>
|
|
|
|
<programlisting>MYADDR:
|
|
!bg su user -c fetchmail</programlisting>
|
|
|
|
<para>Caso esteja usando o
|
|
<application>sendmail</application> (como foi descrito
|
|
anteriormente) para entregar suas mensagens para
|
|
endereços não-locais, insira o
|
|
comando:</para>
|
|
|
|
<programlisting> !bg su user -c "sendmail -q"</programlisting>
|
|
|
|
<para>depois da entrada apresentada anteriormente. Esse
|
|
comando irá forçar o
|
|
<application>sendmail</application> a processar sua fila
|
|
de e-mail tão logo uma conexão com a
|
|
rede seja estabelecida.</para>
|
|
|
|
<para>Assumindo que exista uma conta para o
|
|
<systemitem class="username">user</systemitem> na máquina <systemitem class="fqdomainname">bsd.home</systemitem>. No diretório home
|
|
do <systemitem class="username">user</systemitem> na estação
|
|
<systemitem class="fqdomainname">bsd.home</systemitem>, crie um arquivo
|
|
<filename>.fetchmailrc</filename> com o seguinte
|
|
conteúdo:</para>
|
|
|
|
<programlisting>poll example.net protocol pop3 fetchall pass MySecret</programlisting>
|
|
|
|
<para>Esse arquivo não deve ter permissão de
|
|
leitura para nenhum outro usuário, a não ser
|
|
o <systemitem class="username">user</systemitem> já que ele
|
|
contém a <literal>sua senha</literal>.</para>
|
|
|
|
<para>Para garantir que o cabeçalho
|
|
<literal>from:</literal> esteja sempre correto, é
|
|
necessário indicar ao
|
|
<application>sendmail</application> que o endereço
|
|
<literal>user@example.net</literal> deve ser usado ao
|
|
invés de <literal>user@bsd.home</literal>.
|
|
Também é interessante configurar o
|
|
<application>sendmail</application> para entregar suas
|
|
mensagens via <systemitem class="fqdomainname">relay.example.net</systemitem>, permitindo
|
|
transmissão de mensagens de forma mais
|
|
rápida.</para>
|
|
|
|
<para>O seguinte arquivo <filename>.mc</filename> deve ser o
|
|
bastante:</para>
|
|
|
|
<programlisting>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</programlisting>
|
|
|
|
<para>Por gentileza, refira-se à seção
|
|
anterior para obter detalhes sobre como transformar esse
|
|
arquivo <filename>.mc</filename> em um arquivo
|
|
<filename>sendmail.cf</filename>. Não se
|
|
esqueça também de reiniciar o
|
|
<application>sendmail</application> depois de alterar o
|
|
<filename>sendmail.cf</filename>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="sendmail-alternative">
|
|
<para>Que outros servidores de correio eletrônico
|
|
posso usar no lugar do Sendmail?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O <link xlink:href="http://www.sendmail.org/">Sendmail</link> é
|
|
o programa servidor de correio eletrônico
|
|
padrão no FreeBSD, mas ele pode ser facilmente
|
|
substituído por qualquer outro MTA (por
|
|
instância, um MTA instalado a partir do
|
|
<literal>ports</literal>).</para>
|
|
|
|
<para>Existem vários MTA's que servem de alternativa
|
|
ao Sendmail na Coleção de
|
|
<literal>Ports</literal> do FreeBSD, sendo o <package>mail/exim</package>, <package>mail/postfix</package>, <package>mail/qmail</package>, <package>mail/zmailer</package>, os mais
|
|
populares.</para>
|
|
|
|
<para>A diversidade é sempre uma boa
|
|
indicação, e o fato de ter vários
|
|
servidores de e-mail disponíveis é
|
|
ótimo. Conteúdo, evite perguntas como
|
|
<quote>O Sendmail é melhor que o Qmail?</quote> nas
|
|
listas de discussão. Se você realmente quer
|
|
saber, procure no histórico das listas. As
|
|
vantagens e desvantagens de cada MTA já foram
|
|
discutidas inúmeras vezes.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="forgot-root-pw">
|
|
<para>Esqueci a senha de root! O que eu faço?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Em primeiro lugar, não entre em pânico!
|
|
Reinicie o seu FreeBSD, digite <userinput>boot
|
|
-s</userinput> na tela do Boot: (ou apenas
|
|
<userinput>-s</userinput> para as versões
|
|
anteriores à 3.2 do FreeBSD) para entrar e modo
|
|
monousuário. Quando o sistema perguntar sobre que
|
|
shell usar, aperte ENTER. Você estará em uma
|
|
prompt de comandos; digite <command>mount -u /</command>
|
|
para montar o sistema de arquivos raiz com
|
|
leitura/escrita, e depois <command>mount -a</command> para
|
|
remontar todos os seus sistemas de arquivos. Execute o
|
|
comando <command>passwd root</command> para modificar a
|
|
senha de root do sistema, e depois digite &man.exit.1;
|
|
para continuar a inicialização em modo
|
|
multiusuário.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="CAD-reboot">
|
|
<para>Como posso evitar que a seqüência de teclas
|
|
<keycombo action="simul"><keycap>Control</keycap><keycap>Alt</keycap><keycap>Delete</keycap></keycombo>
|
|
reinicie o sistema?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Caso esteja usando o syscons (o driver padrão
|
|
para o console) em um sistema FreeBSD 2.2.7 ou posterior,
|
|
construa e instale um novo
|
|
<foreignphrase>kernel</foreignphrase> com a
|
|
opção:</para>
|
|
|
|
<programlisting>options SC_DISABLE_REBOOT</programlisting>
|
|
|
|
<para>Caso use o driver de console PCVT em um FreeBSD 2.2.5
|
|
ou posterior, use a seguinte linha:</para>
|
|
|
|
<programlisting>options PCVT_CTRL_ALT_DEL</programlisting>
|
|
|
|
<para>Em versões anteriores às citadas, edite
|
|
o mapeamento do seu teclado, usado para o console, e
|
|
substitua a palavra <literal>boot</literal> por
|
|
<literal>nop</literal>. O mapeamento de teclado
|
|
padrão está em
|
|
<filename>/usr/share/syscons/keymaps/us.iso.kbd</filename>.
|
|
O <filename>/etc/rc.conf</filename> deve ser
|
|
instruído de forma que esse arquivo seja lido. Se
|
|
você estiver usando um outro mapa específico
|
|
para o seu país, edite esse mapa ao invés do
|
|
padrão.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="dos-to-unix-txt">
|
|
<para>Como posso converter arquivos de texto do DOS para o
|
|
formato do Unix?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Use esse comando do perl:</para>
|
|
|
|
<screen>&prompt.user; <userinput>perl -i.bak -npe 's/\r\n/\n/g' file... </userinput></screen>
|
|
|
|
<para>onde <literal>file</literal> indica o arquivo ou
|
|
arquivos a serem processados. As
|
|
modificações são feitas no
|
|
próprio arquivo e o original é salvo com a
|
|
extensão .bak.</para>
|
|
|
|
<para>O comando &man.tr.1; também pode ser
|
|
usado:</para>
|
|
|
|
<screen>&prompt.user; <userinput>tr -d '\r' < dos-text-file > unix-file</userinput></screen>
|
|
|
|
<para>Onde <replaceable>dos-text-file</replaceable> é
|
|
o arquivo com o texto em formato DOS, enquanto o
|
|
<replaceable>unix-file</replaceable> armazenará a
|
|
saída convertida. Usar o &man.tr.1; é um
|
|
pouco mais rápido do que usar o perl.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="kill-by-name">
|
|
<para>Como eu mato processos pelo seu nome?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Use o comando &man.killall.1;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="root-acl">
|
|
<para>Por que motivos o su está me atazanando pelo
|
|
fato de não pertencer à ACL do
|
|
<systemitem class="username">root</systemitem>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esse erro é proveniente do sistema de
|
|
autenticação da distrição do
|
|
Kerberos. O problema não é uma
|
|
perturbação fatal. Basta executar o su com
|
|
a opção -K ou então desinstalar o
|
|
Kerberos, como será descrito na próxima
|
|
questão.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="uninstall-kerberos">
|
|
<para>Como eu desinstalo o Kerberos?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Para remover o Kerberos do sistema, reinstale a
|
|
distribuição <literal>bin</literal> da
|
|
versão que está sendo usada. Caso tenha o
|
|
CDROM do FreeBSD, monte-o (vamos assumir, em /cdrom) e
|
|
execute os comandos:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /cdrom/bin</userinput>
|
|
&prompt.root; <userinput>./install.sh</userinput></screen>
|
|
|
|
<para>Ou então, apague todas as opções
|
|
<quote>MAKE_KERBEROS</quote> do
|
|
<filename>/etc/make.conf</filename> e recompile todo o
|
|
sistema com um build world.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="add-pty">
|
|
<para>Como posso adicionar pseudo-terminais ao
|
|
sistema?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Caso tenha inúmeras conexões telnet,
|
|
ssh, X, ou tela de usuário, é
|
|
provável que você atingirá o limite
|
|
dos seus pseudo-terminais. Aqui estão as
|
|
instruções de como adicionar mais
|
|
pseudo-terminais:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Construa e instale um novo
|
|
<foreignphrase>kernel</foreignphrase> com a
|
|
linha</para>
|
|
<programlisting>pseudo-device pty 256</programlisting>
|
|
<para>em seu arquivo de
|
|
configurações.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Execute os comandos</para>
|
|
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
|
&prompt.root; <userinput>sh MAKEDEV pty{1,2,3,4,5,6,7}</userinput></screen>
|
|
<para>de forma a criar 256 novos devices para os novos
|
|
terminais.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Edite o <filename>/etc/ttys</filename> e adicione
|
|
uma linha para cada um dos 256 terminais. Tais
|
|
entradas devem ter o formato correspondente às
|
|
entradas já existentes, por exemplo:</para>
|
|
<programlisting>ttyqc none network</programlisting>
|
|
<para>A ordem de definição das letras
|
|
é expressa como
|
|
<literal>tty[pqrsPQRS][0-9a-v]</literal>, ao
|
|
ilustrarmos em expressões regulares.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Reinicie o sistema com o novo
|
|
<foreignphrase>kernel</foreignphrase>, e
|
|
pronto.</para>
|
|
</step>
|
|
</procedure>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="create-snd0">
|
|
<para>Por que motivo não consigo criar a device
|
|
snd0?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Simples, porque não existe a device
|
|
<filename>snd</filename>. Esse nome é usado
|
|
para identificar o conjunto de devices que compõem
|
|
os drivers de som do FreeBSD, como as devices
|
|
<filename>mixer</filename>,
|
|
<filename>sequencer</filename>, e
|
|
<filename>dsp</filename>.</para>
|
|
|
|
<para>Para criar tais devices, basta executar:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
|
&prompt.root; <userinput>sh MAKEDEV snd0</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="reread-rc">
|
|
<para>Como posso reler o <filename>/etc/rc.conf</filename> e
|
|
reiniciar o <filename>/etc/rc</filename> sem rebootar o
|
|
sistema?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Vá para o modo monousuário e volte para
|
|
o modo multiusuário.</para>
|
|
|
|
<para>É simples; no console, faça:</para>
|
|
|
|
<screen>&prompt.root; <userinput>shutdown now</userinput>
|
|
(Note: without -r or -h)
|
|
|
|
&prompt.root; <userinput>return</userinput>
|
|
&prompt.root; <userinput>exit</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="sandbox">
|
|
<para>O que é uma sandbox?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para><quote>Sandbox</quote> é um jargão usado
|
|
em discussões pertinentes à segurança
|
|
de sistemas. Pode significar duas coisas:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Um processo enquadrado em um conjunto de paredes
|
|
virtuais que são criadas para prevenir que
|
|
algum usuário, ao explorar alguma
|
|
inconformidade do processo, possa também
|
|
explorar e obter privilégios no sistema
|
|
operacional como um todo.</para>
|
|
|
|
<para>O processo deve conseguir <quote>rodar</quote>
|
|
dentro dessas paredes, ou seja, nada que o processo
|
|
possa fazer ao executar seu código, pode ser
|
|
capaz de violar tais paredes. Dessa forma não
|
|
é necessária uma auditoria detalhada do
|
|
código e das ações do processo
|
|
para que se possa realizar algumas
|
|
afirmações pertinentes à
|
|
segurança de tal sistema.</para>
|
|
|
|
<para>Tais paredes podem ser a
|
|
identificação de um usuário
|
|
(userid), por exemplo. Essa é a
|
|
definição de sandbox usada nas
|
|
páginas de manuais do named e de
|
|
security.</para>
|
|
|
|
<para>Observe o serviço <literal>ntalk</literal>,
|
|
como exemplo (veja o /etc/inetd.conf). Esse
|
|
serviço costumava ser executado com userid do
|
|
<systemitem class="username">root</systemitem>. Hoje em dia o processo
|
|
roda com o userid do <systemitem class="username">tty</systemitem>. O
|
|
usuário <systemitem class="username">tty</systemitem>, portanto,
|
|
é uma sandbox criada para dificultar qualquer
|
|
atividade de um usuário malicioso que por
|
|
ventura consiga acesso ao sistema por meio do ntalk.
|
|
Com essa sandbox, uma violação de
|
|
segurança bem sucedida via
|
|
<literal>ntalk</literal> dificultaria qualquer
|
|
ação tomada além das
|
|
possíveis com o userid do
|
|
<systemitem class="username">tty</systemitem>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Um processo criado dentro de um ambiente de
|
|
simulação. Essa é uma
|
|
situação mais complexa. Basicamente
|
|
implica que qualquer pessoa má intencionada que
|
|
consiga explorar tal processo, acreditará que
|
|
pode obter acesso à todo o ambiente, nas na
|
|
verdade, estará apenas acessando um sistema de
|
|
simulação, não alterando nenhum
|
|
dado real.</para>
|
|
|
|
<para>A forma mais comum de conseguir criar um ambiente
|
|
simulado como esse, é criando um
|
|
subdiretório à partir de onde o processo
|
|
consiga acessar (uma cópia de) qualquer arquivo
|
|
do sistema que por ventura ele precise, e executar
|
|
esse processo simulando um diretório raiz (ou
|
|
seja, para o processo, o <filename>/</filename>
|
|
será o subdiretório determinado, e
|
|
não o verdadeiro <filename>/</filename> do
|
|
sistema).</para>
|
|
|
|
<para>Outra situação comum é montar
|
|
um sistema de arquivos base com apenas
|
|
permissão de leitura, e depois criar um outro
|
|
sistema de arquivos em uma camada superior, com acesso
|
|
de escrita/leitura, dando ao processo a
|
|
impressão de poder ler/escrever em todo o
|
|
sistema de arquivos. Apenas o processo em
|
|
questão percebe esse ambiente, enquanto os
|
|
outros não são necessariamente
|
|
ludibriados.</para>
|
|
|
|
<para>A intenção é que tais sandbox
|
|
sejam tão transparentes que qualquer
|
|
usuário (ou hacker) não consiga perceber
|
|
que está dentro de uma.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Os sistemas Unix costumam implementar esses dois
|
|
principais tipos de sandbox, um em nível de
|
|
processo e o outro, muito comum, em nível de
|
|
userid.</para>
|
|
|
|
<para>Cada processo Unix é completamente separado dos
|
|
outros, por meio de algum tipo de parede de
|
|
segurança. Um processo nunca modifica o
|
|
espaço de endereçamento de outro, diferente
|
|
do ambiente Windows onde cada processo pode facilmente
|
|
sobrescrever endereços de outros processos, fazendo
|
|
o sistema travar.</para>
|
|
|
|
<para>Cada processo Unix é de propriedade de um
|
|
userid em particular. Caso o userid não seja do
|
|
<systemitem class="username">root</systemitem>, ele serve de parede de
|
|
segurança em relação aos processos
|
|
pertencentes a outros usuários. Os userid
|
|
também são usados para proteger dados
|
|
armazenados em disco.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="securelevel">
|
|
<para>O que é <literal>securelevel</literal>
|
|
(nível de segurança do sistema)?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para><literal>securelevel</literal> (nível de
|
|
segurança do sistema) é um mecanismo de
|
|
segurança implementado no
|
|
<foreignphrase>kernel</foreignphrase> do FreeBSD.
|
|
Basicamente, quando o <literal>securelevel</literal>
|
|
é positivo, o <foreignphrase>kernel</foreignphrase>
|
|
restringe algumas tarefas do sistema; nem mesmo o
|
|
superusuário (por exemplo, o
|
|
<systemitem class="username">root</systemitem>) tem permissão de
|
|
realizar tais tarefas. Na data que este
|
|
<literal>FAQ</literal> foi escrito, o mecanismo de
|
|
<literal>securelevel</literal> do FreeBSD era capaz de,
|
|
entre outras coisas, limitar as habilidades de:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>retirar algumas flags de arquivos, como a
|
|
<literal>schg</literal> (flag de imutabilidade do
|
|
sistema),</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>escrever na memória do
|
|
<foreignphrase>kernel</foreignphrase> por meio do
|
|
<filename>/dev/mem</filename> e
|
|
<filename>/dev/kmem</filename>,</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>carregar módulos do
|
|
<foreignphrase>kernel</foreignphrase>, e</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>alterar regras de Firewall do
|
|
&man.ipfirewall.4;.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Para verificar o estado do
|
|
<literal>securelevel</literal> (nível de
|
|
segurança do sistema) em um sistema em funcionando,
|
|
simplesmente execute o seguinte comando:</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
|
|
|
|
<para>A saída apresentará o nome da
|
|
variável do &man.sysctl.8; (nesse caso,
|
|
<varname>kern.securelevel</varname>) e um número.
|
|
Esse último será o valor atual do
|
|
nível de segurança do
|
|
<foreignphrase>kernel</foreignphrase> do FreeBSD. Caso
|
|
esse valor seja positivo (maior que 0), ao menos algumas
|
|
das características dos níveis de
|
|
segurança estarão habilitadas.</para>
|
|
|
|
<para>Os níveis de segurança não podem
|
|
ser diminuídos em um sistema que está
|
|
funcionando se isso fosse possível o
|
|
<literal>securelevel</literal> (nível de
|
|
segurança do sistema) perderia sua funcionalidade.
|
|
Caso seja necessário executar alguma tarefa que
|
|
necessite que o nível de segurança seja
|
|
não-positivo (por exemplo, um
|
|
<buildtarget>installworld</buildtarget> ou alterar a data do
|
|
sistema) será preciso alterar as
|
|
definições de <literal>securelevel</literal>
|
|
(nível de segurança do sistema) no
|
|
<filename>/etc/rc.conf</filename> (mais precisamente, as
|
|
variáveis <varname>kern_securelevel</varname> e
|
|
<varname>kern_securelevel_enable</varname>) e reiniciar o
|
|
sistema.</para>
|
|
|
|
<para>Para obter mais informações quanto aos
|
|
níveis de segurança e sobre as
|
|
funções específicas de cada
|
|
nível, por gentileza, consulte a página de
|
|
manual do &man.init.8;.</para>
|
|
|
|
<warning>
|
|
<para>O <literal>securelevel</literal> (nível de
|
|
segurança do sistema) não é uma
|
|
bala de prata; ele tem várias deficiências
|
|
óbvias. A mais frequênte é provocar
|
|
uma falsa sensação de
|
|
segurança.</para>
|
|
|
|
<para>Um dos maiores problemas, e portanto que deve ser
|
|
bem observada pelo administrador do sistema, é
|
|
que, para que o <literal>securelevel</literal>
|
|
(nível de segurança do sistema) se torne
|
|
efetivo, todos os arquivos usados pelo processo de
|
|
inicialização até que os
|
|
níveis de segurança se tornem positivos,
|
|
devem estar seguros. Se um usuário que deseja
|
|
atacar o sistema, conseguir que seu código seja
|
|
executado antes que o nível de segurança
|
|
seja definido (o que ocorre pouco depois do processo de
|
|
inicialização, visto que algumas
|
|
funções que o sistema precisa realizar,
|
|
não podem ser iniciadas com um nível
|
|
elevado de segurança), a proteção
|
|
do <literal>securelevel</literal> (nível de
|
|
segurança do sistema) será invalidada.
|
|
Por outro lado, a tarefa de assegurar que todos os
|
|
arquivos necessários pelo processo de
|
|
inicialização estejam em conformidade,
|
|
não é tecnicamente impossível, mas,
|
|
O processo de manutenção de um ambiente em
|
|
tais condições se tornaria um pesadelo,
|
|
visto que seria necessário baixar o sistema, no
|
|
mínimo para modo monousuário sempre que
|
|
fosse necessário modificar os arquivos de
|
|
configuração do mesmo.</para>
|
|
|
|
<para>Esse e outros pontos são freqüentemente
|
|
discutidos nas listas do FreeBSD, em especial na
|
|
freebsd-security. Por gentileza, queira fazer uma busca
|
|
no histórico da lista, <link xlink:href="../../../../search/index.html">clicando
|
|
aqui</link>, para uma discussão extensa sobre
|
|
o assunto. Algumas pessoas estão
|
|
esperançosas de que o securelevel logo
|
|
será afastado, em favor de um mecanismo de
|
|
segurança mais refinado, mas as coisas ainda
|
|
estão confusas a este respeito.</para>
|
|
|
|
<para>Considere-se advertido.</para>
|
|
</warning>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="release-candidate">
|
|
<para>Tentei atualizar meu sistema para o último
|
|
-STABLE, mas ele se tornou -RC ou -PRERELEASE! O que
|
|
está havendo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A resposta mais curta: É só um nome, RC
|
|
é um acrônimo para <quote>Release
|
|
Candidate</quote>. Significa que uma nova versão
|
|
está eminente. No FreeBSD, -PRERELEASE é
|
|
tipicamente um sinonimo de código congelado antes
|
|
de uma nova versão. (Em algumas versões, o
|
|
título -BETA foi usado sob as mesmas
|
|
circunstâncias em que o -PRERELEASE seria).</para>
|
|
|
|
<para>A resposta longa: O FreeBSD normalmente deriva suas
|
|
versões de duas fontes de origem. As
|
|
versões principais, ponto-zero, como o 3.0-RELEASE
|
|
e o 4.0-RELEASE que são marcadas inicialmente como
|
|
o topo da cadeia de desenvolvimento, normalmente chamados
|
|
de <link linkend="current">-CURRENT</link>. As
|
|
versões menores (como 3.1-RELEASE ou 4.2-RELEASE),
|
|
são criados a partir do
|
|
<foreignphrase>snapshot</foreignphrase> mais recente da
|
|
ramificação ativa marcada como <link linkend="stable">-STABLE</link>. A partir do
|
|
4.3-RELEASE, cada versão conta também com
|
|
sua própria ramificação, que pode ser
|
|
acessada por usuários que queiram apenas um
|
|
nível extremamente conservador de desenvolvimento
|
|
(tipicamente, apenas consultores de
|
|
segurança).</para>
|
|
|
|
<para>Quando uma versão está para ser criada,
|
|
a ramificação de onde ela se derivará
|
|
deve passar por um certo processo. Parte desse processo
|
|
é o congelamento do código. Quando o
|
|
processo de congelamento do código se inicia, o
|
|
nome desta ramificação é alterado
|
|
para indicar que ela está para se tornar uma
|
|
versão. Por exemplo, se a
|
|
ramificação usada chamava-se 4.5-STABLE, ela
|
|
passa a se chamar 4.6-PRERELEASE para indicar que o
|
|
código está congelado, e indicar que testes
|
|
extras, pré versão, estão
|
|
acontecendo. Durante esse período
|
|
alterações pertinentes a
|
|
correções de problemas são
|
|
realizadas. Quando o novo código está
|
|
pronto para ser lançado, ele passa a ser chamado de
|
|
-RC (nesse exemplo, 4.6-RC), indicando que provavelmente a
|
|
nova versão será criada a partir do
|
|
código atual. Nesse estágio, apenas os
|
|
problemas mais sérios são corrigidos.
|
|
Depois que a versão é finalmente
|
|
lançado (4.6-RELEASE nesse exemplo) e a nova
|
|
ramificação com o nome dessa versão
|
|
foi criada, ela passa a se chamar -STABLE; 4.6-STABLE no
|
|
nosso exemplo.</para>
|
|
|
|
<para>Para obter mais informações sobre a
|
|
numeração das versões e sobre as
|
|
várias ramificações CVS, por
|
|
gentileza, refira-se ao artigo sobre a <link xlink:href="../../articles/releng/article.html">Engenharia de
|
|
Releases</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="kernel-chflag-failure">
|
|
<para>Tentei instalar um novo
|
|
<foreignphrase>kernel</foreignphrase>, mas a rotina de
|
|
chflags falhou. O que posso fazer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A resposta curta: provavelmente você está
|
|
com o <literal>securelevel</literal> (nível de
|
|
segurança do sistema) acima do 0. Reinicie o
|
|
sistema em modo mono usuário e instale o
|
|
<foreignphrase>kernel</foreignphrase>.</para>
|
|
|
|
<para>A resposta mais completa: O FreeBSD não permite
|
|
que as flags do sistema sejam alteradas caso o
|
|
<literal>securelevel</literal> (nível de
|
|
segurança do sistema) seja maior que 0. O
|
|
nível atual do <literal>securelevel</literal>
|
|
(nível de segurança do sistema) pode ser
|
|
verificado com o comando:</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
|
|
|
|
<para>O <literal>securelevel</literal> (nível de
|
|
segurança do sistema) não pode ser
|
|
diminuído; é necessário iniciar o
|
|
sistema em modo mono usuário, ou alterar o
|
|
nível de segurança em
|
|
<filename>/etc/rc.conf</filename>, depois reiniciar. Veja
|
|
a página de manual do &man.init.8; para obter
|
|
informações mais detalhadas sobre o
|
|
<literal>securelevel</literal> (nível de
|
|
segurança do sistema), e veja também o
|
|
<filename>/etc/defaults/rc.conf</filename> e a
|
|
página de manual do &man.rc.conf.5; para obter mais
|
|
informações quanto ao rc.conf.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="kernel-securelevel-time">
|
|
<para>Não consigo alterar mais de um segundo na hora
|
|
no meu sistema. O que posso fazer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A resposta curta: provavelmente o sistema está
|
|
com <literal>securelevel</literal> (nível de
|
|
segurança do sistema) acima do 1. Reinicie o
|
|
sistema em modo mono usuário e altere a
|
|
data.</para>
|
|
|
|
<para>A resposta mais completa: O FreeBSD não permite
|
|
que a hora do sistema seja alterada por mais de um segundo
|
|
quando o <literal>securelevel</literal> (nível de
|
|
segurança do sistema) do
|
|
<foreignphrase>kernel</foreignphrase> é maior que
|
|
1. O nível atual do <literal>securelevel</literal>
|
|
(nível de segurança do sistema) pode ser
|
|
verificado com o comando:</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
|
|
|
|
<para>O <literal>securelevel</literal> (nível de
|
|
segurança do sistema) não pode ser
|
|
diminuído; é necessário iniciar o
|
|
sistema em modo mono usuário, ou alterar o
|
|
nível de segurança em
|
|
<filename>/etc/rc.conf</filename>, depois reiniciar. Veja
|
|
a página de manual do &man.init.8; para obter
|
|
informações mais detalhadas sobre o
|
|
<literal>securelevel</literal> (nível de
|
|
segurança do sistema), e veja também o
|
|
<filename>/etc/defaults/rc.conf</filename> e a
|
|
página de manual do &man.rc.conf.5; para obter mais
|
|
informações quanto ao rc.conf.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="statd-mem-leak">
|
|
<para>Por que motivo o <command>rpc.statd</command>
|
|
está usando 256 megabytes de memória?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Não, mão existe nenhuma falha no uso da
|
|
memória, e ele nã é usando 256MB de
|
|
RAM. Ele simplesmente gosta de (ele sempre faz isso)
|
|
mapear uma quantia obscena de memória em seu
|
|
endereçamento, simplesmente por conveniência.
|
|
Não existe nada terrivelmente errado com esse
|
|
comportamento, de um ponto de vista técnico; a
|
|
única questão é que assim o
|
|
&man.top.1; e o &man.ps.1; ficam completamente
|
|
perdidos.</para>
|
|
|
|
<para>O &man.rpc.statd.8; mapeia seu arquivo de status
|
|
(localizado sob o <filename>/var</filename>) no seu
|
|
endereçamento para economiza
|
|
preocupações sobre esse remapeamento em um
|
|
segundo momento, quando o arquivo precisa crescer. O
|
|
mapeamento é feito a um valor enorme. Analisando o
|
|
código fonte, podemos evidenciar que o tamanho do
|
|
argumento do &man.mmap.2; é
|
|
<literal>0x10000000</literal>, ou exatos 256MB em sistemas
|
|
de arquitetura IA32.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="unsetting-schg">
|
|
<para>Por que eu não posso retirar a flag
|
|
<literal>schg</literal> dos arquivos?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O sistema está sendo executado em um
|
|
nível de segurança elevado (maior que 0).
|
|
Diminua o nível de segurança e tente
|
|
novamente. Para obter mais informações, por
|
|
gentileza, refira-se à seção sobre
|
|
<link linkend="securelevel"><literal>securelevel</literal>
|
|
(nível de segurança do sistema)</link> do
|
|
<literal>FAQ</literal>, e à página de manual
|
|
do &man.init.8;</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ssh-shosts">
|
|
<para>Por que a autenticação do SSH via
|
|
<filename>.shosts</filename> não funciona por
|
|
padrão nas versões recentes do
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O motivo é simples. A
|
|
autenticação via
|
|
<filename>.shosts</filename> não funciona mais por
|
|
padrão porque o &man.ssh.1; não está
|
|
instalado com suid de root por padrão.
|
|
Razões óbvias de segurança. Para
|
|
<quote>corrigir</quote> isto, pode-se fazer o
|
|
seguinte:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Para uma alteração permanente,
|
|
defina <varname>ENABLE_SUID_SSH</varname> como
|
|
<literal>true</literal> no arquivo
|
|
<filename>/etc/make.conf</filename> e recompile o ssh
|
|
(ou execute um make world).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Uma correção temporária pode
|
|
ser mudar os modos de permissão do
|
|
<filename>/usr/bin/ssh</filename> para
|
|
<literal>4555</literal> simplesmente executando o
|
|
comando <command>chmod 4555 /usr/bin/ssh</command>
|
|
logado como <systemitem class="username">root</systemitem>. Depois, defina
|
|
<varname>ENABLE_SUID_SSH= true</varname> no
|
|
<filename>/etc/make.conf</filename> para que as
|
|
alterações tenham efeito todas as vezes
|
|
que um make world for feito.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="vnlru">
|
|
<para>O que é o <literal>vnlru</literal>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O <literal>vnlru</literal> limpa e libera os vnodes
|
|
quando o sistema atinge o limite do
|
|
<varname>kern.maxvnodes</varname>. Essa thread do
|
|
<foreignphrase>kernel</foreignphrase> se mantém
|
|
inativa a maior parte do tempo, e só se inicia caso
|
|
exista uma grande quantidade de memória RAM, e o
|
|
sistema esteja acessando dezenas de milhares de arquivos
|
|
pequenos.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="x">
|
|
<title>O sistema X, sistema de interface gráfica e os
|
|
Consoles Virtuais</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="running-X">
|
|
<para>Quero rodar a interface gráfica X, como
|
|
procedo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A maneira mais fácil é simplesmente
|
|
especificar o desejo de usar o X durante o processo de
|
|
instalação do FreeBSD.</para>
|
|
|
|
<para>Depois disso, leia e siga as instruções
|
|
documentadas na ferramenta <command>xf86config</command>,
|
|
que auxilia o usuário a configurar o XFree86 para
|
|
os diversos monitores, placas de vídeo, mouse e
|
|
etc, suportados pelo X, sistema de interface
|
|
gráfica.</para>
|
|
|
|
<para>Também pode ser interessante dar uma olhada no
|
|
servidor Xaccel. Confira a seção do
|
|
<literal>FAQ</literal> pertinente à <link linkend="xig">Xi Graphics</link> ou <link linkend="metrox">Metro Link</link> para obter mais
|
|
detalhes.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="running-X-securelevels">
|
|
<para><emphasis>Tentei</emphasis> rodar o X, mas o erro
|
|
<errorname>KDENABIO failed (Operation not
|
|
permitted)</errorname> sempre aparece, quando eu digito
|
|
o comando <command>startx</command>. O que posso
|
|
fazer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Seu sistema está rodando com um
|
|
<literal>securelevel</literal> (nível de
|
|
segurança do sistema) elevado, não
|
|
está? É impossível iniciar o X com um
|
|
secureleve elevado. Para saber exatamente os motivos
|
|
dessa inviabilidade, por gentileza, de uma olhada na
|
|
página de manual do &man.init.8;.</para>
|
|
|
|
<para>Então, a pergunta pode ser sobre o que
|
|
você deve fazer nesse caso; basicamente, existem
|
|
duas escolhas: diminua seu <literal>securelevel</literal>
|
|
(nível de segurança do sistema), colocando-o
|
|
de volta para zero (normalente via
|
|
<filename>/etc/rc.conf</filename>), ou então inicie
|
|
o &man.xdm.1; durante o processo de
|
|
inicialização do sistema (antes que o
|
|
<literal>securelevel</literal> (nível de
|
|
segurança do sistema) seja elevado).</para>
|
|
|
|
<para>Veja a pergunta <xref linkend="xdm-boot"/>, para obter
|
|
mais informações sobre como iniciar o
|
|
&man.xdm.1; durante o boot.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="x-and-moused">
|
|
<para>Por que meu mouse não funciona com o X?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Caso esteja usando o syscons (o driver padrão
|
|
do console), o FreeBSD pode ser configurado para suportar
|
|
um cursor de mouse em cada tela virtual. Com o
|
|
intúito de evitar conflitos com o X, o syscons
|
|
suporta um dispositivo virtual, chamado
|
|
<filename>/dev/sysmouse</filename>. Todos os eventos
|
|
relacionados ao mouse, que o sistema recebe, são
|
|
antes enviados para o device sysmouse, por meio do moused.
|
|
Se a intenção é usar o mouse em um ou
|
|
mais consoles virtuais, e também usar o X, leia
|
|
<xref linkend="moused" remap="another section"/> e
|
|
configure o moused.</para>
|
|
|
|
<para>Depois, edite o <filename>/etc/XF86Config</filename> e
|
|
garanta que existam as seguintes linhas no arquivo:</para>
|
|
|
|
<programlisting>Section Pointer
|
|
Protocol "SysMouse"
|
|
Device "/dev/sysmouse"
|
|
.....</programlisting>
|
|
|
|
<para>O exemplo acima refere-se ao XFree86 3.3.2 e
|
|
posteriores. Para versões anteriores, a
|
|
cláusula <emphasis>Protocol</emphasis> deve ser
|
|
substituída por
|
|
<emphasis>MouseSystems</emphasis>.</para>
|
|
|
|
<para>Alguns preferem usar a device
|
|
<filename>/dev/mouse</filename> sob o X. Para que
|
|
isso funcione, faça um link de
|
|
<filename>/dev/mouse</filename> para
|
|
<filename>/dev/sysmouse</filename> (veja a
|
|
página de manual do &man.sysmouse.4;).</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
|
&prompt.root; <userinput>rm -f mouse</userinput>
|
|
&prompt.root; <userinput>ln -s sysmouse mouse</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="x-and-wheel">
|
|
<para>Meu mouse possui aquela bolinha (esfera)
|
|
simpática de scroll. Posso usa-lo no X?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Pode, mas é necessário customizar os
|
|
programas do X. Veja a página do Colas Nahaboo
|
|
sobre o assunto (<link xlink:href="http://www.inria.fr/koala/colas/mouse-wheel-scroll/">
|
|
http://www.inria.fr/koala/colas/mouse-wheel-scroll/</link>.</para>
|
|
|
|
<para>Caso queira usar o programa
|
|
<application>imwheel</application>, simplesmente siga os
|
|
seguintes passos:</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Traduza os eventos da esfera de scroll:</para>
|
|
<para>O programa <application>imwheel</application>
|
|
funciona assim: ele traduz os botões 4 e 5 do
|
|
mouse em eventos do teclado do computador. Dessa
|
|
forma é necessário assegurar que o
|
|
driver do mouse esteja traduzindo os eventos da esfera
|
|
de scroll para os eventos dos botões 4 e 5, ou
|
|
seja assimilar suas funções. Existem
|
|
duas formas de fazer isso, a primeira é usando
|
|
o &man.moused.8; para fazer essas
|
|
assimilações, e a segunda, é usar
|
|
o próprio X para traduzir os eventos.</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Usando o &man.moused.8; para traduzir os
|
|
eventos da bolinha de scroll.</para>
|
|
|
|
<para>Para que o &man.moused.8; faça as
|
|
assimilações de eventos, basta
|
|
adicionar as opções <option>-z
|
|
4</option> nas opções de linhas de
|
|
comando, usadas para iniciar o &man.moused.8;.
|
|
Por exemplo, se normalmente você inicia o
|
|
&man.moused.8; via <command>moused -p
|
|
/dev/psm0</command> basta substituir o comando
|
|
por <command>moused -p /dev/psm0 -z 4</command>.
|
|
Se o &man.moused.8; é executado
|
|
automaticamente durante o processo de
|
|
inicialização do FreeBSD, por meio
|
|
das entradas definidas no
|
|
<filename>/etc/rc.conf</filename>, basta adicionar
|
|
<option>-z 4</option> na variável
|
|
<varname>moused_flags</varname> do
|
|
<filename>/etc/rc.conf</filename>.</para>
|
|
|
|
<para>Você precisa agora dizer para o X que
|
|
você tem o botão 5 no mouse. Para
|
|
fazer isto, simplesmente adicione a linha
|
|
<literal>Buttons 5</literal> para a
|
|
seção <quote>Pointer</quote> do
|
|
<filename>/etc/XF86Config</filename>. Por
|
|
exemplo, você pode seguir a
|
|
seção <quote>Pointer</quote> em
|
|
<filename>/etc/XF86Config</filename>.</para>
|
|
|
|
<example>
|
|
<title>Seção <quote>Pointer</quote>
|
|
no XF86Config para o mouse com bolinha de
|
|
scroll, da série 3.3.x do XFree86, usando
|
|
a tradução se;rie 3.3.x do
|
|
XFree86, usando a tradução por
|
|
meio do moused</title>
|
|
|
|
<programlisting>Section "Pointer"
|
|
Protocol "SysMouse"
|
|
Device "/dev/sysmouse"
|
|
Buttons 5
|
|
EndSection</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>Seção
|
|
<quote>InputDevice</quote> do XF86Config para
|
|
usar a tradução do X Server na
|
|
série 4.X do XFree86.</title>
|
|
|
|
<programlisting>Section "InputDevice"
|
|
Identifier "Mouse1"
|
|
Driver "mouse"
|
|
Option "Protocol" "auto"
|
|
Option "Device" "/dev/sysmouse"
|
|
Option "Buttons" "5"
|
|
EndSection</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>Exemplo de <quote>.emacs</quote> para usar
|
|
paginamento em mouse com bolinha de
|
|
scroll.</title>
|
|
|
|
<programlisting>;; wheel mouse
|
|
(global-set-key [mouse-4] 'scroll-down)
|
|
(global-set-key [mouse-5] 'scroll-up)</programlisting>
|
|
</example>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Usando o X Server para traduzir os eventos da
|
|
esfera de scroll.</para>
|
|
|
|
<para>Se você não usa o &man.moused.8;
|
|
ou simplesmente não quer que ele
|
|
faça a tradução de eventos,
|
|
é possível que o servidor X
|
|
faça o trabalho, no lugar do
|
|
&man.moused.8;. Essa ação requer
|
|
algumas alterações no seu arquivo
|
|
<filename>/etc/XF86Config</filename>. Primeiro,
|
|
é necessário definir o protocolo
|
|
apropriado para o mouse. A maioria dos mouses com
|
|
esferas de scroll usam o protocolo
|
|
<quote>IntelliMouse</quote>. De qualquer forma, o
|
|
XFree86 não suporta outros protocolos como
|
|
o <quote>MouseManPlusPS/2</quote> dos MouseMan+
|
|
Logitechfor. Uma vez definido o protocolo,
|
|
é necessário criar uma entrada
|
|
apropriada na seção
|
|
<quote>Pointer</quote>.</para>
|
|
|
|
<para>Depois, é preciso definir que o
|
|
servidor X deve remapear os eventos 4 e 5 do
|
|
mouse. A opção
|
|
<varname>ZAxisMapping</varname> é usada
|
|
para essa finalidade.</para>
|
|
|
|
<para>Por exemplo, caso não estejas usando o
|
|
&man.moused.8; e exista um IntelliMouse ligado na
|
|
PS/2 do seu computador, use o seguinte, no
|
|
<filename>/etc/XF86Config</filename>.</para>
|
|
|
|
<example>
|
|
<title>Seção <quote>Pointer</quote>
|
|
do <filename>XF86Config</filename> com um mouse
|
|
com scroll na série 3.3.x do
|
|
XFree86.</title>
|
|
|
|
<programlisting>Section "Pointer"
|
|
Protocol "IntelliMouse"
|
|
Device "/dev/psm0"
|
|
ZAxisMapping 4 5
|
|
EndSection</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>Seção
|
|
<quote>InputDevice</quote> do
|
|
<filename>XF86Config</filename> com um mouse com
|
|
scroll na série 4.x do XFree86.</title>
|
|
|
|
<programlisting>Section "InputDevice"
|
|
Identifier "Mouse1"
|
|
Driver "mouse"
|
|
Option "Protocol" "auto"
|
|
Option "Device" "/dev/psm0"
|
|
Option "ZAxisMapping" "4 5"
|
|
EndSection</programlisting>
|
|
</example>
|
|
|
|
<example>
|
|
<title>Arquivo <quote>.emacs</quote> para usar
|
|
paginamento em mouse com bolinha de
|
|
scroll.</title>
|
|
|
|
<programlisting>;; wheel mouse
|
|
(global-set-key [mouse-4] 'scroll-down)
|
|
(global-set-key [mouse-5] 'scroll-up)</programlisting>
|
|
</example>
|
|
</listitem>
|
|
</orderedlist>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Instale o
|
|
<application>imwheel</application></para>
|
|
|
|
<para>Depois, instale o
|
|
<application>imwheel</application> à partir da
|
|
coleção de <literal>ports</literal> do
|
|
FreeBSD; ele pode ser encontrado sob a categoria
|
|
<filename>x11</filename>. A finalidade desse programa
|
|
é assimilar os eventos dos botões 4 e 5
|
|
do mouse, com os eventos de alguma tecla do teclado.
|
|
Por exemplo, o programa deve enviar o evento da tecla
|
|
<keycap>Page Up</keycap> quando a esfera for deslocada
|
|
para frente. O <application>imwheel</application> usa
|
|
um arquivo de configurações para
|
|
assimilar esses eventos à uma tecla, de forma
|
|
que possam ser configuradas ações
|
|
diferentes (teclas diferentes) para
|
|
aplicações diferentes. O arquivo de
|
|
configuração padrão do
|
|
<application>imwheel</application> é instalado
|
|
em <filename>/usr/X11R6/etc/imwheelrc</filename>. Ele
|
|
pode ser copiado para
|
|
<filename>~/.imwheelrc</filename> e editado, caso se
|
|
deseja customizar o arquivo de
|
|
configuração. O formato esperado para o
|
|
arquivo é documentado na página de
|
|
manual do &man.imwheel.1;.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Configure o <application>Emacs</application> para
|
|
trabalhar em conjunto com o
|
|
<application>Imwheel</application>
|
|
(<emphasis>optional</emphasis>)</para>
|
|
|
|
<para>Se você usa o
|
|
<application>emacs</application> ou o
|
|
<application>Xemacs</application>, será
|
|
necessário adicionar uma breve
|
|
seção ao arquivo
|
|
<filename>~/.emacs</filename>. No
|
|
<application>emacs</application>, adicione o
|
|
seguinte:</para>
|
|
|
|
<example>
|
|
<title>Configuração do
|
|
<application>Emacs</application> para
|
|
<application>Imwheel</application></title>
|
|
|
|
<programlisting>;;; 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</programlisting>
|
|
</example>
|
|
|
|
<para>Pro <application>Xemacs</application>, adicione o
|
|
seguinte, no seu arquivo
|
|
<filename>~/.emacs</filename>:</para>
|
|
|
|
<example>
|
|
<title>Configuração do
|
|
<application>Xemacs</application> para
|
|
<application>Imwheel</application></title>
|
|
|
|
<programlisting>;;; 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</programlisting>
|
|
</example>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Execute o
|
|
<application>Imwheel</application></para>
|
|
|
|
<para>Basta digitar <command>imwheel</command> 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
|
|
<application>imwheel</application>, basta adicionar o
|
|
comando no seu arquivo <filename>.xinitrc</filename>
|
|
ou no <filename>.xsession</filename>. É
|
|
possível que o
|
|
<application>imwheel</application> mostre algumas
|
|
mensagens de advertência sobre arquivos PID;
|
|
elas podem ser seguramente ignoradas, visto que
|
|
são mensagens que se aplicam à
|
|
versão para Linux.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="window-menu-weird">
|
|
<para>Por quê os menus e caixas de diálogo do
|
|
X, sistema de interface gráfica não
|
|
funcionam direito?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Tente desativar a tecla <keycap>Num
|
|
Lock</keycap>.</para>
|
|
|
|
<para>Se por padrão seu <keycap>Num Lock</keycap>
|
|
é ativo na hora do processo de
|
|
inicialização, adicione a seguinte linha a
|
|
seção <literal>Keyboard</literal> do seu
|
|
arquivo <filename>XF86Config</filename>.</para>
|
|
|
|
<programlisting># Deixar o servidor fazer o trabalho do NumLock. Deve ser usado apenas em versoes anteriores a R6
|
|
ServerNumLock</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="virtual-console">
|
|
<para>O que é um console virtual, e como eu crio mais
|
|
consoles?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Consoles virtuais simplesmente permitem que se tenha
|
|
várias sessões simultâneas em uma
|
|
mesma máquina, sem a necessidade de fazer nada
|
|
complicado como configurar uma rede ou usar um servidor
|
|
X.</para>
|
|
|
|
<para>Quando o sistema é iniciado, a primeira
|
|
ação é apresentar um prompt de login
|
|
na tela do usuário, tão logo todas as
|
|
mensagens do processo de inicialização sejam
|
|
apresentadas. Nesse momento é possível
|
|
entrar com seu nome de usuário e senha para
|
|
começar trabalhar (ou brincar!) no primeiro console
|
|
virtual.</para>
|
|
|
|
<para>Em algum momento, é provável que se
|
|
deseje iniciar uma outra sessão, talvez para ler a
|
|
documentação de alguma
|
|
aplicação que está sendo usada, ou
|
|
para ler e-mail enquanto a transferência FTP se
|
|
conclúi, enfim, qualquer ação
|
|
(a)típica de um sistema multitarefa. Nesse caso,
|
|
basta pressionar <keycombo action="simul"><keycap>Alt</keycap><keycap>F2</keycap></keycombo>
|
|
(segure a tecla <keycap>Alt</keycap> e depois aperte a
|
|
tecla <keycap>F2</keycap>), e outro prompt de login
|
|
estará esperando você no segundo
|
|
<quote>console virtual</quote>! Quando quizer alternar de
|
|
volta à sessão original, digite <keycombo action="simul"><keycap>Alt</keycap><keycap>F1</keycap></keycombo>.</para>
|
|
|
|
<para>A instalação padrão do FreeBSD
|
|
oferece três consoles virtuais já habilitados
|
|
(8 a partir do 3.3-RELEASE), e as teclas <keycombo action="simul"><keycap>Alt</keycap><keycap>F1</keycap></keycombo>,
|
|
|
|
<keycombo action="simul"><keycap>Alt</keycap><keycap>F2</keycap></keycombo>,
|
|
e <keycombo action="simul"><keycap>Alt</keycap><keycap>F3</keycap></keycombo>
|
|
irá alternar entre esses consoles.</para>
|
|
|
|
<para>Para habilitar mais consoles, edite o
|
|
<filename>/etc/ttys</filename> (veja a página de
|
|
manual do &man.ttys.5;) e adicione as entradas da
|
|
<filename>ttyv4</filename> à
|
|
<filename>ttyvc</filename> depois do comentário
|
|
sobre <quote>Virtual terminals</quote>:</para>
|
|
|
|
<programlisting># 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</programlisting>
|
|
|
|
<para>Use quantos consoles desejar. Quanto mais, maior o
|
|
uso de recursos; essa é uma
|
|
consideração relevante quando se tem 8MB de
|
|
RAM ou menos. Também pode ser interessante mudar o
|
|
terminal de <literal>secure</literal> para
|
|
<literal>insecure</literal>.</para>
|
|
|
|
<important>
|
|
<para>Caso se deseje usar um servidor X, é
|
|
necessário garantir que exista ao menos um
|
|
terminal virtual fora de uso (ou desligado). Com isso,
|
|
entenda que, se sua inteção for usar
|
|
consoles virtuais nas suas doze teclas de
|
|
funções, nada feito; apenas onze
|
|
poderão ser usadas caso deseje-se usar o X na
|
|
mesma máquina.</para>
|
|
</important>
|
|
|
|
<para>A maneira mais simples de desabilitar um console,
|
|
é desligando-o. Por exemplo, caso existam 12
|
|
terminais definidos, como mencionado na
|
|
situação acima, e se queira usar o servidor
|
|
X, o mais interessante é mudar as
|
|
configurações do terminal 12 de:</para>
|
|
|
|
<programlisting>ttyvb "/usr/libexec/getty Pc" cons25 on secure</programlisting>
|
|
|
|
<para>para:</para>
|
|
|
|
<programlisting>ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting>
|
|
|
|
<para>Caso seu teclado tenha apenas dez teclas de
|
|
funções, basta encerrar as
|
|
definições com:</para>
|
|
|
|
<programlisting>ttyv9 "/usr/libexec/getty Pc" cons25 off secure
|
|
ttyva "/usr/libexec/getty Pc" cons25 off secure
|
|
ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting>
|
|
|
|
<para>(Claro que as linhas poderiam simplesmente ser
|
|
apagadas.)</para>
|
|
|
|
<para>Uma vez editado o <filename>/etc/ttys</filename>, o
|
|
passo seguinte é garantir que existam devices o
|
|
bastante pros terminais virtuais. A forma mais
|
|
fácil de fazer isso é:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
|
&prompt.root; <userinput>sh MAKEDEV vty12</userinput></screen>
|
|
|
|
<para>Em seguida, a maneira mais fácil (e mais limpa)
|
|
de ativar cada um dos consoles virtuais é reiniciar
|
|
o sistema. Mas se reiniciar o FreeBSD não é
|
|
a intenção, basta desligar o servidor X,
|
|
sistema de interface gráfica e executar (logado
|
|
como <systemitem class="username">root</systemitem>):</para>
|
|
|
|
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
|
|
|
|
<para>É obrigatório tirar por completo o X,
|
|
sistema de interface gráfica do ar antes de dar
|
|
esse comando, caso o X esteja sendo usado. Se isso
|
|
não for feito, o sistema vai parecer que
|
|
travou.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="vty-from-x">
|
|
<para>Como posso acessar os consoles virtuais quando eu
|
|
estiver no X?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Use <keycombo action="simul">
|
|
<keycap>Ctrl</keycap>
|
|
<keycap>Alt</keycap>
|
|
<keycap>F<replaceable>n</replaceable></keycap>
|
|
</keycombo> para alternar de volta para algum console
|
|
virtual. Por exemplo,
|
|
<keycombo action="simul">
|
|
<keycap>Ctrl</keycap>
|
|
<keycap>Alt</keycap>
|
|
<keycap>F1</keycap>
|
|
</keycombo> retornaria ao primeiro console virtual.</para>
|
|
|
|
<para>Uma vez de volta ao console textual, pode-se usar
|
|
<keycombo action="simul">
|
|
<keycap>Alt</keycap>
|
|
<keycap>F<replaceable>n</replaceable></keycap>
|
|
</keycombo> normalmente, para alternar entre os consoles
|
|
virtuais.</para>
|
|
|
|
<para>Pra voltar para sessão X basta alternar para o
|
|
console virtual onde o X está sendo executado.
|
|
Caso o X tenha sido iniciado por linha de comando (por
|
|
exemplo, com o comando <command>startx</command>) a
|
|
sessão terá sido assimilada ao
|
|
próximo console virtual fora de uso, e não
|
|
ao console onde o comando foi digitado. Caso existam oito
|
|
terminais virtuais ativos, o X estará sendo
|
|
executado no nono. Nesse caso as teclas
|
|
<keycombo action="simul">
|
|
<keycap>Alt</keycap>
|
|
<keycap>F9</keycap>
|
|
</keycombo> retornarão ao sistema
|
|
gráfico.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="xdm-boot">
|
|
<para>Como eu inicio o XDM no processo de
|
|
inicialização?</para>
|
|
</question><answer>
|
|
|
|
<para>Existem duas formas clássicas de iniciar o
|
|
<link xlink:href="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&query=xdm">xdm</link>.
|
|
A primeira consiste em inciá-lo a partir do
|
|
<filename>/etc/ttys</filename> (veja a página de
|
|
manual do &man.ttys.5;) usando o exemplo disponível
|
|
no arquivo; a segunda forma é simplesmente executar
|
|
o xdm a partir do <filename>rc.local</filename> (veja a
|
|
página de manual do &man.rc.8;) ou então por
|
|
um script <filename>X.sh</filename> em
|
|
<filename>/usr/local/etc/rc.d</filename>. As duas
|
|
maneiras são igualmente válidas, mas algumas
|
|
podem ser mais eficientes em algumas
|
|
situações, onde a outra forma não
|
|
seria ideal. Nos dois casos, o resultado será o
|
|
mesmo: o X iniciará o mostrando uma tela de login:
|
|
gráfica.</para>
|
|
|
|
<para>O método de inicialização via
|
|
ttys oferece a vantagem de definir explicitamente em qual
|
|
vtyX o servidor gráfico vai ser carregado, passando
|
|
a responsabilidade da reinicialização do X
|
|
para o init, no momento do logout. O método via
|
|
rc.local oferece facilidades caso seja necessário
|
|
encerrar o processo xdm, no caso, por exemplo, de
|
|
ocorrerem problemas ao carregar o servidor
|
|
gráfico.</para>
|
|
|
|
<para>Ao usar o rc.local para carregar o
|
|
<command>xdm</command>, ele não deve ser
|
|
acompanhado de nenhum argumento (deve ser iniciado como um
|
|
daemon e deve ser iniciado DEPOIS que o getty já
|
|
estiver em execussão, senão é
|
|
provável que ocorram conflitos entre ambos, podendo
|
|
travar o console. A melhor forma de assegurar o correto
|
|
funcionamento desse método é fazer com que o
|
|
script espere 10 segundos (por exemplo, com um sleep 10;)
|
|
antes de iniciar o xdm.</para>
|
|
|
|
<para>Se a inteção é iniciar o
|
|
<command>xdm</command> a partir do
|
|
<filename>/etc/ttys</filename>, ainda existe a
|
|
probabilidade de conflitos entre o <command>xdm</command>
|
|
e o &man.getty.8;. Uma forma interessante de evitar esse
|
|
tipo de desconforto, é definir, no arquivo
|
|
<filename>/usr/X11R6/lib/X11/xdm/Xservers</filename>, o
|
|
número do <literal>vt</literal> onde o X deve ser
|
|
iniciado, da seguinte forma:</para>
|
|
|
|
<programlisting>:0 local /usr/X11R6/bin/X vt4</programlisting>
|
|
|
|
<para>O exemplo acima indica que o servidor X será
|
|
ativado no <filename>/dev/ttyv3</filename>. Note que
|
|
existe um offset de um vt, já que o X começa
|
|
a contar os terminais (vty) a partir do um, enquando o
|
|
<foreignphrase>kernel</foreignphrase> do FreeBSD os conta
|
|
a partir do zero.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="xconsole-failure">
|
|
<para>Por que eu enfrento um <errorname>Couldn't open
|
|
console</errorname> ao executar o xconsole? </para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se o <application>X</application> for iniciado com um
|
|
<command>startx</command>, as permissões do
|
|
<filename>/dev/console</filename> não
|
|
serão redefinidas, resultando em
|
|
situações onde um <command>xterm
|
|
-C</command> ou mesmo o <command>xconsole</command>
|
|
não funcionarão corretamente.</para>
|
|
|
|
<para>O motivo disso é a forma como as
|
|
permissões são definidas por padrão.
|
|
Em sistemas multiusuário, normalmente não se
|
|
espera que qualquer pessoa possa escrever no console do
|
|
sistema. Para os usuários que estão se
|
|
logando diretamente na máquina, em algum VTY,
|
|
existe o arquivo &man.fbtab.5; que resolve esse tipo de
|
|
problema.</para>
|
|
|
|
<para>Se for apropriado, garanta que exista uma linha
|
|
assim</para>
|
|
|
|
<programlisting>/dev/ttyv0 0600 /dev/console</programlisting>
|
|
|
|
<para>No arquivo <filename>/etc/fbtab</filename> (veja a
|
|
página de manual do &man.fbtab.5;). Essa linha
|
|
garantirá que qualquer usuário que se logar
|
|
no <filename>/dev/ttyv0</filename> será
|
|
também proprietário do console.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="xfree86-root">
|
|
<para>Antes eu conseguia usar o XFree86 com um
|
|
usuário sem privilégios. Porque agora o
|
|
servidor diz que eu tenho que ser
|
|
<systemitem class="username">root</systemitem>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Todo servidor gráfico precisa ser executado
|
|
como <systemitem class="username">root</systemitem> para que o sistema permita
|
|
acesso direto aos equipamentos de vídeo. Acontece
|
|
que nas versões mais antigas, o XFree86
|
|
(versões <= 3.3.6) instalava o servidor de forma
|
|
que ele era automaticamente executado como
|
|
<systemitem class="username">root</systemitem> (setuid de
|
|
<systemitem class="username">root</systemitem>). Óbviamente esse
|
|
comportamente implica em riscos de segurança em
|
|
qualquer caso onde o programa em questão seja
|
|
complexo e grande; esse é o caso dos servidores X.
|
|
As versões mais atuais do XFree86 não
|
|
instalam os servidores gráficos com todo esse
|
|
poder, exatamente por esse motivo.</para>
|
|
|
|
<para>É claro que rodar o X como usuário
|
|
<systemitem class="username">root</systemitem> não é uma
|
|
idéia muito aceitável, especialmente em
|
|
relação à segurança. Existem
|
|
duas formas de usar o X como usuário comum. A
|
|
primeira é usar o <command>xdm</command> ou
|
|
qualquer outro gerenciador de display (como o
|
|
<command>kdm</command>); a segunda é usar o
|
|
<command>Xwrapper</command>.</para>
|
|
|
|
<para>O <command>xdm</command> é um daemon que
|
|
controla logins gráficos. Normalmente ele é
|
|
iniciado no processo de inicialização e
|
|
é responsável pela
|
|
autenticação dos usuários, e por
|
|
inciar suas sessões; essencialmente é a
|
|
união gráfica do &man.getty.8; como o
|
|
&man.login.1;. Para mais informações sobre
|
|
o <command>xdm</command>, por gentileza, refira-se
|
|
à <link xlink:href="http://www.xfree86.org/support.html">documentação
|
|
do XFree86</link> e à questão do <link linkend="xdm-boot"><literal>FAQ</literal> sobre
|
|
xdm</link>.</para>
|
|
|
|
<para>O <command>Xwrapper</command> é um
|
|
intermediador do servidor gráfico; é um
|
|
programa bem pequeno que possibilita a
|
|
inicialização manual do servidor
|
|
gráfico por qualquer usuário, garantindo
|
|
razoável segurança à
|
|
operação. O programa ainda faz algumas
|
|
verificações na linha de comando definida
|
|
pelo usuário, para garantir a sanidade das
|
|
intenções do mesmo. Se todas as
|
|
intenções forem aprovadas, ele executa o X.
|
|
Se por qualquer razão, a idéia de usar um
|
|
gerenciador de displays não te agrada, o
|
|
<command>Xwrapper</command> é feito para
|
|
você. Caso a coleção de
|
|
<literal>Ports</literal> esteja instalada, o programa pode
|
|
ser encontrado em
|
|
<filename>/usr/ports/x11/wrapper</filename>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ps2-x">
|
|
<para>Por que meu mouse PS/2 não se comporta
|
|
corretamente no X?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O seu mouse e a device que o controla devem ter
|
|
desincronizado.</para>
|
|
|
|
<para>Nas versões 2.2.5 e anteriores, a simples
|
|
alternância entre o X e o terminal, e voltar para o
|
|
X, força a resincronização do mouse.
|
|
Se o problema se tornar frequênte, adicione a
|
|
seguinte opção ao arquivo de
|
|
configuração do seu
|
|
<foreignphrase>kernel</foreignphrase>, e o
|
|
recompile:</para>
|
|
|
|
<programlisting>options PSM_CHECKSYNC</programlisting>
|
|
|
|
<para>Veja a seção sobre a <link linkend="make-kernel">compilação do
|
|
<foreignphrase>kernel</foreignphrase></link>, caso
|
|
você não tenha experiência com
|
|
isso.</para>
|
|
|
|
<para>Com essa opção as chances de ter
|
|
problemas com a sincronia do mouse são bem
|
|
pequenas. Contudo, se ainda assim o problema persistir,
|
|
clique em qualquer botão durante o movimento do
|
|
mouse. É o bastante para resincroniza-lo.</para>
|
|
|
|
<para>Infelizmente essa opção pode não
|
|
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.</para>
|
|
|
|
<para>Na versão 2.2.6 e posteriores, a
|
|
verificação de sincronia se tornou
|
|
razoávelmente melhor, e é padrão nos
|
|
mouses PS/2. Deve funcionar corretamente com GlidePoint,
|
|
inclusive (como o código de
|
|
verificação de sincronia ter se tornado
|
|
padrão, a opção PSM_CHECKSYNC
|
|
não existe mais). Contudo, em
|
|
situações muito raras, o driver de controle
|
|
do mouse pode, errôneamente reportar problemas de
|
|
sincronização, mostrando a seguinte mensagem
|
|
do <foreignphrase>kernel</foreignphrase>:</para>
|
|
|
|
<programlisting>psmintr: out of sync (xxxx != yyyy)</programlisting>
|
|
|
|
<para>Pensando que seu mouse não está
|
|
funcionando corretamente.</para>
|
|
|
|
<para>Se for o caso, desligue o código de
|
|
verificação de sincronia do mouse PS/2,
|
|
definindo a flag 0x100 na device de controle do mesmo.
|
|
Entre no modo <emphasis>UserConfig</emphasis> definindo a
|
|
opção <option>-c</option> na tela do
|
|
processo de inicialização:</para>
|
|
|
|
<screen>boot: <userinput>-c</userinput></screen>
|
|
|
|
<para>Depois, na linha de comando do
|
|
<emphasis>UserConfig</emphasis>, digite:</para>
|
|
|
|
<screen>UserConfig> <userinput>flags psm0 0x100</userinput>
|
|
UserConfig> <userinput>quit</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ps2-mousesystems">
|
|
<para>Por que meu mouse PS/2 da MouseSystems não
|
|
funciona?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Existem notícias que alguns modelos de mouse
|
|
PS/2 da MouseSystems funcionam corretamente apenas em modo
|
|
de alta resolução. Do contrário, o
|
|
cursor do mouse costuma pular para diagonal superior
|
|
esquerda da tela com certa frequência.</para>
|
|
|
|
<para>Infelizmente não existe solução
|
|
à esse problema, nas versões 2.0.X e 2.1.X.
|
|
Contudo, das versões 2.2 à 2.2.5, basta
|
|
aplicar o seguinte patch, no
|
|
<filename>/sys/i386/isa/psm.c</filename> e recompilar o
|
|
<foreignphrase>kernel</foreignphrase>. Veja a
|
|
seção sobre <link linkend="make-kernel">
|
|
compilação do
|
|
<foreignphrase>kernel</foreignphrase></link> caso
|
|
não tenha experiência com o assunto.</para>
|
|
|
|
<programlisting>@@ -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 */</programlisting>
|
|
|
|
<para>Na versão 2.2.6 e versões posteriores,
|
|
basta especificar a flag 0x04 para device de controle do
|
|
mouse PS/2, colocando-o em modo de alta
|
|
resolução. Entre no modo
|
|
<emphasis>UserConfig</emphasis> com a opçãp
|
|
<option>-c</option> na tela do processo de
|
|
inicialização:</para>
|
|
|
|
<screen>boot: <userinput>-c</userinput></screen>
|
|
|
|
<para>Depois, na linha de comando do
|
|
<emphasis>UserConfig</emphasis> digite:</para>
|
|
|
|
<screen>UserConfig> <userinput>flags psm0 0x04</userinput>
|
|
UserConfig> <userinput>quit</userinput></screen>
|
|
|
|
<para>Veja a pergunta anterior, sobre outra causa
|
|
possível de problemas com o mouse.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="imake-tmpl">
|
|
<para>Ao compilar uma aplicação X, o
|
|
<command>imake</command> não consegue encontrar o
|
|
<filename>Imake.tmpl</filename>. Onde ele
|
|
está?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O <filename>Imake.tmpl</filename> é parte do
|
|
pacote Imake, uma aplicação padrão
|
|
para construção de aplicações
|
|
gráficas. O <filename>Imake.tmpl</filename>, assim
|
|
como vários outros arquivos de cabeçalhos
|
|
necessários para compilar aplicações
|
|
gráficas, é parte da
|
|
distribuição do X. Eles podem ser
|
|
instalados pelo sysinstall ou manualmente a partir dos
|
|
arquivos da distribuição.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="xfree86-version">
|
|
<para>Estou construindo uma aplicação
|
|
gráfica que depende do XFree86 3.3.X, mas eu estou
|
|
com o XFree86 4.X instalado. O que fazer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Pra definir que a construção do
|
|
<literal>Port</literal> deve ser linkada às
|
|
bibliotecas do XFree86 4.X, adicione o seguinte, no seu
|
|
<filename>/etc/make.conf</filename>, (se o arquivo
|
|
não existir, crie-o):</para>
|
|
|
|
<programlisting>XFREE86_VERSION= 4</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="mouse-button-reverse">
|
|
<para>Como posso inverter as funções dos
|
|
botões do mouse?</para>
|
|
</question>
|
|
<answer>
|
|
<para>Execute o comando <command>xmodmap -e "pointer = 3 2
|
|
1"</command> à partir do
|
|
<filename>.xinitrc</filename> ou do
|
|
<filename>.xsession</filename>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="install-splash">
|
|
<para>Como instalar uma Splash Screen e onde posso
|
|
encontra-las?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A partir da lançamento do FreeBSD 3.1, uma nova
|
|
característica foi adicionada ao sistema,
|
|
permitindo que alguns arquivos de imagens sejam usados
|
|
como <quote>Splash Screens</quote> durante as mensagens do
|
|
processo de inicialização. Tais imagens
|
|
devem ser arquivos do tipo bitmap com 256 cores
|
|
(<filename>*.BMP</filename>) ou então ZSoft PCX
|
|
(<filename>*.PCX</filename>). Devem ainda ter
|
|
resolução de 320x200 pixels (ou menos), para
|
|
funcionarem corretamente em adaptadores de vídeo
|
|
VGA tradicionais. Caso o
|
|
<foreignphrase>kernel</foreignphrase> tenha sido compilado
|
|
com suporte à VESA, então podem ser usados
|
|
bitmaps maiores, até 1024.768 px. O suporte
|
|
à VESA pode ser diretamente compilado no
|
|
<foreignphrase>kernel</foreignphrase>, com a
|
|
opção VESA no arquivo de
|
|
configuração, ou carregado como
|
|
módulo, com o kld, durante o processo de
|
|
inicialização do sistema.</para>
|
|
|
|
<para>Para definir a <quote>Splash Screens</quote>, basta
|
|
modificar alguns arquivos de inicialização
|
|
que controlam o processo de inicialização do
|
|
FreeBSD. Tais arquivos foram alterados na versão
|
|
3.2 do FreeBSD, existindo portanto duas formas de carregar
|
|
uma <quote>Splash Screens</quote>:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>No FreeBSD 3.1</para>
|
|
|
|
<para>O primeiro passo é escolher o seu bitmap, e
|
|
sua versão. Até o FreeBSD 3.1, apenas
|
|
os bitmaps do tipo Windows eram suportados. Assim que
|
|
escolher (ou criar) sua <quote>Splash Screens</quote>,
|
|
copie-a para <filename>/boot/splash.bmp</filename>.
|
|
Depois, basta editar (ou criar, caso não
|
|
exista) o arquivo <filename>/boot/loader.rc</filename>
|
|
e adicionar as seguintes linhas:</para>
|
|
|
|
<programlisting>load kernel
|
|
load -t splash_image_data /boot/splash.bmp
|
|
load splash_bmp
|
|
autoboot</programlisting>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>No FreeBSD 3.2 e posteriores</para>
|
|
|
|
<para>Além de adicionar suporte a <quote>Splash
|
|
Screens</quote> de formato PCX, o FreeBSD 3.2 passou
|
|
a oferecer uma maneira mais interessante de configurar
|
|
o processo de inicialização. Caso
|
|
prefira, o método descrito acima, para o
|
|
FreeBSD 3.1 também funciona. Nesse caso, se a
|
|
imagem for do tipo PCX basta substituir a entrada
|
|
<literal>splash_bmp</literal> por
|
|
<literal>splash_pcx</literal>. Caso queira usar a
|
|
nova configuração do processo de
|
|
inicialização, basta criar um arquivo
|
|
<filename>/boot/loader.rc</filename> com o seguinte
|
|
conteúdo:</para>
|
|
|
|
<programlisting>include /boot/loader.4th
|
|
start</programlisting>
|
|
|
|
<para>e depois, um
|
|
<filename>/boot/loader.conf</filename> com o
|
|
seguinte:</para>
|
|
|
|
<programlisting>splash_bmp_load="YES"
|
|
bitmap_load="YES"</programlisting>
|
|
|
|
<para>Essa configuração assume que o
|
|
<filename>/boot/splash.bmp</filename> deve ser usado
|
|
como sua <quote>Splash Screens</quote>. Caso prefira
|
|
usar um arquivo PCX, copie para o
|
|
<filename>/boot/splash.pcx</filename>, e crie um
|
|
<filename>/boot/loader.rc</filename>, da forma como
|
|
foi indicado anteriormente; depois crie um
|
|
<filename>/boot/loader.conf</filename> com o
|
|
seguinte:</para>
|
|
|
|
<programlisting>splash_pcx_load="YES"
|
|
bitmap_load="YES"
|
|
bitmap_name="/boot/splash.pcx"</programlisting>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Agora você só precisa de uma imagem, para
|
|
servir de <quote>Splash Screens</quote>. Pra isso,
|
|
dê uma navegada na galeria disponível em
|
|
<link xlink:href="http://www.baldwin.cx/splash/">http://www.baldwin.cx/splash/</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="windows-keys">
|
|
<para>Posso usar as teclas do Windows® que meu teclado
|
|
possui, sob o X?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Pode. Basta usar o &man.xmodmap.1; para redefinir a
|
|
função das teclas.</para>
|
|
|
|
<para>Assumindo que todos os teclados <quote><trademark class="registered">Windows</trademark></quote> sejam
|
|
padrão, os códigos de mapeamento pras 3
|
|
teclas são:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>115 - <trademark class="registered">Windows</trademark>, entre a
|
|
tecla Ctr e a Alt do lado esquerdo.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>116 - <trademark class="registered">Windows</trademark>, à
|
|
direita a tecla AltGr.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>117 - <keycap>Menu</keycap>, do lado esquerdo da
|
|
tecla Ctrl esquerda</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>Por exemplo, para fazer com que a tecla Windows®
|
|
esquerda imprima uma vírgula, faça o
|
|
seguinte:</para>
|
|
|
|
<screen>&prompt.root; <userinput>xmodmap -e "keycode 115 = comma"</userinput></screen>
|
|
|
|
<para>É provável que seu gerenciador de
|
|
janelas tenha que ser reiniciado, para visualizar o
|
|
resultado.</para>
|
|
|
|
<para>Pra forçar o carregamento automático do
|
|
mapeamento das teclas <trademark class="registered">Windows</trademark>, coloque os
|
|
comandos do <command>xmodmap</command> no arquivo
|
|
<filename>~/.xinitrc</filename> ou de preferência,
|
|
crie um arquivo <filename>~/.xmodmaprc</filename> e inclua
|
|
as opções do <command>xmodmap</command> uma
|
|
por linha, nesse arquivo. Depois adicione:</para>
|
|
|
|
<programlisting>xmodmap $HOME/.xmodmaprc</programlisting>
|
|
|
|
<para>No seu <filename>~/.xinitrc</filename>.</para>
|
|
|
|
<para>Por exemplo, pode-se mapear as 3 teclas em
|
|
questão para fazer o papel das teclas
|
|
<keycap>F13</keycap>, <keycap>F14</keycap>, e
|
|
<keycap>F15</keycap>, respectivamente. Dessa forma, seria
|
|
fácil mapear as aplicações de forma
|
|
que as teclas tivessem ações no seu sistema,
|
|
como veremos agora.</para>
|
|
|
|
<para>Adicione o seguinte conteúdo, no arquivo
|
|
<filename>~/.xmodmaprc</filename>.</para>
|
|
|
|
<programlisting>keycode 115 = F13
|
|
keycode 116 = F14
|
|
keycode 117 = F15</programlisting>
|
|
|
|
<para>Se o gerenciador de janelas em questão for o
|
|
<command>fvwm2</command>, por exemplo, pode-se mapear as
|
|
teclas de forma que o <keycap>F13</keycap> minimize (ou
|
|
maximize) a janela que o cursor está apontando, a
|
|
tecla <keycap>F14</keycap> de forma que ela traga a janela
|
|
marcada pelo cursor para frente (ou volte para
|
|
trás, caso já esteja à frente), e o
|
|
<keycap>F15</keycap> pode alternar o menu da área
|
|
detrabalho principal, o que é bem útil
|
|
quando a tela não é visível.</para>
|
|
|
|
<para>As seguintes definições no
|
|
<filename>~/.fvwmrc</filename> implementam a
|
|
configuração acima descrita:</para>
|
|
|
|
<programlisting>Key F13 FTIWS A Iconify
|
|
Key F14 FTIWS A RaiseLower
|
|
Key F15 A A Menu Workplace Nop</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="x-3d-acceleration">
|
|
<para>Como posso obter a aceleração de
|
|
equipamentos 3D para o OpenGL?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A disponibilidade da aceleração 3D
|
|
depende da versão do XFree86 e da placa de
|
|
vídeo. Caso a placa seja NVIDIA, verifique a
|
|
página da <link xlink:href="http://nvidia.netexplorer.org/">Iniciativa de
|
|
Driver NVIDIA para o FreeBSD</link>, que discute a
|
|
aceleração 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 à página sobre
|
|
<link xlink:href="http://gladstone.uoregon.edu/~eanholt/dri/">Renderização
|
|
Direta do XFree86-4 no FreeBSD</link>. Usuários
|
|
do XFree86 na versão 3.3 podem usar o
|
|
<literal>port</literal> do Utah-GLX que pode ser
|
|
encontrado em <package>graphics/utah-glx</package> para
|
|
conseguir alguma (limitada) aceleração 3D
|
|
para o OpenGL em placas Matrox Gx00, ATI Rage Pro, SiS
|
|
6326, i810, Savage, e algumas NVIDIA antigas.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="networking">
|
|
<title>Redes</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="diskless-booting">
|
|
<para>Onde obter informações a respeito do
|
|
processo de processo de inicialização sem
|
|
disco rígido (<foreignphrase>diskless
|
|
booting</foreignphrase>)?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O processo de processo de inicialização
|
|
sem disco implica na possibilidade de uma máquina
|
|
FreeBSD ser inicializada através da rede, lendo os
|
|
arquivos necessários à partir de um
|
|
servidor, ao invés de um disco rígido. Para
|
|
maiores detalhes, por favor, consulte o ítem <link xlink:href="../handbook/diskless.html"><foreignphrase>diskless
|
|
booting</foreignphrase> no
|
|
&a.ptbr.p.handbook;</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="router">
|
|
<para>Um sistema FreeBSD pode ser utilizado como roteador
|
|
dedicado para uma rede?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Pode. Por gentileza, refira-se à <link xlink:href="../handbook/routing.html">documentação
|
|
do &a.ptbr.p.handbook; sobre configurações
|
|
avançadas de rede</link>, mais especificamente,
|
|
a seção sobre <link xlink:href="../handbook/routing.html#DEDICATED-ROUTER">roteamento
|
|
e gateways</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="win95-connection">
|
|
<para>Posso conectar minha máquina com Win95 à
|
|
Internet, através do meu FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Normalmente, as pessoas que propõem esse tipo
|
|
de questão possuem dois computadores em casa, um
|
|
com FreeBSD e outro com Win95. A idéia é
|
|
utilizar a maquina com FreeBSD para se conectar à
|
|
Internet, e então oferecer acesso Internet a
|
|
máquina Win95 através do FreeBSD. Essa
|
|
é apenas uma extensão especial da
|
|
questão anterior.</para>
|
|
|
|
<para>... e a resposta é sim! No FreeBSD 3.x, o
|
|
&man.ppp.8; em modo usuário oferece a
|
|
opção <option>-nat</option>. Se o
|
|
&man.ppp.8; for executado com essa opção,
|
|
basta definir a variável
|
|
<literal>gateway_enable</literal> para
|
|
<emphasis>YES</emphasis> no arquivo
|
|
<filename>/etc/rc.conf</filename>, e configurar
|
|
corretamente a máquina Windows. Isso é o
|
|
bastante.</para>
|
|
|
|
<para>Para obter mais informações, por
|
|
gentileza, refira-se a página de manual do
|
|
&man.ppp.8;</para>
|
|
|
|
<para>Se o &man.ppp.8; estiver sendo usado em modo
|
|
<foreignphrase>kernel</foreignphrase>
|
|
(<foreignphrase>kernel-mode</foreignphrase>) ou a
|
|
conexão com a Internet for via Ethernet, a
|
|
opção mais viável será
|
|
utilizar o &man.natd.8;. Por favor, consulte a
|
|
seção <link linkend="natd">natd</link> dessa
|
|
documentação.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="slip-ppp-support">
|
|
<para>O FreeBSD suporta SLIP e PPP?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Claro. Veja as páginas de manual do
|
|
&man.slattach.8;, &man.sliplogin.8;, &man.ppp.8;, e
|
|
&man.pppd.8;. O &man.ppp.8; e o &man.pppd.8; oferecem
|
|
suporte à conexões entrantes e de
|
|
saída (conexões incoming/outgoing), enquanto
|
|
o &man.slattach.8; à conexões de
|
|
saída (outgoing).</para>
|
|
|
|
<para>Para obter mais informações sobre a
|
|
correta utilização desses recursos, por
|
|
gentileza, refira-se ao Capítulo sobre <link xlink:href="../handbook/ppp-and-slip.html">PPP e SLIP do
|
|
&a.ptbr.p.handbook;</link>.</para>
|
|
|
|
<para>Se o seu acesso à Internet for apenas por meio
|
|
de uma conta Shell, pode ser interessante dar uma olhada
|
|
no <literal>port</literal> da aplicação
|
|
<package>net/slirp</package>. Esse
|
|
<literal>port</literal> oferece acesso (limitado) à
|
|
serviços como FTP e HTTP direto da máquina
|
|
local.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="natd">
|
|
<para>O FreeBSD suporta NAT ou Masquerading?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se no seu caso, existe uma subrede (uma ou mais
|
|
máquinas locais interconectadas em rede), mas o seu
|
|
Provedor de Internet disponibiliza apenas um IP (ou se o
|
|
endereço IP em questão é
|
|
dinâmico), com certeza é interessante dar uma
|
|
olhada no &man.natd.8;. O &man.natd.8; possibilita que
|
|
uma subrede inteira acesse a Internet através de um
|
|
único endereço IP.</para>
|
|
|
|
<para>O &man.ppp.8; oferece suporte interno à essa
|
|
mesma funcionalidade, através da
|
|
opção <option>-nat</option> do programa. A
|
|
biblioteca &man.libalias.3; é usada tanto pelo
|
|
&man.ppp.8; quanto pelo &man.natd.8;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="parallel-connect">
|
|
<para>Como posso conectar duas estações
|
|
FreeBSD por linha paralela, usando o PLIP?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por gentileza, refira-se à seção
|
|
sobre <link xlink:href="../handbook/plip.html">PLIP do
|
|
&a.ptbr.p.handbook;</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="create-dev-net">
|
|
<para>Por que eu não posso criar um dispositivo
|
|
/dev/ed0?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Porque não é preciso! Na estrutura de
|
|
redes de Berkeley, as interfaces de rede são
|
|
acessadas somente (e diretamente) pelo código do
|
|
<foreignphrase>kernel</foreignphrase>. Por favor
|
|
verifique o arquivo <filename>/etc/rc.network</filename> e
|
|
as páginas do manual para os diversos programas de
|
|
rede ali mencionados, para maiores
|
|
informações. Se isto deixá-lo
|
|
completamente confuso, consulte um livro que descreva a
|
|
administração de rede em um outro sistema
|
|
operacional baseado no modelo BSD. Com poucas
|
|
exceções significativas, a
|
|
administração de rede em sistemas FreeBSD
|
|
é basicamente a mesma da utilizada em sistemas como
|
|
o SunOS 4.0 ou o Ultrix.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ethernet-aliases">
|
|
<para>Como eu configuro aliases (apelidos) de
|
|
Ethernet?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se a intenção é definir um
|
|
apelido IP para uma subrede previamente configurada, basta
|
|
adicionar a máscara <literal>0xffffffff</literal>
|
|
junto à sintaxe usual para definição
|
|
de alias no &man.ifconfig.8;:</para>
|
|
|
|
<screen>&prompt.root; <userinput>ifconfig ed0 alias 192.0.2.2 netmask 0xffffffff</userinput></screen>
|
|
|
|
<para>Do contrário, basta definir o endereço
|
|
de rede e a netmask em questão, da forma
|
|
tradicional:</para>
|
|
|
|
<screen>&prompt.root; <userinput>ifconfig ed0 alias 172.16.141.5 netmask 0xffffff00</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="port-3c503">
|
|
<para>Como eu configuro minha placa 3Com 3C503 para utilizar
|
|
outra interface de conexão ?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se você deseja utilizar uma outra interface de
|
|
conexão, deverá especificar alguns
|
|
parâmetros adicionais na linha de comando do
|
|
&man.ifconfig.8;. A porta padrão é a
|
|
<literal>link0</literal>. Para usar a porta AUI ao
|
|
invés da porta BNC utilize a flag
|
|
<literal>link2</literal>. Tais flags devem ser definidas
|
|
através das variáveis ifconfig_* no arquivo
|
|
<filename>/etc/rc.conf</filename>. (consulte o
|
|
&man.rc.conf.5;).</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="nfs">
|
|
<para>Por que eu tenho problemas com NFS no FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Certas interfaces de rede para PC são melhores
|
|
do que outras (para adotarmos um eufemismo) e as vezes
|
|
podem causar problemas em aplicações que
|
|
utilizam a rede de modo intensivo, como o NFS.</para>
|
|
|
|
<para>Consulte o item <link xlink:href="../handbook/nfs.html">NFS</link> do
|
|
&a.ptbr.p.handbook; para obter mais
|
|
informações sobre o assunto.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="nfs-linux">
|
|
<para>Por que não é possível montar
|
|
sistemas de arquivos NFS de máquinas Linux?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Algumas versões do código NFS do Linux
|
|
aceitam requisições de montagem provenientes
|
|
apenas de portas privilegiadas, experimente o
|
|
comando:</para>
|
|
|
|
<screen>&prompt.root; <userinput>mount -o -P linuxbox:/blah /mnt</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="nfs-sun">
|
|
<para>Por que não é possível montar
|
|
sistemas de arquivos NFS de máquinas Sun?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Estações de trabalho Sun rodando SunOS
|
|
4.X aceitam requisições de montagem
|
|
provenientes apenas de portas privilegiadas, experimente o
|
|
comando:</para>
|
|
|
|
<screen>&prompt.root; <userinput>mount -o -P sunbox:/blah /mnt</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="exports-errors">
|
|
<para>Por que o <command>mountd</command> informa
|
|
repetidamente que <errorname>can't change
|
|
attributes</errorname> e <errorname>bad exports
|
|
list</errorname> utilizando o servidor de NFS do
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O problema mais freqüente é o não
|
|
entendimento correto do formato do arquivo
|
|
<filename>/etc/exports</filename>. Por gentileza, leia
|
|
com atenção a página de manual do
|
|
&man.exports.5; e a documentação sobre
|
|
<link xlink:href="../handbook/nfs.html">NFS</link> no
|
|
&a.ptbr.p.handbook;, especialmente a seção
|
|
sobre a <link xlink:href="../handbook/nfs.html#CONFIGURING-NFS">configuração
|
|
do NFS</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-nextstep">
|
|
<para>Por que existem problemas na comunicação
|
|
(via protocolo PPP) com máquinas NeXTStep?</para>
|
|
</question>
|
|
<answer>
|
|
<para>Experimente desabilitar a variável TCP
|
|
extensions no arquivo <filename>/etc/rc.conf</filename>
|
|
(consulte &man.rc.conf.5;) alterando a variável
|
|
abaixo para NO:</para>
|
|
|
|
<programlisting>tcp_extensions=NO</programlisting>
|
|
|
|
<para>Máquinas Annex da Xylogic também
|
|
apresentam um problema similar neste aspecto, e você
|
|
deve adotar a mesma solução para conectar-se
|
|
a estes sistemas.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ip-multicast">
|
|
<para>Como habilitar o suporte a IP multicast?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Desde o FreeBSD 2.0 que operações
|
|
Multicast são completamente suportadas por
|
|
padrão. Se a itenção é fazer
|
|
o sistema FreeBSD atuar como um roteador multicast,
|
|
será necessário que o
|
|
<foreignphrase>kernel</foreignphrase> do sistema seja
|
|
recompilado com a opção
|
|
<literal>MROUTING</literal> e que o &man.mrouted.8; seja
|
|
executado. O FreeBSD, à partir da versão
|
|
2.2, pode iniciar o &man.mrouted.8; durante o processo de
|
|
inicialização se a variável
|
|
<literal>mrouted_enable</literal> estiver configurada com
|
|
o parâmetro <literal>"YES"</literal> no arquivo
|
|
<filename>/etc/rc.conf</filename>.</para>
|
|
|
|
<para>As ferramentas MBONE estão disponíveis
|
|
em sua própria categoria na coleção
|
|
de <literal>ports</literal>, <link xlink:href="http://www.FreeBSD.org/ports/mbone.html">mbone</link>.
|
|
Se você está procurando as ferramentas de
|
|
conferência <command>vic</command> e
|
|
<command>vat</command>, procure neste
|
|
diretório!</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="dec-pci-chipset">
|
|
<para>Quais interfaces de rede são baseadas no
|
|
chipset DEC PCI?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esta é uma lista compilada por Glen Foster
|
|
<email>gfoster@driver.nsta.org</email>, com algumas
|
|
adições recentes:</para>
|
|
|
|
<table>
|
|
<title>Interfaces de rede baseadas no chipset DEC
|
|
PCI</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Vendedor</entry>
|
|
|
|
<entry>Modelo</entry>
|
|
</row>
|
|
</thead>
|
|
|
|
<tbody>
|
|
<row>
|
|
<entry>ASUS</entry>
|
|
|
|
<entry>PCI-L101-TB</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Accton</entry>
|
|
|
|
<entry>ENI1203</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Cogent</entry>
|
|
|
|
<entry>EM960PCI</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Compex</entry>
|
|
|
|
<entry>ENET32-PCI</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>D-Link</entry>
|
|
|
|
<entry>DE-530</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Dayna</entry>
|
|
|
|
<entry>DP1203, DP2100</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>DEC</entry>
|
|
|
|
<entry>DE435, DE450</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Danpex</entry>
|
|
|
|
<entry>EN-9400P3</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>JCIS</entry>
|
|
|
|
<entry>Condor JC1260</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Linksys</entry>
|
|
|
|
<entry>EtherPCI</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Mylex</entry>
|
|
|
|
<entry>LNP101</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>SMC</entry>
|
|
|
|
<entry>EtherPower 10/100 (Model 9332)</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>SMC</entry>
|
|
|
|
<entry>EtherPower (Model 8432)</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>TopWare</entry>
|
|
|
|
<entry>TE-3500P</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Znyx (2.2.x)</entry>
|
|
|
|
<entry>ZX312, ZX314, ZX342, ZX345, ZX346,
|
|
ZX348</entry>
|
|
</row>
|
|
|
|
<row>
|
|
<entry>Znyx (3.x)</entry>
|
|
|
|
<entry>ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442,
|
|
ZX444, ZX474, ZX478, ZX212, ZX214
|
|
(10mbps/hd)</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="fqdn-hosts">
|
|
<para>Por que preciso utilizar um FQDN (Nomes de
|
|
domínio completamente qualificados) pras
|
|
estações da minha rede?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Provavelmente você vai estar trabalhando com
|
|
estações em domínios diferentes. Por
|
|
exemplo, se você esta em foo.bar.edu e deseja
|
|
alcançar uma estação chamada
|
|
<systemitem>mumble</systemitem> no domínio <systemitem class="fqdomainname">foo.bar.edu</systemitem>, deverá
|
|
referir-se à essa esse host através do seu
|
|
nome de domínio qualificado, <systemitem class="fqdomainname">mumble.foo.bar.edu</systemitem>, ao invés
|
|
de apenas <systemitem>mumble</systemitem>.</para>
|
|
|
|
<para>Normalmente era possível alcançar a
|
|
estação apenas por seu nome. Essa
|
|
função era realizada pelos resolvedores BIND
|
|
do ISC. Contudo, as versões atuais do
|
|
<application>BIND</application> (veja o &man.named.8;) que
|
|
acompanham o FreeBSD não oferecem mais
|
|
abreviações padrão para
|
|
domínios que não sejam FQDN, com a
|
|
única exceção do domínio que
|
|
sua própria estação faz parte. Dessa
|
|
forma, o host <systemitem>mumble</systemitem>, se não for
|
|
localizado como <systemitem class="fqdomainname">mumble.foo.bar.edu</systemitem>, será
|
|
localizado através de uma busca direta à
|
|
partir da raiz dos servidores de
|
|
resolução.</para>
|
|
|
|
<para>Este comportamento é diferente do verificado
|
|
anteriormente onde a pesquisa continuaria através
|
|
de <systemitem class="fqdomainname">mumble.bar.edu</systemitem> e
|
|
<systemitem class="fqdomainname">mumble.edu</systemitem>. Consulte a
|
|
RFC 1535 para descobrir porque isso é considerado
|
|
uma prática ruím, e até mesmo uma
|
|
brecha de segurança.</para>
|
|
|
|
<para>Uma alternativa é adicionar a linha
|
|
abaixo:</para>
|
|
|
|
<programlisting>search foo.bar.edu bar.edu</programlisting>
|
|
|
|
<para>ao invés da linha previamente existente</para>
|
|
|
|
<programlisting>domain foo.bar.edu</programlisting>
|
|
|
|
<para>em seu arquivo <filename>/etc/resolv.conf</filename>
|
|
(consulte &man.resolv.conf.5;). Contudo verifique se a
|
|
ordem de pesquisa não vai além da fronteira
|
|
entre a administração pública e a
|
|
local, conforme definido na RFC 1535.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="network-permission-denied">
|
|
<para>Por que obtenho o erro, <errorname>Permission
|
|
denied</errorname>, para todas as
|
|
operações de rede?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se o <foreignphrase>kernel</foreignphrase> do seu
|
|
FreeBSD foi compilado com a opção
|
|
<literal>IPFIREWALL</literal>, você deve compreender
|
|
que a política padrão, à partir da
|
|
versão 2.1.7 (atualmente alterada durante o
|
|
desenvolvimento da versão 2.1-STABLE) é
|
|
negar todos os pacotes que não forem explicitamente
|
|
permitidos.</para>
|
|
|
|
<para>A seu firewall foi erroneamente configurado, de forma
|
|
não intencional, a operacionalidade do sistema pode
|
|
ser restaurada, simplesmente digitando o seguinte
|
|
(conectado como <systemitem class="username">root</systemitem>):</para>
|
|
|
|
<screen>&prompt.root; <userinput>ipfw add 65534 allow all from any to any</userinput></screen>
|
|
|
|
<para>A variável
|
|
<literal>firewall_type="open"</literal> também pode
|
|
ser definida, no arquivo
|
|
<filename>/etc/rc.conf</filename>.</para>
|
|
|
|
<para>Para maiores informações sobre a
|
|
configuração de firewall, por gentileza,
|
|
consulte a seção correspondente no <link xlink:href="../handbook/firewalls.html">&a.ptbr.p.handbook;</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ipfw-overhead">
|
|
<para>Qual o acréscimo de sobrecarga ocasionado pelo
|
|
IPFW?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por gentileza, refira-se ao capítulo sobre
|
|
<link xlink:href="../handbook/firewalls.html">Firewalls</link>
|
|
do &a.ptbr.p.handbook; mais específicamente, a
|
|
seção sobre <link xlink:href="../handbook/firewalls.html#IPFW-OVERHEAD">Overhead
|
|
& Otimização do IPFW</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ipfw-fwd">
|
|
<para>Minha regra de fwd do IPFW, que deveria redirecionar
|
|
um serviço para outra estação,
|
|
não está funcionando. Por que?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Provavelmente porque a verdadeira
|
|
intenção é traduzir os pacotes que
|
|
chegam na sua estação, e rescrevê-los
|
|
para renviar para a outra máquina, e não
|
|
simplesmente redirecionar o pacote. Normalmente o ideal
|
|
é fazer NAT (tradução de
|
|
endereços de rede). Uma regra de reenvio de
|
|
pacotes, faz exatamente o que ela deve fazer: reenviar
|
|
pacotes. As regras não alteram (rescrevem) o
|
|
conteúdo ou cabeçalhos dos dados presentes
|
|
no pacote. Por exemplo, digamos que a questão seja
|
|
a seguinte regra:</para>
|
|
|
|
<screen>01000 fwd <replaceable>10.0.0.1</replaceable> from any to <replaceable>foo 21</replaceable></screen>
|
|
|
|
<para>Quando um pacote destinado à
|
|
estação <replaceable>foo</replaceable>
|
|
chegar no FreeBSD que filtra essa regra, ele será
|
|
encaminhado para a máquina cujo endereço IP
|
|
é <replaceable>10.0.0.1</replaceable>, mas o
|
|
endereço de destino original do pacote será
|
|
mantido, ou seja, os pacotes chegando em
|
|
<replaceable>10.0.0.1</replaceable> ainda terão a
|
|
estação <replaceable>foo</replaceable> como
|
|
destino final, marcado em seu cabeçalho TCP. O
|
|
endereço de destino não é alterado
|
|
(reescrito) para a máquina
|
|
<replaceable>10.0.0.1</replaceable>, o que propicia um
|
|
comportamento de verificação de checksum do
|
|
cabeçalho IP. O comportamento normal é que
|
|
a máquina <replaceable>10.0.0.1</replaceable>
|
|
descarte o pacote, já que o endereço de
|
|
destino do mesmo não é o endereço da
|
|
estação em questão. Esse
|
|
comportamento costuma confundir alguns usuários
|
|
menos experientes, não correspondendo a
|
|
ação com suas expectativas. Essa é
|
|
uma característica do IPFW, e não um
|
|
problema.</para>
|
|
|
|
<para>Consulte o <literal>FAQ</literal> sobre <link linkend="service-redirect">Redirecionamento de
|
|
Serviços</link>, a página de manual do
|
|
&man.natd.8;, ou uma das diversas ferramentas de
|
|
redirecionamento disponíveis na
|
|
Coleção de <literal>Ports</literal>, para
|
|
verificar a forma correta de obter o comportamento
|
|
desejado.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="service-redirect">
|
|
<para>Como redirecionar requisições de
|
|
serviço de uma máquina para outra?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Serviços como FTP (e outros) podem ser
|
|
redirecionados com o pacote <literal>socket</literal>,
|
|
disponível na árvore de
|
|
Coleção do <literal>Ports</literal>, sob a
|
|
categoria <quote>sysutils</quote>. Simplesmente substitua
|
|
a linha de comando do serviço a ser redirecionado
|
|
para executar a ferramenta <literal>socket</literal>, como
|
|
no exemplo abaixo:</para>
|
|
|
|
<programlisting>ftp stream tcp nowait nobody /usr/local/bin/socket socket <replaceable>ftp.example.com</replaceable> <replaceable>ftp</replaceable></programlisting>
|
|
|
|
<para>Onde ftp.foo.com e ftp são a máquina
|
|
(host) e a porta de conexão que será
|
|
utilizada para o redirecionamento, respectivamente.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="bandwidth-mgr-tool">
|
|
<para>Onde obtenho uma ferramenta de gerenciamento de
|
|
banda?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Existem três ferramentas de gerenciamento de
|
|
banda disponíveis para o FreeBSD. O
|
|
&man.dummynet.4;, integrada ao FreeBSD (ou mais
|
|
especificamente ao &man.ipfw.4;);, o <link xlink:href="http://www.csl.sony.co.jp/person/kjc/programs.html">ALTQ</link>,
|
|
disponível gratuitamente, e o <link xlink:href="http://www.etinc.com/">Bandwidth Manager da
|
|
Emerging Technologies</link>, um produto
|
|
comercial.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="bpf-not-configured">
|
|
<para>O que causa o erro <errorname>/dev/bpf0: device not
|
|
configured</errorname>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Você está tentando usar um programa que
|
|
precisa do Berkeley Packet Filter (veja a página de
|
|
manual do &man.bpf.4; para obter maiores
|
|
informações), mas ele não está
|
|
compilado no <foreignphrase>kernel</foreignphrase>.
|
|
Adicione a seguinte linha no arquivo de
|
|
configuração do seu
|
|
<foreignphrase>kernel</foreignphrase> e
|
|
recompile-o:</para>
|
|
|
|
<programlisting>pseudo-device bpf # Berkeley Packet Filter</programlisting>
|
|
|
|
<para>Depois que reiniciar o sistema com o novo
|
|
<foreignphrase>kernel</foreignphrase>, basta criar a
|
|
interface do dispositivo, o que pode ser feito ao executar
|
|
o seguinte comando, no diretório
|
|
<filename>/dev</filename>:</para>
|
|
|
|
<screen>&prompt.root; <userinput>sh MAKEDEV bpf0</userinput></screen>
|
|
|
|
<para>Por gentileza, refira-se à seção
|
|
sobre <link xlink:href="../handbook/kernelconfig-nodes.html">Criação
|
|
de interface de Dispositivos</link> do
|
|
&a.ptbr.p.handbook;, para obter mais
|
|
informações sobre o assunto.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="mount-smb-share">
|
|
<para>Como montar o disco de uma estação
|
|
Windows na minha rede, de forma semelhante ao smbmount em
|
|
sistemas Linux?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Use o conjunto de ferramentas
|
|
<application>SMBFS</application>. Se trata de um conjunto
|
|
de modificações no
|
|
<foreignphrase>kernel</foreignphrase>, e uma série
|
|
de aplicações específicas. O
|
|
programa e outras informações podem ser
|
|
obtidos na Coleção de
|
|
<literal>Ports</literal> do FreeBSD, em <package>net/smbfs</package>, ou no sistema base
|
|
do FreeBSD a partir da versão 4.5-RELEASE.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="icmp-response-bw-limit">
|
|
<para>O que são as mensagens sobre
|
|
<quote>icmp-response bandwidth limit 300/200 pps</quote>
|
|
em meus registros de logs?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>É o resultado de seu
|
|
<foreignphrase>kernel</foreignphrase> informando-o que
|
|
alguma atividade esta provocando o envio de um
|
|
número de respostas ICMP ou TCP reset (RST)
|
|
superior ao número que o
|
|
<foreignphrase>kernel</foreignphrase> julga adequado.
|
|
Respostas ICMP são, geralmente, comportamento
|
|
ocasionado pela tentativa de conexão em portas UDP
|
|
não utilizadas. As respostas TCP reset são
|
|
o resultado gerado pelas tentativas de conexão em
|
|
portas TCP não poníveis. Entre outras
|
|
causas, algumas das atividades que podem ocasionar esse
|
|
tipo de mensage, são:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Ataques de negação de serviço
|
|
(DoS) por força bruta (em
|
|
oposição a ataques baseados em um
|
|
único pacote que visa explorar uma
|
|
vulnerabilidade específica).</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Varreduras de porta (<foreignphrase>port
|
|
scans</foreignphrase>) que visam rastrear um elevado
|
|
número de portas (em oposição a
|
|
ataques que tentam varrer apenas um pequeno
|
|
número de portas conhecidas).</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>O primeiro número (valor) na mensagem indica
|
|
quantos pacotes foram enviados pelo
|
|
<foreignphrase>kernel</foreignphrase> antes do limite
|
|
passar a vigorar e o segundo valor indica o limite
|
|
estabelecido no <foreignphrase>kernel</foreignphrase>.
|
|
Você pode controlar este limite através da
|
|
variável <varname>net.inet.icmp.icmplim</varname>
|
|
do sysctl com instruções como esta abaixo,
|
|
onde estabelecemos um limite de 300 pacotes por
|
|
segundo:</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim=300</userinput></screen>
|
|
|
|
<para>Se a intenção é não
|
|
registrar essas mensagens nos arquivos de registros, mas
|
|
ainda assim manter a capacidade do
|
|
<foreignphrase>kernel</foreignphrase> limitar as
|
|
respostas, a variável
|
|
<varname>net.inet.icmp.icmplim_output</varname> do sysctl
|
|
pode ser usada para desabilitar o registro:</para>
|
|
|
|
<screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim_output=0</userinput></screen>
|
|
|
|
<para>Finalmente se a inteção é
|
|
desabilitar esse comportamento por completo, basta definir
|
|
a variável <varname>net.inet.icmp.icmplim</varname>
|
|
do sysctl (conforme o exemplo acima) como 0. Desabilitar
|
|
o recurso de limite de resposta é desencorajado
|
|
pelas razões acima expostas.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="unknown-hw-addr-format">
|
|
<para>Do que se trata estas mensagens de erro
|
|
<errorname>arp: unknown hardware address
|
|
format</errorname>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Significa que alguma interface de rede no mesmo
|
|
barramento Ethernet que você, está usando um
|
|
endereço de MAC cujo formato não é
|
|
reconhecido pelo FreeBSD. Provavelmente isso deve estar
|
|
sendo causado por algum outro usuário, fazendo
|
|
experiências com placas Ethernet em algum lugar na
|
|
sua mesma rede. Em redes com Cable Modens esse
|
|
comportamento é ainda mais comum; não
|
|
é prejudicial e não atrapalha a performance
|
|
do seu FreeBSD.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="cvsup-missing-libs">
|
|
<para>Acabei de instalar o CVSup, mas ao tentar usá-lo,
|
|
aparecem erros. O que está havendo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Primeiro, verifique se as mensagens de erro em
|
|
questão são como essas:</para>
|
|
|
|
<programlisting>/usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found</programlisting>
|
|
|
|
<para>Esse tipo de erro se deve à
|
|
instalação do <literal>port</literal>
|
|
<package>net/cvsup</package> em
|
|
estações sem o XFree86. Se a
|
|
inteção é usar a interface
|
|
gráfica oferecida pelo
|
|
<application>CVSup</application>, então instale o
|
|
<application>XFree86</application> imediatamente. Do
|
|
contrário, se a intenção é
|
|
usar o <application>CVSup</application> apenas por linha
|
|
de comando, basta desinstalar a aplicação
|
|
anterior e instalar o <literal>port</literal> <package>net/cvsup-without-gui</package>. A
|
|
seção sobre <link xlink:href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html">CVSup</link>
|
|
do &a.ptbr.p.handbook; cobre essas questões de
|
|
forma mais detalhada.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="security">
|
|
<title>Segurança</title>
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="extra-named-port">
|
|
<para>O BIND (<command>named</command>) está
|
|
escutando na porta 53 e em outras portas elevadas. O que
|
|
está havendo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O FreeBSD, a partir da versão 3.0, utiliza
|
|
portas não privilegiadas e elevadas,
|
|
aleatoriamente, para responder à
|
|
requisições de DNS. Se a
|
|
intenção é usar a porta 53 para
|
|
responder a estas requisições, para adequar
|
|
o comportamento do BIND à um
|
|
<foreignphrase>firewall</foreignphrase> ou apenas para
|
|
sentir-se melhor, experimente acrescentar a
|
|
instruçõo abaixo no arquivo
|
|
<filename>/etc/namedb/named.conf</filename>:</para>
|
|
|
|
<programlisting>options {
|
|
query-source address * port 53;
|
|
};</programlisting>
|
|
|
|
<para>O <literal>*</literal> deve ser substituído por
|
|
um endereço IP único, caso se deseje
|
|
restringir ainda mais este comportamento.</para>
|
|
|
|
<para>De qualquer forma, parabéns. É uma
|
|
pratica saudável verificar registros não
|
|
usuais no conteúdo de saída do
|
|
&man.sockstat.1; </para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="sendmail-port-587">
|
|
<para>O Sendmail está ouvindo na porta 587
|
|
além da tradicional porta 25! O que está
|
|
havendo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>As versões mais novas do Sendmail tem suporte
|
|
à uma característica que se chama
|
|
<foreignphrase>Mail Submission</foreignphrase>, que ouve
|
|
na porta 587. Esse serviço não é
|
|
completamente suportado ainda, mas sua popularidade vem
|
|
crescendo.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="toor-account">
|
|
<para>O que é a conta do usuário
|
|
<systemitem class="username">toor</systemitem> que tem UID 0? Meu sistema foi
|
|
comprometido?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Não se preocupe. O usuário
|
|
<systemitem class="username">toor</systemitem> é uma conta
|
|
<quote>alternativa</quote> com poderes de super
|
|
usuário (toor é root escrito ao
|
|
contrário). Normalmente esse usuário era
|
|
criado quando o interpretador de comandos &man.bash.1; era
|
|
instalado, mas agora o usuário existe por
|
|
padrão no sistema. A intenção
|
|
é que o usuário seja usado com um
|
|
interpretador de comandos fora do padrão, de forma
|
|
que o ambiente de linha de comando do usuário
|
|
<systemitem class="username">root</systemitem> não tenha que ser
|
|
alterada. Essa é uma situação
|
|
importante quando nos referimos à interpretadores
|
|
de comandos que não fazem parte da base do sistema
|
|
operacional (por exemplo, que foram instaladas do
|
|
<literal>Ports</literal> ou como pacotes, já que
|
|
normalmente, elas são instaladas sob o
|
|
<filename>/usr/local/bin</filename> que por padrão
|
|
está em um sistema de arquivos diferente da raiz do
|
|
sistema. Em uma situação onde o
|
|
interpretador de comandos do usuário estiver sob
|
|
<filename>/usr/local/bin</filename> ou sob
|
|
<filename>/usr</filename> (ou onde quer que seja) e esse
|
|
sistema de arquivos não puder ser montado por
|
|
alguma razão, o usuário
|
|
<systemitem class="username">root</systemitem> estará 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.
|
|
</para>
|
|
|
|
<para>Alguns administradores costumam usar o
|
|
<systemitem class="username">toor</systemitem> para tarefas do dia-a-dia, com
|
|
um interpretador de comandos
|
|
(<foreignphrase>shell</foreignphrase>) não comum, e
|
|
deixando o <systemitem class="username">root</systemitem> com seu interpretador
|
|
de comandos (<foreignphrase>shell</foreignphrase>)
|
|
padrão para realizar tarefas de emergência ou
|
|
de modo mono usuário. Por padrão, o
|
|
usuário <systemitem class="username">toor</systemitem> não pode
|
|
ser usado, já que ele não tem uma senha
|
|
definida. Para habilitar a conta, logue-se como
|
|
<systemitem class="username">root</systemitem> no sistema e defina uma senha
|
|
para o <systemitem class="username">toor</systemitem>.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="suidperl">
|
|
<para>Por que o <command>suidperl</command> não
|
|
está funcionando corretamente?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por motivos de segurança, a
|
|
instalação padrão do
|
|
<command>suidperl</command> não tem o bit suid
|
|
definido. Os administradores de sistemas podem reaver o
|
|
comportamento esperado com o seguinte comando:</para>
|
|
|
|
<screen>&prompt.root; <userinput>chmod u+s /usr/bin/suidperl</userinput></screen>
|
|
|
|
<para>Se a intenção é que o
|
|
<command>suidperl</command> seja compilado com suid
|
|
durante as atualizações do sistema, edite o
|
|
<filename>/etc/make.conf</filename> e adicione a linha
|
|
<varname>ENABLE_SUIDPERL=true</varname> no arquivo, antes
|
|
de começar um <command>make
|
|
buildworld</command>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="ppp">
|
|
<title>PPP</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="userppp">
|
|
<para>Não consigo fazer meu &man.ppp.8; funcionar. O
|
|
que estou fazendo de errado?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Deve-se primeiro ler a man page do &man.ppp.8; e <link xlink:href="../handbook/ppp-and-slip.html#USERPPP">
|
|
seção PPP do &a.ptbr.p.handbook;</link>.
|
|
Habilite os logs com o comando</para>
|
|
|
|
<programlisting>set log Phase Chat Connect Carrier lcp ipcp ccp command</programlisting>
|
|
|
|
<para>Este comando pode ser digitado no prompt do &man.ppp.8;
|
|
ou pode ser colocado no
|
|
<filename>/etc/ppp/ppp.conf</filename> (A
|
|
seção <literal>default</literal> no
|
|
início do arquivo é o melhor lugar para
|
|
colocar isso). Tenha certeza de que
|
|
seu<filename>/etc/syslog.conf</filename> (veja
|
|
&man.syslog.conf.5;) tenha as linhas</para>
|
|
|
|
<programlisting>!ppp *.*/var/log/ppp.log</programlisting>
|
|
|
|
<para>e que o arquivo <filename>/var/log/ppp.log</filename>
|
|
exista. Agora pode-se ver o que está acontecendo
|
|
analisando seu arquivo de log. Não se preocupe se
|
|
isso não faz sentido mas se precisar de ajuda, esta
|
|
informação fará sentido a
|
|
eles.</para>
|
|
|
|
<para>Se a sua versão do &man.ppp.8; não
|
|
suporta o comando set log ,deve-se fazer o download da
|
|
<link xlink:href="http://people.FreeBSD.org/~brian/">
|
|
versão mais recente</link>. O FreeBSD 2.1.5 (e
|
|
posteriores) suporta a compilação do
|
|
código mais recente.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-hangs">
|
|
<para>Por que o &man.ppp.8; fica pendurado quando eu o
|
|
inicializo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Isso normalmente acontece porque seu hostname
|
|
não esta sendo resolvido. A melhor maneira de
|
|
corrigir isso é certificar-se de que o
|
|
<filename>/etc/hosts</filename> está sendo
|
|
consultado pelo resolvedor; editando primeiro o
|
|
<filename>/etc/host.conf</filename> e colocando
|
|
<literal>hosts</literal> na primeira linha. Para isso,
|
|
simplesmente adicione no <filename>/etc/hosts/</filename>
|
|
uma entrada para sua máquina local. Se não
|
|
tem nenhuma rede local, mude a linha do
|
|
<systemitem>localhost</systemitem>:</para>
|
|
|
|
<programlisting>127.0.0.1 foo.example.com foo localhost</programlisting>
|
|
|
|
<para>Senão, adicione uma outra entrada para seu
|
|
host. Consulte as man pages relevantes para maiores
|
|
detalhes.</para>
|
|
|
|
<para>Ao terminar, deve ser possível dar um
|
|
<command>ping -c1 `nomedohost`</command> com sucesso.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-nodial-auto">
|
|
<para>Porque o &man.ppp.8; não disca em
|
|
modo<literal>-auto</literal>
|
|
</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Primeiro verifique se há uma rota
|
|
padrão. Ao executar um <command>netstat
|
|
-rn</command> (veja &man.netstat.1;), devem aparecer duas
|
|
entradas como essas:</para>
|
|
|
|
<programlisting>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</programlisting>
|
|
|
|
<para>Assume-se o uso do endereço recomendado pelo
|
|
&a.ptbr.p.handbook;, páginas de manual ou no
|
|
arquivo ppp.conf.sample. Se a rota padrão
|
|
não foi definida, é possível que a
|
|
versão do &man.ppp.8; seja antiga, uma vez que
|
|
não entendem a palavra <literal>HISADDR</literal>
|
|
no arquivo ppp.conf. Se a versão do seu FreeBSD
|
|
for anterior a 2.2.5, mude a linha</para>
|
|
|
|
<programlisting>add 0 0 HISADDR</programlisting>
|
|
|
|
<para>para</para>
|
|
|
|
<programlisting>add 0 0 10.0.0.2</programlisting>
|
|
|
|
<para>Outra razão para a rota padrão estar
|
|
ausente, pode ser porquê você equivocadamente
|
|
definiu uma rota default em seu arquivo
|
|
<filename>/etc/rc.conf</filename> (veja &man.rc.conf.5;)
|
|
(este arquivo era chamado
|
|
<filename>/etc/sysconfig</filename> nas versões
|
|
anteriores a 2.2.2) e omitiu a linha</para>
|
|
|
|
<programlisting>delete ALL</programlisting>
|
|
|
|
<para>no <filename>ppp.conf</filename>. Se este for o
|
|
problema, volte para <link xlink:href="../handbook/ppp-and-slip.html#USERPPP-FINAL">
|
|
seção de configurações
|
|
Finais do &a.ptbr.p.handbook;.</link></para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="no-route-to-host">
|
|
<para>O que <errorname>No route to host</errorname>
|
|
significa?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Este erro é causado pela falta das linhas</para>
|
|
|
|
<programlisting>MYADDR:
|
|
delete ALL
|
|
add 0 0 HISADDR</programlisting>
|
|
|
|
<para>no seu arquivo
|
|
<filename>/etc/ppp/ppp.linkup</filename>. Isso somente
|
|
é necessário se você tem um IP
|
|
dinâmico ou não sabe o endereço do seu
|
|
gateway. Se você esta usando o modo interativo,
|
|
pode-se digitar o seguinte, depois de ter entrado no
|
|
<literal>modo packet</literal> (O modo packet é
|
|
indicado pelo <acronym>PPP</acronym> maiísculo no
|
|
prompt):
|
|
</para>
|
|
|
|
<programlisting>delete ALL
|
|
add 0 0 HISADDR</programlisting>
|
|
|
|
<para>Consulte a <link xlink:href="../handbook/ppp-and-slip.html#USERPPP-DYNAMICIP">
|
|
seção PPP e Endereços IPs
|
|
dinâmicos</link> do &a.ptbr.p.handbook; para
|
|
maiores detalhes
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="connection-threeminutedrop">
|
|
<para>Porque minha conexão cai depois de (em média)
|
|
3 minutos?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O default timeout do PPP é de 3 minutos. Isso pode
|
|
ser ajustado com a linha</para>
|
|
|
|
<programlisting>set timeout <replaceable>NNN</replaceable></programlisting>
|
|
|
|
<para>Onde NNN é o número em
|
|
segundos de inatividade antes da conexão ser
|
|
fechada. Se <replaceable>NNN</replaceable> é zero a conexão
|
|
nunca será fechada devido a um timeout. É
|
|
possível colocar esse comando no
|
|
<filename>ppp.conf</filename> ou digitá-lo no modo
|
|
interativo. Também é
|
|
possível que isso seja ajustado enquanto sua
|
|
conexão esta ativa conectando
|
|
pelo socket do servidor <application>ppp</application> usando
|
|
&man.telnet.1; ou &man.pppctl.8;. Consulte a man
|
|
page do &man.ppp.8; para maiores detalhes.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-drop-heavy-load">
|
|
<para>Por que minha conexão cai quando está
|
|
sobrecarregada?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se você tem o relatório da qualidade da
|
|
ligação (opção LPR)
|
|
configurado é possível que muitos pacotes
|
|
LQR entre sua máquina e a origem estejam sendo
|
|
perdidos. O ppp deduz que sua linha deve ser ruim e
|
|
desconecta. Antes da versão 2.2.5 do FreeBSD, o
|
|
LQR era habilitado por default. Agora ele é
|
|
desabilitado por default. O LQR pode ser desabilitado com
|
|
a linha</para>
|
|
|
|
<programlisting>disable lqr</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-drop-random">
|
|
<para>Por que minha conexão cai após um
|
|
período aleatório de tempo?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Às vezes, em uma linha telefônica com
|
|
ruídos, ou quando a linha tem espera de
|
|
ligações, seu modem pode desligar, pensando
|
|
(incorretamente) que perdeu o sinal de linha.</para>
|
|
|
|
<para>Existem ajustes em grande parte dos modems
|
|
determinando o quão tolerante ele deve ser a
|
|
respeito de perdas de sinal de linha. No USR Sportster,
|
|
por exemplo, isso é medido pelo registrador S10 em
|
|
décimos de segundo. Para fazer com que seu modem
|
|
não caia, poderia-se adicionar a seguinte string
|
|
dial up para envio/espera:</para>
|
|
|
|
<programlisting>set dial "...... ATS10=10OK......"
|
|
</programlisting>
|
|
|
|
<para>Consulte o manual do seu modem para detalhes.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-hangs-random">
|
|
<para>Por que minha conexão fica pendurada depois de
|
|
um período aleatório de tempo?</para>
|
|
</question><answer>
|
|
|
|
<para>Muitas pessoas experimentam conexões presas sem
|
|
aparentemente nenhuma explicação.</para>
|
|
|
|
<para>Se você usa um modem externo, você
|
|
simplesmente pode tentar um &man.ping.8; para ver se a luz
|
|
<acronym>TD</acronym> fica piscando quando você
|
|
transmite dados. Se piscar (e a luz do
|
|
<acronym>RD</acronym> não), o problema é com
|
|
a extremidade remota. Se o <acronym>TD</acronym>
|
|
não piscar, o problema é local. Com um
|
|
modem interno você precisará usar o comando
|
|
<literal>set server</literal> no seu arquivo ppp.conf.
|
|
Quando ocorrer de cair, conecte com o &man.ppp.8; usando o
|
|
&man.pppctl.8;. Se a conexão de sua rede voltar de
|
|
repente (o ppp voltou devido a atividade no
|
|
diagnóstico do socket) ou se você não
|
|
consegue conectar (assumindo que o comando <literal>set
|
|
socket</literal> foi iniciado com sucesso) o problema
|
|
é local. Se você puder conectar e ainda as
|
|
coisas estiverem "penduradas" habilite os logs do async
|
|
local com o comando <literal>set log local async</literal>
|
|
e use o &man.ping.8; de outra janela ou terminal para
|
|
forçar a atividade da conexão. Os logs
|
|
async irão mostrar os dados que estão sendo
|
|
transmitidos e recebidos durante a ligação.
|
|
Se os dados estão indo e não estão
|
|
voltando, o problema é remoto.</para>
|
|
|
|
<para>Tendo estabelecido que o problema é local ou
|
|
remoto, você tem agora duas possibilidades:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>Se o problema é remoto, leia a
|
|
secção <xref linkend="ppp-remote-not-responding"/>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Se o problema for remoto, leia a
|
|
secção <xref linkend="ppp-hung"/>.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-remote-not-responding">
|
|
<para>A extremidade remota não está
|
|
respondendo. O que eu posso fazer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Há muito pouco que pode ser feito em
|
|
relação a isso. A maioria dos provedores
|
|
irão recusar ajuda-lo se você não usar
|
|
o Windows. Você pode habilitar a
|
|
<literal>lqr</literal> no seu arquivo
|
|
<filename>ppp.conf</filename>, permitindo ao &man.ppp.8;
|
|
detectar a falha remota e desligar-se, mas essa
|
|
detecção é relativamente lenta e
|
|
consequentemente inútil. Pode-se querer evitar
|
|
dizer ao seu provedor que você está rodando o
|
|
user-ppp....</para>
|
|
|
|
<para>Primeiro tente desabilitar toda compressão
|
|
local adicionando o seguinte em sua
|
|
configuração:</para>
|
|
|
|
<programlisting>disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
|
|
deny pred1 deflate deflate24 protocomp acfcomp shortseq vj</programlisting>
|
|
|
|
<para>Então reconecte para assegurar de que isso
|
|
não fez diferença. Se as coisas melhoraram
|
|
ou se o problema foi resolvido completamente, determine
|
|
quais ajustes fizeram a diferença através de
|
|
tentativas e erros. Isto fornecerá uma boa cartada
|
|
quando você contactar seu provedor (embora possa
|
|
parecer que você não esteja rodando um
|
|
produto Microsoft).</para>
|
|
|
|
<para>Antes de contactar seu provedor, habilite o log async
|
|
localmente e aguarde até que sua conexão
|
|
caia novamente. Isto pode usar um bocado de espaço
|
|
em disco. A última leitura de dados da porta pode
|
|
ser de seu interesse. São geramente dados em
|
|
ascii, e podem mesmo descrever o problema (<quote>Memory
|
|
fault, core dumped</quote>?).</para>
|
|
|
|
<para>Se seu provedor for prestativo, ele deve ser capaz de
|
|
habilitar o log da extremidade da conexão dele,
|
|
então 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
|
|
&a.brian; ou peça para seu provedor
|
|
contactá-lo diretamente.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-hung">
|
|
<para>O &man.ppp.8; está travado. O que eu posso
|
|
fazer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A melhor coisa a fazer aqui é recompilar o
|
|
&man.ppp.8; adicionando <literal>CFLAGS+=-g </literal>e
|
|
<literal>STRIP=</literal> no final do Makefile, depois
|
|
faça <command>make clean && make &&
|
|
make install</command>. Quando o &man.ppp.8; ficar
|
|
travado, procure o id do processo com um <command>ps ajxww
|
|
| fgrep ppp</command> e execute <command>gdb ppp
|
|
</command>PID. No prompt do gdb você pode
|
|
então usar o <command>bt</command> para obter um
|
|
rastreamento da pilha.</para>
|
|
|
|
<para>Envie os resultados para:
|
|
<email>brian@Awfulhak.org</email>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-loginok-thennothing">
|
|
<para>Por que não acontece nada depois da mensagem
|
|
<quote>Login OK!</quote>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Antes da versão 2.2.5 do FreeBSD, uma vez que a
|
|
conexão foi estabelecida, o &man.ppp.8; espera que o
|
|
modem remoto inicie o protocolo do controle de linha
|
|
(LCP), Muitos provedores não iniciarão a
|
|
negociação e esperarção que o
|
|
cliente a faça. Para forçar o &man.ppp.8;
|
|
para iniciar o LCP, use a seguinte linha:</para>
|
|
|
|
<programlisting>set openmode active</programlisting>
|
|
|
|
<note>
|
|
<para>Nota: isto geralmente não prejudica em nada
|
|
se a negociação for iniciada por ambos os
|
|
lados, assim, a opção openmode é
|
|
agora ativada por padrão. Entretanto, na
|
|
próxima seção será explicado
|
|
quando isso realmente <emphasis>proporciona</emphasis>
|
|
algum problema.</para>
|
|
</note>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-same-magic">
|
|
<para>Eu vejo os mesmos erros sobre <literal>magic is the
|
|
same</literal>. O que significa?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Ocasionalmente, depois da conexão, você
|
|
pode ver mensagens no log dizendo <quote>"magic is the
|
|
same"</quote>. Às vezes essas mensagens
|
|
são sem importância e as vezes um lado ou o
|
|
outro sai. A maioria das implementações do
|
|
ppp não consegue continuar com esse problema, e
|
|
mesmo se a conexão estiver para ser estabelecida,
|
|
você verá repetidas requisições
|
|
de configuração e reconhecimentos de
|
|
configuração no arquivo de log até
|
|
que o &man.ppp.8; eventualmente desista e feche a
|
|
conexão.</para>
|
|
|
|
<para>Isto normalmente acontece em máquinas com
|
|
discos lentos que estão dando spawning getty na
|
|
porta e executam o &man.ppp.8; através de um login
|
|
script ou programa depois do login. Eu também ouvi
|
|
relatórios disso estar acontecendo consistentemente
|
|
ao usar slirp. A razão é que no tempo entre
|
|
saída do &man.getty.8; e a
|
|
inicialização do &man.ppp.8;, o &man.ppp.8; do
|
|
lado cliente começa a emitir pacotes do protocolo
|
|
do controle da linha LCP). Porque o ECHO ainda esta
|
|
ligado na porta do servidor, o cliente então
|
|
vê esses pacotes serem <quote>refletidos</quote> de
|
|
volta.</para>
|
|
|
|
<para>Uma parte da negociação LCP deve
|
|
estabelecer um número mágico para cada lado
|
|
da ligação de modo que as
|
|
<quote>reflexões</quote> possam ser detectadas. O
|
|
protocolo diz que quando um ponto tenta negociar o mesmo
|
|
número mágico, um NAK deve ser emitido e um
|
|
novo número mágico deve ser escolhido.
|
|
Durante o período que a porta do server tem o ECHO
|
|
ligado, o &man.ppp.8; cliente manda pacotes LCP, vê o
|
|
mesmo número mágico nos pacotes refletidos e
|
|
manda NAKs a ele. Ve-se também o NAK que foi
|
|
refletido (que significa que o &man.ppp.8; deve mudar o seu
|
|
número mágico). Isto produz um
|
|
número potencialmente enorme de mudanças de
|
|
números mágicos que estão sendo
|
|
empilhados no buffer do tty do servidor. Tão logo
|
|
o &man.ppp.8; se inicia no servidor, ele é inundado
|
|
com mudanças de números mágicos
|
|
imediatamente ao negociar o LCP, e desiste. Enquanto
|
|
isso, o cliente não vê por muito tempo as
|
|
reflexões e fica feliz apenas por algum tempo,
|
|
até receber a desconexão do servidor.</para>
|
|
|
|
<para>Isto pode ser evitado permitindo que a
|
|
negociação seja iniciada pelo servidor
|
|
(peer), adicionando a seguinte linha no seu arquivo
|
|
ppp.conf:</para>
|
|
|
|
<programlisting>set openmode passive</programlisting>
|
|
|
|
<para>Isso diz ao &man.ppp.8; para esperar que o servidor
|
|
inicie as negociações LCP. Alguns
|
|
servidores, entretanto, podem nunca iniciar as
|
|
negociações. Se este for o caso, você
|
|
deve fazer algo como:</para>
|
|
|
|
<programlisting>set openmode active 3</programlisting>
|
|
|
|
<para>Isto diz ao &man.ppp.8; para ser passivo durante 3
|
|
segundos, e então começar a enviar
|
|
requisições LCP. Se o servidor (peer)
|
|
começar a enviar requisições durante
|
|
esse período, o &man.ppp.8; irá responder
|
|
imediatamente, ao invés de aguardar pelo
|
|
período completo de 3 segundos.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-lcp-constant">
|
|
<para>As negociações LCP continuam até
|
|
que a conexão seja fechada. O que está
|
|
errado?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Há atualmente uma característica
|
|
faltando no ppp onde ele não associa respostas LCP
|
|
, CCP & IPCP com suas requisições
|
|
originais. Como consequência, se uma
|
|
implementação ppp é 6 segundos mais
|
|
lenta do que o outro lado, esse lado emitirá duas
|
|
requisões adicionais de configuração
|
|
LCP. Isto é fatal.</para>
|
|
|
|
<para>Considere duas implementações,
|
|
<systemitem>A</systemitem> e <systemitem>B</systemitem>.
|
|
<systemitem>A</systemitem> emite requisições LCP
|
|
imediatamente após a conexão e
|
|
<systemitem>B</systemitem> leva 7 segundos para iniciar. Quando
|
|
<systemitem>B</systemitem> inicia, <systemitem>A</systemitem> emitiu 3 LCP
|
|
REQs. Nós estamos supondo que a linha ECHO esteja
|
|
desabilitada, senão nós veríamos
|
|
problemas com número mágico como descritos
|
|
na seção anterior. <systemitem>B</systemitem> emite
|
|
um REQ, entao um ACK para o primeiro dos REQs de
|
|
<systemitem>A</systemitem>. Isto resulta em <systemitem>A</systemitem>
|
|
entrando no estado <acronym>OPENED</acronym> e enviando um
|
|
ACK (o primeiro) de volta a <systemitem>B</systemitem>. Enquanto
|
|
isso, <systemitem>B</systemitem> envia de volta mais dois ACKs em
|
|
resposta aos dois REQs adicionais enviados por
|
|
<systemitem>A</systemitem> antes de <systemitem>B</systemitem> ter
|
|
iniciado. <systemitem>B</systemitem> então recebe o
|
|
primeiro ACK de <systemitem>A</systemitem> e também entra
|
|
no estado de <acronym>OPENED</acronym>.
|
|
<systemitem>A</systemitem> recebe o segundo ACK de
|
|
<systemitem>B</systemitem> e retorna ao estado de
|
|
<acronym>REQ-SENT</acronym>, enviando um outro (seguinte)
|
|
REQ conforme a RFC ordena. Então, recebe o
|
|
terceiro ACK e entra no estado OPENED. Enquanto isso,
|
|
<systemitem>B</systemitem> recebe REQ (posterior) de
|
|
<systemitem>A</systemitem>, tendo como resultado uma
|
|
reversão para o estado <acronym>ACK-SENT</acronym>
|
|
e enviando um outro (segundo) REQ e (depois) ACK conforme
|
|
a RFC. Conseguindo o REQ, <systemitem>A</systemitem> entra em
|
|
<acronym>REQ-SENT</acronym> e envia outro REQ.
|
|
Imediatamente recebe o ACK seguinte e entra em
|
|
<acronym>OPENED</acronym>.</para>
|
|
|
|
<para>Isto continuará até que um dos lados
|
|
descubra que eles não estão indo a lugar
|
|
algum e desista.</para>
|
|
|
|
<para>A melhor maneira de evitar isso é configurar um
|
|
lado para ser <literal>passivo</literal> - isso faz com
|
|
que um lado espere pelo outro para iniciar uma
|
|
negociação. Isto pode ser feito com o
|
|
comando</para>
|
|
|
|
<programlisting>set openmode passive</programlisting>
|
|
|
|
<para>Deve-se ter cuidado com esta opção.
|
|
Você também deve usar o comando</para>
|
|
|
|
<programlisting>set stopped N</programlisting>
|
|
|
|
<para>para limitar a quantidade de tempo que o &man.ppp.8;
|
|
esperará pelo outro lado iniciar a
|
|
negociação. Alternativamente o
|
|
comando</para>
|
|
|
|
<programlisting>set openmode active N</programlisting>
|
|
|
|
<para>(onde <replaceable>N</replaceable> é o
|
|
número de segundos para esperar antes de iniciar as
|
|
negociações) pode ser usado. Consulte as
|
|
páginas de manual para detalhes.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-lockups">
|
|
<para>Por que o &man.ppp.8; trava logo apó a
|
|
conexão?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Antes da versão 2.2.5 do FreeBSD, era
|
|
possível que sua ligação fosse
|
|
desabilitada logo após a conexão, devido a
|
|
incapacidade de negociação da
|
|
compressão Predictor1 do &man.ppp.8;. Isto
|
|
aconteceria somente se ambos os lados tentassem negociar
|
|
protocolos diferentes do controle da compressão
|
|
(CCP). Este problema atualmente esta corrigido, mas se
|
|
você ainda roda uma versão antiga do
|
|
&man.ppp.8;, o problema pode ser resolvido com a
|
|
linha:</para>
|
|
|
|
<programlisting>disable pred1</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-shell-test-lockup">
|
|
<para>Por que o &man.ppp.8; trava quando executo
|
|
comandos shell pelo &man.ppp.8;?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Quando executa-se o <command>shell</command> com o
|
|
comando <command>!</command> , o &man.ppp.8; executa um
|
|
shell (ou se você passar quaisquer argumentos, o
|
|
&man.ppp.8; executará aqueles argumentos). Ppp
|
|
aguardará o comando terminar antes de continuar.
|
|
Se você tentar usar a sua ligaço ppp enquanto
|
|
é executado o comando, a ligação
|
|
aparacerá congelada. Isto porque o ppp
|
|
estará esperando pelo finalização da
|
|
comando.</para>
|
|
|
|
<para>Se você desejar executar comandos assim, use o
|
|
comando <command>!bg</command>. Ele executará o
|
|
comando em background e o &man.ppp.8; poderá
|
|
continuar a servir a conexão normalmente.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-nullmodem">
|
|
<para>Como uma conexão por &man.ppp.8; usando um nunca
|
|
termina?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Não há nenhuma maneira para que o
|
|
&man.ppp.8; determine automaticamente que uma
|
|
conexão direta caiu. Isto é devido
|
|
às linhas que são usadas na série de
|
|
cable null modems. Ao usar esse tipo de conexão o
|
|
LQR deve sempre ser habilitado com a linha:</para>
|
|
|
|
<programlisting>enable lqr</programlisting>
|
|
|
|
<para>A LQR é aceita por padrão, se negociada
|
|
com o outro lado.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-auto-noreasondial">
|
|
<para>Por que o &man.ppp.8; disca sem nenhuma razão no
|
|
modo -auto?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se o &man.ppp.8; esta discando inesperadamente,
|
|
você deve determinar a causa, e setar os filtros de
|
|
discagem (dfilters) para evitar esse comportamento.</para>
|
|
|
|
<para>Para determinar a causa, use a seguinte linha:</para>
|
|
|
|
<programlisting>set log +tcp/ip</programlisting>
|
|
|
|
<para>Isto registrará todo o tráfego
|
|
através da conexão. A próxima vez
|
|
que a linha acima for ativada, você verá a
|
|
razão logada.</para>
|
|
|
|
<para>Você pode agora desabilitar a discagem sob estas
|
|
circunstâncias. Geralmente, este tipo de problema
|
|
ocorre devido aos lookups do DNS. Para evitar que os
|
|
lookups do DNS estabeleçam uma conexão (isto
|
|
<emphasis>não</emphasis> impedirá que o
|
|
&man.ppp.8; passe os pacotes através de uma
|
|
conexão já estabelecida) use o
|
|
seguinte:</para>
|
|
|
|
<programlisting>set dfilter 1 deny udp src eq 53
|
|
set dfilter 2 deny udp dst eq 53
|
|
set dfilter 3 permit 0/0 0/0</programlisting>
|
|
|
|
<para>Nem sempre isso é apropriado, porque irá
|
|
interromper suas capacidades de discagem por demanda - a
|
|
maioria dos programas precisarão de lookup do DNS
|
|
antes de fazer alguma outra coisa relacionada a
|
|
rede.</para>
|
|
|
|
<para>No caso do DNS, você deve tentar determinar o
|
|
que esta realmente tentando resolver um hostname. Na
|
|
maioria das vezes o &man.sendmail.8; é o culpado.
|
|
Você deve certificar-se que o sendmail não
|
|
deve fazer nenhum DNS lookup em seu arquivo de
|
|
configuração. Veja na seção
|
|
<link linkend="ispmail">Configuração de
|
|
Mail</link> para detalhes de como criar seu
|
|
próprio arquivo de configuração e o
|
|
que deve conter nele. Você pode também
|
|
adicionar a seguinte linha ao seu arquivo
|
|
<filename>.mc</filename>:</para>
|
|
|
|
<programlisting>define(`confDELIVERY_MODE', `d')dnl
|
|
</programlisting>
|
|
|
|
<para>Isto fará o sendmail enfileirar tudo,
|
|
até que a fila esteja funcionando (normalmente o
|
|
sendmail é invocado com <option>-bd -q30m</option>,
|
|
dizendo a ele para rodar a fila (queue) a cada 30minutos)
|
|
ou até que o <command>sendmail</command> -q seja
|
|
feito (talvez do arquivo ppp.linkup)</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ccp-errors">
|
|
<para>O que estes erros de CCP significam?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Eu estou vendo os seguintes erros em
|
|
meus logs:</para>
|
|
|
|
<programlisting>CCP: CcpSendConfigReq
|
|
CCP: Received Terminate Ack (1) state = Req-Sent (6)</programlisting>
|
|
|
|
<para>Isto é porque o &man.ppp.8; esta tentando
|
|
negociar a compressão Predictor1, e o outro ponto
|
|
não quer negociar nenhuma compressão. As
|
|
mensagens são inofensivas, mas se você
|
|
desejar remove-las, poderá desabilitar a
|
|
compressão Predictor1 também
|
|
localmente:</para>
|
|
|
|
<programlisting>disable pred1</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-lockup-ioerrors">
|
|
<para>Por que o &man.ppp.8; trava durante a
|
|
transferência de arquivo com erros de
|
|
IO(Input/Output)?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>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
|
|
é logado através do syslogd.</para>
|
|
|
|
<para>A especificação do ppp diz que um MTU de
|
|
1500 deve ser <emphasis>sempre</emphasis> aceito como
|
|
mínimo. Apesar de todas as
|
|
negociações de LCP, é possível
|
|
diminuir o MTU para menos de 1500, independentemente
|
|
disso, seu provedor irá transmitir pacotes de 1500
|
|
para você, e isso travará sua
|
|
conexão.</para>
|
|
|
|
<para>O problema pode ser contornado por nunca ajustar um
|
|
MTU menor que 1500 sobre o FreeBSD 2.2.2 ou
|
|
anteriores.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-connectionspeed">
|
|
<para>Por que o &man.ppp.8; não loga minha velocidade
|
|
de conexão?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A fim de logar todas as linhas de
|
|
<quote>conversação</quote> de seu modem
|
|
você deve habilitar o seguinte:</para>
|
|
|
|
<programlisting>set log +connect</programlisting>
|
|
|
|
<para>Isto irá fazer o &man.ppp.8; logar tudo,
|
|
até a ultima requisição
|
|
<quote>expect</quote>.</para>
|
|
|
|
<para>Se você desejar ver sua velocidade de
|
|
conexão e estiver usando PAP ou CHAP (e
|
|
consequentemente não tenha qualquer coisa para o
|
|
<quote>chat</quote> depois do CONNECT no script de
|
|
discagem - no <literal>set login</literal> script),
|
|
você deve certificar-se que instruiu o &man.ppp.8; a
|
|
``a esperar" a linha inteira CONNECT, algo como:</para>
|
|
|
|
<programlisting>set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \
|
|
\"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"</programlisting>
|
|
|
|
<para>Aqui nosso CONNECT, não envia nada, ele espera
|
|
então um line-feed, forçando o &man.ppp.8; a
|
|
ler toda a resposta do CONNECT.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-ignores-backslash">
|
|
<para>Por que o &man.ppp.8; ignora o caracter
|
|
<literal>\</literal> no meu script de
|
|
conversação?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O Ppp analiza cada linha no seu arquivo de
|
|
configuração, então isso pode ser
|
|
interpretado como string tal como <literal>set phone "123
|
|
456 789"</literal> corretamente e compreende de fato que
|
|
o número é um
|
|
<emphasis>único</emphasis> argumento. A fim de
|
|
especificar um caracter<literal>"</literal>,
|
|
você deve escapar desse comportamento, usando um a
|
|
barra invertida <literal>\</literal>.</para>
|
|
|
|
<para>Quando o script de conversação analizar
|
|
cada argumento, ele reinterpretará o argumento a
|
|
fim de encontrar quaisquer sequências especiais como
|
|
<literal>\P</literal> ou <literal>\T</literal> (veja a man
|
|
page). Como resultado desta dupla análise,
|
|
você deve conseguir usar o número correto de
|
|
espaços.</para>
|
|
|
|
<para>Se você deseja enviar um caracter
|
|
<literal>\</literal> para dizer a seu modem, você
|
|
precisará de algo assim:</para>
|
|
|
|
<programlisting>set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"</programlisting>
|
|
|
|
<para>resultando a seguinte sequência:</para>
|
|
|
|
<programlisting>ATZ
|
|
OK
|
|
AT\X
|
|
OK</programlisting>
|
|
|
|
<para>ou</para>
|
|
|
|
<programlisting>set phone 1234567
|
|
set dial "\"\" ATZ OK ATDT\\T"</programlisting>
|
|
|
|
<para>resultando na seguindo sequência:</para>
|
|
|
|
<programlisting>ATZ
|
|
OK
|
|
ATDT1234567</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-segfault-nocore">
|
|
<para>Por que o &man.ppp.8; dá um seg-fault, mas eu
|
|
não vejo nenhum arquivo
|
|
<filename>ppp.core</filename>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O Ppp (ou qualquer programa desta natureza) nunca
|
|
dever dar core dump. Porque o &man.ppp.8; roda com um
|
|
e-userid (effective user id) 0, o sistema operacional
|
|
não irá escrever a imagem do core do
|
|
&man.ppp.8; em disco antes de terminá-lo. Mas se
|
|
acontecer de o &man.ppp.8; terminar devido a uma falha de
|
|
segmentação ou algum outro sinal que
|
|
normalmente causaria um core dumped,
|
|
<emphasis>e</emphasis> você tem certeza de que esta
|
|
usando uma versão mais recente do ppp (veja o
|
|
começo desta seção), você deve
|
|
fazer o seguinte:</para>
|
|
|
|
<screen>&prompt.user; <userinput>tar xfz ppp-*.src.tar.gz</userinput>
|
|
&prompt.user; <userinput>cd ppp*/ppp</userinput>
|
|
&prompt.user; <userinput>echo STRIP= >>Makefile</userinput>
|
|
&prompt.user; <userinput>echo CFLAGS+=-g >>Makefile</userinput>
|
|
&prompt.user; <userinput>make clean all</userinput>
|
|
&prompt.user; <userinput>su</userinput>
|
|
&prompt.root; <userinput>make install</userinput>
|
|
&prompt.root; <userinput>chmod 555 /usr/sbin/ppp</userinput></screen>
|
|
|
|
<para>Você agora tem uma versão
|
|
debugável do &man.ppp.8; instalada. Você
|
|
precisará ser <systemitem class="username">root</systemitem> para rodar
|
|
o ppp porque todos os seus privilégios foram
|
|
revogados. Quando você iniciar o &man.ppp.8;, tome
|
|
nota com cuidado de qual era o seu diretório
|
|
corrente naquele instante.</para>
|
|
|
|
<para>Agora, quando o &man.ppp.8; receber uma
|
|
violação de segmento (seg-fault), você
|
|
terá um arquivo chamado ppp.core. Você deve
|
|
então fazer o seguinte:</para>
|
|
|
|
<screen>&prompt.user; <userinput>su</userinput>
|
|
&prompt.root; <userinput>gdb /usr/sbin/ppp ppp.core</userinput>
|
|
<prompt>(gdb)</prompt> <userinput>bt</userinput>
|
|
.......
|
|
<prompt>(gdb)</prompt> <userinput>f 0</userinput>
|
|
......
|
|
<prompt>(gdb)</prompt> <userinput>i args</userinput>
|
|
......
|
|
<prompt>(gdb)</prompt> <userinput>l</userinput>
|
|
.......</screen>
|
|
|
|
<para>Toda essa informação deve ser dada com a
|
|
sua pergunta, sendo possível agora diagnosticar o
|
|
problema.</para>
|
|
|
|
<para>Se você é familiarizado com o gdb,
|
|
você pode desejar encontrar alguns outros bits e
|
|
partes como as que causaram o dump e também os
|
|
endereços e valores das variáveis
|
|
revelantes.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-autodialprocess-noconnect">
|
|
<para>Por que o processo que força a discagem em auto
|
|
mode nunca conecta?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Este era um problema conhecido na
|
|
configuração &man.ppp.8; para negociar um IP
|
|
local dinâmico com o outro ponto no auto mode. Isto
|
|
foi corrigido na versão mais recente. Procure na
|
|
man page do &man.ppp.8; por
|
|
<literal>iface</literal>.</para>
|
|
|
|
<para>O problema era que quando este programa inicial chamava
|
|
o &man.connect.2;, o número IP da interface tun
|
|
estava atribuído ao endpoint do soquete. O
|
|
<foreignphrase>kernel</foreignphrase> cria o primeiro
|
|
pacote de saída e escreve-o no dispositivo tun. O
|
|
&man.ppp.8; então lê o pacote e estabelece a
|
|
conexão. Se em consequência da
|
|
atribuição dinâmica do IP do
|
|
&man.ppp.8; o endereço da interface for mudado, o
|
|
endpoint do soquete original será inválido.
|
|
Todos os pacotes subsequentes emitidos ao outro ponto
|
|
serão geralmente descartados. Mesmo se não
|
|
forem descartados, nenhuma das respostas irá voltar
|
|
pela rota da máquina de origem, isto porque o
|
|
número IP já não pertence a essa
|
|
máquina.</para>
|
|
|
|
<para>Há diversas maneiras teóricas para
|
|
abordargem desse problema. Seria mais agradável se
|
|
o ponto reatribuísse, se possível o mesmo
|
|
número IP <literal>:-)</literal> A versão
|
|
atual do &man.ppp.8; faz isso, mas a maioria das outras
|
|
implementações não.</para>
|
|
|
|
<para>O método mais fácil do nosso lado, seria
|
|
nunca mudar o número IP da interface tun, mas ao
|
|
invés disso, mudar todos os pacotes de saída
|
|
de modo que a origem do número IP é mudada
|
|
da interface IP para o IP negociado dinâmicamente.
|
|
Isto é essencialmente o que a opção
|
|
<literal>iface-alias</literal> na versão mais
|
|
recente do ppp faz (com a ajuda da &man.libalias.3; e da
|
|
opção <option>-nat</option> do &man.ppp.8;) -
|
|
esta mantendo endereços anteriores da interface e
|
|
fazendo NAT do último endereço
|
|
negociado.</para>
|
|
|
|
<para>Uma outra alternativa (e provavelmente a mais
|
|
confiável) seria implementar uma chamada de sistema
|
|
que mudasse todos os soquetes ligados de um IP para outro.
|
|
O &man.ppp.8; usaria essa chamada para modificar os
|
|
soquetes de todos os programas em execução
|
|
quando um novo endereço IP é negociado. O
|
|
mesmo sistema de chamadas poderia ser usado por clientes
|
|
dhcp quando são forçados a religar seus
|
|
soquetes.</para>
|
|
|
|
<para>Ainda, outra possibilidade é permitir a
|
|
interface para ser ativada sem um número IP. Os
|
|
pacotes de saída seriam dados um número IP
|
|
255.255.255.255 até que a primeira SIOCAIFADDR
|
|
ioctl esteja pronta. Isto resultaria na completa
|
|
ligação com o soquete. Seria até o
|
|
&man.ppp.8; mudar o número IP de origem, mas somente
|
|
se foi setado para 255.255.255.255, e somente o
|
|
número IP e o IP checksum deveriam ser mudados.
|
|
Isto porém, é um pequeno hack do
|
|
<foreignphrase>kernel</foreignphrase> que deve estar
|
|
enviando maus pacotes para uma interface configurada, na
|
|
suposição de que algum outro mecanismo
|
|
é capaz de corrigir as coisas de forma
|
|
restrospectiva.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ppp-nat-games">
|
|
<para>Por que a maioria dos jogos não funciona com a
|
|
opção -nat?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A razão para os jogos e outros programas
|
|
não funcionarem quando a libalias esta em uso
|
|
é porque a máquina de fora irá tentar
|
|
abrir uma conexão ou enviar pacotes UDP (não
|
|
solicitados) para a máquina de dentro. O software
|
|
NAT não sabe que deve enviar esses pacotes para a
|
|
máquina interna.</para>
|
|
|
|
<para>Para que as coisas funcionem, certifique-se de que a
|
|
única coisa que esta rodando é o software
|
|
que você esta tendo problemas, a seguir rode o
|
|
tcpdump na interface tun do gateway ou habilite &man.ppp.8;
|
|
tcp/ip logging (<literal>set log+tcp/ip</literal>) na
|
|
gateway.</para>
|
|
|
|
<para>Quando você iniciar o software, você deve
|
|
ver pacotes passando através da máquina
|
|
gateway. Quando alguma coisa volta vindo de fora,
|
|
será descartado (este é o problema). Tome
|
|
nota do número da porta desses pacotes e a seguir
|
|
feche o software. Faça isso algumas vezes para ver
|
|
se os números da porta são consistentes. Se
|
|
eles forem, a seguinte linha no
|
|
<filename>/etc/ppp/ppp.conf</filename> fará o
|
|
software funcional:</para>
|
|
|
|
<programlisting>nat port <replaceable>proto</replaceable><replaceable>máquinainterna</replaceable>:
|
|
<replaceable>porta</replaceable><replaceable>porta</replaceable></programlisting>
|
|
|
|
<para>Onde <replaceable>proto</replaceable> é ou
|
|
<literal>tcp</literal> ou <literal>udp</literal>,
|
|
<replaceable>máquinainterna</replaceable> é
|
|
a máquina de onde você quer que os pacotes
|
|
sejam enviados e <replaceable>porta</replaceable> é
|
|
número da porta de destino dos pacotes.</para>
|
|
|
|
<para>Você não poderá usar o software em
|
|
outras máquinas sem mudar o comando acima, e rodar
|
|
o software em duas máquinas internas ao mesmo tempo
|
|
é fora de questão - Apesar de tudo, o lado
|
|
de fora esta vendo toda sua rede interna como sendo
|
|
somente uma máquina.</para>
|
|
|
|
<para>Se os números da porta não são
|
|
consistentes, há ainda mais 3
|
|
opções.</para>
|
|
|
|
<orderedlist>
|
|
<listitem>
|
|
<para>Enviar o suporte na libalias. Exemplos de 'casos
|
|
especiais' podem ser encontrados em
|
|
<filename>/usr/src/lib/libalias/alias_*.c </filename>
|
|
(<filename>alias_ftp.c</filename> eh um bom tipo de
|
|
protocolo). Isto geralmente envolve ler determinados
|
|
pacotes reconhecidos na saída, identificando a
|
|
instrução que chama a máquina
|
|
externa para iniciar a conexão de volta para a
|
|
máquina interna em uma porta (aleatória)
|
|
específica e setar a <quote>rota</quote> na
|
|
tabela de aliases de modo que os pacotes subsequentes
|
|
saibam para onde ir.</para>
|
|
|
|
<para>Esta solução é a mais
|
|
difícil, mas é a melhor e irá
|
|
fazer o software trabalhar com múltipla
|
|
máquinas.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Use um proxy. A aplicação
|
|
poderá suportar sock5 por exemplo, ou (como no
|
|
caso do <quote>cvsup</quote>) pode ter uma
|
|
opção <quote>passive</quote> que evita
|
|
sempre requisições feitas pelo outro
|
|
ponto de volta para a máquina local.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Redirecione tudo para a máquina interna
|
|
usando <literal>nat addr</literal>. Pode-se dizer que
|
|
essa seja a apelação.</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="useful-port-numbers">
|
|
<para>Alguém fez uma lista de número de portas
|
|
úteis?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Não ainda, mas a intensão é
|
|
produzir tal lista (se algum interesse for mostrado). Em
|
|
cada exemplo, <replaceable>internal</replaceable> deve ser
|
|
substítuido pelo IP da máquina que esta
|
|
jogando o jogo.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><application>Asheron's Call</application></para>
|
|
|
|
<para><literal>nat port udp
|
|
internal:65000
|
|
65000</literal></para>
|
|
|
|
<para>Mude manualmente o número da porta dentro
|
|
do jogo para 65000. Se você começar com
|
|
um determinado número de máquinas que
|
|
você deseja jogar atribua uma porta para cada
|
|
(por ex 65001, 65002, etc) e adicione uma
|
|
<literal>porta nat</literal> para cada uma.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><application>Half Life</application></para>
|
|
|
|
<para><literal>nat port udp
|
|
internal:27005
|
|
27015</literal></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><application> PCAnywhere
|
|
8.0</application></para>
|
|
|
|
<para><literal>nat port udp
|
|
internal:5632 5632
|
|
</literal></para>
|
|
|
|
<para><literal>nat port tcp
|
|
internal:5631 5631
|
|
</literal></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><application>Quake</application></para>
|
|
|
|
<para><literal>nat port udp
|
|
internal:6112
|
|
6112</literal></para>
|
|
|
|
<para>Alternativamente, você pode querer ir em
|
|
<link xlink:href="www.battle.net"> www.batle.net</link>
|
|
para dar uma olhada no suporte de proxy do
|
|
quake.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><application>Quake 2</application></para>
|
|
|
|
<para><literal>nat port udp
|
|
internal:27901
|
|
27901</literal></para>
|
|
|
|
<para><literal>nat port udp
|
|
internal:60021
|
|
60021</literal></para>
|
|
|
|
<para><literal>nat port udp
|
|
internal:60040
|
|
60040</literal></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><application>Red Alert</application></para>
|
|
|
|
<para><literal>nat port udp
|
|
internal:8675
|
|
8675</literal></para>
|
|
|
|
<para><literal>nat port udp
|
|
internal:5009 5009
|
|
</literal></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="fcs-errors">
|
|
<para>O que são erros FCS?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>FCS significa <literal>F</literal>rame
|
|
<literal>C</literal>heck <literal>S</literal>equence.
|
|
Cada pacote do ppp tem um checksum anexado para
|
|
assegurar-se de que os dados que estão sendo
|
|
recebidos sejam os dados que estão sendo emitidos.
|
|
Se o FCS de um pacote de entrada estiver incorreto, o
|
|
pacote sera perdido e a contagem do HDLC FCS é
|
|
aumentada. Os valores de erro HDLC podem ser mostrados
|
|
usando o comando <literal>show hdlc</literal>.</para>
|
|
|
|
<para>Se a sua ligação é ruim ou se o
|
|
driver serial esta perdendo pacotes), você
|
|
irá ver ocasionalmente erros FCS. Isto geralmente
|
|
não é motivo para se preocupar, embora
|
|
diminua substancialmente os protocolos de
|
|
compressão. Se você tem um modem externo,
|
|
certifique-se que seu cabo esteja protegido corretamente
|
|
de interferências - Isso pode erradicar o
|
|
problema.</para>
|
|
|
|
<para>Se sua ligação congelar assim que
|
|
você conectar e vier um grande número de
|
|
erros FCS, pode ser porque seu link não esta com o
|
|
bit 8 limpo. Certifique-se que seu modem não
|
|
esteja usando o controle de fluxo do software (XON/XOFF).
|
|
Se o seu datalink deve usar software de controle de fluxo,
|
|
use o comando <literal>set accmap 0x000a0000</literal>
|
|
para dizer ao ppp para ignorar os caracteres
|
|
<literal>^Q</literal> e <literal>^S</literal>.</para>
|
|
|
|
<para>Uma outra razão para estar vendo muitos erros
|
|
FCS pode ser que a extremidade remota parou de comunicar
|
|
com o <acronym>PPP</acronym>. Você pode querer
|
|
habilitar registros <literal>async</literal> neste ponto
|
|
para determinar se os dados entrantes são realmente
|
|
um alerta de início de sessão do prompt da
|
|
shell. Se você tiver um prompt shell na extremidade
|
|
remota, é possível terminar o &man.ppp.8; sem
|
|
deixar cair a linha usando o comando <literal>close
|
|
lcp</literal> (o comando <literal>term</literal>
|
|
irá reconectar você shell da máquina
|
|
remota). Se nada em seus logs indicar o porque de sua
|
|
ligação ter sido terminada, você pode
|
|
perguntar ao administrador remoto (do seu provedor?)
|
|
porque a sessão foi terminada.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry xml:id="PPPoEwithNAT">
|
|
<question xml:id="macos-win98-pppoe-freeze">
|
|
<para>Por que a conexão do MacOS e Windows98 travam
|
|
ao rodar o PPPoE no gateway?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Agradecimentos a Michael Wozniak
|
|
<email>mwozniak@netcom.ca</email> por descobrir o
|
|
problema, e a Dan Flemming
|
|
<email>danflemming@mac.com</email> pela
|
|
solução do Mac:</para>
|
|
|
|
<para>Isto é devido ao que é chamado de
|
|
roteador <quote>Buraco Negro</quote> (<foreignphrase>Black
|
|
Hole</foreignphrase>). 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
|
|
é de 1500) <emphasis>e</emphasis> tenha o
|
|
<quote>não fragmento</quote> do bit ajustado
|
|
(default do TCP) e o roteador Telco não esta
|
|
enviando ICMP <quote>deve ser fragmentado</quote> de volta
|
|
ao sitio www que você esta tentando carregar.
|
|
(Alternativamente o roteador está enviando pacotes
|
|
ICMP corretamente, mas o firewall no sitio www esta
|
|
deixando perdê-los). Quando o servidor www esta
|
|
enviando seus frames que não cabem no pipe do PPPoE
|
|
o roteador Telco deixa-os perder e sua página
|
|
não é carregada (algumas páginas
|
|
gráficas carregam porque são menores que um
|
|
MSS). Esta parece ser a configuração
|
|
default da maioria dos Telco PPPoE (somente eles sabem
|
|
como programar o roteador).</para>
|
|
|
|
<para>Um maneira de fixar isso é usando o regedit em
|
|
sua seu Windows 95/98 e adicionar a seguinte entrada de
|
|
registro:</para>
|
|
|
|
<programlisting>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU</programlisting>
|
|
|
|
<para>Deve ser uma string com um valor <quote>1436</quote>,
|
|
porque há relatos de que alguns roteadores ADSL
|
|
são incapazes de tratar os pacotes maiores que
|
|
esse. Esta chave de registro foi mudada para
|
|
<literal>Tcpip\Parameters\Interfaces\ID-para-o-adptador\MTU</literal>
|
|
no windows 2000 e tornou-se um DWORD.</para>
|
|
|
|
<para>Consulte os documentos da Microsoft <link xlink:href="http://support.microsoft.com/support/kb/articles/Q158/4/74.asp">
|
|
Q158474 - Windows TCPIP Entradas de registroi</link> e
|
|
<link xlink:href="http://support.microsoft.com/support/kb/articles/Q120/6/42.asp">
|
|
Q120642 - TCPIP & NBT Parametros de
|
|
configuração para Windows NT</link> para
|
|
maiores informacoes sobre alterações de MTU
|
|
no Windows para funcionar com um roteador NAT.</para>
|
|
|
|
<para>Uma outra possibilidade do regedit sob o Windows 2000
|
|
é setar
|
|
<literal>Tcpip\Parameters\Interfaces\ID-para-o-adaptador\EnablePMTUBHDetect</literal>
|
|
DWORD para 1 como mencionado no documento original da
|
|
Microsoft 120642 comentado acima.</para>
|
|
|
|
<para>Infelizmente o MacOS não oferece uma
|
|
mudança TCP/IP nas configurações da
|
|
interface. Entretanto, há um software comercial
|
|
disponível, o OTAdvancedTuner (OT para
|
|
OpenTransport, a pilha TCP/IP do MacOS) feito pela <link xlink:href="http://www.softworks.com/"> Sustainable
|
|
Softworks</link>, ele permite aos usuários
|
|
customizar as configurações TCP/IP. Os
|
|
usuários de NAT do MacOS devem selecionar o
|
|
<literal>ip_interface_MTU</literal> no menu drop-down,
|
|
colocar <literal>1450</literal> em vez de
|
|
<literal>1500</literal>, clique na caixa próximo ao
|
|
<literal>Save as Auto Configure</literal>, e clique em
|
|
<literal>Make Active</literal>.</para>
|
|
|
|
<para>Versões mais recentes do &man.ppp.8; (2.3 ou
|
|
mais recente) tem o comando <command>enable
|
|
tcpmssfixup</command> que irá automaticamente
|
|
ajustar um valor apropriado ao MSS. Esta facilidade
|
|
é habilitada por default. Se você for
|
|
apaixonado pela versão mais antiga do &man.ppp.8;
|
|
você pode querer dar uma olhada no
|
|
<literal>port</literal> do
|
|
<application>tcpmssd</application>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="desperation">
|
|
<para>Nada disso me ajudou - Eu estou desesperado! O que eu
|
|
posso fazer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se tudo falhar, envie o máximo de
|
|
informacões que você puder, incluindo seus
|
|
arquivos de configuração, a forma como
|
|
está iniciando o &man.ppp.8;, os trechos relevantes
|
|
de seu arquivo de log e a saída do comando
|
|
<command>netstat -rn</command> (antes e depois de
|
|
conectado) para a lista &a.questions; ou para o grupo de
|
|
notícias <link xlink:href="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</link>.
|
|
Alguém deve ajudar a solucionar seu
|
|
problema.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="serial">
|
|
<title>Comunicações Seriais</title>
|
|
|
|
<para>Essa seção cobre as perguntas mais comuns
|
|
sobre comunicação serial com o FreeBSD. PPP e
|
|
SLIP são abordados na seção
|
|
<xref linkend="networking" remap="Networking"/>.</para>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="found-serial">
|
|
<para>Como eu posso dizer se o FreeBSD encontrou minhas
|
|
portas seriais?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Assim que o kernel do FreeBSD é carregado, ele
|
|
irá 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 então executar o seguinte comando:</para>
|
|
|
|
<screen>&prompt.user; <userinput>dmesg | grep sio</userinput></screen>
|
|
|
|
<para>assim que o sistema estiver em funcionamento e
|
|
execução.</para>
|
|
|
|
<para>Aqui estão alguns exemplos dos resultados do
|
|
comando executado acima:</para>
|
|
|
|
<programlisting>sio0 at 0x3f8-0x3ff irq 4 on isa
|
|
sio0: type 16550A
|
|
sio1 at 0x2f8-0x2ff irq 3 on isa
|
|
sio1: type 16550A</programlisting>
|
|
|
|
<para>Eles mostram duas portas seriais. A primeira
|
|
está na irq 4, está usando o endereço
|
|
de porta <literal>0x3f8</literal>, e tem um chip modelo
|
|
UART 16550A. O segundo utiliza o mesmo tipo de chip mas
|
|
está na irq 3 e seu endereço de porta
|
|
é <literal>0x2f8</literal>. Modems internos
|
|
são tratados como se fossem portas seriais --
|
|
exceto que sempre tem um modem <quote>conectado</quote>
|
|
à porta.</para>
|
|
|
|
<para>O <foreignphrase>kernel</foreignphrase>
|
|
<filename>GENERIC</filename> tem suporte para duas portas
|
|
seriais utilizando os mesmos irqs e
|
|
configurações de endereços de portas
|
|
do exemplo acima. Se tais configurações
|
|
não estão certas para seu sistema, ou se
|
|
você adicionou placas de modem ou tem mais portas
|
|
seriais para o qual o
|
|
<foreignphrase>kernel</foreignphrase> foi configurado,
|
|
apenas recompile seu
|
|
<foreignphrase>kernel</foreignphrase>. Veja a a
|
|
seção de <link linkend="make-kernel">compilação do
|
|
<foreignphrase>kernel</foreignphrase></link> para obter
|
|
mais detalhes.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="found-modem">
|
|
<para>Como eu posso dizer se o FreeBSD encontrou minha placa
|
|
de fax modem?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Refira-se à resposta da pergunta
|
|
anterior.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="missing-tty0X">
|
|
<para>Eu acabei de atualizar para a versão 2.0.5 e as
|
|
minhas
|
|
<filename>tty0X</filename>
|
|
desapareceram! Como eu resolvo esse problema?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Não se preocupe, eles foram incluídos
|
|
com os dispositivos
|
|
<filename>ttydX</filename>.
|
|
No entanto, você deve mudar todos os arquivos da
|
|
configuração antiga que você
|
|
tiver.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="access-serial-ports">
|
|
<para>Como eu acesso as portas seriais no FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A terceira porta serial, <filename>sio2</filename>
|
|
(veja &man.sio.4;, conhecida como COM3 no DOS),
|
|
está na <filename>/dev/cuaa2</filename> para os
|
|
dispositivos dial-out, e na
|
|
<filename>/dev/ttyd2</filename> para os dispositivos
|
|
dial-in. Qual é a diferença entre essas
|
|
duas classes de dispositivos?</para>
|
|
|
|
<para>Você utiliza
|
|
<filename>ttydX</filename>
|
|
para dial-ins. Quando o
|
|
<filename>/dev/ttydX</filename>
|
|
se abre no modo de bloqueio, um processo irá
|
|
aguardar que o dispositivo
|
|
<filename>cuaaX</filename>
|
|
correspondente torne-se inativo, e aguarda a
|
|
detecção do <foreignphrase>carrier
|
|
detect</foreignphrase> da linha para ativar-se. Quando
|
|
a
|
|
<filename>cuaaX</filename>
|
|
se abre, ela deixa claro que a porta não esta ainda
|
|
em uso pelo dispositivo
|
|
<filename>ttydX</filename>.
|
|
Se a porta estiver disponível, ela é
|
|
<quote>roubada</quote> do dispositivo
|
|
<filename>ttydX</filename>.
|
|
Além disso, o dispositivo
|
|
<filename>cuaaX</filename>
|
|
não se importa com o carrier detect. Com esse
|
|
esquema de auto-resposta do modem, você pode ter
|
|
usuários remotos conectando e você pode ainda
|
|
discar para fora com o mesmo modem, que o sistema
|
|
irá cuidar de todos os conflitos.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="enable-multiport-serial">
|
|
<para>Como eu habilito suporte para uma placa serial de
|
|
múltiplas portas?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Novamente, a seção de
|
|
configuração do
|
|
<foreignphrase>kernel</foreignphrase> provê
|
|
informações sobre a
|
|
configuração de seu
|
|
<foreignphrase>kernel</foreignphrase>. Para uma placa
|
|
serial de múltiplas portas, coloque uma linha
|
|
&man.sio.4; para cada porta serial da placa, no arquivo de
|
|
configuração do
|
|
<foreignphrase>kernel</foreignphrase>. Mas coloque o irq
|
|
e as espeficicações do vetor apenas em uma
|
|
das entradas. Todas as portas da placa devem compartilhar
|
|
uma irq. Para consistência, utilize a última
|
|
porta serial para especificar a irq. Além disso,
|
|
especifique a opção
|
|
<literal>COM_MULTIPORT</literal>.</para>
|
|
|
|
<para>O exemplo seguinte é para uma placa serial AST
|
|
4-portas na irq 7:</para>
|
|
|
|
<programlisting>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</programlisting>
|
|
|
|
<para>As flags indicam que a porta master tem um
|
|
<quote>minor number</quote> 7 (<literal>0x700</literal>),
|
|
diagnósticos habilitados durante o escaneamento
|
|
(<literal>0x080</literal>), e todas as portas compartilham
|
|
uma irq (<literal>0x001</literal>).</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="multiport-serial-share-irq">
|
|
<para>O FreeBSD pode trabalhar com placas seriais de
|
|
múltiplas portas compartilhando irqs?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Ainda não. Você deverá utilizar
|
|
uma irq diferente para cada placa.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="default-serial-params">
|
|
<para>Posso definir os parâmetros seriais
|
|
padrão para uma porta?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O
|
|
<filename>ttydX</filename>
|
|
(<filename>cuaaX</filename>)
|
|
é um dispositivo regular que você vai querer
|
|
abrir para suas aplicações. Quando um
|
|
processo abre um dispositivo, ele tem um conjunto
|
|
padrão de configurações de terminais
|
|
de E/S. Você pode ver essas
|
|
configurações com o comando</para>
|
|
|
|
<screen>&prompt.root; <userinput>stty -a -f /dev/ttyd1</userinput></screen>
|
|
|
|
<para>Ao alterar as configurações para esse
|
|
dispositivo, elas se manterão em efeito até
|
|
que o dispositivo seja fechado. Quando ele for reaberto,
|
|
vai para o estado padrão. Para fazer
|
|
mudanças nos ajustes padrão, pode-se abrir e
|
|
ajustar as configurações do <quote>estado
|
|
inicial</quote> do dispositivo. Por exemplo, para ligar
|
|
o modo <acronym>CLOCAL</acronym>, 8 bits, e o controle de
|
|
fluxo <acronym>XON/XOFF</acronym> padrão para a
|
|
ttyd5, faça:</para>
|
|
|
|
<screen>&prompt.root; <userinput>stty -f /dev/ttyid5 clocal cs8 ixon ixoff</userinput></screen>
|
|
|
|
<para>Um bom lugar para fazer isso é no
|
|
<filename>/etc/rc.serial</filename>. Agora, uma
|
|
aplicação terá estas
|
|
configurações por padrão quando abrir
|
|
o <filename>ttyd5</filename>. No entanto, pode-se ainda
|
|
modificar estas configurações a seu
|
|
gosto.</para>
|
|
|
|
<para>Você pode prevenir certas
|
|
configurações de serem modificadas por uma
|
|
aplicação fazendo ajustes no dispositivo de
|
|
<quote>lock state</quote>. Por exemplo, para travar a
|
|
velocidade do <filename>ttyd5</filename> em 57600 bps,
|
|
faça:</para>
|
|
|
|
<screen>&prompt.root; <userinput>stty -f /dev/ttyld5 57600</userinput></screen>
|
|
|
|
<para>Agora, uma aplicação, ao abrir o
|
|
<filename>ttyd5</filename>, se tentar modificar a
|
|
velocidade da porta, ficará travada a 57600
|
|
bps.</para>
|
|
|
|
<para>Naturalmente você deve garantir que os
|
|
dispositivos de estado inicial e o estado de trava
|
|
(<literal>lock</literal>) tenham permissão de
|
|
escrita apenas para o <systemitem class="username">root</systemitem>. O script
|
|
&man.MAKEDEV.8; <emphasis>NÃO</emphasis> faz isso
|
|
quando ele cria as entradas de dispositivos.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="enable-dialup">
|
|
<para>Como eu habilito logins dial-up no meu modem?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Então você quer tornar-se um provedor de
|
|
serviços internet, não é? Primeiro,
|
|
você precisa de um ou mais modems que auto-respondam
|
|
às chamadas. Seu modem precisa confirmar o
|
|
<quote>carrier detect</quote> quando ele for detectado e
|
|
não fazê-lo todo o tempo. Ele
|
|
precisará desligar o telefone e resetar a si mesmo
|
|
quando a linha <acronym>DTR</acronym> (Data Terminal
|
|
Ready) alternar de ligado para desligado. Ele
|
|
provavelmente deve utilizar o controle de fluxo
|
|
<filename>RTS/CTS</filename> ou nenhum controle local de
|
|
fluxo. Finalmente, ele deve utilizar uma velocidade
|
|
constante entre o computador e si mesmo, mas (para ser
|
|
simpático com seus usuários) ele deve
|
|
negociar uma velocidade entre si mesmo e o modem
|
|
remoto.</para>
|
|
|
|
<para>Para muitos modems compatíveis com o conjunto
|
|
de comandos do Hayes este comando criará estas
|
|
configurações e as armazenará na
|
|
memória não volátil:</para>
|
|
|
|
<programlisting>AT &C1 &D3 &K3 &Q6 S0=1 &W</programlisting>
|
|
|
|
<para>Veja a seção <link linkend="direct-at">
|
|
enviando comandos AT</link> abaixo para mais
|
|
informações sobre como fazer estas
|
|
configurações sem o auxílio de um
|
|
programa de terminal MS-DOS.</para>
|
|
|
|
<para>Depois, faça uma entrada em
|
|
<filename>/etc/ttys</filename> (veja &man.ttys.5;) para o
|
|
modem. Este arquivo lista todas as portas nas quais o
|
|
sistema irá aguardar pelos logins. Adicione uma
|
|
parecida com essa:</para>
|
|
|
|
<programlisting>ttyd1 "/usr/libexec/getty std.57600" dialup on insecure</programlisting>
|
|
|
|
<para>Esta linha indica que a segunda porta serial
|
|
(<filename>/dev/ttyd1</filename>) tem um modem
|
|
conectado e rodando a 57600 bps e sem paridade
|
|
(<literal>std.57600</literal>, que vem do arquivo
|
|
<filename>/etc/gettytab</filename>, veja
|
|
&man.gettytab.5;). O tipo de terminal para esta porta
|
|
é <literal>dialup</literal>. A porta esta
|
|
<literal>ligada</literal> e é
|
|
<literal>insegura</literal> - quer dizer que o login do
|
|
usuário <systemitem class="username">root</systemitem> não
|
|
é permitido. Para portas dialin como esta,
|
|
utiliza-se a entrada
|
|
<filename>ttydX</filename></para>
|
|
|
|
<para>É uma prática comum utilizar
|
|
<literal>dialup</literal> como o tipo do terminal. Muitos
|
|
usuários configuram um
|
|
<foreignphrase>prompt</foreignphrase> para seus arquivos
|
|
<filename>.profile</filename> ou
|
|
<filename>.login</filename> para o tipo de terminal
|
|
existente se o tipo iniciante é dialup. O exemplo
|
|
mostra a porta como insegura. Para tornar-se
|
|
<systemitem class="username">root</systemitem> nesta porta, você tem que
|
|
logar-se como um usuário regular, e então
|
|
&man.su.1; para tornar-se <systemitem class="username">root</systemitem>. Se
|
|
você usar <literal>seguro</literal>, então o
|
|
<systemitem class="username">root</systemitem> vai poder efetuar o login
|
|
diretamente.</para>
|
|
|
|
<para>Após efetuar as operações no
|
|
<filename>/etc/ttys</filename>, você precisa enviar
|
|
um sinal de <foreignphrase>hangup</foreignphrase> ou
|
|
<acronym>HUP</acronym> para o processo
|
|
&man.init.8;:</para>
|
|
|
|
<screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
|
|
|
|
<para>Esse comando forçará a releitura do
|
|
arquivo <filename>/etc/ttys</filename>. O processo init
|
|
iniciará os processos getty em todas as portas
|
|
configuradas em <literal>on</literal> (ligadas).
|
|
Você pode descobrir se seus logins estão
|
|
disponíveis para sua porta digitando:</para>
|
|
|
|
<screen>&prompt.user; <userinput>ps -ax | grep '[t]tyd1'</userinput></screen>
|
|
|
|
<para>Você deve ver algo como:</para>
|
|
|
|
<programlisting>747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="dumb-terminal">
|
|
<para>Como eu conecto um terminal burro ao meu
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se você esta usando outro computador como um
|
|
terminal de seu sistema FreeBSD, consiga um cabo
|
|
<quote>null modem</quote> para ser usado entre as duas
|
|
portas seriais. Se você esta utilizando um terminal
|
|
próprio, veja as instruções que o
|
|
acompanham.</para>
|
|
|
|
<para>Então, modifique o
|
|
<filename>/etc/ttys</filename> (veja &man.ttys.5;), como
|
|
acima. Por exemplo, se você esta ligando um
|
|
terminal WYSE 50 à quinta porta serial, utilize uma
|
|
entrada como esta::</para>
|
|
|
|
<programlisting>ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure</programlisting>
|
|
|
|
<para>Esse exemplo mostra que a porta em
|
|
<filename>/dev/ttyd4</filename> tem um terminal wyse50
|
|
conectado a 38400 bps (bits por segundo) sem nenhuma
|
|
paridade (<literal>std.38400</literal> de
|
|
<filename>/etc/gettytab</filename>, veja
|
|
&man.gettytab.5;)) e o login do <systemitem class="username">root</systemitem>
|
|
é permitido (<literal>seguro</literal>).</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="cannot-tip">
|
|
<para>Por que eu não posso executar o
|
|
<command>tip</command> ou o <command>cu</command>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Em seu sistema, os programas &man.tip.1; e &man.cu.1;
|
|
são provavelmente executáveis somente pro
|
|
<systemitem class="username">uucp</systemitem> e para o grupo
|
|
<systemitem class="groupname">dialer</systemitem>. Você pode utilizar o
|
|
grupo <systemitem class="groupname">dialer</systemitem> para controlar quem
|
|
acessa o seu modem ou sistemas remotos. Basta adicionar
|
|
você mesmo ao grupo dialer.</para>
|
|
|
|
<para>Alternativamente, você pode permitir a todos no
|
|
seu sistema executarem o &man.tip.1; e o &man.cu.1;
|
|
digitando:</para>
|
|
|
|
<screen>&prompt.root; <userinput>chmod 4511 /usr/bin/cu</userinput>
|
|
&prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="hayes-unsupported">
|
|
<para>Meu modem modelo Hayes não é suportado -
|
|
o que eu posso fazer?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>De fato a manpage para o &man.tip.1; esta
|
|
desatualizada. Há um discador generico do Hayes
|
|
já incorporado. Apenas insira
|
|
<literal>at=hayes</literal> em seu arquivo
|
|
<filename>/etc/remote</filename> (veja
|
|
&man.remote.5;).</para>
|
|
|
|
<para>O drive do Hayes não é inteligente o
|
|
bastante para reconhecer algumas das avançadas
|
|
características dos modems mais novos - mensagens
|
|
como <literal>BUSY</literal>, <literal>NO
|
|
DIALTONE</literal>, ou <literal>CONNECT 115200</literal>
|
|
estarão apenas confundindo-o. Você deve
|
|
desabilitar estas mensagens quando utilizar o &man.tip.1;
|
|
(com o comando <literal>ATX0&W</literal>).</para>
|
|
|
|
<para>Além disso, o timeout para discagem com o
|
|
&man.tip.1; é de 60 segundos. Seu modem deve
|
|
utilizar um valor menor, senão o tip pensará
|
|
que existe um problema de comunicação.
|
|
Tente <literal>ATS7=45&W</literal>.</para>
|
|
|
|
<para>De fato, como o &man.tip.1; não foi compilado
|
|
para suportar HAYES, essa funcionalidade não
|
|
é completamente suportada. A solução
|
|
é editar o arquivo <filename>tipconf.h</filename>
|
|
no diretório
|
|
<filename>/usr/src/usr.bin/tip/tip</filename>. Obviamente
|
|
você precisa da distribuição fonte
|
|
para fazer isso.</para>
|
|
|
|
<para>Edite a linha <literal>#define HAYES 0</literal>
|
|
alterando-a para <literal>#define HAYES 1</literal>.
|
|
Depois digite <command>make</command> e <command>make
|
|
install</command>. Tudo funcionará bem depois
|
|
disso.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="direct-at">
|
|
<para>Como posso entrar nestes comandos AT?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Faça o que é chamado de uma entrada
|
|
<quote>direta</quote> no seu
|
|
<filename>/etc/remote</filename> (veja &man.remote.5;).
|
|
Por exemplo, se o seu modem está definido na
|
|
primeira porta serial,
|
|
<filename>/dev/cuaa0</filename>, coloque a seguinte
|
|
linha:</para>
|
|
|
|
<programlisting>cuaa0:dv=/dev/cuaa0:br#19200:pa=none</programlisting>
|
|
|
|
<para>Utilize a taxa de velocidade mais alta que seu modem
|
|
suportar na capacidade br. Então digite
|
|
<command>tip cuaa0</command>
|
|
(veja &man.tip.1;) e você estará conectado ao
|
|
seu modem.</para>
|
|
|
|
<para>Se não existir nenhum
|
|
<filename>/dev/cuaa0</filename> no sistema,
|
|
faça isso:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cd /dev</userinput>
|
|
&prompt.root; <userinput>sh MAKEDEV cuaa0</userinput></screen>
|
|
|
|
<para>Ou utilize cu como <systemitem class="username">root</systemitem> com o
|
|
seguinte comando:</para>
|
|
|
|
<screen>&prompt.root; <userinput>cu -lline -sspeed</userinput></screen>
|
|
|
|
<para>com a <replaceable>line</replaceable> sendo a porta
|
|
serial (por exemplo, <filename>/dev/cuaa0</filename>)
|
|
e <replaceable>speed</replaceable> sendo a velocidade (por
|
|
exemplo, <literal>57600</literal>). Quando terminar com
|
|
os comandos AT, digite <literal>~.</literal> para
|
|
sair.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="gt-failure">
|
|
<para>Porque o sinal <literal><@></literal> para a
|
|
capacidade pn não
|
|
funciona?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O sinal <literal><@></literal> no número
|
|
de telefone diz ao tip para procurar em
|
|
<filename>/etc/phones</filename> por um número de
|
|
telefone. Mas o sinal <literal><@></literal>
|
|
é também um caracter especial em arquivos
|
|
como o <filename>/etc/remote</filename>. Escape dele com
|
|
um <literal>\</literal> (barra invertida):</para>
|
|
|
|
<programlisting>pn=\@</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="dial-command-line">
|
|
<para>Como eu posso discar um número de telefone pela
|
|
linha de comando?</para>
|
|
</question><answer>
|
|
|
|
<para>Coloque o que é chamado de uma entrada
|
|
<quote>genérica</quote> no arquivo
|
|
<filename>/etc/remote</filename> (veja &man.remote.5;).
|
|
Por exemplo:</para>
|
|
|
|
<programlisting>tip115200|Disque para qualquer número em 115200 bps:\
|
|
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
|
|
tip57600|Disque para qualquer número em 57600 bps:\
|
|
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:</programlisting>
|
|
|
|
<para>Depois você pode fazer algo como <command>tip
|
|
-115200 5551234</command>. Se preferir o &man.cu.1; ao
|
|
invés do &man.tip.1;, utilize uma entrada
|
|
genérica:</para>
|
|
|
|
<programlisting>cu115200|Use o cu para discar qualquer número em 115200bps:\
|
|
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:</programlisting>
|
|
|
|
<para>e digite <command>cu 5551234 -s
|
|
115200</command>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="set-bps">
|
|
<para>Tenho que definir a taxa de bits por segundo sempre
|
|
que fazer isso?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Coloque uma entrada para <literal>tip1200</literal> ou
|
|
para <literal>cu1200</literal>, mas vá em frente e
|
|
utilize quaisquer taxas de bps (bits por segundo) que
|
|
sejam apropriadas para a capacidade br. O &man.tip.1; diz
|
|
que um bom padrão é 1200 bps porquê
|
|
ele procura uma entrada <literal>tip1200</literal>. De
|
|
qualquer forma, você não precisa utilizar
|
|
1200 bps.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="terminal-server">
|
|
<para>Como posso facilmente acessar vários hosts
|
|
através de um <literal>terminal
|
|
server</literal>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Ao invés de esperar até a
|
|
conexão, digitando <literal>CONNECT
|
|
host</literal> sempre, use a
|
|
opção <literal>cm</literal> do tip. Por
|
|
exemplo, estas entradas em
|
|
<filename>/etc/remote</filename> (veja
|
|
&man.remote.5;):</para>
|
|
|
|
<programlisting>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:</programlisting>
|
|
|
|
<para>permitirá a você digitar <command>tip
|
|
pain</command> ou <command>tip muffin</command> para se
|
|
conectar aos hosts <systemitem>pain</systemitem> ou
|
|
<systemitem>muffin</systemitem>; e <command>tip deep13</command>
|
|
para se conectar ao <literal>terminal
|
|
server</literal>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="tip-multiline">
|
|
<para>O <quote>tip</quote> pode tentar discar mais de uma
|
|
linha por vez?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Normalmente esse é um problema tradicional onde
|
|
uma universidade possue várias linhas de modems e
|
|
vários milhares de estudantes tentando
|
|
usá-las...</para>
|
|
|
|
<para>Faça uma entrada para sua universidade
|
|
em<filename>/etc/remote</filename> (veja &man.remote.5;) e
|
|
utilize a <literal><\@></literal> para a
|
|
característica <literal>pn</literal>:</para>
|
|
|
|
<programlisting>big-university:\
|
|
:pn=\@:tc=dialout
|
|
dialout:\
|
|
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:</programlisting>
|
|
|
|
<para>Então, liste os números de telefones
|
|
para a universidade em <filename>/etc/phones</filename>
|
|
(veja &man.phones.5;):</para>
|
|
|
|
<programlisting>big-university 5551111
|
|
big-university 5551112
|
|
big-university 5551113
|
|
big-university 5551114</programlisting>
|
|
|
|
<para>O &man.tip.1; tentará usar cada um na ordem
|
|
listada, e depois desistirá. Se você quer
|
|
manter-se tentando, execute o &man.tip.1; em um loop
|
|
while.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="multi-controlp">
|
|
<para>Por que eu tenho que pressionar duas vezes o
|
|
<keycombo action="simul"><keycap>CTRL</keycap><keycap>P</keycap></keycombo>
|
|
para enviar <keycombo action="simul"><keycap>CTRL</keycap><keycap>P</keycap></keycombo>
|
|
uma única vez?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para><keycombo action="simul"><keycap>CTRL</keycap><keycap>P</keycap></keycombo>
|
|
é o padrão para <quote>force
|
|
character</quote>, utilizado para dizer ao &man.tip.1;
|
|
que o próximo caracter é um dado literal.
|
|
Você pode definir o force character para qualquer
|
|
outro caracter com o escape <literal>~s</literal>, que
|
|
quer dizer <quote>defina uma variável</quote>.</para>
|
|
|
|
<para>Digite <literal>~sforce=single-char
|
|
</literal> seguido de uma
|
|
<emphasis>newline</emphasis>.
|
|
<replaceable>single-charcaracter</replaceable> é
|
|
qualquer caracter único. Se você deixar
|
|
<replaceable>single-char</replaceable>, então o
|
|
<quote>force character</quote> será o caracter
|
|
nulo, que você pode ao digitar <keycombo action="simul"><keycap>CTRL</keycap><keycap>2</keycap></keycombo>
|
|
ou <keycombo action="simul"><keycap>CTRL</keycap><keycap>SPACE</keycap></keycombo>.
|
|
Um valor muito bom para o
|
|
<replaceable>single-char</replaceable> é <keycombo action="simul"><keycap>SHIFT</keycap><keycap>CTRL</keycap><keycap>6</keycap></keycombo>,
|
|
o qual eu vi sendo usado em alguns servidores de
|
|
terminais.</para>
|
|
|
|
<para>Você pode ter o <quote>force character</quote>
|
|
que você quiser especificando o seguinte em seu
|
|
arquivo <filename>$HOME/.tiprc</filename> o
|
|
seguinte:</para>
|
|
|
|
<programlisting>force=<replaceable>single-char</replaceable></programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="uppercase">
|
|
<para>Por que tudo o que eu digito inesperadamente
|
|
está em CAIXA ALTA?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Você deve ter pressionado <keycombo action="simul"><keycap>CTRL</keycap><keycap>A</keycap></keycombo>,
|
|
o <quote>raise character do &man.tip.1;</quote>,
|
|
especialmente projetado para pessoas com teclas
|
|
<keycap>Caps Lock</keycap> que não funcionam. Use
|
|
o <literal>~s</literal> como acima, e defina a
|
|
variável <quote>raisechar</quote> para algo
|
|
razoável. De fato, você pode definir isso
|
|
para o <emphasis>force character</emphasis> também,
|
|
se você nunca espera utilizar ambas as
|
|
características.</para>
|
|
|
|
<para>Aqui está um exemplo de arquivo
|
|
<filename>.tiprc</filename> perfeito para os
|
|
usuários de Emacs que precisam digitar muitos
|
|
<keycombo action="simul"><keycap>CTRL</keycap><keycap>2</keycap></keycombo>
|
|
e <keycombo action="simul"><keycap>CTRL</keycap><keycap>A</keycap></keycombo>:</para>
|
|
|
|
<programlisting>force=^^
|
|
raisechar=^^</programlisting>
|
|
|
|
<para>O ^^ é obtido com <keycombo action="simul"><keycap>SHIFT</keycap><keycap>CTRL</keycap><keycap>6</keycap></keycombo>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="tip-filetransfer">
|
|
<para>Como eu posso transferir arquivos com o
|
|
<command>tip</command>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Se você está conversando com outro
|
|
sistema Unix, você pode enviar e receber arquivos
|
|
com <literal>~p</literal> (put) e com
|
|
<literal>~t</literal> (take). Estes comandos executam o
|
|
&man.cat.1; e o &man.echo.1; no sistema remoto para
|
|
aceitar e enviar arquivos. Sua sintaxe é:</para>
|
|
|
|
<programlisting>~p <local-file> [<remote-file>]
|
|
~t <remote-file> [<local-file>]</programlisting>
|
|
|
|
<para>Não há nenhuma checagem de erro,
|
|
então você provavelmente deve usar um outro
|
|
protocolo, como o zmodem</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="zmodem-tip">
|
|
<para>Como eu posso executar o zmodem com o
|
|
<application>tip</application>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Primeiro, instale um dos programas zmodem da
|
|
coleção de <literal>ports</literal> (tais
|
|
como <application>lrzsz</application> ou o
|
|
<application>rzsz</application>).</para>
|
|
|
|
<para>Para receber arquivos, inicie o programa de envio no
|
|
destino remoto. Então, pressione ENTER e digite
|
|
<literal>~C rz</literal> (ou <literal>~C lrz</literal>
|
|
caso tenha instalado o <application>lrzsz</application>)
|
|
para iniciar o recebimento local</para>
|
|
|
|
<para>Para enviar arquivos, inicie o programa do lado
|
|
remoto. Depois, aperte ENTER e digite <literal>~C sz
|
|
arquivos</literal> (ou
|
|
<literal>~C lsz
|
|
arquivos</literal>) para
|
|
envia-los ao sistema remoto.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="cannot-find-serial">
|
|
<para>O FreeBSD pode vir a não encontrar minhas
|
|
portas seriais, mesmo quando as
|
|
configurações estão corretas?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim, se sua placa-mãe for Acer UARTS. Elas
|
|
não escaneiam corretamente o barramento serial,
|
|
não permitindo que o FreeBSD encontre as Serial
|
|
Input/Output (sio) da placa. O patch disponível em
|
|
<link xlink:href="http://www.lemis.com/serial-port-patch.html">www.lemis.com</link>
|
|
pode corrigir esse problema.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="misc">
|
|
<title>Perguntas Variadas</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="more-swap">
|
|
<para>O FreeBSD usa bem mais espaço de swap do que o
|
|
Linux. Por quê?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Só parece que o FreeBSD usa mais swap do que o
|
|
Linux. Na verdade não usa. A principal
|
|
diferença entre o FreeBSD e o Linux nesse quesito
|
|
é que o FreeBSD vai sempre remanejar - de forma
|
|
pró-ativa - toda memória que estiver
|
|
completamente inativa e subutilizada, para o swap, dessa
|
|
forma garantindo sempre mais memória principal
|
|
disponível para utilização. O Linux
|
|
tende a remanejar páginas de memória para o
|
|
swap apenas como última alternativa. A
|
|
utilização mais acentuada do swap é
|
|
balanceada pela utilização mais eficiente da
|
|
memória principal.</para>
|
|
|
|
<para>Note que, pelo fato do FreeBSD ser próativo
|
|
nesse quesito, ele não decide arbitrariamente fazer
|
|
swap das páginas quando o sistema está de
|
|
fato inativo. Portanto você não corre o
|
|
risco de encontrar todo seu sistema despaginado pela
|
|
manhã, depois de uma noite inteira de
|
|
inatividade.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="top-freemem">
|
|
<para>Por que o <command>top</command> me mostra
|
|
pouquíssima memória livre, mesmo quando eu
|
|
não tenho muitos programas rodando?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A resposta simples é que memória
|
|
principal livre é memória
|
|
desperdiçada. Toda memória que não
|
|
estiver ativamente alocada pelos seus programas são
|
|
utilizadas pelo Kernel do FreeBSD como cache de disco. Os
|
|
valores que o &man.top.1; mostra como
|
|
<literal>Inact</literal>, <literal>Cache</literal>, e
|
|
<literal>Buf</literal> são dados referentes ao
|
|
cache de disco, em estágios distintos de
|
|
utilização. Esses dados cacheados garantem
|
|
que o sistema não tenha que fazer acesso em um
|
|
disco local (muito mais lento que a memória) para
|
|
utilizar os dados que foram acessados recentemente,
|
|
garantindo assim melhora significativa na performance
|
|
geral. Na maioria dos casos, se o &man.top.1; mostrar que
|
|
existe pouca memória disponível, isso
|
|
é uma boa indicação, a não ser
|
|
que seja uma quantidade <emphasis>extremamente</emphasis>
|
|
baixa.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="aout-elf">
|
|
<para>Por que usar (alias, o que são) os formatos
|
|
executáveis a.out e ELF?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Para entender porque o FreeBSD usa o formato
|
|
<filename>ELF</filename>, você deve primeiro saber
|
|
um pouco sobre os 3 formatos de executáveis Unix
|
|
<quote>dominantes</quote> atualmente:</para>
|
|
|
|
<note>
|
|
<para>Até a versão 3.x o FreeBSD usava o
|
|
formato a.out.</para>
|
|
</note>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>&man.a.out.5;</para>
|
|
|
|
<para>O mais antigo e <quote>classico</quote>formato de
|
|
objetos Unix. Ele usa um cabeçalho curto e
|
|
compacto, com um <quote>magic number</quote> no
|
|
início que é frequentemente utilizado
|
|
para identificar seu formato (mais detalhes veja
|
|
&man.a.out.5;). Ele contém três segmentos
|
|
a serem carregados: .text, .data, e .bss acrescidos de
|
|
uma tabela de símbolos e uma tabela de
|
|
caractereres adicionais.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><acronym>COFF</acronym></para>
|
|
|
|
<para>O formato de objetos SVR3. Seu cabeçalho
|
|
se consiste agora em uma tabela de
|
|
seções, dessa forma garantindo que
|
|
você tenha outras seções
|
|
além de .text, .data, e .bss.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><acronym>ELF</acronym></para>
|
|
|
|
<para>O sucessor do <acronym>COFF</acronym>,
|
|
atribuído de Múltiplas
|
|
seções e valores de 32-bit ou 64-bit.
|
|
Um de seus principais inconvenientes: O formato
|
|
<acronym>ELF</acronym> foi originalmente desenvolvido
|
|
presumindo-se que existiria apenas um único ABI
|
|
por arquitetura. A presunção é
|
|
incorreta, e nem mesmo em relação ao
|
|
mundo comercial do SYSV (onde encontramos ao menos
|
|
três ABIs distintas: SVR4, Solaris, SCO) isso
|
|
acontece.</para>
|
|
|
|
<para>O FreeBSD tenta se virar com esse problema com um
|
|
utilitário que <emphasis>identifica</emphasis>
|
|
um executável <acronym>ELF</acronym>
|
|
relacionando-o ao ABI com o qual ele é
|
|
compatível. Veja a página de manual do
|
|
&man.brandelf.1; para maiores
|
|
informações.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>O FreeBSD vem de tradição
|
|
<quote>clássica</quote> e por isso sempre usou o
|
|
formado &man.a.out.5; que é uma tecnologia que foi
|
|
experimentada e aprovada por várias
|
|
gerações de sistemas BSD. Apesar de,
|
|
há algum tempo também ser possível
|
|
para o FreeBSD trabalhar nativamente com binários
|
|
<acronym>ELF</acronym> (e também
|
|
<foreignphrase>kernels</foreignphrase>), o FreeBSD
|
|
inicialmente resistiu à
|
|
<quote>pressão</quote> em assumir o
|
|
<acronym>ELF</acronym> como formato padrão. Por
|
|
quê? Bem, quando o campo do Linux resolveu fazer
|
|
sua dolorosa transição para o formato
|
|
<acronym>ELF</acronym>, não sobrou muito para ser
|
|
aproveitado dos formatos <filename>a.out</filename>
|
|
especialmente por causa das limitações de
|
|
tabelas que podiam ser utilizadas em seus
|
|
cabeçalhos, e isso tornou o desenvolvimento de
|
|
bibliotecas compartilhadas extremamente árduo para
|
|
fabricantes e desenvolvedores em geral. Depois disso, as
|
|
ferramentas <acronym>ELF</acronym> começaram
|
|
à oferecer soluções para o
|
|
compartilhamento de bibliotecas, soluções
|
|
que fossem extremamente satisfatórias, e a
|
|
migração, apesar dos custos
|
|
necessários que a envolvia, foi aceita, e a
|
|
transição para <acronym>ELF</acronym> passou
|
|
a ser o <quote>caminho à ser
|
|
seguido</quote>.</para>
|
|
|
|
<para>No caso do FreeBSD, o nosso mecanismo de bibliotecas
|
|
compartilhadas tem uma base mais próxima do estilo
|
|
do <application>SunOS</application>, da Sun, e é
|
|
extremamente fácil de ser utilizado. Contudo,
|
|
à partir da série 3.0, o FreeBSD
|
|
oficialmente adotou o formato de binários
|
|
<acronym>ELF</acronym> como padrão. Apesar do
|
|
formato <filename>a.out</filename> sempre ter servido
|
|
muito bem às nossas necessidades, o pessoal da GNU,
|
|
autores de algumas das ferramentas de
|
|
compilação que nós usamos,
|
|
simplesmente deixaram de suportar o formato
|
|
<filename>a.out</filename>. Tal fato nos forçou
|
|
à manter versões distintas do compilador e
|
|
do linkador, e nos permitiriam usufruir dos
|
|
esforços que nós achássemos
|
|
interessantes nos desenvolvimentos GNU. Finalmente, a
|
|
demanda pelo ISO-C++, notáveis compiladores e
|
|
descompiladores, também contribuiram para uma
|
|
adoção nativa dos binários
|
|
<acronym>ELF</acronym> nas versões futuras do
|
|
FreeBSD.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="binary-formats">
|
|
<para>Certo, mas por que existem tantos formatos
|
|
diferentes?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>De volta às 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 serviço de
|
|
representar o formato binário 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.</para>
|
|
|
|
<para>Então, algum engenheiro de hardware brilhante,
|
|
decidiu que se ele pudesse forçar o software
|
|
à dar conta de algumas coisinhas, alguns
|
|
truquezinhos, ele poderia então passar por cima de
|
|
algumas restrições 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
|
|
é conhecido como RISC), a
|
|
<filename>a.out</filename> não se encaixava muito
|
|
bem em suas funções, e então muitos
|
|
formatos foram desenvolvidos afim de obter melhor
|
|
performance desse hardware, que a simples
|
|
<filename>a.out</filename> não podia comportar.
|
|
Coisas como <acronym>COFF</acronym>,
|
|
<acronym>ECOFF</acronym> e outras ainda mais obscuras
|
|
foram inventadas, e todas suas limitações
|
|
foram exploradas, até que se resultasse o formato
|
|
<acronym>ELF</acronym>.</para>
|
|
|
|
<para>Em adição, o tamanho dos programas
|
|
passou a crescer, e os discos (assim como a memória
|
|
física) ainda eram relativamente pequenos,
|
|
então nasceu o conceito de compartilhamento de
|
|
bibliotecas. O sistema de Memória Virtual (VM)
|
|
também se tornou mais sofisticado. Cada um desses
|
|
avanços eram feitos utilizando-se o formato
|
|
<filename>a.out</filename>, e o seu uso crescia mais e
|
|
mais com cada nova característica. Depois, as
|
|
pessoas começaram a querer que as coisas fossem
|
|
dinâmicamente carregadas em tempo de
|
|
execussão, ou então queriam poder descartar
|
|
algum trecho de seus programas depois que seu
|
|
código de inicialização tivesse sido
|
|
executado, de modo à economizar memória
|
|
principal ou mesmo Swap. As linguagens de
|
|
programação se tornaram mais sofisticadas,
|
|
então as pessoas queriam códigos com
|
|
chamadas automáticas antes do programa principal
|
|
(main). Começou-se então a hackear a
|
|
<filename>a.out</filename> de forma que ela pudesse suprir
|
|
essas necessidades. E de fato por algum tempo ela as
|
|
supriu. Depois a <filename>a.out</filename> passou a
|
|
não suportar mais determinados problemas sem
|
|
resultar em uma sobrecarga ou complexidade exagerada de
|
|
código. Por outro lado, o formato
|
|
<acronym>ELF</acronym> resolvia a maioria desses
|
|
problemas, mas seria doloroso demais simplesmente
|
|
abandonar um formato e sistema que, basicamente
|
|
funcionavam bem. Então o formato
|
|
<acronym>ELF</acronym> teve que esperar até que
|
|
fosse ainda mais doloroso continuar com o formato
|
|
<filename>a.out</filename> do que migrar para
|
|
<acronym>ELF</acronym>.</para>
|
|
|
|
<para>Contudo, com o passar do tempo, as ferramentas de
|
|
desenvolvimento às quais o FreeBSD derivava suas
|
|
próprias ferramentas de desenvolvimento
|
|
(especialmente o assembler e o carregador - loader) se
|
|
envolveram em duas árvores paralelas. A
|
|
árvore do FreeBSD adicionou inúmeras
|
|
bibliotecas compartilhadas, e arrumou inúmeros
|
|
bugs. E a rapaziada do GNU, que originalmente escreviam
|
|
algumas dessas ferramentas, passaram a rescreve-las e
|
|
adicionaram suporte para compilação
|
|
derivada, adoções de formatos diferentes,
|
|
etc. Depois pensou-se em desenvolver um formato derivado,
|
|
visando o FreeBSD, mas não obteve-se sorte o
|
|
bastante, especialmente porque os fontes antigos do
|
|
"ld" do FreeBSD não davam conta da
|
|
tarefa. A corrente de novas ferramentas GNU (as chamadas
|
|
binutils) agora suportam compilação
|
|
derivada, formato <acronym>ELF</acronym>, bibliotecas
|
|
compartilhadas, extensões de C++, etc, etc. Em
|
|
adição ainda, muitos fabricantes passaram
|
|
à lançar binários
|
|
<acronym>ELF</acronym>, e então, por que continuar
|
|
nos chateando com o formato <filename>a.out</filename>? A
|
|
<filename>a.out</filename> é um cavalo velho e
|
|
muito cansado, que já provou ser extremamente
|
|
útil no passado, mas agora está na hora de
|
|
tira-lo do pasto, como recompensa por seus longos e
|
|
fiéis anos de serviço.</para>
|
|
|
|
<para>O formato <acronym>ELF</acronym> é mais
|
|
expressivo do que o <filename>a.out</filename>, e vai
|
|
permitir muito mais extensibilidade à base do
|
|
sistema. As ferramentas <acronym>ELF</acronym> são
|
|
mantidas de forma mais confiável, e oferecem
|
|
suporte à compilação derivada, o que
|
|
é importante para muita gente. O formato
|
|
<acronym>ELF</acronym> é um pouco mais lento do que
|
|
o formato <filename>a.out</filename>, mas é quase
|
|
impossível comparar ambos, existem inúmeros
|
|
detalhes que os fazem diferentes, desde o mapeamento de
|
|
páginas de memória, até a forma como
|
|
eles tratam o código de inicialização
|
|
de um binário (init code). Nenhuma dessas
|
|
questões é importante, mas existem
|
|
diferenças. Com o tempo, o suporte para o formato
|
|
<filename>a.out</filename> vai ser retirado do
|
|
<foreignphrase>kernel</foreignphrase> GENERIC, e
|
|
eventualmente será retirado em definitivo do
|
|
<foreignphrase>kernel</foreignphrase>, uma vez que a
|
|
necessidade de rodar programas <filename>a.out</filename>
|
|
tenham se tornado passado.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="chmod-symlinks">
|
|
<para>Por que o chmod não modifica as
|
|
permissões dos links simbólicos?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Links simbólicos não tem
|
|
permissões, e por padrão, o &man.chmod.1;
|
|
não vai seguir os links afim de mudar as
|
|
permissões do arquivo original. Portanto, se
|
|
você tem um arquivo qualquer, e um link
|
|
simbólico para esse arquivo, o seguinte comando vai
|
|
lhe servir.</para>
|
|
|
|
<screen>&prompt.user; <userinput>chmod g-w <link simbólico></userinput></screen>
|
|
|
|
<para>Contudo, as permissões para o arquivo original
|
|
não serão alteradas. Mas se você usar
|
|
a opção <option>-H</option> ou
|
|
<option>-L</option> em conjunto com <option>-R</option>,
|
|
você vai poder alterá-la. Veja as
|
|
páginas de manuais do &man.chmod.1; e do
|
|
&man.symlink.7; para mais informações.</para>
|
|
|
|
<warning>
|
|
<para>A opção <option>-R</option> resulta em
|
|
um &man.chmod.1; <acronym>RECURSIVO</acronym>. Tome
|
|
muito cuidado quando for definir diretórios ou
|
|
links simbólicos com &man.chmod.1;. Se você
|
|
quer alterar as permissões dentro do
|
|
diretório referenciado pelo symlink, então
|
|
basta usar o &man.chmod.1; sem qualquer outra
|
|
opção, mas com uma barra
|
|
<filename>/</filename>. Por exemplo, se
|
|
<filename>A</filename> for um link simbólico para
|
|
o arquivo original <filename>B</filename>, então
|
|
para alterar sua permissão basta um
|
|
simples:</para>
|
|
|
|
<screen>&prompt.user; <userinput>chmod 555 A/</userinput></screen>
|
|
|
|
<para>Com essa barra, o &man.chmod.1; vai seguir o link
|
|
simbólico para mudar as permissões do
|
|
arquivo original.</para>
|
|
</warning>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="login-8char">
|
|
<para>Por que os nomes de login (ou username) são
|
|
restritos à 8 caracteres no FreeBSD 2.2.X e
|
|
anteriores?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Você pode pensar que seria bem
|
|
confortável simplesmente mudar o
|
|
<literal>UT_NAMESIZE</literal> e depois recompilar todo o
|
|
sistema operacional, ai tudo iria funcionar
|
|
maravilhosamente bem. Infelizmente não é
|
|
assim que as coisas funcionam, existem estruturas de
|
|
aplicações e utilitários (incluindo
|
|
ferramentas do sistema) que foram codificadas utilizando
|
|
números pequenos (nem sempre <literal>8</literal>
|
|
ou <literal>9</literal>, mas alguns valores mais
|
|
arbitrários como <literal>15</literal> e
|
|
<literal>20</literal>) em estruturas e buffers. Você
|
|
não vai ter problemas apenas com arquivos de logs,
|
|
que serão inutilizados (devido ao tamanho
|
|
variável dos dados gravados, quando apenas um
|
|
tamanho constante era esperado), mas vai também ter
|
|
problemas com clientes NIS de máquinas Sun, e
|
|
potencialmente provocar outros problemas ao interagir com
|
|
outros sistemas Unix.</para>
|
|
|
|
<para>No FreeBSD 3.0 e posteriores, o tamanho máximo
|
|
do nome de usuário foi elevado para 16 caracteres,
|
|
e todas as ferramentas e trechos do código
|
|
principal do sistema que poderiam apresentar problemas em
|
|
relação à isso, foram encontradas e
|
|
corrigidas. O fato dessa alteração mudar
|
|
tantos fatores importantes no sistema é que,
|
|
nenhuma mudança tinha sido feita até a
|
|
versão 3.0.</para>
|
|
|
|
<para>Se você confia completamente em suas habilitades
|
|
para procurar e corrigir esses prováveis problemas
|
|
sozinho, então basta aumentar o tamanho do nome de
|
|
usuário no arquivo
|
|
<filename>/usr/include/utmp.h</filename> e mudar a
|
|
UT_NAMESIZE para o valor desejado. Você
|
|
também vai ter que atualizar o MAXLOGNAME no
|
|
<filename>/usr/include/sys/param.h</filename> para ficar
|
|
de acordo com a mudança no UT_NAMESIZE.
|
|
Finalmente, se você vai recompilar os fontes,
|
|
não se esqueça que o /usr/include é
|
|
atualizado sempre. Mude então os arquivos
|
|
apropriados em /usr/src(...) para garantir que você
|
|
vai estar alterando sempre a fonte do problema, e
|
|
não apenas a instância instalada, no
|
|
sistema.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="dos-binaries">
|
|
<para>Posso rodar binários do DOS sob FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim, à partir da versão 3.0, você
|
|
pode utilizar o emulador <application>doscmd</application>
|
|
da BSDI. A emulação DOS desse aplicativo
|
|
foi totalmente redefinida depois da sua
|
|
integração do FreeBSD. Entre na
|
|
&a.emulation; se você tem interesse em se juntar ao
|
|
grupo que se esforça nessa jornada.</para>
|
|
|
|
<para>Em sistemas anteriores ao 3.0, existe um
|
|
utilitário não muito interessante, chamado
|
|
<application>pcemu</application> no
|
|
<literal>Ports</literal>. O
|
|
<application>pcemu</application> emula um 8088 e algumas
|
|
função de BIOS que são o bastante
|
|
para rodar aplicações DOS que sejam
|
|
textuais. Ele requer o X, sistema de interface grafica
|
|
(XFree86).</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="translation">
|
|
<para>O que eu preciso para traduzir um documento do FreeBSD
|
|
para a minha língua nativa?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Veja o <link xlink:href="../fdp-primer/translations.html"><literal>FAQ</literal>
|
|
de Tradução</link> no
|
|
<foreignphrase>FreeBSD Documentation Project
|
|
Primer</foreignphrase>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="freebsd-mail-bounces">
|
|
<para>Por que meu e-mail para qualquer endereço em
|
|
FreeBSD.org sempre falha?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O sistema de correio eletrônico do site
|
|
FreeBSD.org implementa algumas das
|
|
restrições do Postfix, verificando nas
|
|
mensagens que estão chegando, se elas estão
|
|
sendo entregues por algum servidor mal configurado, ou se
|
|
representa algum tipo de <literal>SPAM</literal> em
|
|
potencial. As suas mensagens podem estar voltando por
|
|
algum dos seguintes motivos:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>A mensagem está sendo enviada de um
|
|
domínio ou bloco de endereços IP
|
|
reconhecidamente utilizados para
|
|
<literal>SPAM</literal>.</para>
|
|
|
|
<para>Os servidores de correio eletrônico do
|
|
projeto FreeBSD rejeitam mensagens de qualquer fonte
|
|
de <literal>SPAM</literal> conhecida. Se você
|
|
utiliza os serviços de uma empresa que costuma
|
|
fazer <literal>SPAM</literal> ou permitir que seus
|
|
clientes o façam, por gentileza, mude o seu
|
|
provedor de serviços, para um que não
|
|
permite tal prática.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>O corpo da mensagem contém apenas
|
|
HTML.</para>
|
|
|
|
<para>Mensagens de correio eletrônico devem ser
|
|
enviadas apenas como texto puro. Mensagens de e-mail
|
|
não são web sites. Configure o seu
|
|
cliente de correio eletrônico de modo que ele
|
|
apenas envie mensagens de texto puro.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Os servidores da FreeBSD.org não conseguem
|
|
resolver o seu endereço IP para o nome da
|
|
estação que está entregando a
|
|
mensagem eletrônica.</para>
|
|
|
|
<para>Por padrão, ter registros de DNS reverso
|
|
é 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
|
|
serviços residênciais (como ADSL, dialup,
|
|
cable, etc) não permitem que você mesmo
|
|
configure o seu reverso. Nesse caso, envie sua
|
|
mensagem pelo servidor de e-mail do seu provedor de
|
|
serviços, ou peça ao provedor que ajuste
|
|
o reverso do seu IP.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>O nome da estação enviada no
|
|
cabeçalho inicial EHLO/HELO, parte do protocolo
|
|
de envio SMTP não pode ser resolvido em um
|
|
endereço IP correspondente.</para>
|
|
|
|
<para>O servidor que está tentando entregar a
|
|
mensagem deve ter o registro de nomes configurado
|
|
corretamente, de forma que o nome da
|
|
estação possa ser resolvido em um
|
|
endereço IP. Caso sua estação
|
|
não tenha um registro DNS configurado, utilize
|
|
o servidor de correio eletrônico do seu provedor
|
|
de serviços.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Sua mensagem teve uma identificação
|
|
que terminava com o conjunto de caracteres
|
|
<quote>localhost</quote>.</para>
|
|
|
|
<para>Alguns clientes de correio eletrônico geram
|
|
ID - identificações - das mensagens de
|
|
forma imprópria. Nesse caso, o seu servidor de
|
|
correio deve redefinir o ID da mensagem, ou você
|
|
deve reconfigura-lo de modo que ele gere tal
|
|
identificação de forma
|
|
aceitável.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="free-account">
|
|
<para>Onde eu consigo uma conta gratuíta em um
|
|
FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O Projeto FreeBSD não permite acesso
|
|
público a nenhum dos seus servidores, contudo
|
|
algumas empresas oferecem acesso irrestrito à
|
|
sistemas Unix. Os preços variam, e alguns
|
|
serviços limitados podem ser
|
|
disponibilizados.</para>
|
|
|
|
<para>A <link xlink:href="http://www.arbornet.org/">Arbornet,
|
|
Inc</link>, também conhecida como M-Net,
|
|
provê acesso à 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 básico a uma gama completa de
|
|
softwares do FreeBSD. Contudo, o acesso à rede
|
|
é limitado aos membros e patronos da
|
|
instituição, que fazem doações
|
|
à empresa, uma vez que a mesma é uma
|
|
organização sem fins lucrativos. A M-Net
|
|
também oferece um Boletim periódico e Chat
|
|
interativo.</para>
|
|
|
|
<para>A <link xlink:href="http://www.grex.org/">Grex</link>
|
|
também oferece um acesso parecido com o da M-Net,
|
|
inclusive com os mesmos serviços, contudo a
|
|
máquina é uma Sun 4M e seu sistema Unix
|
|
é o SunOS. Vale pela curiosidade, e para
|
|
comparação entre os sistemas.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="sup-define">
|
|
<para>O que é <command>sup</command>, e como eu uso
|
|
isso?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para><link xlink:href="http://www.FreeBSD.org/cgi/ports.cgi?^sup">SUP</link>
|
|
significa Protocolo de Atualização de
|
|
Programa (Software Update Protocol ), e foi desenvolvido
|
|
pela CMU para manter suas árvores de
|
|
desenvolvimento sempre sincronizadas. Nós
|
|
utilizamos esse protocolo para manter alguns sites remotos
|
|
em sincronia com os nossos servidores centrais de
|
|
desenvolvimento.</para>
|
|
|
|
<para>SUP náo é amigável com a banda de
|
|
tramissão (consome muita banda) , e por isso foi
|
|
aposentado. Atualmente recomendados que você
|
|
faça uso do <link xlink:href="../handbook/synching.html#CVSUP">CVSup</link> para
|
|
manter seus fontes atualizados.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="daemon-name">
|
|
<para>Qual o nome daquele capetinha vermelho
|
|
simpático?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Ele não tem um nome, é simplesmente
|
|
chamado de <quote>the BSD daemon</quote>. Se você
|
|
insiste em dar um nome à ele, por gentileza,
|
|
chame-o de <quote>beastie</quote> ;-) Note que
|
|
<quote>beastie</quote> se pronuncia
|
|
<quote>BSD</quote>.</para>
|
|
|
|
<para>Você pode saber mais sobre o BSD daemon na sua
|
|
<link xlink:href="http://www.mckusick.com/beastie/index.html">home
|
|
page</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="use-beastie">
|
|
<para>Posso usar a imagem do BSD daemon?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Talvez. O BSD daemon é de direitos autorais de
|
|
Marshall Kirk McKusick. Você deve pedir a
|
|
permissão do McKusick para usar a imagem do BSD
|
|
Daemon, e pedir para saber os <link xlink:href="http://www.mckusick.com/beastie/mainpage/copyright.html">termos
|
|
de utilização da figura
|
|
pública</link> do nosso querido capetinha
|
|
;-)</para>
|
|
|
|
<para>Resumindo, você pode fazer uso da imagem dele,
|
|
dependendo da maneira, para uso pessoal, por exemplo. Se
|
|
os créditos apropriados forem dados, tudo bem.
|
|
Para fazer uso comercial da imagem, ai sim você deve
|
|
falar com o McKusick, e dar uma olhada na home page do
|
|
<link xlink:href="http://www.mckusick.com/beastie/index.html">
|
|
BSD Daemon</link> para mais detalhes..</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="daemon-images">
|
|
<para>Vocês tem algumas imagens do BSD daemon que eu
|
|
poderia usar?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Você vai encontrar algumas figuras em eps e Xfig
|
|
sob o diretório
|
|
<filename>/usr/share/examples/BSD_daemon/</filename>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="define-MFC">
|
|
<para>O que significa <acronym>MFC</acronym>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>MFC é um acrônimo para <quote>obtido a
|
|
partir do ramo -CURRENT</quote> (<foreignphrase>Merged
|
|
From -CURRENT</foreignphrase>). É usado nos logs
|
|
do CVS para identificar uma mudança que seja
|
|
originada e migrada da série de desenvolvimento
|
|
(-CURRENT) para série estável
|
|
(-STABLE).</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="define-BSD">
|
|
<para>O que significa <acronym>BSD</acronym>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O significado da sigla BSD é algo, em uma
|
|
língua secreta que apenas os membros podem saber.
|
|
Literalmente não seria possível traduzir BSD
|
|
para uma língua que você pudesse entender,
|
|
mas poderíamos tentar explicar seu significado como
|
|
algo bem próximo de <quote>Equipe de
|
|
Fórmula-1</quote>, <quote>Penguins são
|
|
aperitivos saborosos</quote>, e também
|
|
<quote>Nós temos mais senso de humor do que o
|
|
Linux</quote>. :-)</para>
|
|
|
|
<para>A versão séria é que BSD é
|
|
um acrônimo para <quote>Berkeley Software
|
|
Distribution</quote>, que é o nome que o Grupo de
|
|
Pesquisa de Ciência da Computação da
|
|
Universidade de Berkeley - Berkeley
|
|
<acronym>CSRG</acronym> (Computer Systems Research Group)
|
|
- escolheu para sua própria
|
|
distribuição do Unix.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="define-pola">
|
|
<para>O que significa <acronym>POLA</acronym>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>É o Princípio de Menor
|
|
Alteração. Significa que durante o processo
|
|
de desenvolvimento do FreeBSD, toda e qualquer
|
|
modificação que seja visível para o
|
|
usuário, deve ser menos surpreendente
|
|
possível, mantendo assim uma compatibilidade
|
|
prévia com a forma de utilização do
|
|
sistema. Por exemplo, não se pode alterar
|
|
arbitráriamente as variáveis dos scripts de
|
|
configuração do sistema, em
|
|
<filename>/etc/defaults/rc.conf</filename>, pois esse tipo
|
|
de ação violaria a POLA. O desenvolvimento
|
|
do FreeBSD apenas considera POLA quando as
|
|
alterações são visíveis pelo
|
|
usuário.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="define-repocopy">
|
|
<para>O que é um repo-copy?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Um repo-copy (que é uma forma breve de chamar
|
|
um <quote>repository copy</quote>) é simplesmente a
|
|
cópia direta de arquivos em um repositório
|
|
CVS.</para>
|
|
|
|
<para>Sem um repo-copy, uma alteração por
|
|
parte de algum mantenedor, se tornaria uma cópia
|
|
comum, originada via <command>cvs</command>, seguida de um
|
|
<command>rm</command> para deletar o arquivo original que
|
|
tivesse sido modificado.</para>
|
|
|
|
<para>Esse processo contudo, resulta em uma não
|
|
constatação histórica do arquivo
|
|
antigo, nos novos registros de log. O Projeto FreeBSD
|
|
considera extremamente importante a
|
|
manutenção desse histórico, e por
|
|
isso as cópias de repositório são
|
|
frequentemente utilizadas. Nesse processo, um dos
|
|
repositórios centrais vai copiar os arquivos
|
|
diretamente para outro repositório, e não
|
|
simplesmente fazer uma sincronia com o programa
|
|
&man.cvs.1;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="bikeshed-painting">
|
|
<para>Porque eu devo me preocupar com a cor do quartinho de
|
|
bicicletas (bikeshed)?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A resposta mais curta, é que você
|
|
não deve. A resposta longa é que, só
|
|
porque você é capaz de fazer quarto para
|
|
guardar sua própria bicicleta, você
|
|
não pode fazer as outras pessoas pararem de
|
|
construir seus próprios quartinhos também,
|
|
simplesmente porque você não gosta da cor que
|
|
as pessoas os pintam. Essa metáfora indica que
|
|
você não tem que argumentar nem reclamar
|
|
sobre cada coisinha, só porque tem conhecimento o
|
|
bastante para critica-la. Algumas pessoas dizem que a
|
|
quantidade de barulho provocada por uma
|
|
alteração é inversamente proporcional
|
|
à complexidade da mudança.</para>
|
|
|
|
<para>A resposta ainda mais completa, e maior, é que,
|
|
depois de muita discussão sobre quando o
|
|
&man.sleep.1; deveria trabalhar com argumentos de segundos
|
|
fracionados, &a.phk; enviou uma mensagem, longa, chamada
|
|
de <quote><link xlink:href="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">Um
|
|
quarto de bicicleta (qualquer cor serve) em um gramado
|
|
mais verde...</link></quote>. As partes devidas da
|
|
mensagem estão citadas abaixo.</para>
|
|
|
|
<blockquote>
|
|
<attribution>&a.phk; na freebsd-hackers, em 2 de Outubro
|
|
de 1999</attribution>
|
|
|
|
<para><quote>O que é isso sobre a cor do quartinho
|
|
da bicicleta?</quote> Alguns de vocês me
|
|
perguntaram.</para>
|
|
|
|
<para>É uma longa história, ou melhor,
|
|
é uma antiga história, mas pode ser meio
|
|
curta na verdade. Um cara chamado C. Northcote
|
|
Parkinson escreveu um livro em meados de 1960 chamado de
|
|
<quote>A Lei de Parkinson</quote>, que continha
|
|
vários insights sobre as dinâmicas da
|
|
administração.</para>
|
|
|
|
<para>[trechos irrelevantes foram cortados]</para>
|
|
|
|
<para>Vamos deixar de falar sobre o livro em sí,
|
|
mas vamos tratar apenas um exemplo. O exemplo
|
|
específico, do caso do quartinho da bicileta, tem
|
|
outro componente de vital importância, que
|
|
é uma usina nuclear. Isso ilustra a época
|
|
que o livro foi escrito.</para>
|
|
|
|
<para>Parkinson mostra como você pode fazer para
|
|
chegar em um corpo de diretores de uma empresa e
|
|
convencê-los a construir uma usina atômica
|
|
multi-milhionária ou até mesmo
|
|
bilhionária, mas diz que se você abordar os
|
|
diretores da mesma forma, tentando aprovar a
|
|
construção de um quartinho de bicicleta,
|
|
você vai cair em uma discussão profunda, e
|
|
sem fim.</para>
|
|
|
|
<para>Parkinson explica que isso acontece porque uma usina
|
|
atômica é tão vasta, tão cara
|
|
e tão complicada que as pessoas simplesmente
|
|
preferem não discutir, e mesmo que tentem
|
|
fazê-lo, eles assumem que alguém já
|
|
observou todos os detalhes possíveis antes que
|
|
tal proposta chegasse à tal ponto. Richard P.
|
|
Feunmann dá alguns exemplos interessantes, sobre
|
|
o que acontece em Los Alamos em seus livros.</para>
|
|
|
|
<para>Por outro lado, um barracão de bicicleta pode
|
|
ser construído por qualquer um, em um fim de
|
|
semana qualquer, e ainda sobraria tempo ao seu
|
|
desenvolvedor para assistir o jogo na TV. Então,
|
|
não importa o quão bem preparado
|
|
você esteja, alguém vai sempre querer
|
|
aparecer diante de uma situação dessas, e
|
|
querer discutir as coisas mais pequenas
|
|
possíveis. Na Dinamarca isso se chama
|
|
<quote>Deixar sua marquinha</quote>. Envolve
|
|
prestígio e orgulho pessoal, envolve a
|
|
possibilidade de apontar para algum lugar (qualquer
|
|
lugar que seja) e apontar dizendo
|
|
<quote><emphasis>Aquilo! Eu fiz
|
|
aquilo</emphasis></quote> (o que quer que aquilo
|
|
seja). Isso é comum em políticos, mas
|
|
aparece em qualquer pessoa a quem se dê a chance.
|
|
Simplesmente pense em pegadas, no cimento
|
|
fresco."</para>
|
|
</blockquote>
|
|
|
|
<para>Na verdade, um "quartinho de bicicletas" ou
|
|
"barracão de bicicletas" é uma
|
|
tradução literal para a expressão
|
|
<quote>bikeshed</quote>; comumente utilizada na
|
|
língua inglesa. Um <quote>bikeshed</quote>, no
|
|
significado definido pelo dicionário norte
|
|
americano é um pequeno quarto ou
|
|
barração não raramente encontrado no
|
|
fundo de uma casa, que é 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 próximos
|
|
à garagem de automóveis. A expressão
|
|
é normalmente utilizada pelos desenvolvedores do
|
|
FreeBSD quando se começa uma discussão sobre
|
|
algum assunto que não é tão
|
|
importante para o bom funcionamento de alguma outra coisa,
|
|
como por exemplo, qual a importância da cor de um
|
|
quartinho de bicicletas, quando o mesmo já
|
|
está construído e servindo bem ao seu
|
|
propósito?</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="funnies">
|
|
<title>As gracinhas do FreeBSD</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="very-very-cool">
|
|
<para>Quão fresco é o FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>P. Alguém já 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 é um
|
|
sistema muito
|
|
<emphasis><foreignphrase>caliente</foreignphrase></emphasis>!</para>
|
|
|
|
<para>R. Não, mas nós já fizemos
|
|
vários testes de sabor com usuários vendados
|
|
que, além de tudo, haviam tomado 250 microgramas de
|
|
LSD-25. 35% dos voluntários disseram que o FreeBSD
|
|
tinha um sabor parecido com laranja, enquanto o Linux
|
|
tinha sabor de névoa púrpura. Nenhum dos
|
|
dois grupos comentou nada significante sobre a
|
|
variação de temperatura. Eventualmente,
|
|
tivemos que jogar o resultado desses testes fora,
|
|
já que descobrimos que vários desses
|
|
voluntários estavam vagando fora do quarto,
|
|
prejudicando os resultados. Acreditamos que hoje, a
|
|
maioria desses voluntários trabalhe na Apple. Eles
|
|
devem estar criando novas interfaces gráficas do
|
|
tipo <quote>arranha e cheira</quote>. É um
|
|
trabalho divertido e clássico, do qual nós
|
|
fazemos parte!</para>
|
|
|
|
<para>Falando sério, o FreeBSD e o Linux usam as
|
|
instruções <acronym>HLT</acronym> (halt)
|
|
quando o sistema está inativo. Isto diminui
|
|
consideravelmente o consumo de energia e,
|
|
conseqüentemente, o aquecimento que ele proporciona.
|
|
Além disso, se seu sistema possui APM (sistema
|
|
avançado de gerenciamento de energia) configurado,
|
|
o FreeBSD coloca a CPU em modo de consumo menor de
|
|
energia.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="letmeoutofhere">
|
|
<para>Quem está arranhando meus pentes de
|
|
memória??</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>P. Existe alguma <quote>bruxaria</quote> que o
|
|
FreeBSD faz ao compilar o
|
|
<foreignphrase>kernel</foreignphrase> que, por ventura,
|
|
estaria fazendo meus pentes de memória fazer
|
|
barulhos estranhos, como se estivessem sendo arranhados?
|
|
Durante a compilação do sistema (e um
|
|
pouquinho depois, assim que a unidade de disquete é
|
|
reconhecida, e após a inicialização
|
|
também), um barulho estranho de arranhos
|
|
começa a emanar de algum lugar que parece ser os
|
|
pentes de memória.</para>
|
|
|
|
<para>R. Claro! Com muita frequência, você vai
|
|
ouvir falar dos <quote>daemons</quote> na
|
|
documentação do BSD. O que a maioria das
|
|
pessoas não sabem é que essa é uma
|
|
referência genuína às entidades
|
|
não-corporais que estão possuindo o seu
|
|
computador. O barulho que parece o som de alguma coisa
|
|
sendo arranhada, na verdade são sussuros em tons
|
|
extremamente agudos que os <quote>daemônios</quote>
|
|
emanam, ao decidir entre si as melhores maneiras de tratar
|
|
as várias tarefas referentes à
|
|
administração do seu sistema.</para>
|
|
|
|
<para>Se o barulho te dominar, um bom <command>fdisk
|
|
/mbr</command> no DOS pode fazer você se livrar
|
|
dos sons, mas não se surpreenda se a
|
|
reação dos
|
|
<foreignphrase>daemons</foreignphrase> forem adversas, ao
|
|
tentar evitar que você faça isso. Na
|
|
verdade, há qualquer momento, é
|
|
possível que você ouça a voz
|
|
satânica do Bill Gates pelo auto-falante interno do
|
|
seu PC. Se isso acontecer, CORRA! Corra sem parar e
|
|
não olhe para trás por qualquer que seja o
|
|
motivo! Depois de se liberarem das influências
|
|
contrastantes dos <foreignphrase>daemons</foreignphrase>
|
|
BSD, os demônios gêmeos do DOS e do Windows
|
|
costumam ter sucesso ao repossuir total controle do seu
|
|
computador, e depois disso, o tempo garantirá que
|
|
eles consigam a dominação total da sua alma.
|
|
Agora que você já conhece a verdade,
|
|
esperamos que sua escolha seja conviver com os barulhinos
|
|
agudos. Ou não?</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="changing-lightbulbs">
|
|
<para>Quantos FreeBSD <foreignphrase>hackers</foreignphrase>
|
|
são necessários para trocar uma
|
|
lâmpada?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Mil cento e sessenta e nove:</para>
|
|
|
|
<para>Vinte e três para reclamarem no -CURRENT que
|
|
estão sem luz;</para>
|
|
|
|
<para>Quatro para dizer que é um problema na
|
|
configuração, e que essa pergunta deveria
|
|
ser feita na freebsd-questions;</para>
|
|
|
|
<para>Três para enviar Relatório de Problemas
|
|
sobre a lâmpada, dos quais ao menos um, não
|
|
está completamente concluído, e consiste
|
|
apenas de um breve <quote>tá escuro</quote>;</para>
|
|
|
|
<para>Um para adicionar uma lâmpada que nunca foi
|
|
testada, que danifica todo o <literal>buildworld
|
|
</literal> e depois de 5 minutos tem que ser
|
|
retirada;</para>
|
|
|
|
<para>Oito para reclamarem para os autores dos
|
|
Relatórios de Problemas por não ter
|
|
incluído correções em seus
|
|
relatórios;</para>
|
|
|
|
<para>Cinco para reclamar que o
|
|
<literal>buildworld</literal> não está
|
|
funcionando;</para>
|
|
|
|
<para>Trinta e um para responder que funciona para eles, e
|
|
que os problemáticos devem ter feito CVSup na hora
|
|
errada;</para>
|
|
|
|
<para>Um para enviar uma correção para a nova
|
|
lâmpada na freebsd-hackers;</para>
|
|
|
|
<para>Um para reclamar que ele tinha correções
|
|
para essa lâmpada há 3 anos, mas que quando
|
|
elas foram enviadas para o -CURRENT, foram simplesmente
|
|
ignoradas, e que sua experiência com o sistema de
|
|
Relatório de Problemas não foram as melhores
|
|
possíveis; além disso a nova lâmpada
|
|
proposta não era reflexiva;</para>
|
|
|
|
<para>Trinta e sete para gritarem em alto e bom som que as
|
|
lâmpadas não fazem parte da base do sistema,
|
|
e que os desenvolvedores não tem o direito de sair
|
|
fazendo esse tipo de coisa sem antes consultar a
|
|
comunidade, e O QUE O -CORE ESTA FAZENDO SOBRE
|
|
ISSO!?</para>
|
|
|
|
<para>Duzendos para reclamar da cor do quartinho de
|
|
bicicletas;</para>
|
|
|
|
<para>Três para dizer que a correção
|
|
enviada não está de acordo com os
|
|
padrões que o código do
|
|
<foreignphrase>kernel</foreignphrase> deve ter, conforme
|
|
documentado na página de manual do
|
|
&man.style.9;;</para>
|
|
|
|
<para>Dezessete para reclamar que a nova lâmpada
|
|
proposta está licenciada sob a Licença
|
|
Pública Geral GNU (GPL);</para>
|
|
|
|
<para>Quinhentos e oitenta e seis para entrarem de corpo e
|
|
alma em uma discussão sobre as vantagens
|
|
comparativas entre a licença Pública Geral
|
|
GNU (GPL), a licença BSD, a licença do MIT,
|
|
a NPL e a higiene pessoal dos fundadores da
|
|
<foreignphrase>Free Software
|
|
Foundation</foreignphrase>;</para>
|
|
|
|
<para>Sete para copiar vários trechos da
|
|
discussão para a lista de discussão
|
|
freebsd-chat e para a freebsd-advocacy;</para>
|
|
|
|
<para>Um para trocar a nova lâmpada sugerida, apesar
|
|
de a nova brilha bem menos que a antiga;</para>
|
|
|
|
<para>Dois para retirarem a lâmpada furiosos, dizendo
|
|
que o FreeBSD está melhor no escuro do que com uma
|
|
lâmpada tão fraca;</para>
|
|
|
|
<para>Quarenta e seis para contestarem vorazmente sobre a
|
|
retirada da lâmpada fraca e escreverem um
|
|
relatório para o -core;</para>
|
|
|
|
<para>Onze para dar a idéia de criar uma
|
|
lâmpada menorzinha, que poderia caber no Tamagotchi
|
|
deles, se um dia nós decidirmos portar o FreeBSD
|
|
para tal plataforma;</para>
|
|
|
|
<para>Setenta e três para reclamar da razão
|
|
sinal versus ruído na freebsd-chat e na
|
|
freebsd-hackers, e se retirarem das listas em
|
|
protesto;</para>
|
|
|
|
<para>Treze para enviarem mensagens com o conteúdo
|
|
"unsubscribe", "Como eu saio da lista?", ou "Por favor, me
|
|
tirem da lista", seguidas do rodapé tradicional do
|
|
servidor de discussão com as
|
|
instruções para sair da lista;</para>
|
|
|
|
<para>Um, para adicionar uma nova lâmpada que funciona
|
|
bem, enquanto todos os outros estão ocupados demais
|
|
com a discussão para perceber que alguém
|
|
já trocou a lâmpada por uma funcional;</para>
|
|
|
|
<para>Trinta e um para afirmar que a nova lâmpada
|
|
brilha em média 0.364% mais, se comparada com as
|
|
lâmpadas TenDRA (contudo, ela terá que ser
|
|
refeita em formato de cubo) e que o FreeBSD deveria mudar
|
|
para TenDRA ao invés do GCC;</para>
|
|
|
|
<para>Um para reclamar que a nova lâmpada não
|
|
é honesta;</para>
|
|
|
|
<para>Nove (incluindo aqueles que enviaram os
|
|
Relatórios de Problemas) para perguntar <quote>o
|
|
que significa MFC?</quote>;</para>
|
|
|
|
<para>Cinquenta e sete para reclamar que ficaram no escuro
|
|
por duas semanas até que a lâmpada fosse
|
|
trocada.</para>
|
|
|
|
<para><emphasis>Um adendo do &a.nik;:</emphasis></para>
|
|
|
|
<para><emphasis>Eu estava rindo um bocado
|
|
aqui.</emphasis></para>
|
|
|
|
<para><emphasis>Aí pensei, "Peraí, não
|
|
deveria ter ao menos '1 para documentar a nova
|
|
lâmpada' em algum lugar?</emphasis></para>
|
|
|
|
<para><emphasis>Daí eu fui iluminado
|
|
:-)</emphasis></para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="dev-null">
|
|
<para>Para onde vão os dados que são escritos
|
|
no dispositivo <filename>/dev/null</filename> ?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Esses dados são enviados para um dissipador
|
|
especial da CPU que os converte em calor, para que depois
|
|
sejam ventilados pelo <emphasis>cooler</emphasis> do
|
|
computador. É por isso que o esfriamento do
|
|
processador é cada vez mais importante; quanto mais
|
|
rápido os processadores se tornam, menos
|
|
importância os usuários dão à
|
|
seus dados, por isso cada vez mais lixo é enviado
|
|
para o <filename>/dev/null</filename>, gerando um
|
|
superaquecimento das CPUs. Se o
|
|
<filename>/dev/null</filename> 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 inútil existente, que o
|
|
sistema vai logo começar a falhar. Se você
|
|
tiver uma conexão de rede bem rápida,
|
|
dá para resfriar o computador lendo todos os dados
|
|
criados na <filename>/dev/random</filename> e enviando-os
|
|
para algum lugar da rede. Contudo existe o risco de
|
|
superaquecer sua rede ou do Provedor de Serviço
|
|
Internet ficar meio bravo com você, já que
|
|
todo esse calor normalmente é recebido pelo
|
|
equipamento do provedor. Mas não se preocupe, os
|
|
provedores tem grandes ventiladores para esfriar suas
|
|
máquinas, então se você não
|
|
insistir nisso com muita frequência, vai ficar tudo
|
|
bem.</para>
|
|
|
|
<para><emphasis>Adendo de Paul Robinson:</emphasis></para>
|
|
|
|
<para>Existem outros métodos. Como todo bom
|
|
administrador de sistemas sabe, faz parte da
|
|
prática comum enviar dados das mais variadas
|
|
espécies para a tela. Isto mantêm todos os
|
|
<foreignphrase>pixies</foreignphrase>
|
|
(<foreignphrase>pixie</foreignphrase> significa fadinhas
|
|
em inglês) de tela felizes. Os
|
|
<foreignphrase>pixies</foreignphrase> de tela (normalmente
|
|
escritos com erro de ortografia, como 'pixels') são
|
|
divididos de acordo com o tipo de boné que eles
|
|
usam (vermelho, verde ou azul) e costumam aparecer ou
|
|
sumir (mostrando a cor de seus bonés) sempre que
|
|
eles ganham alguma coisinha para comer. As placas de
|
|
vídeo transformam os dados em comida de
|
|
<foreignphrase>pixies</foreignphrase>, e manda essa comida
|
|
para eles. Quanto mais cara for a placa de vídeo,
|
|
melhor é a qualidade da comida. Dessa forma, mais
|
|
felizes ficam os <foreignphrase>pixies</foreignphrase>.
|
|
Os <foreignphrase>pixies</foreignphrase> também
|
|
precisam ser constantemente estimulados – é
|
|
para isso que existem as proteções de
|
|
telas.</para>
|
|
|
|
<para>Então, para seguir a sugestão anterior,
|
|
é interessante mandar todos os dados que
|
|
saírem do <filename>/dev/random</filename> para a
|
|
tela do console, para alimentar os
|
|
<foreignphrase>pixies</foreignphrase>. Isso não
|
|
causa nenhum aquecimento do computador, e em
|
|
contrapartida, faz os
|
|
<foreignphrase>pixies</foreignphrase> viverem mais
|
|
felizes, e ainda pode ser que faça você se
|
|
livrar rapidamente de todos os dados existentes no
|
|
<filename>/dev/random</filename>, mesmo considerando que a
|
|
tela fique um pouco confusa.</para>
|
|
|
|
<para>Como um ex-administrador de um provedor que teve
|
|
algumas más experiências tentando manter a
|
|
estabilidade da temperatura da sala dos servidores, eu
|
|
recomendo sinceramente que as pessoas não tentem
|
|
enviar todos os seus dados para a rede. Existem umas
|
|
pequenas fadinhas encantadas que fazem a alternância
|
|
dos pacotes de redes, e que fazem o roteamento desses
|
|
mesmos pacotes. Algumas vezes essas fadinhas ficam meio
|
|
revoltadas com os usuários malvados que ficam
|
|
mandando seus dados inúteis para a rede.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="advanced">
|
|
<title>Tópicos Avançados</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question xml:id="learn-advanced">
|
|
<para>Como eu posso aprender mais sobre as
|
|
características internas do FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para> Atualmente não há nenhum livro
|
|
específico sobre as características internas
|
|
do Sistema Operacional FreeBSD. Contudo, a maior parte do
|
|
conhecimento genérico sobre UNIX pode ser aplicado
|
|
diretamente a ele. Além disso existem livros
|
|
específicos para sistemas BSD cuja leitura é
|
|
recomendada.</para>
|
|
|
|
<para>Para uma lista, verifique a sessão de <link xlink:href="../handbook/bibliography-osinternals.html">
|
|
bibliografia sobre características internas dos
|
|
sistemas operacionais</link> no
|
|
&a.ptbr.p.handbook;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="how-to-contribute">
|
|
<para>Como posso contribuir com o projeto FreeBSD?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por gentileza, consulte o artigo <link xlink:href="../../articles/contributing/article.html">Contribuindo
|
|
com o Projeto FreeBSD</link> para obter algumas dicas
|
|
sobre o assunto. Toda ajuda é mais que bem
|
|
vinda!</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="define-snap-release">
|
|
<para>O que são SNAPs e RELEASEs?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Atualmente existem três séries
|
|
ativas/semi-ativas no <link xlink:href="http://www.FreeBSD.org/cgi/cvsweb.cgi">Repositório
|
|
CVS</link> do projeto FreeBSD (a RELENG_2 que é
|
|
provavelmente alterada somente duas vezes ao ano, sendo
|
|
esta a razão de termos somente três
|
|
séries em desenvolvimento):</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><literal>RELENG_2_2</literal> ou
|
|
<emphasis>2.2-STABLE</emphasis></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><literal>RELENG_3</literal> ou
|
|
<emphasis>3.X-STABLE</emphasis></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><literal>RELENG_4</literal> ou
|
|
<emphasis>4-STABLE</emphasis></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><literal>HEAD</literal> ou
|
|
<emphasis>-CURRENT</emphasis> ou
|
|
<emphasis>5.0-CURRENT</emphasis></para>
|
|
</listitem>
|
|
|
|
</itemizedlist>
|
|
|
|
<para><literal>HEAD</literal> não é um nome de
|
|
uma tag de série, como os outros dois; é
|
|
somente uma constante simbólica para
|
|
<quote><emphasis>o atual desenvolvimento corrente, mas
|
|
não de série</emphasis></quote> a qual
|
|
nós simplesmente nos referimos como
|
|
<quote>-CURRENT</quote>.</para>
|
|
|
|
<para>Neste momento, a <quote>-CURRENT</quote> se refere ao
|
|
desenvolvimento atual do FreeBSD 5.0. A série
|
|
<literal>4-STABLE</literal>, <symbol>RELENG_4</symbol>
|
|
originou-se da <quote>-CURRENT</quote> em Março de
|
|
2000.</para>
|
|
|
|
<para>A série <literal>2.2-STABLE</literal>,
|
|
<symbol>RELENG_2_2</symbol>, originou-se da
|
|
<quote>-CURRENT</quote> em Novembro de 1996, e foi
|
|
praticamente descontinuada.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="custrel">
|
|
<para>Como faço a minha própria
|
|
distribuição personalizada?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por gentileza, consulte o artigo sobre a <link xlink:href="../../articles/releng/article.html">Engenharia de
|
|
Releases.</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="makeworld-clobbers">
|
|
<para>Por que o <command>make world</command> sobrescreve os
|
|
binários já instalados?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Porque essa é a idéia geral sobre como
|
|
ele deve funcionar; como seu nome sugere, o <command>make
|
|
world</command> reconstrói todo o sistema
|
|
binário a partir do zero, garantindo que o
|
|
usuário tenha um ambiente limpo e consistente ao
|
|
final da operação (é por isso que o
|
|
processo demora tanto).</para>
|
|
|
|
<para>Se a variável de ambiente
|
|
<literal>DESTDIR</literal> estiver definida enquanto um
|
|
<command>make world</command> ou <command>make
|
|
installworld</command> estiver sendo executado, os
|
|
binários recém criados serão
|
|
distribuídos no diretório definido em
|
|
<literal>${DESTDIR}</literal>, criando no mesmo uma
|
|
réplica do conteúdo do / do sistema.
|
|
Algumas alterações aleatórias nas
|
|
bibliotecas compartilhadas podem ocasionar falhas na hora
|
|
de reconstruir o sistema com o <command>make
|
|
world</command>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="bus-speed-defaulted">
|
|
<para>Por que quando meu sistema inicializa, ele diz
|
|
<quote>(bus speed defaulted)</quote>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Os controladores SCSI Adaptec 1542 permitem que o
|
|
usuário defina a velocidade de acesso ao barramento
|
|
por meio de software. Algumas versões mais antigas
|
|
deste dispositivo tentavam determinar automaticamente a
|
|
maior velocidade possível e tentavam ajustar sua
|
|
velocidade à esse limite máximo.
|
|
Descobriu-se contudo, que esse comportamento as vezes era
|
|
prejudicial, e fazia com que algumas máquinas
|
|
não funcionassem de forma adequada, por este motivo
|
|
essa característica agora vem desabilitada por
|
|
default, para ativá-la é necessário
|
|
definir a opção <symbol>TUNE_1542</symbol>
|
|
no <foreignphrase>kernel</foreignphrase> do FreeBSD. Essa
|
|
opção, em sistemas onde ela se aplica,
|
|
provavelmente assegura que seus discos sejam acessados de
|
|
forma mais rápida e eficiente; contudo, em sistemas
|
|
onde o uso desse algoritmo é inviável, pode
|
|
resultar em perda de dados.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="ctm">
|
|
<para>Posso acompanhar a série -CURRENT mesmo tendo
|
|
acesso limitado à Internet?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Sim, é possível acompanhar a
|
|
série de desenvolvimento <literal>sem
|
|
precisar</literal> baixar sempre todo o codigo fonte do
|
|
sistema, basta utilizar o <link xlink:href="../handbook/synching.html#CTM">recurso de
|
|
CTM</link>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="split-240k">
|
|
<para>Como o FreeBSD foi dividido em arquivos de
|
|
240k?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>O comando split que acompanha as novas versões
|
|
dos sistemas BSD têm uma opção
|
|
<option>-b</option> que permite dividir os arquivos em
|
|
limites arbitrários de bytes.</para>
|
|
|
|
<para>Eis um exemplo tirado do
|
|
<filename>/usr/src/Makefile</filename>.</para>
|
|
|
|
<programlisting>bin-tarball:
|
|
(cd ${DISTDIR}; \
|
|
tar cf - . \
|
|
gzip --no-name -9 -c | \
|
|
split -b 240640 - \
|
|
${RELEASEDIR}/tarballs/bindist/bin_tgz.)</programlisting>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="submitting-kernel-extensions">
|
|
<para>Eu escrevi uma extensão para o
|
|
<foreignphrase>kernel</foreignphrase>; a quem eu
|
|
envio?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por gentileza, consulte o artigo <quote><link xlink:href="../../articles/contributing/article.html">Contribuindo
|
|
com o Projeto FreeBSD</link></quote> para obter mais
|
|
informações sobre como enviar código
|
|
fonte ao projeto.</para>
|
|
<para>E obrigado pelo seu interesse! :)</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="pnp-initialize">
|
|
<para>Como as placas Plug N Play ISA são detectadas e
|
|
inicializadas?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por: Frank Durda IV
|
|
<email>uhclem@nemesis.lonestar.org</email></para>
|
|
|
|
<para>Simplificando, existem poucas portas de E/S que todas
|
|
as placas PnP respondem quando o sistema indaga se algum
|
|
dispositivo está usando-a. Então, quando a
|
|
rotina de procura do PnP começa, ele pergunta se
|
|
há alguma placa PnP presente, e todas as placas PnP
|
|
respondem com seus respectivos números de modelo
|
|
para uma leitura de E/S da mesma porta. A rotina de
|
|
procura recebe então um sinal wired-OR
|
|
representando um <quote>sim</quote> à pergunta em
|
|
questão. Ao menos um bit positivo constitui essa
|
|
resposta. Então o código de procura
|
|
é capaz de fazer com que as placas com o modelo de
|
|
identificação (atribuído pela
|
|
Microsoft/Intel) inferior a X sejam colocados em modo
|
|
<quote>off-line</quote>. Ele então irá
|
|
verificar se alguma placa respondeu a consulta. Se a
|
|
resposta for <literal>0</literal> o sistema assume que
|
|
não há placas com
|
|
identificação acima de X. Depois a rotina
|
|
de busca verifica se há alguma placa cujo ID
|
|
é inferior a <literal>X</literal>. Se a resposta
|
|
for positiva, a rotina de busca sabe que ainda existem
|
|
placas identificadas com um valor menor que X. Aí
|
|
a busca tenta identificar placas com ID superior à
|
|
X (limite / 4) e ordena que entrem em modo off-line.
|
|
Repete-se o ciclo de pesquisas e
|
|
identificações nessa forma
|
|
semi-binária até que um número
|
|
necessário de interações seja
|
|
concluído. Ao final do processo o sistema
|
|
terá identificado todas as placas PnP presentes na
|
|
máquina em questão, com o número de
|
|
interações necessárias sempre menor
|
|
que 2ˆ64.</para>
|
|
|
|
<para>Os IDs (códigos de identificação)
|
|
são dois campos de 32-bits (portanto, 2ˆ64)
|
|
acrescidos de 8 bits que é o checksum
|
|
(verificação de consistência 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
|
|
identificações de 32-bit. O motivo correto,
|
|
não se sabe, mas percebe-se que 32 bits exclusivos
|
|
para os fabricantes chega a ser um exagero.</para>
|
|
|
|
<para>Os últimos 32 bits é um número
|
|
serial que torna a identificação dessa placa
|
|
única. O fabricante não pode nunca produzir
|
|
uma placa que tenha os 32 bits finais iguais, a não
|
|
ser que os 32 bits iniciais sejam distintos. Dessa forma
|
|
é possível existir várias placas do
|
|
mesmo tipo e fabricante, e ainda assim todos os 64 bits
|
|
dessas placas serem únicos.</para>
|
|
|
|
<para>Os grupos de 32 bits nunca podem ser todos zero. Isso
|
|
permite ao wired-OR identificar bits não nulos
|
|
durante a procura binária inicial.</para>
|
|
|
|
<para>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 opções de
|
|
interrupções estão
|
|
disponíveis, etc. Uma busca é feita em
|
|
todas as placas para obter estas
|
|
informações.</para>
|
|
|
|
<para>Tal informação é então
|
|
combinada com as informações encontradas nos
|
|
arquivos ECU, no sistema, ou então da MLB BIOS. O
|
|
suporte da BIOS PnP e da ECU costuma ser sintética,
|
|
portanto os periféricos não são
|
|
exatamente PnP como é dito. Contudo, ao examinar as
|
|
informações da da BIOS e da ECU, as rotinas
|
|
de busca podem identificar dispositivos ditos PnP e evitar
|
|
que eles requeiram recursos também
|
|
necessários por outros dispositivos, que por sua
|
|
vez não podem realocar tais valores
|
|
automaticamente.</para>
|
|
|
|
<para>Os dispositivos PnP são visitados mais uma vez
|
|
e recebem seus endereços de E/S, DMA, IRQ e
|
|
endereçamentos atribuídos na memória.
|
|
Os dispositivos permaneceram naquela ordem até a
|
|
próxima inicialização do sistema,
|
|
apesar de que nada impede que eles sejam movidos quando se
|
|
desejar.</para>
|
|
|
|
<para>Essa explicação é muito
|
|
simplista, mas provavelmente você entendeu a
|
|
idéia geral do comportamento PnP.</para>
|
|
|
|
<para>A Microsoft fez um exame sobre algumas das portas
|
|
primárias de status de impressoras para fazer PnP,
|
|
dentro da lógica que nenhuma placa poderia
|
|
decodificar aqueles endereços para os ciclos
|
|
opostos de E/S. Eu encontrei uma placa genuína de
|
|
impressora IBM que enviou dados decodificados da porta de
|
|
status durante o começo do período da
|
|
proposta de revisão do PnP, mas a Microsoft
|
|
<quote>ficou brava</quote>. Então eles resolveram
|
|
fazer um envio para a porta de status da impressora, de
|
|
forma a justar o endereço usado (naquele instante +
|
|
<literal>0x800</literal>) e uma terceira porta de E/S para
|
|
a leitura que tecnicamente pode ser localizada em qualquer
|
|
lugar entre <literal>0x200</literal> e
|
|
<literal>0x3ff</literal>.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="major-numbers">
|
|
<para>Vocês podem definir um número principal
|
|
para um driver de dispositivo que eu escrevi?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
|
|
<para>Isso depende se você pretende tornar o driver
|
|
disponível para o público. Se sim,
|
|
então por favor nos mande uma cópia do
|
|
código-fonte do driver, mais as devidas
|
|
modificações para o
|
|
<filename>files.i386</filename>, um exemplo do arquivo de
|
|
configuração, e os devidos códigos do
|
|
&man.MAKEDEV.8; para criar qualquer arquivo especial que
|
|
seu dispositivo precise. Se você não pode,
|
|
ou está impedido por causa de
|
|
restrições de licença, então o
|
|
character major number 32 e o block major number 8
|
|
estão reservados especificadamente para este
|
|
propósito; por favor, use-os. De qualquer maneira,
|
|
nós gostaríamos de obter maiores
|
|
informações sobre seu driver na
|
|
&a.hackers;.</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="alternate-directory-layout">
|
|
<para>E sobre políticas alternativas de layout de
|
|
diretórios?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Em resposta a questão da política de
|
|
formatos alternativos para diretórios, o esquema
|
|
que está atualmente em uso está
|
|
imutável desde quando eu o escrevi em 1983. Eu
|
|
escrevi aquela política 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 vocês
|
|
notaram, ele funciona mediocremente para procura. A
|
|
maioria dos sistemas de arquivos são criados
|
|
à partir de arquivos que foram criados por uma
|
|
primeira procura em profundidade (depth first search,
|
|
também conhecido como ftw). Estes
|
|
diretórios acabam sendo distribuídos pelo
|
|
grupo de cilindros, criando assim um cenário
|
|
horrível em relação a futuras
|
|
primeiras buscas de profundidade. Se pudéssemos
|
|
saber o número total de diretórios a serem
|
|
criados, a solução seria criar (total /
|
|
fs_ncg) por grupo de cilindros antes de movê-los.
|
|
Evidentemente, seria necessário criar um conjunto
|
|
de métodos heurísticos para adivinhar esse
|
|
número. Mesmo usando um pequeno número
|
|
fixo, digamos 10, ele produziria um aumento na ordem de
|
|
magnitude. Para diferenciar restaurações de
|
|
operações normais (quando o algoritmo atual
|
|
é provavelmente mais sensível), você
|
|
poderia usar o agrupamento acima de 10 se eles fossem
|
|
finalizados dentro de uma janela de dez segundos. De
|
|
qualquer maneira, minha conclusão é que isso
|
|
é uma área pronta para
|
|
experimentações. </para>
|
|
|
|
<para>Kirk McKusick, Setembro de 1998</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="kernel-panic-troubleshooting">
|
|
<para>O que fazer com os dados que eu vejo quando tenho um
|
|
kernel panic?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para><emphasis>[Esta seção foi
|
|
extraída de um e-mail escrito por &a.wpaul; na
|
|
<link linkend="mailing">freebsd-current</link> por
|
|
&a.des;, que arrumou alguns problemas de
|
|
impressão e adicionou os comentários entre
|
|
chaves]</emphasis></para>
|
|
|
|
<programlisting>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</programlisting>
|
|
|
|
<para><emphasis>Ben Rosengart posted the following panic
|
|
message]</emphasis></para>
|
|
|
|
<programlisting>> 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</programlisting>
|
|
|
|
<para>[Quando] você vê uma mensagem como essa,
|
|
não é suficiente somente reproduzí-la
|
|
e enviá-la em um e-mail. O valor do ponteiro de
|
|
instrução (instruction pointer) que eu
|
|
destaquei acima é muito importante; infelizmente,
|
|
ele também depende de configuração.
|
|
Em outras palavras, os valores variam de acordo com a
|
|
exata imagem do <foreignphrase>kernel</foreignphrase> que
|
|
você estiver usando. Se você estiver usando
|
|
uma imagem GENERIC do
|
|
<foreignphrase>kernel</foreignphrase> de um dos
|
|
<foreignphrase>snapshots</foreignphrase>, então
|
|
é possível que alguém acompanhe a
|
|
função ofensiva, mas se você
|
|
está rodando um
|
|
<foreignphrase>kernel</foreignphrase> customizado
|
|
então só <emphasis>você</emphasis>
|
|
pode nos dizer aonde a falha ocorreu.</para>
|
|
|
|
<para>O que você deve fazer é isso:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Anote o valor do ponteiro de
|
|
instrução. Observe que o 0x8: parte do
|
|
começo não é significante. Nesse
|
|
caso é o <literal>0xf0xxxxxx</literal> que
|
|
nós queremos.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Quando o sistema reinicializar, faça o seguinte:
|
|
|
|
<screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxxx</userinput></screen>
|
|
|
|
Onde <literal>f0xxxxxx</literal> é o valor do
|
|
ponteiro de instrução. As chances
|
|
são que você não terá um
|
|
resultado exato visto que os símbolos na tabela
|
|
de símbolos do
|
|
<foreignphrase>kernel</foreignphrase> são para
|
|
os pontos de entrada (entry points) de
|
|
funções e o endereço do ponteiro
|
|
de instrução estarão em algum
|
|
lugar dentro de uma função, não
|
|
no começo. Se você não receber um
|
|
resultado exato, omita o último dígito
|
|
do valor do ponteiro de instrução e
|
|
tente novamente, ex:
|
|
|
|
<screen>&prompt.user; <userinput>nm -n /kernel.that.caused.the.panic | grep f0xxxxx</userinput></screen>
|
|
|
|
Se isso não produz nenhum resultado, corte
|
|
outro dígito. Repita até que você
|
|
tenha algum tipo de retorno. O resultado será
|
|
uma possível lista de funções que
|
|
causaram o panic. Isso é menos do que um
|
|
mecanismo exato para rastreamento de um ponto de
|
|
falha, mas é melhor que nada.</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>Eu vejo pessoas constantemente mostrando mensagens de
|
|
panic como essa, mas eu raramente vejo alguém
|
|
comparar o ponteiro de instrução com uma
|
|
função na tabela de símbolos do
|
|
<foreignphrase>kernel</foreignphrase>.</para>
|
|
|
|
<para>A melhor maneira de rastrear a causa de um panic
|
|
é guardar as mensagens de falha (crash dump), e
|
|
então usar o &man.gdb.1; para gerar um stack trace
|
|
da falha.</para>
|
|
|
|
<para>Em qualquer caso, o método que eu normalmente
|
|
uso é esse:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Definir um arquivo de configuração
|
|
do <foreignphrase>kernel</foreignphrase>,
|
|
opcionalmente adiconando a <literal>options
|
|
DDB</literal> se você acha que precisa do
|
|
debugger do <foreignphrase>kernel</foreignphrase> para
|
|
algo. (Eu uso isso principalmente para ajustar
|
|
breakpoints se eu suspeito que há uma
|
|
condição de laço infinito
|
|
(infinite loop ou algo do tipo).</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Use <command>config -g
|
|
KERNELCONFIG</command>
|
|
configurar o diretório da
|
|
construção.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para><command>cd /sys/compile/
|
|
KERNELCONFIG; make
|
|
</command></para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>Espere o <foreignphrase>kernel</foreignphrase>
|
|
acabar de compilar.</para>
|
|
</step>
|
|
|
|
<step>
|
|
<para><command>make install</command></para>
|
|
</step>
|
|
|
|
<step>
|
|
<para>reboot</para>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>O processo do &man.make.1; terá
|
|
construído dois
|
|
<foreignphrase>kernels</foreignphrase>.
|
|
<filename>kernel</filename> e
|
|
<filename>kernel.debug</filename>. O
|
|
<filename>kernel</filename> foi instalado como
|
|
<filename>/kernel</filename>, enquanto o
|
|
<filename>kernel.debug</filename> pode ser usado como
|
|
fonte símbolos de debug para o &man.gdb.1;.</para>
|
|
|
|
<para>Para ter certeza que você irá capturar o
|
|
crash dump, você precisa editar o
|
|
<filename>/etc/rc.conf</filename> e ajustar o
|
|
<literal>dumpdev</literal> para apontar para sua
|
|
partição swap. Isso fará com que os
|
|
scripts &man.rc.8; usem o comando &man.dumpon.8; para
|
|
habilitar os crash dumps. Você pode também
|
|
executar o &man.dumpon.8; manualmente. Depois de um panic,
|
|
o crash dump pode ser recuperado usando o &man.savecore.8;;
|
|
se variavel <literal>dumpdev</literal> estiver definida no
|
|
<filename>/etc/rc.conf</filename>, os scripts &man.rc.8;
|
|
irão executar o &man.savecore.8; automaticamente e
|
|
colocar o crash dump em
|
|
<filename>/var/crash</filename>.</para>
|
|
|
|
<note>
|
|
<para>Os crash dumps do FreeBSD são geralmente do
|
|
mesmo tamanho da memória RAM física da sua
|
|
máquina. Isto é, se você tem 64MB
|
|
de RAM, você terá um crash dump de 64MB.
|
|
Então você deve ter certeza que há
|
|
espaço suficiente em
|
|
<filename>/var/crash</filename> para alocar o dump.
|
|
Alternativamente, você executa o &man.savecore.8;
|
|
manualmente e pode fazê-lo recuperar o crash dump
|
|
para onde você tenha mais espaço. É
|
|
possível limitar o tamanho do crash dump
|
|
utilizando a opção <literal>options
|
|
MAXMEM=(foo)</literal> para ajustar a quantia de
|
|
memória que o
|
|
<foreignphrase>kernel</foreignphrase> irá usar
|
|
para algo um pouco mais sensível. Por exemplo,
|
|
se você tem 128MB de RAM, você pode limitar
|
|
o uso de memória do
|
|
<foreignphrase>kernel</foreignphrase> para 16MB para que
|
|
o tamanho do seu crash dump tenha somente 16MB ao
|
|
invés de 128MB.</para>
|
|
</note>
|
|
|
|
<para>Uma vez que você recuperou o crash dump,
|
|
você pode ter um stack trace com o &man.gdb.1; como
|
|
segue:</para>
|
|
|
|
<screen>&prompt.user; <userinput>gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0</userinput>
|
|
<prompt>(gdb)</prompt> <userinput>where</userinput></screen>
|
|
|
|
<para>Note que há várias telas com
|
|
informações valiosas; seria ideal o uso do
|
|
&man.script.1; para capturar todas elas. Usando a imagem
|
|
(unstripped) do <foreignphrase>kernel</foreignphrase> com
|
|
todos os símbolos de debug deve mostrar a linha
|
|
exata do código-fonte do
|
|
<foreignphrase>kernel</foreignphrase> onde o panic
|
|
ocorreu. Geralmente é mais interessante ler o
|
|
stack trace de baixo para cima a fim de rastrear a exata
|
|
seqüência de eventos que levaram ao crash.
|
|
Você também pode usar o &man.gdb.1; para
|
|
exibir os conteúdos de várias
|
|
variáveis ou estruturas a fim de examinar o estado
|
|
do sistema no instante do crash.</para>
|
|
|
|
<para>Agora, se você é realmente louco e tem um
|
|
segundo computador, você também pode
|
|
configurar o &man.gdb.1; para executar um debug remoto,
|
|
tanto que você pode usar o &man.gdb.1; em um sistema
|
|
para debugar o <foreignphrase>kernel</foreignphrase> em
|
|
outro sistema, incluindo o ajuste de breakpoints,
|
|
rastreamento passo-a-passo pelo código do
|
|
<foreignphrase>kernel</foreignphrase>, do mesmo modo que
|
|
você pode fazer com um programa do modo de
|
|
usuário normal. Eu ainda não brinquei com
|
|
isso pois não tive a chance de configurar duas lado
|
|
a lado com o único propósito de
|
|
debugging.</para>
|
|
|
|
|
|
<para><emphasis>[Adendo de Bill: "Eu esqueci de
|
|
mencionar uma coisa: se você tem DDB habilitado e
|
|
o <foreignphrase>kernel</foreignphrase> em modo de
|
|
debug, você pode forç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 finalizará o crash
|
|
dump."-ed]</emphasis></para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="dlsym-failure">
|
|
<para>Por que a dlsym() não funciona mais nos
|
|
executáveis ELF?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>A toolchain (cadeia de ferramentas) ELF não
|
|
faz, por padrão, os símbolos definidos em um
|
|
executável visível para o linkador
|
|
dinâmico (dynamic linker). Conseqüentemente, a
|
|
procura em nomes obtidos de chamadas com a
|
|
<function>dlsym()</function> para <function>dlopen(NULL,
|
|
flags)</function> irá falhar ao buscar tais
|
|
símbolos.</para>
|
|
|
|
<para>Se a intenção é usar a
|
|
<function>dlsym()</function> para buscar símbolos
|
|
que possam existir nos executáveis principais do
|
|
processo, é necessário linkar o programa com
|
|
a opção <option>-export-dynamic</option> com
|
|
o linker ELF (&man.ld.1;).</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question xml:id="change-kernel-address-space">
|
|
<para>Como eu posso aumentar ou reduzir o espaço de
|
|
endereçamento disponível para o
|
|
<foreignphrase>kernel</foreignphrase>?</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>Por padrão, o espaço de
|
|
endereçamento (address space) do
|
|
<foreignphrase>kernel</foreignphrase> é 256 MB no
|
|
FreeBSD 3.x e 1 GB no FreeBSD 4.x. Em um servidor de rede
|
|
com tráfego intensivo (por exemplo, um servidor FTP
|
|
ou HTTP de muito tráfego) pode acontecer de, por
|
|
exemplo, 256MB de memória não ser o
|
|
suficiente.</para>
|
|
|
|
<para>Mas então, como aumentar esse espaço?
|
|
Existem duas formas. Primeiro, é necessário
|
|
dizer ao <foreignphrase>kernel</foreignphrase> que ele
|
|
deve reservar uma grande quantidade de espaço em
|
|
memória para ele mesmo. Segundo, considerando que
|
|
o <foreignphrase>kernel</foreignphrase> é carregado
|
|
no topo do espaço de endereçamento, é
|
|
preciso diminuir o endereço de forma que não
|
|
conflite com as páginas anteriores de
|
|
memória, e que no lugar disso, ele seja carregado
|
|
em seu novo local.</para>
|
|
|
|
<para>O primeiro objetivo é facilmente atingido
|
|
aumentando as definições de valores do
|
|
<literal>NKPDE</literal> no arquivo
|
|
<filename>src/sys/i386/include/pmap.h</filename>. Aqui
|
|
está o arquivo, como deve ser, para 1GB de
|
|
endereço de memória:</para>
|
|
|
|
<programlisting>#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</programlisting>
|
|
|
|
<para>Para achar o valor correto de
|
|
<literal>NKPDE</literal>, divida o número desejado
|
|
(em megabytes) por quatro, então subtraia um para
|
|
máquinas mono processadas e dois para
|
|
máquinas com SMP.</para>
|
|
|
|
<para>Para atingir o segundo objetivo é
|
|
necessário descobrir o endereço correto de
|
|
carregamento. Para isso basta subtrair o tamanho do
|
|
espaço de endereçamento desejado (em bytes)
|
|
de 0x100100000; o resultado é 0xc0100000 para um
|
|
endereço de espaço de 1 GB. Ajuste
|
|
<symbol>LOAD_ADDRESS</symbol> em
|
|
<filename>src/sys/i386/conf/Makefile.i386</filename> para
|
|
esse valor, agora ajuste o contador de
|
|
posiçõo listada no inicio do
|
|
<filename>src/sys/i386/conf/kernel.script</filename> para
|
|
o mesmo valor, como a seguir:</para>
|
|
|
|
<programlisting>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) }</programlisting>
|
|
|
|
<para>Agora recompile e reinstale seu
|
|
<foreignphrase>kernel</foreignphrase>. Provavelmente
|
|
aparecerão problemas com o &man.ps.1; e com o
|
|
&man.top.1;, executar um <command>make world</command> deve
|
|
solucionar tais problemas (ou então, a
|
|
recompilação manual da
|
|
<filename>libkvm</filename>, do &man.ps.1; e do &man.top.1;,
|
|
depois de incluir o <filename>pmap.h</filename> alterado
|
|
em <filename>/usr/include/vm/</filename>.</para>
|
|
|
|
<para>OBS: o tamanho do espaço em memória do
|
|
<foreignphrase>kernel</foreignphrase> deve ser um
|
|
múltiplo de quatro megabytes.</para>
|
|
|
|
<para><emphasis>[Adendo por &a.dg;: Acho que o
|
|
endereço de espaço do
|
|
<foreignphrase>kernel</foreignphrase> precisa ser uma
|
|
potência de dois, mas eu não estou certo
|
|
disso. O código do processo de
|
|
inicialização antigo costumava mexer com
|
|
os bits de endereço de alta ordem, o que
|
|
implicava em uma granularidade de
|
|
256MB]</emphasis></para>
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
</chapter>
|
|
|
|
<chapter xml:id="acknowledgments">
|
|
<title>Reconhecimentos</title>
|
|
|
|
<blockquote>
|
|
<attribution>Grupo Central (FreeBSD Core
|
|
Team)</attribution>
|
|
|
|
<para>Se você encontrar algum problema no
|
|
<literal>FAQ</literal> ou se desejar submeter uma nova
|
|
entrada, por favor envie um e-mail para o &a.faq;. Nós
|
|
apreciamos o seu feedback e não podemos tornar este
|
|
<literal>FAQ</literal> melhor sem a sua ajuda!</para>
|
|
</blockquote>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>&a.jkh;</term>
|
|
|
|
<listitem>
|
|
<para>Atualizações e ajustes ocasionais na
|
|
ordenação das informações do
|
|
<literal>FAQ</literal>.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>&a.dwhite;</term>
|
|
|
|
<listitem>
|
|
<para>Pelos serviços prestados acima e além da
|
|
chamada do dever em freebsd-questions</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>&a.joerg;</term>
|
|
|
|
<listitem>
|
|
<para>Pelos serviços prestados acima e além da
|
|
chamada do dever na Usenet</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>&a.wollman;</term>
|
|
|
|
<listitem>
|
|
<para>Rede (<foreignphrase>networking</foreignphrase>) e
|
|
formatação</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Jim Lowe</term>
|
|
|
|
<listitem>
|
|
<para>Informações sobre
|
|
<quote>Multicast</quote></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>&a.pds;</term>
|
|
|
|
<listitem>
|
|
<para>Escravo de digitação mecânica do
|
|
<literal>FAQ</literal> FreeBSD</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>A Equipe FreeBSD</term>
|
|
|
|
<listitem>
|
|
<para>Reclamações, rabujices e envio de
|
|
informações</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>E a todos os outros que nós nos esquecemos, nossas
|
|
desculpas e obrigado do coração!</para>
|
|
</chapter>
|
|
</book>
|