ฉันจะเปลี่ยนแปลง Powertop ได้อย่างถาวรได้อย่างไร


75

ฉันอยู่ใน Compaq 615 และเป็นแฟนเสียงดัง ไม่มากที่คุณสามารถทำสิ่งนั้นได้ แต่ฉันพยายามที่จะทำให้ซีพียู / GPU เย็นที่สุดเท่าที่จะทำได้ นี่คือสิ่งที่ Powertop พูดได้:

PowerTOP 1.97 - ภาพรวม - สถิติว่าง - สถิติความถี่ - สถิติอุปกรณ์ - ปรับได้

ถ้าฉันเปลี่ยนทั้งหมดเป็น "ดี" การเปลี่ยนแปลงจะไม่สามารถรีบูตได้

ฉันเพิ่มบรรทัดลงใน "ด้วง" - ไฟล์ตามที่แนะนำที่นี่

ฉันจะทำให้ Powertop แนะนำ "Tunables" ถาวรได้อย่างไร


คุณแก้ไขไฟล์ไม่ถูกต้อง คุณอาจสับสนเส้นทางหรือลืมว่าคุณต้องใช้sudoในการแก้ไขไฟล์
Chan-Ho Suh

1
เพียงสองเซ็นต์ของฉัน: หลังจากปิดการใช้งานสิ่งที่ powertop กล่าวว่าไม่ดีสำหรับแบตเตอรี่ฉันพบว่าตัวเองอยู่ในขั้นตอนที่ฉันไม่สามารถเสียบอุปกรณ์ USB ใด ๆ เพราะมันจะไม่ได้รับการยอมรับ ฉันต้องโหลดโมดูลด้วยตนเองในเคอร์เนลและต่อมาเสียบอุปกรณ์ การออกจากตัวเลือก "ตัวควบคุม USB" กลายเป็น 'ไม่ดี' ทำให้ทำงานได้ตามที่คาดไว้
Pedro Brito


ก่อนอื่นให้ตรวจสอบว่า Tunable ที่แนะนำแต่ละอันนั้นประหยัดพลังงานหรือไม่ หมายเหตุ # 2: การวัดจากpowertopอาจไม่แม่นยำเนื่องจากการปรับเทียบแบตเตอรี่ภายในใหม่ ที่มา: askubuntu.com/questions/161774/…
สำรองข้อมูล Pro

โปรดยอมรับวิธีแก้ปัญหา!
Elod

คำตอบ:


64

หากคุณเปลี่ยนทั้งหมดเป็นดีคุณสามารถใช้คำสั่งได้

sudo powertop --auto-tune

โทร powertop ปรับอัตโนมัติโดยอัตโนมัติในเวลาบูต

1

ในระบบที่ใช้systemdเป็นผู้จัดการเริ่มต้น (เช่น Ubuntu) ให้ติดตั้งเป็นบริการ:

cat << EOF | sudo tee /etc/systemd/system/powertop.service
[Unit]
Description=PowerTOP auto tune

[Service]
Type=idle
Environment="TERM=dumb"
ExecStart=/usr/sbin/powertop --auto-tune

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable powertop.service

2

บนระบบที่ไม่ได้ใช้systemdหรือถ้าคุณต้องการใช้รูปแบบเก่ากับ/etc/rc.localไฟล์ให้เพิ่มบรรทัดนี้ในตอนท้ายเพื่อ/etc/rc.local:

powertop --auto-tune
exit 0

หมายเหตุ:หากสคริปต์มีอยู่แล้วexit 0ให้แน่ใจว่าคุณวางคำสั่งทั้งหมดก่อนที่บรรทัดนั้นสาเหตุที่ออกจากสคริปต์

หากคุณต้องการตั้งค่าทั้งหมดให้ดี แต่หนึ่งบรรทัดคุณสามารถปรับแต่งอัตโนมัติก่อนแล้วจึงปิดการใช้งานการตั้งค่าหนึ่งด้วยสายพิเศษตัวอย่างเช่นหากคุณต้องการเปิดใช้งานอุปกรณ์หน้าจอสัมผัสอีกครั้ง (ที่ usb 2-7) เพิ่ม ก่อนหน้านี้exit 0:

powertop --auto-tune
echo 'on' > '/sys/bus/usb/devices/2-7/power/control'
exit 0

