Raspberry Pi OS bookworm – wayland環境でchromiumをチューンする

追記(2024/5/30): この記事で書きました、wayland環境の(Xwaylandを経由しない)ネイティブなchromium上で日本語が入力できない問題ですが、その後のbookwormの開発の進展により、制限付きながら日本語の入力が可能になりました(こちらを参照)。設定ファイル一つの追加で日本語入力が可能になります。chromiumの日本語問題でお困りの方はお試しください。

今回はRaspberry Pi OS bookwormのchromiumの設定について解説します。主に新しく導入されたwaylandへの対応について調べます。

RPI 4Bと発売予定の5Bでは、bookwormでwaylandを利用した先進的なディスプレイ環境を利用できます。ただ、従来のX11環境も利用可能で、下記のようにwaylandのオン・オフを切り替えて利用することができます(waylandオフでX11環境となります)。今回の記事ではX11環境上のchromiumとwayland上のchromiumの比較も行っています。

waylandとx11との切り替えは、ターミナルで

sudo raspi-config

して、Advanced Options > Wayland に移動すると、waylandのオン・オフを選択できます。waylandをオフ(X11環境を利用)とする場合は、以下の実行をお勧めします。

rm -f /etc/xdg/autostart/xcompmgr.desktop

これによりxcompmgrがオフとなり、youtube再生時の画質が向上します。設定後はリブートしてください。

なお今回の記事は、RPI 4Bにインストールしたbookworm上のchromiumについて調査したものです。

Waylandオフではchromiumに問題なし

Waylandを考える前に、waylandを使わない従来のX11環境でのchromiumを調べてみましょう。この場合のRPI OS bookwormでは、openboxが起動します。

この環境のchromiumに特に問題はありません。X11はこれまで数十年にわたりサポートされてきた環境なので、とても成熟しています。

どうしてこういう言い方になってしまうかというと、waylandを使った場合はいろいろ問題が起こるからですね(涙)

Waylandオンではchromiumに問題あり

Waylandオンでは派手な画面エフェクトでおなじみのwayfireというコンポジタが起動します。この場合のchromiumには、さらに2通りの利用方法があります。普通の起動方法(waylandモード)で利用する方法とXwayland経由で起動する利用方法です。

デフォルトでの起動 (waylandモード)

デフォルト状態でchromiumアイコンをクリックすると、chromiumはwaylandモードで起動します。

Waylandモードでyoutubeを見てみましたが、開始数秒のコマ落ち(これは仕方がない)以降は、完璧な動画再生でした。加えて、動画だけではなく、その周りのOS環境も含めて、どこにもティアリングを感じないのはさすがだと感じました。

ティアリングというのは2つのコマが同時に出力されて、画面が破れて見えることで、次の動画を再生してみることで調べることができます。

このようにwaylandのグラフィック性能が高いのは間違いないのですが…、残念なことに、他の部分でいろいろ問題が起こるのです。

問題1: 日本語が入力できない

これは致命的ですね。fcitx5をインストールしても、ブラウザのすべての部分で日本語入力ができません。原因はこちらが詳しいです。

【Ubuntu日和】 【第33回】フォントと日本語入力の、ホントの話(Wayland編)
前回の記事はUbuntuでのフォントと日本語入力の話であったが、今回はWaylandでのフォントと日本語入力の問題について取り上げる。

問題2: システムタイトルバーをオフにすると、タイトルバーがおかしくなる

Chromiumには

設定 > デザイン > システムタイトルバーと枠線の使用 

という設定がありまして、タイトルバーをオフにすると、タブの表示部分とタイトルバーの表示部分が融合して、画面を広く使うことができます。見た目もスッキリして美しいので、設定しているユーザーも多いのではないでしょうか。

ところがwaylandオンでこの設定をしてしまうと、ちょっと怖い(?)表示になります。

ラズパイのwayland環境で起動したchromium。システムタイトルバーをオフに設定しても、タイトルバーがうまく消えてくれない。
Wayland環境で起動したchromium。システムタイトルバーをオフにする設定を行っているが、消えるはずのタイトルバーが消えずに残り、クローズボタンが上下に並ぶ異様な光景が出現する。下のXwayland経由で起動した場合のスクリーンショットと見比べてほしい。

タイトルバーがうまく消えてくれない…生成AIで出てきそうな絵ですね。

これについてはchromiumが悪いのか、wayfire (waylandのコンポジタ)が悪いのか、判断つきかねるところです。

ちなみにchromiumのシステムタイトルバーの設定に関係なく、window controls overlayに対応したPWAウェブアプリを表示した場合も、タイトルバーまわりがおかしな表示になります。これが何かといいますと、本サイトで開発中のSoqAlbumが該当します(涙)

SoqAlbumとは、iPhone/Androidと直接ファイル交換できるファイル転送アプリで、ラズパイでも利用できます。先日windows向けにmicrosoft storeにSoqAlbumを登録した際、わざわざ時間をかけてwindow controls overlayに対応しました。これによりアプリ上部のデザインが洗練されたものとなっているのですが、wayland環境ではちょっと裏目に出てしまったかもしれません。

これによりSoqAlbumの機能に何の障害も起こりませんが、ちょっと悲しいのでスクリーンショットは載せません。興味ある方はこちらを参考にSoqAlbumをPWAアプリとしてインストールして起動してみてください。

X11アプリとして起動 (Xwaylandモード)

Waylandでは、wayland対応アプリだけでなく、従来からのX11アプリを利用することもできます。この場合X11アプリはXwaylandと呼ばれるシステムを経由して表示されるので、これをXwaylandモードと呼ぶことにします。

ChromiumはwaylandとX11の両方に対応しています。次のようにすると、wayland上でchromiumをX11アプリとして起動することができます。

  1. URLバーにchrome://flagsと入力。
  2. ozone-platform-hintというフラグをX11に設定。
  3. 最後にchromeを再起動。

必ず最後にchromeを再起動してください。Relaunchという表示が出ますが、これだと変更が反映されません(謎の罠です) どうでもいいことですが、私はozoneをしばらくオズワンと読んでいましたが、これは恥ずかしいことなのでやめたほうがいいです。

Xwaylandモードでは先に述べた日本語やタイトルバーの問題が解消されます。ただ、別の問題が起こります(こんなのばっかだな)

ラズパイのwayland環境で起動したchromium。X11アプリとして起動すると、タイトルバーに起こっていた問題が解決して、正しい表示になる。
Wayland環境で起動したchromium。chrome://flagsによりX11アプリとして起動させると、上で述べたタイトルバーの問題が解消する。システムタイトルバーをオフにする設定を行っており、タブの表示とタイトルバーが一体となったすっきりとしたデザインになる。
chrome://flagsでx11アプリとしてchromiumを起動すると、PWA(ウェブアプリ)も正しく表示される。window-controls-overlay APIによりシステムUIとウェブアプリ側のUIが融合している。
chrome://flagsでx11アプリとしてchromiumを起動すると、PWA(ウェブアプリ)も正しく表示される。window controls overlay APIによりシステムUIとウェブアプリ側のUIが融合している。このように美しいタイトルバーを実現するwindow controls overlayだが、通常起動のchromiumではある問題が起こってしまう。

問題1: Youtube再生でコマ落ち

ぱっと見たところ、ちゃんと再生されているように見えるのですが、見ていて違和感があるので、再生画面を右クリックして統計情報を確認したところ、コンスタントにコマ落ちしているようです。

Wayland環境でX11アプリを起動すると、Xwaylandというシステムを経由することになります。このXwaylandがボトルネックになって、フレーム数が制限されるようです。

コマ落ちはするのですが、絶対にティアリングしないです。そのあたりはさすがのwaylandといった感じでしょうか。

CPUが100%回っていなくてもコマ落ちしているので、CPUパワーが足らないということではなく、むしろGPUの問題なのかもしれません。RPI 5BではGPU性能も向上するので、5Bでは問題が改善するのかもしれません。

問題2: ファイルのドラッグ・アンド・ドロップが反応しない

少し確認不足なのですが、chromiumへのファイルのドラッグ・アンド・ドロップが反応しにくいように見えます。クラウドなどへファイルのアップロードを行う際、ファイルマネージャからファイルをドラッグすることがあると思いますが、これがうまくいかないということです。

もっと単純な例を挙げると、chromiumでシークレットタブを開いて、ファイルマネージャからjpegファイルをドラッグすれば、本来であればファイルがchromium上に表示されるはずなのですが、これも高い確率で失敗します。Chromiumの問題というより、Xwaylandの問題なのかもしれません。

まとめ

RPI 4B, 5BでRapsberry Pi OS bookwormを利用する場合、raspi-configでwaylandのオン・オフを選択できます。

Waylandオフ環境でのchromium

従来からのX11環境でOpenBoxが起動。可もなく不可もなく安定してchromiumを利用できます。

Waylandオン環境でのchromium

Wayfireが起動。長所としては

  • ディスプレイ環境(動画以外の環境を含む)の表示がとても安定している。ティアリングが起こらず、動画を鑑賞していて疲れない。
  • OS画面で派手なエフェクトが楽しめる。

Wayland環境でのchromiumは2つの起動方法があります。

デフォルトでの起動(waylandモード)

以下の問題があります。

  • 日本語が入力できない。
  • タイトルバーをオフにする設定がうまく働かない。

X11アプリとして起動 (Xwaylandモード)

以下の問題があります。

  • Youtube再生でコマ落ちが起こる。
  • ファイルアップロード時などに利用する、ファイルのドラッグ・アンド・ドロップが反応しない。

今回のchromiumの問題の多くは、ラズパイ固有の問題というよりも、chromiumのwaylandへの対応不足の問題というべきかもしれません。先行してwaylandを導入したlinuxディストリビューションで、同じような問題が以前から報告されていました。

ここで根本的な問いとして考えなければならないのは、それではなぜwaylandに移行するのかということなのですが、えーと、返答は難しいですね(笑)。Waylandモードの画面の美しさは捨てがたいのですが、それだけだと言われればそれまででありまして、このあたりがwaylandへの移行がなかなか進まない原因とこれまで言われ続けてきました。

とはいえ、将来的なことを考えると、このままX11に新技術を投入していくのは不可能なので、移行が間違いなく必要なのは分かります。ラズパイ財団はこれまでにIgaliaという企業と組んでかなり前からオープンソースドライバの開発を地道に行ってきました。それがあってのwaylandへの移行ですから、財団はちゃんとやってるなーというのが私の感想です。

だから結局、私自身がwaylandモード使うかというと、えーと、しばらく様子見かなー(笑)。

日本語環境ではchromiumをXwayland経由で使うしかなさそうなのですが、デメリットが小さくないですし。せめて日本語環境がデフォルトのchromiumで動いてくれれば、まだ考えるのですが。実は–gtk-version=4というオプションでchromiumを起動するとgtk経由の日本語が入力が可能になるかもしれないという話もあったりするのでこれに少し期待して、それがだめなら長考に入ろうかなと…

それにchromium以外にもちょっと思うところがあったりもします。それについてはまた別の機会にお話しましょう。

ラズパイに完全対応した無料のファイル転送サービスSoqAlbum

本サイトではSoqAlbumというファイル転送サービスを開発しています。これは、だれでもどこでも1分で、準備なしアカウントなしインストールなしで送れるファイル転送サービスで、ラズパイの新OS bookwormでもブラウザ一本ですぐに利用できます。ラズパイでnearby shareやairdropのようなファイル転送サービスをお探しの方は、一度お試しください。

Get Started With SoqAlbum
SoqAlbum instantly links your smartphone and your PC with a simple QR code operation, allowing direct file exchange betw...

上のページを開いて「このブラウザで始める」をクリックすれば、chromium内で利用できます。

さらに便利に使いたい場合は、ラズパイのデスクトップアプリとしてインストールすることもできます。

SoqAlbumを起動させるとURLバーの中にインストールボタンがあらわれます。それをクリックするとPWAアプリとしてインストールされ、デスクトップに起動アイコンが登録されます。その後は通常アプリと同じようにアイコンクリックでアプリを起動できます。

アンインストールはURLバーにchrome://appsと入力してください。デスクトップアイコンも含めて完全なアンインストールが可能です。

おまけ

この夏あたりから、どういうわけかブラウザのタイトルバーの話ばかりしている印象です。たとえwindowsであってもやっぱりトラブル起こりますし、そういうトラブルに対応していたら妙に詳しくなってしまったのですが。いっそタイトルバー博士とでも名乗りましょうかねー。

コメント

タイトルとURLをコピーしました