5

私は USB4Java (低レベル バージョン) を使用しており、基本的にこのコードhereから作業しています。私は Ubuntu で作業しており、アクセス許可に関する問題が発生していましたが、端末から gksu を使用して Eclipse を実行することで解決できました。

今、私は新しい問題を抱えています: ここのコードの要点に到達すると:

public static void claimDevice(DeviceHandle handle, int interfaceNum){
    int r = LibUsb.claimInterface(handle, interfaceNum);
    .
    .
    .

「リソースがビジーです」という例外が発生します。

USB error 6: Unable to claim interface: Resource busy

私は以前にUbuntuを使用したことがあります(ただし、開発には使用したことがないため、これは初めてです)。ここでこの質問を処理する必要がある場合は、どこで処理すればよいか教えてください。答えを得ることができます。

具体的には、これが何を意味し、どのように解決できるかという問題です。私の目標は、この場合、これはカスタム USB デバイスであり、低レベルのクロスプラットフォーム... Java ベースの... "ドライバー" (その用語を大まかに使用) を作成することです。terminal lsusb コマンドが問題のデバイスに関する十分な量の情報を提供するため、現在Ubuntuで作業しています。

4

2 に答える 2

2

デバイスを要求するより簡単な方法は、usb4java のドキュメントで説明されているように強制要求を使用することです。

    UsbConfiguration configuration = device.getActiveUsbConfiguration();
    UsbInterface iface = configuration.getUsbInterface((byte) 0);
    iface.claim(new UsbInterfacePolicy()
    {            
        @Override
        public boolean forceClaim(UsbInterface usbInterface)
        {
            return true;
        }
    });

    try
    {

        System.out.println("is active: " + iface.isActive());

    }
    finally        
    {
        iface.release();
    }
于 2016-09-05T11:35:44.370 に答える