Mostrando postagens com marcador Debian. Mostrar todas as postagens
Mostrando postagens com marcador Debian. Mostrar todas as postagens

iperf - medindo a performance da sua rede


Introdução:
O iperf é um comando que permite mensurar de forma simples e direta a taxa de transmissão da sua rede.
São necessários dois computadores, um operando em modo servidor e outro em modo cliente.

Instalação:
O programa está disponível na forma de pacotes para as distribuições Debian e Ubuntu (e possivelmente para as distros da família Red Hat, como Cent OS e Fedora), bastando utilizar o comando
apt-get install iperf
Sintaxe:
iperf [opções]

Resumo das principais opções (para todas as outras, veja a página de manual - man iperf)

-p define a porta de trabalho ao invés da porta padrão (5001).

-u Envia pacotes UDP ao invés de TCP (ambas as máquinas precisam trabalhar com o mesmo tipo de pacotes)

-f X
Define a unidade a ser exibida, onde pode ser:
k: kbits
m: megabits
K: KBytes
M: MBytes

-m Exibe o MTU do segmento

-C permite que cliente e servidor sejam de versões diferentes (modo de compatibilidade)

Opções específicas do modo cliente
-c Executa em modo cliente

Opções específicas do modo servidor
-s Executa em modo servidor

Uso:
Para utilizar, basta executar o programa no modo servidor em uma máquina:

e na outra em modo cliente (informando o endereço IP da máquina servidora):

O teste dura aproximadamente 10 segundos. Durante esse tempo, o programa tenta enviar a maior quantidade de bytes possíveis, e exibe um relatório como o da imagem anterior em seguida (em ambas as máquinas). No caso, foram transferidos 207 MB, e a taxa de transferência calculada foi de 174 MBits/s.

Pacotes para Desktop: remmina

Remmina (http://remmina.sf.net) é um gerenciador de conexões remotas para desktop. Ele suporta os principais protocolos de conexões remotas:

  • VNC (modo cliente e servidor)
  • RDP (Remote Desktop, utilizado em Servidores Windows)
  • SSH 
  • NX (No Machine - http://nomachine.com )
  • SFTP (transferencia de arquivos segura, parecida com o SCP do protocolo SSH)
  • XDMCP (Terminal X Remoto)
O Remmina funciona através de um sistema de Plugins, facilitando a inclusão de novos protocolos. O software está disponível na forma de pacotes para as principais distribuições (Debian, Ubuntu, Fedora, etc). 

Para o Debian Wheezy, você provavelmente vai querer instalar os seguintes pacotes:
  • remmina: pacote principal
  • remmina-plugin-gnome: plugin de integração com Gnome (permite salvasr as senhas no sistema de Gerenciamento de Senhas do Gnome)
  • remmina-plugin-vnc: plugin para o protocolo VNC
  • remmina-plugin-rdp: plugin para o protocolo Remote Desktop
  • remmina-plugin-xdmcp: plugin para o protocolo XDMCP
Algumas screenshots da interface do programa:
Janela Principal

Opções de conexão do protocolo RDP

Conectado a um servidor Windows 2003


OpenLDAP: Program version 5.1 doesn't match environment version 4.8

O problema:
Ao atualizar um servidor Debian Squeeze (6.0) para a nova versão stable Wheezy (7.0), tudo ocorreu normalmente (como de costume) exceto pelo serviço OpenLDAP. O serviço simplesmente não subia, e não exibia nenhum erro. Tentei executar um slapcat para exportar a base e subí-la novamente. O comando slapcat reportava o seguinte erro (posteriormente vi que o erro também aparece no arquivo /var/log/syslog):
Program version 5.1 doesn't match environment version 4.8
Pesquisando na web, cheguei a essa página do próprio projeto Debian, que sugere a seguinte solução:
  1. Instalar o pacote db4.8-util
  2. Trocar para o diretório onde ficam as bases de dados do LDAP.
  3. Executar alguns comandos para atualizar a versão da base de dados.
Comandos:
Obs: Recomendo que seja feito antes um backup de todo o diretório /var/lib/ldap para outro diretório, por segurança.
apt-get install db4.8-util
cd /var/lib/ldap
db4.8_checkpoint -1
db4.8_recover
Após executar os comandos, verifique (ls -l) se todos os arquivos do diretório pertencem ao usuário que executa o servidor slapd (openldap, no Debian). Caso algum arquivo não pertença a esse usuário, corrija as permissões com o seguinte comando (ainda no diretório /var/lib/ldap):
chown openldap:openldap *
Após isso, basta iniciar o serviço:
/etc/init.d/slapd start

Erro amavisd too many links lost connection


O problema:
A fila de mensagens do servidor de email (postfix, no meu caso) cresce, e as mensagens não são entregues. O comando mailq exibe erros parecidos com esse:
delivery temporarily suspended: lost connection with 127.0.0.1[127.0.0.1] while sending MAIL FROM
O log de erros de email (/var/log/mail.err) mostra as seguintes mensagens:
TROUBLE in process_request: Can't create directory /var/lib/amavis/tmp/amavis-20111221T160623-06971: Too many links at /usr/sbin/amavisd-new line 5081, <GEN28> line 4
A causa:
A mensagem 'Too many links' indica que o limite de subdiretórios do diretório /var/lib/amavis/tmp/ foi alcançado (em sistemas de arquivo ext3 esse limite é de aproximadamente 32.000 itens por diretorio). Assim, o antispam não consegue criar mais subdiretórios e deixa de entregar as mensagens.

Solução:
  1. Exclusão dos diretórios mais antigos que 1 dia e  com nome de  .spamassassin* que ficam no hd mesmo apos terem sido utilizados.
  2. Restart do serviço do amavis.
Comandos:
cd /var/lib/amavis/tmp
find -mtime +1 -name .spamassassin\* | xargs rm -r
/etc/init.d/amavis restart
Pode-se forçar o inicio da entrega das mensagens com o comando "postfix flush", ou aguardar que o próprio servidor recomece as tentativas de envio

Seções do Manual Linux

O manual online do Linux (que pode ser acessado através do comando man) tem seu conteúdo separado em categorias ou seções , conforme abaixo:

Obs: talvez nem todas as páginas de manual citadas na coluna de exemplos estejam presentes na sua máquina!

SeçãoNomeDescriçãoExemplos
1Comandos de UsuárioComandos disponíveis a todos os usuáriosls,bash,vim
2Chamadas de SistemaRotinas do Kernel. Normalmente utilizadas por programas, as páginas são de pouca utilidade para usuários comunschdir,chown
3Funções de BibliotecasContém a documentação para uso das bibliotecas do sistema. Normalmente é interessante apenas a programadoresalloc,getloadavg
4Arquivos EspeciaisDocumentação dos arquivos de dispositivos do diretório /devhda,sda,zero,radeon
5Formatos de ArquivosContém a descrição do formato de arquivos do sistemapasswd,shadow,group,fstab
6JogosJogos e comandos divertidosfortune,rafkill,0verkill
7Convenções e MiscelâniaDiversos assuntos, protocolos, etcggz,icmp,irda
8Administração e Comandos PrivilegiadosComandos que necessitam de privilégios especiais (root) para serem executados.iptables,fdisk,mkfs


Gerador de sources.list para Debian/Ubuntu

Dica rápida:
Está em dúvida sobre como criar seu arquivo source.list para o Debian? Acesse o site http://debgen.simplylinux.ch/, preencha alguns parâmetros e o site cria um sources.list para você. Você pode inclusive adicionar alguns repositórios adicionais (como o do navegador Google Chrome ou do gerenciador de Imagens Picasa, ambos do Google). Há também uma versão disponível para Ubuntu em http://repogen.simplylinux.ch/

Uma configuração mínima para um sistema Debian seria como a imagem abaixo (clique para ampliar):


Após selecionar todos os parâmetros desejados, basta clicar no botão "Generate sources.list". Selecione o texto que vai aparecer, recorte e cole dentro do seu /etc/apt/sources.list. Agora basta executar um "apt-get update" e está pronto pra utilizar.


Criando um mirror local do debian no centos

Introdução:
É possível criar um mirror do Debian em uma equipamento rodando outras distribuições, como CentOS, RedHat e similares. Na verdade, as instruções abaixo são genéricas e em teoria servem para qualquer distribuição. Antes que alguém pergunte o porque de fazer isso eu explico: tenho um cliente que utiliza CentOS por padrão. Porém surgiu a oportunidade de utilizar alguns equipamentos da SUN. O problema é que essa arquitetura (Sparc) não é suportada pelo CentOS. Assim, fiz a instalação do Debian (que suporta a arquitetura Sparc) e resolvi criar um mirror interno para acelerar as futuras instalações/atualizações.

Instalando as dependências:
O programa debmirror é escrito em PERL. Sendo assim, precisamos instalar alguns módulos dessa linguagem para poder executar o programa. Abaixo a lista de arquivos necessários e onde localizá-los:

Arquivos/pacotes disponíveis no próprio CentOS (copiar do CD ou instalar via "yum install"):
perl-libwww-perl-5.805-1.1.1.noarch.rpm
perl-Compress-Zlib-1.42-1.fc6
perl-Digest-SHA1-2.11-1.2.1.i386.rpm
perl-Net*
rsync
bzip2
Arquivos que devem ser baixados da internet:
http://packages.sw.be/perl-Digest-MD5-M4p/perl-Digest-MD5-M4p-0.01-1.2.el5.rf.i386.rpm
http://packages.sw.be/perl-LockFile-Simple/perl-LockFile-Simple-0.206-1.el5.rf.noarch.rpm
Por fim, baixe o próprio debmirror neste endereço:
http://archive.ubuntu.com/ubuntu/pool/universe/d/debmirror/debmirror_20070123ubuntu1.tar.gz
Não coloquei aqui, mas você também precisa de um servidor web (como o apache) ou FTP (como o proftpd), para servir os arquivos aos clientes (a menos que pretenda utilizar algum outro método menos usual, como NFS).

Você pode checar a página de manual online, no seguinte endereço:
http://pwet.fr/man/linux/commandes/debmirror

com tudo instalado, basta fazer a configuração normalmente, conforme o artigo anterior:

Dica: comando service do Cent OS Red Hat no Debian

Dica rápida:

Se você é usuário de Red Hat, Cent OS, Fedora ou algum outro da família RH e precisa utilizar o Debian, talvez esteja sentindo falta do comando service, utilizado para iniciar/parar/reiniciar serviços. O Debian tem um programa com função semelhante, chamado invoke-rc.d. No entanto, se a saudade do comando service for demais, experimente instalar o pacote sysvconfig, que contém um editor de runlevel e um script de nome service, que faz exatamente o mesmo que seu homônimo no Red Hat.

Criando um mirror local do Debian com o debmirror

Introdução:
Imagine a seguinte situação: você administra um parque de computadores (servidores, desktops ou ambos) com o Debian/Ubuntu instalado (digamos 30 computadores). Suponha ainda que seu ambiente de trabalho é uma escola, lan house ou similar, e que uma vez por mês seja necessário reinstalar os computadores. Cada computador baixa coisa de 1Gb. Então são mais 30Gb baixados da internet. Em situações como essa, pode ser interessante a criação de um mirror local do Debian. Você configura a máquina onde está o mirror ára baixar os pacotes da internet, e as outras máquina passam a baixar diretamente dele. Como o acesso é realizado em rede local, poupa sua banda de internet e de quebra aumenta a velocidade da instalação (eu costumava fazer uma instalação completa do Debian, com ambiente gráfico Gnome em coisa de 30 minutos, utilizando-se um mirror em rede local).

Opções mais comuns (para opções avançadas, veja o manual):
-p: exibe informações de progresso
-v: modo verboso (coloca mais informações na tela)
--source/--nosource: inclui/retira o download dos fontes (o padrão é baixar os fontes)
-m: realiza uma checagem MD5 nos pacotes baixados (desabilitado por padrão)
-h: indica o host a ser utilizado (padrão: ftp.debian.org). Utilize um mirror fisicamente próximo a você. Cheque a lista de mirrors, bem como o conteúdo deles em http://www.debian.org/mirror/list, pois nem todos os mirrors contém todas as arquiteturas.
-u/--password: define o usuário e a senha a serem utilizados no servidor remoto, caso seja necessário.
--method: define o método de obtenção dos arquivos (basicamente ftp, http ou rsync). Aqui utilizaremos http.
--proxy: define o proxy a ser utilizado, caso seja necessário. O proxy deve ser informado no formato http://usuario:senha@endereco:porta (exemplo: http://joao:ninguem@proxy.empresa:3128 )
-t: define o timeout da operação de download, em segundos
-d: define qual distribuição do Debian baixar (etch, lenny, sid, etc). Podem ser selecionadas várias distribuições, separadas por vírgula. Não é recomendável o uso do "apelido" (stable, testing, etc) da distribuição aqui. O padrão é a SID (unstable).
-s: define quais seções serão baixadas. O padrão é main,contrib,non-free,main/debian-installer.
-a: define quais arquiteturas serão baixadas. O padrão é i386
-r: diretório a ser acessado no servidor remoto. O padrão é /debian
--exclude=regex: não baixa arquivos que combinem com a RegEx (expressão regular) informada.
--ignore-release-gpg: ignora erros por não encontrar o certificado de segurança local.
--dry-run: executa uma simulação (embora baixe alguns arquivos pequenos). Bom para se ter uma idéia do tamanho total do download, para cálculo de uso de banda e espaço em disco.

Exemplo de uso:
debmirror -p -v --source -h ftp.br.debian.org --method=http -d lenny -a i386,sparc --ignore-release-gpg /var/www/mirror/debian
Após a execução, é necessário trocar o usuário dono dos arquivos para o mesmo que executa o apache (www-data). Isso é feito com o comando
chown -R www-data:www-data /var/www/mirror/debian
Descrição:
Criar um mirror no diretório /var/www/mirror/debian, baixando arquivos com o método http, a partir do servidor ftp.br.debian.org. Baixar também o código fonte dos pacotes. Baixar a distribuição Lenny para as arquiteturas i386 e Sparc (máquinas da Sun). Ignorar a ausência de certificados locais. Todas as opções não informadas são mantidas em seu valor default.

Observação:
Uma característica importante que faz falta (na minha opinião) no debmirror é a possibilidade de limitar o consumo de banda do programa, de modo a não consumir toda a banda de internet da sua rede. Uma opção para efetuar esse controle é a utilização do trickle, que deve ser tema de um futuro post por aqui.

Problemas relacionados a servidores NTP

Estes são alguns problemas que encontrei em servidores NTP que administro e que resolvi (após bater cabeça por um tempinho ...). Ficam aqui as soluções para quem precisar:

Erro:
sendto(200.160.0.8): Bad file descriptor

Sintomas:
Aparecem linhas como as abaixo no seu log de sistema (geralmente no arquivo /var/log/messages ou /var/log/syslog):

Jul 14 10:21:39 server ntpd[29169]: bind() fd 4, family 2, port 123, addr 0.0.0.0, in_classd=0 flags=8 fails: Address already in use
Jul 14 10:21:39 server ntpd[29169]: bind() fd 4, family 10, port 123, addr ::, in6_is_addr_multicast=0 flags=0 fails: Address already in use
Jul 14 10:21:39 server ntpd[29169]: bind() fd 4, family 2, port 123, addr 127.0.0.1, in_classd=0 flags=0 fails: Address already in use
Jul 14 10:21:39 server ntpd[29169]: bind() fd 4, family 2, port 123, addr 172.20.32.6, in_classd=0 flags=8 fails: Address already in use
Jul 14 10:21:40 server ntpd[29169]: sendto(200.160.0.8): Bad file descriptor
Jul 14 10:21:41 server ntpd[29169]: sendto(200.189.40.8): Bad file descriptor
Jul 14 10:32:55 server ntpd[29368]: sendto(200.160.0.8): Bad file descriptor
Jul 14 10:32:57 server ntpd[29368]: sendto(200.192.232.8): Bad file descriptor
Jul 14 10:32:57 server ntpd[29368]: sendto(200.160.0.8): Bad file descriptor
Jul 14 10:32:59 server ntpd[29368]: sendto(200.192.232.8): Bad file descriptor
Jul 14 10:32:59 server ntpd[29368]: sendto(200.189.40.8): Bad file descriptor


Onde server é o nome do seu servidor e os IPs entre parênteses são os IPs dos servidores públicos configurados nos arquivos de configuração (os IPs acima são do projeto brasileiro NTP.br, que disponibiliza servidores atualizados pelo Relógio Atômico do Observatório Nacional - http://www.on.br - , que por sua vez é o responsável pela Hora Legal Brasileira).

Causa:
Existe mais de um processo do servidor NTP (ntpd) rodando na máquina.

Solução:
Pare o serviço do NTP. Em distribuições da família Debian (Ubuntu, Kurumin, Knoppix, etc) e da família Red Hat (Fedora, Mandriva, CentOS, etc) normalmente isso é realizado com /etc/init.d/ntp stop. Em outras distribuições (SlackWare, Gentoo, ?) o processo pode ser diferente, mas não muito. Após parar o serviço, execute um killall ntpd para matar quaisquer processos que possam ter restado e inicie novamente o serviço NTP com /etc/init.d/ntp start (ou comando equivalente em sua distribuição) e o problema deve estar resolvido. Obs: todos os comandos acima necessitam de permissões de root para serem executados.

Dica:
Observe a seguinte linha, retirada do trecho de log acima:

Jul 14 10:21:39 server ntpd[29169]: bind() fd 4, family 2, port 123, addr 0.0.0.0, in_classd=0 flags=8 fails: Address already in use

Em programas com suporte a rede (geralmente programas servidores), bind() é o ato de associar um programa ou processo a uma determinada porta de rede. Observe que o próprio programa já mostra o erro que está ocorrendo: Address already in use, ou seja, o endereço já está em uso por outro processo. Esse tipo de erro é um tanto comum e a mensagem costuma vir parecida com essas, facilitando assim encontrar a solução.


Erro:
O serviço exibe uma mensagem de erro ao iniciar, sobe mas não sincroniza a hora com os servidores externos.

Sintomas:

Aparecem linhas como as abaixo no seu log de sistema (geralmente no arquivo /var/log/messages ou /var/log/syslog):
Jul 14 10:38:11 server ntpdate[30521]: no server suitable for synchronization found
Jul 14 10:38:11 server ntpd:  failed
Jul 14 10:38:11 server ntpd[30525]: ntpd 4.2.0a@1.1190-r Sat May  5 12:55:34 EDT 2007 (1)
Jul 14 10:38:11 server ntpd: ntpd startup succeeded
Jul 14 10:38:18 server ntpd[30525]: kernel time sync disabled 0041
Jul 14 10:38:28 server ntpd[30525]: kernel time sync enabled 0001

Causa:
Servidores inválidos ou inexistentes referenciados nos arquivos de configuração /etc/ntp/ntpservers /etc/ntp/step-tickers).

Solução:
Haviam servidores NTP internos que já haviam sido removidos da rede, mas continuavam configurados nos arquivos citados acima. Com isso, mesmo com os servidores do projeto NTP.br no arquivo de configuração principal, o serviço falhava e não se recuperava. Após remover os IPs dos servidores, o serviço passou a funcionar como um relógio ;-)

Debian Reference Card - Para imprimir e deixar à mão

Navegando na Web, encontrei essa ficha de referência sobre o Debian. Vem em Português Brasileiro (e outras dezenas de idiomas), em formato PDF para ser impresso (frente e verso) em uma única folha A4. Depois de imprimir, dobre conforme indicado na página.
O endereço para download e instruções para a dobra estão em http://tangosoft.com/refcard/. A título de curiosidade, esse tipo de ficha é bem comum e pode ser encontrado na internet com nomes como Reference Card, Cheat Sheet (algo como folha de cola, em uma tradução livre). Existem Cheat Sheets para bancos de dados, linguagens de programação e vários outros items. Conforme eu for esbarrando em outros mais, eu publico aqui.

CPU Throttling/Dynamic frequency scaling: Configurando Cool'n'Quiet/SpeedStep no Linux (Parte 2)

Esta é a continuação do artigo sobre CPU Throttling no linux. Veja a parte 1 primeiro .
Veja também o artigo sobre como implementar o Cool'n'Quiet no Windows .

Conhecendo o cpufrequtils:

O pacote que foi instalado (cpufrequtils) fornece dois programas: cpufreq-info e cpufreq-set. Conforme o próprio nome sugere, o primeiro exibe informações do sistema, enquanto o segundo faz as alterações propriamente ditas.

Primeiro vamos ver detalhes sobre a CPU utilizada (por questões de espaço vou colocar apenas as linhas que nos interessam):
debian:~# cat /proc/cpuinfo
processor     : 0
vendor_id     : AuthenticAMD
cpu family     : 15
model           : 95
model name  : AMD Sempron(tm) Processor 3200+
stepping        : 2
cpu MHz      : 1800.000
cache size     : 128 KB
Este processador é um Sempron 3200+ (que roda a um clock de 1800MHz = 1.8GHz). Vamos ver o que o cpufreq-info tem a dizer sobre ele:
debian:~# cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
  driver: powernow-k8
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 1000 MHz - 1.80 GHz
  available frequency steps: 1.80 GHz, 1000 MHz
  available cpufreq governors: userspace, conservative, powersave, ondemand, performance
  current policy: frequency should be within 1000 MHz and 1.80 GHz.
                  The governor "userspace" may decide which speed to use
                  within this range.
  current CPU frequency is 1.80 GHz (asserted by call to hardware).
Interpretando a saída do cpufreq-info, linha por linha (só as mais importantes):
driver: powernow-k8
Driver carregado via módulo(como dito antes, depende da arquitetura do processador)

hardware limits: 1000 MHz - 1.80 GHz
Clock mínimo e máximo que seu processador suporta. Obviamente vai depender do processador. Tenho um Athlon 64 AM2 3200+ que suporta entre 1GHz e 2GHz.

available frequency steps: 1.80 GHz, 1000 MHz
Quais são as frequencias disponíveis para esse processador. Nesse caso, ele só aceita os extremos. Meu outro Athlon citado anteriormente suporta 1GHz, 1.8GHz e 2GHz

available cpufreq governors: userspace, conservative, powersave, ondemand, performance
Governors disponíveis (vai depender dos módulos que foram carregados no passo anterior - vide a 1ª parte do artigo)

current policy:
A segunda linha mostra qual o governor em uso atualmente. No exemplo, é o userspace.

current CPU frequency is 1.80 GHz (asserted by call to hardware).
Informa a frequencia atual do processador (que também pode ser verificada por cat /proc/cpuinfo)

De posse dessas informações, já podemos começar a brincadeira. Vamos ver alguns cenários abaixo:
1) Selecionar uma frequência manualmente:
debian:~#cpufreq-set -f 1000000
Obs: A frequência deve ser informada em Khz (kilohertz). Para saber os valores disponíveis em kilohertz, execute o cpufreq-info e veja a linha available frequency steps. Para converter MHz em KHz, multiplique o valor por 1.000. Para converter GHz em KHz, multiplique o valor por 1.000.000

2) Configurar o clock dentro de uma determinada faixa:
As opções -d e -u do cpufreq-set permitem configurar as frequências mínima e máxima respectivamente. Por exemplo, suponhamos que você possua um processador, que suporte as seguintes frequências:
debian:~#cpufreq-info | grep steps
available frequency steps: 2.8GHz, 2GHz, 1.5GHz, 1000MHz
Que em KHz são  respectivamente 2800000 2000000 1500000 1000000.

Para fazer com que ele nunca trabalhe abaixo de 1.5GHz execute
debian:~#cpufreq-set -d 1500000
Por outro lado, se você não quer que seu processador trabalhe acima de determinada frequência, informe ela com a opção -u:
debian:~#cpufreq-set -d 2000000
3) Selecionar um governor específico:
debian:~# cpufreq-set -g <nome>

Atenção: em <nome> você deve colocar o nome do governor, não o nome do módulo. Ex: para carregar o governor powersave (que fixa a frequência no valor mínimo, independente da demanda) execute:
debian:~# cpufreq-set -g powersave
Para exibir a lista de governors disponíveis, execute:
debian:~# cpufreq-info -g
userspace conservative powersave ondemand performance
Para confirmar a mudança de frequencia, execute (a opção -m exibe as frequências em um formato que facilita a leitura):
debian:~# cpufreq-info -f -m
1000 MHz
Ou via /proc/cpuinfo:
debian:~# cat /proc/cpuinfo
processor      : 0
vendor_id      : AuthenticAMD
cpu family      : 15
model            : 95
model name   : AMD Sempron(tm) Processor 3200+
stepping         : 2
cpu MHz       : 1000.000
cache size      : 128 KB
Lendo as estatísticas:
Se você carregou o módulo cpufreq_stats, pode acessar algumas estatísticas do gerenciamento de energia em dois arquivos dentro do diretório /sys/devices/system/cpu/cpu0/cpufreq/stats/:
total_trans: mostra quantas vezes o sistema trocou o nível de clock do processador.
Ex:
debian:~# cat /sys/devices/system/cpu/cpu0/cpufreq/stats/total_trans
963
Meu processador mudou o clock 963 vezes.

