ラズパイをX端末 (gnome-terminal
のような端末エミュレータ ではなくてXサーバーだけが動作するコンピュータ)化する手順です。ラズパイ社が配るSDカードイメージを改造して作ります。昔と違って、サウンドもpulseaudio経由でちゃんと出ます。
ラズパイ側準備
ラスパイSDカードの下準備
- https://www.raspberrypi.org/downloads/ からSDカードイメージをダウンロードし起動する。デスクトップ環境が含まれるSDカードイメージを選択すること。32bit版でも64ビット版でもどちらでもよい。
- ネットワークへの接続(有線でも無線でもよい)とキーボードの設定などを行い普通に使えるようにする
- ターミナル(など)から
sudo apt-get install pulseaudio
で PulseAudioパッケージをインストールする - 音を鳴らしたいなら、以下の作業に進む前に音が鳴ることを確認する。USB接続マイクスピーカーなども使え、録音もできます。
XとPulseaudio自動起動ファイル作成
下記の2つのファイルを作る
[Unit]
Description=X server
After=network-online.target
Wants=network-online.target
[Service]
Type=exec
ExecStart=/usr/bin/Xorg -broadcast -keeptty -retro -listen tcp dpms vt7 v -allowMouseOpenFail -allowNonLocalXvidtune
#Restart=always
Restart=no
[Install]
WantedBy=multi-user.target
次のauth-ip-acl
にはウェブブラウザなどを実行する計算機のIPアドレスが含まれるように書く
[Unit]
Description=PulseAudio system server
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/pulseaudio --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/24" --daemonize=no --system --disallow-exit --disallow-module-loading=no
[Install]
WantedBy=multi-user.target
ラズパイのターミナルから sudo systemctl set-default multi-user.target;
sudo systemctl enable Xserver pulseaudio
を実行する
IPv6 の禁止
RaspberryPI のブートローダ読込時点で IPv6 を無効化する に従って、 /boot/cmdline.txt
にipv6.disable=1
を追加する。ディスプレイマネージャにgdmを使うときはこれをやるとうまく動作しないかも知れない…
ウェブブラウザなどのXクライアントを実行する計算機の設定
GDM や LightDM の設定は gdm, lightdm の XDMCP 設定 を参照。
リモート PulseAudio サーバーの設定
これだけだと音が出ないので、ウェブブラウザなどを実行する計算機から音声をラズパイに送るように、を下記のファイルを設置することで指示する。ラズパイがいるネットワークアドレスが 192.168.1.0/24
ではない場合は以下の当該部分を適切に変更する
if echo $DISPLAY | grep -q "^192.168.1.[0-9]*:[0-9]"; then
#unset DBUS_SESSION_BUS_ADDRESS
PULSE_SERVER=`echo $DISPLAY | sed 's/:.*$//'`
export PULSE_SERVER
fi
Could not acquire name on session bus
というメッセージがMATEで出るときには上記の/etc/X11/Xsession.d/10remote-pulseaudio
のようにunset DBUS_SESSION_BUS_ADDRESS
する。このメッセージは、キーボードとリモートホストの両方から同時にログインしようとしたときに生じるが、そういう使い方は基本的にサポート外だと思われる…
OpenBox はキーボードとXDMCPからの同時ログインで一応動作する。
ラズパイX端末の電源の切り方など
CTRL + ALT + ファンクションキー
でログインプロンプトが出てくるので、ユーザー pi
でログインして sudo systemctl poweroff
などとする。sudo apt-get update; sudo apt-get dist-upgrade
でインストール済みのラズパイLinuxカーネルやXサーバーなどの更新もできる。