Anda di halaman 1dari 12

O slackware é a distribuição linux Em todos esses anos, a distro Um produto de extrema qualidade

mais antiga ainda em atividade. conquistou ardorosos utilizadores, para usuários com esta mesma
Tendo sido criada por Patrick principalmente graças à sua filosofia característica. E este zine é de
Volkerding em 1993, a partir da SLS. de simplicidade e estabilidade. slacker para slacker.

slackware
Slackware is a registered trademark of Slackware Linux, Inc. zine
02 de Junho de 2006 – Edição #13

Editorial Índice
Finalmente uma nova edição do Instalando a placa PCI Wireless D-Link
slackwarezine! Estávamos sem uma DWL-G510 (Rev.B)
nova edição completa desde novembro Eduardo Braga
do ano passado (quando a edição de 2
novembro saiu em dezembro). Ou seja,
justo no nosso aniversário de dois Google Talk e slackware
anos (janeiro de 2006) não saiu Herbert Alexander Faleiros
edição nenhuma -:( 3
Para compensar, pensamos em fazer Desenvolvimento Organizado com
uma edição dupla para março... que Subversion e Trac com PostgreSQL no
virou uma edição tripla para maio (e
slackware
nesse meio tempo lançamos a #12.5 Wanderson Santiago dos Reis
para o FISL). E, a medida que os 4
planos ficavam mais ambiciosos,
menos a zine ficava pronta.
Instalando o MLDonkey no slackware
Herbert Alexander Faleiros
Bom, de volta a sanidade; temos uma 8
zine cheia do mesmo de sempre, do
jeito que os slackers gostam: a
Automatizando a Reordenação de “N”
revista de artigos técnicos, escrita
Interfaces de Rede
por técnicos e para técnicos.
Nívio Souza
10
Instalação de softwares (mldonkey,
trac), dicas de configuração (google
talk), instalação de hardware (D- Configurando o Kernel para HD SATA e
Link DWL-G510, SiI 3112A), Controladora SiI 3112A (Asus A7N8X –
administração da máquina (reordenar DeLuxe)
eths)... o mesmo cardápio que sempre Yukatan “Kenjiro” Costa
tivemos e agora com um gostinho de 12
“ressureição”

Nossos agradecimentos para todos os


colaboradores que continuaram
mandando artigos para a zine e para
os leitore que ficavam perguntando
slackware
“Quando sai a próxima?” no ICQ, no
e-mail e no IRC. Essa edição é para to the
vocês! -;)

Boa Leitura!
real
Piter PUNK nerds
Reprodução do material contido nesta revista é permitida desde que
se incluam os créditos aos autores e a frase:
“Reproduzida da Slackware Zine #13 –
slack
www.slackwarezine.com.br”
com fonte igual ou maior à do corpo do texto e em local visível
users
Instalando a placa PCI Wireless
D-Link DWL-G510 (Rev. B)
Extraia o arquivo madwifi-ng-current.tar.gz 
Esta placa é uma boa opção para quem quer  em "/usr/src/", por exemplo. Entre no dir. criado 
comprar uma que suporte o protocolo como WPA­ e dê um "make && make install". Os módulos 
PSK que não necessita de um servidor de  serão criados e instalados. Agora vamos instalar o 
autenticação (RADIUS) configurado em casa, e uma  wpa_supplicant. 
taxa máxima de transferência de 54 Mbps sem 
gastar muito. Requerimentos para instalar o wpa_supplicant
Apesar da D­Link não disponibilizar um driver para  ● kernel versão 2.4.x ou 2.6.x com suporte ao 
GNU/Linux, é possível instalar este hardware  Wireless Extensions;
usando madwifi que é um projeto que provê drivers  ●
arquivos do madwifi;
para placas Wireless que usam chipsets da Atheros, e 
wpa_supplicant que adiciona o suporte ao protocolo  Extraia o arquivo wpa_supplicant-
WPA­PSK (WPA­Pre Shared Key) ao driver do  0.4.7.tar.gz e entre no dir. criado. Crie um 
madwifi.  arquivo chamado ".config" (sem aspas) e adicione 
as seguintes linhas ao arquivo:
Este roteiro ensina como configurar um slackware 
10.2 com uma placa dessa como uma estação cliente  CONFIG_DRIVER_MADWIFI=y
de uma rede Wireless. Este roteiro deve funcionar  CFLAGS += -I/usr/src/madwifi-ng
também com outras placas que possuem chipset da  CONFIG_CTRL_IFACE=y
Atheros. Consulte toda a documentação dos sites no  CONFIG_DRIVER_WEXT=y
final do documento para mais informações.
Substitua /usr/src/madwifi-ng pelo local onde 
Arquivos necessários:  você extraiu os arquivos do madwifi. No meu 
exemplo, eu extrai em /usr/src/madwifi-ng.
● madwifi-ng-current.tar.gz que pode ser  Dê um "make" para compilar os programas. E 
baixado do seguinte endereço:  quando terminar, copie os arquivos 
http://snapshots.madwifi.org/ wpa_supplicant e wpa_cli para 
● wpa_supplicant-0.4.7.tar.gz que pode  "/usr/local/bin/".
ser baixado do seguinte endereço: 
http://hostap.epitest.fi/releases/
Agora falta criar e configurar o arquivo de 
configuração do wpa_supplicant. Para isso 
Requerimentos para instalar o madwifi: usamos o comando o wpa_passphrase como root. 
A sintaxe é a seguinte. 
● uudecode (presente no pacote bin-10.2-
i486-1.tgz); wpa_passphrase SSID_da_Lan \
● kernel-headers-2.4.31-i386-1.tgz e 
CHAVE_PRE_COMPARTILHADA
kernel-source-2.4.31-noarch-1.tgz; No meu caso:
● Suporte ao Wireless Extensions (versão 

recomendada: v17) ­ kernel compilado com a  # wpa_passphrase homelan \