time_in_state: Lista quanto tempo o processador ficou em cada nível de clock. A primeira coluna mostra o clock (divida o valor por 1.000.000 para obter a velocidade em GHz) e a segunda coluna mostra os segundos em que o (divida o valor obtido por 100 para obter o tempo em segundos).
Ex:
debian:~# cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
1800000 1455033
1000000 7436681

Meu processador passou 14550 segundos funcionando em 1.8GHz e 74366 segundos funcionando em 1GHz

Configurando manualmente:
Se você prefere fazer as coisas do "modo difícil", você pode ignorar o cpufrequtils e ler/escrever os valores desejados diretamente nos arquivos do diretório /sys/devices/system/cpu/cpu0/cpufreq/ :
Obs: Para ler os valores utilize cat . Para escrever os valores utilize echo <valor> > <arquivo>. Os valores de frequência são informados em KHz. Divida por 1.000.000 para obter o valor em GHz.
Ex: 1800000 / 1.000.000 = 1.8GHz

scaling_available_frequencies: Lista as velocidades disponíveis (equivalente a cpufreq-info)
scaling_available_governors: Lista os governors disponíveis (equivalente a cpufreq-info -g)
scaling_cur_freq: Permite ler/selecionar a velocidade atual da CPU (equivalente a cpufreq-info -f/cpufreq-info -f)
scaling_governor: Permite ler/selecionar o governor atualmente em uso (equivalente a cpufreq-info -g/cpufreq-set -g)
scaling_min_freq: Permite ler/selecionar a velocidade mínima que se deseja para a CPU. A velocidade deve ser igual ou superior à velocidade mínima (equivalente a cpufreq-set -d)
scaling_max_freq: Permite ler/selecionar a velocidade máxima que se deseja para a CPU. A velocidade deve ser igual ou inferior à velocidade máxima (equivalente a cpufreq-set -u)
cpuinfo_cur_freq: Velocidade atual da CPU (equivalente a cpufreq-info -f)
cpuinfo_max_freq: Velocidade máxima suportada pela CPU (equivalente a cpufreq-info -l)
cpuinfo_min_freq: Velocidade mínima suportada pela CPU (equivalente a cpufreq-info -l)

CPU Throttling/Dynamic frequency scaling: Configurando Cool'n'Quiet/SpeedStep no Linux (parte 1)

Esse artigo é sobre a instalação do Cool'n'Quiet no Linux. Para ver a versão Windows desse tutorial, clique aqui.


