Notebook HP G42-373 BR - Problema com driver! (Ubuntu 13.04)

Iniciado por mimarechal, 26 de Julho de 2013, 18:58

tópico anterior - próximo tópico

mimarechal

Olá a todos!

Por muito tempo eu utilizei o Ubuntu 12.04 sem me preocupar muito com atualizações e esse tipo de coisa e tudo funcionava muito bem. Mas, recentemente resolvi formatar o meu computador e reinstalar o Ubuntu 12.04, para minha surpresa o driver de vídeo da amd deixou de funcionar. Pesquisei a respeito e descobri que isso aconteceu por causa da atualização do Xorg, de 1.11 para 1.13, versão não suportada pelos drivers da minha placa de vídeo. Lendo sobre formas de contornar o problema, encontrei informações de que o novo kernel trazia avanços para as placas híbridas da ATI e achei uma boa ideia instalar o novo Ubuntu, o 13.04.

As placas de vídeo que tenho são: Ati 6370m e ATi 4200.

Iniciando encontrei problemas antigos, como o superaquecimento com o driver OpenSource, apliquei então uma solução conhecida, a instalação do módulo acpi_call, através dos comandos:

$ sudo apt-get install git
$ cd ~
$ git clone http://github.com/mkottman/acpi_call.git
$ cd acpi_call
$ sudo make
$ sudo insmod acpi_call.ko
$ cd examples
$ sudo sh turn_off_gpu.sh

O meu problema é que quando eu torno essa medida permanente, alterando o arquivo RC.Local e a blacklist.conf, o Ubuntu 13.04 inicia com o Unity muito, mas muito lento. Quero deixar claro que sei que minha placa não é mais suportada pelo fglrx e que as placas híbridas não possuem soluções definitivas, mas será que existe alguma forma de amenizar meu problema?

Se inicio o sistem sem alterar o lc.local e a blacklist tudo funciona redondinho, inclusive após entrar com o código para desligar a placa dedicada, mas se torno isso permanente tenho problemas.

Segue abaixo as informações necessárias:

uname -a
Linux Michel 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

lspci
00:00.0 Host bridge: Advanced Micro Devices [AMD] RS880 Host Bridge
00:01.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (int gfx)
00:03.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (ext gfx port 1)
00:05.0 PCI bridge: Advanced Micro Devices [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 1)
00:06.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 2)
00:11.0 SATA controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
00:12.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:12.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:13.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:13.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:14.0 SMBus: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller (rev 42)
00:14.2 Audio device: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) (rev 40)
00:14.3 ISA bridge: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller (rev 40)
00:14.4 PCI bridge: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge (rev 40)
00:14.5 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
00:16.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
00:16.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller
00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link Control
01:05.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI RS880M [Mobility Radeon HD 4225/4250]
01:05.1 Audio device: Advanced Micro Devices [AMD] nee ATI RS880 HDMI Audio [Radeon HD 4200 Series]
02:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Robson CE [Radeon HD 6370M/7370M] (rev ff)
04:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02)

lspci -vnnn | grep VGA
01:05.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI RS880M [Mobility Radeon HD 4225/4250] [1002:9712] (prog-if 00 [VGA controller])
02:00.0 VGA compatible controller [0300]: Advanced Micro Devices [AMD] nee ATI Robson CE [Radeon HD 6370M/7370M] [1002:68e4] (rev ff) (prog-if ff)

