วิธีการเปิดใช้งานคุณสมบัติการจัดการพลังงานแบบไดนามิก Radeon?


16

ดังนั้นเมื่อเร็ว ๆ นี้ RC's ของ Linux Kernel 3.11 จึงเปิดตัว ดังที่คุณอาจทราบแล้วเคอร์เนลใหม่นี้มาพร้อมกับการจัดการพลังงานแบบไดนามิกสำหรับผู้ใช้ไดรเวอร์โอเพนซอร์ส Radeon เนื่องจากฉันมีปัญหาการจัดการพลังงานกับเคอร์เนลเริ่มต้นของ Ubuntu 13.04 ฉันจึงอยากลอง

มีใครรู้วิธีเปิดใช้งานคุณสมบัติใหม่นี้หลังจากที่ฉันดาวน์โหลดและติดตั้งเคอร์เนล RC ล่าสุดจาก Kernel Testing PPA หรือไม่

แก้ไข: เฉพาะเจาะจงมากขึ้นฉันกำลังพูดถึงเรื่องนี้: http://www.phoronix.com/scan.php?page=news_item&px=MTM5NjE


3.11 ยังไม่ออกและ Ubuntu มีกระจกอย่างเป็นทางการแล้วหรือยัง นั่นเป็นเรื่องใหม่ คุณหมายถึงการทดสอบเคอร์เนล PPAหรือเปล่า
mikewhething

ใช่นั่นคือสิ่งที่ฉันหมายถึง! ฉันดาวน์โหลด RC ล่าสุด (rc2 ณ เวลาที่เขียน) จากที่นั่น
Gladen

1
@ Mikewhething: แก้ไขคำถามเพื่อให้ชัดเจนยิ่งขึ้น ในความเห็นของฉันคำถามนี้ไม่ได้อยู่นอกหัวข้อเลยฉันกำลังพูดถึงการติดตั้งเคอร์เนลใหม่ใน CURRENT Ubuntu เวอร์ชั่น (13.04) มีคนช่วยอธิบายได้ไหมว่าทำไมคำถามนี้ปิด
Gladen

1
คุณถูกต้องควรเปิดใหม่ ขออภัยที่ให้ปิดการลงคะแนน (ไม่ถูกต้อง) อย่างเร่งด่วน
Tom Brossman

@Gladen - คุณหมายถึง tlp หรือเปล่า โดยปกติจะเกี่ยวข้องกับการจัดการพลังงานสำหรับโน้ตบุ๊กและการใช้พลังงานก็เช่นกัน
dschinn1001

คำตอบ:


14

Update (8-05-2014): ตามที่คาดไว้ใน Ubuntu 14.04 DPM ถูกเปิดใช้งานโดยค่าเริ่มต้นสำหรับ AMD GPU รุ่นใหม่ (HD 4000 ถึง HD 7000 series) หากคุณใช้งานรีลีสนี้ร่วมกับการ์ดกราฟิกที่รองรับคุณไม่จำเป็นต้องทำอะไรเพื่อใช้คุณสมบัตินี้

Update (28-11-2013): Ubuntu 13.10 มาพร้อมกับเคอร์เนล 3.11 โดยค่าเริ่มต้น ดังนั้นหากคุณใช้รีลีสนี้สิ่งที่คุณต้องทำคือเพิ่มพารามิเตอร์ลงในเคอร์เนล Linux ฉันปรับปรุงคู่มือให้สอดคล้อง นอกจากนี้ดูเหมือนว่าโดย Ubuntu 14.04, DPM จะถูกเปิดใช้งานตามค่าเริ่มต้นดังนั้นหวังว่าคู่มือนี้จะล้าสมัยไปแล้ว! ;)

ตกลงในไม่กี่วันที่ผ่านมาฉันทดลองเล็กน้อยและเปิดใช้งาน! จริงๆแล้วมันง่ายจริงๆเมื่อคุณรู้วิธีการทำ .. สำหรับคนที่อยากลองฉันจะอธิบายทุกขั้นตอน เริ่มต้นด้วยการติดตั้งเคอร์เนลใหม่

