みつきんのメモ

組み込みエンジニアです。Interface誌で「Yocto Projectではじめる 組み込みLinux開発入門」連載中

meta-raspberrypi mortyでcore-image-satoが起動できない時の対処

素の状態で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時点ではこのような状態。