Jak włączyć funkcję dynamicznego zarządzania energią Radeon?

16

Ostatnio wydano wersje RC jądra Linux Kernel 3.11. Jak zapewne wiesz, to nowe jądro zawiera dynamiczne zarządzanie energią dla użytkowników sterownika Radeon typu open source. Ponieważ mam problemy z zarządzaniem energią w domyślnym jądrze Ubuntu 13.04, chciałem to wypróbować.

Czy ktoś wie, jak włączyć tę nową funkcję po pobraniu i zainstalowaniu najnowszego jądra RC z PPA do testowania jądra?

EDYCJA: Mówiąc dokładniej, mówię o tym: http://www.phoronix.com/scan.php?page=news_item&px=MTM5NjE

Gladen
źródło
3.11 nie zostało jeszcze wydane, a Ubuntu ma już oficjalne lustro? To coś nowego. Może masz na myśli testowanie PPA jądro ?
mikewhthing
Tak, właśnie o to mi chodzi! Stamtąd pobrałem najnowszy RC (rc2 w momencie pisania).
Gladen
1
@mikewhthing: zredagował pytanie, aby było bardziej jasne. Moim zdaniem to pytanie nie jest wcale nie na temat, mówię o instalacji nowego jądra w CURRENT Ubuntu w wersji (13.04). Czy ktoś może wyjaśnić, dlaczego to pytanie jest zamknięte?
Gladen
1
Masz rację, należy to ponownie otworzyć. Przepraszamy za pochopne (niepoprawne) głosowanie za zamknięciem.
Tom Brossman
@Gladen - masz na myśli TLP? Zwykle wiąże się to z zarządzaniem energią w przypadku komputerów przenośnych, a także z zarządzaniem zużyciem energii.
dschinn1001

Odpowiedzi:

14

Aktualizacja (8-05-2014): Zgodnie z oczekiwaniami, w Ubuntu 14.04 DPM jest domyślnie włączony dla wszystkich współczesnych procesorów graficznych AMD (seria HD 4000 do HD 7000). Jeśli używasz tego wydania wraz z obsługiwaną kartą graficzną, nie musisz nic robić, aby korzystać z tej funkcji.

Aktualizacja (28-11-2013): Ubuntu 13.10 domyślnie jest dostarczany z jądrem 3.11. Jeśli więc korzystasz z tej wersji, wszystko, co musisz zrobić, to dodać parametr do jądra systemu Linux. Zaktualizowałem odpowiednio przewodnik. Wygląda na to, że w Ubuntu 14.04 DPM będzie domyślnie włączony, więc mam nadzieję, że do tego czasu ten przewodnik będzie przestarzały! ;)

Ok, w ostatnich dniach trochę eksperymentowałem i włączyłem! To naprawdę bardzo proste, gdy dowiesz się, jak to zrobić. Dla osób, które również chcą tego spróbować, wyjaśnię każdy krok. Począwszy od instalacji nowego jądra.

Przede wszystkim kilka punktów do rozważenia. Obsługa Radeon DPM dotyczy tylko kart graficznych z serii Radeon HD 2000 (R600) i nowszych. Jeśli używasz naprawdę starej karty graficznej ATI Radeon, obsługa zarządzania energią jest już dostępna w sterowniku typu open source.

Kroki tylko dla Ubuntu 13.04 lub niższej:

Aby korzystać z Radeon DPM, potrzebujesz jądra Linux 3.11 lub nowszego. Możesz użyć PPA jądra głównego Ubuntu i pobrać najnowszy stabilny obraz jądra Linux 3.11 z tego katalogu kernel.ubuntu.com . Wszelkie przyszłe aktualizacje jądra również są w porządku i można je również znaleźć w tym katalogu.

Korzystanie z funkcji dynamicznego zarządzania energią wymaga zaktualizowanego oprogramowania układowego karty graficznej. Najnowszy mikrokod / oprogramowanie Radeon można pobrać z tego katalogu . Potrzebujesz plików * _smc.bin od czerwca. Jeśli nie masz pewności co do nazwy kodowej konkretnej karty graficznej, możesz ją ogólnie znaleźć na podstawie danych wyjściowych lspci -v | mniej ... Pliki należy umieścić w / lib / firmware / radeon . Jeśli spróbujesz użyć Radeon DPM bez oprogramowania wewnętrznego, przyspieszenie zostanie wyłączone dla GPU. Musisz także upewnić się, że masz zaktualizowane oprogramowanie w / lib / firmware / radeon przed instalacją jądra> 3.11 - zostanie ono automatycznie przeciągnięte do zainstalowanego obrazu.

