MX Linux (MX-23.4_rpi_respin) on Raspberry Pi 用 TigerVNCのインストールと設定手順書

# **前提条件**
この手順書は、**MX Linux MX-23.4_rpi_respin**（Raspberry Pi OSをMXのセットアップとツールで再構成したもの）を使用している環境向けです。  
対象ハードウェア: **Raspberry Pi 4, Pi 400, Pi 5**

> **注意:**
> 本手順書では、`sudo` を使用して特定のユーザー（例: `blue_islands`）で `vncserver` を実行する手順を含みます。  
> サービスとして登録する方法も記載しています。


# **1. TigerVNCのインストール**

## 1.1 パッケージの更新
システムのパッケージを最新に更新します。
```bash
sudo apt update && sudo apt upgrade -y
```

## 1.2 必要なパッケージのインストール
TigerVNCと`xterm`をインストールします。
```bash
sudo apt install tigervnc-standalone-server tigervnc-common xterm -y
```


# **2. パスワードファイルの作成**

1. **指定ユーザー（例: `blue_islands`）でパスワードを設定**
   ```bash
   sudo -u blue_islands vncpasswd
   ```

2. **パスワードファイルの確認と権限設定**
   ```bash
   ls -l /home/blue_islands/.vnc/passwd
   sudo chmod 600 /home/blue_islands/.vnc/passwd
   sudo chown blue_islands:blue_islands /home/blue_islands/.vnc/passwd
   ```


# **3. 手動で VNCサーバーを起動**

`sudo` を使用して特定のユーザーで VNCサーバーを起動します。

## **起動コマンド**
```bash
sudo -u blue_islands /usr/bin/vncserver -localhost no -SecurityTypes VncAuth -PasswordFile /home/blue_islands/.vnc/passwd -xstartup /usr/bin/startxfce4 :1
```

## **接続情報**
- **IPアドレス**: サーバーのIPアドレスを確認:
  ```bash
  ifconfig
  ```
- **ポート番号**: `5901`（ディスプレイ番号 `:1` の場合）

## **ログ確認**
起動後、ログを確認して正しく動作しているか確認します。
```bash
cat /home/blue_islands/.vnc/mx:1.log
```


# **4. サービスとして VNCサーバーを設定**

## **4.1 サービスファイルの作成**
以下のコマンドで新しいサービスファイルを作成します。
```bash
sudo nano /etc/systemd/system/vncserver@:1.service
```

## **4.2 サービスファイルの内容**
以下の内容を貼り付けます。
```ini
[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=blue_islands
WorkingDirectory=/home/blue_islands
ExecStart=/usr/bin/sudo -u blue_islands /usr/bin/vncserver -localhost no -SecurityTypes VncAuth -PasswordFile /home/blue_islands/.vnc/passwd -xstartup /usr/bin/startxfce4 :1
ExecStop=/usr/bin/sudo -u blue_islands /usr/bin/vncserver -kill :1
PIDFile=/home/blue_islands/.vnc/%H:1.pid

[Install]
WantedBy=multi-user.target
```

## **4.3 サービスの有効化と起動**
1. サービスファイルをリロード:
   ```bash
   sudo systemctl daemon-reload
   ```

2. サービスを有効化:
   ```bash
   sudo systemctl enable vncserver@:1.service
   ```

3. サービスを起動:
   ```bash
   sudo systemctl start vncserver@:1.service
   ```

4. サービスのステータスを確認:
   ```bash
   sudo systemctl status vncserver@:1.service
   ```


# **5. クライアントからの接続設定**

1. **接続先の設定**
   - **IPアドレス**: サーバーのIPアドレス（例: `192.168.x.x`）
   - **ポート番号**: `5901`（ディスプレイ番号 `:1`）

2. **VNCクライアントソフトで設定**
   - 接続先: `<サーバーのIPアドレス>:5901`
   - パスワード: 設定したVNCパスワード。

3. **接続をテスト**
   正常に接続できると、設定したデスクトップ環境が表示されます。


# **6. トラブルシューティング**

## **6.1 VNCサーバーが起動しない場合**
ログファイルを確認してエラーを特定します。
```bash
cat /home/blue_islands/.vnc/mx:1.log
```

## **6.2 ポートがブロックされている場合**
ファイアウォールでポートを開放します。
```bash
sudo iptables -A INPUT -p tcp --dport 5901 -j ACCEPT
```


# **7. VNCサーバーの停止と削除**

## **7.1 サーバーの停止**
現在起動中のセッションを停止します。
```bash
sudo systemctl stop vncserver@:1.service
```

## **7.2 サービスの無効化**
```bash
sudo systemctl disable vncserver@:1.service
```

## **7.3 設定の完全削除**
すべての設定とインストールを削除します。
```bash
sudo apt remove --purge tigervnc-standalone-server tigervnc-common xterm -y
```


これで、`sudo` を使用して特定のユーザーで VNC サーバーを起動する方法が網羅されています。さらに調整が必要であればお知らせください！