sexta-feira, julho 28, 2006

Slackware 11" esta perto

Estamos chegando perto do 11.0 amigos. Espero ter um changeset maior logo, mas por enquanto isto deve ser legal para 'brincar', enquanto trabalho na lista de afazeres; atualizando, compilando e com testes iniciais.", diz Patrick Volkerding no changelog do 'current'. O Slackware 11.0 considerará a série 2.6.16.x do kernel como suportada, mas Patrick informa que deverá manter o bare.i do kernel 2.4.32 como default (ou talvez sata.i) pela ótima performance e provavelmente melhor segurança devido ao design mais simples e mais testado.
Patrick finaliza agradecendo à esposa por ter compilado os pacotes desta última atualização.

Maiores informações em:
http://www.noticiaslinux.com.br/nl1153107394.html
Fonte Original (inglês): http://www.slackware.org/changelog/current.php?cpu=i386
Leia mais em http://www.underlinux.com.br/content/view/6135/59/

quinta-feira, julho 13, 2006

Instalando e Configurando Modem Motorola SM56 - Adaptado

Instalando e Configurando Modem Motorola SM56 Imprimir
24 de março de 2005
Este documento tem como objetivo, auxiliar os usuarios do Modem sm56 da Motorola a instalarem esse modem no Linux.
1.0 - SOBRE ESTE DOCUMENTO
2.0 - INTRODUÇÃO
3.0 - O QUE É NECESSÁRIO?
4.0 - INSTALANDO.
5.0 - SE SEU KERNEL É MAIOR QUE 2.4.5
6.0 - POSSÍVEIS PROBLEMAS
7.0 - CONCLUSÃO


1.0 - SOBRE ESTE DOCUMENTO
Este documento é distribuí­do gratuitamente, seguindo
o FDL, e pode
ser distribuí­do e alterado, desde que você cite a
fonte. Você é bem vindo se quiser colaborar.

2.0 - INTRODUÇÃO

A mais ou menos um ano e meio atrás, foi criado um
artigo, e divulgado amplamente, sobre como
instalar e configurar o Modem sm56 da Motorola.
Na época, o kernel 2.4.0 havia acabado de ser
lançado, e a Motorola lancou o driver para tal modem,
sendo que foi unica e exclusivamente testado com o Red
Hat Linux 7.1.
Acontece que, como é costume no mundo do Software
Livre, as coisas andam depressa, e a cada semana e
a cada mês, surgem atualizações e correções.
Infelizmente, a Motorola nao conseguiu seguir o mesmo
ritmo, seja por falta de interesse ou por
qualquer outro motivo.
O que importa realmente, é que vários usuários
ficaram sem suporte,quando viram que o driver não
funcionava nas versões de kernel mais novas e acima do
2.4.5.
Na época, recebi vários e-mail's e continuo a
recebê-los, pedindo maiores detalhes sobre como
instalar e fazer funcionar tal modem.
Agora, com a ajuda de alguns amigos, finalmente é
possível configurar o modem para que ele funcione
em um kernel diferente do 2.4.5.
Agradecimentos a todos aqueles que me enviaram e-mail
e ao meu amigo Massimiliano Mirra.
Agradecimento especial a minha esposa Brenna. Ela é
minha revisora oficial ;^).

3.0 - O QUE É NECESSÁRIO?

Inicialmente, a primeira coisa a fazer, é ver sob
qual kernel seu sistema estatrabalhando.
Use o comando uname -r. Se este comando retornar um
kernel menor ou igual ao 2.4.5, vai até
a página da Motorola (www.Motorola.com) e pegue o
driver para o modem.
Caso o kernel seja maior do que o mencionado acima,
vá para seção
"5.0 - SE SEU KERNEL É MAIOR QUE 2.4.5".
Outra coisa que você deverá observar, é ter um
ambiente de desenvolvimento GNU instalado em seu
sistema, já que precisaremos dele para compilar o
driver corretamente.
Verifique, com o comando rpm -qa | grep gcc, se o
compilador GNU C está instalado.
Faça o mesmo para o cpp: rpm -qa | grep cpp.
Se você possuir um kernel acima do 2.4.5, você deverá
ter as fontesdo kernel do seu sistema insta-
lado, bem como o make, o automake, o autoconf, o tcl,
e o ncurses, pois teremos que recompilar o kernel.