sudo lshw -short
Caminho do hardware  Dispositivo  Classe      Descrição
=========================================================
                                  system      HP G42 Notebook PC (LE659LA#AC4)
/0                                bus         1445
/0/0                              memory      1MiB BIOS
/0/c                              processor   AMD Turion(tm) II P560 Dual-Core Processor
/0/c/d                            memory      256KiB L1 cache
/0/c/e                            memory      2MiB L2 cache
/0/f                              memory      4GiB Memória do sistema
/0/f/0                            memory      2GiB SODIMM DDR3 Síncrono 1066 MHz (0,9 ns)
/0/f/1                            memory      2GiB SODIMM DDR3 Síncrono 1066 MHz (0,9 ns)
/0/100                            bridge      RS880 Host Bridge
/0/100/1                          bridge      RS780/RS880 PCI to PCI bridge (int gfx)
/0/100/1/5                        display     RS880M [Mobility Radeon HD 4225/4250]
/0/100/1/5.1                      multimedia  RS880 HDMI Audio [Radeon HD 4200 Series]
/0/100/3                          bridge      RS780 PCI to PCI bridge (ext gfx port 1)
/0/100/3/0                        generic     Illegal Vendor ID
/0/100/5                          bridge      RS780/RS880 PCI to PCI bridge (PCIE port 1)
/0/100/5/0           eth1         network     BCM4313 802.11b/g/n Wireless LAN Controller
/0/100/6                          bridge      RS780 PCI to PCI bridge (PCIE port 2)
/0/100/6/0           eth0         network     RTL8101E/RTL8102E PCI Express Fast Ethernet controller
/0/100/11                         storage     SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode]
/0/100/12                         bus         SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
/0/100/12.2                       bus         SB7x0/SB8x0/SB9x0 USB EHCI Controller
/0/100/13                         bus         SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
/0/100/13.2                       bus         SB7x0/SB8x0/SB9x0 USB EHCI Controller
/0/100/14                         bus         SBx00 SMBus Controller
/0/100/14.2                       multimedia  SBx00 Azalia (Intel HDA)
/0/100/14.3                       bridge      SB7x0/SB8x0/SB9x0 LPC host controller
/0/100/14.4                       bridge      SBx00 PCI to PCI Bridge
/0/100/14.5                       bus         SB7x0/SB8x0/SB9x0 USB OHCI2 Controller
/0/100/16                         bus         SB7x0/SB8x0/SB9x0 USB OHCI0 Controller
/0/100/16.2                       bus         SB7x0/SB8x0/SB9x0 USB EHCI Controller
/0/101                            bridge      Family 10h Processor HyperTransport Configuration
/0/102                            bridge      Family 10h Processor Address Map
/0/103                            bridge      Family 10h Processor DRAM Controller
/0/104                            bridge      Family 10h Processor Miscellaneous Control
/0/105                            bridge      Family 10h Processor Link Control
/0/1                 scsi0        storage     
/0/1/0.0.0           /dev/sda     disk        500GB ST9500423AS
/0/1/0.0.0/1         /dev/sda1    volume      100MiB Windows NTFS volume
/0/1/0.0.0/2         /dev/sda2    volume      348GiB Windows NTFS volume
/0/1/0.0.0/3         /dev/sda3    volume      117GiB Extended partition
/0/1/0.0.0/3/5       /dev/sda5    volume      16GiB Linux filesystem partition
/0/1/0.0.0/3/6       /dev/sda6    volume      98GiB Linux filesystem partition
/0/1/0.0.0/3/7       /dev/sda7    volume      1928MiB Linux swap / Solaris partition
/0/2                 scsi1        storage     
/0/2/0.0.0           /dev/cdrom   disk        DVD A  DS8A5LH
/0/2/0.0.0/0         /dev/cdrom   disk       
/0/2/0.0.0/0/2                    volume      15EiB Windows FAT volume
/1                                power       MU06047

sudo lshw -C display

*-display               
       descrição: VGA compatible controller
       produto: RS880M [Mobility Radeon HD 4225/4250]
       fabricante: Advanced Micro Devices [AMD] nee ATI
       ID físico: 5
       informações do barramento: pci@0000:01:05.0
       versão: 00
       largura: 32 bits
       clock: 33MHz
       capacidades: pm msi vga_controller bus_master cap_list rom
       configuração: driver=radeon latency=0
       recursos: irq:18 memória:d0000000-dfffffff porta de E/S:7000(tamanho=256) memória:f1300000-f130ffff memória:f1200000-f12fffff


Obrigado à todos!
Eu sou quem sou, porque somos todos nós

Renan Rischiotto

Olá mimarechal!