ก่อนอื่นต้องพิจารณาคะแนนสองสามข้อ การสนับสนุน Radeon DPM ใช้สำหรับกราฟิกการ์ดซีรี่ส์ Radeon HD 2000 (R600) และใหม่กว่าเท่านั้น หากคุณใช้การ์ดแสดงผล ATI Radeon ที่เก่าแก่จริงๆการสนับสนุนการจัดการพลังงานได้ถูกทาบทามให้กับไดรเวอร์โอเพ่นซอร์สแล้ว

ขั้นตอนสำหรับ Ubuntu 13.04 หรือต่ำกว่าเท่านั้น:

ในการใช้ Radeon DPM คุณต้องใช้เคอร์เนล Linux 3.11 หรือใหม่กว่า คุณสามารถใช้เคอร์เนล PPA Ubuntu mainline และดาวน์โหลดอิมเมจเคอร์เนล 3.11 Linux ล่าสุดที่เสถียรจากไดเร็กทอรี kernel.ubuntu.comนี้ การอัพเดตเคอร์เนลในอนาคตก็ใช้ได้เช่นกันและสามารถพบได้ในไดเรกทอรีนี้

การใช้คุณสมบัติการจัดการพลังงานแบบไดนามิกจำเป็นต้องมีการอัพเดตเฟิร์มแวร์สำหรับการ์ดกราฟิก สามารถดาวน์โหลดไมโครโค้ด / เฟิร์มแวร์ Radeon ล่าสุดได้จากไดเรกทอรีนี้ คุณต้องการไฟล์* _smc.binตั้งแต่เดือนมิถุนายน หากคุณไม่แน่ใจว่าสมญานามของกราฟิกการ์ดโดยเฉพาะคุณสามารถค้นหาได้จากการดูผลลัพธ์ของlspci -v | น้อย ... ไฟล์ (s) จะต้องมีการวางไว้ใน/ lib / เฟิร์มแว / Radeon หากคุณพยายามใช้ Radeon DPM โดยไม่ต้องใช้เฟิร์มแวร์ความเร่งจะสิ้นสุดลงเมื่อปิดใช้งาน GPU คุณต้องตรวจสอบให้แน่ใจว่าคุณมีเฟิร์มแวร์ที่อัปเดตใน/ lib / firmware / radeon ก่อนการติดตั้งเคอร์เนล> 3.11 - มันจะถูกดึงเข้าสู่อิมเมจที่ติดตั้งโดยอัตโนมัติ

Ubuntu 13.10 หรือต่ำกว่าหรือผู้ใช้ Radeon HD 3000 หรือต่ำกว่า:

การสนับสนุน Radeon DPM ไม่ได้เปิดใช้งานตามค่าเริ่มต้นด้านล่างเคอร์เนล Linux 3.13 หรือสำหรับ GPU รุ่นเก่า คุณต้องเพิ่มพารามิเตอร์radeon.dpm = 1เข้ากับเคอร์เนล Linux เพื่อเปิดใช้งานในกรณีเหล่านี้ สำหรับขั้นตอนใน Ubuntu ให้ดูUbuntu Wikiเกี่ยวกับวิธีการต่าง ๆ

เมื่อติดตั้งเคอร์เนลใหม่การอัปเดตเฟิร์มแวร์และพารามิเตอร์เคอร์เนลจะช่วยให้คุณทำงานได้ดี ตอนนี้คุณต้องรีบูตระบบของคุณและคุณสามารถตรวจสอบว่าทุกอย่างทำงานหลังจากนั้นหรือไม่

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

หมายเหตุ: @ luca992 ชี้ให้เห็นว่าไฟล์radeon_pm_infoอาจอยู่ในไดเรกทอรีอื่น (ตัวอย่างเช่นใน / sys / kernel / debug / dri / 1 / แทน dri / 64 /) หากคุณแน่ใจว่าคุณทำตามขั้นตอนทั้งหมดอย่างถูกต้องคุณสามารถตรวจสอบว่าเป็นกรณีนี้ในสถานการณ์ของคุณหรือไม่

