Se você já leu meus dois primeiros posts sobre 10 bons motivos para utilizar Linux em seu Desktop, já sabe que eu pastei um pouco para colocar o Linux rodando redondo no meu novo Dell Vostro 5470.

Ao final deste artigo você saberá como:

  • Fazer o botão direito do touchpad funcionar corretamente;
  • Fazer a sua potente placa de vídeo Nvidia ter utilização no Linux;
  • Utilizar a saída HDMI/VGA com resoluções apropriadas;
  • Fazer o Wifi funcionar;

Confesso que é uma situação bem desagradável quando eu compro um novo Laptop e ao instalar o Linux nele, percebo que algo não está funcionando como deveria. Isso geralmente acontece quando se compra um hardware muito novo e que ainda não foi devidamente testado e homologado no Linux ou na distribuição que você escolheu instalar.
Nestes casos, vale a dica de utilizar distribuições que são mais atualizadas, como Ubuntu, Redhat e variantes (CentOS, Fedora, Caixa Mágica, etc), assim você terá mais chances do seu hardware ser detectado e funcionar corretamente.
Se for mais experiente com Linux, você já sabe que isso não vale para você.

A nova série Vostro da Dell é um caso como este. É uma linha bastante nova e eu já tive problemas logo depois da compra. Meu laptop demorou mais de 1 mês para ser entregue e a Dell me informou que o atraso aconteceu por conta de um problema detectado na linha de montagem da unidade de disco rígido (ops!).

Alguns dos problemas apresentados pelo meu Vostro 5470 após a instalação do Linux Caixa Mágica, uma distribuição baseada no Ubuntu 12.04:

  • Botão direito do touchpad (mouse) não funciona;
  • Ponteiro do mouse desaparece quando está sobre alguns botões (muito irritante);
  • Placa de vídeo Nvidia não foi reconhecida;
  • Apenas a resolução de vídeo 1366×768 está disponível, mesmo para a saída de vídeo HDMI;
  • Wifi não funciona;

OBS: A versão 64 bits do Caixa Mágica não funcionou corretamente no meu Vostro 5470. Muitos programas entravam em zombie state, por isso instalei a versão 32 bits.
Lembrando: estes passos são direcionados para distribuições Ubuntu 12.04 ou variantes baseadas nesta versão.

Vídeo

Este Laptop possui um nova tecnologia da Nvidia chamada Optimus. Esta tecnologia tráz 2 chipsets de vídeo, um chipset Intel i910 e outro Nvidia. O chipset Intel é o que funciona no frontend a maior parte do tempo, por isso que o Linux vai detectar a sua placa de vídeo como sendo uma Intel e não uma Nvidia. Este sistema foi construído com o objetivo de economizar energia (bateria), fazendo o sistema funcionar sempre com o chipset Intel e somente quando necessário, chamar o chipset Nvidia, que consumirá mais bateria do laptop.

Mais informações sobre esta tecnologia aqui:
http://www.nvidia.com.br/object/optimus_technology_br.html

A tecnologia é bacana, porém a Nvidia ainda não desenvolveu um driver para Linux para fazer isso funcionar automaticamente, ou seja, chamar o chipset Nvidia somente quando for necessário processar gráficos 3D pesados. Para variar, isso só funciona automaticamente no Windows.
Quando eu descobri isso fiquei muito Piiiiiiii com a Dell, pois no momento da compra eles não informam isso. Pensei comigo, comprei um laptop com uma placa Nvidia Geforce de 2 GB de RAM e vou ficar com uma Intel i910 de 4MB, ridículo.

Mas nem tudo estava perdido! Pesquisando, encontrei muitas informações sobre o assunto e vi que já havia uma forma de fazer isso funcionar no Linux, porém não de forma automática, ainda…
Para fazer isso funcionar, você vai precisar atualizar o kernel para no mínimo a versão 3.14.1-031401 (a que eu estou utilizando neste momento). Quando escrevi este artigo, a última versão do Kernel disponível para atualização via apt no Ubuntu, era a 3.13.0-24.46, sendo assim, a atualização terá que ser feita na mão (download e instalação).

Vamos aos passos para resolver todos estes problemas irritantes, começando pela atualização do Kernel.

Kernel

A versão de kernel que possui bom suporte para a tecnologia Optimus é a 3.14. Testei em versões anteriores e não funcionou, sempre apresentava algum erro bizarro.

Baixe os seguintes pacotes:

linux-headers-3.14.1-031401_3.14.1-031401.201404141220_all.deb
linux-image-3.14.1-031401-generic_3.14.1-031401.201404141220_i386.deb
linux-headers-3.14.1-031401-generic_3.14.1-031401.201404141220_i386.deb

Eu utilizei o repositório: http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.1-trusty/

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.1-trusty/linux-image-3.14.1-031401-generic_3.14.1-031401.201404141220_i386.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.1-trusty/linux-headers-3.14.1-031401_3.14.1-031401.201404141220_all.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.14.1-trusty/linux-headers-3.14.1-031401-generic_3.14.1-031401.201404141220_i386.deb

#Ao final do download, instale todos os pacotes baixados:
$ sudo dpkg -i linux-image-3.14.1* linux-headers-3.14.1*

Ao final da instalação, reinicie o laptop. Após o reboot, confirme se bootou corretamente na nova versão do kernel (abra o terminal):

$ uname -a
Linux Vostro-5470 3.14.1-031401-generic #201404141220 SMP Mon Apr 14 16:59:42 UTC 2014 i686 i686 i386 GNU/Linux

Touchpad

Agora que o kernel foi atualizado, vamos resolver o problema do touchpad.
Esta dica eu peguei no seguinte link:
http://forums.linuxmint.com/viewtopic.php?f=49&t=157436

