Raspberry Pi 4 で Psychtoolboxを動かす (1)：準備編

# はじめに
　小さくて持ち運びの容易な実験システムを作ることはそれなりにニーズのあることだと思います。例えば筆者の身近には、臨床の現場でベッドサイドで使いたいと考えている先生や、フィールドワークの一環で実験室以外の場所で実験をする先生がいらっしゃいます。もちろん筆者もそうした現場に出かけることもあり、そのときにはできるだけ荷物を軽く、小さくしたいものです。たしかに、より精度の高い記録を行うためにはそれ相応のサイズを持つ機材が必要なんだと思います。しかし、十分に許容可能な精度で持ち運びに特化した実験システムを揃えることも意義があることだと考えています。
　そうした要求を満たす一つの解決策として考えられるのがRaspberry Piシリーズです。ここでわざわざ説明はしませんが、シングルボードコンピュータと呼ばれ、PCとして機能させることができるポケットサイズの機材です。
　この記事では、Raspberry Pi 4 (4GBモデル；以下、Raspi4)でPsychtoolbox（以下、PTB）が動作するようになるまでの過程を記録します。OSは執筆時点で最新版のRaspberry Pi OS (64bit) Bookworm (12.0)を使っています。

:::note info
Raspberry Pi Imagerを使ってOSがインストールされたという前提で説明しています。
:::

# インストール自体はきわめて簡単
　インストール手順は極めて簡単です。ターミナルで以下の2つのコマンドを実行して待つだけです。

 :::note info
 PTB公式サイト（ http://psychtoolbox.org/download.html#Linux ）ではNeurodebianを利用してのインストールを推奨していますが、この記事の執筆時点ではNeurodebianを経由してのインストールはうまくいきません。Neurodebianに頼らなくても初期状態のリポジトリから適切なPTBを入手することができました。
:::

```Terminal:ターミナル
$ sudo apt update
$ sudo apt install octave-psychtoolbox-3
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1138705/31c90b41-7e24-4e9d-a4fe-d99f375e2c5c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1138705/769a226c-ef3e-43ba-b850-d1719e92b518.png)

 　これでOctave 7.3.0、Psychtoolbox 3.0.18がインストールされました。この記事の執筆時点ではOctaveは9.4.0、Psychtoolboxは3.0.20が最新バージョンです。PTB公式ページによると、執筆時点でLinux（RPi OS含む）版のPTBはOctave 5.2~7.3までにしか対応していないので、PTBを使う観点から見ると最新の状態と言えると思います。今回の目的はRaspi4 + Octave +PTBで最低限動作する環境を作成することなので、多少バージョンが古いことは気にしないことにします。

  # いくつかの設定
  ## ウインドウサーバーの変更
  　普段の Windows 上のPTBであれば、ここで `DotDemo` や `DriftDemo` などの実験デモプログラムを実行させて、インストールがうまくいったかを確認するのですが、今回の環境ではこの段階では `DotDemo` も `DriftDemo` も動きません。
　それはどうやらウィンドウマネージャー（ディスプレイサーバー）と呼ばれる画面描画の仕組みが原因のようです。現在のRasberry Pi OSはデフォルトではWaylandという仕組みが使われています。しかし、WaylandとPTBの相性が悪く、PTBで最も重要なScreen関数が一切動きません。そこでレガシーな仕組みであるX11にウィンドウマネージャーを切り替えます。

 ```Terminal:ターミナル
$ sudo raspi-config
```
　Raspberry Pi Software Configuration Tool (raspi-config)という画面が開くので、「6 Advanced Options」を選択します。

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1138705/e8ed5094-9024-40bf-a124-322ec3cecd0c.png)

　「A6 Wayland」を選択し、「W1 X11」を選択し直します。

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1138705/f9e97c05-1541-4a11-96e5-265fa7f1f288.png)
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1138705/e26544b8-cf5c-4c21-9830-e36c7e8ecc5e.png)

　ここで一度システムを再起動すると、次回起動時からウィンドウマネージャーとしてWaylandではなくX11が使われるようになります。
　その後Octaveを起動して `DotDemo` や `DriftDemo` を実行すれば問題なく動作するはずです。

## 日本語が使える環境を作る
　X11への切り替えに伴い、キーボードがUS配列だと認識されてしまうことがありました。詳しいことは理解していませんが、fcitx + MOZCの環境がよくないようです。このままでは日本語環境だと使いづらいので、キー入力管理環境をiBus + MOZCの環境に設定しなおします。下記のコマンドを順番に実行してください。

```Terminal:ターミナル
$ sudo apt purge fcitx fcitx-mozc
$ sudo apt autopurge
$ sudo apt update
$ sudo apt install ibus-mozc
```

これでラズパイを再起動すれば、iBus + Mozcの環境でキーボード入力を受け付けるようになります。日本語キーボード配列に対応していることを確認してください。
　さらに日本語用のきれいなフォントをいれておきたいので、以下のコマンドを追加で実行してください。

```Terminal:ターミナル
$ sudo apt install fonts-noto
$ sudo apt install fonts-ipaexfont
```

　長くなったので、この記事はここまでとします。[次の記事](https://qiita.com/dylab/items/dff0eb0d0966e5ea8eb6)では、Raspi4 + Octave + PTBの環境での最低限の動作確認をします。