Aventuras e desventuras com o kernel 2.6

Resolvi escrever este artigo para falar da minha experiência com os novos "kernels" (ou seria "kerneis"???) da série 2.6.x. Das coisas que eu consegui fazer funcionar e das demais que me forçam a manter o meu bom e velho 2.4.29 ativo.

[ Hits: 20.046 ]

Por: Carlos em 02/05/2005 | Blog: http://nullterminated.livejournal.com/


Fazendo tudo funcionar



Lilo


Por motivo de segurança, mantive uma opção no menu do Lilo para que eu pudesse voltar a versão anterior do kernel caso fosse necessário:

#/etc/lilo.conf

image=/boot/vmlinuz-2.6.4-bs
        root=/dev/hda1
        label=Slackware-2.6
        initrd=/boot/initrd.splash
        read-only

image=/boot/vmlinuz
        root=/dev/hda1
        label=Slackware-2.4
        read-only

BootSplash


Este funcionou que foi uma beleza. Assim que eu reiniciei o PC após ter "instalado" o novo kernel, o boot gráfico foi apresentado sem problemas! Por conta das alterações que fiz no scripts de inicialização rc.S (Single User), rc.M (Multi User) e rc.6 (RunLevel 6 = Desligar/Reiniciar), para que a barra de progresso do BootSplash funcionasse, precisei adicionar uma condição que "descobrisse" qual a versão do kernel que estava sendo utilizada no momento para evitar mensagens de erro quando o sistema fosse iniciando pelo kernel 2.4.29:

RELEASE=`uname -r`
case $RELEASE in
(2.4.*) KERNS=1 ;;
(2.6.*) KERNS=2 ;;
(*) KERNS=3 ;;
esac
...
if [ $KERNS -eq 2 ]; then
    progressbar 20
fi

Voltarei a utilizar este artifício mais a frente para evitar que alguns módulos e configurações específicas do kernel 2.6.10 interferissem nas do kernel 2.4.29 e vice-versa.

Para baixar o BootSplash:
Configurando o BootSplash:

Tablet Genius WizardPen USB


Este funcionou perfeitamente! Ainda na inicialização do sistema com o novo kernel, percebi que o LED do tablet parou de piscar e ao entrar no X pude controlar o cursor com a caneta. A sensibilidade à pressão funcionou perfeitamente no GIMP. Mas nem tudo são flores: No GIMP a sensibilidade à pressão só funciona corretamente quando estamos utilizando o GNOME. No XKCE e no KDE funciona meia-boca. Precisei ainda fazer um arranjos técnicos para que após a inicialização o tablet funcione corretamente.

#/etc/rc.d/rc.modules

RELEASE=`uname -r`
case $RELEASE in
(2.4.*) KERNS=1 ;;
(2.6.*) KERNS=2 ;;
(*) KERNS=3 ;;
esac
...
if [ $KERNS -eq 2 ]; then
    /sbin/modprobe evdev
    /sbin/modprobe acecad
fi
#/etc/rc.d/rc.local

RELEASE=`uname -r`
case $RELEASE in
(2.4.*) KERNS=1 ;;
(2.6.*) KERNS=2 ;;
(*) KERNS=3 ;;
esac
...
if [ $KERNS -eq 2 ]; then
    /sbin/modprobe -r evdev
    /sbin/modprobe -r acecad
    /sbin/modprobe evdev
    /sbin/modprobe acecad
fi

Como podem perceber, tive que adicionar, remover e posteriormente adicionar novamente os módulos acecad (módulo do Tablet em si) e evdev ("event device") para que funcionassem perfeitamente.

Instruções mais detalhadas de como proceder para fazer seu Tablet Genius WizardPen USB funcionar em:

CD-ROM/CD-RW


Não é preciso fazer muita bruxaria, mas algumas pessoas podem ter dificuldades. No Kernel 2.4.29 é necessário simular um dispositivo SCSI para poder utilizar a gravadora de CD, o que é feito pelo módulo "ide-scsi". Já que no Kernel 2.6.10 não é mais necessário a emulação SCSI, coloquei a linha que carrega o módulo dentro de uma condição.

if [ $KERNS -eq 2 ]; then
    /sbin/modprobe ide-scsi
fi

PS: Tem uma alteração que ainda não quebrei a cabeça para automatizar um pouco mais. Por conta da emulação SCSI, no lilo.conf tenho a seguinte referência:

append="hdd=ide-scsi hdc=ide-scsi"

Que deve ser comentada com "#" e depois as configurações atualizadas na MBR com o comando "lilo".

Uma coisa estranha que acontece é que os links simbólicos que eu crio para determinados dispositivos como CD-ROM e CD-RW não persistem após o sistema ser reiniciado. Por isso adotei uma solução suja, mas que resolveu o problema enquanto não penso em algo mais "limpo".

#/etc/rc.d/rc.local