Siga os procedimentos abaixo que não tem erro:

$ cd ~
$ wget http://people.canonical.com/~acelan/bugs/lp1188025/mouse.tgz
$ tar zxvf mouse.tgz

# compile o novo módulo
$ cd mouse
$ make

# faça backup do módulo atual
$ sudo cp /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko.old

# copie o novo módulo em cima do antigo
$ sudo cp -f psmouse.ko /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko

# remova o módulo atualmente carregado na memória (o touchpad vai parar de funcionar)
$ sudo rmmod psmouse

# carregue o novo módulo
$ sudo modprobe psmouse

Agora seu touchpad deve voltar a funcionar e o botão direito deve responder corretamente.

Wifi

Para fazer o Wifi funcionar, basta instalar os pacotes abaixo (se já não foram instalados):

$ sudo apt-get install linux-firmware linux-firmware-nonfree

Experimente desativar e reativar o Wifi (Fn+F2), se ainda não funcionar reinicie o laptop.

Placa de vídeo

Para que a placa Nvidia possa ser utilizada pelo Linux, será necessário utilizar a última versão de driver e o pacote bumblebee. Eu enfrentei um problema sério com o pacote da nvidia, pois existia um bug com kernel superior a 3.12 no momento de compilação do driver.

Esse erro acontecia após a instalação do pacote via apt, por isso foi necessário aplicar um patch para fazê-lo compilar no kernel 3.14. Para a sua sorte, este erro já foi corrigido (acabei de testar) na última versão do pacote que é a 331.79.

# remova todos os pacotes nvidia presentes em seu sistema
$ sudo apt-get purge nvidia-current
$ sudo apt-get install nvidia-331

# adicione o repositório do bumblebee e instale-o
$ sudo add-apt-repository ppa:bumblebee/stable
$ sudo apt-get install bumblebee bumblebee-nvidia virtualgl

Ao final da instalação, edite o arquivo “/etc/bumblebee/bumblebee.conf” e deixe as entradas conforme mostrado abaixo:

Driver=nvidia
KernelDriver=nvidia-331
LibraryPath=/usr/lib/nvidia-331:/usr/lib32/nvidia-331
XorgModulePath=/usr/lib/nvidia-331/xorg,/usr/lib/xorg/modules

# reinicie o bumblebee
$ sudo restart bumblebeed

# agora vamos testar (o comando pode demorar um pouco para rodar)
$ optirun glxspheres

Você deverá ver uma tela como esta:
glxspheres

Se você viu uma tela como esta, significa que o processo funcionou e agora seu Linux pode utilizar a placa Nvidia do laptop para processar gráficos 3D. Caso contrário, algo ocorreu errado durante o processo. Inicie sua pesquisa verificando o arquivo de logs “/var/log/syslog”.
Como você percebeu, para rodar qualquer programa que precise da placa nvidia, basta rodá-lo com o comando “optirun”, exemplos:

$ optirun firefox
$ optirun kdenlive
$ optirun seu-jogo-3d-favorito

Resolução de vídeo

Ainda falando sobre placa de vídeo, agora precisamos acertar as resoluções disponíveis da placa vídeo intel (i910) e da saída HDMI.
Se você rodar o xrandr, verá que a única resolução disponível será a 1366×768 e se você tentar adicionar qualquer outra, vai receber o erro:

# failed to get size of gamma for output default

Para resolver este problema, você precisará atualizar o driver de vídeo desta placa, que neste momento é a 2.21.15. Siga os passos abaixo:

$ sudo add-apt-repository ppa:glasen/intel-driver
$ sudo apt-get install xserver-xorg-video-intel

Reinicie o laptop.
Após reiniciar e se logar no ambiente gráfico, abra o terminal e rode novamente o xrandr. Você verá que o erro citado acima não aparece mais. No meu caso, mesmo atualizando o driver, outras resoluções não ficaram disponíveis, sendo necessário adicioná-las manualmente. Experimente fazer isso:

$ sudo xrandr --newmode "800x600_60.00" 38.25 800 832 912 1024 600 603 607 624 -hsync +vsync
$ sudo xrandr --addmode eDP1 800x600_60.00

Se não houver nenhum erro, agora deverá ser possível alterar a resolução de vídeo do sistema para 800×600.
A parte chata disso é que será necessário rodar este comando toda vez que o sistema reiniciar. Para automatizar isso no boot e adicionar mais resoluções inclusive, faça isso:

# Crie um script com os comandos necessários
$ vim xrandr.sh
xrandr --newmode "1366x768_60.00" 84.75 1366 1440 1584 1776 768 769 772 800 -hsync +vsync
xrandr --newmode "1024x768_59.90" 64.00 1024 1080 1184 1344 768 769 772 795 -HSync +Vsync
xrandr --newmode "800x600_60.00" 38.25 800 832 912 1024 600 603 607 624 -hsync +vsync
xrandr --addmode eDP1 1024x768_59.90
xrandr --addmode eDP1 1366x768_60.00
xrandr --addmode eDP1 800x600_60.00
xrandr --output eDP1 --mode 1366x768_60.00

# saia e salve
:x
# enter

# torne o script executável
$ chmod +x xrandr.sh

# adicione na inicialização do seu gerenciador de login, no meu caso é o lightdm
$ sudo vim /etc/lightdm/lightdm.conf
[SeatDefaults]
display-setup-script=/home/telles/xrandr.sh
user-session=gnome-shell
greeter-session=unity-greeter

# saia e salve
:x
# enter

Pronto, agora quando seu sistema iniciar, tudo estará como deveria.

Seja feliz e use Linux!
Deixe seus comentários abaixo e até a próxima!

Comentários

comentários