CosmosBlueのブログ

日々のよもやま話を徒然と

長時間スリープからの復帰でウィンドウがメインモニターに集まる件(Windows11 23H2)

この記事は、Windows11マルチモニター環境にあって、概ね60分とか90分とか長いスリープから復帰した際に、それまでサブモニターにあったウィンドウが全てメインモニターにリポジションされてしまう事象に対する解決策の一つです。この事象に該当しない方には意味がないかもしれません。

2024/1/10追記:

2024年1月期の定例アップデート後に、メインモニターに置き去りにされる確率的動作が復活してしまいました。なので、本記事以下はあくまでも参考程度にご利用ください。がっくりんこ

2024/3/31追記:

3月定例アップデート後は結構な確率で置き去り事象が出ています。これまでよりも短いスリープ(10分とか20分とか)で発生することが多くなりました。

 

いわゆるDP問題ではなく(メイン・サブともHDMI接続)、BIOSもグラフィックドライバーも最新。ブランクスクリーンから指定時間後にスリープ(モダンスタンバイ)に突入し、そこから10分とか20分で復帰した場合、ウィンドウはメイン・サブとも元のままです。ところが長いスリープから復帰すると全てのウィンドウがメインモニターに再配置されてしまいます。

Windows11のディスプレイ設定で「モニターの接続に基づいてウィンドウの位置を記憶する」もチェック、「モニターが接続されていないときにウィンドウを最小化する」もチェックしていますが、位置も覚えてねぇわ、最小化すらされてねぇ。

で、この記事のメソッドがソリューションになり得るかどうかは、事象の類似性に加えて、以下で確認することができます。該当しない方は別のソリューションを探してください。スタートボタンを右クリックして「ターミナル(管理者)」を起動し、次のコマンドを入力します。

  • PS C:\Users\PC-User> powercfg -Q
  •  
  •  
  •  
  •  
  •  

上記コマンドの出力の中から以下の項目を見つけてください。

  • 電源設定の GUID: 94ac6d29-73ce-41a6-809f-6363ba21b47e (ハイブリッド スリープを許可する)
  • GUID エイリアス: HYBRIDSLEEP
  • 利用可能な設定のインデックス: 000
  • 利用可能な設定のフレンドリ名: オフ
  • 利用可能な設定のインデックス: 001
  • 利用可能な設定のフレンドリ名: オン
  • 現在の AC 電源設定のインデックス: 0x00000001
  • 現在の DC 電源設定のインデックス: 0x00000001
  •  
  •  
  •  

現在のAC/DC電源設定のインデックスが1ならこのメソッドで解決できる可能性があります。インデックスが0の場合や、この項目が存在しない場合は残念ながらこのメソッドでは解決できません。

ということから分かるように、このメソッドではインデックスが1の場合これを0にすることで、モダンスタンバイの最終フェーズ(ハイバネーションのような状態)を無効化するということになります。では早速やり方です。

まず、現在適用中の電源プランのGUIDを取得します。

  • PS C:\Users\PC-User> powercfg -L
  • 既存の電源設定 (* アクティブ)
  • -----------------------------------
  • 電源設定の GUID: 381b4222-f694-41f0-9685-ff5bb260df2e (バランス) *
  •  
  •  
  •  

GUIDをメモ帳などにコピペしておきます。続けて前述のpowercfg -Qの出力、ハイブリッドスリープの項目から少し上にサブグループ(スリープ)のGUIDがあるので、それもコピペしておきます。

  • サブグループの GUID: 238c9fa8-0aad-41ed-83f4-97be242c8f20 (スリープ)
  • GUID エイリアス: SUB_SLEEP
  • 電源設定の GUID: 29f6c1db-86da-48c5-9fdb-f2b67b1f44da (次の時間が経過後スリープする)
  • GUID エイリアス: STANDBYIDLE
  • 利用可能な設定の最小値: 0x00000000
  • 利用可能な設定の最大値: 0xffffffff
  • 利用可能な設定の増分: 0x00000001
  • 利用可能な設定の単位: 秒
  • 現在の AC 電源設定のインデックス: 0x00000708
  • 現在の DC 電源設定のインデックス: 0x000000b4
  • 電源設定の GUID: 94ac6d29-73ce-41a6-809f-6363ba21b47e (ハイブリッド スリープを許可する)
  • GUID エイリアス: HYBRIDSLEEP
  • 利用可能な設定のインデックス: 000
  • 利用可能な設定のフレンドリ名: オフ
  • 利用可能な設定のインデックス: 001
  • 利用可能な設定のフレンドリ名: オン
  • 現在の AC 電源設定のインデックス: 0x00000001
  • 現在の DC 電源設定のインデックス: 0x00000001

そして、もちろんハイブリッドスリープのGUIDもコピペしておきます。

では、コピペしたGUIDを用いてハイブリッドスリープをAC/DC共に無効化します。ハイブリッドスリープを無効化してもモダンスタンバイ(S0低電力アイドル)が出来なくなる訳ではありませんので誤解されませんように。

  • PS C:\Users\PC-User> powercfg -setDCValueIndex 381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20 94ac6d29-73ce-41a6-809f-6363ba21b47e 0
  •  
  • PS C:\Users\PC-User> powercfg -setACValueIndex 381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20 94ac6d29-73ce-41a6-809f-6363ba21b47e 0
  •  
  •  
  •  

実行エラーがなければ、再度"powercfg -Q"を出力してハイブリッドスリープの「現在のAC(DC)電源設定のインデックス」が0になっていることを確認します。

  • 電源設定の GUID: 94ac6d29-73ce-41a6-809f-6363ba21b47e (ハイブリッド スリープを許可する)
  • GUID エイリアス: HYBRIDSLEEP
  • 利用可能な設定のインデックス: 000
  • 利用可能な設定のフレンドリ名: オフ
  • 利用可能な設定のインデックス: 001
  • 利用可能な設定のフレンドリ名: オン
  • 現在の AC 電源設定のインデックス: 0x00000000
  • 現在の DC 電源設定のインデックス: 0x00000000
  •  

これでスリープ後60分でも90分でもサブモニターに元あったウィンドウが戻ってくるようになりました。スリープから復帰した際は一瞬何もないデスクトップ画面になるのですが、メインモニターのタスクバーからシュッと飛んで来るようになりました。ここまで長かった・・・