หมายเหตุ:บน Linux ด้วยsystemdตรวจสอบให้แน่ใจว่า /etc/rc.local ทำงานเมื่อเริ่มต้นโดยบริการความเข้ากันได้

systemctl status rc-local.service

1
ฉันสังเกตเห็นว่าการปิดใช้งานการเชื่อมต่อ WiFiช่วยประหยัดพลังงานได้มากขึ้น แม้จะมีตัวเลือก power_save ตั้งการ์ด WiFi ยังคงใช้ประมาณ 4 W ในระบบของฉันถ้าใช้งานอยู่
rubo77

1
FYI:ด้วยเหตุผลบางอย่างฉันพบว่าฉันต้องเพิ่มคำสั่งเหล่านี้ไปยัง rc.local เป็นบรรทัดเดียวในรูปแบบpowertop --auto-tune && echo 'on' > '/sys/bus/usb/devices/5-2/power/control'เพื่อให้มันทำงานได้อย่างไร้ที่ติในแต่ละเซสชั่นเมื่อเริ่มต้น
Rich.T.

นี่ควรเป็นคำตอบที่ได้รับการยืนยันแล้ว!
Costin Gu Decă

นี่เป็นคำตอบที่มีประโยชน์ที่สุดสำหรับฉัน หมายเหตุ:ในระบบของฉัน ( อูบุนตู 16.04 ) inactive (dead)การส่งออกของการอ่านดังกล่าวข้างต้น การทำให้rc.localสามารถเรียกใช้งานได้โดยการรัน sudo chmod + x /etc/rc.local บรรลุผลตามที่ต้องการหลังจากรีบูต
eldad-a

1
ฉันได้เพิ่มตัวเลือก systemd เป็นบริการ
rubo77

24

นี่คือวิธีที่คุณจะทำการเปลี่ยนแปลงอย่างถาวร:

sudo powertop --html

สิ่งนี้จะสร้างpowertop-xxxxxxxxxx-xxxxxx.htmlไฟล์

ตอนนี้ทั้งเปิดได้ในเบราว์เซอร์และคัดลอกechoคำสั่งจาก "... ในความต้องการของการปรับแต่ง" /etc/rc.localเพื่อ

หรือแยกคำสั่งโดยใช้สิ่งนี้:

echo "grep 'echo ' powertop-20120805-125538.html | sed 's/.*\(echo.*\);.*/\1/g'"

หากrc.localมีexit 0คุณต้องแน่ใจว่าได้ใส่คำสั่งก่อนบรรทัดนี้


1
Eliah ฉันใช้ Powertop 2.0 ซึ่งฉันรวบรวม ฉันเรียกใช้คำสั่ง --html แล้วไม่สามารถหาตำแหน่งที่จะฝากไฟล์ได้หรือแม้ว่ามันจะเขียนอยู่ก็ตาม นอกจากนี้เมื่อ Powertop เริ่มฉันได้รับข้อความนี้: ไม่สามารถโหลดจากไฟล์ /var/cache/powertop/saved_parameters.powertop
Kendor

พยายามใช้วิธีนี้ แต่ไฟล์ powertop ของฉัน (@Kendor - ได้รับการบันทึกในไดเรกทอรีเดียวกับที่คุณอยู่) ไม่มีคำสั่ง echo (หรืออื่น ๆ )
metakermit

@ kermit666 คุณจะมี "echo" ในนั้นเท่านั้นหากมีสิ่งที่จะเปลี่ยนแปลง ดังนั้นหากคุณใช้การตั้งค่าใน powertop คุณต้องเลิกทำการตั้งค่าก่อน บางทีการรีบูตอาจจะง่ายขึ้น
pumpupthevolume

ทำไมมันจึงซับซ้อนฉจัง? หาก powertop จะส่งออกสคริปต์ถ้าฉันต้องการ! โซลูชันของคุณไม่สนใจว่ามากกว่า> ถูกเขียนเป็น & gt; ภายในเอาต์พุต HTML ...
Zordid

2
คุณไม่สามารถ grep สำหรับ 'echo' เพราะคำแนะนำบางอย่างเริ่มต้น 'iw dev ... '
Tom Chiverton

15

คุณต้องดาวน์โหลดและรวบรวมเพราะไม่มีใครมีรุ่นล่าสุด

