2021年6月12日土曜日

Raspberry PI3 の X window が「パスワード待ち」になって、パスワードを受け付けない。

 Raspberry PI3 をデジタルサイネージ風に使っていて、
MP4ビデオを数本入れて、自動再生していました。

その方法は、
omxplayer という動画プレイヤーを使って、
/home/pi/.config/lxsession/LXDE-pi/autostart
にスクリプトを入れて、複数の動画を連続再生しています。

参考にさせていただいたのは、
http://www.cenolan.com/2013/03/looping-video-playlist-omxplayer-raspberry-pi/

毎日順調に再生されていたのですが、
同じコンテンツだと飽きてくるので、今回違う動画ファイルを入れようと思って、
電源を切ったときに、ミスったようです。

実は、上記の設定だと、必ず自動再生されてしまうので、
メンテや動画ファイルの交換には必ず、ほかの端末からSSHなどでコンソールに入るしか方法が無くなりますが、そうなると、ネットワーク環境が必要になります。

今回は、全くネットワークを使わない設定にしたかったので、
USBポートに特定のデバイスをつないだ時だけ、自動再生されない設定にしていました。

USBポートに「DELL のキーボードを検出したとき」という設定です。

普段は、ネットワークもなし、キーボードもマウスもなし。
全くラズパイ本体だけをモニターに繋いでて、
メンテナンスの際にDELL製のキーボードをつなぐと自動再生されない。

で、キーボードを繋いで、コンソールを出して、
「autostart」のファイル名を一時的に変更して、再起動させると、X-Windowが起動する。

ここで、再起動の際に、なぜか X-Window は起動するけど、「pi」のユーザーで、ログインパスワード待ちのウインドウが開いて、正規のパスワードを入れても、ログインできない状態になってしましった。

普通は自動ログイン設定なので、パスワード待ちなんてありえないのに。

試しにわざと間違ったパスワードを入れてみると、「パスワードが間違ってる。」というメッセージがでるので、入れたパスワード自体は正しい。

でも、X は触れない。デスクトップ背景の画像も表示されているのに。

これにはかなりはまった。

とりあえず、CTRL+ALT+F1 でコンソールを出して、raspi-config でCUI ログインに変更したら、CUI ログインはできたけど、日本語が通らない。

この状態で、startx でX-Window を起動したら、TimeOut とか言いやがって、起動しない。

と思っていたら、一旦タイムアウトしてるのでのに、何かのキーを触ったらX が起動した!

ログインもできている。

でも、根本的な原因は解消されていなくて、自動起動させたら、ログインパスワード待ちのまま。

色々ネットを彷徨ったら、
https://www.raspberrypi.org/forums/viewtopic.php?t=180859
このページに助けていただいた。

「`~/.Xauthority` の権限をlsコマンドなどで確認してもし`pi`以外のものだったら`pi`にしてログインし直しして直らないか.」

ちょうど偶然 X が起動している状態になったので、ファイルマネージャーで権限を確認したら、「root」になっている。なんでじゃ?

これを、
「sudo chown pi.pi ~pi/.Xauthority」
で「pi」に変更したら、正常に戻った。

助かりました。