O que é CPU Throttling, e quais suas vantagens?
Os processadores AMD mais modernos possuem uma tecnologia chamada Cool'n'Quiet (Frio e Silencioso, em tradução tosca livre), que monitora o quanto o usuário está exigindo do processador. Assim, quando o processador não está sendo muito utilizado, o sistema diminui o clock (velocidade) do processador e a voltagem, diminuindo o consumo de energia elétrica (ou de bateria, em notebooks) e ajudando a resfriar o processador. As placas mães mais modernas permitem o uso de coolers (ventiladores) inteligentes, que diminuem a rotação quando o processador está frio, gerando assim menos ruído. Quando o processador é exigido novamente, o clock e a voltagem são aumentados novamente. Segundo a AMD a medição é feita 30 vezes por segundo, o que na prática faz com que você não sinta diminuição na performance (mas seu sistema vai sentir os benefícios de funcionar mais frio). Recentemente habilitei o Cool'n'Quiet em um Semprom 3200. Antes da instalação a temperatura média do processador era de 65º C. Agora, a temperatura média fica na casa dos 45º C!!! Uma queda de 20º C ou aproximadamente 30%!!! E sem perda de performance. Definitivamente vale a pena.

Obs: Para que o Cool'n'Quiet possa ser habilitado, tanto o processador quanto a placa mãe necessitam suportar a tecnologia. Atualmente, a maioria dos processadores e placas já suportam. Também é necessário que seu sistema tenha suporte ao SysFS, que exibe um sistema de arquivos virtual em /sys, semelhante ao /proc. Atualmente a maioria das distribuições Linux (ou todas?) fazem uso desse sistema de arquivos. Você pode confirmar se a sua instalação suporta o sysfs com o seguinte comando:
debian:~# mount | grep -i sysfs
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
Se você obter um resultado semelhante a esse, significa que seu sistema utiliza o SysFS

Obs2: A Intel possui uma tecnologia semelhante, chamada SpeedStep. Os procedimentos para utilização dessa tecnologia são basicamente os mesmos. No entanto, como eu tenho acesso apenas a processadores AMD irei me ater a esse fabricante.

Obs3: O procedimento descrito aqui foi testado no Debian Linux. Outras distribuições Linux também suportam a tecnologia, porém o procedimento de instalação dos softwares pode ser um pouco diferente.

Verificando se o seu processador tem suporte ao Cool'n'Quiet:
Segundo esta página da Wikipedia , esta é a lista de processadores que suportam Cool'n'quiet

  • Athlon 64 and X2 - Todos os modelos
  • Athlon 64 FX - FX-53 (apenas Socket 939) e superiores
  • Sempron - Socket 754: 3000+ e superiores; Socket AM2: 3200+ e superiores
  • Opteron - E-stepping e superiores, marcados como Optimized Power Management
  • Phenom - Todas as versões suportam Cool'n'Quiet 2.0
  • Phenom II - Suporta Cool'n'Quiet 3.0

Verificando se a sua placa mãe tem suporte ao Cool'n'Quiet:
A maneira mais simples de verificar se sua placa mãe tem suporte ao Cool'n'Quiet é procurando no manual (normalmente na parte de Features, que costuma ficar no início do manual), no site do fabricante, ou diretamente na BIOS (normalmente na parte de configurações do processador ou configurações de energia). Coloquei abaixo as fotos de duas BIOS que mostram a opção ativada.


Métodos de controle da frequência:
No Linux, o driver dos processadores AMD já faz parte do kernel padrão à partir da versão 2.6.19 (diferentemente do Windows, onde é necessário instalar o driver do processador). Assim, basta apenas instalar o pacote desejado. Existem basicamente 3 pacotes para essa tarefa:

  • powernowd: Inicialmente a tecnologia Cool'n'Quiet era conhecida como PowerNow!. O powernow é um daemon, que gerencia o clock do processador automaticamente conforme a demanda.
  • cpufreqd: outro daemon que visa gerenciar o clock dependendo da demanda de uso do processador.
  • cpufrequtils: é uma interface que configura qual a o comportamento do processador

É possível ainda configurar diretamente o kernel (em tempo real), sem a necessidade de instalar nenhum dos pacotes acima. Vamos ver as duas maneiras: utilizando o pacote cpufrequtils e também diretamente.

Instalando o cpufrequtils:
Nada mais simples: No Debian (e derivados) basta digitar
aptitude install cpufrequtils
e o pacote será instalado, bem como todas as suas dependências.

Módulos necessários:
Carregue os seguintes módulos com o comando modprobe <nome_do_modulo>
powernow-k7 / powernow-k8 (dependendo da arquitetura do seu processador. Processadores 64 bits utilizam o módulo powernow-k8, mesmo rodando em modo 32 bits. Processadores anteriores utilizam o módulo powernow-k7)
cpufreq_userspace
cpufreq_conservative
cpufreq_ondemand
cpufreq_stats
cpufreq_powersave

Cada módulo carrega um governor. Um governor é um algoritmo de gerência de clock. Cada governor gerencia o clock de maneiras diferentes:
  • userspace: permite que você selecione o valor de clock desejado. O valor deve estar dentro da lista de valores suportados por seu processador. Veremos mais a frente como ver a lista de frequências suportadas
  • conservative: configura o clock no menor valor possível e aumenta o valor gradativamente (em degraus), conforme a demanda.
  • ondemand: configura o clock no menor valor possível e aumenta o valor diretamente para o máximo conforme a demanda. Ou seja, varia apenas entre o valor mínimo e o máximo.
  • powersave: mantém o clock sempre no valor mínimo. Util para poupar bateria em notebooks.
  • stats: gera estatísticas de funcionamento: quantas vezes o sistema alternou o clock do processador e quanto tempo o processador ficou em cada velocidade.
  • performance: não possui um módulo, mas mantém o clock sempre no valor máximo. É o comportamento padrão do sistema (processador sempre no máximo, sem gerência de clock/energia)
Se você pretende utilizar apenas um governor, não é necessário carregar todos. Basta carregar o módulo correspondente ao governor desejado.

Vou parar por aqui para que o artigo não fique muito grande. Na próxima parte, veremos efetivamente como alterar o clock do processador. Até lá!!! Dúvidas, erros críticas e sugestões: basta comentar.

Debian - Repositórios Volatile e Sloppy

O tempo entre os releases de duas versões do Debian costuma ser relativamente alto. Entre a liberação das verões Sarge (3.0) e Etch (4.0) passaram-se aproximadamente 21 meses. Da versão Etch para a atual Lenny (5.0) foram mais 22 meses. Alguns projetos mudam pouco nesse intervalo (como o postfix e o squid), porém outros, mais dinâmicos por natureza (como antivírus e filtros de spam) costumam lançar melhorias consideráveis nesse intervalo de tempo. O clamav por exemplo mudou completamente (a versão do clamav no Debian Etch simplesmente fica carregando o banco de dados de vírus indefinidamente ...). Para solucionar problemas desse tipo, o Debian criou o Projeto Volatile, que em suas próprias palavras "contém apenas as alterações necessárias em programas estáveis para deixá-los funcionais". Os pacotes presentes nos repositórios Volatile não demandam alterações em arquivos de configuração, basta instalar e continuar utilizando o arquivo de configuração anterior. Pacotes em que isso não é possível, e que podem gerar alguma dor-de-cabeça na instalação ficam na seção volatile-sloppy dos repositórios.

Instalação:
Nada mais simples: basta acrescentar as entradas correspondentes no seu arquivo /etc/apt/sources.list