ดาวน์โหลด powertop https://01.org/powertop/downloads/2013/powertop-v2.3

powertop-2.3.tar.gz <<<คลิก & ดาวน์โหลดฉัน

ก่อนที่จะรวบรวมคุณจะต้องติดตั้งการอ้างอิง

การติดตั้งการอ้างอิง (เพียงคัดลอกวางคำสั่งดังต่อไปนี้)

sudo apt-get install libtool autoconf libnl-dev ncurses-dev pciutils-dev build-essential -y

การติดตั้ง Powertop

ในการสร้างและติดตั้ง PowerTOP ให้พิมพ์คำสั่งต่อไปนี้

cd Downloads/powertop*  # assuming that you have downloaded in Downloads folder in you home directory   
configure 
make        # use -j option if you want to see details below
make install

นอกจากนี้คุณยังสามารถใช้-j2กี่แกนคุณต้องการที่จะใช้ใน./make .Replace -j2กับสิ่งที่จำนวนของแกน CPU คุณต้องการที่จะใช้สำหรับการรวบรวม ตัวอย่างเช่นฉันได้ใช้. / make -j8

มีการติดตั้ง Powertop คุณสามารถถอดปลั๊กไฟ ac และสามารถทำงานได้

sudo powertop

อย่างไรก็ตามการตั้งค่าส่วนใหญ่จะไม่ได้รับการบันทึกและจะหายไปหลังจากรีบูต อย่างไรก็ตามคุณสามารถทำให้เป็นแบบถาวรได้โดยใช้คำสั่งที่ให้ไว้ในรายงาน html PowerTOP หากต้องการสร้างรายงาน HTML ให้เรียกใช้คำสั่งต่อไปนี้: webupd8.org

sudo powertop --html=powertop.html

การใช้งานคำแนะนำ Powertop กับแบตเตอรี่และกลับไปเพื่อเพิ่มประสิทธิภาพการทำงานของพลังงาน AC

สำหรับสิ่งที่คุณต้องทำสคริปต์ที่เรียกใช้คำแนะนำ powertop ในแบตเตอรี่และเพิ่มประสิทธิภาพการใช้พลังงาน ac

วางไว้ใน /etc/pm/power.d/ และให้สิทธิ์การดำเนินการ

sudo gedit /etc/pm/power.d/power

คัดลอกวางต่อไปนี้ในไฟล์พลังงาน

 #!/bin/sh

 # Shell script to reduce energy consumption when running battery. Place
 # it in /etc/pm/power.d/ and give execution rights.

 if on_ac_power; then

 # Start AC powered settings --------------------------------------------#


 # Disable laptop mode
 echo 0 > /proc/sys/vm/laptop_mode

 #NMI watchdog should be turned on
 for foo in /proc/sys/kernel/nmi_watchdog;
 do echo 1 > $foo;
 done

 # Set SATA channel: max performance
 for foo in /sys/class/scsi_host/host*/link_power_management_policy;
 do echo max_performance > $foo;
 done

 # CPU Governor: Performance
 for foo in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor;
 do echo performance > $foo;
 done 

 # Disable USB autosuspend
 for foo in /sys/bus/usb/devices/*/power/level;
 do echo on > $foo;
 done

 # Disable PCI autosuspend
 for foo in /sys/bus/pci/devices/*/power/control;
 do echo on > $foo;
 done

 # Disabile audio_card power saving
 echo 0 > /sys/module/snd_hda_intel/parameters/power_save_controller
 echo 0 > /sys/module/snd_hda_intel/parameters/power_save

 # End AC powered settings ----------------------------------------------#

 else

 # Start battery powered settings ---------------------------------------#

 # Enable Laptop-Mode disk writing
 echo 5 > /proc/sys/vm/laptop_mode

 #NMI watchdog should be turned on
 for foo in /proc/sys/kernel/nmi_watchdog;
 do echo 0 > $foo;
 done

 # Set SATA channel to power saving
 for foo in /sys/class/scsi_host/host*/link_power_management_policy;
 do echo min_power > $foo;
 done

 # Select Ondemand CPU Governor
 for foo in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor;
 do echo ondemand > $foo;
 done

 # Activate USB autosuspend
 for foo in /sys/bus/usb/devices/*/power/level;
 do echo auto > $foo;
 done

 # Activate PCI autosuspend
 for foo in /sys/bus/pci/devices/*/power/control;
 do echo auto > $foo;
 done

 # Activate audio card power saving
 # (sounds shorter than 5 seconds will not be played)
 echo 5 > /sys/module/snd_hda_intel/parameters/power_save
 echo 1 > /sys/module/snd_hda_intel/parameters/power_save_controller

 # End battery powered settings -----------------------------------------#

 fi