4.0 - INSTALANDO

Esta parte diz respeito aqueles que tem um kernel
menor ou igual ao 2.4.5.
Uma vez efetuado o download e, como root, instale-o
com rpm -ivh sm56xxxx-i386.rpm.
Após, digite man sm56 e procure por qual código o seu
País se encaixa.
A lista é um pouco extensa:

1 = USA
2 = Canada
27 = South Africa
30 = Greece
31 = Netherlands
32 = Belgium
33 = France
34 = Spain
39 = Italy
41 = Switzerland
42 = Czech Republic
43 = Austria
44 = United Kingdom
45 = Denmark
46 = Sweden
47 = Norway
49 = Germany
52 = Mexico
54 = Argentina
55 = Brazil
57 = Columbia
58 = Venezuela
60 = Malaysia
61 = Australia
64 = New Zealand
65 = Singapore
66 = Thailand
81 = Japan
82 = Korea
84 = Vietnam
86 = China
90 = Turkey
351 = Portugal
352 = Luxembourg
353 = Ireland
354 = Iceland
358 = Finland
852 = Hong Kong
886 = Taiwan
962 = Jordan
972 = Israel

Depois que você instalar o driver, digite sm56setup,
seguido do
código do seu País.
Naturalmente para nós que moramos no Brasil, o código
escolhido será o 55.
Se este código for omitido será atribuí­do o código
padrão: 1 (USA).
O comando sm56setup compila o módulo que controla o
modem, adequado para seu kernel, que será
instalado em /lib/modules/[seu
kernel]/kernel/drivers/char.
O comando também adequa o seu /etc/modules.conf, que
ficará assim:

.......
.......
alias char-major-24 sm56
options sm56 country=1 ---> aqui poderá ser colocado o
código apropriado.

Ele também cria um dispositivo em /dev, chamando
sm56, criando um link para o /dev/modem, que aponta
para este dispositivo, bem como seta as permissões
adequadas.
Digite modprone sm56 e pronto, seu modem está
instalado!
Se seu kernel é superior ao 2.4.5, passe ao próximo
tópico.

5.0 - SE O KERNEL É MAIOR DE 2.4.5.

Primeiramente, quero agradecer ao meu amigo
Massimiliano Mirra, que me enviou esta dica.
Se você está usando uma distribuição moderna, como
Conectiva Linux8.0, Red Hat Linux 8.0,
Mandrake Linux 9.0 ou Slackware Linux 8.1, saiba que o
modem sm56 pode funcionar sob um kernel mais recente.
Estas distribuições citadas, a exceção do Mandrake
Linux 9.0, trazem um kernel 2.4.18.
Para este documento, eu utilizei o Mandrake 9.0, com
kernel 2.4.19.
Como comentado acima, será necessário fazer algumas
alteraçõesnas fontes do kernel e recompilá-lo
para que o modem funcione corretamente.
Vá até onde as fontes do kernel estão instaladas
(geralmente /usr/src/linux-2.4.X).
Entre no diretório mm.
Neste diretório estão as fontes para o tratamento da
memória.
Procure por um arquivo chamado slab.c.
Este arquivo deve ser alterado.
Abra-o com seu editor de texto.
Não darei explicações do por que ele deverá ser
alterado, pois nãosou um craque em programação C,
mas acho que deve ter algo com relação com a alocação
da memória pelo driver do Motorola.
Se alguém tiver alguma explicação e quiser
enviar, será prontamenteincluí­da nesta
documentação.
Vá até a linha 1116, e comente-a:

Ela está assim:
if (flags & ~(SLAB_DAM|SLAB_LEVEL_MASK|SLAB_NO_GROW))
BUG();
E deve ficar assim:
/* if (flags &
~(SLAB_DAM|SLAB_LEVEL_MASK|SLAB_NO_GROW))
BUG(); */