if [ $KERNS -eq 2 ]; then
    ln -sf /dev/hdc /dev/cdrom
    ln -sf /dev/hdd /dev/cdrw
fi

Máquina Digital


Uma coisa que me causou estranheza foi o fato de os dispositivos "sda" não estarem presentes. Para quem não sabe, eles são utilizados para "montar" dispositivos portáteis de armazenamento, tais como memory keys e algumas máquinas digitais. A solução também foi simples, bastou criá-los!

# mknod /dev/sda b 8 0
# mknod /dev/sda1 b 8 1
# mknod /dev/sda2 b 8 2


A opção "b" indica que você esta criando um "block device".

OBS: O suporte a discos SCSI e USB MASS STORAGE tem que estar habilitado no Kernel.

O Famigerado Modem PCTel


Este foi meu único insucesso! Por conta da nova API para desenvolvimento e tratamento de LKM's (Loadable Kernel Modules, Módulos Carregáveis do Kernel) o meu antigo e confiável driver para modem's pct789, desenvolvido por Jan Stifter, não funciona mais com o Kernel 2.6.10. Em alguns fóruns, vi algumas citações de casos de sucesso do drive da SmartLink (voltado para modens AMR) com modens PCTel PCI. Não tive a mesma sorte! Eis a minha saga:

O primeiro problema pelo qual passei foi ao carregar o módulo "slamr". Tudo compilava direitinho, mas ao tentar carregar o módulo algumas mensagens de símbolos não exportados eram apresentadas. Encontrei então um patch que resolve o problema, permitindo que o módulo seja carregado.

Na raiz do diretório onde o driver foi descompactado digitei o seguinte comando:

# patch -p1 < slmodem-2.9.10-abby.diff

Compilei novamente e instalei o driver:

# make
# make install


Daí, consegui carregá-lo!!

# modprobe slamr

Mal consegui me conter de alegria!! :)

Após o modulo ser carregado, ele deveria criar um ou mais dispositivos slamrX, sendo X normalmente de 0 a 3. Mais uma vez não foi o que aconteceu! Tive que criar novamente os dispositivos "na unha"!

# mknod -m 660 /dev/slamr0 c 212 0
# mknod -m 660 /dev/slamr1 c 212 1
# mknod -m 660 /dev/slamr2 c 212 2
# mknod -m 660 /dev/slamr3 c 212 3


A opção "c" indica que você está criando um "Character Device"

Vi no "README" que o "Major Number" 212 condizia com dispositivos PCI. Então tentei carregar o daemon do modem:

# slmodemd /dev/slamr0 --country=BRAZIL 1> /dev/null 2>&1 &

Mais uma vez decepção!! Nenhum dos dispositivos podia ser aberto!! tentei com o slamr0, 1, 2 e 3... E nada!!!

Voltei a pesquisar na Internet! Vi mais uma vez, em um fórum que alguns conseguiram carregar o daemon apontando-o para um dispositivo serial, como exemplificado abaixo:

# slmodemd /dev/ttyS0 --country=BRAZIL 1> /dev/null 2>&1 &

Para quem não lembra, um paralelo DOS/Linux das portas do PC:
  • COM1 = /dev/ttyS0
  • COM2 = /dev/ttyS1
  • COM3 = /dev/ttyS2
  • COM4 = /dev/ttyS3

De fato o daemon carrega sem problemas, e cria um novo dispositivo "ttySL64" no diretório /dev. Criei um link simbólico "modem" para o dispositivo "ttySL64":

# ln -s /dev/ttyS0 /dev/modem

Tudo corria bem, até que... Ao testar o modem percebi que de forma alguma era possível "discar", a indefectível mensagem "NO CARRIER" sempre aparecia!

Mais uma vez, tentei carregar o daemon com todos os dispositivos ttyS0, 1, 2, 3... Fracasso, fracasso!!

Verifiquei se realmente as minhas portas seriais estavam sendo reconhecidas pelo sistema:

# cat /var/logs/messages | grep tty

E lá estavam elas: ttyS0 e ttyS1... Mas isso não foi a melhor notícia. Se elas não estivessem sendo reconhecidas, talvez significasse que o suporte a dispositivos seriais não houvesse sido habilitado no kernel, assim uma reconfiguração e recompilação resolveria o problema.

Bem, continuo tentando... Sei de um driver baseado no outrora escrito por Jan Stifter, na verdade um fork feita por Ricardo Wong, que prometia funcionar nos Kernels 2.6.x, mas parece-me que o seu desenvolvimento está um pouco parado... :(

Driver da SmartLink:
Patch para para o driver da SmartLink funcionar no Kernel 2.6.10:
Drivers PCTel para Kernel 2.4.x:
Driver do Ricardo Wong para Kernel 2.6.x:
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Fazendo tudo funcionar
   3. Considerações finais
Outros artigos deste autor

O Software Livre e a Soberania Nacional

KeepAlive para conexão discada (ou não)

Software livre, software comunitário!

Script "apagador de linhas"

Leitura recomendada

Compilação comentada do kernel

Experimento com Linux: Misturando Sabayon com Gentoo

Como mudar o logo no kernel 2.6

Compilar o kernel no Debian

Debian 3.1 (Sarge) - Atualizando pacotes para unstable e compilando um novo kernel

  
Comentários
[1] Comentário enviado por smoisesr em 02/05/2005 - 09:58h

Artigo nota 10.

Parabens

:)


