Aspire 4820TG Ubuntu > Probleme mit Hybridgrafik

cRaZy-bisCuiT

Neuer Benutzer
Guten Abend,

gibt es inzwischen eine Möglichkeit Hybridgrafiklösungen unter Linux zu betreiben und umzuschalten? Lt. einigen Infos im Netz unterstützen die neueren Linuxkernelversionen soetwas, der xsercer (xorg) aber angeblich nicht.

Ist das der letzte Stand der Dinge?

Ich habe via WUBI (einfach mal um zu schauen ob es klappt) Ubuntu installiert. Ich kann es nutzen, er erkennt die ATI-Karte und nutzt sie. Wie man das wechseln gestalten könnte weiß ich nicht.

Da mir die ATI Karte und Ubuntu eh wenig bringt würde ich dort alternativ dauerhaft NUR die Intelkarte verwenden. Hat jemand eine Idee wie ich das umsetzen könnte?

Liebe Grüße,

cRaZy
 
Zuletzt bearbeitet von einem Moderator:

Yashikuji

Neuer Benutzer
AW: TimelineX 4820TG, Ubuntu & Hybridgrafik

Hallo cRaZy,

die neuen Kernel unterstützen das Umschalten der Grafikkarten. Dies kann man mit Hilfe vom Kernelmodul vgaswitcheroo machen. Allerdings muss man nach dem Umschalten den X-Server neustarten. Die folgenden Befehle kann man zum Umschalten nutzen:

cd /sys/kernel/debug/vgaswitcheroo
cat switch # um zu sehen welche Karte gerade aktiv ist
sudo echo DDIS > switch # auf die ATI-Karte umschalten
sudo echo DIGD > switch # auf die Intel-Karte umschalten
sudo echo OFF > switch # die unbenutzte Karte abschalten, damit sie kein Strom verbraucht
Die Grafik im Bios muss natürlich auf "switchable" eingestellt sein. Das Hin- und Herschalten lohnt sich atm nicht, denn wenn du den ATI-Treiber installierst, wird dein System im "switchable" mode nicht mehr booten. Da gibt's wohl ein Konflikt zwischen Ati und Intel Treibern.

Ich selbst habe einen Timeline X 3820TG mit Intel und HD 5470. Unter Linux verzichte ich komplett auf die ATI-Karte, da ich oft unterwegs bin und sie nur unnötig viel Strom zieht. Die diskrete Karte kannst du permanent abschalten, indem du in die Datei /etc/rc.local folgendes Eingibst:

sudo echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
sudo modprobe -r radeon
Ohne die zweite Zeile kriegt man beim Herunterfahren sehr viele Fehler, die den Prozess unnötig in die Länge ziehen.

Ich hoffe ich konnte dir helfen.

MfG

Yashikuji
 

endurocker

Neuer Benutzer
AW: TimelineX 4820TG, Ubuntu & Hybridgrafik

Vielen Dank Yashikuji,

vgaswitcheroo funktioniert sehr gut auf meinem 4820TG und bedeutet minimum die dreifache Akkulaufzeit mit dem integrierten Chip.
Nun gibt es keinen Grund mehr Windows zu booten. :D

Wirklich prima!
 

blacki0815

Neuer Benutzer
AW: TimelineX 4820TG, Ubuntu & Hybridgrafik

Hallo,

ich habe versucht den Tipp bei meinem Acer 3820TG anzuwenden, bis zum ersten Neustart hat es auch funktioniert. Wenn ich nun Ubuntu boote wird jedoch der Bildschirm abgeschaltet. Egal ob bei Akku oder Netzbetrieb.

Mit dem abgesicherten Grafikmodus komm ich noch rein, es wurde korrekt die ATI Karte deaktiviert und die Intel ist aktiv, hat jemand eine Idee wieso beim normalen Neustart anscheinend trotzdem versucht wird die ATI Karte zu verwenden?

Gruß
Blacki
 

Yashikuji

Neuer Benutzer
AW: TimelineX 4820TG, Ubuntu & Hybridgrafik

Hallo blacki0815,

sorry für die späte Antwort. Benutzt du Ubuntu 10.xx oder 11.04?

MfG

Yashikuji
 

Yashikuji

Neuer Benutzer
AW: TimelineX 4820TG, Ubuntu & Hybridgrafik

Hallo Blacki,

ich habe mir gestern auch 11.04 installiert. Da scheint es mit vgaswitcheroo Probleme zu geben. Die ATI Grafikkarte habe ich mir der ACPI-Methode deaktiviert.