ตอนนี้คุณต้องกำหนดสิทธิ์การดำเนินการของสคริปต์ไฟฟ้า

 sudo chmod +x /etc/pm/power.d/power

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

ลิงค์ที่มีประโยชน์

http://ubuntuforums.org/showthread.php?t=1855126&page=3 http://www.webupd8.org/2012/08/install-powertop-21-in-ubuntu-1204.html

สำหรับ -j Option http://dnscrypt.org/


1
ฉันขอแนะนำให้คุณใช้checkinstallแทน นอกจากนี้ยังจะช่วยให้คุณสร้างแพ็คเกจ. deb ซึ่งคุณสามารถถอนการติดตั้ง / อัปเกรดได้ในภายหลังคุณสามารถติดตั้งได้sudo apt-get install
GuySoft

bash: ./make: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว - ทำไมจึงเป็นเช่นนั้น pastebin.com/bX3iLygx
Tracy Iquiña

@ TracyIquiñaขออภัย ... sudo make not ./make .....
Qasim

1
@Qasim ฉันตระหนักความผิดพลาดที่เมื่อวานนี้ (และอ่านความคิดเห็นของคุณเพียงแค่ตอนนี้) ผมเลยและmake sudo checkinstallมันทำงานได้ตามที่คาดไว้ ไฟล์ README ต้องการการแก้ไขในไฟล์นั้น
Tracy Iquiña

@ TracyIquiña thats g8 ยังโปรดดูคำตอบของฉันaskubuntu.com/questions/285434/…
Qasim

9

ไม่ใช่คำตอบที่คุณขอ แต่คุณสามารถลองใช้งานlaptop-modeได้ เพื่อทำสิ่งนี้:

เปิด terminal และประเภท:

gksu gedit /etc/default/acpi-support

ป้อนรหัสผ่านแล้วไปที่ด้านล่างและในส่วนที่พูดถึงโหมดแล็ปท็อปการเขียนจริงแทนที่จะเป็นเท็จปิดเอกสารและบันทึกแน่นอน

จากนั้นป้อน:

gksu gedit /etc/laptop-mode/laptop-mode.conf

ไฟล์นี้จะค่อนข้างนานกว่านี้ แต่นี่คือวิธีที่ฉันแก้ไขของฉัน ฉันเพิ่ม # ก่อนบรรทัดเริ่มต้นในบรรทัดที่ฉันแก้ไขเช่นนี้:

#
# Should laptop mode tools add the "noatime" option to the mount options when 
# laptop mode is enabled?
#
#CONTROL_NOATIME=0
CONTROL_NOATIME=1

ค่าเริ่มต้นคือ 0 และฉันหันไป 1 แก้ไขเฉพาะบรรทัดที่ฉันแก้ไข มีตัวเลือกไม่กี่อย่างในที่นี่คุณจะต้องตรวจสอบและสลับตามที่เห็นสมควร เมื่อคุณอยู่ใกล้และบันทึก

หลังจากเสร็จแล้วคุณจะต้องพิมพ์:

gksu gedit

ตอนนี้ในตัวแก้ไขข้อความคลิกเปิดและเข้าไปในโฟลเดอร์ /etc/laptop-mode/conf.d/ มีไฟล์ต่าง ๆ คุณน่าสนใจใน usb autosuspend, hda audio, iwl intel wireless, intel sata และกำหนดการ mc powersaving เปิดไฟล์เหล่านี้ทีละคนและอ่านพวกเขาพวกเขาเขียนในภาษาอังกฤษมาตรฐานที่สมบูรณ์แบบและอธิบายทุกอย่างได้ดีมาก คุณจะรู้ว่าต้องทำอย่างไรโปรดจำไว้ว่า 0 ย่อมาจาก off และ 1 เป็นเกือบตลอดเวลา

