Framebuffer e driver da nvidia em harmonia (para Debian)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Framebuffer e driver da nvidia em harmonia (para Debian)
por Aline de Freitas
Eu já não tinha mais esperanças de usar framebuffer, uma vez que os
drivers do kernel rivafb e nvidiafb não funcionam bem com o driver
proprietário da nvídia (indispensável para aceleração 3D). Para quem
tem placa com saída para TV (como eu) não consegue usufruir nem do
genérico vesafb. Isso porque devido a um conflito deste driver com o
proprietário da nvidia o console fica inutilizável. As únicas
"soluções" que encontrei pela net eram no sentido de desabilitar a
saída de TV, mas peraí, eu USO essa saída para a minha TV. Então
finalmente a solução para o momento é o driver uvesafb
(http://dev.gentoo.org/~spock/projects/uvesafb/index.php)
Ele ainda está em fase RC (release candidate) mas para mim funciona
perfeitamente. Para instalar o driver é preciso aplicar um patch no
kernel, recompilar o kernel, compilar sua própria versão da biblioteca
klibc, compilar o utilitário v86d, recompilar mais uma vez o kernel,
reiniciar e curtir o framebuffer! Compilar e recompilar em um ambiente
como o gentoo é bastante simples. No debian, as coisas podem parecer
um pouco complicadas, mas... nem tanto!
1. Entre no site:
http://dev.gentoo.org/~spock/projects/uvesafb/index.php e baixe a
última versão do patch uvesafb (no momento em que escrevo este
tutorial o patch é uvesafb-0.1-rc2-2.6.22-rc6.patch
$ cd /tmp
$ wget
http://dev.gentoo.org/~spock/projects/uvesafb/archive/uvesafb-0.1-rc2-2.6.22-rc6.patch
2. Baixe a versão do kernel correspondente ao patch disponível (no
momento é 2.6.22-rc6)
$ wget
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.22-rc6.tar.bz2
3. Descompacte o kernel e aplique o patch (como root)
# su
(sua senha de root)
# mv linux-2.6.22-rc6.tar.bz2 uvesafb-0.1-rc2-2.6.22-rc6.patch /usr/src
# tar -xjvf linux-2.6.22-rc6.tar.bz2
# ln -s linux-2.6.22-rc6 linux
# cd linux
# patch -p1 <../patches/uvesafb-0.1-rc2-2.6.22-rc6.patch
4. Configure o kernel
# cp /boot/config-($uname -r) /usr/src/linux/.config
# make menuconfig (ou use make gconfig, ou xconfig... o q achar mais
prático :))
Em "Device Drivers" selecione "Connector - unified userspace <->
kernelspace linker" e ainda dentro de "Device Drivers" entre em
"Graphics support" selecione "Userspace VESA VGA graphics support"
5. Compile o kernel (do geito debian)
# make-kpkg kernel_image
Se você instalou os drivers da nvidia pelo sistema de pacotes do
debian ou possui outros modulos à parte, como alsa-modules o mais
adequado agora é na verdade o comando a seguir:
# make-kpkg kernel_image modules_image
# mv /lib/modules/$(uname -r) /lib/modules/$(uname -r).old; cd ..
# dpkg -i linux-image-2.6.22-rc6... ... .deb nvidia-kernel... ... .deb
(se tiver)
E reinicie...
6. Agora é hora de compilar as bibliotecas klibc contra seu próprio
kernel. É melhor fazer também do geito debian... É recomendável
utilizar a versão mais recente do klibc (no momento 1.5). Ela está
disponível na unstable. Se você usa testing, acrescentar o klibc-1.5
não vai fazer muito mal. Se você usa stable, pare tudo! O que diabos
vc está fazendo querendo instalar um driver ainda na condição de
"release candidate"?
Remova os binários
# apt-get remove libklibc libklibc-dev klibc-utils initramfs-tools
Uma pasta pra ajudar na organização...
# mkdir ~/sources; cd ~/sources
# apt-get source libklibc
# cd klibc-1.5
Se tiver algum diretório linux dentro dos sources do klibc remova.
Então crie um link simbólico para seu novo kernel
# ln -s /usr/src/linux-2.6.22-rc6 /root/sources/klibc-1.5/linux
E compilemos com o "debian way"
# debian/rules binary
E initramfs...
# cd ../initramfs-tools-0.88
# debian/rules binary
Agora instalamos os binários do diretório ~/sources
# dpkg -i libklibc_1.5-2_amd64.deb libklibc-dev_1.5-2_amd64.deb
klibc-utils_1.5-2_amd64.deb
# apt-get install initramfs-tools
Baixe e compile o v86d do site
http://dev.gentoo.org/~spock/projects/uvesafb/index.php (adicione meu
patch para debianizar)
$ cd /tmp
$ wget
http://dev.gentoo.org/~spock/projects/uvesafb/archive/v86d-0.1-rc2.tar.bz2
# wget http://baderna.birosca.org/~aline/v86d/debian-v86d-0.1-rc2.patch
# tar -xjvf v86d-0.1-rc2.tar.bz2
# cd /usr/local/src/v86d-0.1/
# patch -p1 <../debian-v86d.patch
# chmod u+x debian/rules
# debian/rules binary
# cd ../
# dpkg -i dpkg -i v86d_0.1_amd64.deb
7. Finalmente recompilar o kernel...
Em "General Setup" selecione "Initial RAM filesystem and RAM disk
(initramfs/initrd) support" e use /usr/local/src/v86d-0.1 em
"Initramfs source file(s).
8. E de novo
# make-kpkg kernel_image modules_image
9. Adicione video=uvesafb:1024x768-32,mtrr:3,ywrap em
/boot/grub/menu.lst ou /etc/lilo.conf
No caso do grub, eu acrescento isso em
# defoptions=video=uvesafb:800x600-32,mtrr:3,ywrap
e depois execute update-grub
10. Reinicie e curta o seu novo uvesafb!
http://birosca.org/moin/uvesafb
- --
Aline de Freitas - Chave pública: ID DE632016 / keys.indymedia.org
gpg --keyserver keys.indymedia.org --recv-keys DE632016
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFGi+J/hLRvs95jIBYRApsfAJ47Uc3tn9IWua2QGRtlbjDQFI36kQCdF2yL
WW/kelQ4S6T/XTD9o551rO0=
=zVTW
-----END PGP SIGNATURE-----
Reply to: