ASUS UL80VT (UL30VT, UL50VT) con grafica ibrida

Riconoscimento, installazione e configurazione delle periferiche.
Avatar utente
maegras
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1123
Iscrizione: mercoledì 10 settembre 2008, 23:45
Desktop: Toshiba Satelite R830
Distribuzione: Ubuntu 12.04
Località: Tivoli [RM {IT}]

ASUS UL80VT (UL30VT, UL50VT) con grafica ibrida

Messaggio da maegras »

Ciao ragazzi, ho da poco acquistato questo notebook, e tempo 2 ore dall'arrivo del pacco, c'era già su Ubuntu MM.

Questo post per fare una sorta di diario di installazione.

Questi modelli sono prodotti con una scheda grafica ibrida (una Intel+nvidia) e farle funzionare non è facile, più che altro il problema è che funzionano tutte e due insieme, e consumano un sacco di batteria (circa 15W) garantendo autonomie di 4/5 ore invece che le 8/9 che si hanno su win.

Scartabellando sul forum internazionale ho trovato 2 soluzioni che vi espongo, nel caso servissero ad altri.

Prima di iniziare controlliamo, con alimentatore scollegato, il consumo di batteria con:

Codice: Seleziona tutto

grep rate /proc/acpi/battery/BAT0/state
dovrebbe attestarsi tra i 16 e i 20 Watt

------------------------------------------------------------------------------

1. Ultilizzare solo la scheda Nvidia, disabilitando la VGA intel.
Andate nel bios del vostro pc, e nella schermata Advanced cambiate il supporto sata  da enchanced a compatibility.
Installate i driver proprietari nvidia.

In questo modo la scheda intel rimarrà costantemente spenta e utilizzerete la sola scheda nvidia, con consumi di 11/12 watt

------------------------------------------------------------------------------

2. Utilizzare la scheda intel
Procedere come segue (fonte):

installare git

Codice: Seleziona tutto

sudo apt-get install git
e poi dare i seguenti comandi

Codice: Seleziona tutto

git clone http://github.com/mkottman/acpi_call.git

Codice: Seleziona tutto

cd acpi_call

Codice: Seleziona tutto

make

Codice: Seleziona tutto

sudo insmod acpi_call.ko
per spegnere la scheda

Codice: Seleziona tutto

echo "\_SB.PCI0.P0P1.VGA._OFF" > /proc/acpi/call
------------------------------------------------------------------------------


Altri problemi riscontrati:

- Non funzionano gli hotkeys (F5, F6, F9)
----Parzialmente risolto con grafica INTEL (solo tasti F5, F6) vedere III post

- Al riavvio, standby, ibernazione le schede tornano a funzionare entrambe
----Sembra che abbia risolto con l'aiuto di steff nel seguente modo:

Codice: Seleziona tutto

sudo gedit /usr/lib/pm-utils/sleep.d/100DisplaySettings
Copiare nel file le seguenti righe:

Codice: Seleziona tutto

#!/bin/sh
 /etc/init.d/display-settings reload
Dare i permessi di esecuzione

Codice: Seleziona tutto

sudo chmod +x /usr/lib/pm-utils/sleep.d/100DisplaySettings
- La luminosità dello schermo è sempre impostata ad un valore massimo
----Parzialmente risolto, vedere post III
Aggiornamenti
Con i driver nvidia proprietari è possibile cambiare la luminosità agendo direttamente dallo NVIDIA X Server Setting. Certo non è pratico, ma meglio di niente

Sto ancora sperimentando, se faccio progressi vi tengo informai
Ultima modifica di maegras il martedì 12 ottobre 2010, 20:02, modificato 1 volta in totale.
Ricordiamoci di mettere [Risolto] nel titolo se veniamo a capo di un problema
-------------------------------------------------------------
"Linux is only free if your time has no value" Jamie Zawinski
Avatar utente
maegras
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1123
Iscrizione: mercoledì 10 settembre 2008, 23:45
Desktop: Toshiba Satelite R830
Distribuzione: Ubuntu 12.04
Località: Tivoli [RM {IT}]

Re: ASUS UL80VT (ma anche UL30VT, UL50VT)

Messaggio da maegras »

nella mailing list internazionale mi hanno passato questo script

Codice: Seleziona tutto

#!/bin/bash

### BEGIN INIT INFO
# Provides:          display-settings
# Required-Start:    mountdevsubfs
# Required-Stop:     
# Should-Start:      udev
# Default-Start:     2 3 4 5
# Default-Stop:      
# Short-Description: turn off discrete graphics or enable nvidia driver
### END INIT INFO

PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin

acall () {
    acpicall=/lib/modules/$( uname -r )/kernel/drivers/acpi/acpi_call.ko
    ins=$( grep acpi_call /proc/modules )
    if [ -f "${acpicall}" -a -z "$ins" ]; then
        insmod /lib/modules/$( uname -r )/kernel/drivers/acpi/acpi_call.ko
    fi
    if [ -e "/proc/acpi/call" ]; then
        echo "\_SB.PCI0.P0P1.VGA._OFF" > /proc/acpi/call
    fi
}

enableintel () {
    update-alternatives --set gl_conf /usr/lib/mesa/ld.so.conf
    ldconfig
    isintel=$( readlink /usr/lib/xorg/modules/extensions/libglx.so | grep intel );
    if [ -z "$isintel" ]; then
        ln -sf /usr/lib/xorg/modules/extensions/libglx.so.intel /usr/lib/xorg/modules/extensions/libglx.so
    fi
    cp /etc/X11/xorg.conf.intel /etc/X11/xorg.conf
    nvc=$( grep nvidia-current /proc/modules )
    nvi=$( grep nvidia /proc/modules )
    if [ -n "$nvc" ]; then
        rmmod nvidia_current
    else
        if [ -n "$nvi" ]; then
            rmmod nvidia
        fi
    fi
    acall
}

enablenvidia () {
    if [ -e "/proc/acpi/call" ]; then
        echo "\_SB.PCI0.P0P1.VGA._ON" > /proc/acpi/call
    fi
    update-alternatives --set gl_conf /usr/lib/nvidia-current/ld.so.conf
    ldconfig
    if [ -e  /usr/lib/xorg/modules/extensions/libglx.so.nvidia ]; then
        ln -sf /usr/lib/xorg/modules/extensions/libglx.so.nvidia /usr/lib/xorg/modules/extensions/libglx.so
    fi
    cp /etc/X11/xorg.conf.nvidia /etc/X11/xorg.conf
    if [ ! -e "/lib/modules/$( uname -r )/updates/dkms/nvidia.ko" -a ! -e "/lib/modules/$( uname -r )/kernel/drivers/video/nvidia.ko" ]; then
        ln -s nvidia-current.ko "/lib/modules/$( uname -r )/updates/dkms/nvidia.ko"
        depmod
        modprobe nvidia
        modprobe nvidia-current
    fi
}

stuff () {
    t=$( lspci | grep VGA | grep -i intel )
    if [ -n "$t" ]; then
        enableintel
    else
        enablenvidia
    fi
}

case "$1" in
  start|restart|reload|force-reload)
      stuff
      ;;
  stop)
     echo "display-settings stopped."
     ;;
  force-nvidia)
     enablenvidia
     ;;
  force-intel)
     enableintel
     ;;
   *)
     echo "Usage: /etc/init.d/display-settings {start|stop|restart|reload|force-reload}"
     exit 1
     ;;
esac
che dovrebbe abilitare la grafica intel o nvidia a seconda di come è impostato il bios, e funziona.
Riscontro però un problema, ovvero non mi sembra che la funziona acall faccia il suo dovere perchè mi ritrovo con la nvidia sempre accesa.

qualcuno mi sa dare un aiuto a vedere come modificare lo script?
Ricordiamoci di mettere [Risolto] nel titolo se veniamo a capo di un problema
-------------------------------------------------------------
"Linux is only free if your time has no value" Jamie Zawinski
Avatar utente
maegras
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1123
Iscrizione: mercoledì 10 settembre 2008, 23:45
Desktop: Toshiba Satelite R830
Distribuzione: Ubuntu 12.04
Località: Tivoli [RM {IT}]

Re: ASUS UL80VT (ma anche UL30VT, UL50VT)

Messaggio da maegras »

Ok, ho risolto modificando lo script come

Codice: Seleziona tutto

#!/bin/bash

### BEGIN INIT INFO
# Provides:          display-settings
# Required-Start:    mountdevsubfs
# Required-Stop:     
# Should-Start:      udev
# Default-Start:     2 3 4 5
# Default-Stop:      
# Short-Description: turn off discrete graphics or enable nvidia driver
### END INIT INFO

PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin

acall () {
    acpicall=/home/maegras/.acpi_call/acpi_call.ko
    ins=$( grep acpi_call /proc/modules )
    if [ -f "${acpicall}" -a -z "$ins" ]; then
        insmod /home/maegras/.acpi_call/acpi_call.ko
    fi
    if [ -e "/proc/acpi/call" ]; then
        echo "\_SB.PCI0.P0P1.VGA._OFF" > /proc/acpi/call
    fi
}

enableintel () {
    update-alternatives --set gl_conf /usr/lib/mesa/ld.so.conf
    ldconfig
    isintel=$( readlink /usr/lib/xorg/modules/extensions/libglx.so | grep intel );
    if [ -z "$isintel" ]; then
        ln -sf /usr/lib/xorg/modules/extensions/libglx.so.intel /usr/lib/xorg/modules/extensions/libglx.so
    fi
    cp /etc/X11/xorg.conf.intel /etc/X11/xorg.conf
    nvc=$( grep nvidia-current /proc/modules )
    nvi=$( grep nvidia /proc/modules )
    if [ -n "$nvc" ]; then
        rmmod nvidia_current
    else
        if [ -n "$nvi" ]; then
            rmmod nvidia
        fi
    fi
    acall
}

enablenvidia () {
    if [ -e "/proc/acpi/call" ]; then
        echo "\_SB.PCI0.P0P1.VGA._ON" > /proc/acpi/call
    fi
    update-alternatives --set gl_conf /usr/lib/nvidia-current/ld.so.conf
    ldconfig
    if [ -e  /usr/lib/xorg/modules/extensions/libglx.so.nvidia ]; then
        ln -sf /usr/lib/xorg/modules/extensions/libglx.so.nvidia /usr/lib/xorg/modules/extensions/libglx.so
    fi
    cp /etc/X11/xorg.conf.nvidia /etc/X11/xorg.conf
    if [ ! -e "/lib/modules/$( uname -r )/updates/dkms/nvidia.ko" -a ! -e "/lib/modules/$( uname -r )/kernel/drivers/video/nvidia.ko" ]; then
        ln -s nvidia-current.ko "/lib/modules/$( uname -r )/updates/dkms/nvidia.ko"
        depmod
        modprobe nvidia
        modprobe nvidia-current
    fi
}

stuff () {
    t=$( lspci | grep VGA | grep -i intel )
    if [ -n "$t" ]; then
        enableintel
    else
        enablenvidia
    fi
}

case "$1" in
  start|restart|reload|force-reload)
      stuff
      ;;
  stop)
     echo "display-settings stopped."
     ;;
  force-nvidia)
     enablenvidia
     ;;
  force-intel)
     enableintel
     ;;
  acall)
     acall
     ;;
   *)
     echo "Usage: /etc/init.d/display-settings {start|stop|restart|reload|force-reload}"
     exit 1
     ;;
esac
            
exit 0
e modificando la cartella creata da git (passo 2 del I post) in .acpi_call

Se qualcuno più esperto di me in scripting, nota che qualcosa non va me lo dica che correggo :)


Qualcuno di voi sa come fare per avere un reload dello script al risveglio da stand-by ed ibernazione?
Ultima modifica di maegras il martedì 12 ottobre 2010, 11:22, modificato 1 volta in totale.
Ricordiamoci di mettere [Risolto] nel titolo se veniamo a capo di un problema
-------------------------------------------------------------
"Linux is only free if your time has no value" Jamie Zawinski
Avatar utente
maegras
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1123
Iscrizione: mercoledì 10 settembre 2008, 23:45
Desktop: Toshiba Satelite R830
Distribuzione: Ubuntu 12.04
Località: Tivoli [RM {IT}]

Re: ASUS UL80VT (UL30VT, UL50VT) con grafica ibrida

Messaggio da maegras »

Risolto, sotto scheda Intel, il problema della luminosità seguendo questa guida.

Resta il problema che il power-manager di gnome non è in grado di modificare la luminosità, rendendo impossibile la gestione della luminosità dello schermo quando quest'ultimo è inutilizzato. Impostate manualmente una luminosità e quella resta, anche se per alcuni minuti non si utilizza il pc.
Ultima modifica di maegras il martedì 12 ottobre 2010, 17:46, modificato 1 volta in totale.
Ricordiamoci di mettere [Risolto] nel titolo se veniamo a capo di un problema
-------------------------------------------------------------
"Linux is only free if your time has no value" Jamie Zawinski
Scrivi risposta

Ritorna a “Driver e periferiche”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 8 ospiti