Ubuntu 13.10 lub nowszy albo użytkownicy Radeon HD 3000 lub nowszy:

Obsługa Radeon DPM nie jest domyślnie włączona poniżej jądra Linux 3.13 lub dla starszych GPU. Musisz dodać parametr radeon.dpm = 1 do jądra Linux, aby włączyć go w takich przypadkach. Aby dowiedzieć się, jak to zrobić w systemie Ubuntu, zobacz Wiki Ubuntu na temat różnych sposobów.

Po zainstalowaniu nowego jądra, zaktualizowaniu oprogramowania układowego i włączeniu parametru jądra powinieneś być gotowy. Musisz teraz ponownie uruchomić system i możesz sprawdzić, czy po tym wszystko działa

cat / sys / kernel / debug / dri / 64 / radeon_pm_info

Uwaga: @ luca992 wskazał, że plik radeon_pm_info może znajdować się w innym katalogu (na przykład w / sys / kernel / debug / dri / 1 / zamiast dri / 64 /). Jeśli masz absolutną pewność, że poprawnie wykonałeś wszystkie czynności, możesz sprawdzić, czy może tak być w twojej sytuacji.

Powinieneś zobaczyć coś takiego:

uvd    vclk: 0 dclk: 0
power level 0    sclk: 22000 mclk: 25000 vddc: 900

Możesz dalej skonfigurować DPM, otwierając /etc/rc.local i dodając następujący wiersz:

echo parameter > /sys/class/drm/card0/device/power_dpm_state

Gdzie „parametrem” może być:

  • bateria (zestaw poziomów wydajności ukierunkowanych na optymalne działanie na baterii)
  • zrównoważony (zestaw poziomów wydajności ukierunkowanych na optymalne codzienne użytkowanie)
  • wydajność (zestaw poziomów wydajności ukierunkowanych na najwyższą wydajność GPU)

Źródła: http://www.botchco.com/agd5f/?p=57

Gladen
źródło
1
Muszę powiedzieć… żywotność baterii w moim laptopie jest teraz równie dobra, jak w przypadku zastrzeżonych sterowników. Również wydajność powinna być nieco lepsza jako efekt uboczny powrotu do wyższych prędkości przy większych obciążeniach. Jestem pod wrażeniem wyników!
Gladen
Jeśli masz command not found: glxinfo. To nie jest zainstalowane. Aby zainstalować, wykonaj sudo apt-get install mesa-utils.
meshy
Jak nazywa się pakiet apt, który należy zainstalować?
Entea
„Jeśli korzystasz z tego wydania wraz z obsługiwaną kartą graficzną, nie musisz nic robić, aby korzystać z tej funkcji”. - Z wyjątkiem ustawienia domyślnego „zbalansowanego”, więc możesz chcieć przełączyć się na „akumulator”, jeśli chcesz zminimalizować zużycie energii.
otus
W 15.04 (Radeon HD 4850) /sys/class/drm/card0/device/power_methodmówi profilei nie zaakceptuje, dynamicchyba że jest również włączony w linii poleceń jądra.
Sam Brightman,
6

Ok, odejdę od założenia, że ​​masz już jądro 3.11-GIT i masz kartę r6xx-SI lub nowszą kartę ATI. Odtąd musisz tylko dodaćradeom.dpm=1 jako parametr modułu jądra i DPM powinien zostać aktywowany.

Może to być albo parametr GRUB, albo /etc/default/grubzapis pliku

GRUB_CMDLINE_LINUX_DEFAULT="quiet radeon.dpm=1"
sudo update-grub

Lub w .confpliku w /etc/modprobekatalogu:

sudo su -
touch /etc/modprobe.d/radeon-dpm.conf
echo options radeon dpm=1 > /etc/modprobe.d/radeon-dpm.conf 
cat /etc/modprobe.d/radeon-dpm.conf 
# will output "options radeon dpm=1"