Erstelle einen Ordner, z.B. auf dem Desktop. Darin erstellst du eine Datei mit dem Namen timelinex_acpi.c und fügst den folgenden Code ein:
Code:
* 
* timelinex_acpi.c
* 
* Linux kernel module that disables the discrete graphics board for Acer
* Aspire TimelineX 3820TG (Core i5). Other TimelineX laptops could work, but I don't know.
*
* Based on the original lenovo_acpi.c by Sylvain Joyeux <sylvain.joyeux@m4x.org>, 2009
*/
#include <acpi/acpi.h>
 
MODULE_LICENSE("GPL");
 
static acpi_handle root_handle;
 
static int __init kill_ati(void)
{
int i;
acpi_status status;
// The device handle
acpi_handle handle;
// The package elements
union acpi_object package_elements[3];
// The arguments to ATPX
union acpi_object atpx_arg_elements[2];
struct acpi_object_list atpx_arg;
// For the return value of ATPX
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
 
status = acpi_get_handle(root_handle, "\\_SB.PCI0.P0P2.PEGP._OFF", &handle); // status = acpi_get_handle(root_handle, "\\_SB_.PCI0.OVGA.ATPX", &handle);
if (ACPI_FAILURE(status))
{
status = acpi_get_handle(root_handle, "\\_SB_.PCI0.OVGA.XTPX", &handle);
if (ACPI_FAILURE(status))
{
printk("timelinex_acpi: cannot get ACPI handle: %s\n", acpi_format_exception(status));
return -ENOSYS;
}
printk("timelinex_acpi: in discrete graphics mode\n");
return 0;
}
 
for (i = 0; i < 3; ++i)
{
package_elements[i].type = ACPI_TYPE_INTEGER;
package_elements[i].integer.value = 0;
}
 
atpx_arg.count = 0; // atpx_arg.count = 2;
atpx_arg.pointer = &atpx_arg_elements[0];
 
atpx_arg_elements[0].type = ACPI_TYPE_INTEGER;
atpx_arg_elements[0].integer.value = 2;
 
atpx_arg_elements[1].type = ACPI_TYPE_PACKAGE;
atpx_arg_elements[1].package.count = 3;
atpx_arg_elements[1].package.elements = &package_elements[0];
 
status = acpi_evaluate_object(handle, NULL, &atpx_arg, &buffer);
if (ACPI_FAILURE(status))
{
printk("timelinex_acpi: ATPX method call failed: %s\n", acpi_format_exception(status));
return -ENOSYS;
}
kfree(buffer.pointer);
 
printk("timelinex_acpi: disabled the discrete graphics card\n");
return 0;
}
 
static void dummy(void)
{
}
 
module_init(kill_ati);
module_exit(dummy);
Erstelle eine weitere Datei namens Makefile mit dem folgenden Inhalt:
ifneq ($(KERNELRELEASE),)
obj-m := timelinex_acpi.o
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)

default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) $(EXTRA_FLAGS) modules

clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) $(EXTRA_FLAGS) clean

endif
Starte einen Terminal, wechsle in diesen Ordner und führe die folgenden Befehle nacheinander aus:
make
sudo cp timelinex_acpi.ko /lib/modules/`uname -r`/kernel/
sudo depmod
Nun musst du dieses Modul beim Start automatisch ausführen lassen, in dem du den folgenden Eintrag in die /etc/rc.local einfügst:
modprobe timelinex_acpi
Die alten Einträge, die sich auf vgaswitcheroo beziehen musst du entweder löschen oder auskommentieren.
Im letzten Schritt musst du nur noch das Radeon Modul blacklisten. Ich hab's mit einem Eintrag in /etc/default/grub gelöst. Dafür musst du die Zeile GRUB_CMDLINE_LINUX_DEFAULT="" mit
GRUB_CMDLINE_LINUX_DEFAULT="radeon.modeset=0"
ergänzen und grub mit
aktualisieren.

Wenn du jetzt neustartest, müsste die ATI Grafikkarte deaktiviert sein und du dürftest kein black screen mehr bekommen.

MfG

Yashikuji
 

blacki0815

Neuer Benutzer
AW: TimelineX 4820TG, Ubuntu & Hybridgrafik

Hallo Yashikuji,

vielen Dank für deine Antwort, ich habe das ganze gleichmal versucht, jedoch funktioniert der make befehl nicht, er gibt immer an
"Für das Ziel >default< ist nichts zu tun"
dadurch erstellt er mir die Datei nicht und weitere Befehle schlagen fehl.

Leider kenne ich mich bei der Syntax nicht so gut aus und kann daher nicht sagen ob in der Makefile etwas nicht stimmt oder ob mein System da ein Problem hat.

Hast du noch eine Idee woran das liegen könnte?

Gruß
Blacki
 

The Grinch

Administrator
Teammitglied
AW: TimelineX 4820TG, Ubuntu & Hybridgrafik

Alternativ das makefile als Batch-Datei, und die Datei "timelinex_acpi.c" hier an einem
Beitrag anhängen!
Dann werden Copy/Past Fehler vermieden. ;)
 

Yashikuji

Neuer Benutzer
AW: TimelineX 4820TG, Ubuntu & Hybridgrafik

Hallo,

versuch's mal mit der angehändten Makefile-Datei

MfG

Yashikuji
 

Anhänge

  • Makefile.zip
    341 Bytes · Aufrufe: 72

rrDNA

Neuer Benutzer
AW: TimelineX 4820TG, Ubuntu & Hybridgrafik

Hi. Bei dem Anhang bekomme ich folgende Fehlermeldung:

Code:
root@DNA:~/Arbeitsfläche/ACPI# make
make -C /lib/modules/2.6.38-8-generic/build M=/home/rr/Arbeitsfläche/ACPI  modules
make[1]: Betrete Verzeichnis '/usr/src/linux-headers-2.6.38-8-generic'
  CC [M]  /home/rr/Arbeitsfläche/ACPI/timelinex_acpi.o
/home/rr/Arbeitsfläche/ACPI/timelinex_acpi.c:3:3: error: invalid preprocessing directive #timelinex_acpi
/home/rr/Arbeitsfläche/ACPI/timelinex_acpi.c:5:3: error: invalid preprocessing directive #Linux
/home/rr/Arbeitsfläche/ACPI/timelinex_acpi.c:6:3: error: invalid preprocessing directive #Aspire
/home/rr/Arbeitsfläche/ACPI/timelinex_acpi.c:6:83: warning: missing terminating ' character
/home/rr/Arbeitsfläche/ACPI/timelinex_acpi.c:8:3: error: invalid preprocessing directive #Based
make[2]: *** [/home/rr/Arbeitsfläche/ACPI/timelinex_acpi.o] Fehler 1
make[1]: *** [_module_/home/rr/Arbeitsfläche/ACPI] Fehler 2
make[1]: Verlasse Verzeichnis '/usr/src/linux-headers-2.6.38-8-generic'
make: *** [default] Fehler 2

Habe ein TimelineX 4820TG mit ATI Radeon 5650 und Intel Core i7 Grafik.
Ubuntu 11.04 64Bit
 

Yashikuji

Neuer Benutzer
AW: Aspire TimelineX 4820 TG - Ubuntu > Probleme mit Hybridgrafik

Hallo rrDNA,

der Fehler sagt mir leider nichts. Ich kenne mich mit Make nicht aus. Hast du build-essential installiert?


MfG

Yashikuji
 

Yashikuji

Neuer Benutzer
AW: Aspire TimelineX 4820 TG - Ubuntu > Probleme mit Hybridgrafik

Habe den Fehler gefunden. Die timelinex_acpi.c war falsch kommentiert.
Versuch's mal mit der folgenden:

Code:
/* 
* 
* timelinex_acpi.c
* 
* Linux kernel module that disables the discrete graphics board for Acer
* Aspire TimelineX 3820TG (Core i5). Other TimelineX laptops could work, but I don't know.
*
* Based on the original lenovo_acpi.c by Sylvain Joyeux <sylvain.joyeux@m4x.org>, 2009
*/
#include <acpi/acpi.h>
 
MODULE_LICENSE("GPL");
 
static acpi_handle root_handle;
 
static int __init kill_ati(void)
{
int i;
acpi_status status;
// The device handle
acpi_handle handle;
// The package elements
union acpi_object package_elements[3];
// The arguments to ATPX
union acpi_object atpx_arg_elements[2];
struct acpi_object_list atpx_arg;
// For the return value of ATPX
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
 
status = acpi_get_handle(root_handle, "\\_SB.PCI0.P0P2.PEGP._OFF", &handle); // status = acpi_get_handle(root_handle, "\\_SB_.PCI0.OVGA.ATPX", &handle);
if (ACPI_FAILURE(status))
{
status = acpi_get_handle(root_handle, "\\_SB_.PCI0.OVGA.XTPX", &handle);
if (ACPI_FAILURE(status))
{
printk("timelinex_acpi: cannot get ACPI handle: %s\n", acpi_format_exception(status));
return -ENOSYS;
}
printk("timelinex_acpi: in discrete graphics mode\n");
return 0;
}
 
for (i = 0; i < 3; ++i)
{
package_elements[i].type = ACPI_TYPE_INTEGER;
package_elements[i].integer.value = 0;
}
 
atpx_arg.count = 0; // atpx_arg.count = 2;
atpx_arg.pointer = &atpx_arg_elements[0];
 
atpx_arg_elements[0].type = ACPI_TYPE_INTEGER;
atpx_arg_elements[0].integer.value = 2;
 
atpx_arg_elements[1].type = ACPI_TYPE_PACKAGE;
atpx_arg_elements[1].package.count = 3;
atpx_arg_elements[1].package.elements = &package_elements[0];
 
status = acpi_evaluate_object(handle, NULL, &atpx_arg, &buffer);
if (ACPI_FAILURE(status))
{
printk("timelinex_acpi: ATPX method call failed: %s\n", acpi_format_exception(status));
return -ENOSYS;
}
kfree(buffer.pointer);
 
printk("timelinex_acpi: disabled the discrete graphics card\n");
return 0;
}
 
