概要

Arch Linux で Waydroid を動かそうとした際、
Can't open /dev/anbox-binder: No such device or address」というエラーが発生した。
原因は カーネルが BinderFS を正しくマウントしていなかったことにあった。
ここでは、Binder/BinderFS の役割と、実際に動作させるまでの手順をまとめる。


1. Binder と BinderFS の違い

Android のアプリ間通信(IPC)は Binder ドライバで実現されている。
Linux でこれを再現するためには、カーネルモジュールと特別な仮想ファイルシステムが必要になる。

名称説明
/dev/binderAndroid のプロセス間通信 (IPC) のコアデバイス
/dev/hwbinderハードウェア抽象層 (HAL) 用 Binder
/dev/vndbinderベンダーサービス用 Binder
BinderFSこれらのデバイスノードを動的に管理するためのファイルシステム

昔の環境では /dev/binder を直接作っていたが、
最近の Waydroid や Mainline カーネルでは BinderFS を使うのが標準


2. エラーの原因

Waydroid 起動時のログ:

        [gbinder] ERROR: Can't open /dev/anbox-binder: No such device or address
[08:49:18] Failed to add presence handler: None
    

これは、/dev/anbox-binder が存在しても中身が無効、
つまり Binder デバイスがカーネル側で認識されていないことを意味する。


3. 実際の確認手順

カーネルモジュール確認

        uname -r
zgrep CONFIG_ANDROID /proc/config.gz | grep BINDER
    

出力例:

        CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
    

BinderFS 対応 (CONFIG_ANDROID_BINDERFS=y) があればOK。

ファイルシステム確認

        cat /proc/filesystems | grep binder
    

正常な場合:

        nodev   binder
    

または nodev binderfs と出る。


4. 動かすまでの流れ(成功例)

  1. Mainlineカーネルに切り替え

            sudo bootctl set-default arch-linux.conf
        

    → 再起動

  2. BinderFSの確認

            cat /proc/filesystems | grep binder
        
  3. Waydroidコンテナ起動

            sudo systemctl start waydroid-container
    waydroid status
        

    出力例:

            Session:        RUNNING
    Container:      RUNNING
    Vendor type:    MAINLINE
    IP address:     192.168.240.112
        
  4. UI起動

            WAYDROID_DISABLE_HWCOMPOSER=1 waydroid show-full-ui
        

5. initramfs とは?

initramfs は「初期RAMファイルシステム」。
カーネルがブート時に最初に展開する仮想ルートファイルシステムで、
ルートデバイスのマウントや暗号化ボリュームの解除など、
「カーネルだけではできない初期処理」を行うためのもの。

Gentoo のように静的に全部組み込むカーネルなら不要だが、
Arch ではモジュール分離しているため initramfs が必須


6. 最後に

  • Arch Linux の mainline カーネル(6.17系)では binder が統合済み。
    binderfs の行が出なくても問題なく動く。
  • もし Waydroid が止まる場合は、/dev/binder が正しいリンク先かを再確認。
  • WAYDROID_DISABLE_HWCOMPOSER=1 を付けると GUI 表示が安定する。

参考リンク