題 我可以以某種方式加快Windows的USB即插即用功能(在USB集線器/交換機上)嗎?


我正在使用類似KVM的開關來在Windows機器和Linux機器之間共享我的鍵盤和鼠標。

我有一台羅技鼠標和海盜船(K95-RGB)鍵盤(具有諷刺意味的是,這兩款設備都是針對只有Windows端官方驅動程序支持的Windows製作和優化的......)問題是當我從Windows(或離線)切換設備時對於Linux,Linux認為設備已插入並立即激活它們,我可以在1秒內使用這些設備,無論我最近一次切換或設備先前處於哪種狀態。

當我從Linux(或離線)切換到Windows時,Windows可能需要花費大量時間來首先檢測設備,而實際啟用它們需要花費大量時間......

根據我的Windows時鐘(我計算),大約38秒用於設備檢測(打開電源),另外17秒(更新:在稍後的重新測試中,我發現鼠標在約15秒內激活,鍵盤在5秒後激活,或者在〜20s內)用於設備激活(例如,為了讓驅動程序正確啟動,所以從我切換到Windows後我等待55秒才能使用設備)這次我的鍵盤和鼠標都是相同的,儘管使用單獨的驅動程序軟件和完全不同的設備。

那麼Linux需要大約1秒才能完成,Windows需要1分鐘才能完成,通常在40-60秒的範圍內,根據我大約半個月的經驗。

進一步澄清事情。 Windows最初啟動/檢測設備所需的35-40秒僅在設備最近斷開連接時才會發生。基本上發生的事情是,當我斷開設備(遠離Windows)時,窗口需要35-40秒才能確認設備已斷開連接(使設備斷開聲音)。如果我在此之後切換回窗口,則會立即檢測/打開設備,但仍然需要15-20秒才能使用(讓驅動程序工作)。

問題1是我是否可以在檢測到並打開電源後以某種方式加速設備的驅動程序啟用? (也許以某種方式阻止驅動程序首先被完全卸載?或者將它們卸載到RAMDisk以加快負載?還有其他什麼?)

問題2。在Windows斷開設備(切換到另一台計算機)之後,我可以以某種方式減少時間(out?)嗎?我希望盡可能接近即時。

額外信息:

我的設置如下(從計算機到設備)

  1. USB 2.0端口
  2. USB 1.X USB開關
  3. USB 2.0,4端口曼哈頓供電USB集線器
    1. Corsair K95-RGB鍵盤(使用2個USB端口,一個用於額外電源)
    2. 羅技G402 Hyperion Fury鼠標
    3. Wacom CTH-680平板電腦。

測試:

