マザーボードを変更して以降、最近ブツブツとよくネット接続が切れる。
よくよくチェックしてみたらI225-Vのせいだったというオチで忘備録として記事に残しておこう。

■イーサネットコントローラ I225-V/I226-V の大問題
I225-VはIntelブランドのイーサネットコントローラ(LANチップ)でマザーボードに限らず幅広いネットワーク機器に使われている。
しかし設計上の問題で転送速度が大幅に落ちる、頻繁に切断される等の不具合が起きることで大問題になった。
これらの問題を解決すべくリビジョン3までチップを更新したにもかかわらず依然として解決されていないと多くの人が指摘する。
いま僕が使用しているマザーボードに載るI225-V Rev.3もご多分に漏れず不具合が発生。
そしてまったく同様の症状がI226-Vにも発生することからI225-Vのリネーム品じゃないのかと揶揄されている始末だ。
現在のところ、パケットサイズの違い、オートネゴシエーションのバグ、省電力ステートごとの速度制限、原因は複数ある模様。

■問題への対処
あえて解決法とは呼ばない。Intelも「緩和」と発表するに留まるくらいには根深いバグ。
ここでは4つの対処を挙げるけど、それら全部を行うべきか、どれか1つで良いのかは不明。
個々の効果を確認しつつ、改善の見られない項目はデフォルトを維持するようにしたいところ。

①2.5Gbps接続を諦めて1Gbps固定にする
これは問題が発覚した当初、2020年から言われている対処法である程度の緩和効果も認められている。
デバイスマネージャからI225-V/I226-Vのプロパティを開き[詳細設定]タブ内にある「速度とデュプレックス」を
「1.0Gbps全二重通信」にする。これによってネゴシエーション失敗が格段に減るとのこと。

②TCPチェックサムの無効化
同じく一部の人に転送速度の改善があるとされている対処法。
デバイスマネージャからI225-V/I226-Vのプロパティを開き[詳細設定]タブ内にある「TCPチェックサムのオフロード(IPv4)」と
「TCPチェックサムのオフロード(IPv6)」を「無効」にする。

③省電力機能を切る
同じくデバイスマネージャからI225-V/I226-Vのプロパティを開き詳細設定タブ内にある「Energy Efficient Ethernet」を
オフにする。ドライバのバージョンによってはその項目が無いかもしれない。

④ドライバーを更新する
Intelはこの問題に暫定的に対処したドライバとしてWindows11にはV2.1.3.3、Windows10にはV1.1.4.38を
リリースしているのでそれをインストールする。MSIの説明によればこのドライバは内部的に③を行っている模様。

■自分が行った方法(I225-V専用)
LenovoからI225-V用NVMファームウェアv1.89が出たので人柱として導入。
チップ内EEPROMである以上は共通のはずなので、フォーラムを参照しつつ更新してみた。
※ファームウェアの書き換えは最悪の場合故障します。「わかってる人」のみ自己責任で。
Rev1.x用としながらもウチのRev3でも問題なく動作。さらに念のためドライバをV1.1.4.38に更新。
Windowsからは旧コントローラとは別物として新たに認識されるのでネットワークのIP周りを再設定。
そこから4日間使用しているが切断の頻発は完全になくなり、ストリーミングにカクつき等の問題も発生していない。
たぶん元がRev3であることも影響していると思うが、NVMファーム1.89と④ドライバ更新のどちらかが効いているようだ。
ひょっとしたら出荷時のファームウェアバージョン違いでRevがついてる可能性がある・・・?(ウチのRev3は1.73だった)
5月27日時点で「ドライバを最新にしても効果が無かった」と言う人も居るためファームウェア更新も意味があったと思いたい。
(「最新」という表現は相対的かつ曖昧なのでそれ以降の未来から情報を求めて参照されることを考えて
 バージョンを明確に表記すべきと思うのは僕だけだろうか?)

■おしまい
いやはや、Intelを忌避してRealtek安牌とかとんでもないご時世だね・・・
噂程度にIntelのLANチップはやらかしたって聞いてたのが自分に降りかかろうとは。
同じ問題で悩む方々の解決になれば幸い。

2023.05.27 16:34 | PC | トラックバック(-) | コメント(-) |

InputWireをリリースしてから随分経ち、手元では着々とバージョンアップを重ねたので記事を一新してみる。
3.2.0より新たなドライバーモードを実装。

■InputWireとは
マウスやキーボードの入力を 入れ替え/ブロック するためのソフト。
ドライバーを使用して特定デバイスをプログラマブルテンキー化可能。UWPアプリにも対応。
もともとはボタン数が少ないマウスでキーボードと組み合わせてより多くの入力を実現したかった事が始まり。


■特徴
・マウスのボタンにキーまたは別のマウスボタンを割り当てることが可能
・キーに別のキーまたはマウスボタンを割り当てることが可能
・A+B+EnterやCtrl+右クリック+ホイールUPなどの変則コンビネーションを登録可能
・プロセスごとに設定可能
・デバイスごとに設定可能 ※ドライバー使用時のみ
・マウス/キーボードの簡易チャタリング防止、ゆるゆるホイール対策機能
・簡易マクロ機能

