Windows対応のUSBビデオキャプチャをLinuxで使う方法


アナログ出力映像をPCに取り込むためにUSB接続ビデオキャプチャを購入しました。

[affi id=2]

Windowsでのインストールは成功したのですが、普段使いのLinuxで使えるようにする方法について調べてみました。

USBデバイスをつなげて確認します。

USBデバイスの一覧と詳細情報を表示するコマンド

$ lsusb

デバイス名はGV-USB2です。

ネットでGV-USB2のドライバを探します。

こちらがヒットしたドライバになります。

https://github.com/Isaac-Lozano/GV-USB2-Driver

githubからなので、こちらのソースコードをコピーして、ビルドして、インストールする作業が必要となります。もちろん自己責任で行います。

こちらはgit、make、gccなどコンパイルに必要なソフトがインストールされていることを前提とします。

gitがインストールされているかチェックします。

$ git --version

GV-USB-Driverのダウンロード、インストール

リモートリポジトリをローカルにダウンロードするコマンドです。

$ git clone https://github.com/Isaac-Lozano/GV-USB2-Driver
$ cd GV-USB2-Driver
$ sudo make

となるのですが、ここでエラー発生

エラー表示内容は「/usr/src/linux-headers-4.19.0-16-common/scripts/basic/Makefile:そのようなファイルやディレクトリがありません」でした。

とりあえず、/lib/modules/$(uname -r)/buildをシンボリックリンク(ln -s)してみました。

$ sudo ln -s /usr/src/linux-headers-$(uname -r)/ /lib/modules/$(uname -r)/build

シンボリックリンクの削除は

$ unlink /lib/modules/$(uname -r)/build

「効果なし」でしたので、他のビルドツール(build-essential)のインストールをやってみた。

$ sudo apt install build-essential

再び make してみたが、同じエラーで中断しました。

GV-USB2-Driverのビルド

今回はこちらのサイトを参考にしました。https://gist.github.com/scaramangado/4e09031d782cbad8a4446ba101f43ef7

前回の失敗理由はsudo makeにしてしまったことと判明しました。

また、Debian 10 busterのカーネルバージョンが4.19.0でしたので、下のようなエラーが出てしまいました。

~/GV-USB2-Driver/gvusb2-v4l2.c:666:42 VFL_TYPE_VIDEO が存在しないというエラー内容でした。

VFL_TYPE_VIDEOは #include <media/v4l2-dev.h> に登録されているはずなのですが、カーネルバージョン4.19.0ではVFL_TYPE_VIDEOが含まれていないことが判明しました。

カーネルバージョン5.7.19~のv4l2-dev.hにはVFL_TYPE_VIDEOが含まれていましたので、ubuntu20.0でビルドすることにしました。

ubuntu20.0.4でGV-USB2 Driverを使う

ubuntuのカーネルバージョンは5.8.0であるため、VFL_TYPE_VIDEOが含まれていますので、あっさりとmake が完了しました。

gvusb2-sound.koとgvusb-video.koが追加されました。

次にこれらをロードしていきます。

まずsoundデバイスをロードしていきますが、サウンドカードの順番を確認して(cat /proc/asound/cards)、+1の順番で追加します。

gvusb2-sound.ko のロードコマンドは insmod です。index=2として追加しました。

gvusb2-video.ko のロードはそのままですが、下記のようなエラーが出てしまいました。

Unkown symbol in module は おそらくカーネルバージョンが適合していない可能性が高いのですが、一応下のコマンドで確認しました。ズラズラと出ましたが、これらはv4l2_ctrlなど含まれているので、いろいろと調べる必要がありそうです。

最後にアンロードの方法ですが下のコマンドになります。

usbデバイスを外さないとエラーが出ます。

まとめ

今回はgitで得たソースコードをコンパイルすることができずに、エラーで終わってしまいましたが、今後はmakefileの検証と改良で何とかインストールできるようにしたいと思っています。

21/6/16追記です。

前回までのmakeエラーの原因が、カーネルバージョンで対応していなかったことが判明しました。

また、sudo make していたことも失敗した理由でした。

そこでカーネルバージョンで対応しているとのことから、ubuntu20.0.4で make してみたところあっさり完了するも、gvusb2-video.ko の insmod でエラーが出てしまいました。

これらのエラーはUnknown symbolですので、またカーネルバージョンの可能性もありますが、いろいろと調べていきたいと思います。

ネットで検索しても情報が出てこないので、何かしらの情報を提供していただくと大変ありがたいです。

,

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)