ChinoDuino(Chino × Arduino)

自発性のないプログラマーがArduinoと出会って悪戦苦闘する様を綴っていく⇒今はいろいろ(^^;

Raspberry Pi設定メモ

自分のRaspberry Piにした設定等を残しておくメモ(随時更新)

環境

MacでRasbianインストール

qiita.com

Raspbianインストール後にssh接続

  • キーボード、ディスプレイがない場合は、SDカードをPCに接続し、「/boot」配下に「ssh」を配置
  • SDカードをRaspberry Piにいれ、起動
  • LANケーブルを接続して以下で接続
$ ssh pi@raspberrypi.local
  • 公開鍵認証を設定
    • ホスト名はデフォルトの「raspberrypi」
# 自PC
$ ssh-keygen -t rsa
$ 
$ scp ~/.ssh/id_rsa.pub pi@raspberrypi.local:/home/pi
$ vi ~/.ssh/config

# 以下を追加
Host raspberrypi
  HostName raspberrypi.local
  user pi
  IdentityFile ~/.ssh/id_rsa


# Raspberry PI
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys


# 自PCからログイン!
$ ssh raspberrypi

GrovePiをインストール

# gitをインストール
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install git
$ cd

# clone
$ git clone https://github.com/DexterInd/GrovePi.git

# install
$ cd GrovePi/Script
$ sudo curl -kL dexterindustries.com/update_grovepi | bash

$ sudo shutdown -r now


$  sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- 04 -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
$
# Firmwareアップデート
$ cd GrovePi/Firmware
$ sudo ./firmware_update.sh

wifi

sudo sh -c 'wpa_passphrase SSID PASS >> /etc/wpa_supplicant/wpa_supplicant.conf'

固定IPアドレス設定

$ sudo vi /etc/dhcpcd.conf

# 以下を追加し保存

interface eth0
static ip_address=192.168.0.10/24
# static routers=192.168.0.1
# static domain_name_servers=8.8.8.8

https://qiita.com/MarieKawasuji/items/b088ffb252a92eee8f5d

network のIFはこちらを変更

$ sudo vi /etc/network/interfaces

NTPサーバの変更

$ cd /etc/systemd/
$ pwd
/etc/systemd
$ ls -la
total 44
drwxr-xr-x  5 root root 4096 Sep  7 14:47 .
drwxr-xr-x 83 root root 4096 Sep  7 16:38 ..
-rw-r--r--  1 root root 1014 Jul  5 20:31 journald.conf
-rw-r--r--  1 root root 1022 Jul  5 20:31 logind.conf
drwxr-xr-x  2 root root 4096 Sep  7 14:59 network
-rw-r--r--  1 root root  642 Jul  5 20:31 resolved.conf
drwxr-xr-x 16 root root 4096 Sep  7 15:13 system
-rw-r--r--  1 root root 1601 Jul  5 20:31 system.conf
-rw-r--r--  1 root root  607 Jul  5 20:31 timesyncd.conf
drwxr-xr-x  2 root root 4096 Jul  5 20:31 user
-rw-r--r--  1 root root 1130 Jul  5 20:31 user.conf
$ sudo vi timesyncd.conf 

【timesyncd.conf】
・「NTP」「FallbackNTP」をアンコメントし、以下の内容とする
[Time]
NTP=ntp.nict.jp
FallbackNTP=0.jp.pool.ntp.org 1.jp.pool.ntp.org 2.jp.pool.ntp.org 3.jp.pool.ntp.org

timezon

$ timedatectl status
      Local time: Thu 2017-09-07 16:55:40 UTC
  Universal time: Thu 2017-09-07 16:55:40 UTC
        RTC time: n/a
       Time zone: Etc/UTC (UTC, +0000)
 Network time on: yes
NTP synchronized: no
 RTC in local TZ: no

# Network time on が「no」の場合は同期を有効にする
$ timedatectl set-ntp true

# timezone の変更
$ timedatectl list-timezones | grep Asia/Tokyo
Asia/Tokyo
$ sudo timedatectl set-timezone Asia/Tokyo
$ timedatectl status
      Local time: Fri 2017-09-08 01:59:33 JST
  Universal time: Thu 2017-09-07 16:59:33 UTC
        RTC time: n/a
       Time zone: Asia/Tokyo (JST, +0900)
 Network time on: yes
NTP synchronized: no
 RTC in local TZ: no

RAM領域を作成

# 現状(変更前)を確認
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        30G  8.9G   20G  32% /
devtmpfs        426M     0  426M   0% /dev
tmpfs           430M     0  430M   0% /dev/shm
tmpfs           430M  6.0M  425M   2% /run
tmpfs           5.0M  8.0K  5.0M   1% /run/lock
tmpfs           430M     0  430M   0% /sys/fs/cgroup
/dev/mmcblk0p1   63M   22M   42M  35% /boot
tmpfs            86M     0   86M   0% /run/user/1000
$ 
# fstabを変更
$ sudo vi /etc/fstab

# 以下4行を追加し保存
#### ramdisk
tmpfs           /tmp            tmpfs   defaults,size=32m 0       0
tmpfs           /var/tmp        tmpfs   defaults,size=16m 0       0
tmpfs           /var/log        tmpfs   defaults,size=32m 0       0

# 設定を反映のため再起動
$ sudo shutdown -r now

# 「/var/log」「/var/tmp」「/tmp」が「tmpfs」になっていることを確認
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        30G  8.9G   20G  32% /
devtmpfs        426M     0  426M   0% /dev
tmpfs           430M     0  430M   0% /dev/shm
tmpfs           430M  6.0M  425M   2% /run
tmpfs           5.0M  8.0K  5.0M   1% /run/lock
tmpfs           430M     0  430M   0% /sys/fs/cgroup
tmpfs            32M  196K   32M   1% /var/log
tmpfs            16M     0   16M   0% /var/tmp
tmpfs            32M  8.0K   32M   1% /tmp
/dev/mmcblk0p1   63M   22M   42M  35% /boot
tmpfs            86M     0   86M   0% /run/user/1000
$

ログ関連

Raspberry Pi(Raspbian)にやっといたほうがいい設定(マイクロSDカードの延命:swapやlog)

cron

# 1分ごとに実行
$ crontab -e

# 以下を追加し保存
*/1 * * * * python3 /home/pi/test.py

SQLAlchemyのインストール

SQLAlchemy - The Database Toolkit for Python

pipでインストールするとエラーとなってしまいできなかったので、ディストリビューションを使用してインストールしたときのメモ

# Pythonの仮想環境へインストールする場合はactivateしておく

$ cd /usr/local/src
# ファイルをダウンロード
$ sudo curl -L -O https://files.pythonhosted.org/packages/da/ef/f10a6892f8ff3c1fec1c25699a7379d1f72f291c8fa40b71c31cab3f779e/SQLAlchemy-1.2.6.tar.gz
$ 
$ sudo tar zxvf SQLAlchemy-1.2.6.tar.gz 
$ cd SQLAlchemy-1.2.6/
# インストール
$ python setup.py install
# 確認
$ pip freeze | grep SQLAlchemy
SQLAlchemy==1.2.6
$ 

SORACOM Airの設定

wvdial

https://dev.soracom.io/jp/start/device_setting/#raspi_usbdev.soracom.io

pppd

qiita.com

もしAK-020以外のUSBも挿して認識されない場合

AK-020 と他の USB デバイスを Raspberry Pi に取り付けると、AK-020 が認識されない

systemd

# serviceファイル
$ /etc/systemd/system/xxx.service

# 起動
$ sudo systemctl start xxx

# 状態確認
$ sudo systemctl status xxx

# 自動起動設定
$ sudo systemctl enable xxx

journalctl コマンドの使い方