色々な手を打ってみましたが、ことごとくダメでした。特に多かったのはDP問題に帰結する記事や、グラフィックドライバーに帰結する記事でした。中にはお決まりの"これでダメならクリーンインストールしかないですね"的な記事もありました。スリープ復帰時とは言っても浅いスリープでは問題なく、深いスリープだとウィンドウが寄ってくるので、どれも何かが違うと思いながら記事の内容を試行錯誤していました。

問題はスリープが長くなると意図した動作をしないところでした。どう考えてもスリープ中に何らかフェーズが変わり、それが影響してウィンドウ配置の記憶が消散するとしか考えられません。ハイブリッドスリープは「通常はバッテリー駆動のノートPCでデフォ」という記事も自分の勘違いを助長しました。少し前にハイブリッドスリープの設定は一度見たのですが、その時は「AC電源しかない自分のNUC13はハイブリッドスリープを許可していても使われていないはず」と思い込んでしまいました。

また、"powercfg /sleepstudy"でレポートを何度出力してみても、スリープはあれどスリープ後の「休止」の記録がありません。ハイブリッドスリープが「スリープ+休止」だと思っていた自分はここでも「やっぱりハイブリッドスリープは使われてないよな」と思い込んでしまいました。更に惑わされたのは「モダンスタンバイ」と「ハイブリッドスリープ」を同一視する記事や、「ハイブリッドスリープ」と「休止状態」を同一視する記事でした。

「ハイブリッドスリープ」は一定時間スリープした場合、「休止に似た」ステートへ移行する動作を含むスリープで、powercfgではそれをするかどうかを定義している、また、ハイブリッドスリープはあくまでスリープ(の一種)であって、「休止(ハイバネーション)」ではない、だからレポートにも「休止」が付かないのだろう、という仮説を立てました。ちなみに"powercfg /H off"で「休止」を無効にしても、ハイブリッドスリープには何も影響しませんでした。

そこで、あらためてpowercfgを確認してみると、ACもDCもハイブリッドスリープが許可になっていて「ん?これってノートPCとか関係なく動作してんじゃね?」と思い始めました。要は最後のフェーズで休止(的な)状態にならなければ、サブモニターは何もかもを忘れることなく復帰できるんじゃないか?と思ったのが実験契機でした。

ただ、どうしても戻らないウィンドウがあります。サブモニターで最大化したウィンドウと、スナップレイアウトで配置したウィンドウです。これらはメインモニターに置き去りのままです。

どうも左側がサブモニターというのは良くないのかもしれません。メインモニターだけの場合はメインモニター左上隅が座標(0,0)になりますが、拡張表示でサブモニターが左側にあるとサブモニターが仮想デスクトップの座標(0,0)を持ちます。この際にメインモニターの左上隅は(FHDの場合)座標(1920,0)になります(APIではメインモニターが(0,0)で、サブモニターがマイナス座標(-1920,0)になるかも)。サブモニターが右側にある場合なら、サブモニターの状況に関係なく座標(0,0)は常にメインモニターにあります。ここら辺の位置取りとタイミングが関係しているのかなと疑っています。

モニター環境を書き忘れていたので追記しておきます

  • モニター1(メインモニター:向かって右側)
  • BenQ GW2480E
  • 解像度:1920x1080
  • リフレッシュレート:60Hz
  • 使用ポート:HDMI
  • PC側ポート:HDMI1
  • 入力自動切換:On
  • モニター2(サブモニター:向かって左側)
  • BenQ GW2283
  • 解像度:1920x1080
  • リフレッシュレート:60Hz
  • 使用ポート:HDMI1
  • PC側ポート:HDMI2
  • 入力自動切換:On

とにかく環境が千差万別なので、このメソッドでは何ら効果がなくガッカリされる方もいらっしゃると思いますが、その場合はすぐに別の解決策を探しに行く方がよろしいです。ハズレで試行錯誤しても仕方がありませんし、自分もそうやってたどり着いたので。

今回のNUC13はWindows11のISOからDVDを焼いてインストールしたネイティブ11でした。なんかデフォルトで最大限サステナブルな省電力設定になっているようです。Windows10からアップグレードした前機NUC11ではこんな設定をいじった記憶がありません。Media CreatorのDVDやUSBからWindows11をクリーンインストールした方(でマルチモニターの方)はお気をつけくださいませ。

 

※この記事は最大限の省電力を妨げる目的はありません。利便性と省電力のトレードオフはそのPCオーナー自身が自由に考えることであり何ら強制することはありません。この記事によって被ったあらゆる損害についてブログ主は免責とさせて頂きます。

NUC13 ANHi3 Cooling設定に悩む

NUC13 ANHi3を動かしてみて最初に思ったのは「クーリングファンの変速音がイライラするな・・」でした。設定されていたのはプリセットの「Quiet」でした。かなりの低速静音設定で、確かに最低速になると風切音も軸の音も全く聞こえないくらいです。

しかし、温度上昇に追従してファンの速度が細かく切り替わるため、回転数のスイッチングが短いスパンで頻繁に起き、モーター音のうねり(唸りではなく)が耳に付きます。また、基本的にはファン回転数が低いのでCPUも温度がそこそこ高い。室温20℃でOSアイドリング時にCPU温度が50~55℃くらいです。

もう一つのプリセット「Cool」にするとうるさい。こちらはベースの回転数が高いので風切音(シュコーッ)が大きいです。その代わりにCPU温度はQuietより低くなります。

結局どちらのプリセットも気に入らず、自分で設定することにしました。ところが行き当りばったりだと、なかなか良い設定値が見つかりません。ただ、何回もトライ&エラーを繰り返しているうちに、「これは求めるもののバランスを発見する作業だ」ということに気が付きました。求めるものとはすなわち「性能」「静音」「低温」です。

何のためにファンを回しているのかと言えばCPUの温度を下げるためです。なぜCPUの温度が上がるのかというと電気を使って仕事をするからです。そしてこの仕事の量が多いほど温度は高く、少ないほど温度は低くなります。なので自分の好みに限りなく近い「性能」「静音」「低温」のトレードオフを実現する作業がCooling設定、自分の中ではそういうことになりました。

まず「性能」と「低温」は電気を使った仕事量に関係するので、電力をどのように供給・遮断制御するかを設定することになります。NUC13 ANHi3のBIOS(Ver. 0027)では下のような画面です。

Power, Performance and Cooling画面

External Ambient Temperature Tolerance