Os servidores principais são estes (prontos para serem colados no sources.list):

#Etch
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free
deb http://volatile.debian.org/debian-volatile etch/volatile-sloppy main contrib non-free

#Lenny
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb http://volatile.debian.org/debian-volatile lenny/volatile-sloppy main contrib non-free

E também existem os mirrors brasileiros:

#Etch
deb http://sft.if.usp.br/debian-volatile etch/volatile main contrib non-free
deb http://sft.if.usp.br/debian-volatile etch/volatile-sloppy main contrib non-free

#Lenny
deb http://sft.if.usp.br/debian-volatile lenny/volatile main contrib non-free
deb http://sft.if.usp.br/debian-volatile lenny/volatile-sloppy main contrib non-free

Após instalar os repositórios, atualize o pacote debian-archive-keyring, que possui a chave utilizada pelos repositórios
aptitude install debian-archive-keyring
A chave para o Etch não está contida neste arquivo, e deve ser instalada da seguinte maneira:
wget http://www.debian.org/volatile/etch-volatile.asc
apt-key add etch-volatile.asc
Após isso, basta rodar o aptitude update (ou apt-get update) e começar a atualizar os programas. Apesar de confiar na equipe do Debian, eu recomendo que você atualize um programa de cada vez, prestando bastante atenção no processo, para evitar surpresas desagradáveis.

Instalação do Debian passo-a-passo - Parte 4 (Final)

Finalizando essa série de artigos sobre a instalação do Debian. Para ver os artigos anteriores da série, veja os links abaixo:


Parte 1 - Preparação e Boot
Parte 2 - Localidade e Rede
Parte 3 - Particionamento e usuários

Sistema básico:
Após a configuração dos usuários, o sistema faz a instalação do sistema básico. Nada para se fazer aqui a não ser esperar ...


Configuração do sistema de pacotes:
O Debian trabalha com o conceito de repositórios. Um repositório é uma coleção de pacotes de software pré-compilado (também existem repositórios de pacotes de código fonte), organizados de uma maneira especial. Existem dezenas (ou seriam centenas) de repositórios oficiais espalhados pelo mundo (vários deles no Brasil), sincronizados com os repositórios oficiais. Também existe o repositório de atualizações de segurança, que possui as atualizações de segurança dos pacotes e é disponibilizado apenas pelo projeto (não existem mirrors). Os repositórios podem ser disponibilizados na internet via HTTP/FTP, em rede local (também via HTTP/FTP), em disco (local) ou em CD/DVD. O CD de instalação possui um repositório que é configurado automaticamente na instalação. Uma máquina pode possuir diversos repositórios diferente, e qunado for solicitada a instalação de um pacote, o sistema APT ( de Advanced Packaging Tool - Ferramenta Avançada de Pacotes) verá qual repositório possui a versão mais atual desse software e a instalará (a menos que você force a instalação de uma versão específica), bem como a todas as suas dependências. Na próxima tela, o instalador pergunta se você deseja utilizar um espelho de rede. Normalmente responde-se sim a essa pergunta, porém em alguns casos (por exemplo, se não houver uma conexão de internet disponível) você pode escolher não e acrescentar os repositórios mais tarde. Caso você diga não, salte para o próximo tópico  e depois veja o post de pós-instalação , onde mostro algumas configurações de repositório que utilizo.


Conforme foi dito antes, existem os repositórios oficiais e diversos mirrors (espelhos) deles ao redor do mundo. Normalmente, utilizando-se um mirror próximo a você aumenta a velocidade de download. A próxima tela solicita que você selecione um país, para ver a lista de servidores disponíveis no país selecionado.

Em cada país existem diversos servidores disponíveis. O próprio instalador recomenda que se utilize o servidor no formato ft..debian.org (no caso do Brasil seria ftp.br.debian.org). No entanto eu já tive alguns problemas com esse repositório: ele era muito instável e me deixou na mão diversas vezes. Como deixei de utilizá-lo a alguns anos não sei se esses problemas persistem. Como eu já disse antes, costumo utilizar o mirror da Universidade de São Paulo (USP), ou seja, o linux.iq.usp.br, embora a qualidade dos outros mirrors também é elevada.
A próxima tela permite configurar um servidor proxy, caso sua rede utilize um. Caso não utilize um proxy, deixe em branco e continue a instalação. O sistema tentará ler o repositório. Caso não consiga, você pode selecionar outro repositório. Caso haja uma nova falha, cheque as configurações de rede, principalmente se elas foram entradas manualmente. Cheque também as configurações de proxy. Se mesmo assim não conseguir, ignore a adição de repositórios (você pode concluir a instalação sem isso e acertar isso mais tarde).


Concurso de Popularidade dos Pacotes:
Os desenvolvedores do Debian querem saber quais os pacotes mais utilizados. A próxima tela pergunta se as informações sobre os pacotes utilizados por seu sistema podem ser enviadas aos desenvolvedores do Debian, para melhorar a distribuição, tentando colocar os pacotes mais utilizados no primeiro CD. A escolha é sua (ou da sua chefia ...)


Seleção de software:
A próxima tela permite instalar pacotes de software pré-selecionados de acordo com a função que pretende-se dar ao equipamento. Não costumo utilizar nenhum deles. Prefiro desmarcar todos (selecionando a opção correspondente e pressionando a barra de espaço), até mesmo o sistema básico, e posterior à instalação instalar apenas os pacotes desejados.
Obs: Caso você tenha escolhido não adicionar um repositório nos passos anteriores, essa tela pode conter menos opções.


Instalação do gerenciador de Boot:
O próximo passo é a instalação do sistema gerenciador de boot. O gerenciador default atualmente é o GRUB. Caso você prefira instalar o LILO (outro gerenciador de boot), selecione voltar e escolha a opção correspondente no menu. 


O Fim (fim? agora é que a brincadeira começa de verdade!!):
A instalação do Debian está concluída. Remova o CD do drive e reinicie o computador. Caso você tenha seguido este tutorial, seu sistema vai esta semelhante ao exibido na segunda imagem. Note que a instalação mínima consome apenas 315Mb no HD.


Não deixe de conferir o post sobre pós-instalação do Debian , onde descrevo algumas tarefas que melhoram a performance e a usabilidade do sistema. Vale também ver sobre as configurações de SSH para aumentar a segurança , caso pretenda utilizar essa tecnologia. 

Com isso, termina essa série de posts. Caso tenha alguma dúvida ou sugestão, basta comentar. Um abraço e até a próxima.

Instalação do Debian passo-a-passo - Parte 3

Se você não viu os outros posts sobre a instalação do Debian, pode conferir aqui:

Parte 1 - Preparação e Boot
Parte 2 - Localidade e Rede

Particionamento:
O particionamento é uma parte um tanto delicada, pois está intrínsecamente ligado à função que se deseja dar ao equipamento. Assim, um desktop tem um esquema de particionamento diferente de um servidor proxy, que por sua vez possui um esquema diferente de um servidor de arquivos e por aí vai ...

Atenção: Sempre que você ouvir falar em particionamento (aqui ou em qualquer outro lugar) tenha em mente que esse procedimento é potencialmente destrutivo, podendo apagar dados já existentes no equipamento.