Esse parece ser um problema bem complicado, eu vou te recomendar uma coisa que provavelmente vão me criticar rsrs, mas experimente usar o kernel 3.10

http://ubuntued.info/lancado-o-linux-kernel-3-9-11-e-3-10-2-instale-agora

Me parece que nesse novo kernel 3.10 foram melhorados algumas coisas com placas de vídeo AMD, então vale o teste.
Caso dê algo errado, simplesmente entre no GRUB, inicie o sistema com o kernel antigo e remova esse, fácil fácil ;)

mimarechal

Bom... Instalei o Kernel 3.10 e nada foi resolvido, somente fez com que o wifi deixasse de funcionar. Alguma sugestão?
Eu sou quem sou, porque somos todos nós

Renan Rischiotto


Arthur Bernardes

Cara, não vai adiantar atualizar esse Kernel!!

Isso te traz uma penca de problemas, porquê não sabe se nele está o problema, e pode perder suporte de algum dispositivo (seu caso, o Wireless).

Retorne ao Kernel anterior padrão!

E então, siga a dica a seguir do amigo Nomade, que talvez possa te ajudar!!


mimarechal

Arthur,

Eu já tinha visto a instalação através do downgrade do Xorg, mas não sei se é uma boa ideia, isso não pode me trazer problemas? Eu tentei em uma instalação anterior e meu Unity nunca mais abriu, será que é problemático?
Eu sou quem sou, porque somos todos nós

Arthur Bernardes

Posso afirmar que com o Ubuntu 12.04.2 e kernel 3.5.0-36, funcionou 100%.

Se eu deixar o Xorg atualizar, ganho tela preta de presente (como disse em outro tópico aqui), mas se eu fizer o "downgrade" do Xorg, eu consigo usar na boa, com renderização 3D!!

Não posso afirmar que dê certo no Ubuntu 13.04, pois ainda não usei essa versão.

Mas vale tentar, boa sorte!

mimarechal

Então, eu não acho que seja uma boa já que uma vez deu crash no Unity, além disso a minha aceleração 3d está funcionando atualmente muito bem com o opensource, inclusive consumindo menos energia do que no Ubuntu 12.04 usando Catalyst 13.01. Mas a minha questão é quanto a possibilidade de alternar as placas de vídeo, se existe alguma alternativa ao modo acpi_call para fazer isso, já que quando eu faço da forma definitiva o Unity fica lento.

Quanto ao Kernel, a ideia é boa, mas não é bem por aí eu acho, parece que o 3.11 vai resolver esses problemas malditos de placa híbrida, mas até lá vou tentando encontrar as alternativas...
Eu sou quem sou, porque somos todos nós

Arthur Bernardes

Ah sim, você tem uma GPU Híbrida?!!  :)

Execute sudo lshw -C video e cole o resultado aqui, para a gente ter uma noção.  ;)

Em qualquer caso, é bom dar uma lida e entendida em um tópico que tem aqui, tratando sobre isso!!


Renan Rischiotto

Por que você não cria um script para iniciar junto com o sistema com os comandos que você mesmo relatou:

$ sudo apt-get install git
$ cd ~
$ git clone http://github.com/mkottman/acpi_call.git
$ cd acpi_call
$ sudo make
$ sudo insmod acpi_call.ko
$ cd examples
$ sudo sh turn_off_gpu.sh


??

Arthur Bernardes

Seria boa ideia.

sudo apt-get install git
cd ~
git clone http://github.com/mkottman/acpi_call.git
cd acpi_call
sudo make
sudo insmod acpi_call.ko
cd examples
sudo sh turn_off_gpu.sh


Dar permissão de execução; sudo chmod +x script.sh

E então, criar um link simbólico do script para o rc.local

Mas, primeiro vamos aprimorar o caso, e entender, e buscar soluções possíveis.

mimarechal

Mas criando um script referente ao Rc.Local eu não cairia na mesma situação anterior? Não seria igual a introduzir as linhas diretamente ali?

