Closed7
Raspberry Pi に cage をインストール
ChatGPT に cage のインストールの仕方を聞いてみた。
まずは必要な パッケージをインストール
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
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
ライブラリパスをシステムに認識させる
ld.so.conf.d に設定ファイルを作成
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/wlroots.conf
キャッシュを更新
sudo ldconfig
cage で ターミナルを起動する
cage foot
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
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
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ヶ月前にクローズされました