ITサポーターズの仲間たち    mushi

IT関連のサポートに携わる変人が微弱な電波を発してます。
ビビビビビッ!

URL変更のお知らせとお願い 当サイトのドメインが変更となりました
http://zxvf.homeip.net から http://zxvf.stzo.net に変更となりました。
当サイトにリンクしていただいている方々にはご面倒ですが変更をお願いいたします。(2014/4/7)

PT3のスリープからの復帰失敗をなんとかする


PT3のスリープからの復帰失敗をなんとかする。快適になってくれたPT3だけどFedora16でスリープからの復帰に必ず失敗する。 稀に起動時に失敗するときもあるけれど、これはたまになので我慢するとして、 スリープからの復帰が必ず失敗するんでものすごくめんどくさい。



快適になってくれたPT3だけどFedora16でスリープからの復帰に必ず失敗する。
稀に起動時に失敗するときもあるけれど、これはたまになので我慢するとして、
スリープからの復帰が必ず失敗するんでものすごくめんどくさい。

いちいちアンロード、ロードしてやらないといけない。
それも大概スリープから復帰した時は一回目は失敗するので2回やらないといけない。
ここまでLinuxでPT3が使えるようになってくると欲が出るものでこの問題をなんとかしてやりたい。

ドライバで対応できる問題ならいいけど自分ではソース見ても良くわからないので他の方法を考える。
とは言っても復帰する時の処理の中にコマンド放り込むくらいしか思いつかないのでとりあえずやってみる。

まずスリープに入る時に事前にモジュールをアンロードしてやる。
これはACPIのイベントで処理した。
必ずスリープボタンでスリープさせることとして、
/etc/acpi/actions/sleep.sh を作成
======================
#!/bin/sh
/sbin/modprobe -r pt3_drv
/usr/sbin/pm-suspend
======================

/etc/acpi/events/sleepbtn を作成
======================
event=button[ /]sleep
action=/etc/acpi/actions/sleep.sh
======================

イベントは acpi_listen で確認して該当するのを記入。
/etc/acpi/actions/sleep.shを実行してスリープしてくれればOK。

次にスリープからの復帰でpm-utilsが使われているようなのでここに割り込ませていただくこととしよう。
/usr/lib64/pm-utils/sleep.d/ 以下のスクリプトで各処理をしているようなので、
/usr/lib64/pm-utils/sleep.d/75modules
こいつをちょっと細工して
============================
resume_modules()
{
modreload
echo "Reloaded unloaded modules."
/sbin/modprobe pt3_drv ; sleep 1
/sbin/modprobe -r pt3_drv ; sleep 1
/sbin/modprobe pt3_drv
}
============================
このように2行足してみた。
一旦 ロードしてこれが必ず失敗しているので1秒後に アンロードしてやり、
さらに1秒後に再度ロードしている。
これで確実に復帰時に正常に稼働してくれてるようだ。

※ドライバ側で失敗した時にリトライしてくれるようになったのでmodprobeを繰り返さなくても良くなりました。
上の面倒な処理も必要なくて、
下記のファイル作成だけで問題ありません。

新規ファイル作成
/etc/pm/config.d/pt3

内容一行
SUSPEND_MODULES="pt3_drv"




< 過去の記事 [ 1月の 全てのトピック リスト ] 新しい記事 >
via IPv4

twitter

●→ トップページ

01/20(Sat) 20:15:30

サイト内検索

 

トピックのカテゴリー

全てのトピック
今日の思考回路
趣味について
ニュース!
Technical
Linux
OSX
その他いろいろ

みんなのリンク

全てのリンク
ニュース
アミューズメント
生活
Tools
Windows
OS X
Technical
その他のリンク
MACアドレスで位置情報検索


Archives




新しいトピック
最新:05/08 18:22


Valid XHTML 1.0 Transitional

Syndicate this site(XML)

RSS1.0(RDF)

RSS2.0(RSS)

SpecialThanks
011379408

....   

Copyright (C) 2005-2018 Amato. All rights reserved.