ラズパイ4のボード単品のみ買ってしまってから起動させるまで

# はじめに
ラズパイを勢いで買ったら、ボード単品で買ってしまっていました。
しかし、自分でマイコンの類を買うのは初めてで、当然ケーブルも何もない、動かない！
事前に調べてから買おうねというだけの話ですが、せっかくなので
そこから起動するまでに色々揃えた手順や知識をまとめました。

#### 環境
全てMacで行ってます。ターミナルでコマンド打ったりするときはiTerm2を使用。
買ったボードはこれです↓
ラズベリーパイ4 コンピューターモデルB 4GB Raspberry Pi 4 Computer Model B
https://www.amazon.co.jp/gp/product/B07WR5W2D6/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1

# ボードを起動させるために必要なこと
まずボード単体で動かすのは無理なので、ハードを揃えることが１つ目。
次に、OSをネットから取得してラズパイが読めるように準備するのが２つ目。
この２つだけです。超簡単！（~~めちゃくちゃ失敗した~~）

## １.最低限のハードを揃える(買う)
ラズパイのボードは一般的なPCでのマザーボード＋CPU＋メモリといった感じなので、
足りないのは**電源**、**入力装置**、**出力装置**、**ストレージ**です。
USBが使えるので、入力装置は普通のUSBキーボードでOKでした（準備不要）。
電源はほぼ専用のものが必要で、出力装置は普通のディスプレイでいいですが、
ケーブルがややニッチなものが必要。ストレージはmicroSDカード。
ここら辺の装備品がないので買って揃えます。

- **電源ケーブル**
  - 必ず5V3Aのものを選ぶ　スイッチが付いているものにする
  - 使用するラズパイの種類によって端子が違うので注意！　raspi4だとなんとtypeC(間違えかけた)
  - 自分が買ったもの:[これ](https://www.amazon.co.jp/gp/product/B07DN5V3VN/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)
- **microSDカード**
  - 以下のリンクで誰かが動作できているものを選ぶのが大事っぽい
  - https://elinux.org/RPi_SD_cards
  - 自分が買ったもの:[これ](https://www.amazon.co.jp/gp/product/B06XSV23T1/ref=ppx_od_dt_b_asin_title_s00?ie=UTF8&psc=1)
- **出力ケーブル（映像）**
  - HDMIのmicroコネクタを通常のHDMIに変換するケーブル
  - HDMIケーブルはどのラズパイにもありますが、種類によって端子が違ったので要確認（間違えた）
  - 出力はsshやシリアルコンソールでも可能なはずで、最初はそれでいいと思ってましたが、起動できない時に原因が分かりにくくなるので結局映像出すのが一番いいと思いました

## 2.OSを準備する
装備品が整ったら、ソフト側の準備としてOSを買ったmicroSDカードに入れます。

余談として公式が出している[NOOBS](https://www.raspberrypi.org/downloads/noobs/)というツールソフトもありましたが、
個人的な事情＋参照にしたサイトではあまり推奨されてなかったので手動でやります。
(~~noobってネトゲで煽る時に使われるスラングなので、最初公式と思わなかった~~)

手動でやる場合、
OSをネットからダウンロード → ddコマンドでSDカードに焼く　という手順。

#### 手順詳細
1. 下記からRaspberry Pi OS を入手（zipダウンロード）
   - https://www.raspberrypi.org/downloads/raspberry-pi-os/
   - ダウンロードしたら`shasum -a 256 [ファイル名]`を実行し、ダウンロードしたサイトのものと同じかチェック
1. zipを[The Unarchiver](http://wakaba.c3.cx/s/apps/unarchiver.html)で解凍
   - **注意：サイズが大きすぎるため、Mac標準のアーカイブソフトやunzipコマンドでは解凍できない**
   - 上手くできれば8GBくらいの.imgファイルが出てくる
1. SDカードのデバイスファイル名を調べる
   - SDカードを差し込む前後で`diskutil list`実行してそれらしきものを見つける
1. SDカードのフォーマット
   - **注意：これ以降の手順は間違えると最悪使用しているPCが壊れます。あとSDカードに何かデータがあった場合全て消えます。参考にする場合自己責任でお願いします**
   - MacのディスクユーティリティでSDカードを選択し「消去」を押す。フォーマットを選択できるのでFATMS-DOS(FAT)を選択
1. SDカードにOSイメージ書き込み
   - まずはアンマウントする。Macのディスクユーティリティを開き、SDカードを選択して「マウント解除」を押すとデバイスファイルは存在するままアンマウントできる
   - 下記のddコマンドを実行する 大体15-20分くらいかかる
   - 注意：Macだとddでの書き込みが遅いので、デバイスファイルのdiskの前にrを付けると早くなる　理屈は[参照リンク](https://takuya-1st.hatenablog.jp/entry/2020/01/14/005622)を見てください
   - 注意：of指定先のデバイスファイルがパーティションになっているとうまくいかない（/dev/rdisk2s1など）
   - 上手くいった場合、再度Mac側にマウントされる。Finderで中身が見れたら多分OK

~~~
sudo dd bs=1m if=[zipから取り出したimgファイルへのパス] of=[デバイスファイル]
//例：sudo dd bs=1m if=Downloads/2020-05-27-raspios-buster-full-armhf.img of=/dev/rdisk2
~~~

# 起動する
買ったケーブル類をつけて、OSを焼いたSDカードを差し込んだら電源を入れる。
全てうまくいっていればHDMI接続先にOSの画面が出てくる。
うまくいかない場合、まずは参照リンクにも貼った[ここを見る](https://chirashi.twittospia.com/技術/起動しないraspberry-piの6つの原因（およびそれらの修正/2020-02-05/)。

自分は最初緑ランプが4回点滅しており、SDカードが上手く作れていないと分かりました。
（ddコマンドでof指定先がパーミッションになっていて、フォーマットが壊れていた）
ある程度原因を絞ったらその辺りの手順を見返すと原因が分かるかも。

# おわりに
組み込み系の仕事をやっているのにも関わらず色々失敗して丸一日くらいかかりました...
動かしたいだけなら、ボード単品で買ったりSDを手動で作るのは時間の無駄です（笑）

それから起動はできましたが、シリアルコンソール接続をしようとしたら
全然できておらずまだ奮闘してます...また上手く出来たら続きを書きたいと思います。
（最初はそこまで記事にするつもりだった）

トラブルシューティングするのにも記事を書くのにも役に立つので、手順や参考にしたリンクをまとめながら作業すると効率よさそう

# 参照
https://qiita.com/bluejenga/items/e662939d2d92c29d8893
https://ledsun.hatenablog.com/entry/2014/10/26/174712
https://takuya-1st.hatenablog.jp/entry/2020/01/14/005622
https://chirashi.twittospia.com/技術/起動しないraspberry-piの6つの原因（およびそれらの修正/2020-02-05/