คุณควรเห็นสิ่งนี้:

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

คุณสามารถกำหนดค่า DPM เพิ่มเติมได้โดยเปิด/etc/rc.localและเพิ่มบรรทัดต่อไปนี้:

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

โดยที่"พารามิเตอร์"สามารถเป็น:

  • แบตเตอรี่ (ชุดของระดับประสิทธิภาพที่ตั้งเป้าหมายไว้เพื่อการทำงานที่เหมาะสมที่สุดในแบตเตอรี่)
  • สมดุล (ชุดระดับประสิทธิภาพที่กำหนดเป้าหมายเพื่อการใช้งานทุกวันอย่างเหมาะสมที่สุด)
  • ประสิทธิภาพ (ชุดของระดับประสิทธิภาพที่กำหนดเป้าหมายไว้สำหรับประสิทธิภาพ GPU สูงสุด)

แหล่งที่มา: http://www.botchco.com/agd5f/?p=57


1
ต้องบอกว่า .. อายุการใช้งานแบตเตอรีบนแล็ปท็อปของฉันดีพอ ๆ กับไดรเวอร์ที่เป็นกรรมสิทธิ์ นอกจากนี้ประสิทธิภาพควรดีขึ้นเล็กน้อยเนื่องจากผลข้างเคียงของความสามารถในการเพิ่มความเร็วในการรับน้ำหนักที่มากขึ้น ฉันประทับใจกับผลลัพธ์!
Gladen

command not found: glxinfoถ้าคุณได้รับ ไม่ได้ติดตั้งไว้ sudo apt-get install mesa-utilsการติดตั้งให้ทำ
meshy

แพ็กเกจ apt ชื่ออะไรที่ต้องติดตั้ง?
Entea

"หากคุณใช้งานรีลีสนี้ร่วมกับการ์ดกราฟิกที่รองรับคุณไม่จำเป็นต้องทำอะไรเพื่อใช้คุณสมบัตินี้" - ยกเว้นการตั้งค่าเริ่มต้นคือ 'สมดุล' ดังนั้นคุณอาจต้องการเปลี่ยนเป็น 'แบตเตอรี่' หากคุณต้องการลดการใช้พลังงาน
otus

ใน 15.04 (Radeon HD 4850) /sys/class/drm/card0/device/power_methodพูดprofileและจะไม่ยอมรับdynamicนอกจากนั้นยังเปิดใช้งานบนบรรทัดคำสั่งเคอร์เนล
Sam Brightman

6

ตกลงฉันจะเป็นส่วนหนึ่งจากข้อสันนิษฐานที่คุณมีเคอร์เนล 3.11-GIT และมี r6xx-SI หรือการ์ด ATI รุ่นใหม่กว่า จากนั้นคุณต้องเพิ่มradeom.dpm=1 เป็นพารามิเตอร์โมดูลเคอร์เนลและ DPM ควรเปิดใช้งาน

อาจเป็นได้ทั้งในพารามิเตอร์ GRUB ในการ/etc/default/grubเขียนไฟล์

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

หรือใน.confไฟล์ภายใต้/etc/modprobeไดเรกทอรีของคุณ:

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"

อ้างจากแหล่งที่มา:

ไดรเวอร์ AMD Radeon ในที่สุดก็รองรับการจัดการพลังงานแบบไดนามิก! สำหรับ Radeon GPUs นาฬิกาหลักและนาฬิกาหน่วยความจำจะปรับแบบไดนามิก (พร้อมกับแรงดันไฟฟ้า) ตามโหลดซึ่งทำงานสำหรับการกำหนดค่าหลายจอภาพและเป็นคุณสมบัติใกล้เคียงกับคุณสมบัติที่มีให้โดย PowerPlay และคุณสมบัติในไดรเวอร์ AMD Catalyst นี่เป็นชัยชนะครั้งใหญ่สำหรับการประหยัดพลังงาน / แบตเตอรี่เมื่อใช้ไดรเวอร์ Radeon Linux แบบโอเพ่นซอร์สพร้อมประสิทธิภาพที่ดีกว่าสำหรับ GPU รุ่นใหม่ที่มีความเร็วนาฬิกาบูตที่ต่ำกว่าความถี่ที่กำหนด การสนับสนุนนี้กลับไปเป็น GPU Radeon HD 2000 (R600) แต่ปัจจุบันไม่ได้เปิดใช้งานโดยค่าเริ่มต้น แต่ต้องมีการตั้งค่าradeon.dpm = 1

แหล่งที่มา:


อย่าลืม: 'sudo update-grub' หลังจากทำ 'GRUB_CMDLINE_LINUX_DEFAULT = "quiet radeon.dpm = 1"'
Frank

เพื่อนคุณไม่มีความคิดว่าเป็นประโยชน์สำหรับฉันที่จะแก้ไขกราฟิกการ์ด ATI HD 4890 ใน Manjaro ขอขอบคุณ.
TheFrack

1

ในกรณีที่ tlp ตรงตามความต้องการของคุณ:

sudo add-apt-repository ppa: linrunner / tlp

sudo apt-get update

sudo apt-get install tlp tlp-rdw

สำหรับ thinkpads มันคือ:

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

เมื่อไม่ผิด - tlp ไม่ได้ขึ้นอยู่กับรุ่นของเคอร์เนล - มันขึ้นกับฮาร์ดแวร์มากขึ้น ระหว่างเคอร์เนล 3.11 และเคอร์เนล 3.10 ไม่มีความแตกต่างอย่างดุเดือด

ในบทความของ phoronix แสดงรายการเกี่ยวกับการเปลี่ยนแปลงใหม่ในเคอร์เนล 3.11:

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

แต่ใน 3.11 ไม่มีการเปลี่ยนแปลงเกี่ยวกับการจัดการพลังงานโดยทั่วไป

ฉันคิดว่าการเปลี่ยนแปลงการจัดการพลังงานแบบไดนามิกสำหรับ Radeon ส่งผลกระทบต่อการสนับสนุนกับแหล่งจ่ายไฟของกราฟิกการ์ดเท่านั้น

หลังจากการติดตั้ง tlp คือเริ่มต้นด้วย:

sudo tlp start


1
ขอบคุณสำหรับคำตอบ! แต่นั่นไม่ใช่สิ่งที่ฉันหมายถึง มีการจัดการพลังงานอย่างที่คุณสามารถอ่านได้ในบทความนี้บน Phoronix: phoronix.com/scan.php?page=news_item&px=MTM5NjE
Gladen

1

นอกเหนือจากคำตอบของ Gladen ฉันคิดว่าฉันจะให้คำมั่นสัญญาเพิ่มเติมเกี่ยวกับการตรวจสอบความถูกต้องของ dpm กำลังทำงานเพื่อช่วยคนอื่นให้หงุดหงิด

ในกรณีของฉัน

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

ไม่มีอยู่ฉันจึงคิดว่า dpm ไม่ทำงาน

อย่างไรก็ตามเห็นได้ชัดว่าไฟล์อยู่ในโฟลเดอร์ที่แตกต่างกันสำหรับฉัน

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

หรือ

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

ทั้งที่มีอยู่และแสดงรายการข้อมูลเดียวกัน


ได้แล้วตอนนี้/sys/kernel/debug/dri/0/amdgpu_pm_info
brauliobo

0

ติดตามคำตอบจาก @Gladen ฉันพบว่า

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

ไม่ทำงาน อย่างรวดเร็วls -l /sys/class/drm/แสดงให้ฉันเห็นว่า card0 หมายถึงการ์ดในตัว & card1 กับการ์ดแยก ดังนั้นต่อไปนี้ใช้ได้กับฉันใน 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
# 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.