2022年2月13日日曜日

4Bで動かすRaspberry Pi OS (bullseye)にRDPログインしようにも黒い画面が表示される問題の対応


背景

Raspberry Pi OSとはRaspberry Pi財団が公開しているRaspberry Piという小型パソコン向けのOSです。
2022年1月に64bit安定版公開されたので試してみたところ、RDP(リモートデスクトップ)でログインしようにも真っ暗な画面が出てログイン出来ませんでした。

調べてみたら対応方法が分かったので、備忘録を兼ねて記事を残します。

使ったもの

  • Raspberry Pi 4B (RAM 4GB)
  • SDカード
  • Raspberry Pi OS 64bit 2021.01公開版
  • Raspberry PiにSSHやRDP接続するPC

自動ログインとグループ設定に問題がある

「raspberry pi OS RDP black screen」で検索していると、今回の問題を議論している下記のページを見つけました。

"connection problem, giving up" on xrdp with Raspberry Pi OS 11 (bullseye)

示された解決方法は下記のどちらかでした。
  • ユーザー「pi」の自動ログインを無効化し、ユーザーグループのvideoとrenderを消す
  • ユーザー「pi」以外のユーザーを作ってRDP接続する(自動ログインは設定せず、ユーザーグループのvideoとrenderは有効化しない)

とういうことで、ユーザー「pi」に対しては、下記の操作でRDP接続可能になります。


videoとrenderグループからユーザー「pi」を除外
sudo gpasswd -d pi video
sudo gpasswd -d pi render


デスクトップの自動ログイン無効化
sudo raspi-conofig
下記の選択で無効化
System options -> Boot / Auto Login -> Desktop GUI, requiring user to login


上記の操作をして再起動したら、ユーザー「pi」にRDPでログイン可能になりました。

4Bだけ問題が発生する

他のRaspberry Piや64bitでないOSでも発生するか調べたところ、32bitでも64bitでも、自分が試した範囲では4Bだけこの問題が発生しました。

種類 OS(2021.01.28公開版) RDPでログインできない問題
Zero 32bit
3B 32bit
3B 64bit
4B 32bit 発生
4B 64bit 発生

/boot/config.txtの [pi4] arm_boost=1 をコメントアウトしても効果がありませんでした。

グループを外したことによる影響: sudo無しではカメラ系が使えなくなる

videoはwebカメラなどへの接続、renderはframebufferなどへの接続権限を管理しているグループです。
そのため、それらのグループに所属していないとlibcameraなどのカメラ系プログラムの実行時に権限不足のエラーが発生します。

sudoを付ければ実行可能ですが、libcamera-helloのプレビューが表示されなかったりとsudo無し時と挙動が異なる場合があります。
sudo無しで動かしていたプログラムをsudo付きで動かす場合は、挙動の違いに注意が必要です。

終わり

OSを入れ直したらRDPでログインできなくて戸惑いましたが、自動ログインとグループ設定の変更でログイン可能になりました。
4Bだけで発生する問題なので不具合なのかも知れません。

他の対応策や対応せずともログイン可能になったなど、関連する情報をご存知でしたら、コメントなどで共有していただけると嬉しいです。

参考

"connection problem, giving up" on xrdp with Raspberry Pi OS 11 (bullseye)
How to Add or Remove a User from a Group in Linux
ngrokとssh通信を経由してUbuntuからRaspberry Piにリモートデスクトップ接続

0 件のコメント :