เมื่อเสร็จแล้วให้ปิดและบันทึกไฟล์แต่ละไฟล์

ตอนนี้รีสตาร์ทและชื่นชมโหมดแล็ปท็อปที่ใช้งานอยู่จากนั้น:

sudo powertop

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

ที่มา: http://ubuntuforums.org/showthread.php?t=1157408&p=7271995#post7271995 (โดยAxx83 )


ขอบคุณ แต่ไม่มีวิธีใดที่จะทำให้การเปลี่ยนแปลง Powertop เป็นไปอย่างถาวรใช่ไหม
H3R3T1K

ฉันค้นหาหัวข้อและทางออกที่ดีที่สุดที่ฉันสามารถหาได้ (นอกไซต์) คือการเปิดใช้งานโหมดแล็ปท็อป มันเป็นวิธีแก้ปัญหา - ถ้าฉันพบทางออกที่ดีกว่าฉันจะเพิ่มมันเช่นกัน หวังว่านี่จะช่วยได้ในขณะนี้
rlemon

2
ในไฟล์สนับสนุน acpi จะกล่าวถึงสิ่งนี้เกี่ยวกับโหมดแล็ปท็อป: "# หมายเหตุ: เพื่อเปิดใช้งาน" โหมดแล็ปท็อป "(เพื่อหมุนฮาร์ดไดรฟ์ของคุณเป็นระยะเวลานานกว่า #) ติดตั้งแพคเกจเครื่องมือโหมดแล็ปท็อป ใน /etc/laptop-mode/laptop-mode.conf " ฉันติดตั้งแพคเกจและเปิดไฟล์ ฉันคิดว่าตอนนี้ฉันอยู่ในโหมดแล็ปท็อป? มีข้อความระบุว่าเปิดใช้งาน "เครื่องมือโหมดแล็ปท็อป" ฉันได้ทำการเปลี่ยนแปลงอื่น ๆ ที่คุณแนะนำ (ตอนกลางคืน)
H3R3T1K

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

6

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

udevกฎที่ถูกต้องทำให้การตั้งค่าใช้ไม่ได้เมื่อไม่มีฮาร์ดแวร์ทำให้การกำหนดค่าแบบพกพา และคุณเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานภายในของเคอร์เนล Linux ของคุณ :-) การกำหนดค่าทำด้วยวิธีนี้ยังใช้เมื่อไม่ใช้แบตเตอรี่

ตัวอย่างสำหรับการปรับค่าEnable SATA link power Managmenet for host0ได้ ข้อเสนอแนะคือ:

# echo 'min_power' > '/sys/class/scsi_host/host0/link_power_management_policy'`

นี่ทำให้คุณทราบว่าฮาร์ดแวร์อยู่ที่ใด: ใน / sys / class / scsi_host คุณสามารถตรวจสอบสิ่งนี้ด้วย:

# udevadm info -a -p /sys/class/scsi_host/host?
…
  looking at device '/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0':
    KERNEL=="host0"
    SUBSYSTEM=="scsi_host"
…
    ATTR{eh_deadline}=="0"
    ATTR{link_power_management_policy}=="max_performance"
    ATTR{host_busy}=="0"

อย่าสัมผัสกฎ udev ของระบบใน /lib/udev/rules.d/ และสร้างไฟล์กฎ udev ของคุณเองที่ระดับ 60 ใน /etc/udev/rules.d/ ตัวอย่างเช่นตัวแก้ไขนาโน:

$ nano /etc/udev/rules.d/60-power.rules

ตัวอย่างอื่น ๆ เขียนกฎเช่น:

KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}="min_power"

ฉันจะบอกว่าอย่าและทำให้กฎของคุณดียิ่งขึ้นโดยใช้เฉพาะเมื่อนโยบายการจัดการพลังงานลิงก์ถูกตั้งค่าเป็น max_performance ดูที่ความแตกต่างเล็กน้อย (มองหาเครื่องหมายสมการคู่):

KERNEL=="host[0-5]", SUBSYSTEM=="scsi_host", ATTR{link_power_management_policy}=="max_performance", ATTR{link_power_management_policy}="min_power"

ทดสอบคุณด้วยudevadm test /devices/…:

# udevadm test /devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0/link_power_management_policy
calling: test
version 204
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