Depois disso, grave o arquivo e vamos compilar o
kernel.
Digite make menuconfig.
Perceba que se você não tiver o ncurses instalado,
este comando irá falhar.
Irá aparecer, depois de alguns momentos, um menu
baseado em ncurses,com botões, caixas e diálogos,
para que possamos escolher as opçÕes do kernel.
Recomendo fortemente que você deixe o seu kernel o
mais enxuto possí­vel.
Por exemplo, escolha um processador de acordo com a
sua máquina:se você tem um AMD, não faz
sentido escolher um Pentium MMX, pois alguns
parâmetros do processador poderá fazer diferença.
Tire tudo o que não for necessário para sua máquina:
bluetooth, PCMCIA, USB, entre outros, anão ser
que tais suportes sejam requeridos pelo seu sistema.
Outra idéia: se você não tem nenhuma placa de rádio e
não planeja adquirir uma, não há
necessidade de compilar um módulo para suportar tal
placa.
Outro suporte desnecessário em máquinas caseiras, é
suporte a ATM, a FDDI (fibra óptica), WAN,
APPLETALK, IPX, DECNET, etc., quando não é um
requisito essencial.
Retire tudo o que não seja estritamente necessário.
Depois de escolhidas as opções, tecle TAB, até cair
na opção Exit.
Tecle ENTER e será perguntado se você quer salvar as
alteraçÕes. Escolha SIM.
Agora digite make dep para criar as dependências
necessárias para compilar o kernel.
Depois que o comando se completar, digite make
bzImage, para construir a imagem do kernel.
Depois, digite make modules e make modules_install,
para construir e instalar os módulos
do novo kernel.
Pode sair para um cafezinho agora, pois este
comando poderá demorar, dependendo do porte de sua
máquina.
Terminado o comando anterior, o seu kernel estará em
/usr/src/linux-2.4.X/arch/i386/boot, com o nome
de bzImage.
Copie-o para o diretório /boot, dando-lhe outro nome,
como vmlinuz-custom.
Copie também o System.map, que está em
/usr/src/linux-2.4.X/System.map, para o diretório
/boot,
com um nome diferente, como System.map-custom.
No mesmo diretório, há um arquivo oculto chamando
.config.
Digite ls -a, para visualizá-lo.
Copie-o também para o diretório /boot, com um nome
diferente, como config-custom.
Entre no diretório
/usr/src/linux-2.4.X/include/linux.
Copie o arquivo kernel.h, para o diretório /boot, com
um nome diferente, algo como kernel.h-custom.
Agora, vá para o diretório /boot, e faça as
alterações necessárias.
Apague os links seguintes:
rm -rf config, rm -rf System.map, rm -rf vmlinuz e rm
-rf kernel.h
Crie agora os links para os arquivos novos:
ln -s config-custom config
ln -s System.map-custom System.map
ln -s vmlinuz-custom vmlinuz e por último
ln -s kernel.h-custom kernel.h

Agora, temos que alterar o arquivo /etc/lilo.conf, se
você estiver usando o LILO, como gerenciador
de inicalização.
Ele deve se parecer com isso:

boot=/dev/hda
map=/boot/map
vga=normal
default=linux
keytable=/boot/us-latin1.klt
prompt
nowarn
#vga = 791
timeout=100
message=/boot/message
menu-scheme=wb:bw:wb:bw
image=/boot/vmlinuz ---------------------------
label=linux |
root=/dev/hda1 |
# initrd=/boot/initrd.img | -> É aqui que devemos
fazer a alteração,
append="devfs=mount" | colocando o nome do kernel
(vmlinuz).
vga=791 | Comente a linha initrd, pois ela diz

read-only ------------------------------ respeito
somente ao kernel velho.

