私は、C ++組み込みデバイス開発をサポートするためのVisual StudioおよびVisual Studioコードのためのソフトウェアエンジニアビルディングツールです。これらの物理デバイスは通常、USBを介してコンピュータに接続しますが、WSLを使用してUSBをサポートしていないため、Linuxでのツールをテストできませんでした。私たちは一人ではありませんでした – 物理的なUSBデバイスをWSLに接続するためのサポートもコミュニティによっても非常に要求されています。

この機能はまだWSLではネイティブに利用可能ではないが、夏のインターン、 Nelson Daniel Troncoso Aldas オープンソースUSBIPD-Winプロジェクトへの貢献を発表することに興奮しています。 B> Arduinoを点滅させるかスマートカードリーダーにアクセスするように、一般的な開発者USBシナリオを有効にするには。

埋め込みビデオはInternet Explorerではサポートされていません – YouTubeの時計

セットアップ

この機能を入手するには、まずWindows 11を実行していることを確認して、すべてのWSLアップデートをインストールしました。 WSL内からのuname -a の実行は、5.10.60.1以降のカーネルバージョンを報告する必要があります。 WSL 2 Distroを実行する必要があります。

usbipd-win の最新リリースをインストールします。

WSL内から、USB / IP用のユーザースペースツールとUSBハードウェア識別子のデータベースをインストールします。 Ubuntuでは、このコマンドを実行してください。

sudo aptインストールLinux-Tools-5.4.0-77-generic hwdata

rootがusbipコマンドを見つけることができるように編集 / etc / sudoers を編集します。 Ubuntuでは、このコマンドを実行してください。

sudo visudo add /usr/lib/linux-tools/5.4。 secure_path の始まりへの0-77 – generic 。編集後、線はこれに似ているはずです。

デフォルトsecure_path =\” / usr / lib / linux-tools / 5.4.0-77-generic: / usr / local / sbin:… \”

この時点で、サービスがWindowsでUSBデバイスを共有するために実行されており、必要なツールはWSLにインストールされて共有デバイスに接続されています。

デバイスの添付

まず、WSLコマンドプロンプトが開いていることを確認します。これにより、WSL 2軽量VMがアクティブになります。

Windows上の管理者コマンドプロンプトから、このコマンドを実行します。 Windowsに接続されているすべてのUSBデバイスをリストします。

usbipd wsl list

WSLに添付したいデバイスのバスIDを選択してこのコマンドを実行します。 sudoコマンドを実行するためのパスワードのためにWSLによってプロンプトされます。

usbipd wsl attach –busid wsl内の添付のUSBデバイスをリストするためのlsusb 。あなたが添付したばかりのデバイスが表示され、通常のLinuxツールを使ってそれと対話できるようにする必要があります。アプリケーションによっては、非rootユーザーがデバイスにアクセスできるようにUDEVルールを設定する必要があるかもしれません。

WSLのデバイスを使用して行われたら、デバイスを物理的に切断したり、Windowsの管理者コマンドプロンプトからこのコマンドを実行したりできます。

usbipd wsl detach –busid

どのように機能するか

この機能は、 USB / IPプロトコルを利用して、WindowsとWSLの間の仮想ネットワークインターフェイスを介してUSBトラフィックを転送します。 USB / IPサポートのコードは2009年以来Linuxカーネルに存在していましたが、最近の変更はWSLで使いやすくなりました。

USB / IPサポートを有効にするために、WSL Linuxカーネルの設定オプションを更新しました。これにより、WSLのセットアップが簡単になり、ユーザーがカーネル自体を構築する必要があります。

USB / IPでデバイスを添付するサポートはLinux(クライアント)に存在しますが、WindowsのUSB / IPの対応するサーバーサポートはありませんでした。 usbipd-winはこのギャップを埋めます。プロジェクトにコマンドラインインタフェースを担当し、Windowsで共有するためのUSBデバイスを有効にしてWSL.WEの内から添付して、システムアーキテクトである Frans Van Dorsselaer に添付します。 Usbipd-winを始めたオランダから。彼自身の言葉で:

これは単一のデバイスが機能するようになるための個人的なHOBBYプロジェクトとして始まりました。私は最近VirtualBoxからHyper-Vに切り替えましたが、私は自分のデバイスのUSBパススルー機能を欠いていました。既存のソリューションで不幸な、unsignedドライバを必要とする高価な商用ソリューションまたはオープンソースプロジェクトのどちらかで、私はこれを行うことができました! USB標準、LinuxカーネルのUSBIP実装、およびVirtualBoxドライバのソースコードを読みました。次に、私の同僚が彼のUSBトークンが働くかどうか尋ねました。もちろん、それはそうではありませんが、私はGitHubでプロジェクトを公開し、それを完全に機能させることにしました。マイクロソフトは私のプロジェクトを見つけ、適切な管理インターフェースとWSLのサポートでより成熟するのを助けることを決定しました。そしてそれが私たちが今ここにいる場所です:Hyper-VとWSLのための設定可能なUSBパススルー。

フィードバックを与える場所

USBデバイスをWSLに接続しようとするために興奮しています。このプロジェクトにフィードバックがある場合は、オープンソースのusbipd-winプロジェクトに問題を開きます。git、vs code、dockerコンテナ、データベース、マシン学習のためのGPUアクセラレーションなどの一般的な開発ツールを設定する方法を含む、WSLの詳細を参照してください。最後に、デバイスやコンパイラに関係なく、ツール化に関する C ++ Embedded Development Teamの将来の発表のための展望にあります。幸せなコーディング!出所: https://devblogs.microsoft.com/comma..evices-to-wsl/

参照:

Windows 10でLinux WSL for Linux WSLを有効または無効にする

Windows 10のWSLからWSL 2への更新方法

By admin

Leave a Reply

Your email address will not be published.