2018年7月6日金曜日

RaspberryPiで画面が出ない

RaspberryPiでもLubuntuが動くというので、しばらく前から試していた。

Install直後は快調に動作していたが、数日放置して起動すると、画面が真っ黒になる。
Installして間もない状態ころだったので、再インストールしてみた。すると、普通に動作していたのでそのまま使っていた。

先日、久しぶりに動作させるとまた画面が真っ黒になった。
画面は、HDMI接続したTVである。
キーボードから、[CTRL]+[ALT]+[F1]を押すと、仮想端末の画面が出てくる。
どうやら、CUIは表示できる。また、[CTRL]+[ALT]+[F7]を押してXを表示させると一瞬LightDMが見える。
マウスを少し動かして、[CTRL]+[ALT]+[F1]、[F7]をすると、マウスポインタが動いている。ストップモーション的に画面を見ながら、ログインパスワードを入力してみたら、Xでもログインできた。もちろん画面は真っ暗だけど。

これらのことから、画面が見えないだけで正常に動作しているというのがわかった。
そして、CUI環境では普通に使える様子なので、CUIで調べることにした。

非力すぎてXが使えなかったボロVAIO-C1を使っていた頃の経験が役に立つ。fbterm、w3m、Takaoフォントをインストールして、ブラウジング環境を整える。
1080のTV画面は広いし、CPUパワーもVAIO-C1より上なので、unifontである必要はない。むしろ大きな字がいいので、Takaoフォントを使った。
~/.fbtermrcのfont-nameとfont-sizeを以下のように書き換える。
  : (省略)
# font family names/pixelsize used by fbterm, multiple font family names must be seperated by ','
# and using a fixed width font as the first is strongly recommended
#font-names=mono
#font-size=12
font-names=TakaoGothic
font-size=24
  : (省略)
またホットキーが使えるように、いつものように以下を実行する。
$ sudo setcap 'cap_sys_tty_config+ep' $(which fbterm)
これでfbtermが起動できるようになる。
日本語入力もできたほうがいい。以前はuim-mozcを使っていたのだが、最近はなくなってしまったようだ。
uim-anthyを使うことにする。
uim-fep, uim-anthyをインストールして、~/.uimを作る。
そうしないと101キーボードで日本語入力ができない。
以前、いろいろまとめてブログに書いておいたことを思い出して、見なおしてみるがなんかおかしい。generic-on-keyは、"<Control> "だったはずだ。それがただのスペースに見える。
PCからブログの編集画面に入ってみると、 "<"や">"がそのまま入力されていた。<Control>をHTMLタグとして認識して無視されているのだ。
もう何年も前に書いて、何回か見なおしているのに、こんな間違いが残っていようとは…。
その記事も修正して、以下の内容で、~/.uimを作成した。
(define default-im-name 'mozc)
(define-key generic-on-key? '("<Control> "))
(define-key generic-off-key? '("<Control> " "escape"))

(require-module "anthy")
(define-key anthy-shrink-segment-key? '("tab" "<Control><IgnoreCase>i"))
(require-module "prime")
(define-key prime-wide-latin-key? '("<Control><Alt>l" "<Control>L"))
(require-module "canna")
(define-key canna-shrink-segment-key? '("tab" "<Control><IgnoreCase>i"))
この状態で、fbtermとuim-fepを起動して日本語環境にする。
とりあえず、w3m-imgは使わずにブラウジングする。
ブラウジングしていると、テキスト画面なのに画面が真っ暗になることがあった。
ページを切り替えても画面が出たり消えたり、ブリンキングすることもあった。
さらによく見ると、ちゃんと映っているように見えても、実際には細かくチラチラしている。
このあたりまで来ると、Xだからダメというわけでなく、表示内容によってダメということがわかってきた。

ソフト的な問題ではなく、ハード的な問題のようだ。そしてブラウジングしていると、以下のようなページを発見した。
blank screen after boot noobs pi 3b - Raspberry Pi Forums

症状がそっくりだ。
CUIは表示されるけど、Xは表示されない。しかし、動作はしている。動作しているのでスクリーンセーバになると画面が表示される。すなわち、内容によって表示されるときもあればされない時もあるというものだ。
読んでいくと、下の方にHDMIの信号強度の調整を促すアドバイスがあり、それをしたところ問題が解決している。

仕事をしていても、最近この手の問題が増えた。
少電力化のためには、バスの駆動力を下げたほうがいいのだが、下げ過ぎると高速信号がなまって通らなくなる。
また、上げればいいというわけでもない。上げ過ぎると長いケーブルではクロストークを起こしたり、リンギングや反射が大きくなり、やはり通らなくなる。
適切な値に調整しなければならない。

調整は、/boot/config.txt の、"config_hdmi_boost="を調整して行う。
値を書き換えては再起動を繰り返して調整する。
ウチのセットでは、"4"にしたらうまく行った。結果的に、以下のような内容になった。

  : (省略)
## config_hdmi_boost
##     configure the signal strength of the HDMI interface.
##
##     Value    Description
##     -------------------------------------------------------------------------
##     0        (Default)
##     1
##     2
##     3
##     4        Try if you have interference issues with HDMI
##     5
##     6
##     7        Maximum
##
config_hdmi_boost=4
  : (省略)

そのRaspberryPi Lubuntu で、Chromiumを動かして(FireFoxは今は動かない)この記事を書いている。

0 件のコメント:

コメントを投稿