WSL2连接调用USB设备
聲明:本文教程來源于微軟官網WSL教程,鏈接地址:Connect USB devices
????????最近在學OpenCV,發現微軟的WSL是個好東西,結合VS Code編輯器,無論是C++還是Python方式學習,簡直是絕配,Python最好用Anaconda安裝,后續要再學習機器學習、神經網絡之類,甚至再搭配給Cuda,完美!可以這么說,對于只有一臺安裝Win11的電腦的同學而言,WSL2+Anaconda+VS Code+OpenCV+Cuda是最快速、最佳體驗環境搭建方案。ps:GUI(圖形界面)很容易解決,sudo apt install gedit 安裝個有圖形界面的應用即可,wsl會自動配置好GUI。
????????下面進入正題。眾所周知,WSL默認不支持USB設備,學習OpenCV怎能沒有攝像頭!我搜遍全網,發現Google上的教程基本都是教我們從微軟的WSL的Github庫下載代碼,然后在本地自己編譯,使能USB功能。這個方法已經被多次驗證是可行的,但是太繁瑣了,而且要消耗不少校園網流量。最后,我不斷改變檢索關鍵詞,終于訪問到了微軟官方的教程。廢話不多說,下面介紹具體教程,有英語閱讀能力的還是盡量查看官方教程,官方教程比較詳細,而且更新。
提前說明一下,如果想用wsl,實現OpenCV調用攝像機處理視頻,有以下方法:
1. 直接使用錄制好的視頻,完全能夠滿足實驗和測試了;
2. 使用網絡攝像機,或者手機安裝一個IP Camera,局域網內訪問IP地址:端口能夠正常使用的話,那OpenCV也可以直接使用,這個是最優方法,而且實測可行的。相關APP有很多,而且如果校園網開啟了IP隔離,那就筆記本開個熱點就行了。
3. 老老實實的重新編譯WSL內核,使能USB攝像機驅動。
系統配置要求:
- Win11 (版本號22000及以上,Win10請參考官方教程:Win10連接USB設備官方教程
- 不支持Arm64設備,僅支持x64/x86架構
- 系統已經成功安裝好WSL2環境
- wsl2的linux內核版本號5.10.60.1及以上,查看方法:linux命令行界面輸入 uname -a
步驟:
安裝usbipd-win(Windows環境中)
?安裝USBIP工具(Linux環境中)
????????Windows環境中usbip工具安裝完成后,還需要在Linux環境中進行配置。下面介紹Ubuntu系統中的配置,其它系統請參考官方教程。
? ? ? ? 在Ubuntu的bash(命令行)中,運行以下指令:
sudo apt install linux-tools-5.4.0-77-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20連接一個USB設備
工具配置好后,USB設備并沒有被自動連接到WSL中,我們還需要手動進行連接。
注意:在連接USB設備前,需要確認打開的有一個WSL命令行界面,我們需要WSL2的VM環境是激活狀態。
選擇你要連接的USB設備的BUSID值,然后在PowerShell中輸入以下指令:
usbipd wsl attach --busid <busid> #注意,<busid>是一個整體,直接輸入busid號就行,不要帶<>需要注意的是,輸入指令后,Ubuntu的bash命令行可能會提醒需要輸入密碼,因為此操作需要sudo權限。
然后就可以查看USB設備是否成功連接了,Ubuntu的bash中輸入以下命令:
lsusb ?未連接USB時:連接成功后:?可以看到,Camera已經連接到WSL中了。PowerShell中也顯示Camera已經連接到Ubuntu了。?注意事項:
?
總結
以上是生活随笔為你收集整理的WSL2连接调用USB设备的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一款好看的秒表计时器
- 下一篇: 【调参19】如何使用梯度裁剪(Gradi