Closed7

Raspberry Pi に cage をインストール

bamchohbamchoh

まずは必要な パッケージをインストール

sudo apt update
sudo apt install -y \
  build-essential \
  meson \
  ninja-build \
  git \
  pkg-config \
  cmake \
  wayland-protocols \
  libwayland-dev \
  libxkbcommon-dev \
  libseat-dev \
  libinput-dev \
  libdrm-dev \
  libpixman-1-dev \
  libegl1-mesa-dev \
  libgles2-mesa-dev \
  libudev-dev \
  libpam0g-dev \
  libexpat1-dev \
  libxml2-dev \
  libffi-dev \
  zlib1g-dev \
  libdrm-dev \
  libudev-dev \
  libinput-dev \
  libgbm-dev \
  libegl1-mesa-dev \
  libxcb1-dev \
  libx11-dev \
  libxkbcommon-dev \
  libpixman-1-dev \
  libdisplay-info-dev \
  libliftoff-dev \
  hwdata \
  foot
bamchohbamchoh

wlroots のインストール

git clone https://gitlab.freedesktop.org/wlroots/wlroots.git
cd wlroots
meson setup build --wrap-mode=default
ninja -C build
sudo ninja -C build install

cage のインストール

cd $HOME
git clone https://github.com/Hjdskes/cage.git
cd cage
git checkout wlroots-0.19
meson setup build
ninja -C build
sudo ninja -C build install
bamchohbamchoh

ライブラリパスをシステムに認識させる

ld.so.conf.d に設定ファイルを作成

echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/wlroots.conf

キャッシュを更新

sudo ldconfig

cage で ターミナルを起動する

cage foot
bamchohbamchoh

foot の設定をする

mkdir -p ~/.config/foot
nano ~/.config/foot/foot.ini

以下設定

[main]
# デフォルトフォントサイズを大きめに
font=monospace:size=18

# DPI 設定(必要なら)
dpi-aware=yes

# IME がある場合の設定(必要に応じて)
# enable-ime=yes

[scrollback]
lines=10000

[mouse]
# マウスでのテキスト選択を有効化
hide-when-typing=no

日本語キーボード設定

echo 'export XKB_DEFAULT_LAYOUT=jp' >> ~/.bashrc
echo 'export XKB_DEFAULT_MODEL=pc105' >> ~/.bashrc
bamchohbamchoh

QtをWayland付きでビルド

オリジナル

cmake ../qt5/ -GNinja -DCMAKE_BUILD_TYPE=Release -DINPUT_opengl=es2 -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF -DQT_HOST_PATH=$HOME/qt-host -DCMAKE_STAGING_PREFIX=$HOME/qt-raspi -DCMAKE_INSTALL_PREFIX=/usr/local/qt6 -DCMAKE_TOOLCHAIN_FILE=$HOME/toolchain.cmake -DQT_QMAKE_TARGET_MKSPEC=devices/linux-rasp-pi4-aarch64 -DQT_FEATURE_xcb=ON -DFEATURE_xcb_xlib=ON -DQT_FEATURE_xlib=ON

改変後

cmake ../qt5/ -GNinja -DCMAKE_BUILD_TYPE=Release -DINPUT_opengl=es2 -DQT_BUILD_EXAMPLES=OFF -DQT_BUILD_TESTS=OFF -DQT_HOST_PATH=$HOME/qt-host -DCMAKE_STAGING_PREFIX=$HOME/qt-raspi -DCMAKE_INSTALL_PREFIX=/usr/local/qt6 -DCMAKE_TOOLCHAIN_FILE=$HOME/toolchain.cmake -DQT_QMAKE_TARGET_MKSPEC=devices/linux-rasp-pi4-aarch64 -DQT_FEATURE_wayland=ON -DQT_FEATURE_opengl=ON -DQT_FEATURE_egl=ON -DQT_FEATURE_vulkan=OFF -DQT_FEATURE_xcb=OFF -DQT_FEATURE_gui=ON -DQT_FEATURE_accessibility=ON
bamchohbamchoh

ssh から cage を起動する

ssh から cage をそのまま起動すると tty の権限の関係でエラーになる。

# これはエラーになる
cage foot

tty は root 権限でしか触れないので sudo をつけると動く

sudo cage foot

引数付きのQtコンポジタを sudo cage で実行するには

先の例では Qt コンポジタが起動できない。

# XDG_RUNTIME_DIR, LD_LIBRARY_PATH 環境変数がうまく認識されず
# 起動途中でエラーになって落ちる
sudo cage ~/minimal-qml --wayland-socket-name 'wayland-1'

ワンライナーで実行するのを諦めて run.sh を作成

run.sh

export XDG_RUNTIME_DIR=/run/user/1000
export LD_LIBRARY_PATH=/usr/local/qt6/lib
cage -- /home/bamchoh/minimal-qml --wayland-socket-name wayland-1

chmod 755 run.sh をしたあとで sudo run.sh を実行すると起動できるようになる

sudo run.sh

ssh でコマンド実行

run.sh を実行したいだけなのにいちいち ssh でログインしてからコマンドを叩くのは二度手間なので、sshでログインと同時にコマンドを実行する。 -t をつけないと CTRL+C で ssh を抜けたときに同時に cage が終了してくれないみたい。

ssh -t <username>@<remote ip adreess> sudo run.sh
このスクラップは4ヶ月前にクローズされました