■変則コンビネーション
マウスとキーボードの入力を混在させて登録できる。仕様上、同時押しは3つまで。
登録が難しいキーの組み合わせはあらかじめプルダウンの中に登録済み。
置き換え対象は一番最後の入力なので[置換後の動作]表示を参考に。
登録されたマクロは置換イベントのプルダウンから選択可能。


■簡易マクロ
押し下げ、押し上げ、条件式、マウス移動、ループ、待機を使用可能。
条件式はキーの押し下げ状態が一致するなら次の行を実行し、一致しなければスキップされる。
条件式のあとにループを配置した場合、ループ終端までが条件実行の対象になる。
無限ループチェックが無いので細心の注意を払うこと。


■ドライバーモード
署名問題を気にすることなく使えるInceptionドライバーに対応。
GitHubにあるzip内のinstall-interception.exeをコマンドプロンプトから使用してインストール。(再起動後から有効)
多くのアンチチートでInceptionが禁止扱いされているためプロテクトの厚いゲームに使用しないこと。

■仕様制限
[非ドライバーモード]
・対象デバイスが「すべて」となっている割り当てのみ有効
・一部のキーに対する割り当て/ブロックが不可
・Ctrl+Alt+Delete等のシステム関連コンビネーションは送信不可
[Inceptionドライバーモード]
・起動中に追加/削除されたデバイスは認識不可
・環境によっては初回入力に反応不可(次の入力から反応)
・CapsLockやPauseへの割り当てが正常に行われない(キーリピートのみに反応)

■配布はこちら
ダウンロード

2022.10.17 06:34 | プログラム | トラックバック(-) | コメント(-) |

ついにうちのDeathAdderさん(マウス)がチャタリングを起こし始めたよ・・・
鉄は熱いうちに打てということなのでチャタリング抑制ソフトを作ってみた。

■Chattering Blockerとは
マウスおよびキーボードのチャタリングをブロックする。
自分のチャタリングマウスをサンプルとして調整したので環境によっては効果が薄いかも。


■特徴
登録したボタン/キーに対してチャタリング防止を行うため、関係のないキーに効果が及ばない。
チャタリング防止ソフトといえば他にも2つほどフリーソフトで存在しているが、
それらは通知ブロックのためにグローバルフックDLLを使っている。
そのため外部DLLの読み込みを許さない厚いプロテクトのプロセスには効果が期待できない。
(Battle EYEとかXIGNCODE3とかHackShieldとかのゲーム系)
本ソフトは別の手段でチャタリング防止を行うのでどのプロセスにも効果が乗ると思う。
また、ホイールを指定した場合、初動1カウントを破棄するゆるゆるホイール対策としても動作する。

■配布はこちら
ダウンロード

[2022/10/17]
記事とファイルの更新、いくつかの細かい修正。

2018.05.27 09:55 | プログラム | トラックバック(-) | コメント(-) |

以前より度々記事に書くことのあったサウンドデバイスの切り替え問題。
「既定のデバイス」を切り替える方法では対応していないアプリで音が消えてしまったり
ハード側での切り替えではスピーカーとヘッドホンの音量を独立して設定できない問題があった。
そこでVBRedirectをさらに発展させてホットキーで転送先を切り替えられるソフトを作ってみた。

■OutputWireとは
サウンドデバイスに対してワンキーで複数の操作を行えるようにする。
音量リンクや出力転送といったデバイス切り替えに便利な機能を備える。
出力転送はVSTプラグイン効果を乗せて音の加工も可能。
WASAPIの自動コンバート機能を使うためWindows10でしか動かないので注意。


■機能
・既定のデバイス/通信デバイスの設定
・音量のアップ/ダウン/指定/他デバイスに揃える
・ミュートのオン/オフ/トグル
・音量のリンク(2つのデバイスの音量とミュートがシンクロする)
・出力転送(指定デバイスからも同時再生させる)/VSTプラグインでの加工
・VSTプラグインの動的ON/OFF
・ソフト起動時にマクロ実行するスタートアップ機能


■出力転送とVSTプラグイン
特定のデバイスからデバイスへ出力を転送することで2つのデバイスで同時再生が可能。
再生デバイスから再生デバイスへの転送も可能で、録音側からの転送より低遅延。
転送データをVSTプラグインで加工して転送先に反映させることができる。
使用できるプラグインはVST2のみ。OutputWireと同じbit数でないと動作しない。
2ch用プラグインであっても7.1ch出力全てに効果を乗せる。
出力転送は転送元と転送先のAPO効果が乗ることに注意。
EqualizerAPOと違い、プラグインの各種視覚効果がリアルタイムに更新される。



■配布はこちら
ダウンロード

[2022/10/20]
転送先で立体音響が使えなかった問題の修正、その他細かい修正

2018.05.01 19:27 | プログラム | トラックバック(-) | コメント(-) |