2026/09/28(月)WoL対応のSFP+ 10GbE NICを買ってWoLを実現した
投稿日:
以前買ったMellanox ConnectX-4でWoLができなかった話の続き。
SFP+搭載NICを使い、WindowsマシンをWoLを使ってスマホから起こすのをやる話。
やりたいこと
流れとしてはスマホからUbuntuサーバーにSSHで繋ぎ、UbuntuサーバーからWindowsデスクトップへマジックパケットを送付して起こす。Windowsが起きたらスマホからWindows側にSSH接続して扱う内容。
Cloudflare TunnelやTailscaleは使わずにSSH直結で扱い、スマホ→Ubuntu→Windowsのように踏み台を使うこともしない。
使ったもの
デバイス
Windows~L2スイッチ間で使っているもののみ。
| 種類 | デバイス |
|---|---|
| マザボ | ASRock Z890 Pro RS |
| NIC | TXA403 |
| DACケーブル | 10Gtek CAB-10GSFP-P2M-30 |
| スイッチ | MikroTik CRS305-1G-4S+IN |
ソフトウェア
| Env | ver |
|---|---|
| Windows | Windows 11 Pro 25H2 |
| Ubuntu | Ubuntu 24.04.4 LTS |
| WoL | wakeonlan version 0.41 |
ネットワーク構成
大まかにこんな感じ。図には書いてないがLAN内にはWiFi APもあり、そこからも叩ける。
やったこと
Windowsデスクトップ側
- BIOSでPCIe経由の起動を許可するように設定
- Realtek PCIe FE / GbE / 2.5GbE / 5G / 10G Family Controller Softwareから「DASH all-in-one Installer for Win10/Win11」をダウンロードし、インストール
- ここはNICを挿す前にやっておくといいと思われる
- NICを挿す
- デバイスマネージャーでWoLが有効になっていることを確認(デフォルトで有効だった)
Ubuntuサーバー側
wakeonlanと言ういかにもそのままなパッケージを入れるだけ。入れたらMACアドレスを指定して叩くとマジックパケットを投げることができる。長いのでエイリアスを貼っておくと楽。
sudo apt install wakeonlan
wakeonlan <MACアドレス>
Android側
適当なSSHクライアントでUbuntuに繋ぎ、wakeonlan <MACアドレス>を流し、Windowsを起動させる。
開封の儀とか紆余曲折の話
SKN-8127AF-X1ではダメだった話
以前買ったMellanox ConnectX-4でWoLができなかった話ではSKN-8127AF-X1を使うことを検討していたが、DACとの相性が悪いのかこれは使えなかった。まずDACケーブルを挿してもLEDが付かず、OSから見ても当然線が刺さってない扱いだった。
SKN-8127AF-X1自体は日本語の取説まであり、いい感じのパッケージだっただけに残念だ。
しむふり生活というブログによるとオートネゴシエーションの設定が死んでいるので、手動でリンク速度を設定すれば行けるらしいが、この情報を知る前に処分したためもう分からない。
ブラケットもやたら傷まみれだったし、単純に不良品だった可能性もあるが今となっては解らない。
コネクタはPCIe4.0x1で、空きがあればどこにでも挿せるのは嬉しかった。
TXA403開封の儀とか
TXA403が届くと箱にRJ45が描かれており、封印もセロテープだったため、一抹の不安に襲われた。
しかし開けてみるとちゃんとSFP+だった。手抜きか?
SKN-8127AF-X1と比べると内容は随分簡素で、個別の袋やネジ、取説はなかったが、あっちが無駄に豪華すぎるだけで別にこれでいい気がした。
ヒートシンクをSKN-8127AF-X1と比較すると目が少なく、向きも違うので若干冷却性能は下がるかもしれないが、恐らく問題になることはないだろう。
コネクタはPCIe3.0x4で、PCIe4.0x1だったSKN-8127AF-X1と比べると大きかった。
ブラケットもピカピカで問題なかった。
取付時に思ったこととして、ゲーミングPCはよく光るため、この程度のパーツの取り付けなら懐中電灯が要らなくて便利だなと思った。
以前使っていたHuawei STL2IEA2Aと比べるとだいぶ小さい。基板が青色なのも少し珍しい気がした。
Huawei STL2IEA2Aとの比較
TXA403側は情報が少ないので一部の情報はググって出てきたのを適当につぎはぎしている。
| 機能 | Huawei STL2IEA2A | TXA403 |
|---|---|---|
| チップセット | Mellanox ConnectX-4 Lx | Realtek RTL8127ATF |
| 消費電力 | 12W | 1W |
| コネクタ | PCIe3.0x8 | PCIe3.0x4 |
| ポート数 | 2 | 1 |
| WoL | 非対応 | 対応 |
| Linux対応 | ◎ | △ |
| Windows対応 | ◎ | ◎ |
RTL8127ATFはLinux対応がイマイチらしく、UbuntuだとWoLを有効にすると問題が起きるっぽい?ので、Linuxでの使用は微妙かもしれない。
ベンチマーク
WindowsからUbuntuに飛ばす速度については、前回計測時より若干早くなっているように感じた。逆は特に変わらず。
Windows → Ubuntu
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 1.11 GBytes 9.52 Gbits/sec
[ 5] 1.00-2.01 sec 1.11 GBytes 9.49 Gbits/sec
[ 5] 2.01-3.00 sec 1.10 GBytes 9.49 Gbits/sec
[ 5] 3.00-4.01 sec 1.12 GBytes 9.49 Gbits/sec
[ 5] 4.01-5.00 sec 1.09 GBytes 9.49 Gbits/sec
[ 5] 5.00-6.02 sec 1.12 GBytes 9.49 Gbits/sec
[ 5] 6.02-7.00 sec 1.09 GBytes 9.49 Gbits/sec
[ 5] 7.00-8.01 sec 1.11 GBytes 9.49 Gbits/sec
[ 5] 8.01-9.02 sec 1.11 GBytes 9.49 Gbits/sec
[ 5] 9.02-10.01 sec 1.10 GBytes 9.49 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.01 sec 11.1 GBytes 9.49 Gbits/sec sender
[ 5] 0.00-10.01 sec 11.1 GBytes 9.49 Gbits/sec receiver
Ubuntu → Windows
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 1.09 GBytes 9.26 Gbits/sec
[ 5] 1.01-2.00 sec 1.07 GBytes 9.27 Gbits/sec
[ 5] 2.00-3.01 sec 1.09 GBytes 9.27 Gbits/sec
[ 5] 3.01-4.00 sec 1.07 GBytes 9.28 Gbits/sec
[ 5] 4.00-5.01 sec 1.09 GBytes 9.28 Gbits/sec
[ 5] 5.01-6.01 sec 1.07 GBytes 9.28 Gbits/sec
[ 5] 6.01-7.01 sec 1.09 GBytes 9.29 Gbits/sec
[ 5] 7.01-8.00 sec 1.07 GBytes 9.29 Gbits/sec
[ 5] 8.00-9.01 sec 1.09 GBytes 9.28 Gbits/sec
[ 5] 9.01-10.00 sec 1.07 GBytes 9.28 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 10.8 GBytes 9.28 Gbits/sec receiver
あとがき
R86S U1のNICを交換したのと今回の作業でSFP+対応のNICが2枚も余ってしまった。
まさかこんなニッチなNICを早くも二枚も余らせてしまうとは…。ひとまずは予備に持っているが、どうしたものか。
2026/07/10(金)Windows 11でウィンドウが切り替わりづらい問題を解消したような気がする
Alt+Tabやタスクバーからのマウス操作で上手く切り替わらないことがあったので、その対策。
この問題自体の再現性が低い問題があり、これで完全に解消するかどうかは不明だ。そのため、まだ検証中である。
確認環境
- Windows 11 Pro 25H2 (OSビルド26200.8737)
前提条件
- タスクバーを自動で隠す設定にしている
- タスクバーのボタンをまとめる設定にしている
- タスクバーのボタンにラベルを出していない
- タスクバー関係のユーティリティソフトを使っておらず、Windows標準の状態
解決する問題
こういう面倒な状態を解消する。
- Alt+Tabでウィンドウを切り替えたのに切り替わってない
- タスクバーからウィンドウをクリックしたのに切り替わらない
- 前面にあるウィンドウをすべて最小化することでどうにか切り替えている状況
解決した方法
タスクバーを自動で隠す設定をやめるだけで解決した。
推定原因
タスクバーを自動で隠す設定でも切り替わる切り替わらないウィンドウがあるが、恐らくタスクバーを自動で隠す設定で、タスクバーの裏に回っているウィンドウがいるとそこに切り替わりづらくなると思う。
ただ、隠す設定をON/OFFすると、その瞬間は改善し再発しなくなったため、確証はない。
2026/06/16(火)WSL2の中からPowershellでOSへ通知トーストを投げる
PowerShellはWSL2の中から叩けるため、WSL2の中から通知を出したいときに使える。
PowerShellなのでホスト側のWindowsからも使える。
確認環境
PowerShell 7では動かないので注意。
| Env | Ver |
|---|---|
| OS | Windows 11 Pro 25H2 (OSビルド 26200.8655) |
| PowerShell | 5.1.26100.8655 |
やり方
この内容を
toast.ps1など適当な名前で保存する。文字コードはUTF-8 BOM, 改行コードはLFにしておくparam ( [String]$subject = "WSL Notice", [String]$title = "たいとるですー", [String]$message = "お知らせでーす", [String]$icon = "C:/env/1e1b9fdf82a6a544.png", [switch]$keep ) [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null $template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastImageAndText04) $xml = New-Object Windows.Data.Xml.Dom.XmlDocument $xml.LoadXml($template.GetXml()) $toastTextElements = $xml.GetElementsByTagName("text") $toastTextElements.Item(0).AppendChild($xml.CreateTextNode($title)) > $null $toastTextElements.Item(1).AppendChild($xml.CreateTextNode($message)) > $null $toastImageElements = $xml.GetElementsByTagName("image") $toastImageElements.Item(0).SetAttribute("src", $icon) > $null if ($keep) { $xml.DocumentElement.SetAttribute("scenario", "reminder") > $null $actions = $xml.CreateElement("actions") $action = $xml.CreateElement("action") $action.SetAttribute("content", "閉じる") > $null $action.SetAttribute("arguments", "dismiss") > $null $action.SetAttribute("activationType", "background") > $null $actions.AppendChild($action) > $null $xml.DocumentElement.AppendChild($actions) > $null } $toast = [Windows.UI.Notifications.ToastNotification]::new($xml) $appId = $subject $notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier($appId) $notifier.Show($toast)- 次の書式で叩くと通知トーストが出る
powershell.exe -File 'C:/path/to/toast.ps1' -subject hoge -title fuga -message piyo -icon C:/path/to/icon.png -keep
このスクリプトのオプション
| オプション | 役割 |
|---|---|
-subject |
通知の表題。ここを変えると別の通知として扱われる |
-title |
通知のタイトル |
-message |
メッセージ本文。一行のみ |
-icon |
アイコン。Windowsホストの絶対パスで指定 |
-keep |
このフラグを立てると通知が消えなくなる |
-subjectを変えると別の通知扱いになるため、通知を別々に貯めることができるようになる。
Windows側から叩く方法
powershell 'C:/path/to/toast.ps1' -subject hoge -title fuga -message piyo -icon C:/path/to/icon.png -keep
Windows側から叩く場合、-Fileは省略できる。
参考情報
- ToastTemplateType 列挙型 (Windows.UI.Notifications) - Windows apps | Microsoft Learn
- ここの内容とググった情報からXMLの構造をエスパーして実装している
あとがき
Claude Codeの確認と終了のイベントで通知が出ると便利かなと思って作ってみたが、まだ試せていない。
取りあえずWSL2の中と、Windowsホスト側から叩いたときに通知が出ることは確認している。
PowerShell 7で動かそうと思ったらエラーまみれで動かず、PowerShell 7の場合、NuGetパッケージを取得するか、DLLのパスを直に指定するか、サードパーティの通知ライブラリを使うかということで、諦めた。
2026/06/05(金)Windows 11のEdgeでTLS証明書のキャッシュをクリアする方法
2026/06/04(木)Windows 11でコマンドを使って標準のブラウザを変更する
どこぞのやつはライセンスが面倒なのと、無料利用だと課金誘導のポップアップが出て面倒そうなので完全無償のPS-SFTAを使って解決する。
確認環境
- Windows 11 Pro 25H2 (OSビルド 26200.8457)
- SFTA.ps1 22a3229
やり方
- PS-SFTAにある
SFTA.ps1を拾ってきてどっかに置く - 標準ブラウザ変更保護プログラムであるUCPDとかいうのを殺す
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\UCPD" -Name "Start" -Value 4 -PropertyType DWORD -Force schtasks /change /disable /tn "\Microsoft\Windows\AppxDeploymentClient\UCPD velocity" - 管理者権限のPowerShellでこれを流す
powershell -ExecutionPolicy Bypass -command "& { . C:/path/to/SFTA.ps1; Set-PTA MSEdgeHTM http; Set-PTA MSEdgeHTM https; Set-FTA MSEdgeHTM .htm; Set-FTA MSEdgeHTM .html }"
あとがき
Windows 11には標準のブラウザを変更するコマンドは用意されておらず、レジストリの操作も単純ではないようなので、やるとしたらWindowsの設定を開き、アプリ→既定のアプリ→Edge→標準ブラウザにするという手間のかかる作業が必要だが、今回の方式ならコマンドを一発叩くだけなので非常に楽である。
しかもWindowsの設定にあるアプリ→既定のアプリはレイアウトシフトが酷く、少し待たないと操作できないのも面倒なので、そういったフラストレーションから解放されるのも大きい。