Bagaimana cara mengaktifkan fitur manajemen daya dinamis Radeon?

16

Jadi baru-baru ini, RC Linux Kernel 3.11 dirilis. Seperti yang Anda ketahui, kernel baru ini dilengkapi dengan manajemen daya dinamis untuk pengguna driver Radeon open source. Karena saya memiliki masalah manajemen daya dengan kernel default Ubuntu 13.04, saya ingin mencobanya.

Adakah seseorang yang tahu cara mengaktifkan fitur baru ini setelah saya mengunduh dan menginstal RC kernel terbaru dari KPA Pengujian Kernel?

EDIT: Lebih khusus, saya berbicara tentang ini: http://www.phoronix.com/scan.php?page=news_item&px=MTM5NjE

Gladen
sumber
3.11 belum dirilis, dan Ubuntu sudah memiliki mirror resmi? Itu baru. Apakah Anda, mungkin, bermaksud menguji kernel PPA ?
mikewh Apapun
Ya, itu yang saya maksud! Saya mengunduh RC terbaru (rc2 pada saat penulisan) dari sana.
Gladen
1
@mikewhthing: mengedit pertanyaan untuk membuatnya lebih jelas. Menurut pendapat saya, pertanyaan ini bukan di luar topik sama sekali, saya berbicara tentang menginstal kernel baru dalam versi CURRENT Ubuntu (13.04). Adakah yang bisa menjelaskan mengapa pertanyaan ini ditutup?
Gladen
1
Anda benar, ini harus dibuka kembali. Permintaan maaf untuk suara tergesa-gesa (salah) ditutup.
Tom Brossman
@Gladen - maksud Anda tlp? Ini biasanya melibatkan manajemen daya untuk tuduhan notebook, dan juga menangani penggunaan daya.
dschinn1001

Jawaban:

14

Pembaruan (8-05-2014): Seperti yang diharapkan, di Ubuntu 14,04 DPM diaktifkan secara default untuk semua GPU AMD modern (seri HD 4000 hingga HD 7000). Jika Anda menjalankan rilis ini bersama-sama dengan kartu grafis yang didukung, Anda tidak perlu melakukan apa pun untuk menggunakan fitur ini.

Pembaruan (28-11-2013): Ubuntu 13.10 dikirimkan dengan kernel 3.11 secara default. Jadi jika Anda menggunakan rilis ini, yang perlu Anda lakukan adalah menambahkan parameter ke Linux Kernel. Saya memperbarui panduan sesuai. Selain itu, sepertinya dengan Ubuntu 14.04, DPM akan diaktifkan secara default, jadi semoga panduan ini sudah usang saat itu! ;)

Oke, dalam beberapa hari terakhir saya bereksperimen sedikit dan mengaktifkannya! Sebenarnya sangat mudah sekali Anda mengetahui cara melakukannya .. Untuk orang-orang yang juga ingin mencobanya, saya akan menjelaskan setiap langkah. Dimulai dengan pemasangan kernel baru.

Pertama-tama beberapa hal yang perlu dipertimbangkan. Dukungan Radeon DPM hanya untuk kartu grafis seri Radeon HD 2000 (R600) dan yang lebih baru. Jika Anda menggunakan kartu grafis ATI Radeon yang benar-benar tua, dukungan manajemen daya sudah digunakan pada driver open-source.

Langkah-langkah untuk Ubuntu 13.04 atau hanya di bawah ini:

Untuk menggunakan Radeon DPM Anda memerlukan kernel Linux 3.11 atau yang lebih baru. Anda dapat menggunakan kernel utama PPA Ubuntu dan mengunduh image kernel Linux 3.11 stabil terbaru dari direktori kernel.ubuntu.com ini . Setiap pembaruan kernel di masa depan juga baik dan kemudian juga dapat ditemukan di direktori ini.

Menggunakan fitur manajemen daya dinamis memerlukan firmware yang diperbarui untuk kartu grafis. Kode / firmware Radeon terbaru dapat diunduh dari direktori ini . Anda memerlukan file * _smc.bin mulai Juni. Jika Anda tidak yakin dengan kode nama kartu grafis spesifik Anda, Anda biasanya dapat menemukannya dari melihat keluaran lspci -v | less ... File harus ditempatkan di / lib / firmware / radeon . Jika Anda mencoba menggunakan Radeon DPM tanpa firmware, akselerasi akan berakhir dinonaktifkan untuk GPU. Anda juga perlu memastikan bahwa Anda memiliki firmware yang diperbarui di / lib / firmware / radeon sebelum menginstal kernel> 3.11 - itu akan ditarik secara otomatis ke dalam gambar yang diinstal.

Ubuntu 13.10 atau lebih rendah, atau pengguna Radeon HD 3000 atau lebih rendah:

Dukungan Radeon DPM tidak diaktifkan secara default di bawah kernel Linux 3.13, atau untuk GPU yang lebih lama. Anda harus menambahkan parameter radeon.dpm = 1 ke kernel Linux untuk mengaktifkannya dalam kasus ini. Untuk langkah-langkah melakukannya di Ubuntu, lihat Wiki Ubuntu tentang berbagai cara.

Dengan kernel baru terinstal, firmware diperbarui dan parameter Kernel diaktifkan, Anda sebaiknya melanjutkan. Anda sekarang harus reboot sistem Anda dan Anda dapat memeriksa apakah semuanya berfungsi setelah itu dengan melakukan

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

Catatan: @ luca992 menunjukkan bahwa file radeon_pm_info bisa berada di direktori yang berbeda (misalnya di / sys / kernel / debug / dri / 1 / bukannya dri / 64 /). Jika Anda benar-benar yakin mengikuti semua langkah dengan benar, Anda dapat memeriksa apakah ini bisa terjadi dalam situasi Anda.