static void dummy(void)
{
}
 
module_init(kill_ati);
module_exit(dummy);
MfG

Yashikuji
 
Zuletzt bearbeitet:

The Grinch

Administrator
Teammitglied
AW: Aspire TimelineX 4820 TG - Ubuntu > Probleme mit Hybridgrafik

Bitte solche Spagetti-Listen als
Code:
 einfügen, und nicht als [QUOTE]!
Danke.
 

rrDNA

Neuer Benutzer
AW: Aspire TimelineX 4820 TG - Ubuntu > Probleme mit Hybridgrafik

Jepp. Das war der Fehler, nun funktioniert dieses Modul bei mir. Dadurch stieg die maximale Akkulaufzeit von 2 auf knapp 5h an. Besten Dank.
Allerdings habe ich festgestellt, dass nun der Lüfter unnötig mit fast voller Drehzahl läuft. Normalerweise ist der Lüfter mit dem Intel Grafikchip (unter Windows und auch unter Ubuntu 10.10 mittels vgaswitcheroo) kaum hörbar gewesen. Gibt es irgendwelche Möglichkeiten, den Lüfter zu beeinflussen?

Gruß rrDNA
 

Yashikuji

Neuer Benutzer
AW: Aspire TimelineX 4820 TG - Ubuntu > Probleme mit Hybridgrafik

hmm, seltsam. bei mir (Timelinex 3820TG, Kubuntu 11.04) ist der ATI Lüfter immer aus.
 

medienkind

Neuer Benutzer
AW: Aspire TimelineX 4820 TG - Ubuntu > Probleme mit Hybridgrafik

Hallo,

muss das leider bei mir auch bestätigen.. Acer 4820TG, Lüfter immer an :( habe schon nach acer_fancontrol gesucht, in diesem Tool muss man ein Modell und RAM Menge aussuchen, leider ist weder das 4820 noch 4GB eine Option :(
 

binary

Neuer Benutzer
AW: Ubuntu > Probleme mit Hybridgrafik

Basierend auf den Informationen von Yashikuji hab ich ein kleines Shellscript zum umschalten der Grafikkarten geschrieben.

---
#/bin/sh
# set -x

# Programmer: Binary Trust
# URL: Frapsoft IT Solutions | frapsoft.de
# Date: 27.06.2011

switch2ati()
{
# auf die ATI-Karte umschalten
echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
# die unbenutzte Karte abschalten, damit sie kein Strom verbraucht
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
}

switch2intel()
{

# auf die Intel-Karte umschalten
echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch
# die unbenutzte Karte abschalten, damit sie kein Strom verbraucht
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
}

if [ $# > 0 ]
then

case "$1" in
ati)
echo "ATI Karte wird aktiviert ..."
switch2ati
;;
intel)
echo "Intel Karte wird aktiviert ..."
switch2intel
;;
*)
echo "lol was tippt dein krummes fingerchen den? parameter sind ati oder intel"
;;
esac

else
echo "erforderliche Parameter: ati intel"
fi

----

abspeichern als grafikswitch.sh und ausfuherrechte geben.
aufruf:

sudo grafikswitch.sh ati # aktiviert die ati grafikkarte
sudo grafikswitch.sh intel # aktiviert die intel grafikkarte

vielleicht kann es von euch ja jemand gebrauchen ...

gruss binary
 

ollielympus

Neuer Benutzer
AW: Ubuntu > Probleme mit Hybridgrafik

Hallo zusammen!
Mit dem neusten Catalyst Treiber von der AMD Seite funktioniert auch das Umschalten der Grafikkarten ohne Skripte/Commandos usw. Lediglich beim Umstecken von externen Bildschirmen per VGA gibts manchmal noch ein Problem, bei HDMI hängt er sich bei mir komplett auf, das ist aber nicht so wichtig.
Kann man das Touchpad so konfigurieren, dass 2-Finger-Tippen erkannt wird als mittlere Maustaste?
 
Oben