[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: