LoginSignup
3
7

More than 3 years have passed since last update.

ラズパイのX端末化【大幅改訂版】

Last updated at Posted at 2020-08-08

ラズパイをX端末 (gnome-terminal のような端末エミュレータ ではなくてXサーバーだけが動作するコンピュータ)化する手順です。ラズパイ社が配るSDカードイメージを改造して作ります。昔と違って、サウンドもpulseaudio経由でちゃんと出ます。

ラズパイ側準備

ラスパイSDカードの下準備

  1. https://www.raspberrypi.org/downloads/ からSDカードイメージをダウンロードし起動する。デスクトップ環境が含まれるSDカードイメージを選択すること。32bit版でも64ビット版でもどちらでもよい。
  2. ネットワークへの接続(有線でも無線でもよい)とキーボードの設定などを行い普通に使えるようにする
  3. ターミナル(など)から sudo apt-get install pulseaudio で PulseAudioパッケージをインストールする
  4. 音を鳴らしたいなら、以下の作業に進む前に音が鳴ることを確認する。USB接続マイクスピーカーなども使え、録音もできます。

XとPulseaudio自動起動ファイル作成

下記の2つのファイルを作る

/mnt/etc/systemd/system/Xserver.service
[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アドレスが含まれるように書く

/mnt/etc/systemd/system/pulseaudio.service
[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.txtipv6.disable=1 を追加する。ディスプレイマネージャにgdmを使うときはこれをやるとうまく動作しないかも知れない…

ウェブブラウザなどのXクライアントを実行する計算機の設定

GDM や LightDM の設定は gdm, lightdm の XDMCP 設定 を参照。

リモート PulseAudio サーバーの設定

これだけだと音が出ないので、ウェブブラウザなどを実行する計算機から音声をラズパイに送るように、を下記のファイルを設置することで指示する。ラズパイがいるネットワークアドレスが 192.168.1.0/24 ではない場合は以下の当該部分を適切に変更する

/etc/X11/Xsession.d/10remote-pulseaudio
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サーバーなどの更新もできる。

3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7