image=/boot/vmlinuz-seu-kernel-original-------------------
label=linux-nonfb |
root=/dev/hda1 | -> Mantenha esta linha,
alterando
initrd=/boot/initrd.img | apenas o vmlinuz, para
o nome com-
append="devfs=mount" | pleto do
seu kernel velho.
read-only-----------------------------------------
other=/dev/hdb2
label=windows
table=/dev/hdb
map-drive=0x80
to=0x81
map-drive=0x81
to=0x80
other=/dev/fd0
label=floppy
unsafe

Se você estiver usando o GRUB, altere as linhas
correspondentes.
Digite lilo, para que as alterações tenham efeitos.
É importante manter uma imagem do seu kernel
anterior, pois se alguma coisa não der certo,
você terá como inicializar seu sistema.
Reinicie a sua máquina, e espere ela inicializar com
o kernel novo.
Se tudo der certo, você deverá estar com seu kernel
recém compilado.
Para ter certeza, digite :
cat /proc/version.
Deve aparecer algo do tipo:

Linux version 2.4.19-16mdkcustom ( root@scoob.doo.comEste endereço de e-mail está sendo protegido de spam, você precisa de Javascript habilitado para vê-lo )

(gcc version 2.96 20000731 (Mandrake Linux 9.0
2.96-0.80mdk)) #1 Seg Dez 16 18:02:34 BRST 2002

Agora proceda da mesma maneira que no item 4.0.
Perceba que após o modprobe sm56, o driver não ficará
mais com aquela mensagem de initializing.
Verifique isto com lsmod.

Pronto! Seu modem está funcionando.
NOTA: Recebi informaçÕes que no kernel 2.4.20 e
superiores, não é necessário editar o arquivo
/usr/src/linux-2.4.20/mm/slab.c. Eu nãoo testei com
este kernel ainda. Assim que testá-lo, estarei
repassando,
ou alguém pode fazé-lo, certo?

6.0 - POSSÍVEIS PROBLEMAS.

I - Ao inicilizar, meu kernel diz "kernel panic .....
". O que é isso?

Esta mensagem aparece se seu kernel foi compilado sem
suporte ao seu sistema de arquivos do raí­z.
Por exemplo, se sua raí­z é XFS, e no kernel o
suporte ao XFS é via módulo, compile seu
kernel como suporte XFS intrínseco. O padrão do kernel
é assim:

SGI XFS filesystem support

[*] Enable XFS Realtime support

[*] Enable XFS Quota

Enable XFS DMAPI


Mude para:
SGI XFS filesystem support

[*] Enable XFS Realtime support

[*] Enable XFS Quota

Enable XFS DMAPI


Isto fará que o suporte ao XFS seja parte integrante
do kernel, não precisando de nenhum módulo
ser carregado.

II - Minha máquina trava quanto executo o minicom
ou outro aplicativo de dial-up. Por que?

Por motivos que desconheço, o modem Motorola não
gosta de ter outra porta serial habilitada.
Entre no setup da sua máquina, e deixe somente uma
porta serial habilitada, aquela correspondente
a seu mouse. Isso deverá resolver o problema.

III - Quando digito minicom ou uso o kppp, ele diz que
o /dev/modem não existe. E agora?

Se o /dev/modem não existir, pode ter ocorrido alguma
falha com o comando sm56setup.
Para não ter que executá-lo de novo, vá até o
diretório /dev , e crie o links para o dispositivo
/dev/sm56: ln -s sm56 modem.
Caso tal dispositivo não exista, crie com o comando
mknod /dev/sm56 c 24 0, e mude o dono/grupo e
as permissões, com o comando chown uucp.root /dev/sm56
e chmod a+rw /dev/sm56, respectivamente.


7.0 - CONCLUSÃO.

Bom eu acho que é isso.
Eu consegui fazer este modem funcionar em um Mandrake
Linux 9.0, recompilando o kernel 2.4.19.
Acredito que você também pode fazê-lo. Obrigado a
todos e continuem me mandando e-mail, pois farei
o possível para ler e responder a todos. Até +.

Gilberto Nunes
gilbertonunes@yahoo.com.brEste endereço de e-mail está sendo protegido de spam, você precisa de Javascript habilitado para vê-lo
Comentarios