Como foi dito antes, existem diversas formas de particionamento (ou esquemas de particionamento, como normalmente são chamados). O mais simples, e que vai ser utilizado neste post, define simplesmente uma única partição de dados (mais uma partição swap) e coloca todos os arquivos nela. Nem de longe isso é o ideal: no mínimo devem ser criadas duas partições de dados, uma para a raiz e uma para o /home. Assim, caso ocorram  problemas e haja a necessidade de se reinstalar o sistema, não há a necessidade de se preocupar com os dados desse diretório. Indo um pouco mais além, o particionamento ideal envolveria a criação de diversas partições (possivelmente utilizando-se LVM para facilitar o futuro gerenciamento das partições), talvez utilizando-se vários sistemas de arquivos diferentes e cada partição contendo opções de montagem específicas. Porém isso é um tanto longo e complexo, e fugiria completamente do escopo deste artigo.

Após a configuração da rede, o sistema irá detectar os HDs instalados e iniciar o particionador. A seguinte tela será exibida:
Nesta tela você escolhe o modo de partição. A primeira opção (Assistido - usar disco inteiro) é a minha recomendação. Neste modo o sistema faz todo o trabalho e você tem apenas de confirmar. As outras opções exigem um certo nível de conhecimento sobre vários aspectos como hardware, sistemas de arquivos, LVM e do próprio Linux.
Obs: Esse modo pressupõe que você vai utilizar o HD inteiro para o Linux. O HD terá todas as suas partições removidas e quaisquer dados presentes serão excluídos. Você foi avisado !!!
A próxima tela pede que selecione o HD que será utilizado para a instalação. Caso você possua mais de um HD, certifique-se de escolher o HD correto


Aqui é solicitado que se escolha o esquema de particionamento. Conforme foi dito anteriormente, vamos utilizar o primeiro esquema. Eu recomendo que após concluir uma instalação com sucesso (o que não é nenhum mistério!), faça outras instalações, variando as opções de particionamento, testando sistemas de arquivos diferentes e até mesmo o particionamento manual. Recomendo o uso de máquinas virtuais pela facilidade que elas representam.

Aceitando-se a opção acima, a próxima tela exibe o estado do disco. Caso esteja tudo certo, selecione a opção "Finalizar ...". Caso você deseje selecionar outra opção, selecione "Particionamento Assistido". Caso queira alterar alguma opção em uma partição (como o sistema de arquivos, por exemplo) selecione a partição e pressione ENTER.
A próxima tela é decisiva: é sua última chance antes de concluir o particionamento. Se desejar fazer alguma alteração, selecione "Voltar". Se tudo estiver certo, selecione SIM e pressione ENTER. A tabela de partições do HD será reescrita, e as partições correspondentes serão formatadas.

Fuso Horário:
Nesta tela aparecerão os diversos fusos horários do país selecionado no começo da instalação. É importante selecionar o fuso correto, para que as atualizações do horário de verão funcionem corretamente. Como estou na Região Sudeste (Rio de Janeiro), selecionei São Paulo. Selecione o fuso que se aplica a você e pressione ENTER.


Usuários e Senhas:
A próxima tela solicita a criação da senha do usuário root (também chamado de superusuário ou administrador do sistema). Recomenda-se uma senha complexa, que envolva letras (maiúsculas e minúsculas), números e símbolos. Na página pessoal de Avi Alkalay , existe uma lista de senhas que não devem ser utilizadas . As senhas são coletadas por ele em tentativas de invasão feitas por terceiros a seus servidores. Quando este artigo foi escrito, a lista continha cerca de 142.000 combinações de usuário e senha. Vale a pena dar uma olhada e ver o que não se deve usar. De qualquer forma, você deve digitar uma senha para seu usuário root e em seguida confirmar a mesma senha.


Em seguida é solicitado que seja criado um usuário comum (sem poderes de administrador), para a utilização diária. Nesse caso, é solicitado que você digite um nome para o usuário (ex: João Ninguém), um username (ex: jninguem) e em seguida digite e confirme a senha.



E é isso! Por hoje ficamos por aqui. No próximo post finalizamos a série.

Instalação do Debian passo-a-passo - Parte 2

Continuando a série de posts sobre instalação do Debian, vamos agora às configurações de localidade e rede. Se você não viu o primeiro post, pode conferir ele aqui.

Localidade:
A próxima tela é a de "Seleção de Idioma". O idioma selecionado aqui será utilizado durante a instalação e será configurado no sistema final. A menos que você possua alguma razão para fazer diferente, selecione o "Português do Brasil". Caso você realmente prefira o idioma inglês, pode selecionar "Inglês" ou simplesmente "C", que é o equivalente a sem localização. Selecionando o português, facilita na configuração de algumas outras telas, como teclado e fuso horário.
As próximas telas configuram o país e o teclado. Se você selecionou o idioma como "Português do Brasil" o país já vem setado para Brasil e o teclado como BR-ABNT2 (que é o teclado brasileiro com "Ç"). 
Agora o sistema irá detectar o seu hardware e carregar os módulos necessários. A menos que você possua algum hardware "esotérico" (muito fora do padrão), não deve ocorrer nenhum problema aqui.
Configurações de Rede:
Chegamos na parte de configuração de rede. O sistema tenta efetuar a configuração de forma automática (através do protocolo DHCP). Como estou utilizando o VMWare (que implementa um servidor DHCP) a minha configuração ocorreu de forma automática. Caso você esteja em uma rede com DHCP habilitado, (como uma rede corporativa ou mesmo uma domiciliar com um roteador de banda larga) sua configuração deve ocorrer de forma automática. Caso haja algum problema, a configuração é bem simples, necessitando apenas do trivial (endereço IP, máscara de rede, default gateway e servidores DNS). Utilizando-se DHCP, as duas únicas coisas que necessitam ser configuradas são o Hostname do equipamento e o domínio. Tipicamente, em uma rede local, o hostname e o domínio podem ser qualquer um, desde que o hostname seja único para cada máquina e o domínio seja o mesmo para todas.
Por hoje, vamos ficando por aqui. No próximo post, vamos ver o particionamento. Aguardem e comentem!!!

Instalação do Debian passo-a-passo - Parte 1

Nessa sequência de posts pretendo mostrar como faço a instalação padrão de um servidor Debian. Essa instalação pode ser considerada a base para os artigos seguintes deste blog.

Considerações iniciais:

A instalação será executada em uma máquina virtual do VMWare, com 256 Mb de RAM e 4 Gb de HD. Esse padrão de instalação é suficiente (pelo menos para mim) para a criação de máquinas virtuais para testes, e até para algumas máquinas de produção. A versão utilizada na instalação é a 4.0, Codinome Etch, que é a estável atualmente.

Obtendo a mídia de instalação:

A mídia de instalação (normalmente uma imagem ISO de CD/DVD) pode ser obtida de várias maneiras, sendo essas as principais:
  • Download via HTTP/FTP
  • Download via BitTorrent