=== trie on-disk ===
tool version:          204
file size:         5660180 bytes
header size             80 bytes
strings            1265196 bytes
nodes              4394904 bytes
load module index
read rules file: /lib/udev/rules.d/40-crda.rules
read rules file: /lib/udev/rules.d/40-gnupg.rules
read rules file: /lib/udev/rules.d/40-hyperv-hotadd.rules
read rules file: /lib/udev/rules.d/42-usb-hid-pm.rules
read rules file: /lib/udev/rules.d/50-firmware.rules
read rules file: /lib/udev/rules.d/50-udev-default.rules
read rules file: /lib/udev/rules.d/55-dm.rules
read rules file: /lib/udev/rules.d/60-cdrom_id.rules
read rules file: /lib/udev/rules.d/60-keyboard.rules
read rules file: /lib/udev/rules.d/60-persistent-alsa.rules
read rules file: /lib/udev/rules.d/60-persistent-input.rules
read rules file: /lib/udev/rules.d/60-persistent-serial.rules
read rules file: /lib/udev/rules.d/60-persistent-storage-dm.rules
read rules file: /lib/udev/rules.d/60-persistent-storage-tape.rules
read rules file: /lib/udev/rules.d/60-persistent-storage.rules
read rules file: /lib/udev/rules.d/60-persistent-v4l.rules
read rules file: /etc/udev/rules.d/60-power.rules
read rules file: /lib/udev/rules.d/61-accelerometer.rules
read rules file: /lib/udev/rules.d/64-btrfs.rules
read rules file: /etc/udev/rules.d/70-persistent-net.rules
read rules file: /lib/udev/rules.d/70-power-switch.rules
read rules file: /lib/udev/rules.d/70-uaccess.rules
read rules file: /lib/udev/rules.d/71-biosdevname.rules
read rules file: /lib/udev/rules.d/71-seat.rules
read rules file: /lib/udev/rules.d/73-idrac.rules
read rules file: /lib/udev/rules.d/73-seat-late.rules
read rules file: /lib/udev/rules.d/75-net-description.rules
read rules file: /lib/udev/rules.d/75-persistent-net-generator.rules
read rules file: /lib/udev/rules.d/75-probe_mtd.rules
read rules file: /lib/udev/rules.d/75-tty-description.rules
read rules file: /lib/udev/rules.d/78-graphics-card.rules
read rules file: /lib/udev/rules.d/78-sound-card.rules
read rules file: /lib/udev/rules.d/80-drivers.rules
read rules file: /lib/udev/rules.d/85-hdparm.rules
read rules file: /lib/udev/rules.d/85-keyboard-configuration.rules
read rules file: /lib/udev/rules.d/85-regulatory.rules
read rules file: /lib/udev/rules.d/95-udev-late.rules
rules contain 24576 bytes tokens (2048 * 12 bytes), 11335 bytes strings
1814 strings (22027 bytes), 1179 de-duplicated (11328 bytes), 636 trie nodes used
ATTR '/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0/link_power_management_policy' writing 'min_power' /etc/udev/rules.d/60-power.rules:1
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1f.2/ata1/host0/scsi_host/host0
SUBSYSTEM=scsi_host
USEC_INITIALIZED=1203444595
unload module index

ฉันหาวิธีใช้กฎไม่ได้ดังนั้นในกรณีนี้ฉันรีบูตเพื่อใช้กฎ udev ที่สร้างขึ้นใหม่


ฉันจะค้นหา id ของคุณสมบัติและค่าที่เป็นไปได้ได้อย่างไรเนื่องจาก powertop แสดงชื่อยาวในรายการ 'Tunables' ขอบคุณ
Cristiano

3

systemdทำให้ง่าย:

# /etc/systemd/system/powertop-autotune.service
[Unit]
Description=Auto-tune power savings (oneshot)

[Service]
Type=oneshot
ExecStart=/usr/bin/powertop --auto-tune
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

บันทึกไฟล์หน่วยkill -HUP 1, systemctl enable --now powertop-autotune.serviceทำ!


ป.ล.ถ้าคุณต้องการข้อยกเว้นใด ๆ กับสิ่งที่--auto-tuneทำเพียงเพิ่มExecStartบรรทัดเพิ่มเติมเพื่อตั้งค่าการตั้งค่าของคุณเอง