「40℃」を選択すると下にあるFan Modeにプリセット「Quiet」と「Cool」が使えます(他のシリーズにはあるプリセット「Balance」がこのBIOSにはありません)。自分で設定する場合は「User Defined」を選択します(Fan ModeはCustomになります)。


Power

「Balanced」「Low Power」「Max Performance」を選べます。通常は「Balanced」で問題ないかと思います。


Package Power Limit 1 (Sustained)

いわゆるPL1と呼ばれる電力制限です。NUCシステム全体がこの電力(Watts)で動くように設計された値(TDP)を設定します。NUC13 ANHi3は20Wになります。たまに15Wと書いてあるサイトを見かけますが、15WはCore i3-1315U自体のTDPで、NUC13 ANHi3は20Wです。余計なトラブルを回避する意味で、TDPを下回る、あるいは上回る値は設定しない方が良いです。デフォルトは20になっています。


Package Power Limit 2 (Burst Mode)

いわゆるPL2と呼ばれる電力制限です。システムが定格電力を超えて仕事をする時に、PL1ではなくPL2の電力値を上限にスパイクを刈り取ります。すなわちバーストモードの持続電力になります。この値をPL1と同じにすればTurbo Boostが無効になると書かれたサイトを稀に見かけますが、PL1とPL2が同じであっても可能な範囲でTurbo Boostは行われます。このリミットはあくまでも電力(Watts)に対する制御で、直接Turbo Boostの制御をしている訳ではありません。


Package Power Time Window (Tau)

電力スパイクの刈り取り基準をPL1からPL2に変更する時間と解釈されています。正しく表現しようとすると移動平均なんちゃらのかんちゃらと難しいので、バーストモードは何秒と指定する程度に理解しています。ただし、PL1でもPL2でもスパイクが出れば事後的に調整するので、必ず基準電力以下で動作するという訳ではありません。モニタリングしていると、PL1もPL2も概ね1.5W~2.7Wくらい最大瞬間でオーバーしています(PL1とPL2とTauの関係についてはかなりややこしいので下の脚注に書いておきます)。


Secondary Power Settings

モダンスタンバイやデバイスによる電力動作を指定するサブメニューです。


Cooling

ファン設定を行うサブメニューです。


次に「低温」と「静音」はいかに冷却するかに関係するので、クーリング設定の調整によってそのバランスを見つけます。

Cooling設定

Primary Temperature Sensor / Secondary Temperature Sensor

温度検知するセンサーを二つ、それぞれにクーリングファン設定できます。一つのセンサーだけでは他のセンサーが高温を示した場合に冷却対応できないためです。通常は「CPU」を第1センサーに選ぶと思います。


Maximum Temperature

ファンが最高回転数に移行する温度を設定します。


Minimum Temperature

二つの役割があります。一つはこの後にある「Minimum Duty Cycle」の上限温度、もう一つは「Fan Cut-off Temperature Offset」の基準値です。


Fan Cut-off Temperature Offset

「Minimum Temperature」から何度下回ったらファンを停止するかの、「下回る度数」を指定します。Minimum Temperatureが40で、Fan Cut-off Temperature Offsetが10なら、30℃でファンは停止します。ただし(上の写真には映っていませんが)「Fan off Capability」がEnableの時だけ意味があります。

※ Fan off Capabilityが有効で、WindowsがS0スリープ(モダンスタンバイ)の深部に移行した後にファンが停止した場合、スリープから復帰するとFan off 温度を超えていてもMinimum Temperatureを超えるまでファンは回りません。Fan off温度を超えた時点でMinimum Duty Cycleが回り始めるものだと思い込んでいましたが違いました。


Minimum Duty Cycle

「Minimum Temperature」に到達するまでの間に提供されるファン回転数(の割合)を指定します。NUC13 ANHi3で例えば30%にすると約1,500rpmになります(ざっくり1%で50rpmと換算しても良さそうです)。ただし、モダンスタンバイ(S0 低電力アイドル)ではこの設定以下になる場合があります。

環境雑音が大きい昼間は1,800rpmくらいまでは近づかないと聞こえないくらいですが、環境雑音が少ない夜間は1~2m離れていても1,800rpmならファンの音が聞こえます(私感です)。


Ramp Rate Acceleration

「Maximum Temperature」を超えたとき、ファンの能力を超えて回転数を上げるかどうか、とかだったと思います(うろ覚え)。


Duty Cycle Increment

「Minimum Temperature」を超えたとき、「Minimum Duty Cycle」からどれだけ回転数(の割合)を増やすかを1℃あたりで設定します。

例えば、Minimum Temperatureが50℃、Minimum Duty Cycleが30%、Duty Cycle Incrementが1%だとして、CPUが55℃になった場合、30 + ( 55 - 50 ) × 1 = 35%、NUC13ANHi3では約1,750rpmになります。


Sample Period

ファン制御にかかる各種数値の観測間隔(秒)です。


Ramp Down Rate

温度降下に追従してファン回転数を下げる割合を設定します。「Duty Cycle Increment」は温度上昇1℃に対してファン回転数をどれだけ増やすかを指定しますが、「Ramp Down Rate」は温度が下降した際に、現在の回転数から何パーセント下げるかを指定します。割合を低くすると、下降した温度に適したDuty Cycleまでゆっくりと回転数を下げていきます。したがって、現在温度に比して高い回転数で強く冷やす時間が長くなると共に、次のスパイクを待ち受ける余力にもなります。また、急激なスイッチングによる軸の変調音を緩和することができます。ただし、高回転数の場合はうるさい時間が延びることにもなります。


さて、ではこれらのパラメータを使って自分の納得がいくクーリングを発見していきましょう。自分のNUC13 ANHi3は次のようなユースケースを前提にします。

 

ユースケースとターゲット設定


自分はゲームをやりません。そもそもゲームをやる人はCore i3を買わないでしょう。動画編集もやりませんし、可能な限り最高のクロックアップとクーリングシステムが必要というものではありません。

昼はリモートワークでTeamsをしたり、メールを読んだり、アプリケーションをコーディングしたり、Office365で資料を書いたり、夜はYoutube動画を流しながらブラウザで好きなサイトを閲覧したりといった、一般的な操作でもたつかない性能があれば良い。願わくば代々のi3より速いと実感したい。

静音は、当然誰でも静かな方が良いに決まっていますが、それが叶わないなら軸の変調音が無いようにしたい。一定の騒音が続く方が環境雑音として気にならなくなる可能性が高いので。

