私はKirkstoneフォークに基づいてyoctoイメージを開発しており、起動時に自動的に起動するWaylandで実行されるFirefoxブラウザを含めたいと思います。
システム起動時に自動的に起動するFirefoxおよびsystemdサービスファイルを含むイメージを構築しました(DSIタッチスクリーン付きRaspberry Pi 4コンピューティングモジュール)。
システムには、user=weston
Wayland サポートでビルドするときに yocto ビルドで自動的に構成されるギフトがあります。このユーザーはWaylandディスプレイも持っています。また、他のユーザーを構成しました。user=service
主にデバッグに使用します。
私がやろうとしているのは、次のsystemdファイルを使用してsystemdを介してFirefoxを起動することです。
[Unit]
Description=Start a wayland application
After=weston.service
Requires=weston.service
[Service]
Type=simple
User=weston
Group=weston
PAMName=login
Environment=WAYLAND_DISPLAY=/run/user/1000/wayland-1
Environment=XDG_RUNTIME_DIR=/run/user/1000
Environment=MOZ_ENABLE_WAYLAND=1
ExecStart=/usr/bin/firefox
[Install]
WantedBy=graphical.target
ただし、起動時にブラウザが起動せず、systemdがクラッシュを報告します。
Jan 15 22:38:18 hometerminal-cm4 systemd[1]: Started Start a firefox browser.
-- Subject: A start job for unit firefox.service has finished successfully
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- A start job for unit firefox.service has finished successfully.
--
-- The job identifier is 1089.
Jan 15 22:38:21 hometerminal-cm4 systemd[1]: firefox.service: Main process exited, code=killed, status=11/SEGV
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- An ExecStart= process belonging to unit firefox.service has exited.
--
-- The process' exit code is 'killed' and its exit status is 11.
Jan 15 22:38:21 hometerminal-cm4 systemd[1]: firefox.service: Failed with result 'signal'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- The unit firefox.service has entered the 'failed' state with result 'signal'.
これはsegvエラーがあることを示します。理由を理解できません。私はこれがシステムが実行されている環境に関連していると思います。
テストのために同様のsystemdファイルを作成し、それを使って起動時にウェスタンターミナルを実行しましたが、うまくいきました。存在しないExecstart
ことを除いて、上記とMOZ_ENABLE_WAYLAND=1
同じです。
起動時に自動的に起動するようにFirefoxブラウザ環境を設定するには?
答え1
ついに問題が見つかりました。 Firefoxのどこかに実行するとランタイムsegvエラーを引き起こすバグがあります。上記のsystemdスクリプトを使用していますが、FirefoxをChromeに置き換えると完璧に動作します。