[2] Comentário enviado por titã em 02/05/2005 - 11:07h


eu compilei o Kernel 2.6.o_ultimo_que_existe o startx não funfa. !

[3] Comentário enviado por Ilovelinux2004 em 02/05/2005 - 13:09h

Mas é kernels ou kernéis?

Surgiu a dúvida no ar agora.

[4] Comentário enviado por titã em 02/05/2005 - 14:23h

no meu caso eu uso o 2.4 original do Slack 10.1 e + o 2.6._ultimo_que_existe . mas o 2.6 não funfou legal o X

[5] Comentário enviado por daaugusto em 02/05/2005 - 16:03h

O plural de 'kernel' é 'kernels'. Kernel *não* é uma palavra portuguesa, portanto não se aplica a nossa regra gramatical para o plural de palavras terminadas com 'el'.

Contudo, pode-se usar palavras como cerne (cernes) e núcleo (núcleos) como uma tradução para o bom português de 'kernel'.

[6] Comentário enviado por removido em 02/05/2005 - 19:05h

é kérneis...
No português não existe plural de "erls" nem "gers".

kernel - kérneis...
hambúrger - hambúrgueres

colher - colheres
mulher - mulheres

é claro que para as palavras aportuguesadas...
Para as de grafia inglesa vale o plural inglês...
Aliás, seria quérnel... (paroxítonas terminados em l,n,r,x e ps são acentuados).

=======================

Mas seu artigo está legal. As agruras de quem tenta recompilar o "quérnel"... ;-))
Tente fazer isto no mandrake...
rapaz, estou até hoje tentando e não dá...
Eles mexem tanto no "quérnel" que ninguém consegue usar um genérico...


[7] Comentário enviado por caiovinic em 02/05/2005 - 21:45h

MUITO BOM ARTIGO!!!
E concordo plenamente com seus dois recados (apesar de ainda não ter conseguido migra totalmente...). Ainda estou mais apanhando que "batendo" mas, quanto mais eu uso Linux, mais me apaixono!

artigo nota 1000!
hehe

[8] Comentário enviado por agk em 04/05/2005 - 14:09h

Não encontrei maiores dificuldades quando migrei para o kernel 2.6, o maior problema foi saber o que marcar no menuconfig do kernel, depois de aprender como fazer foi fácil. Muitos dos meus periféricos passaram a funcionar e os que funcionavam ficaram melhores ainda. Um único detalhe é a minha "maldita", sim "maldita", placa de vídeo da "maldita" ATI que não funciona legal, pois funcionar ela até funciona, consegui configurar opengl, direct rendering depois de algum esforço, mas quando se trata de jogos ela simplesmente não funciona no Linux, toda vez que vou rodar qualquer jogo em tela cheia o monitor fica escuro e meu x é reiniciado e tenho que logar novamente. Meu monitor é um LG de 17" uso 1024x768 de resolução com 32bits de cor.

[9] Comentário enviado por osvaldomarquesjr em 20/05/2005 - 07:30h

Olá comunidade,

Passei a noite revirando e peneirando a internet em busca do tal "slmodem-2.9.10-abby.diff" e no único endereço referenciado por todos os sites recebo uma mensagem de "status: expired".

Seria possível alguém que o tenha baixado disponibilizá-lo para atrasados como eu?

Antecipada e profundamente agradeço.

Osvaldo

[10] Comentário enviado por pscnuke em 01/06/2005 - 13:43h

Olá,
tb não consigo achar o oatch para para o driver da SmartLink, o link citado não existe mais !

Alguém pode apontar outro endereco ?

Paulo
pscnuke@yahoo.com.br


[11] Comentário enviado por pscnuke em 01/06/2005 - 14:42h

Achei outro link para o patch:

http://www.mwmu.com/mw/computers/linux/dell600m/ ou
http://www.fedoraforum.org/forum/showthread.php?p=265409#post265409

Paulo
pscnuke@yahoo.com.br

[12] Comentário enviado por bones_pf em 13/06/2006 - 22:14h

olá pessoal!
Para esses que estão com problema para iniciar o X após a recompilação do kernel eh preciso reinstalar o driver da placa de video, no meu caso da nvidia
flw..

[13] Comentário enviado por GilsonDeElt em 24/12/2006 - 12:46h

Muito bom!
Sê teve a manha!
Uma pergunta:
O Slackware 11 é instalado com kernel 2.4.33.3.
Quais as vantagens de atualizar para 2.6.x?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts