素の状態でbitbake core-image-sato
で作成したイメージを起動すると、
真っ黒い画面にマウスカーソルのみが表示されるという状態になる。
シリアルコンソールでログインし、/var/log/Xsession.log
を表示したところ下記のようになっていた。
$cat Xsession.log ...(省略)... ** (process:498): WARNING **: Failed to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files Error: No calibratable devices found. Couldn't open libGL.so.1: libGL.so.1: cannot open shared object file: No such file or directory Couldn't open libGL.so.1: libGL.so.1: cannot open shared object file: No such file or directory Couldn't open libGL.so.1: libGL.so.1: cannot open shared object file: No such file or directory Couldn't open libGL.so.1: libGL.so.1: cannot open shared object file: No such file or directory
libGL.so.1
が見つからないらしい。実際にファイルを確認して見ると存在しなかった。
libGL.so.1をどうにかしてみる
libGL.so.1はmesa-gl
の持ち物であるため、local.confに下記を追加し再度挑戦してみる。
IMAGE_INSTALL_append = " mesa-gl"
これでも/usr/lib/libGL.so.1
はインストールされず。
bitbakeした結果を手動でrootfsへコピーしたところ、エラーの状態には変化があった。 しかし、状態は変わらず。
Couldn't open libGL.so.1: libxcb-glx.so.0: cannot open shared object file: No such file or directory Couldn't open libGL.so.1: libxcb-glx.so.0: cannot open shared object file: No such file or directory Couldn't open libGL.so.1: libxcb-glx.so.0: cannot open shared object file: No such file or directory Couldn't open libGL.so.1: libxcb-glx.so.0: cannot open shared object file: No such file or directory
libxcb-glxはX11上でのOpenGLの実行に使用するライブラリなので、vc4graphics
が必須なのではなかろうか。
vc4graphicsを有効にしてみる
local.confに下記を追加。
MACHINE_FEATURES += "vc4graphics"
その後bitbake core-image-satoを実行。
ラズベリーパイ3を起動してみると、画面が表示された!
しかし、マウスカーソルが全く反応しない。
次のように、マウスとの接続に問題がないかを確認してみる。
# cat /dev/input/mouse0 ��H�%��� � ��# � � (�(�(�(�(��(�(�8����������
マウスを動かすとゴミが表示されるので、デバイスは問題なく動作している。
X11がデータを解釈できていないということ。
なので、evdev関連のモジュールに不足がないかを確認。
local.confに下記を追加してみる。
IMAGE_INSTALL_append = " xf86-input-evdev"
これで、core-image-satoを作成しなおして、起動すると。。。
動いた!
まとめ
最近のmeta-raspberrypiでX11を動作する場合は、vc4graphics
の有効化が必須らしい。
というか、無効の場合はあまりデバッグされていないのではないか。
また、vc4graphics有効化状態でもxf86-input-evdev
を明示的に追加しないとマウスが動かない。
しばらくしたら修正されそうだが。2017/2/2時点ではこのような状態。