Os arquivos para download, tanto HTTP quanto torrent, podem ser obtidos no site do Projeto Debian ou de preferência em um mirror oficial, como o da Universidade de São Paulo. Utilizando um mirror você poupa a banda de internet do site do Projeto (que não possui fins lucrativos e é mantido com doações) e descongestiona links internacionais, melhorando a internet como um todo, além de possivelmente conseguir taxas de download melhores.

Existem vários tipos de instalação:
  • Instalação "Normal": Utiliza um ou mais CD/DVD(s) completo(s). A inicialização e a cópia dos arquivos é feita pelo CD/DVD. Não recomendo a menos que a máquina de destino não possua acesso à internet banda larga.
  • Instalação via rede: Utiliza um CD netinst, de aproximadamente 150Mb. A inicialização pode ser feita pelo CD, via pendrivre USB (fiz um tutorial sobre como dar boot via USB) ou via rede (netboot). Os arquivos a serem instalados são baixados da internet, garantindo que os mesmos são atualizados.
Particurlarmente, eu costumo obter uma imagem de CD netinst via BitTorrent (ou HTTP, quando estou em um lugar em que torrent é bloqueado). Essa imagem contém aproximadamente 150 Mb, sendo bem rápida de se baixar nos links atuais, e bem prática de se transportar em um pendrive. E em se tratando de Debian, não existe problema da mídia de instalação ser antiga (podendo ser até de uma versão anterior, em último caso), pois o importante é efetuar a instalação básica do sistema e atualizar via internet posteriormente.

Iniciando a Instalação: Com a ISO baixada e gravada em CD (ou com o pendrive preparado segundo o tutorial) é hora de iniciar a instalação. Colocado o CD no drive e efetuado o boot do computador, deve aparecer uma tela semelhante a essa (clique nas imagens para ampliar):


A titulo de informação, caso seja pressionada a tecla F1, aparece o menu de opções de boot, que informa os outros menus (acessíveis com as teclas de F2 a F10) as diversas opções de boot disponíveis (como o instalador gráfico, modo de recuperação, modo expert e algumas combinações).







Obs: Essas telas aparecem apenas quando o boot é realizado via CD/DVD. Boots realizados através de pendrives, disquetes ou pela rede não exibem essas opções, indo direto para o instalador.

Caso o sistema possua 64Mb de RAM ou menos será exibida a tela abaixo, informando que a instalação prosseguirá em inglês. Nesse caso, algumas telas seriam um pouco diferentes, mas a essência e a sequência são basicamente as mesmas.


E assim vamos ficando por aqui ... No próximo post pretendo mostrar sobre as configurações de localidade e rede. Até lá!!

Debian: Pós Instalação

Esta é a lista de tarefas que eu executo após concluir a instalação de um servidor Debian (todas na conta de root)

Acertar o arquivo .bashrc:

vi /root/.bashrc
  • Descomentar as entradas abaixo de "# You may uncomment the following lines", para deixar o comando ls colorido.
  • Ativar o bash Auto-Completion: se você utiliza o bash como shell, experimente ativar a auto-completion. Como o nome diz, ela extende o recurso de completar o nome dos comandos no shell a várias outras coisas, como opções dos programas mais comuns e até nomes de pacotes a serem instalados/removidos com o apt.
    Para ativar basta incluir a linha abaixo no seu arquvio $HOME/.bashrc

    source /etc/bash_completion
  • Eu costumo acrescentar alguns alias, que facilitam o trabalho (como o de colorir o grep, por exemplo). Os outros são: cdl (vai para /var/log), cds (vai para /etc/init.d), tm (dá um "tail -f" no arquivo /var/log/messages) e ts ("tail -f" no arquivo /var/log/syslog). A imagem abaixo mostra como fica o arquivo final (clique para ampliar):

Acertar a lista de repositórios:

vi /etc/apt/sources.list
  • Comentar a entrada do CD-ROM utilizada na instalação
  • Acrescentar entradas para mirrors próximos a você (eu utilizo o mirror da USP, com ótima performance)
  • Aproveite também para acrescentar a opção non-free nas entradas que ainda não a possuem. Isso vai permitir o acesso a todos os pacotes.
No final, o meu arquivo fica parecido com isso:

#deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-1 20070407-11:55]/ etch contrib main
#deb cdrom:[Debian GNU/Linux 4.0 r0 _Etch_ - Official i386 CD Binary-1 20070407-11:55]/ etch contrib main
deb http://linux.iq.usp.br/debian/ etch main contrib non-free
deb-src http://linux.iq.usp.br/debian/ etch main contrib non-free
deb http://security.debian.org/ etch/updates main contrib non-free deb-src http://security.debian.org/ etch/updates main contrib non-free




Saia do arquivo ( :wq), atualize as bases de dados do APT (aptitude update) e instale os pacotes desejados. O que eu costumo instalar como básico:

  • Kernel-Linux: Normalmente, o sistema é instalado com um kernel "genérico", voltado para processadores Intel 386/486, e que suporta apenas 1Gb de memória RAM. Como provavelmente você possui um processador mais moderno, vale a pena instalar um kernel específico para o seu processador, e com suporte a mais memória, se for o caso. Os principais são: linux-image-2.6-686 (para processadores Pentium Pro/Celeron/Pentium 2/Pentium 3/Pentium 4), linux-image-2.6-k7 (para processadores AMD Duron/Athlon/AthlonXP). Os pacotes de Kernel que terminam em smp dão suporte a multiplos processadores/cores e os que terminam em bigmem dão suporte a quantidades de memória superior a 1Gb.
  • vim (VI Improved): a versão do vim que vem instalada por default é minimalista e não contém todos os recursos. Após a instalação, edite o arquivo de configuração (/etc/vim/vimrc) e descomente (retirando as aspas " do começo da linha) a linha que contém o texto syntax on e salve o arquivo. Isso ativa a função de Syntax highlight do vim, que colore o conteúdo dos textos. Pacote: vim
  • Servidor OpenSSh: básico para efetuar o acesso à servidores (se eu pegar alguém usando telnet, vai levar uma surra de gato morto até o gato miar !!!). Pacote: openssh-server
  • Screen: O Screen é um sistema de janelas utilizado em modo texto. Basicamente, permite que você use várias consoles de texto através de uma única conexão (local ou remota), além de várias outras coisas. (mini-tutotial sobre ele em breve !). Pacote: screen
  • PSmisc: instala os utilitarios fuser, killall e pstree. Pacote: psmisc

Outros pacotes:

  • less: utilizado para paginar resultados para cima e para baixo. Não é essencial, mas faz falta as vezes. Pacote: less
  • Build Essential: se você precisar compilar aplicações (ou o kernel) a partir do código fonte, esse pacote instala os pacotes necessários (gcc e sua turma). Pacote: build-essential
  • XOrg: metapacote para instalar o servidor de janelas. Além disso você provavelmente vai querer instalar um ambiente gráfico. Os mais famosos são o Gnome e KDE, mas também há outros mais leves como o xfce, blackbox, IceWM, etc. Não há um ambiente melhor que o outro. Cada um tem características próprias e no geral são muito bons. Recomendo que você teste alguns deles e veja com qual você se dá melhor. Pacote: xorg.