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.
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.
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:
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:
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:
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... :(
[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!
[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?
[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..