低温については、肌感で問題の無い50℃にすべてが収まって欲しいと思いますが、電気を使う機器はそう甘くありませんので、+-10で「40℃~60℃までをノーマルレンジ、スパイクしても70℃を超えない」を第一目標にしたい。


Trial 1

  • Package Power Limit 1:20
  • Package Power Limit 2:25
  • Package Power Time Window:6 
  • Fan off Capability:Disable
  • Primary Temperature Sensor:CPU
  • Secondary Temperature Sensor:CPU Voltage Regulator
  • Maximum Temperature:90
  • Minimum Temperature:50
  • Fan Cut-off Temperature Offset:10 (ignore)
  • Minimum Duty Cycle:27
  • Duty Cycle Increment:2
  • Sample Period:1
  • Ramp Down Rate:50%

このトライアルは概ね良好だったのですが、スパイクが70℃を超えることが多く、また、例えばCPU(基板のCPUセンサー)は71℃くらいでも、コア毎のセンサーではPコアの片方が80℃を超えていたりします。また、ベース温度がMinimum Duty Cycleの閾値付近になるので、ファンが吹かしたり下げたりの音が少し気になりました。もうひと頑張りチューニングが必要かなという感じになりました。


Trial 2

  • Package Power Limit 1:20
  • Package Power Limit 2:22
  • Package Power Time Window:2
  • Fan off Capability:Disable
  • Primary Temperature Sensor:CPU
  • Secondary Temperature Sensor:CPU Voltage Regulator
  • Maximum Temperature:90
  • Minimum Temperature:50
  • Fan Cut-off Temperature Offset:10 (ignore)
  • Minimum Duty Cycle:30
  • Duty Cycle Increment:2
  • Sample Period:1
  • Ramp Down Rate:25%

CPU温度はやはり第一にWattsなんだろうということで、性能低下に若干の不安があるものの、思い切ってPL2とTauを下げてみました。また、Minimum Duty Cycleを上げ気味にして、ベースを40℃台後半まで下げたい。そして、スパイク後も冷却余韻を残すためと、変調音緩和のためにRamp Down Rateを下げてみます。理論的には86℃でDuty CycleはMax100%になります。

Test Scenario


テストは難しいことはしません。ユースケースに合わせていつもの環境でいつものアプリを動かします。以下のテストを冬室温と夏室温の両方で行います(The test only use my preference software as usual, I don't use benchmark software.)

  1. デュアルモニターにします(Dual monitors connected)
  2. HWMonitorを起動して1分アイドル後の値を採ります(Measurement temperature after 1 minute system idle using HWMonitor)
  3. モニター1面でYoutubeの動画を1本流し続けます(Run Youtube video on one  monitor)
  4. モニター2面でVisual Studio 2022を起動してソリューションを1つ開きます(Open a project using Visual Studio 2022 on other monitor )
  5. 続けてモニター2面でゴテゴテしたサイトをChromeで3つ連続で開きます(Amzon, ヨドバシ, 楽天のトップページにしました)(Addition, open heavy 3 sites using Chrome browser)
  6. これらを連続で行った後にHWMonitorの値を採ります(Measurement temperature after test using HWMonitor)

Test case 1 : Winter afternoon room case - Result


室内気温は冬のエコ暖房19.5℃

室内温度19.5℃

テスト前(1分アイドリング後の状態)

冬温度 テスト前のモニター値(Before test)


テスト後1分以内

冬温度 テスト後のモニター値(Test Result)


いい感じです。注目すべきなのはMax列で、短時間のスパイクも記録されています。Value列(Current)も参考にはなりますが、Min列は全く見る必要ありません。

PコアもEコアも(一瞬であっても)100%使われた上での数字ですので、それなりにチューニング効果があったと思われます。

Test case 2 : Summer mornig room case - Result


室内気温は夏の朝8時設定26℃

室内温度26.0℃

テスト前(1分アイドリング後の状態)

夏温度 テスト前のモニター値(Before test)


テスト後1分以内

夏温度 テスト後のモニター値(Test Result)

これもいい感じです。冬温度と比してベースは高いですが、Maxは冬温度と誤差の範囲です。電気的発熱にはあまり室内温度は関係ないんでしょうかね。ただ、ファンの回転数がMaxでは冬温度テストより130rpm高いので、CPU温度のサンプリングでは62℃に平準化されたものの、実際には冬温度テストよりもう2℃高い65℃程度まで上がったものと思われます。

冬温度で良くても夏温度でダメだったらまた来年調整しなければなりませんので、結果を出せて良かったです。2時間かけてエアコン暖房をブン回した甲斐がありました。なお、どちらのテストケースでもNUC13は起動前に60分以上のシャットダウン時間を設けて室温に馴染ませています。


Discussion

ターゲット「低温」については満足のいく結果となりました。実際の運用においては様々な処理の並列化が起きるし、また、意図しない謎のバックグランド負荷によるスパイクもあったりで、キレイにいつも70℃以下という事はないでしょう。しかし、ユースケースの大半を意図した温度で制御できる結果になったので、これについてはOKとします。

ターゲット「静音」についても個人的には満足できました。やはり2000rpmを超える55℃あたりから「ウォォーォン」という音は聞こえますが、徐々に遠のいていく感じに音が緩やかに減衰しますし、アップダウンが数回繰り返されるということもめっきり減ったのでイライラ感がなくなりました。これも合格だと思います。

ターゲット「性能」については、これはもう私感にしかなりませんので好き勝手言いますと「NUC11に勝るとも劣らない」という感じです。つまり、NUC11PAHi3から2世代を経た今「衝撃の性能を目の当たりにしたっ!」といった感動はありませんが、劣っているところは何も無い、そういう感じです。Office365系のアプリはWindowsに先読みキャッシュされているのでNUC11でも13でも起動はクッソ早いですが、それ以外のアプリでもNUC11と遜色はないです。なので、自分のNUC13ANHi3は今後このまま「Trial 2」のクーリング設定でいくことにします。


電力(Watts)はかなり絞ったので、これ以上低くするとRaptor Lakeの良いところが無くなってしまいそうです。22W/2秒でもTurbo Boostは効いていますが、P, Eの全コアが揃って最大boostというのはほとんど見ることはありません。22W/10秒にしておいても、そこまで電力を使う処理要求が無ければ22W/2秒とCPU温度は変わらないですが、暴走ソフトや暴走サイトにひとたび出会うと10秒は頑張りますので難しいところです。まだPL1とPL2を同じにするとか、Power項で「Low Power」にする等の手段が残ってはいますが、熱を出さない方向のチューニングはここら辺が限界かなと思います。

「Minimum Duty Cycle」は実際に設定してみて気にならないなら、32%~34%くらいにするのもお勧めです。「Minimum Duty Cycle」での差はその後の全ての温度に対して効いてきます。例えば30%1500rmpと、32%1600rpmの差は「Duty Cycle Increment」が同じならその後の各温度でも常に100rpm上乗せになります。つまり「Minimum Duty Cycle」32%の方が同じ温度に対してより強い風を当てることになります。逆にMinimumでは気にならなくても、温度が上がると騒音は常に100rpm分だけ大きくなります。

「Minimum Duty Cycle」と「Duty Cycle Increment」の設定はインテルのコミュニティでも実に様々な議論がなされています。過去のアーキテクチャに対するものは必ずしもNUC13に当てはまらない場合も多いですが参考にしてみてください。


PL1とPL2とPackage Power Time Windowの関係について


自作派の方はマザーボードBIOS説明書等で割と正確に把握しておられると思うのですが、「Package Power Time Window」は「PL2 時間」ではなく「PL1 時間」を指しています(インテルもPL1 時間と言っています)。直感的にはPL2バーストモード持続時間と誰しもが思ってしまうので、もうここでややこしいのです。

PL1 = TDP電力をPackage(CPU全体)が超えた後に、ターボブースト倍率がアクティブでいられる時間が「Package Power Time Window」の秒数になるようです。つまり、「TDPは超えてるんだけどPL1でターボブースト継続しててもいいよ時間」というのが何となく確からしい説明なのかなと思います。

これに対してPL2は最大でも10ミリ秒、NUC13 ANHi3は2.44ミリ秒間は指定値での電力カットが保証されているようです(2.44ミリ秒はHWiNFOで見た値)。Package Power Time Windowのように何秒、何十秒という世界ではないです。

よって、PL1とPackage Power Time Windowは密接に関連しますが、そこに(時間としての)PL2を絡めて考えるとややこしいので、PL2はあくまでもTDPを超えた場合にPackageを保護する役割(それによって結果としてターボブーストが却下される場合もある)と考えれば良いのではないでしょうか。

すんごい大雑把かつ推測混じりの解説ですいません。


巷では13世代はアチチと言われていますが、大概の記事はi9やi7が対象で、i3のアチチなんて可愛いものだという風潮もある中、パーツ構成を変えられないNUCとう小さな箱のi3クーリングを真面目にやってみました。いかがでしたでしょうか。

BIOS画面がキャプれないのでスマホで撮っていましたが、その流れでHWMonitorの画像もスマホで撮ってました・・・キャプれば良かったじゃんね・・

Windows DefenderフルスキャンでCPUファンが爆音を上げている方はこちらも参考にどうぞ。

2024/1/14 追記:

そういえば、NUC11 pahi3ではプリセット「Balance」で特に不満もなかったなと思い、NUC11 pahi3のCooling設定を今さら確認してみました。NUC13 ANHi3とはTDPが異なるためPL1, PL2がかなり大きいですが、Minimum Duty Cycle35%を64℃まで引っ張っているのが分かりました。

  • ※ NUC11 PAHi3 Setting (Preset "Balance")
  • Package Power Limit 1:30W
  • Package Power Limit 2:64W
  • Package Power Time Window:28s
  • Fan off Capability:Enable
  • Primary Temperature Sensor:CPU
  • Minimum Temperature:64
  • Fan Cut-off Temperature:30
  • Minimum Duty Cycle:35
  • Duty Cycle Increment:2

NUC11 PAHi3のアイドル時ファンは1,880~1,920rpmあたりを行ったり来たりしていました。同じrpmが同じ風量とは言い切れないのですが、NUC13 ANHi3で1,900~1,950rmpは39%にあたります。これを参考に、以下のような、もう少しハイパフォーマンスを求めた値に設定変更してみます。

  • ※ NUC13 ANHi3 Setting ( Custom )
  • Package Power Limit 1:20
  • Package Power Limit 2:28
  • Package Power Time Window:28
  • Fan off Capability:Disable
  • Primary Temperature Sensor:CPU
  • Secondary Temperature Sensor:CPU Voltage Regulator
  • Maximum Temperature:90
  • Minimum Temperature:64
  • Fan Cut-off Temperature Offset:20 (ignore)
  • Minimum Duty Cycle:39
  • Duty Cycle Increment:2
  • Sample Period:1
  • Ramp Down Rate:25%

 

上記設定での「ハイパフォーマンスでなるべく低温設定」については以下の続編でお届けします。

 

※この記事はBIOSの操作を推奨するものではありません。古くからBIOSの編集・変更にはリスクが伴うことは知られています。また、クーリング設定をプリセットから変更した時点でクーリングの責任はユーザーに移ります。それが原因でNUCが故障した場合はIntelのWarrantyが効かなくなる場合があることをご承知ください。

ご自身のPCをご自身の責任でいじられることは何の問題もありませんが、結果については常に自己責任であることを認識して頂ければと思います。この記事によって被ったあらゆる損害についてブログ主は免責とさせて頂きます。

NUC13 BIOSに入れない問題

先般、別の記事で簡単に触れましたが、インテルで最後のNUC13を買いました。型式はNUC13 ANHi3です。CPUはPコア×2, Eコア×4 構成で、末尾にUの付くノートPC用省電力Core i3が搭載されています。i3はCoreシリーズの末弟で一番非力、かつ、最近はN100など旧Celeron系のコスパにも押されていて、今となってはあまりお得感の無い部類になってきました。

まあ、それでも大手メーカーのMini PCや省スペースデスクトップはメモリもSSDも入っちゃって、何ならWindowsも入っちゃって、でもUSB3Gen2だったりで10万円を超えるのが普通。メモリもSSDも無いけど53,980円でThunderbolt4チップが2つ入ってるIntel NUCの魅力は結構大きいかなと思いました。ましてや今後はASUSがNUC事業を手掛けるので、どのような変化が起きるか分かりません。メモリやSSDなど当面の資産を転用できるアーキテクチャのうちに乗り換えることにしました。

で、今回はそのNUC13のBIOSに入れなくなった問題についてです。

いつからおかしくなったのか

NUC13が自宅に届いてすぐに、まずPCとしての動作確認が必要なので、前日に作っておいたDVDでWindows11をインストールし、その時点での最新状態になりました。それが確認できたのでBIOSを最新の0027にアップデートしました(F9でデフォルトのロードもやりました)。

この後デュアルモニター化しましたが、Intelロゴや起動のクルクルが両画面に出てしまうので、BIOSでPrimary Monitorの設定をするなどしました。また、これも別途記事にしますが、デフォルトのCooling設定があまり気に入らず何度も調整を繰り返しました。この頃はほぼ必ずBIOSを呼び出すことが出来ていました。

その後、なんやかんや設定を見直し、一通りの安定を手に入れたのでしばらくBIOSを触っていませんでしたが、やはり冬にしてはCPU温度が高めの推移をしているなと思い、再度Coolingを調整しようとしました。しかし、BIOSを呼び出すことができません。

発生のタイミングはおそらくWindows11 23H2にメジャーアップデートした後、もしくは、その後に落ちてきたKB5032288をインストールした後だと思います。また、2023/12/13の月例アップデート適用後も状況は変わっていません。

どうおかしくなったのか

NUCは代々、OSの起動前にF2を押すとBIOSを呼び出すことができます。しかし、いくらF2を連打しても、何回かチャレンジしても、連打の速さを変えてみても、シャットダウンからでも、再起動からでも、受け付けられずにWindows11が起動していまいます。

最初はUSBキーボードがおかしいか、あるいはNUC13のUSBポートがおかしいのではないかと思いました。しかし、10回に1回くらいは何らか規則性の無いスポットにF2がうまく当たってBIOSを呼び出すことができました。また、BIOS設定画面内ではUSBキーボードもマウスも問題なく動作していました。なので、NUCにしてもデバイスにしても、BIOS的またはハードウェア的な不具合ではない気がしました。

どちらかというと、BIOSの仕事が終わってOSに引き渡されるまでの間にF2が入り込む隙間が極端に狭くなっていて、そこに偶然F2が当たらないとBIOS画面を呼び出せない、なにかそんな風な感じかと思います。

念のためBIOSを0027で2回アップデート(同バージョンアップデート)して、ロードデフォルトしても状況は変わりませんでした。もはやWindowsとしか思えない自分がいます。

どうやって直すのか

この事象は結構な数あるのか、インテルのサイトでもFAQ化されています。で、結論を先に言ってしまうと直しません

対策のお勧めは「シャットダウン後に電源ボタンを3秒押し」です。これはインテルのサイトでも例示されています。

電源ボタン3秒押し

電源ボタンを3秒押し続けて指を放します。するとBIOSがOSに作業を引き渡す前に、ユーザーへブレークポイントを与えてくれます。次のような画面が表示されます。

BIOS ENTRY MENU

正直これで良くないですか?

当初はなぜF2で起動できないのか、それが不具合かどうなのかを気にしていましたが、故障ではないと分かれば、BIOSを呼び出す目的、あるいはBIOSをアップデートする目的としてはこの方法を常用すべきではないか、まで思います。

壊れたBIOSの修復時に用いられることからエマージェンシー機能と思われがちですが、別にこの「電源ボタン3秒押し」は非常時にしか使ってはならない、または使えない、あるいはNUCが機械的に損傷する、なんてものではありません。F2外してWindows上がって、それを再起動してまたF2外して・・を繰り返す不毛な時間を考えると、もうこれでええんちゃう?と思っています。

で、インテルのサポートが言うには、この方法でBIOSを呼び出して「Fast Boot」をDisableにすと次からはF2が通るのだそうです。が、しかし、あてくしFast Bootなんて致しておりません。

FAST BOOTなんてしてません

個人的には今後もこの方法で構わないと考えています。しかしながら、いくつかある他の方法もやってみたので書いておきます。

「高速スタートアップを切る」

ええ、やりました。というかまず最初にこれやります。効果はありませんでした。

「前面USBポートにキーボードを挿している場合は背面USBポートに挿し直す」

これはインテルのサポートに書いてあります。自分がやってみたところ、背面ポートに挿して最初の1回目はBIOSを呼び出せました。しかし、2回目、3回目は背面でもF2無視になり、前面ポートに挿しかえるとこれも1回目は呼び出せて、2回目、3回目はF2無視。まったくもってスィートスポットが分かりませんし、確実な方法でもありませんでした。

Bluetoothキーボードを使わない」

いやいや、あーたねえ

「NUC側のDCプラグを抜いて放電する」

何の意味があんのかと思うメソッドですが、ハードウェアの不認識時などには意外にも効くことがあります。ハードウェア構成のキャッシュみたいなものをキャパシタの電力で保持してたりするのでしょうかね。今回のケースでは効かなかったのですが、大した手間でもないので20~30秒電源プラグを抜いて挿し直してみるとイケることがあるかもしれません。

WindowsUEFIファームウェアの設定からBIOSを起動する」

Windows11でShiftキーを押しながら「再起動」をクリックすると再起動後にオプション選択画面が現れるので、「トラブルシューティング」→「詳細オプション」→「UEFIファームウェアの設定」を選び「再起動」を押します。

再起動後ロゴ画面が以下のように「お待ちください」になります。

ロゴ画面で「お待ちください」

で、この後、自動的にBIOS画面が呼び出されますが、これも何故か1回目だけは上手くいきます。2回目はWindows11が起動し、3回目はF2連打を併用しましたが空しくもWindows11が起動しました。これも全くスィートスポットが分かりません。

 

「番外編:BIOS Setup Auto-Entryを有効にしておく」

先ほどのFast Bootの画面にありましたが、PC起動時に常にOS起動へ進むか、BIOS画面に進むかを選べるブレークポイントを得られます(ESCでOS起動、F2でBIOS起動)。ただこのメソッドの難点は、電源ボタンを押すとOSロード前に毎回選択画面になるためESC一つ押すにも必ず有線キーボードが必要になります。普段Bluetoothキーボードしか使わない場合はいちいち有線をつなぐ必要があります。ただ、BIOSの調整作業を集中的に行っている期間には有効な手段かと。

BIOS Setup Auto-Entry

2024/2/6追記:

どうやらアップデート契機で勝手にBitLockerがかかったためF2受付の余白が無くなったようです。「ディスクの管理」を見て「BitLocker暗号化済み」になっているのを発見しました。Microsoftアカウントでログインしているので、BitLockerの解除画面にも遷移せずアカウントに保存されたキーで毎回自動復号していたみたいです。

ディスクのBitLockerを無効にしたところ、PC起動からWindows起動開始までに少し時間が生まれてF2やF7が効きやすくなりました。というかどういう仕様なんだよ、あぶねえじゃんか。

 

 

※この記事はBIOSの操作を推奨するものではありません。古くからBIOSの編集・変更にはリスクが伴うことは知られています。UEFIになった近代でもそれは変わりません。ご自身のPCをご自身の責任でいじられることは何の問題もありませんが、結果については常に自己責任であることを認識して頂ければと思います。この記事によって被ったあらゆる損害についてブログ主は免責とさせて頂きます。

浴室シャワー水栓 KVK KF771 カートリッジ交換

KVK KF771T のカートリッジを交換します。浴室シャワー水栓なので、開閉レバー用の切替弁カートリッジと温調レバー用のサーモスタットカートリッジがあります。この2つを同時交換します。

既にキッチン混合栓 KM5031JTおよび洗面台混合栓 KF868G はカートリッジ交換を記事にしましたが、浴室シャワー水栓 KF771Tは故障もなく設置から10年経過しました。しかし最近、開閉レバーを開け閉めする際に「キュー」という音がするようになり、温調レバーも動かすのが重くなってきた(元々軽くはないですが)ので、これら2つのカートリッジを同時に交換することにしました。

手順は概ね次のようになります

  1.  レバーハンドル部分の取り外し
  2.  水栓閉じ
  3.  蛇口と本体カバーの取り外し
  4.  カバーナットの取り外し
  5.  カートリッジの交換
  6.  カバーナット締め
  7.  レバーハンドル仮取り付け
  8.  湯温位置の調整
  9.  レバーハンドル取り付け

この手順で最も手ごわいのはキッチン混合栓や洗面台混合栓と同じく4. カバーナット取り外しと、5. カートリッジ交換における既存カートリッジの取り出しです。逆に言えばこれらを突破できれば業者に頼むのがバカバカしいくらいに簡単な工事です。ところが今回これは苦労することになりました。

では、今回も道具から見ていきます。

KF771カートリッジ交換に使用する道具

左から、

  1.  レバーキャップを外すための薄口マイナスドライバー
  2.  カートリッジの破損に備えた細口プライヤー
  3.  水栓を回すためのマイナスドライバー(マイナス5.5mm)
  4.  36mm対応のモンキーレンチ
  5.  新しいサーモスタットカートリッジ(KVK PZ77F)
  6.  新しい切替弁カートリッジ(KVK PZ669)
  7.  湯温調節に必要な水温計(タニタ TT-583)

3.は写真では特殊なものに見えますがただのマイナスドライバーです(超短いドライバビットしかなかったので本体がデカく見えているだけです)。4.は36mm以上開いて回せるモンキーレンチまたはモーターレンチが必要です。7.はサーモスタットカートリッジ交換後にレバーの40度を合わせるために必要です。

今回のために新たに調達した費用は、5,780円(PZ77F)+ 3,399円(PZ669)+ 1,045円(TT-583)= 10,224円 になります(全てAmazon時価)。

では作業を開始します。まず開閉レバーとキャップの隙間にマイナスドライバーを差し込みキャップを浮かします。ある程度浮かせるまでは抵抗があります。三本の足がレバーに刺さっていますので、5~6mm程度キャップが浮いたら真っ直ぐゆっくり引き抜きます。

レバーのキャップを浮かす

レバーのキャップを外す

キャップが外れるとレバーはそのまま簡単に引き抜くことができます。レバーを抜いたら切替表示のリング(「止」って書いてあるやつ)と、その下のプレートも簡単に外れます。こんな感じになります。

レバーを外すと切替弁と水栓が見えました

では、水栓を時計方向へ回して水側を止めます。同心円状にストレーナーの切り欠きもありますが、内側が水栓です。

マイナスドライバーで水側栓を止める

さて、ここまでやった作業を反対側の温調レバーに対しても行い水栓を時計方向へ回して湯側を止めます。

温調レバーを外して湯側栓を止める

ここでついでだからストレーナーも清掃しようとしましたが、この切り欠きに対応できるドライバーを持っていなかったので今回は諦めました。おそらく水道工事用の18mmマイナスドライバーが無いと回せないと思います。

温調側にはカバーナットにプラスチックのギアのようなパーツがはまっているのでそれも外します(抜くだけです)。

温調側のカバーナットからプラパーツを外す

切替弁側は問題ないのですが、温調側のカバーナットにモンキーレンチを合わせてみると、鏡に当たるか本体カバーに当たるかでモンキーレンチを回せそうにない状況でした。これはレンチの形や厚み、またはカバーナットの掴み位置がどこで止まっているかによって異なり、問題がない場合もあります。今回はこれらの組み合わせが良い環境ではなかったということです。

このため、温調側にモンキーレンチのクリアランスを確保できるよう本体カバーも外していきます。まず蛇口の根元にある二つのナットの上ナットを回して蛇口を外します。

蛇口を外す

続いて蛇口の付け根にある下ナット(蛇口と本体の接合ナット)を回して外します。

蛇口と本体の接合ナットを外す

これで本体カバーを外すことができます(背面のシャワーホースを外す必要はありません)。

露になった本体のお姿

ドーーーン・・・さびっ錆です・・古びた蒸気機関車のようですね・・きっと新品の時は輝くブロンズだったのでしょう。とりあえずこれでカバーナットにはクリアなアクセスができるようになりました。

続いてカバーナットを外して行きます。まずは切替弁側から。反時計回りなので上から下に向けて力をかけることができ、モンキーに力をかけたら割と簡単にゴリッと回りました。

切替弁側カバーナットを外す

ところが、ダメなのはサーモスタットカートリッジ側のカバーナットです。とにかく回りません。サビついていて、コツコツ叩いたりミシン油を隙間に差してみたりしましたが頑として回りません。

回らないサーモスタットカートリッジ側カバーナット

こちらも反時計回りですが、前面で鏡と干渉するため、切替弁側とは逆に下から上に力をかけることになりました。しかし、本体が壊れるんじゃないか、とか、本体が台座の樹脂ごと剥がれるんじゃないか等、心理的に自分で力をセーブしているような気がしました。

なので、しゃがんで腕の力だけで回そうとするのではなく、立ち姿勢になって左手は全体重で上から本体を押さえつけ、右手はゆっくり力を増大させ続けて引き上げる感じで回してみたところ「ゴキンッ」という音と共に回りました。あれほど回らなかったのが嘘のようにあっけなく。やっぱり覚悟の問題で力をセーブしていた感が強いです。

サーモスタットカートリッジ側のカバーナット

やっぱり緑青が出ていますね。これで苦難その1は突破しました。

続いて苦難その2です。切替弁カートリッジを引き抜くのですが、これまったく抜けません。KVKがYoutubeに出している動画では、手で抜けない時はレバーとキャップを付けて引き抜くようになっていましたが、そんなんじゃビクともしません。

KVK以外のYoutubeコンテンツで、レンチで芯をつかんでそのレンチをハンマーで打つと抜ける、という動画もありました。しかし、現物破壊を前提にしたやり方では、万が一交換品が初期不良だった場合に元に戻せなくなるので困ります。可能なら無傷で抜き取りたいものです。

切替弁の右隣がバスタブで引き抜き動作の体制が悪いため、温調側から体を被せて両手でレバーを掴み、バスタブ側へ全力で押してみた(剣道の突きみたいなフォーム)ところ、力業で抜くことが出来ました。

抜き出した切替弁カートリッジ

置き去り物が無いか確認

これで苦難その2も突破です。さて苦難その3に行きます。サーモスタットカートリッジも全く抜けません。切替弁と同じやり方をしてみましたが抜けません。どうも先端に力をかけて引き抜くのは無理な感じです。破壊しないで取り出したい。さてどうしたものか。

どこかにテコの力をかけるところは無いかと見回してみると、一か所だけ可能性のある部分があります。ここ、本体カバーを外していなければ見つけることは出来ませんでした。

挿入位置を間違えないための切り欠き部

サーモスタットカートリッジの挿入位置を決めるための本体側切り欠きと、カートリッジのノッチとの間に少しばかりの隙間があります。マイナスドライバーでは入りが浅く厚みも足りずでテコをかけられませんでしたが、細口プライヤーが丁度良い感じに入り、本体側を支点にカートリッジを押し出すことができました。

ノッチの後ろに細口プライヤーを差し込む

ノッチをテコの力で押し出す

ここまで出てきたものの、奥のOリングが途中で引っかかりまた抜けなくなります。しかしカートリッジは定位置を脱しているため、カートリッジをゆする空間が生まれています。力をかけながら左右に小さくゆすることで引き抜くことができます。

抜き出したサーモスタットカートリッジ

さあ、では新しいカートリッジを両方入れていきましょう。差し込むのは手の力で問題なく入ります。グッと押し込んで入った感があれば良いです。カートリッジ側のノッチと本体側の切り欠きに隙間があっても、あとはカバーナットが押し付けられて固定されます。

サーモスタットカートリッジ挿入

切替弁カートリッジ挿入

両方のカバーナットを装着して本体カバーと蛇口を取り付けます。次に開閉レバーを差し込んで「止」にしておきます。その後に水栓と湯栓を反時計回りに回して開きます。

湯温を確認するために、給湯器側の給湯温度を低め(43度程度)に設定してください。ここからは、やけどをしないように十分に注意してください(もちろん自己責任です)。

温調レバーは40度にすると40度のお湯が出るという訳ではなく、温調レバーの目盛りは「40度のお湯が出る位置はここです」という目安を提供しているに過ぎません。ですから、サーモスタットカートリッジを交換した場合、どこが40度になる位置なのかを自分で見つけないといけません。

温調レバーをとりあえず40の刻印を真ん中にして差し込み、可能な限り低温側(KF771では向かって手前、Cの方向に回す)にしておきます。開閉レバーはカラン側へ全開にして水を出します(全開で吐水しないと測定温度が安定しません)。蛇口からの吐水に水温計を当てながら、温調レバーを徐々に高温側(KF771では向かって奥、Hの方向に回す)にしていき、水温計が40度で安定する位置で温調レバーを止めます。

水温計で40度の位置を探す

そのまま温調レバーを動かさずに一回引き抜き、基準目盛りと40の刻印位置が合うように差し直します。

基準位置に40が来るように差し直す

次に温調レバーを更に高温側へ回していき、最大湯温が給湯器側の設定と合っているかどうかを計測します。給湯器側の設定温度が高いとここで熱い湯が出ますので、くれぐれも低めに設定しておいてください。

温調レバーを最大湯温にするとお湯しか出ていないはずなので、給湯器側設定と同じ温度(あるいは±0.2度くらいの温度)になると思います。温度が上がらない場合は交換したサーモスタットカートリッジに問題がある可能性を検討してください。

問題がなければレバーにキャップをし、水栓アクセスのプレートを閉じて完了です。

交換完了!

開閉レバーが滑らかです!温調レバーも適度な負荷でスムーズに動きます!

今回は決定的な故障はしていないものの、10年を超えその兆候は見え隠れしている状態でした。そこで予防保全を兼ねてKF771の切替弁カートリッジとサーモスタットカートリッジを交換しました。

キッチン混合栓と洗面台混合栓ではさしたる苦労も無かったのですが、このKF771はかなり苦労しました。次から次へあれも回らないこれも取れないの連続で、正直なんの不具合も出さず元通り正常に動かすことが出来たのが奇跡のように感じます。4~5年目くらいの新しい状態ならまだしも、少なくとも10年超えで二つのカートリッジを同時交換はお勧めしません。特に一人で作業を行うと猛烈な孤独と焦燥感に包まれます。

銅のサビは湯側に付きやすく被膜も非常に強固であるため、あと4~5年経ったら本当にカバーナットは回らなかったかもしれません。かなり厳しい作業でしたが、結果としてここで一度回しておいて良かったなとは思いました。

ちなみに新しいシャワー水栓ユニットに交換した場合、KF771は製造終了しているので後継のFTB200DP1Tで69,000円(定価からどれくらい負けてくれるのかは水道屋さん次第)+ 出張料・施工費で15,000円~30,000円という感じかと思います。

 

 

※自分でカートリッジ交換を行う事を推奨するものではありません。自分で交換する場合は、本体、カバーナットやカートリッジの破損や漏水のリスク、作業によって不意に鏡等の周辺設備を破壊するリスク、高温の湯でやけどするリスクなどがあります。これらを十分に理解して必要な対策を講じた上ですべて自己責任で行ってください。この記事によって被ったあらゆる損害についてブログ主は免責とさせて頂きます。