BubiCamをHaiku OSにインストールしてみた話

みなさん、こんにちは。

当サイトでは不定期に Haiku OS の検証記事をお届けしています。

今回は、新しいアプリをインストールしてみた際のお話です。その名も「BubiCam」。

作者は atomozero 氏で、Haiku OS コミュニティではちょっとした有名人ですね。とりわけ USB スタック周りのバグを熱心に追いかけ、パッチを書いていることで知られています。

BubiCam は、Haiku OS 向けの Web カメラ診断アプリです。プレビュー表示やドライバのストレステスト、UVC ディスクリプタの確認まで一通りできる優れもので、USB カメラ周りで沼にハマりがちな Haiku ユーザーには実にありがたい存在に見えました。

「まあ README の通りに make すれば動くだろう」と高をくくっていたのですが、案の定いくつか躓いたので、解決手順とともにメモを残しておきます!


躓きその1 – 依存ライブラリの先行ビルドを忘れる

リポジトリ直下でいきなり make すると、以下のようなエラーが出て失敗してしまいます。

ld: cannot find -lwebcam: No such file or directory

BubiCam 本体は lib/libwebcam という同梱の共有ライブラリ(libwebcam.so)にリンクする構成なのですが、これが自動ではビルドされないようです。

README の 「Build」 節には「libwebcam.so は自動的にビルドされる」と書いてあるものの、少なくとも手元の環境ではうまく効いていませんでした。そのため、先に依存ライブラリ単体をビルドしてから、改めてリポジトリ直下で make する必要があります。

cd ~/git/BubiCam/lib/libwebcam && make
cd ~/git/BubiCam && make

躓きその2 – README のインストール先に書き込めない

README では make install~/config/apps/ にインストールされると案内されているのですが、実行すると以下のエラーが出ます。

mkdir: cannot create directory '/boot/home/config/apps': Read-only file system

~/config 直下はパッケージファイルシステムの読み取り専用領域のため、アプリを手動で置くことはできません。

Haiku でパッケージ管理外のアプリを置く定位置は ~/config/non-packaged/apps/ ですので、以下のように INSTALL_DIR を明示的に指定してあげましょう。

make install INSTALL_DIR=~/config/non-packaged/apps

躓きその3 – 実行すると共有ライブラリが見つからない

インストールしたバイナリをそのまま起動してみると、今度はライブラリのエラーが出ます。

runtime_loader: Cannot open file libwebcam.so (needed by BubiCam):
No such file or directory

BubiCam の実行ファイルは $ORIGIN(自分自身と同じディレクトリ)を rpath のフォールバック先として libwebcam.so を探す仕組みになっています。

開発中はビルドディレクトリ内の絶対パスを見に行くので問題になりませんが、配布・インストール後はバイナリの隣に libwebcam.so を自分でコピーしてあげる必要があります。

cp lib/libwebcam/objects.x86_64-cc13-release/libwebcam.so \
   ~/config/non-packaged/apps/

動作確認

ここまでの準備が整えば、ヘッドレスモードで起動確認ができます。

~/config/non-packaged/apps/BubiCam --headless

Web カメラが未接続の状態でも、BubiCam: no webcams found, exiting と表示されて exit code 0 で終了すれば、ビルドとインストールに関しては問題ありません!GUI で使う場合は、そのまま同じパスを叩いて起動すれば OK です。

bubicam起動
BubiCamが無事起動した!

前哨戦は終了、本番は…次回を待て

今回の 3 点はいずれも Haiku 特有の「README の通りにいかない」系の躓きで、コード自体のバグではありませんでした。

ただ、ここまでは前哨戦に過ぎなかったのです……。

実はこのアプリ、以前の記事で格闘した「USB Web カメラ沼」へ再チャレンジするために導入したものでした。

その本格的な格闘の様子は、次回にお話ししたいと思います。


今回のような検証、「うちの環境ではどうなんだろう?」と気になった方はいませんか。

ビューローみかみでは、構想段階の壁打ちからPoC・実装・現場導入まで、現場で「使い続けられる」ものづくりを支援しています。 

技術顧問サービスでは、本記事のような技術的な質問・検証にも継続的にお答えしています。「相談したら契約」ということはありません。システムを作らない判断も含めて、率直にお話しします。

▶ 技術顧問サービスの詳細はこちら

気になることがあればお気軽にご相談ください。

本日も最後までお読みいただきありがとうございました。

それでは、よい Haiku OS ライフを!

カテゴリ: Tips, 開発インフラ

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール