5

デフォルトでUVCカメラ用のカーネルドライバーを持たない他のAndroidデバイスでUVC対応のUSBカメラを動作させる方法を探しています。

通常の顧客は、後ですべてのタブレットで、特別な要件 (アプリを除く) なしでカメラを使用できるようにする必要があるため、これらのデバイスをルート化したり、イメージ/カーネルを変更したりしたくありません。

Android 3.1 以降 (http://developer.android.com/guide/topics/usb/host.html) で Android の USB クラスを使用して未知のデバイスへの未加工の接続を確立できると思いますか?すでにカーネルによってサポートおよび認識されているデバイスで使用しますか?

可能であれば、Java/NDK を使用して UVC ドライバーを統合し、そこからビデオ ストリームを取得することに興味があります。少なくともそれは私の大まかな考えです。

それは可能だと思いますか?

4

3 に答える 3

3

その根本的な部分で妥協すれば、それは間違いなく可能です.. 私は同じプロジェクトを行い、最終的に成功しました. UVC コード内で、/dev/video1 または video0 ノードを開く必要があります。デフォルトでは、ほとんどのデバイスでユーザー権限がありません。

簡単に言うと、

それは2つのことに依存します:

1) USB カメラを接続すると、カメラノードが作成されているかどうか。メジャー番号 81 (V4l2 デバイスを示す) の /dev ディレクトリ内にある必要があります。

2) そのデバイス ノードに対して、ユーザー権限を持っているかどうか。

これらは、直面する 2 つのハードルです。

最初の解決策は、ベンダーによって異なりますので、私たちの手にはありません。例: Acer タブは作成されますが、Samsung Galaxy では作成されません。理由は、カーネル内の V4L2 または UVC モジュールのサポートが不足しているためです。

2 番目の解決策は、root ユーザーの場合、ノードの権限を変更できることです。

これは非常に大きなプロジェクトであり、ゼロから始める場合は時間がかかるはずです.. よろしくお願いします.

于 2012-05-07T04:55:04.117 に答える
1

はい、Android ユーザー空間の最近のバージョンでの USB ホスト サポートの目的は、カーネル ドライバーを持たない USB デバイスと通信できるようにすることです。libusb ではありませんが、概念的には libusb のアイデアに少し似ています。

http://developer.android.com/guide/topics/usb/host.html

デバイスの部分的なドライバーインカーネルサポートが、この方法でユーザー空間から直接通信しようとするのを妨げる可能性がある状況がおそらくあるかもしれないということは、(純粋で検証されていない推測として) 私には思い浮かびます。

于 2012-05-07T05:20:55.647 に答える
0

デフォルトでUVCカメラ用のカーネルドライバーを持たない他のAndroidデバイスでUVC対応のUSBカメラを動作させる方法を探しています。

これは、カーネルに依存し、コンパイルされたドライバーは、ハードウェアがサポートできるかどうかも考慮します。

まさにその音で-USB On-The-Goメカニズムに似ています...デバイスをルート化したくないと言っている場合、残念ながらUSB OTGメカニズムの場合、それを利用するにはルート化が必要ですプラグイン イベントを処理するための ramdisk 内の /etc ディレクトリ内のスクリプト メカニズム。

于 2012-05-06T17:08:54.277 に答える