opção CONFIG_NET_RADIO=y (Por padrão  xxxxxxxxxxxxxx > \
essa opção já vem configurada. Examine seu  /etc/wpa_supplicant.conf
/boot/config para verificar se há suporte ou 
não, e recompile se necessário); Observe que a saída do comando foi redirecionada 
● Suporte ao Crypto API ­ kernel compilado com  para o arquivo /etc/wpa_supplicant.conf. 
a opção CONFIG_CRYPTO=y (mais uma vez,  Substitua o xxxx... pela sua chave compartilhada.  
verifique seu /boot/config. Use o comando  Visualize o arquivo. Deve ser parecer como este:
"grep CRYPTO /boot/config", por 
exemplo); network={
● gcc (mesma versão usada que compilou o  ssid="homelan"
psk="xxxxxxxxxxxxxxx"
kernel do Linux);
}

Kernel recomendado: kernel versão 2.4.20 ou 
superior;
GoogleTalk
O tamanho da chave depende de quem configurou o 
ponto de acesso ou roteador wireless. Use a mesma 
chave que você usou no campo PreSharedKey 
quando configurou seu roteador para o protoclo 

e slackware
WPA­PSK. Quanto maior a chave melhor. Você não 
precisará digitar outra vez essa chave. 

Quando a chave for alterada no roteador Wireless, 
repita o comando acima já substituindo pela nova 
chave. Adicione as seguintes duas linhas ao arquivo  O Google lançou um IM (instant messenger)
/etc/wpa_supplicant.conf: próprio. A boa notícia é que seguiram um
protocolo aberto, o do Jabber
ctrl_interface=/var/run/wpa_supplicant (http://www.jabber.org), portanto, para
ctrl_interface_group=wheel aqueles que querem utilizar mais este IM no
network={
slackware basta configurar qualquer
ssid="homelan"
software que tenha suporte ao Jabber, como o
psk="xxxxxxxxxxxxxxx"
} kopete.

Neste caso apenas certifique-se de ter um


ATENÇÃO! ALTERE AS PERMISSÕES DO 
crypto-plugin do Qt instalado, que é
ARQUIVO:
o qca-tls. No slackware não há esta
biblioteca, portanto é necessário que a
# chmod 640 /etc/wpa_supplicant.conf
instalemos antes de configurarmos o acesso
ao IM em questão.
Carregue os módulos necessários (ath_pci, 
ath_hal e wlan) com modprobe. Crie um script  Faça o download, extraia os arquivos e depois
contendo as seguintes linhas: compile:
#!/bin/bash $ wget http://delta.affinix.com/\
wlanconfig ath0 create wlandev \ qca/qca-tls-1.0.tar.bz2
wifi0 wlanmode sta $ tar xjf qca-tls-1.0.tar.bz2
wpa_supplicant -Bw -Dmadwifi -iath0 \ $ cd qca-tls-1.0
-c/etc/wpa_supplicant.conf $ ./configure --qtdir=/usr/lib/qt
# make && make install
Altere as permissões, e execute­o como root. Dentro 
de alguns segundos sua placa vai se conectar à rede  Para quem quiser criar um pacote (tgz) ou
cujo SSID você definiu no  não quiser compilar a biblioteca
"/etc/wpa_supplicant.conf" se você digitou a  manualmente, disponibilizei um script ao
chave corretamente. Agora falta pegar o IP. Como  estilo do Slackware, ou seja, um SlackBuild
root: no seguinte local:

# dhcpcd ath0 http://www.faleiros.eti.br/\


SlackBuild/qca-tls
Confirme com /sbin/ifconfig mesmo. Para 
verificar as configurações da placa Wireless,  Neste caso, apenas execute o script:
experimente o iwconfig. Outros comandos 
interessantes são wpa_cli (para permitir que  $ chmod +x qca-tls.SlackBuild
# ./qca-tls.SlackBuild
usuários não­root alterem configurações do 
wpa_supplicant).  Por favor, não vá se conectar 
Feito isto, podemos (agora) configurar o
na rede do seu vizinho! Leia os manuais do 
kopete para acessarmos o Google Talk:
madwifi e do wpa_supplicant para outros 
comandos interessantes e ajustes finos.  Vá em "Settings", depois em "Configure
Kopete" e "New Account". Selecione o
Toda a documentação acima foi retirada dos  "Jabber" (em Messaging Services) e adicione
seguintes site/documentos: seu e-mail do Gmail e senha. Em seguida
selecione a aba "Connection", marque a opção
● http://madwifi.org/ "Use SSL" e em "Override default server"
● http://hostap.epitest.fi/\ altere/adicione "talk.google.com".
wpa_supplicant/
● http://madwifi.org/wiki/UserDocs/\ Agora é só conectar.
802.11i
Herbert Faleiros aka ratmmmam
Eduardo Braga <z41d@click21.com.br> <herbert@faleiros.eti.br>
Desenvolvimento Organizado
com Subversion e
Trac com PostgreSQL
no slackware
Por quê Trac com PostgreSQL? Na
Introdução implementação padrão o Trac utiliza SQLite,
mas enfrentei alguns problemas para utilizar
Quem estuda ou trabalha com o Trac com SQLite, nas instalações que fiz o
desenvolvimento sabe, pelo menos Trac só funcionava com uma determinada
teoricamente, da importância da Gerência de versão da SQLite. Achei o problema muito
Configuração de Software(SCM, do inglês limitante então parti para o PostgreSQL,
Software Configuration Management). O apesar da SQLite ser mais flexível para
problema é que na vida real das empresas, backups e restores, o PostgreSQL é bastante
onde eficiência e qualidade são objetivos utilizado e acho que não deixa nada a dever
diários, controlar processos e as atividades ao propósito do artigo.
relacionadas ao desenvolvimento de software
é de suma importância para se alcançar um Este artigo é apenas uma breve introdução de
software de qualidade. como fazer o Subversion mais o Trac com
PostgreSQL funcionar no slackware.
Num processo de desenvolvimento de Portanto para outros recursos, como controle
software temos que lidar com quantidades de de acesso ao repositório e ao Trac e toda a
documentos e códigos muito grande e a administração deste sistema deve ser buscado
organização, o versionamento e as mudanças em outras fontes. Comece pela documentação
destes devem ser registradas com precisão e oficial onde você encontrá todos os passos e
estarem disponíveis (acesso rápido e fácil) informações necessárias para extrair o
para diversas pessoas envolvidas no projeto. máximo destas excelentes ferramentas.

Com a popularização do software livre e dos Utilizaremos como base de instalação o


processos bastante organizados de vários slackware 10.2.
projetos open source, hoje podemos contar
com diversos softwares de grande qualidade e Instalando Dependências
acessíveis, utilizados em Gerência de
configuração de software. As software houses Indicarei aqui apenas as dependências
não têm mais desculpas para não básicas necessárias à implementação do
desenvolverem softwares com qualidade nos proposto:
processos.
python-2.4.1
Neste artigo vamos implementar o Subversion Interpretador da linguagem Python.
para Controle de Versão e o Trac com Disponível no CD 2 do slackware 10.2.
PostgreSQL para o Controle de Mudanças.
O Subversion é uma ferramenta de Controle postgresql-8.1.3
de Versão que foi construída para substituir o Banco de Dados que armazena as
CVS, mas com as devidas melhorias nos informações do Trac. Qualquer versão
pontos fracos do CVS, como por exemplo acima de 7.3.X deverá funcionar(testado
controlar a versão dos diretórios, de cópias e com as versões 7.4.8 e 8.1.3). Pacote
de renomeações. O Trac é um ferramenta com disponível:
interface web, escrita em Python, de Controle
de Mudanças em projetos de software, que se http://www.linuxpackages.net/\
integra ao Subversion e oferece apoio à pkg_details.php?id=8189
documentação e ao acompanhamento do
projeto.
swig-1.3.28 É o módulo neo_cgi.so que habilita o
SWIG (Simplified Wrapper and Interface Python a trabalhar com o clearsilver.
Generator) é uma biblioteca que liga Neste caso copiamos o mesmo para o local
programas escritos em C e C++ com correto. Ainda dentro da pasta
outras linguagens, no nosso caso o clearsilver-0.10.2, executamos:
Subversion e o Python (Subversion SWIG
bindings). Esta é a dependência mais # cp python/neo_cgi.so \
crítica, pois para podermos habilitar o /usr/lib/python2.4/\
suporte ao Python no Subversion devemos site-packages/
ter um casamento perfeito entre o swig e o
Subversion. Evite mudanças neste quesito. Instalando o Subversion e o Trac
Pacote disponível:
Dependências instaladas, passamos aos
http://www.slacky.it/download/\ protagonistas deste artigo.
development/swig/1.3.28/\
swig-1.3.28-i486-1sl.tgz subversion-1.3.0
É um sistema de Controle de Versão muito
Todas as dependências acima já estão no poderoso e eficiente.
formato do slackware, para instalar basta
um: Muitos devem ter notado que no
slackware 10.2 o subversion se tornou
# installpkg NOME_DO_PACOTE.tgz parte da distribuição, é uma excelente
notícia. O problema é que o binário official
psycopg2-2.0b8 do slackware não suporta a ligação com o
Interface que liga o Python com o python via swig, ou seja temos que
PostgreSQL. Uma observação importante é recompilar. Então caso tenha o
que para ter uma ligação perfeita entre o subversion oficial instalado, remova-o
Python e o PostgreSQL esta biblioteca deve desta forma:
ser compilada com a versão do PostgreSQL
a ser utilizada, de preferência na própria # removepkg subversion-1.2.3-i486-1
máquina onde se encontra o PostgreSQL.
Download disponível: Agora baixe os fontes da nova versão do
subversion:
http://initd.org/pub/software/\
psycopg/psycopg2-2.0b8.tar.gz http://subversion.tigris.org/\
downloads/\
Para instalar o psycopg2 descompacte o subversion-1.3.0.tar.bz2
arquivo e execute:
Para compilar manualmente execute, após
# cd psycopg2-2.0b8 descompactar o arquivo:
# python setup.py build
# python setup.py install # cd subversion-1.3.0
# ./configure \
clearsilver-0.10.2 PYTHON=/usr/bin/python \
É um template engine para embutir --prefix=/usr \
diversas linguagens no HTML. Download --enable-shared \
disponíveis em: --disable-static --with-pic \
--without-berkeley-db \
http://www.clearsilver.net/\ --with-ssl \
downloads/\ --with-zlib --with-swig
clearsilver-0.10.2.tar.gz # make
# make swig-py
Para instalar o clearsilver descompacte # make install
o arquivo e execute: # make install-swig-py

# cd clearsilver-0.10.2 Caso ocorra algum problema, poderá estar


# ./configure --prefix=/usr \ relacionado ao swig, reveja as
--with-python=/usr/bin/python dependências. Se persistir o problema
# make tente uma outra versão do swig.
# make install
Ao executar make swig-py e make
Apesar de acabarmos de instalar o install-swig-py será instalada a ligação
clearsilver o que nos interessa ficou de do Subversion com o Python via SWIG.
fora.
Contudo os módulos do python ficarão em
um local não padrão para o nosso
slackware. Para indicarmos ao python ATENÇÃO: O Subversion é baseado na
onde encontrar os módulos de ligação com biblioteca APR (Apache Portable
subversion executamos: Runtime library). O fonte já traz todos
os arquivos necessários. O problema é
# echo /usr/lib/svn-python \ que a biblioteca APR é compilada e
/usr/lib/python2.4/\ instalada com outros programas
site-packages/subversion.pth também, por exemplo, apache2 e a
própria apr e apr-util, caso tenha algum
Existem outras formas de fazer esta destes instalado, tome cuidado ao
indicação ao python como setar as compilar o Subversion pois o mesmo
variáveis de ambiente PYTHON_SITE e substituirá a APR instalada, causando
PYTHONPATH , criar links simbólicos ou até conflitos e problemas de funcionamento
mesmo copiar ou mover os módulos para o dos programas que dependem da
local apropriado. A maneira utilizada acima biblioteca. O mesmo ocorre caso
é a mais limpa. compile e instale outros programas que
utilizarão a APR, depois do Subversion,
Pronto compilamos e instalamos o "novo" neste caso é o Subversion que terá
subversion com ligação ao python via problemas. Apesar dos possíveis
swig. problemas, tudo pode ser resolvido na
hora da compilação, passe os
trac-0.9.4 parâmetros certos e nada de problemas.
É um sistema de controle de mudanças Na compilação que faremos quando
escrito em python que se integra ao houver qualquer biblioteca APR
subversion, oferencendo apoio à instalada no sistema, será substituída.
documentação e ao acompanhamento do Para evitar este comportamento basta
projeto. Download disponível em: informar, durante o processo de
compilação, onde está a APR que
http://ftp.edgewall.com/pub/\ gostaria de usar. Acrescente os
trac/trac-0.9.4.tar.gz parâmetros --with-apr=/usr e --with-
apr-util=/usr ao ./configure, sendo /usr
Descompacte o arquivo e execute: o caminho base onde a APR está
localizada (arquivos apr-config e apu-
# cd trac-0.9.4 config).
# python setup.py build
# python setup.py install
Para um bom esquema convenciona-se criar
Configurando um ambiente básico três diretórios que norteam a organização do
repositório e do andamento do projeto. Os
Para configurarmos um repositório básico diretórios são:
devemos conhecer previamente como
funciona um sistema de Controle de Versão, trunk
especialmente o subversion. A primeira coisa raíz do projeto ou linha principal de
a fazer é definir um esquema para o desenvolvimento, sua principal
repositório. O esquema pode contar com um característica é que tudo nele deve estar
repositório para cada projeto ou um estável.
repositório abrigando vários projetos. Vamos
escolher 1:1 e criar o nosso repositório: branches
(daqui para frente substitua os são as ramificações ou linhas paralelas à
caminhos/diretórios de acordo com o seu linha principal, normalmente cada
sistema) desenvolvedor deverá ter um "branch".
Estas ramificações, quando se tornam
$ svnadmin create \ estáveis, são mescladas com a raíz.
/home/wasare/projeto1
tags
O comando acima criará um repositório no este contém algumas versões específicas
formato fsfs, padrão atual do subversion. No que recebem um nome ou rótulo mais
desenvolvimento de projetos em equipe amigável como release-1, release-2, etc.
devemos organizar o nosso repositório para Representa um snapshot ou cópia de um
que possamos ter várias "linhas de projeto em um determinado momento. O
desenvolvimento" em paralelo sem que uma que está neste diretório nunca deve ser
interfira na outra. alterado.
Lembre-se que num sistema de controle de Colocando o Trac On line
versão nada é perdido, tudo que é adicionado
ou retirado é versionado e os O Trac é acessado via navegador web e
arquivos/diretórios/cópias e suas versões existem três formas de colocá-lo on line: como
continuam lá através do tempo, podem ser servidor standalone (embutido no próprio
recuperados a qualquer momento, Trac), via CGI ou fastCGI ou via mod_python
referenciando-os pelo número da versão. do apache. O melhor método é via
mod_python, contudo para simplificar
Então vamos completar nosso esquema de utilizaremos o método mais simples e que já
repositório: está disponível no Trac. O método de servidor
standalone é bastante flexível e tem como
$ mkdir esquema principal vantagem a indepêndencia de
$ cd esquema servidor web e a velocidade, tão rápida
$ mkdir trunk branches tags quanto pelo mod_python, segundo a
$ svn import . \ documentação. As desvantagens ficam por
file:///home/wasare/projeto1 \ conta dos poucos recursos e pela falta de
--message 'Esquema Inicial' suporte à HTTPS. Para levantar o servidor
Adding trunk execute:
Adding branches
Adding tags $ tracd --port 8080 \
Committed revision 1. home/wasare/trac-projeto1

Pronto temos nosso repositório preparado Para outros projetos adicione ao comando à
para funcionar. Agora podemos passar ao frente do último parâmetro o caminho
Trac. Para inicializar um projeto no Trac com completo para o outro projeto e assim por
PostgreSQL é necessário que já exista um diante (Consulte a documentação para mais
banco de dados previamente criado, como não recursos).
faz parte do escopo deste artigo tratar de
detalhes do PostgreSQL, vamos considerar Se não houve nenhum erro, aponte o seu
que já exista o famigerado banco com nome navegador predileto para
de trac_projeto1. http://localhost:8080, serão listados os
projetos on line. Selecione o projeto listado e
A configuração básica do Trac é bem simples, clique no menu "Browse Source" e confira se
o utilitário trac-admin implementa um vai aparecer uma listas com o esquema do
assistente que facilita o nosso trabalho, veja repositório criado (branches, tags e trunk).
os passos e a descrição logo em seguida:
Palavras finais
$ trac-admin \
/home/wasare/trac-projeto1 \
O Trac não possui internacionalização oficial,
initenv
existem apenas alguns templates traduzidos,
Project Name [My Project]> Projeto 1
você mesmo pode traduzi-los desde que saiba
Database connection string \
[sqlite:db/trac.db]> \ o que esteja fazendo. Se for traduzi-los ou
postgres://\ pegar algum já pronto tome cuidado pois
user:senha@localhost/\ estes tem relação direta com a
trac_projeto1 funcionalidade(lógica) do sistema e não é
Path to repository [/var/svn/test]> \ apenas na apresentação, e as alterações entre
/home/wasare/projeto1 as versões são muitas. Os templates se
Templates directory \ encontram em /usr/share/trac/templates para
[/usr/share/trac/templates]> todos os projetos ou em /home/wasre/trac-
projeto1/templates para o projeto em questão,
No comando inicial passamos como parâmetro pode-se ter templates global ou local, este
o caminho completo (com o diretório) onde último com maior prioridade.
será criado o ambiente Trac para o projeto 1,
o diretório também é criado no processo. Na Agora você pode personalizar o ambiente Trac
sequência o assistente solicita os outros do seu projeto ao seu gosto e ter tudo muito
parâmetros como o nome do projeto, a string bem organizado. Desta forma vai sobrar mais
de conexão com o banco onde deverá ser tempo para se concentrar apenas no
substituido por valores corretos: user, senha e desenvolvimento em si, nada de ficar mais
trac_projeto1 (usuário do banco, a senha e o gastando o seu precioso tempo com
nome do banco, respectivamente), o caminho documentação das mudanças e dos arquivos
para o repositório (o qual criamos do projeto.
anteriormente) e o diretório de templates o
qual deixamos padrão (ENTER). Wanderson Santiago dos Reis
<wandersonsreis@gmail.com>
Instalando o Por segurança não criaremos um binário com
vínculos à bibliotecas do sistema:

$ gmake mlnet.static

mldonkey no Não é necessário no caso do slackware o


"gmake install", pois o único arquivo que
iremos utilizar é o binário "mlnet.static",
portanto basta copiá-lo para o local onde
iremos armazená-lo, ou seja /usr/bin:

slackware # chown 0.bin mlnet.static


# chmod 755 mlnet.static
# mv mlnet.static /usr/bin
Introdução
Por questões de compatibilidade podemos
mldonkey é um cliente para compartilhamento (opcionalmente) adicionar os links
simbólicos listados no Makefile:
de arquivos (P2P) que é capaz de acessar
praticamente todas as principais redes
# cd /usr/bin
existentes. Dentre estas redes cito as
# for i in \
principais: Edonkey (ed2k), FastTrack
mlslsk mldonkey mlgnut \
(Kazaa), Bittorrent, Gnutella/Gnutella2
mldc mlbtl; do \
(LimeWire), Overnet, SoulSeek, etc. É ln -sf mlnet.static $i; done
considerado também o mais avançado cliente
da ed2k (eDonkey).
Finalizado o processo de compilação
preparamos o sistema para que a execução do
O código fonte do último release estável
binário em questão seja mais segura e
encontra-se em:
compatível com os padrões do Slackware.
http://download.berlios.de/pub/\
3. Configurando
mldonkey/spiralvoice
Criamos um usuário com ID alta e sem acesso
Instalando
à shell no sistema (segurança):
Após efetuarmos o download extraímos os
# useradd -u 1500 -s \
arquivos: /usr/bin/mlnet.static \
-d /home/mldonkey mldonkey
$ tar xjf mldonkey-2.7.1.tar.bz2
# mkdir /home/mldonkey
# chown mldonkey.users \
Entramos no diretório com o código fonte: /home/mldonkey -R
$ cd mldonkey-2.7.1
Feito isto criamos um arquivo de
configurações contendo diversas variáveis
No diretório "packages" há um SlackBuild necessárias às regras de firewall e execução
para a construção de um pacote para o do script de incialização:
slackware, neste artigo descreveremos em
detalhes vários pontos específicos que ainda #!/bin/sh
não foram inclusos neste SlackBuild, #
portanto não iremos utilizá-lo. Fica então # mldonkey.conf (Global variables for
como dica para quem não quiser fazer tudo # MLDonkey scripts).
manualmente. # Herbert Alexander Faleiros
# <herbert@faleiros.eti.br>
Em seguida geramos os scripts de #
configuração:
USER=mldonkey
$ (cd config && autoconf) HOME=`cat /etc/passwd | \
grep $USER | cut -d: -f6`
Preparamos os arquivos para serem
compilados e compilamos o código fonte: HOST=`cat /etc/HOSTNAME | \
cut -d" " -f1`
$ echo yes | CFLAGS="-O2 \ HTTP_PORT=`cat $HOME/downloads.ini |\
-march=i486 -mcpu=i686" \ grep http_port | \
./configure --disable-gui \ tr -d "a-z=_ "`
--build=i486-slackware-linux
ED2K_TCP=`cat $HOME/donkey.ini |\ case $1 in
grep "port =" |tr -d "a-z= " |\ start)
sed -n 1p` mlstart
ED2K_UDP=`expr $ED2K_TCP + 4` ;;
stop)
FASTTRACK=`cat $HOME/fasttrack.ini |\ echo "Stoping MLDonkey properly."
grep "port =" | tr -d "a-z=_ "` mlstop &>/dev/null
;;
C_BITTORRENT=`cat \ restart)
$HOME/bittorrent.ini | \ mlstop; sleep 1; mlstart
grep "client_port =" | \ ;;
tr -d "a-z =_"` *)
T_BITTORRENT=`cat \ echo "Usage: $0 start|stop|restart"
$HOME/bittorrent.ini | \ exit 1
grep "tracker_port =" | \ ;;
tr -d "a-z =_"` esac
GNUTELLA=`cat $HOME/gnutella.ini |\ Para ativarmos o script (simulando o
grep "port =" | \
comportamento de um "daemon"):
tr -d "a-z =_" | sed -n 1p`
# chmod +x /etc/rc.d/rc.mldonkey
G2=`cat $HOME/gnutella2.ini | \
grep "port =" | \ Acrescentamos ao /etc/rc.d/rc.local o
tr -d "a-z =_" | sed -n 1p` seguinte (se quiser que o MLDonkey seja
executado durante a inicialização do sistema,
Em nosso script de firewall acrescentamos o claro):
seguinte (ex. liberar ed2k):
if [ -x /etc/rc.d/rc.mldonkey ]; then
if [ -x /etc/rc.d/rc.mldonkey ]; then /etc/rc.d/rc.mldonkey start
. /etc/mldonkey.conf fi
$IPTABLES -A INPUT -p tcp -i $EXIF \
--dport $ED2K_TCP -j ACCEPT E ao /etc/rc.d/rc.6 (antes de executarmos
$IPTABLES -A INPUT -p udp -i $EXIF \ o hwclock, por ex.) o seguinte:
--dport $ED2K_UDP -j ACCEPT
fi if [ -x /etc/rc.d/rc.mldonkey ]; then
/etc/rc.d/rc.mldonkey stop
Neste caso IPTABLES é /sbin/iptables e fi
EXIF a interface de rede externa. Para liberar
Verificamos agora as permissões dos
o acesso às demais redes basta seguir o arquivos:
exemplos acima. Em seguida criamos nosso
script de inicialização: # chown 0.0 \
/etc/rc.d/rc.firewall \
#!/bin/sh /etc/rc.d/rc.mldonkey \
# /etc/mldonkey.conf
# rc.mldonkey (MLDonkey - Slackware # chmod 744 \
# style init script). /etc/rc.d/rc.{firewall,mldonkey}
# Herbert Alexander Faleiros # chmod 644 /etc/mldonkey.conf
# <herbert@faleiros.eti.br>
# Caso o mldonkey nunca tenha sido executado,
inicie o "daemon" e o finalize em
. /etc/mldonkey.conf seguida (necessário para que sejam criados
todos os arquivos utilizados pelos
function mlstart() { scripts descritos acima).
echo "Starting MLDonkey."
cd $HOME && su $USER &>/dev/null & Feito isto execute o /etc/rc.d/rc.firewall
} e em seguida o /etc/rc.d/rc.mldonkey.

function mlstop() { Como frontend sugiro a utilização do


OPTS="--spider --quiet" kmldonkey. Um SlackBuild para o mesmo se
for CMD in commit save kill; do encontra aqui:
wget $OPTS \
"http://$HOST:$HTTP_PORT/\ http://www.faleiros.eti.br/\
submit?q=$CMD" SlackBuild/kmldonkey
done
} Herbert Faleiros aka ratmmmam
<herbert@faleiros.eti.br>
Automatizando a Reordenação de 'N'
Interfaces de Rede Depois de realizar várias tentativas, descobri
que manualmente, duas a duas, funcionava a
Na rede que administro, o acesso à in-
troca de índices das placas. Para isso, usei
ternet é feito através de 2 links dedica-
uma eth3 (fictícia), lembrando que minha
dos de 1 Mbps com balanceamento de carga.
máquina tem a eth0, eth1 e eth2, ou seja, usei
Tive, por muito tempo, problemas de
uma eth'X' que estivesse livre, para servir,
organização das NICs, já que sempre usei
como se fosse uma variável auxiliar de troca
kernel monolítico em meus firewalls, para
(como no conhecido algoritmo de ordenação
evitar backdoors e rootkits baseados em
Bubble Sort).
módulos, como o LKM, e, devido a isso,
de nada adiantava configurar o arquivo
Mas então, por que o 'nameif -s' com o
/etc/modules.conf, tentando ordenar as
/etc/mactab não funcionavam no meu sistema?
placas, afinal, não existem módulos nessa
Explicação: supondo que as interfaces que
situação: tudo está em um único bloco.
trocariam seus índices fossem a eth0 e eth1, o
'nameif -s' usaria a eth2, como variável
Certo dia, acessei o site da Slackwarezine e
auxiliar, para realizar a ordenação, porém
fiz o download das revistas que eu ainda não
essa eth2 não poderia existir fisicamente no
tinha. Para minha sorte, havia na edição 8.5o
computador. Como no meu firewall, havia a
e na 9o uma matéria exatamente sobre o
terceira placa de rede (eth2), ligada ao outro
assunto. Pois bem, pus a mão na massa,
link internet, o 'nameif -s', ao invés de usar
seguindo o artigo, mas, mesmo depois de ler a
uma eth3 (livre), usava a eth2. Devido a isto,
errata da edição 9o, a troca de interfaces dava
aparecia na tela uma mensagem de erro,
'pau'. E aí?
informando que a eth2 estava ocupada e a
ordenação não era realizada. A partir daí,
Novamente mãos à obra, verifiquei que o
para resolver o problema, decidi criar o pior
nameif em conjunto com o arquivo
cenário possível de tal forma que me
/etc/mactab somente funcionavam, se apenas
obrigasse a trocar os índices de 'N' placas,
houvesse 2 placas de rede (a máquina tem
passando a montar o script abaixo, para
três, uma em cada link e mais uma para a
realizar a ordenação automática dessas 'N'
rede interna).
placas.

Autores
Yucatan "Kenjiro" Costa, Bacharel em
Eduardo Braga, é Técnico Judiciário /
Ciência da Computação e Pós-Graduado
Operação de Computadores da SJRJ (Justiça
(Especialista) em Programação Avançada e
Federal) e presta suporte técnico a técnicos e
Redes. Trabalha como Administrador de Redes
usuários em geral. Usa GNU/Linux há algum
da Escola Técnica Alto Jacuí. Árduo defensor do
tempo. Fâ do Slackware. Atualmente, estudando
Slackware Linux, botou as mãos em um
Redes de Computadores na Estácio
computador pela primeira vez em 1985 (um CP-
de Sá.
500), mas só teve contato com Linux em 1997
(Slackware Linux 3.0)
Herbert Alexander Faleiros (aka
ratmmmam), programador, graduando em
Wanderson Santiago dos Reis, Estuda e
Física pela UFSCar. Seu primeiro contato com o
trabalha com Linux e Software Livre desde
Slackware ocorreu em 2000. Atualmente
2000. É Técnico em Informática e atualmente
trabalha desenvolvendo soluções emJava para
cursa o 6º período de Graduação Tecnológica
servidores de aplicações.
em Informática no Agronegócio no CEFET -
Bambuí ( MG ), onde também trabalha com
Nivio Souza. trabalha com Linux, desde 1999,
programação e soluções em Software Livre.
e com Slackware, desde 2004. É aluno do 5°
Acredita que a adoção e desenvolvimento de
período do Curso de Ciência da Computação da
Sistemas Livres por governos e empresas é um
Universidade Católica de Petrópolis e nerd nas
caminho seguro para a evolução do
horas vagas.
conhecimento.
#!/bin/bash # MAC Address que você quer na eth'N'
# MAC_DES[N]="FF:FF:FF:FF:FF:FF"
#---------------------------------------
# Ordenador Automático # MAC_ENC[X] = MAC Address encontrado
# para 'N' Placas de Rede # na eth'X'
#---------------------------------------
# # Verifica os índices 'N' das interfaces
# rc.cheth version 1.0 is a changer # de rede existentes (eth'N')
# name (eth'N') to rearrange NICs. IETH=`$IFC | grep eth | /bin/cut -c 4`
# Copyright (C) 2006 - Nivio Souza
# <capnivio@gmail.com> # Verifica quais são os MAC Address
# # reais que o sistema atribuiu as NICs
# This script is free software; you can count=0
# redistribute it and/or modify it under for i in $IETH
# the terms of the GNU General Public do
# License as published by the Free MAC_ENC[$i]=`$IFC eth$i | \
# Software Foundation; either version 2 grep HWaddr | \
# of the License. tr -s " " | cut -f 5 -d " "`
# count=$((count+1))
# This script is distributed in the done
# hope that it will be useful, but #Ordena as NICs duas a duas
# WITHOUT ANY WARRANTY; without even the ordenar_ETHS()
# implied warranty of MERCHANTABILITY or {
# FITNESS FOR A PARTICULAR PURPOSE. See /sbin/nameif eth$count \
# the GNU General Public License for ${MAC_ENC[$i]}
# more details. /sbin/nameif eth$i ${MAC_DES[$i]}
# /sbin/nameif eth$j ${MAC_ENC[$i]}
# You should have received a copy of the }
# GNU General Public License along with # Verifica quais trocas de MAC Address
# this script; if not, write to the # precisam ser realizadas (Bubble Sort)
# for i in $IETH
# Free # Software Foundation, Inc., do
# 51 Franklin Street, Fifth Floor, Boston, for j in $IETH
# MA 02110-1301, USA do
if [ "$i" != "$j" ]; then
# if [ "${MAC_DES[$i]}" == \
# Configuração "${MAC_ENC[$j]}" ]; then
# $IFC eth$i down
# Este script necessita ser chamado $IFC eth$j down
através ordenar_ETHS
# do arquivo /etc/rc.d/rc.local AUX=${MAC_ENC[$i]}
# MAC_ENC[$i]=\
# Apesar de outras fontes recomendarem o ${MAC_DES[$i]}
# uso da chamada do 'nameif' no MAC_ENC[$j]=$AUX
# /etc/rc.d/rc.inet1, ele somente fi
# funcionou para kernel monolítico e fi
# também, para modular, quando chamado done
# do rc.local. done
# # Se tudo deu certo, reinicia a rede
# Portanto coloque a seguinte entrada no # com as placas reordenadas.
# arquivo /etc/rc.d/rc.local: . /etc/rc.d/rc.inet1 restart
#
# if [ -x /etc/rc.d/rc.cheth ]; then # Verificando, se as trocas foram
# . /etc/rc.d/rc.cheth # efetuadas corretamente.
# fi erro=0
for i in $IETH
# Anunciando o servico do
printf "Ordenando as placas de rede, \ MAC_ENC[$i]=`$IFC eth$i | \
conforme conveniência ..." grep HWaddr | \
tr -s " " | cut -f 5 -d " "`
# Variáveis de ambiente if [ "${MAC_DES[$i]}" != \
# Localização do aplicativo ifconfig "${MAC_ENC[$i]}" ]; then
IFC="/sbin/ifconfig" erro=1
fi
# MAC Address que você quer (DES - done
# desejado) na eth0
MAC_DES[0]="AA:AA:AA:AA:AA:AA" if [ $erro -eq 0 ]; then
printf " [ OK ]\n"
# MAC Address que você quer na eth1 else
MAC_DES[1]="BB:BB:BB:BB:BB:BB" printf " [FALHOU]\n"
fi
# MAC Address que você quer na eth2
MAC_DES[2]="CC:CC:CC:CC:CC:CC" Nívio Souza <capnivio@gmail.com>
Configurando o Kernel para
HD SATA e Controladora SiI 3112A
(Asus A7N8X-DeLuxe)
Recentemente adquiri um HD SATA (um Compile o kernel com os comandos de sua
Samsung que não lembro o modelo) e queria preferência e vamos à configuração do lilo.
colocá-lo pra funcionar em minha máquina,
junto com os dois HDs IDE e dois drives (DVD Por que mexer no lilo? Bom, no meu caso
e CDRW) que tenho. Bom, segundo me em particular tudo funcionou bem após a
disseram funcionaria. Então resolvi botar a compilação do kernel e reinicialização do
mão na massa. computador.

Ah, favor notar que não estou falando em AID O problema é que meu slackware levava em
aqui. Estou apenas colocando um HD SATA torno de três (3) minutos para inicializar.
para funcionar junto com outros dois HDs Rídiculo não? Então resolvi prestar atenção
IDE. nas mensagens da inicialização e vi que ele
gastava mais de 2 minutos tentando detectar
Meu Hardware se havia um outro HD SATA na controladora
secundária (o que não existia).
● Mother Board -> ASUS A7N8X-Deluxe
(controladora SATA Silicon Image SiI Por isso precisamos dar uma "fuçadinha" na
3112A) configuração do lilo de forma a informar o
● HD Samsung (SATA) kernel que NÃO EXISTE OUTRO HD SATA.
Se na sua configuração de hardware houver
Meu Software outro HD SATA, desconsidere este próximo
passo.
● Slackware 10.2
● Kernel 2.6.14.3 Edite o lilo.conf e insira a seguinte linha:

Primeiro é necessário checar se o suporte a append="hdg=noprobe"


SATA está habilitado (fisicamente) em sua
placa mãe. Verifique a posição do jumper (se já houver um 'append' no seu lilo.conf,
SATA_EN1. Ele deve estar em '1 2' (qualquer apenas adicione aquele parâmetro no final da
dúvida verifique o manual da placa mãe). linha, deixando um espaço em branco entre os
parâmetros)
Então agora vamos verificar a configuração
do kernel. Pronto, instale o lilo (com o comando
'lilo'), reinicie a máquina e agora é só
cd /usr/src/linux diversão ;)
make menuconfig
Qualquer dúvida ou sugestão mande um
-Device Drivers ---> email. Ah! Não esqueça de me avisar se
--ATA/ATAPI/MFM/RLL support --->
conseguiste fazer alguma outro modelo ou
--- <*> Silicon Image chipset support
marca de Mother Board funcionar.
--SCSI device support --->
---SCSI low-level drivers ---> May the Force be with you!
----<*> Serial ATA (SATA) support
Yucatan "Kenjiro Tanaka" Costa
----<*> Silicon Image SATA support <yucatan@globo.com>

Anda mungkin juga menyukai