RaspberryPiチートシート


# ネットワーク上にあるRPiを見つける

Macの場合はoptionキーを押しながらメニューバーのWiFiのアイコンをクリックするとIPアドレスがわかるで。
自分のMacのIPアドレスが`192.168.1.222`だったら、nmapで指定するIPアドレスを`192.168.1.x`（xの部分はなんでもいいけど1にしてる）にする。

```sh
# ワークステーション上で実行する
nmap -p22 192.168.1.1/24
```

openなポートのみ表示するには

```sh
nmap -p22 192.168.1.1/24 --open
```

from: http://qiita.com/kazuph/items/05f4d047bb8025492f28

# sshログインできるようにする

`boot`パーティションに`ssh`という名前の空ファイルをつくる。

```shell-session
# MacでSDをマウントしてやる場合
$ touch /Volumes/boot/ssh
```

# パスワードなしでsshログインできるようにする

頻繁にscpするとなるといちいちパスワード入力するのが苦痛なので鍵認証をさせます。

まずMac側で、

```shell-session
$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
```

catの出力結果をコピーする。
次にRPi側で、

```shell-session
$ mkdir -p ~/.ssh   # ~/.ssh ディレクトリがなければ作成
$ cat <<EOF > ~/.ssh/authorized_keys   # ここでEnterを押して、コピーした内容をペースト
> ssh-rsa AAAAAAAAACCCCCEAAAADAQABAAABAQCgYiyf97MxlUnY9acHmYzpr1UgDh+zXxXSWi/Gd+5mzbaI1rhOgJACsXHpxZnsBwFmgoz3MBJN8rz1svLkGyqeZcIwleMncvpeFFPew6oxbq8XQxHoaJh4ocqRDgzgc8GBZ558OXGmM7mUBjJazsG7pUjqYV6Gz5WSDPxExXK5suv9SEcH4Rk1GFutPm54i6VW7BH8BepHoBBYyUjzD2A1/lpude0O7IHQI6/qFwTEKYYwtG8XVS3k9txpu1GPjInWkaRVnbIaUvi98b2BZ3e3ncOmKlXjCPtOBNkcAmzPeGxnrgs6xvzfhBvTSAXOTqhWdjM1cNnF7IWCk6sSlmnX miminashi@miminashi-no-MacBook-Pro-2016.local
> EOF
$ chmod 600 ~/.ssh/authorized_keys
```


# ホスト名でアクセスできるようにする

zeroconfigを使う。
Raspbianではデフォルトで有効化されている。

sshログインするなら、

```shell-session
$ ssh pi@raspberrypi.local
```

でアクセスできる。

ホスト名を変更したいときは、`/etc/hostname`と`/etc/hosts`を両方編集する必要がある。（ここで片方スペルミスするとハマる）
`raspi-config`からホスト名を変更すれば両方自動的に編集してくれる。


# ホスト名を変更する

ホスト名を変更するには`raspi-config`を使うのが良い。
`/etc/hostname`と`/etc/hosts`を両方変更してくれる。

```shell-session
$ sudo raspi-config
# 2 Network Options を選択する
# ⬇
# N1 Hostname を選択する
```

あるいは、ノンインタラクティブモードでやる場合は、ホスト名を`newhostname`とすると、

```shell-session
$ sudo raspi-config nonint do_hostname newhostname
```

なお、手動で`/etc/hostname`だけ書き換えて`/etc/hosts`を書き換えていないと、以降`raspi-config`を実行しても`/etc/hosts`が[自動的に書き換わらなくなる模様](https://github.com/RPi-Distro/raspi-config/blob/master/raspi-config#L494)。

# visudoなどで起動されるエディタをvimに変更する

`update-alternatives`を使います。

```shell-session
$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode
```

# SDカードの容量いっぱいまでファイルシステムの容量を増やす

`raspi-config` を使え

```sh
raspi-config
```

from: http://qiita.com/inokappa/items/0c9590b10b46cc8b2857

# CPUの温度を取得する

```shell-session
$ vcgencmd measure_temp
temp=50.5'C
```

参考: http://qiita.com/kouhe1/items/5f3f0e6fdb55e7164deb

# CPUをクロックダウンする

あついのでさます。

```shell-session
sudo vim /boot/config.txt
```

以下の箇所を、

```
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
```

以下のように書き換える。

```
#uncomment to overclock the arm. 700 MHz is the default.
arm_freq=200
```


参考: https://dbpro.xyz/1400


# SDカードイメージをマウントする

SDに焼く前に中身をいじりたいときとか。
ループバックデバイス経由でマウントする。

```shell-session
$ sudo losetup -P -f --show sdcard.img
$ sudo mount /dev/loop0p1 /mnt
```

用事が済んだら、

```shell-session
$ sudo umount /dev/loop0p1
$ sudo losetup -d /dev/loop0
```

https://unix.stackexchange.com/questions/342463/how-to-mount-multiple-partitions-from-disk-image-simultaneously/447977#447977


# コンソールのフォントを変更する

`/etc/default/console-setup`を編集してターミナルを再起動すると、フォントフェイスとフォントサイズを変更できる。


```
FONTFACE="Terminus"
FONTSIZE="16x32"
```

ターミナルの再起動:

```sh
sudo /etc/init.d/console-setup restart
```

参考: https://www.raspberrypi-spy.co.uk/2014/04/how-to-change-the-command-line-font-size/


# キーボードレイアウトを変更する

```sh
sudo dpkg-reconfigure keyboard-configuration
```

# UART（シリアル）を使えるようにする

`raspi-config`の`Interfacing Option`から。


# カメラで静止画を撮影する

`raspi-config`の`Interfacing Option`からカメラを有効化したのち、

```sh
raspistill -o photo.jpg
```

# LXDEのスタート時にアプリケーションを自動起動させる

`.config/lxsession/LXDE-pi/autostart`に起動したいアプリケーションの実行コマンドを書く。

```
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@/home/pi/start-chromium.sh
```

from: https://www.raspberrypi.org/forums/viewtopic.php?t=249620


# 一定時間操作がなくてもスクリーンをブランク（真っ黒）にさせない

```sh
sudo > /etc/lightdm/lightdm.conf <<EOF
[SeatDefaults]
xserver-command=X -s 0 -dpms
EOF
```

- https://lunaticsol.wordpress.com/2018/01/09/raspberry-pi-%E3%81%AE%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E7%94%BB%E9%9D%A2%E3%82%92%E7%84%A1%E6%93%8D%E4%BD%9C%E7%8A%B6%E6%85%8B%E3%81%A7%E3%82%82%E3%83%96%E3%83%A9%E3%83%B3/
- http://www.geeks3d.com/hacklab/20160108/how-to-disable-the-blank-screen-on-raspberry-pi-raspbian/


# RAMの容量や製造元を見分けたい

↓こちらのページを参照
https://support.pishop.us/article/69-which-pi-do-i-have-includes-pi-4


# 固定IPアドレスを設定する

`eht0` に

- IPアドレス: `192.168.0.2`
- ネットマスク: `255.255.255.0` (`/24`)
- デフォルトゲートウェイ: `192.168.0.1`
- DNSキャッシュサーバ: `192.168.0.1`

に設定するには、`/etc/dhcpcd.conf`に以下の設定を追加する

```/etc/dhcpcd.conf
interface eth0
static ip_address=192.168.0.2/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
```

from: https://www.raspberrypi.org/documentation/configuration/tcpip/