【Zoom】LinuxクライアントでWebカメラが認識されないときの対処

【Zoom】LinuxクライアントでWebカメラが認識されないときの対処
🛡️ 超解決

LinuxでZoomを使っているときに、Webカメラが認識されず困った経験はありませんか。突然、カメラが真っ暗になったり、ドライバーのエラーが表示されたりすると、会議に参加できず焦ってしまいます。この問題の多くは、デバイスの権限設定やZoomの設定、またはカーネルモジュールの不足が原因です。本記事では、LinuxクライアントでWebカメラが認識されない原因を詳しく解説し、具体的な対処法をステップごとに紹介します。この記事を読めば、カメラの問題を自分で解決できるようになります。

【要点】LinuxでZoomのカメラが映らないときの3つの対処

  • デバイスファイルの権限確認: /dev/video* に対する読み取り権限をユーザーに付与することで、Zoomがカメラにアクセスできるようになります。
  • 環境変数WEBKIT_DISABLE_COMPOSITING_MODEの設定: Zoom起動前にこの環境変数を1に設定することで、カメラ映像の描画不具合を解消します。
  • カーネルモジュールuvcvideoのロード確認: uvcvideoモジュールがロードされているか確認し、不足している場合は手動でロードします。

ADVERTISEMENT

なぜLinuxでカメラが認識されないのか

Linuxにおけるカメラ認識の仕組みは、WindowsやmacOSとは異なります。カメラはVideo4Linux2(V4L2)というサブシステムを通じてアクセスされ、デバイスファイル(/dev/video0など)として表されます。Zoomはこのデバイスファイルを読み取ることで映像を取得します。認識されない主な原因は、ユーザーにデバイスファイルへの読み取り権限がないこと、必要なカーネルモジュールがロードされていないこと、またはZoomの内部設定が原因で描画に失敗することです。特にUbuntuやFedoraなどの主要ディストリビューションでは、標準でカメラが動作するよう設定されていますが、カーネルアップデートやパッケージの競合によって権限が失われることがあります。

お探しの解決策が見つからない場合は、こちらの「Zoomトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

Webカメラ認識問題を解決する手順

1. カメラデバイスの存在を確認する

  1. ターミナルを開く
    Ctrl+Alt+Tなどでターミナルを起動し、以下のコマンドを入力します。
    ls /dev/video*
    複数のデバイスが表示されれば、カーネルがカメラを認識しています。何も表示されない場合は、カーネルモジュールがロードされていない可能性があります。
  2. v4l-utilsのインストールと確認
    より詳細な情報を得るために、v4l-utilsパッケージをインストールします。ディストリビューションに応じて以下のコマンドを実行します。
    Ubuntu/Debian: sudo apt install v4l-utils
    Fedora: sudo dnf install v4l-utils
    インストール後、v4l2-ctl --list-devicesを実行してカメラが一覧に表示されるか確認します。

2. デバイスファイルの権限を修正する

  1. 現在の権限を確認する
    ls -l /dev/video0を実行します。出力例: crw-rw---- 1 root video 81, 0 ... この場合、videoグループのメンバーのみ読み書き可能です。
  2. 自分のユーザーをvideoグループに追加する
    sudo usermod -a -G video $USERを実行します。その後、一度ログアウトして再ログインするか、newgrp videoでグループを適用します。再ログイン後、再度Zoomを起動してカメラが認識されるか試してください。
  3. udevルールを作成して恒久的に権限を付与する
    永続的な解決策として、udevルールを作成します。例えば、/etc/udev/rules.d/99-camera.rulesに以下の内容を記述します。
    SUBSYSTEM=="video4linux", GROUP="video", MODE="0660"
    これにより、すべてのカメラデバイスがvideoグループに所属し、グループメンバーに読み書き権限が与えられます。ファイルを作成したら、sudo udevadm control --reload-rules && sudo udevadm triggerでルールを再読み込みします。

3. Zoomの設定と環境変数を調整する

  1. Zoomのビデオ設定を確認する
    Zoomを起動し、設定(歯車アイコン)→「ビデオ」タブを開きます。カメラのプルダウンメニューに使用しているカメラが表示されているか確認します。表示されている場合でもプレビューが映らなければ、別のカメラを選択してテストします。
  2. 環境変数WEBKIT_DISABLE_COMPOSITING_MODEを設定する
    ZoomはWebKitを使用してカメラ映像を表示するため、特定の環境では描画に問題が生じます。ターミナルで以下のコマンドを実行してZoomを起動します。
    export WEBKIT_DISABLE_COMPOSITING_MODE=1 && zoom
    この環境変数を設定することで、カメラ映像が正しく表示されるようになります。デスクトップファイルから起動する場合は、~/.local/share/applications/Zoom.desktopのExec行を修正します。例えば、Exec=env WEBKIT_DISABLE_COMPOSITING_MODE=1 /usr/bin/zoom %Uと変更します。
  3. Zoomの起動スクリプトを作成する
    毎回ターミナルから起動するのが面倒な場合は、ランチャー用のスクリプトを作成します。ファイル~/zoom-camera-fix.shを作成し、以下の内容を記述します。
    #!/bin/bash
    export WEBKIT_DISABLE_COMPOSITING_MODE=1
    /usr/bin/zoom

    実行権限を付与し(chmod +x ~/zoom-camera-fix.sh)、デスクトップにショートカットを作成するか、パスを通して実行します。

4. カーネルモジュールを確認する

  1. uvcvideoモジュールのロード状態を確認する
    lsmod | grep uvcvideoを実行します。何も表示されなければモジュールがロードされていません。USBカメラでは通常このモジュールが必要です。
  2. モジュールを手動でロードする
    sudo modprobe uvcvideoを実行します。エラーが発生する場合は、カーネルがモジュールを見つけられない可能性があります。その場合は、sudo apt install linux-modules-extra-$(uname -r)(Ubuntu)などで追加パッケージをインストールします。
  3. 自動ロードを設定する
    毎回手動でロードするのを避けるため、/etc/modules-load.d/ に設定ファイルを作成します。sudo nano /etc/modules-load.d/uvcvideo.conf を開き、uvcvideo と1行記述して保存します。再起動後も自動でロードされるようになります。

よくあるトラブルと注意点

Snap版Zoomでカメラが認識されない

SnapパッケージでインストールしたZoomは、サンドボックス化されているためカメラへのアクセスが制限されることがあります。この場合は、Snapの接続を許可する必要があります。ターミナルでsnap connect zoom:webcamを実行します。それでも認識されない場合は、システムパッケージ版(deb/rpm)に切り替えることを検討します。

Wayland環境での問題

Waylandディスプレイサーバーを使用している場合、Zoomがカメラ映像を正しくキャプチャできないことがあります。解決策として、セッションをXorgに切り替える方法があります。ディストリビューションのログイン画面で、歯車アイコンから「Ubuntu on Xorg」を選択してログインします。または、環境変数QT_QPA_PLATFORM=xcbを設定してZoomを起動します。

複数のカメラが接続されている場合

ノートPCに内蔵カメラと外付けUSBカメラの両方が接続されていると、Zoomがどちらを選択すればよいか判断できないことがあります。Zoomのビデオ設定で正しいカメラを手動で選択してください。また、/dev/video*のデバイスファイルが複数存在する場合、v4l2-ctl --list-devicesでどのデバイスがどのカメラに対応するか確認できます。

ファイアウォールやSELinuxが影響する場合

アプリケーションファイアウォールやSELinuxがカメラアクセスをブロックしている可能性があります。まずは一時的にSELinuxをパーミッシブモードに切り替えてテストします。sudo setenforce 0(元に戻すにはsudo setenforce 1)。これで解決した場合は、適切なポリシーを追加します。Fedoraなどでは、sudo setsebool -P httpd_can_connect_ftp 0は関係ありませんが、適切なものとしてはsudo setsebool -P allow_zoom_execmem 1などが役立つ場合があります。

ADVERTISEMENT

原因別の対処法まとめ

原因 症状 対処法
デバイスファイルの権限不足 カメラがリストに表示されない、またはアクセス拒否 ユーザーをvideoグループに追加する、またはudevルールで権限を付与
カーネルモジュール未ロード /dev/video*が存在しない modprobe uvcvideo、またはlinux-modules-extraをインストール
WebKit描画の問題 カメラは認識されるがプレビューが真っ暗 環境変数WEBKIT_DISABLE_COMPOSITING_MODE=1を設定
Snapのサンドボックス Snap版Zoomでカメラが使えない snap connect zoom:webcam、またはdebパッケージ版を使用
Waylandとの非互換 画面共有やカメラ映像が表示されない Xorgセッションでログイン、またはQT_QPA_PLATFORM=xcbを設定

まとめ

この記事では、LinuxのZoomクライアントでWebカメラが認識されない問題の原因と対処法を解説しました。まずデバイスファイルの権限を確認し、必要に応じてvideoグループにユーザーを追加します。次に、Zoom起動時に環境変数WEBKIT_DISABLE_COMPOSITING_MODEを設定することで、描画問題を解決できます。さらに、カーネルモジュールuvcvideoがロードされているか確認し、不足していれば手動でロードします。これらの手順を順に試すことで、ほとんどのカメラ認識問題を解決できます。もし問題が続く場合は、WaylandからXorgへの切り替えやSnap版からシステムパッケージ版への変更を検討してください。今後もカーネルアップデート後には同様の問題が発生する可能性があるため、udevルールや環境変数の設定を覚えておくと便利です。


🎥
Zoomトラブル完全解決データベース 参加・接続/カメラ・マイク/画面共有/録画/ブレイクアウト/Webinar/セキュリティ/スケジュールのトラブルを即解消。会議運営や音声・映像の不調まで実務リファレンスとしてご活用ください。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。