14.10から15.04にアップグレードしてから、ラップトップに適切なサーマルプロファイルモードを設定するために使用していたカスタムスクリプトが機能しなくなりました。
さて、それがシステムの新しい意図された動作である場合、その仕事をするために私のスクリプトをどこに置くべきですか?
OK、Arch Wikiで答えを見つけました。次のソリューションを提供します。
Systemdができないことは1つだけです(systemd-204時点)。システムがACまたはバッテリーのどちらで実行されているかによる電源管理。このギャップを埋めるために、ACアダプターのプラグを抜いたときにスクリプトを実行する単一のudevルールを作成できます。
/etc/udev/rules.d/powersave.rules SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/path/to/your/script true" SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/path/to/your/script false"
私のSony Vaioでは、これを個人的なセットアップとして持っています:
/etc/udev/rules.d/99-laptopac.rules
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/local/bin/sony-thermal.sh true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/local/bin/sony-thermal.sh false"
/usr/local/bin/sony-thermal.sh
#!/ bin/sh help(){ cat <&ltEOF $ 0:SONYラップトップ温度プロファイル管理 このスクリプトは、ラップトップがAC電源で動作するかバッテリー電源で動作するかに応じて、[パフォーマンス]モードと[サイレント]モードを選択します。 EOF } set_sony_thermal_profile(){ [! -d/sys/devices/platform/sony-laptop] && exit $ NA [! -f/sys/devices/platform/sony-laptop/thermal_control] && exit $ NA case $ 1 in performance) printf「SONYサーマルコントロールをパフォーマンスモードに設定する」 thermal_control = performance ;; silent) printf "SONYサーマルコントロールをサイレントモードに設定します。" thermal_control = silent ;; *) printf "SONY温度制御を平衡モードに設定します。" thermal_control = balanced ;; esac echo "$ thermal_control">/sys/devices/platform/sony-laptop/thermal_control && echo完了。 ||\ echoが失敗しました。 } $ 1 in true)set_sony_thermal_profile silent ;; false)set_sony_thermal_profile performance ;; help)help ;; *)$ NAを終了;; esac exit 0
これにより、ノートブックのCPUが、負荷が軽い状況でもパフォーマンスが大幅に低下し、ユーザーエクスペリエンスが低下する場合でも、連続して "調整"されなくなります。
デフォルトのUbuntu電源スクリプトは、この方法でトリガーできます。
このコンテンツを含むファイルpm-utils
を追加します
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/sbin/pm-powersave true"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/sbin pm-powersave false"
/etc/udev/rules.d/
へ
また、デフォルトのUbuntu省電力機能は、バッテリーからACに切り替えたときに適用されます。
起動時にトリガーされないという問題があります。修正するには、追加
udevadm trigger -s power_supply
/etc/rc.local
の前のexit0
へ。
Ubuntu 16.04の別の問題は、Network Managerがデフォルトで電源管理をオフにすることです。インターフェイスが起動されると、pm-utils
設定が上書きされます。
これはファイル02-powersave
を追加することでも修正できます
#!/bin/sh
[ "$1" = "wlan0" ] && [ "$2" = "up" ] && udevadm trigger -s power_supply
/etc/NetworkManager/dispatcher.d
に。
注:wlan0
をifconfig
にあるワイヤレスインターフェイスに置き換える必要があります。