工作少年がやってきて、RasPiが動かないというのでいろいろトラブルシュート。
- 動かないのは前回あげたPi1 Bと自分で購入したPi3両方
- 電源はPi3と一緒に買った2.5Aのやつ
- モニタは三菱のRDT1713VMというアナログ+DVIのもの
- HDMI-VGA変換で接続
- キーボードは有線、マウスは無線
という環境。症状としては
- RasPi3は起動するけどエラーと出る
- Pi1は画面が出ない
とのこと。ウチの環境(800x600の古いモニタ + HDMI-VGA変換)に合わせて/boot/config.txtのHDMI設定を変えてたかもしれないので、まずはウチで動いてた状態に戻す。キーボードもマウスも動いてたものに交換。
→やっぱり画面出ない。HDMIモニタに繋いでも動かない。
ネットワーク経由で入ろうとしたけどIPアドレスどうしてたか忘れた。もう、全部焼き払うことにする。
昨今のRaspberry Pi情報に追いつく
NOOBS
-
- FATでフォーマットしたSDカードにコピれば、そこからブートしてインストールできるという超絶お便利環境
- RasPi上でインストール作業を行うのでメチャ遅い
- http://ftp.jaist.ac.jp/pub/raspberrypi/NOOBS/images/NOOBS-2016-11-29/NOOBS_v2_1_0.zip
Raspbian
-
- ddで直書きできる方がイメージを書く時間=インストール時間である上、RasPiが不安定かもしれない場合でも信用できる状態が構築できるので、やっぱ便利。最終的に全部こっちにした。
- イメージが4GBくらいになってるので少なくとも8GBくらいのカードが必要
- SDカード挿入→mountコマンドでデバイスファイル名を確認。今回は/dev/disk1s1 on /Volumes/UNTITLED (msdos, local, nodev, nosuid, noowners)の出力があったので/dev/disk1。→Disk Utilityでアンマウント→ddコマンドで書き込み→ブートパーティションが自動マウントされるので、またDisk Utilityでアンマウント→取り出して使うという流れ。
- /dev/disk1にバッファリングなしで書き込むコマンドは sudo dd bs=4M if=2016-11-25-raspbian-jessie.img of=/dev/rdisk1
- ダウンロード元は http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2016-11-29/2016-11-25-raspbian-jessie.zip
- MacでうまくunzipできずWindows10でやった
PIXEL
-
- 新しいデスクトップ環境。Raspbianを入れたら勝手に動く。
- 2015-02-16-raspbian-wheezy当時はデフォではXは動かなかったけど、いまは動く。
- ちゃんと使ってないけどデスクトップのメニュー内容とかはwheezyと同じ感じ。
すばらしい、と思ったこと
Raspbianをddで書き込んだSDカードをRasPiに突っ込んで起動すると、勝手にパーティションを切って最大限に利用してくれる。
コントロールしたいことがある場合は困るかもしれないけど、32GBとかのやつでも何も考えずに進むのは正直感動した。
この自動拡張を抑止したいときは http://raspberrypi.stackexchange.com/questions/47773/disable-auto-file-system-expansion-in-new-jessie-image-2016-05-10 にあるように、/boot/cmdline.txtからinit=/usr/lib/raspi-config/init_resize.shの行を除けばよいらしい。
インストールの流れ
NOOBS
-
- 起動するとインストールイメージを選ぶ画面が出るけどネットが繋がってなければRaspbianしか選べない
- 起動してインストールイメージ選んでインストールという流れ
- Pi1はこれでいけたけど、Pi3は途中でイメージが壊れてると言い出した
Raspbian
-
- 起動→勝手に/をリサイズ→PIXEL起動。ちょう便利。
電源
モニタ
- Pi1が起動するようになったので三菱のモニタを使えるように/boot/config.txtを編集
- http://elinux.org/RPi_Configuration を見るべし
- hdmi_force_hotplug=1 をやって動かないところで時間切れで諦めたけど、hdmi_safe=1 を試すべきだった
まとめ
だいぶ勘が鈍ってた。五里霧中な感じで4時間くらい作業してこの状態、というのはだいぶ情けない。電源はもっとマトモなのを手配しとく必要があるし、HDMIまわりはちゃんとメモを作る必要がある(追記2に書いた)。
追記
- 電源は2A程度でも動くという話があり(https://www.switch-science.com/catalog/2650/ など)、だったらこのPi3個体がおかしいかも。
- うまく動いてないRasPiで/boot/config.txtを編集したいときは、SDカードを他のマシンに挿すと/bootがマウントされて編集できる。べんり!
- 同じくうまく動いてないRasPiを操作したいときはsshで入りたいが、最近のraspbianはデフォルトではsshdを動かさない。touch /boot/sshすると(/bootにsshという空ファイルを作ると)sshが動くようになり、普通にuser=pi、password=raspberryで入れる。以後はsshが動いてるので、常時動かす場合これはセキュリティリスクですわよ。いろいろ変更すべし。
- 安定してからオーバークロックしてみたら普通にいける。
- 700MHzと950MHzと1000MHzでUSBの簡易テスタで見た電流は0.4A→0.45A→0.5Aだった。最後の50MHzはやめた方が無難だなと思った。AliexpressなんかでRasPiケースにヒートシンクが付けてきたりするのはこのためかと思った。(オレが使ってるhttps://www.aliexpress.com/item/Pi-Box-ABS-Plastic-Clear-case-for-Raspberry-Pi-model-b-plus-support-GPIO-Raspberry-Pi/32608022865.htmlも200円しかしないのにヒートシンク付属だった。)
追記2: どろぬまhdmi-vga変換
現状
- ウチでRasPi用に使ってるモニタはPanasonic TX-D14L31-Jという98の画面が映るモニタ。20年前30万円台だったらしい。
- http://pc.watch.impress.co.jp/docs/article/961218/panalcd.htm に「追従水平周波数:24〜61kHz 追従垂直周波数:50〜77Hz」とある。最大解像度は1024x768。
- HDMI-VGA変換で接続。変換は http://amzn.to/2i7GhPZ にある激安のやつ。
すばらしいコマンドがあるよ
- モニタの対応hdmiモードを調べるコマンドが http://elinux.org/RPiconfig の"Which values are valid for my monitor?"に載ってる。
それぞれ
pi@raspberrypi:~ $ /opt/vc/bin/tvservice -m CEA Group CEA has 9 modes: (prefer) mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive (native) mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive mode 19: 1280x720 @ 50Hz 16:9, clock:74MHz progressive mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive pi@raspberrypi:~ $ /opt/vc/bin/tvservice -m DMT Group DMT has 10 modes: mode 4: 640x480 @ 60Hz 4:3, clock:25MHz progressive mode 5: 640x480 @ 72Hz 4:3, clock:31MHz progressive mode 6: 640x480 @ 75Hz 4:3, clock:31MHz progressive mode 8: 800x600 @ 56Hz 4:3, clock:36MHz progressive mode 9: 800x600 @ 60Hz 4:3, clock:40MHz progressive mode 10: 800x600 @ 72Hz 4:3, clock:50MHz progressive mode 11: 800x600 @ 75Hz 4:3, clock:49MHz progressive mode 16: 1024x768 @ 60Hz 4:3, clock:65MHz progressive mode 17: 1024x768 @ 70Hz 4:3, clock:75MHz progressive mode 18: 1024x768 @ 75Hz 4:3, clock:78MHz progressive pi@raspberrypi:~ $ /opt/vc/bin/tvservice -s state 0x12000a [HDMI CEA (1) RGB full 4:3], 640x480 @ 60.00Hz, progressive pi@raspberrypi:~ $
となった。現在のモードは正しいけど、1920x1080とかぜったい対応してない。
考察?
役に立った設定、期待に反した設定など
- DMTのmode 16-18はこのモニタに適切に見えるけど、モニタの対応クロックが24-61KHzなためか映らなかった(tvserviceコマンドの出力はMHzとあるけどKHzだよね?)。RasPiでサポートされてないmode 15(1024x768@43Hz)がたぶんベストマッチ。
- なぜかhdmi_group=1のhdmi_mode=4および5(720p@60Hzおよび1080i@60Hz)が映る。後者はちらつくけど前者は結構きれい。
- hdmi_group=1, hdmi_mode=1のVGA固定はかなり強力に思える。hdmi_safe=1より役に立った。
- hdmi_safe=1: これは、hdmi_force_hotplug=1, hdmi_ignore_edid=0xa5000080, config_hdmi_boost=4, hdmi_group=2, hdmi_mode=4, disable_overscan=0, overscan_left=24, overscan_right=24, overscan_top=24, overscan_bottom=24 を設定した状態らしい。ところがぜんぜん動かない。
- framebuffer_width=800とframebuffer_height=600の組み合わせ: これだけ設定してもダメっぽい
- →後から試したらgroup2のmode8-11全滅だったので800x600の設定だったのがアカンかったかも。
- →640と480でやってもダメだった。
最終的に
- 疲れた。
- けっきょくhdmi_group=1のhdmi_mode=5(720p)の、さらにdisable_overscan=1にした。
- disable_overscan=1で周囲に黒い部分があったのが消えて完璧。
- でも縦横比は16:9なので4:3だと縦長になっちゃう。
- マトモなhdmiモニタに繋ぐときはこの設定をコメントアウトする。コメントアウトしない場合:
pi@raspberrypi:~ $ /opt/vc/bin/tvservice -m CEA Group CEA has 12 modes: mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive (prefer) mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive (native) mode 5: 1920x1080 @ 60Hz 16:9, clock:74MHz interlaced mode 6: 720x480 @ 60Hz 4:3, clock:27MHz x2 interlaced mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive mode 20: 1920x1080 @ 50Hz 16:9, clock:74MHz interlaced mode 22: 720x576 @ 50Hz 16:9, clock:27MHz x2 interlaced mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive (failed reverse-i-search)`tvserviceC': /opt/vc/bin/^Cservice -m pi@raspberrypi:~ $ /opt/vc/bin/tvservice -m DMT Group DMT has 17 modes: mode 4: 640x480 @ 60Hz 4:3, clock:25MHz progressive mode 5: 640x480 @ 72Hz 4:3, clock:31MHz progressive mode 6: 640x480 @ 75Hz 4:3, clock:31MHz progressive mode 9: 800x600 @ 60Hz 4:3, clock:40MHz progressive mode 10: 800x600 @ 72Hz 4:3, clock:50MHz progressive mode 11: 800x600 @ 75Hz 4:3, clock:49MHz progressive mode 16: 1024x768 @ 60Hz 4:3, clock:65MHz progressive mode 17: 1024x768 @ 70Hz 4:3, clock:75MHz progressive mode 18: 1024x768 @ 75Hz 4:3, clock:78MHz progressive mode 21: 1152x864 @ 75Hz 4:3, clock:108MHz progressive mode 35: 1280x1024 @ 60Hz 5:4, clock:108MHz progressive mode 36: 1280x1024 @ 75Hz 5:4, clock:135MHz progressive mode 47: 1440x900 @ 60Hz 16:10, clock:106MHz progressive mode 48: 1440x900 @ 75Hz 16:10, clock:136MHz progressive mode 51: 1600x1200 @ 60Hz 4:3, clock:162MHz progressive mode 58: 1680x1050 @ 60Hz 16:10, clock:146MHz progressive mode 68: 1920x1200 @ 60Hz 16:10, clock:154MHz progressive pi@raspberrypi:~ $ /opt/vc/bin/tvservice -s state 0x12000a [HDMI CEA (4) RGB lim 16:9], 1280x720 @ 60.00Hz, progressive pi@raspberrypi:~ $
コメントアウトすると:
@raspberrypi:~ $ /opt/vc/bin/tvservice -m CEA Group CEA has 12 modes: mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive (native) mode 5: 1920x1080 @ 60Hz 16:9, clock:74MHz interlaced mode 6: 720x480 @ 60Hz 4:3, clock:27MHz x2 interlaced mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive mode 20: 1920x1080 @ 50Hz 16:9, clock:74MHz interlaced mode 22: 720x576 @ 50Hz 16:9, clock:27MHz x2 interlaced mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive pi@raspberrypi:~ $ /opt/vc/bin/tvservice -m DMT Group DMT has 17 modes: mode 4: 640x480 @ 60Hz 4:3, clock:25MHz progressive mode 5: 640x480 @ 72Hz 4:3, clock:31MHz progressive mode 6: 640x480 @ 75Hz 4:3, clock:31MHz progressive mode 9: 800x600 @ 60Hz 4:3, clock:40MHz progressive mode 10: 800x600 @ 72Hz 4:3, clock:50MHz progressive mode 11: 800x600 @ 75Hz 4:3, clock:49MHz progressive mode 16: 1024x768 @ 60Hz 4:3, clock:65MHz progressive mode 17: 1024x768 @ 70Hz 4:3, clock:75MHz progressive mode 18: 1024x768 @ 75Hz 4:3, clock:78MHz progressive mode 21: 1152x864 @ 75Hz 4:3, clock:108MHz progressive mode 35: 1280x1024 @ 60Hz 5:4, clock:108MHz progressive mode 36: 1280x1024 @ 75Hz 5:4, clock:135MHz progressive mode 47: 1440x900 @ 60Hz 16:10, clock:106MHz progressive mode 48: 1440x900 @ 75Hz 16:10, clock:136MHz progressive mode 51: 1600x1200 @ 60Hz 4:3, clock:162MHz progressive mode 58: 1680x1050 @ 60Hz 16:10, clock:146MHz progressive (prefer) mode 68: 1920x1200 @ 60Hz 16:10, clock:154MHz progressive pi@raspberrypi:~ $ /opt/vc/bin/tvservice -s state 0x120006 [DVI DMT (68) RGB full 16:10], 1920x1200 @ 60.00Hz, progressive pi@raspberrypi:~ $
ちゃんと認識して(tvservice -mの出力結果は変わらず)、ちゃんと自動設定してくれる(tvservice -sの結果は変わる)。普通に使ってると当たり前のことが、とても素晴らしい。