限界を超えてハングアップ
↓
再起動
↓
自動的に前回のクロックに
↓
また限界を超えて再起動
↓
再起動
↓
自動的に前回のクロックに
↓
また限界を超えて再起動
というループに突入してしまう場合があります。
そんな場合の簡単な救出手順をご紹介。
まずは本体をUSBで母艦に接続し、電源をONにします。
起動スプラッシュが出る頃にはadbによる接続が可能になっているので、母艦から以下のコマンドで接続します。
./adb shell
繋がったらすぐに以下のコマンドを実行します。
cd /sys/devices/system/cpu/cpu0/cpufreq
while true; do echo 528000 > scaling_max_freq; done
while true; do echo 528000 > scaling_max_freq; done
これで強制的にクロック上限を528MHzに押さえ込みます。
(画面に変化はないですが、コマンドは動き続けています)
無事に起動したら、SetCPUやOverClockWidgetなど、OCに使っているツールから適正な上限クロックに設定し直してください。
設定が完了したら、先ほどコマンドを打ったターミナルでCtrl-cを押して実行中のプロセスを停止します。
かなり強引な手順なのですが、レスキュー用途に限ればこれで十分でしょう。
クロック上限値を探す場合は、SetCPUのように給電時とそうでない場合の設定を別々に設定できるツールを使うといいかもしれません。給電時の設定を安全な値にしておき、バッテリ駆動状態でクロックアップ。システムハングしてしまったら給電しながら再起動すれば安全な値で復活してくれるはずです。(今思いついたので試していません)
クロックアップの効果は絶大ですが、その代償として製品寿命を縮めるばかりか、最悪の場合発熱による火傷や、バッテリの炎上など恐ろしい副作用が起こる可能性があります。用法・用量を守りながら「自己責任」でお楽しみ下さい。
動作はもっさりとしますが、何とか復旧できます。
ありがとうございます。
いつもながら参考になります。
ストレステスト中に落ちたとかであればsleep入れて
while true; do echo 528000 > scaling_max_freq; sleep 1; done
とかしてあげると負担が少し減るのですが、設定した瞬間に問答無用で落ちるような状態だとその1秒が命取りになるため、sleepもかけずに連打してます。この状態でも意外と問題なく動くのがちょっと驚きでした。
あとは528000を614400とかにしても少し良くなるとは思いますが、あくまでもレスキュー用の手段なので安全第一にしてあります。
また遊びに来て下さい。
無限再起動は発生原因がたくさんありすぎて何とも…。
カスタムリカバリが入っていれば、リカバリ領域から起動してデータの回収もできるのですが、キャリア端末なので入ってるわけ無いですよね…うーん。
ちょっとお力になれそうにないです。申し訳ない。