Cytat ze źródeł:

Sterownik AMD Radeon ma wreszcie obsługę dynamicznego zarządzania energią! W przypadku układów GPU Radeon zegary rdzenia i zegary pamięci będą dynamicznie dostosowywać się (wraz z napięciami) w zależności od obciążenia, działa to w konfiguracjach z wieloma monitorami i jest prawie równe pod względem funkcji zapewnianych przez PowerPlay i funkcji sterownika AMD Catalyst. Jest to duża wygrana w zakresie oszczędzania energii / baterii podczas korzystania ze sterownika Radeon Linux typu open source, a także oferowania lepszej wydajności dla nowszych układów GPU, które mają taktowanie rozruchowe niższe niż ich częstotliwości znamionowe. Ta obsługa wraca do procesorów graficznych Radeon HD 2000 (R600), ale obecnie nie jest domyślnie włączona, ale wymaga ustawienia radeon.dpm = 1.

Źródła:

Braiam
źródło
nie zapomnij: „sudo update-grub” po wykonaniu „GRUB_CMDLINE_LINUX_DEFAULT =„ cichy radeon.dpm = 1 ””
Frank
koleś, nie masz pojęcia, jak pomocna była mi naprawa karty graficznej ATI HD 4890 na Manjaro. DZIĘKUJĘ CI.
TheFrack,
1

Jeśli tlp spełni twoje intencje:

sudo add-apt-repository ppa: linrunner / tlp

sudo apt-get update

sudo apt-get install tlp tlp-rdw

W przypadku thinkpadów jest to:

sudo apt-get install tp-smapi-dkms acpi-call-tools

Kiedy się nie mylę - tlp nie jest bezpośrednio zależny od wersji jądra - zależy bardziej od sprzętu. Pomiędzy jądrem 3.11 a jądrem 3.10 nie ma ogromnych różnic.

W artykule phoronix wymieniono nowe zmiany w jądrze 3.11:

http://www.phoronix.com/scan.php?page=news_item&px=MTQwODk

Ale w 3.11 nie ma żadnych zmian w zarządzaniu energią w ogóle.

Myślę, że zmiany w dynamicznym zarządzaniu energią w Radeon wpływają tylko na obsługę zasilacza karty graficznej.

Po instalacji tlp ma zacząć od:

sudo tlp start

dschinn1001
źródło
1
Dzięki za odpowiedzi! Ale nie o to mi chodzi. W rzeczywistości istnieje zarządzanie energią, jak można przeczytać w tym artykule na temat Phoronix: phoronix.com/scan.php?page=news_item&px=MTM5NjE
Gladen
1

Oprócz odpowiedzi Gladena pomyślałem, że dokonam dodatkowego zatwierdzenia, sprawdzając, czy dpm działa, aby zaoszczędzić innym frustracji.

W moim przypadku

cat /sys/kernel/debug/dri/64/radeon_pm_info

nie istnieje, więc myślałem, że dpm nie działa.

Jednak najwyraźniej ten plik jest tylko dla mnie w różnych folderach.

cat /sys/kernel/debug/dri/65/radeon_pm_info

lub

cat /sys/kernel/debug/dri/1/radeon_pm_info

oba istnieją i zawierają te same informacje.

luca992
źródło
jest teraz/sys/kernel/debug/dri/0/amdgpu_pm_info
brauliobo
0

Po odpowiedzi od @Gladen znalazłem to

echo parameter > /sys/class/drm/card0/device/power_dpm_state

nie działało Szybkie ls -l /sys/class/drm/pokazało mi, że karta 0 odnosi się do karty zintegrowanej, a karta 1 do karty dyskretnej. Tak więc dla Card1 działa dla mnie następująco:

$ sudo -i

# cat /sys/class/drm/card1/device/power_dpm_state
balanced
# cat /sys/class/drm/card1/device/power_dpm_force_performance_level  
auto
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
#
# echo "battery" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
#
# echo "low" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# echo "performance" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# echo "high" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
-bash: echo: write error: Invalid argument
# # Not sure why the above happened!?
#
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 2    sclk: 75000 mclk: 80000 vddc: 1120 vddci: 0
# echo "high" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
#
# echo "battery" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# 
Danimal
źródło