# Re:Zeroから始めるラズパイ
###### tags:`自主勉強`
初心者なので、間違ってるとこあればコメントを。
# 第1章 接続編
#### 参考にしたリンク
* [初期設定](https://www.pc-koubou.jp/magazine/30629)
* [ディスプレイなしで、試した所0](https://qiita.com/murs313/items/81757bf8bc74b6b76cdf)
* [ディスプレイなしで動かす1](https://qiita.com/ShinKano/items/26473179b546b73e3a32)
* [Cannot show the desktopの時これしたけどできなかった。](https://blog.ko31.com/202004/respond-to-cannot-currently-show-the-desktop-error-for-vnc-connection-in-lazzie/)
* [OSの種類について](https://www.mikan-tech.net/entry/raspi-os-editions)
## モニター、キーボード、HDMIケーブルがない!
サイトをいろいろ調べたが、最初にラズパイ触るなら、
モニター、HDMIケーブル、キーボード、マウスの使用が推奨されてるらしい!そーなの!?
ちなみに、
**microsdカードと、電源ケーブルは必須**
USBwifiドングルか、LANケーブルのどっちかがないと、ネットには繋がらない。
今の所有物はこんな感じ。斜線は持ってない
* ラズパイ2(組み立て済み)
* MacBookPro
* ~~モニター~~
* ~~キーボード~~
* ~~HDMIケーブル~~
* ACアダプタ
* microsdカード *ただし、容量が少なすぎる!
* LANケーブル or ~~USBwifiドングル~~
* マウス(持ってるのは無線。GUI実装できてないのでまだ試してない。)
**そこで今回は、VNCというものを使用して、うまく表示させる所まで挑戦する!**
## 初期設定
[以下のサイト](https://www.pc-koubou.jp/magazine/30629)を参考にする
microsdカードをMacに接続し、
OSをインストールしようとするのだが、サイトに書いてあるNOOBとかの選択肢が存在しない。
代わりに、イメージをダウンロードしろとある。


そこから写真一番上の、推奨されているOS with desktop and ~~ をインストールしようとするが、SDカードの容量が少なすぎてダメだと怒られる。
そのため、**Raspberry Pi OS Lite**というものを、今回インストールする。
各[OSの違いについてはここを参照にした。](https://www.mikan-tech.net/entry/raspi-os-editions)
### sshファイルを作成する
初期のOSには、sshファイルが作成されていないらしく、
macとの遠隔接続ができない。
そのため、macのターミナルで以下のコマンドを入力し、
sdカードの中にsshファイルを作成する。
`$ touch /Volumes/boot/ssh`
### Macbookの設定を変更する。
1. システム環境設定から、共有を選択
2. そこの、インターネット共有を選択
3. 今回macで繋いでいるwifiを、LANケーブルで間借りするので、USB~LANの所にチェックをつける

## ラズパイにアクセスし、画面を映そうとする
この状態で、`ssh pi@raspberrypi.local`
とターミナルに打ち込むと、パスワードを求められる。
初期設定は`raspberry`である。
すると、すぐにアクセスできた!

しかし、ここから先、[ここ](https://qiita.com/murs313/items/81757bf8bc74b6b76cdf)と同じようにVNCサーバーをインストールしようとしても、うまく行かなかった。
### IPアドレスの確認と、VNCサーバのインストール
[参考サイト](https://qiita.com/ShinKano/items/26473179b546b73e3a32)
IPアドレスは、
`ifconfig`にて確認を行なった。winなら、ipconfigらしい。
接続してる機械(bridge100とかbridge0とか)が出てくる。
ここで、
1. `brew install arp-scan`
2. `$ sudo arp-scan -l --interface bridge100`(bridge100かは、各自異なる)
3. していき、エラーなくIPアドレスが出ているところは、`Raspberry Pi Foundation`という文章が出てくる。そのIPアドレスを控えておく。
4. `ssh pi@IPアドレス`で、アクセスする!
そして、`$ sudo raspi-config`のコマンドを使うと、以下の画面が出てくる。

これの中の、
1. Interface Option
2. VNC
3. Yes
を選択すると、VNCサーバーをインストールする事ができた。
この時、`The VNC Server is enabled`と出てるなら、繋げられるはずである。
### VNCビュアーのインストール&接続
[ここから](https://www.realvnc.com/en/connect/download/viewer/)、ビュアーをインストールする。
そして、先ほど控えたIPアドレスをビュアーに打ち込むと、こんな画面が出てくる。

ここで、Usernameはデフォルトなら`pi`
Passwordは`raspberry`で入力すると、接続される。
しかし、真っ黒な画面で、デスクトップは表示されない。

今思えば当然だが、**LiteのOSをインストールしてるから、デスクトップなどは存在しない**
しかし、ここから無謀にも色々試すので、忘れないようにメモしておく。
#### VNCの画面サイズを変更しようとする
VNCで最初に表示されるサイズは小さすぎるため、
表示されないとの情報があった。[ソースはここなど](https://qiita.com/ShinKano/items/26473179b546b73e3a32)
ここで、最初に表示されるサイズの変更を行う。
1. 2:Display Optionsを選択
2. D1:Resolutionを選択
3. そこから、DMT Mode82 1920x1080とか、
4. 1280x720を選択する事で、よくなるらしい。
5. 再起動が求められたら再起動し、もう一度 sshで接続し直す。
#### boot/config.txtの編集
[ソースはここ。](https://55life555.blog.fc2.com/blog-entry-3217.html)
`sudo nano /boot/config.txt`
や、microsdをパソコンに入れてconfig.txtをいじる。
そして、以下の行を探す。
```
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
```
ここの`hdmi_force_hotplug=1`と、二行目の#を外す。
これは、hdmi接続してない状態でも、HDMIのモードを使用する
という表記らしい。
しかし、ここは元々#が外れており、意味はなかった。
#### ラズベリーパイをデスクトップモードで起動する
HDMI を繋がずに VNC 接続するには、ラズベリーパイをデスクトップモード
(サービスモード)で起動しておく必要があるそう。
[ソースはここ](https://blog.ko31.com/202004/respond-to-cannot-currently-show-the-desktop-error-for-vnc-connection-in-lazzie)
まず、ラズパイをsshで開いて、`$ sudo raspi-config`
を実行する。
ソースでは、「3 Boot Options」を選択とあるが、ここでは違う。
1. 1:SystemOptionを選択
2. S5:Boot / Autologinを選択
3. B3; Desktopを選択する。
これでいいはずなのだが、今回デスクトップがないので、
lightdmをインストールしろと言われる。

しかし、lightdmの部分がインストールしてると思うけど、
なぜかうまく実行できない。

`run apt-get update`も試してみたがうまくいかなかった。
## まとめと反省
気付くのにかなり時間がかかったが、デスクトップがないOSをインストールしているので、面倒な事をしてしまった。しかし、VNCを用意するにあたりの問題点などを確認できた。次に進むには、
1. microsdカードの容量が大きいのを用意し、デスクトップを持つOSを入れる
2. デスクトップがない状態で、CUIベースで進行していく
など考える必要がある。
とりあえず、自分のmacbookでラズパイに接続する事はできたので、次のステージに進む事はできるだろう。
# 第2章 microsdの再フォーマット
microsdカードの容量が少ないと思ってディスクユーティリティを見てみたら、こんな事になってた。

なので、ここを消して、再フォーマット化して、DesktopのあるOSを入れ直す。

## 新しくOSをインストール
フォーマットを消したら、新しくOSをインストールする余裕ができたので、
今度はデスクトップ持ちのやつをインストールする。
### モニター、キーボードを手に入れる
そして、モニター、キーボードを手に入れたので、刺してみるが、全く反応がない。
https://raspida.com/rpi-qa-select7
このサイト曰く、電源の順番に問題がある可能性と、config.txtを編集する必要があるらしい。
具体的には、
1. 先にケーブルとモニターを繋いでおく。電源も入れる
2. ラズパイの電源を入れる
もしくは,config.txtを変更する方法である。前回の繋がり方ができるかどうかを試してみる。
`# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1`
ここの部分の、hdmi_forceの#を外す。
`hdmi_force_hotplug=1`
すると、反応があった。

### SSHアクセスしようとしたが、できなかった。
以下の様な設定が出てきた。これは、ここのサイト曰く、複数のラズパイに対する接続や、
LAN環境の違いが原因でraspberrypi.localに対するホストキーの変更を検出しWARNINGが出ることがあるらしい。
なので、別途コマンドが必要
```
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for raspberrypi.local has changed,
and the key for the corresponding IP address fe80::9f73:e2d:64a:ebd%en3
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:KuKS67WKb3pTkOWR+D845cmVsnwzEb2WOnLPhc4qM1c.
Please contact your system administrator.
Add correct host key in /Users/x17007xx/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/x17007xx/.ssh/known_hosts:2
ECDSA host key for raspberrypi.local has changed and you have requested strict checking.
Host key verification failed.
```
このコマンドで、既に登録されていたキーを取り除く。
```
ssh-keygen -R raspberrypi.local
```
そして、もう一度、`ssh pi@raspberrypi.local`を使う。
すると、Yes,Noで聞かれるので、Yesを使う事でアクセスできる。
そこで、初期キーワードは`raspberry` である。