#...
ExecStart=/usr/bin/powertop --auto-tune
ExecStart=/bin/sh -c "echo on > /sys/bus/usb/devices/2-7/power/control"

#...

บน Ubuntu, powertopอยู่ในไม่/usr/sbin /usr/bin
rustyx

2

ฉันแก้ไขได้โดยสร้างสคริปต์เส้นประ/root/power_save.sh:

#!/bin/dash
find /sys/devices/pci* -path "*power/control" -exec bash -c "echo auto > '{}'" \;

ตั้งเป็นปฏิบัติการ:

sudo chmod u+x /root/power_save.sh

และเพิ่มลงในรูท crontab ด้วยsudo crontab -e:

@reboot /root/power_save.sh

@dago นี่คือวิธีที่ฉันใช้แก้ไขคำตอบของคุณ
Seppo Erviälä

คำถามบางข้อหวังที่จะให้การศึกษาแก่ฉัน: ก่อนอื่นทำไมไม่รีบทุบตีแตกต่างกัน? ประโยชน์ที่จะได้รับใน /root/power.sh คืออะไร? CRON เป็นเทอร์มินัลรุ่นอื่นหรือไม่? โซลูชันของคุณขอรหัสผ่านหรือไม่
dago

dash เป็นเชลล์อีกตัวที่ใช้ใน Ubuntu เพื่อเรียกใช้สคริปต์เริ่มต้นทั้งหมดเนื่องจากเริ่มต้นได้เร็วกว่าทุบตี ดูwiki.ubuntu.com/DashAsBinShสำหรับข้อมูลเพิ่มเติม
Seppo Erviälä

cron เป็นเครื่องมือสำหรับสร้างงานที่กำหนดเวลา (เช่นเรียกใช้สคริปต์นี้ทุก ๆ ชั่วโมง) นอกจากนี้ยังสามารถใช้สำหรับการเรียกใช้สคริปต์เมื่อระบบเริ่มทำงาน
Seppo Erviälä

ไม่ต้องใช้รหัสผ่าน
Seppo Erviälä

2

ลิงค์นี้พูดถึงสิ่งเดียวกันกำลังพูดถึงปัญหาเดียวกัน:

https://bbs.archlinux.org/viewtopic.php?pid=860406

ฉันสนใจการแก้ปัญหาด้วยตัวเองและจะลองใหม่ในภายหลัง บอกฉันหากคุณสามารถจัดการเพื่อใช้โซลูชันนี้

ฉันไม่สามารถทำให้มันทำงานได้เนื่องจากระบบบอกฉันเสมอว่าอนุญาตไม่ให้เรียกใช้ไฟล์ปฏิบัติการ

อย่างไรก็ตามเรื่องนี้ดูเหมือนจะทำงาน:

http://philatwarrimoo.blogspot.com/2011/06/powertop-howto-enable-device-power.html

ฉันใช้คำสั่งสั้น ๆ แล้วรันด้วย sudo

ในฐานะที่เป็นโซลูชั่นกึ่งอัตโนมัติฉันสร้างตัวเรียกใช้งาน:

ป้อนคำอธิบายรูปภาพที่นี่

สคริปต์มีดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

มีวิธีป้องกันการขอรหัสผ่านของฉันหรือไม่?


@dago - สาเหตุที่ทำให้ข้อผิดพลาด "การอนุญาตถูกปฏิเสธ" เป็นเพราะคุณต้องเรียกใช้ "chmod + x setauto.sh" เช่นทำให้สคริปต์ที่ใช้งานการกรอง
fossfreedom

1
@dago - ผูกโซลูชันเป็นสคริปต์และใช้โซลูชันนี้เพื่อให้สคริปต์ทำงานโดยอัตโนมัติแทนที่จะเป็นด้วยตนเอง - askubuntu.com/questions/9806/…
fossfreedom

เข้าใจคำพูดแรก อย่างไรก็ตามวิธีที่สองนั้นง่ายกว่าสำหรับฉัน ฉันพยายามรันคำสั่ง tis ผ่านตัวเรียกใช้งานโดยวาง xterm -e ล่วงหน้า มันถามรหัสผ่านของฉัน แต่ใช้งานไม่ได้ คุณสามารถช่วยฉันได้ไหม? มันต้องการที่จะเรียกใช้มันแบบกึ่งตัวเองเพราะฉันต้องการมันเมื่อใช้แบตเตอรี่
dago

