FC2ブログ

PCで: XHCI_SPURIOUS_REBOOTについて

 いつの頃からか、もうだいぶ前になりますが、うちのLinuxサーバがシャットダウンの後に勝手にリブートするようになりました。
 チップセットはZ77で、Panther Pointに対してもdrivers/usb/host/xhci-pci.cでこんなコメントとともにXHCI_SPURIOUS_REBOOTというQuirksのフラグがセットされています。

PPT desktop boards DH77EB and DH77DF will power back on after
a few seconds of being shutdown. The fix for this is to
switch the ports from xHCI to EHCI on shutdown. We can't use
DMI information to find those particular boards (since each
vendor will change the board name), so we have to key off all
PPT chipsets.

 なのにおかしいなーと。
 でも、サーバなので滅多にシャットダウンしないし、まあしゃあないなぁと思いつつ放置していました。

 ですが先日ふと気になって調べてみました。そしたら、こういう情報が。
Linux Kernel - xhci: Switch Intel Lynx Point ports to EHCI on shutdown

 色々言ってますが、要するにこの処理でうまく行く場合もあれば逆にこれのせいでその現象が出ちゃう場合もある、と。
 ……をい。だったらモジュールのバラメータかなんかにしろよ(笑)。
 でもそうか、この改修が入ったから現象が出始めたのかも? ソースのコメントがくどいのもこういうことかぁ。

 というわけでxhci.cに手を入れてmodule_param()でパラメータを用意しました。それでxhci_shutdown()にある該当する処理を呼ぶ呼ばないを制御するようにし、カーネルのコマンドラインオプションに指定。
 問題なし。
 モジュールのオプションにしてもいいし、これならsysfsで見えるので、それ経由の他のやり方でも多分設定できるし。どうせシャットダウンの時にしか参照しないから。

 どーして最初からこうしないかなぁ?

[追記: 2017-08-18]
 カーネルに手を入れなくてもできる回避策を見つけてしまった……。
 デフォルトでだめならXHCI_SPURIOUS_WAKEUPを立ててあげればいいんですね。オプションxhci_hcd.quirks=262144でいける。
 ただ、このフラグ見るのはシャットダウンの時だけでないので気になると言えば言えますが、まあ大丈夫かも?
 でも、記憶だけですけど、これ上記の改修の前にも試したような気がするんですけど気のせいかなぁ。

コメント

非公開コメント

プロフィール

水響俊二

Author:水響俊二
水響 俊二 [MIZUKI Shunji]

暫定的に、18禁作品の感想などは裏サイトで書いています。
   

最新記事
最新コメント
カテゴリ
検索フォーム
リンク
RSSリンクの表示
月別アーカイブ
アクセス解析中