Anda harus melihat sesuatu seperti ini:

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

Anda selanjutnya dapat mengkonfigurasi DPM dengan membuka /etc/rc.local dan menambahkan baris berikut:

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

Di mana "parameter" dapat:

  • baterai (satu set tingkat kinerja yang ditargetkan untuk operasi baterai yang optimal)
  • seimbang (seperangkat tingkat kinerja yang ditargetkan untuk penggunaan sehari-hari yang optimal)
  • kinerja (satu set tingkat kinerja yang ditargetkan untuk kinerja GPU tertinggi)

Sumber: http://www.botchco.com/agd5f/?p=57

Gladen
sumber
1
Harus saya katakan .. daya tahan baterai pada laptop saya sekarang sama baiknya dengan driver berpemilik. Kinerja juga harus sedikit lebih baik sebagai efek samping karena dapat mengunci kembali ke kecepatan yang lebih tinggi pada beban yang lebih berat. Saya terkesan dengan hasilnya!
Gladen
Jika Anda mendapatkan command not found: glxinfo. Maka itu tidak diinstal. Untuk menginstal, lakukan sudo apt-get install mesa-utils.
meshy
Apa nama paket apt yang perlu diinstal?
Entea
"Jika Anda menjalankan rilis ini bersama-sama dengan kartu grafis yang didukung, Anda tidak perlu melakukan apa pun untuk menggunakan fitur ini." - Kecuali pengaturan default adalah 'seimbang', jadi Anda mungkin ingin beralih ke 'baterai' jika Anda ingin meminimalkan konsumsi daya.
otus
Dalam 15.04 (Radeon HD 4850) /sys/class/drm/card0/device/power_methodmengatakan profiledan tidak akan menerima dynamickecuali juga diaktifkan pada baris perintah kernel.
Sam Brightman
6

Ok, saya akan berpisah dari anggapan Anda sudah memiliki kernel 3.11-GIT dan memiliki r6xx-SI atau kartu ATI yang lebih baru. Dari sana, Anda hanya perlu menambahkan radeom.dpm=1 sebagai parameter modul kernel dan DPM harus diaktifkan.

Bisa jadi dalam parameter GRUB, dalam /etc/default/grubfile tulis

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

Atau dalam .conffile di bawah /etc/modprobedirektori Anda :

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"

Kutipan dari sumber:

Driver AMD Radeon akhirnya memiliki dukungan manajemen daya yang dinamis! Untuk GPU Radeon, jam inti dan jam memori akan secara dinamis menyesuaikan (bersama dengan voltase) berdasarkan beban, ini bekerja untuk konfigurasi multi-monitor, dan hampir setara dengan apa yang disediakan oleh PowerPlay dan fitur-fitur pada driver AMD Catalyst. Ini adalah kemenangan besar untuk menghemat daya / baterai saat menggunakan driver Radeon Linux open-source bersama dengan menawarkan kinerja yang lebih baik untuk GPU yang lebih baru yang memiliki kecepatan jam boot yang lebih rendah daripada frekuensi nilai mereka. Dukungan ini kembali ke GPU Radeon HD 2000 (R600) tetapi saat ini tidak diaktifkan secara default tetapi memerlukan pengaturan radeon.dpm = 1.

Sumber:

Braiam
sumber
jangan lupa: 'sudo perbarui-grub' setelah melakukan 'GRUB_CMDLINE_LINUX_DEFAULT = "quiet radeon.dpm = 1"'
Frank
Bung, Anda tidak tahu betapa membantu ini bagi saya untuk memperbaiki kartu grafis ATI HD 4890 di Manjaro. TERIMA KASIH.
TheFrack
1

Jika tlp memenuhi niat Anda:

sudo add-apt-repository ppa: linrunner / tlp

sudo apt-get pembaruan

sudo apt-get install tlp tlp-rdw

Untuk thinkpads itu adalah:

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

Ketika saya tidak salah - tlp tidak langsung tergantung pada versi kernel - lebih tergantung pada perangkat keras. Antara Kernel 3.11 dan Kernel 3.10 tidak ada perbedaan liar.

Dalam artikel phoronix tercantum tentang perubahan baru di Kernel 3.11:

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

Tetapi pada 3.11 tidak ada perubahan tentang manajemen daya secara umum.

Saya pikir perubahan manajemen daya dinamis untuk Radeon hanya memengaruhi dukungan dengan catu daya kartu grafis.

Setelah instalasi, tlp dimulai dengan:

sudo tlp mulai

dschinn1001
sumber
1
Terima kasih atas tanggapannya! Tapi bukan itu yang saya maksud. Sebenarnya ada manajemen daya yang dapat Anda baca di artikel ini di Phoronix: phoronix.com/scan.php?page=news_item&px=MTM5NjE
Gladen
1

Selain jawaban Gladen, saya pikir saya akan membuat komitmen tambahan untuk memverifikasi dpm bekerja untuk menyelamatkan orang lain frustrasi.

Dalam kasus saya

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

tidak ada jadi saya pikir dpm tidak berfungsi.

Namun ternyata file itu hanya ada di folder yang berbeda untuk saya.

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

atau

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

keduanya ada dan daftar info yang sama.

luca992
sumber
sekarang/sys/kernel/debug/dri/0/amdgpu_pm_info
brauliobo
0

Menindaklanjuti jawaban dari @Gladen, saya menemukan itu

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

tidak bekerja Cepat ls -l /sys/class/drm/menunjukkan kepada saya bahwa card0 merujuk pada kartu terintegrasi & card1 ke kartu diskrit. Jadi berikut ini berfungsi untuk saya di card1:

$ 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
sumber