sudo lshw -C video
  *-display               
       descrição: VGA compatible controller
       produto: RS880M [Mobility Radeon HD 4225/4250]
       fabricante: Advanced Micro Devices [AMD] nee ATI
       ID físico: 5
       informações do barramento: pci@0000:01:05.0
       versão: 00
       largura: 32 bits
       clock: 33MHz
       capacidades: pm msi vga_controller bus_master cap_list rom
       configuração: driver=radeon latency=0
       recursos: irq:18 memória:d0000000-dfffffff porta de E/S:7000(tamanho=256) memória:f1300000-f130ffff memória:f1200000-f12fffff
  *-display
       descrição: VGA compatible controller
       produto: Robson CE [Radeon HD 6370M/7370M]
       fabricante: Advanced Micro Devices [AMD] nee ATI
       ID físico: 0
       informações do barramento: pci@0000:02:00.0
       versão: 00
       largura: 64 bits
       clock: 33MHz
       capacidades: pm pciexpress msi vga_controller bus_master cap_list rom
       configuração: driver=radeon latency=0
       recursos: irq:44 memória:e0000000-efffffff memória:f0200000-f021ffff porta de E/S:3000(tamanho=256) memória:f0220000-f023ffff
Eu sou quem sou, porque somos todos nós

Arthur Bernardes


Renan Rischiotto

CitarMas criando um script referente ao Rc.Local eu não cairia na mesma situação anterior? Não seria igual a introduzir as linhas diretamente ali?

Eu acho que não, mas só testando pra realmente saber.
Mas leia o tópico que o Arthur te indicou =)

mimarechal

Interessante Arthur, mas infelizmente eu não sei direito como é essa coisa de criar um script e tal, será que você pode me ajudar? Pelo que li, o meu caso é com o Script 2;

#!/bin/bash
#Script para alternar entre placas de video by kriador
#versao 20110429 para ubuntu+kernel 2.6.38
#subindo o modulo radeon
modprobe radeon

#Checando status das GPUs
STATEDIS=`cat /sys/kernel/debug/vgaswitcheroo/switch | grep :DIS: | cut -c6-12`
STATEIGD=`cat /sys/kernel/debug/vgaswitcheroo/switch | grep :IGD: | cut -c6-12`

#Definindo status das GPUs
if [ "$STATEDIS" == ":+:Pwr:" ] && [ "$STATEIGD" == ": :Pwr:" ] || [ "$STATEDIS" == ":+:Pwr:" ] && [ "$STATEIGD" == ": :Off:" ]
then
VGASTATE="GPU para Alto Desempenho"
VGAOFF="GPU para Economia de Energia"
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
elif [ "$STATEDIS" == ": :Pwr:" ] && [ "$STATEIGD" == ":+:Pwr:" ] || [ "$STATEDIS" = ": :Off:" ] && [ "$STATEIGD" = ":+:Pwr:" ]
then
VGASTATE="GPU para Economia de Energia"
VGAOFF="GPU para Alto Desempenho"
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
else
VGASTATE="Erro de Leitura de estado"
VGAOFF="Erro de Leitura de estado"
fi

#pegando o PID do X
PIDX=`pgrep X`

#criando a dialog
zenity --question --title "VGA Switcher" --text "Unidade Grafica Atualmente Em Uso:\n\n$VGASTATE\n\nDeseja Alternar para $VGAOFF ?"

#realizando a mudança
if [ "$?" == "0" ]
then
if [ "$STATEDIS" == ":+:Pwr:" ]
then
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch
zenity --warning --title "VGA Switcher" --text "Alternando para GPU Integrada\nSua Sessão será reiniciada"
kill $PIDX
elif [ "$STATEIGD" = ":+:Pwr:" ]
then
echo ON > /sys/kernel/debug/vgaswitcheroo/switch
echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
zenity --warning --title "VGA Switcher" --text "Alternando para GPU Discreta\nSua Sessão será reiniciada"
kill $PIDX
else zenity --warning --title "VGA Switcher" --text "Houve um erro inesperado, por favor notificar a criador desse script no e-mail kriador@gmail.com"
fi
else exit
fi

Valeu!!
Eu sou quem sou, porque somos todos nós