我在Linux和UEFI BIOS中測試了相同的交換機/集線器設置,沒有觀察到Windows上的任何問題(除了鍵盤和鍵盤單獨需要幾秒鐘才能被重新檢測到 ckb驅動程序,這意味著宏/額外鍵在Linux上用於鍵盤幾秒後才能工作。否則一切都在<1s完美運行

我決定直接測試我的鼠標,因為它是最簡單的,並且在第一次連接時它表現出類似的行為,在鼠標可用之前大約等待約50秒(大部分時間再次等待它被檢測到並且首先供電)。如果我之後通過拔掉鼠標並將其重新插入來重複此測試,它會立即激活/可用,同樣如果我拔下插頭並將其插入已經激活的USB集線器,它會立即再次激活。但是,如果我使用開關關閉/打開設備,它將恢復到與以前相同的模式。 (如果沒有連接多個設備斷開/重新連接整個集線器,即插即用效果最佳)

我試過關閉windows的usb開關,等待Windows斷開設備(~40s)並播放設備斷開聲音,此時我切換回windows,設備檢測即時但驅動程序負載仍需要15-20秒。 (Wacom未經測試)鼠標和鍵盤可以在同一時間使用,儘管鍵盤驅動程序似乎更複雜,並且應該比鼠標加載時間更長(有點像沒有設備可以工作,直到連接到集線器的所有設備有他們的司機加載,可能只是巧合)。

我嘗試在安全模式下啟動(僅限通用驅動程序),此處設備斷開仍然需要約40秒,但檢測後驅動程序激活時鼠標<1秒,鍵盤<5秒(比兩者都快〜17秒;但是鑑於此,我決定在啟動安全模式後檢測兩個設備後重新測試激活時間,這是真的,這次鍵盤花了比鼠標長5秒的時間加載驅動程序(鼠標〜15s,鍵盤〜20s)。

在卸載Corsair Utility Engine(鍵盤驅動程序)之後我運行了另一個測試,鍵盤沒有更快地初始化(仍然花了大約20秒)。重啟後,鍵盤的激活速度幾乎與安全模式下一樣快。然後我重新安裝了Corsair Utility Engine並再次嘗試,並且隨著corsair驅動程序激活它再次快速。我重新啟動了,事情又回到了以前的狀態。我再次卸載了corsair實用程序引擎,儘管它已被卸載,但鍵盤不再快速初始化。進一步的測試讓我得出結論,我可以卸載海盜船特定的鍵盤驅動程序,而不是使用通用的鍵盤驅動程序(海盜船實用程序引擎仍在運行並激活LED),這給了我足夠的速度提升,因此驅動程序啟用需要5s(鼠標)和~10s(鍵盤),但這個解決方案對我來說不是一個選項,因為這意味著我的鍵槃無法正常工作。


4
2018-04-13 17:22


起源


如果將它們直接插入PC,插入KVM的相同端口,這種行為是否仍會出現? - Ramhound
@Ramhound我應該澄清我的設置,我有一個USB(1.0)開關,我連接到USB(2.0,4端口,供電)集線器,我的設備(USB 2.0)連接到。我決定直接測試我的鼠標,因為它是最簡單的(鍵盤使用2個端口)並且它在鼠標可用之前表現出大約40秒等待的類似行為。我不會感到驚訝的是,這個窗口的持續時間部分是因為它可能會嘗試首先檢測並激活USB Hub,然後再繼續激活我插入的HID(將時間延長20秒) - Cestarian
您的鍵盤使用2個USB端口?完成初始測試後,您是否重複測試,Windows假設根據端口創建USB設備目錄。 - Ramhound
@Ramhound是的,我有一個Corsair K95-RGB鍵盤,它需要一個端口用於供電,一個端口用於HID,插頭可以互換(例如,任何一個都可以作為輸入和電源,或者僅根據它們的順序供電插入)我沒有重複測試,但現在讓我這樣做...是的,我插入鼠標(這次插入另一個端口),這次幾乎立即激活(<2s)。有趣的是,之後我將它重新插入集線器,它幾乎立即被激活,我們可能會找到一個解決方案......或者在正確的路徑上。 - Cestarian
我懷疑問題是Switch本身不是鍵盤和鼠標。延遲是預期的,但聽起來,每次你在連接的PC之間切換時,開關的行為就像一個全新的設備替代是只有鼠標的問題,我懷疑鍵盤,導致關係問題鼠標需要60秒才能內化。 - Ramhound


答案:


以上評論摘要:

  • 有問題的設備是鼠標和鍵盤。
  • 刪除他們的驅動程序並使用Windows通用驅動程序了 大大改善了切換時間。
  • 剩下的問題是鍵盤通用驅動程序無法處理 特殊的鑰匙,我已經建議使用 SharpKeys 和/或 AutoHotkey的 將它們映射到有用的功能。
  • 留意 海盜船下載 更新頁面
  • 試圖與...取得聯繫 Corsair的客戶服務 可能(或可能不)幫助。

0
2018-04-18 18:39



好吧,你忘記了問題的一部分。減少(或移除)設備物理斷開連接之間的超時和時間窗口註冊斷開連接。 - Cestarian
我(非常)非常懷疑sharpkey或autohotkey可用於映射G鍵。通常在這樣的鍵盤上,G鍵根本不記錄擊鍵,或者記錄預定的擊鍵(如F1-F12)而不是唯一的擊鍵。它們不能代替真正的驅動程序,驅動程序需要支持每個按鍵提供的硬件代碼,並且通用驅動程序不理解“G1-G18”或“MR,M1,M2和M3”。如果製造商將它們映射到不同的鍵(例如說F13-F24 ..),他們會這樣做,但他們通常不會這樣做。 - Cestarian
切換延遲時間:減少更改KVM的需要。有一種稱為DDM(動態設備映射)的技術可以減少滯後,但它們通常很昂貴(例)。我沒有經驗,也不知道它有多好。 - harrymc
鍵映射:這取決於鍵盤。通常的情況是鍵盤生成由第三方驅動程序解釋的掃描代碼。我不知道你的鍵盤,但我相信它需要微軟的合作才能深入整合到Windows中以完全處理鍵盤。掃描碼在軟件中更容易處理。 - harrymc
這是一個驅動程序問題 - 我相信Linux驅動程序更通用。更進化的KVM將偽裝設備的持續存在,因此沒有滯後。如果你覺得它沒有用,我可以刪除這個答案。 - harrymc


有報告稱,如果關閉,重新連接時間會縮短 允許計算機關閉此設備以節省電量 下 Device Manager  - Properties  - Power 兩個USB設備。

值得一試,但Windows喜歡花時間。


0
2018-04-21 09:04



我已經嘗試過這個,我可以切換此選項的唯一設備是USB集線器,而不是設備本身。它似乎沒有效果。我正在再次嘗試確認,但並不期待太多。 (我為所有USB集線器關閉了它)更新:是的,沒有任何影響。 - Cestarian
由於設備不會睡眠,而是消失,因此不應該應用此設置。 - harrymc


我剛剛發現Windows 10沒有這個問題,它通常會立即切換到我。我的問題主要與Windows 7有關,所以這不是一個完整的答案,但我想我只需要使用Windows 10一段時間,直到我完全轉儲Windows ...只需要一個需要修復的驅動程序.. 。

但是,那就是那個。如果您使用的是Windows 7並遇到同樣的問題,請知道降級到Windows 10可能會解決問題。


0
2017-07-15 18:24