Skype for Linux で FacetimeHD カメラを利用する備忘録

Apple
Photo by hyt.

Skype for Linux で FacetimeHD カメラを利用する備忘録です.

はじめに

最近の Macbook に搭載されている FacetimeHD カメラ,残念ながら標準のカーネルにドライバーが含まれてないだけじゃなくて,オープンソースで公開されているドライバーもなぜか Skype for Linux から使えません.

これは認識されないってことじゃなくて,認識はされるんですが,真っ黒なまま,なんの映像も映らないってことなんですが,これを何とかする方法を見つけたので,その作業詳細を備忘録として残しておきたいと思います.

作業の詳細

これは,昨年のかなり早い段階でオープンソースなドライバに対し pull request されていた修正コード(Workaround)を利用します.

Temporary workaround for chrome/skype. by maximilianduell · Pull Request #180 · patjak/facetimehd

ただし,この修正はあくまで「一時的な対応」であること,そして,特に High-end な機種にとっては問題のある修正だったことから,最終的にはソースコードの mainline には取り込まれなかったものであることに注意して下さい(その場合の対応方法も用意されています).

まず,オープンソースなドライバーと Workaround を準備しインストールしなければなりませんが,そのためには git の pull request をローカルに持って来ないといけません.これは以下を参考にしました.

Githubで特定のpull requestをローカルに持ってくる - Qiita
概要 OSSのメンテナっぽいことをやるとき、githubで特定のpull requestの正当性を確認したいということがあると思う。ブランチチェックアウトすれば良くね?って単純に考えていたけど、結構面倒くさかったので、メモっとく...

実際の手順は以下の通りです.

$ cd /usr/local/src
$ sudo git clone https://github.com/patjak/facetimehd-firmware.git
$ cd facetimehd-firmware
$ sudo make
$ sudo git clone https://github.com/patjak/bcwc_pcie.git
$ cd bcwc_pcie
$ sudo git fetch origin pull/180/head:twa_for_skype
$ sudo git checkout twa_for_skype
$ sudo make
$ sudo checkinstall
# 質問には全てEnterで答える.
$ sudo reboot
$ sudo depmod -a

この Workaround は,有効/無効を選択して利用することが出来ます(これらの解説は全て README.md に書いてあります).私の場合はもちろん有効にして使いたかったので,以下の通り設定しました.

$ sudo echo "options facetimehd enable_chromium_workaround=1" > /etc/modprobe.d/facetimehd.conf
$ sudo echo "facetimehd" >> /etc/modules
$ sudo reboot

これで再起動すれば Skype から FacetimeHD カメラが使えるようになります.なお,画質に不満がある,もしくは特定のアプリから使えない場合は,

$ sudo rmmod facetimehd
$ sudo modprobe facetimehd enable_chromium_workaround=0

としてやればWorkaround が無効になります.

おわりに

新型肺炎の影響でビデオ会議やら何やらが増えてきていますので,やっぱり目の前にある端末の付属カメラで Skype が使えないってのは不便でした.私の場合,内蔵カメラを使う可能性があるのはほぼビデオ会議くらいしかないですしね.

この修正のお陰で,elementary OS on Macbook air 11 2013(mid) が益々便利になったのですが,あと,不満があると言えば,Microsoft Office が使えないってことだけ.逆に言えば昔っからこれが Linux 端末がデスクトップ化できない最大の原因でしたね.

なお,この修正,あくまで一時的な修正だそう.そしてその理由は,ドライバ側ではなく,Skype 側が V4L の新しい API に対応してないってことだそうです.あと,elementary OS on Macbook air 11 2013(mid) については以下の過去記事をご覧ください.

elementary OS 5.0 juno を Macbook air 11 に入れてみた備忘録
elementary OS 5.0 juno を Macbook air 11 に入れてみた備忘録です. まずは結論を言っておくと, 少し手間はかなりますかりますが快適に使える状態にもっていけます.でも,USB 接続の Ethernet ア...
elementary os 5.0 juno に色々入れて使えるようにする備忘録
elementary os 5.0 juno に色々入れて使えるようにする備忘録です. 前回の記事 で,elementary OS 5.0 juno を最低限使える状態にしました.しかし,これだけだとまだまだ実際に使うのには色々困りますので...

以上!

タイトルとURLをコピーしました