@dago - แนะนำให้สร้างไฟล์เดสก์ท็อปและเรียกใช้สคริปต์ด้วย gksudo หากมีข้อสงสัยให้จัดระเบียบคำตอบของคุณด้วยการคัดลอกและวางรหัสจาก philatwarrimoo อธิบายไฟล์สคริปต์ใหม่ของคุณและฉันจะแก้ไขคำตอบของคุณด้วยไฟล์ newfile.desktop ที่แนะนำซึ่งคุณสามารถเรียกใช้จากตัวเรียกใช้ natty
fossfreedom

ทำตามที่แนะนำ การสูญเสียสัญลักษณ์ที่เลือกไว้เมื่อเพิ่มไอคอนตัวเรียกใช้งานไปที่ตัวเรียกใช้งาน
dago

0

คำตอบต่อ rubo77 ของฉันทำงานpowertop --auto-tuneใน/etc/rc.localแล้วยกเลิกการเปลี่ยนแปลงเริ่มต้นที่ไม่พึงประสงค์

อย่างไรก็ตามเนื่องจากอุปกรณ์ที่ฉันต้องการปิดใช้งานการควบคุมพลังงานอัตโนมัติสำหรับเป็นอุปกรณ์ USB ภายนอกที่อาจปรากฏขึ้นพร้อมกับ/sysหมายเลขอุปกรณ์ทรีที่แตกต่างกันฉันจึงทำการเขียนสคริปต์อีกเล็กน้อยเพื่อระบุ:

/usr/local/sbin/powertop --auto-tune

export VENDOR=aaaa
export PRODUCT=bbbb

for d in /sys/bus/usb/devices/*; do
        if [ -f $d/idVendor ] && \
           [ "$(cat $d/idVendor)" == "${VENDOR}" ] && \
           [ -f $d/idProduct ] && \
           [ "$(cat $d/idProduct)" == "${PRODUCT}" ]; then
                echo 'on' > $d/power/control
        fi   
done

exit 0

โดยที่VENDORและPRODUCTถูกตั้งค่าเป็นผู้จำหน่าย USB และรหัสผลิตภัณฑ์ในรูปแบบตัวพิมพ์เล็ก

สิ่งเหล่านี้มีให้โดย

  • ระบุอุปกรณ์ในlsusbเอาต์พุต (ID ปรากฏขึ้นที่นั่นในแบบฟอร์มaaaa:bbbb) หรือ

  • สังเกตคำสั่งที่ powertop ทำงานเมื่อคุณสลับการตั้งค่าพลังงานไปที่/sys/bus/usb/devices/*ไดเรกทอรีปัจจุบันของอุปกรณ์และรับค่าจากปัจจุบันidProductและidVendorไฟล์


-1

ฉันมีปัญหาที่คล้ายกันและหลังจากอ่านคำถามในเว็บไซต์นี้พบว่าโปรแกรม "powertop" นั้นเห็นได้ชัดว่าเหมาะกับนักพัฒนามากกว่า

ฉันจะติดตั้ง powertop 1.13 ได้อย่างไร

รุ่นนี้มีประโยชน์มากกว่าสำหรับผู้ใช้คือ "powertop-1.13" ที่พบในที่เก็บ มันแสดงให้เห็นข้อเสนอแนะการประหยัดพลังงานเช่นเดียวกับคำสั่งที่ใช้ในการดำเนินการตามคำแนะนำ

นี้Red Hat เอกสารสถานที่มีคำแนะนำเพิ่มเติมสำหรับการเปลี่ยนแปลงเหล่านี้อย่างถาวร

โดยเฉพาะ:

เพื่อช่วยให้คุณทำการเปลี่ยนแปลงอย่างถาวร PowerTOP จะแสดงคำสั่งที่แน่นอนซึ่งจะทำงานเพื่อทำการปรับให้เหมาะสมนี้ เพิ่มคำสั่งลงใน/etc/rc.localไฟล์ของคุณ ด้วยโปรแกรมแก้ไขข้อความที่ต้องการเพื่อให้มันมีผลทุกครั้งที่คอมพิวเตอร์เริ่มทำงาน

โชคดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.