devの忘備録

ソフト関連、raspberry piの忘備録

Macでraspberry piのOSをインストールする(ディスプレイなし) 2018年版

以前、raspberry piのOSのインストールの方法を書きましたが、情報が古くなったので、
2018年に実施した方法を書きます。

環境
Mac:macOS High Sierra ver10.13.6
Raspbian: Raspbian Stretch

1. Raspbianのダウンロード

raspberry piのホームページから、OSをダウンロードします。

www.raspberrypi.org

2. SDカードのフォーマット

ディスクユーティリティを起動し、SDカードを選択し、「消去」-「消去...」をクリックします。
フォーマットはMS-DOS(FAT)を指定します。

f:id:yu0123ji:20180825183816p:plain

3. SDカードに書き込み

3-1. SDカードをアンマウント

「diskutil list」でSDカードを探します。今回の場合は、disk3がSDカードです。
「diskutil unmountDisk /dev/disk3」として、SDカードをアンマウントします。
「Unmount of all volumes on disk3 was successful」と表示されれば成功です。

/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *31.7 GB    disk3
   1:                 DOS_FAT_32                         31.7 GB    disk3s1

3-2. SDカードを書き込む

「sudo dd of=/dev/disk3 if=ダウンロードしたrasbraspbian.img bs=1m」として、かきこみます。書き込み終了するまでしばらく待ちます。以下のように結果が表示されたら完了です。

4600+0 records in
4600+0 records out
4823449600 bytes transferred in 5002.116347 secs (964282 bytes/sec)

3-3.ssh有効化

Raspbian 2016-11-25のリリースから、sshがデフォルトで無効化されています。
/boot/ ディレクトリに sshというからファイルを置くことでsshを起動時に有効化されています。

Raspbian 2016-11-25リリース | Japanese Raspberry Pi Users Group
A security update for Raspbian PIXEL - Raspberry Pi

4.Macからraspberry piに接続し、各種設定

idはpi、passwordはraspberryでsshで接続します。

ssh pi@xxx.xxx.xxx.xxx
pi@xxx.xxx.xxx.xxx's password: raspberry

4-1. raspi-config

raspi-configで各種設定していきます。

pi@raspberrypi:~ $ sudo raspi-config

f:id:yu0123ji:20180826095320p:plain

「Advanced Option」-「Expand Filesystem」
今回、容量の拡張は不要のようです。初回の「Expand Filesystem」は不要です。

「Change User Password」
パスワードの変更ができます。


これで一通りの設定は完了です。

Raspberry Piの起動時にLINE NotifyでIPアドレスを通知する

Raspberry Pi3をIPアドレスをLineNotifyで通知しました。
Line Notifyとは、Webサービスやアプリから連携し、Lineへ通知するサービスです。
環境はRaspbian Jessie 8.0です。

1.Lineからパーソナルアクセストークンの取得

自分のLineへ通知する場合は、トークンを利用する必要があります。

以下のサイトからマイページにログインします。
notify-bot.line.me

トークンを発行する」をクリックします。
f:id:yu0123ji:20170528154701p:plain

トークン名を記述し、トークルームの選択で、
「1:1でLINE Notifyから通知を受け取る」を選択し、
「発行する」をクリック
f:id:yu0123ji:20170528160801p:plain

トークンが表示されます。
赤くモザイクになっている部分にトークンが書かれています。
このトークンを指定することで、LineNotifyに通知することが出来ます。
f:id:yu0123ji:20170528160807p:plain

2.IPを取得し、Line Notifyで通知

以下のように、message=以降に通知したい内容を入れれば、Lineに通知されます。
xxxxを取得したトークンに置き換えてください。

curl https://notify-api.line.me/api/notify -X POST -H "Authorization: Bearer xxxx" -F "message=test"
{"status":200,"message":"ok"}

以下のリンクに、APIの使い方が書かれています。
画像やスタンプも通知できるようです。
https://notify-bot.line.me/doc/ja/notify-bot.line.me

3.Raspberry Pi起動時に自動通知するように設定

Systemdで実行してもIPアドレスが取れなかったので、
rc.localを有効にしてIPアドレスを取得するようにしました。
rc.localよりもSystemdのほうが早く起動しているようですので、
そのため、IPアドレスが取れなかったのかもしれません。
Systemdでもタイミングを調整できれば、取得できるのかもしれませんが、
この辺は勉強不足です。

3.1 rc.local有効化

sudo raspi-config

Boot Optionsを選択、
f:id:yu0123ji:20170528223654p:plain

Wait for Network at Bootを選択すると、rc.localが有効になります。

3.2 起動時にIPアドレスを通知

rc.localを編集し、IPアドレスを通知するようにします。

sudo vi /etc/rc.local

以下のように編集しました。

_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  curl https://notify-api.line.me/api/notify -X POST -H "Authorization: Bearer xxxx" -F "message="$_IP
fi
exit 0

rebootすると、起動時にIPアドレスを通知するようになります。

ネットブックで error: no such device grub rescue が発生

ネットブックを復活するために、USBにlubuntuを入れ、
ネットブックで起動できるようにしました。
後日、XPを起動させようとしたところ以下のような状態になり、
XPが起動しませんでした。

error: no such device: xxxxx
Entering rescue mode...
grub rescue>

grubとは、linuxブートローダーのことです。
どうも、lubuntuをアップデートした時に、
windows用のブートローダーであるMBRを書き換えてしまったことが
原因のようです。
MBRを修復することで、再びXPが起動できるようになりました。

以下の方法はXPでの方法です。
windwos7では、出来ないので注意して下さい。

1.mbrをインストール

$ sudo apt-get update
$ sudo apt-get install mbr

2.MBRを修復する。
XPが入っているHDDを指定します。
私のPCはsdaでした。

$ sudo install-mbr /dev/sda

これで、XPが起動するようになります。
ただし、起動時にMBRと表示されるようになりました。

USBにlubuntuをインストール

家に眠っていたネットブックを復活させるために、
USBにlubuntuをインストールしました。
lubuntuは、ubuntuの軽量版です。

必要なもの

USBメモリー2本
※インストールに使うUSBとデータを永続化してインストールするためのUSB
ネットブック(Eee PC 900HA)
Mac

1.インストール用のUSBを作成

1-1. Unetbootinをダウンロード

Unetbootinは、LinuxのライブCDのイメージをUSBにインストールすることが出来ます。
ダウンロードページから、Unetbootinを入手します。
使用しているOSを選んでダウンロードします。
f:id:yu0123ji:20160224064452p:plain

1-2. Unetbootinの使い方

f:id:yu0123ji:20160301044240p:plain
ダウンロードしたイメージと、インストールするUSBを選択します。
今回、lubuntu15.10を使用しました。
USBは必ず、フォーマットしたものを選択して下さい。
OKを押すとインストールが開始します。
※USBの容量が関係するのかわかりませんが、16GBのUSBメモリは、PCで起動しませんでした。

f:id:yu0123ji:20160226002548p:plain
これでインストールは完了です。

2.lubuntuインストール

2-1. lubuntuをインストールしないで起動

ネットブックを起動させ、XPが立ち上がる前に、「esc」キーを押します。
USBメモリかHDDのどちらで起動するか選択できるので、USBメモリを選択します。
f:id:yu0123ji:20160301054942j:plain

2-2. lubuntuをUSBにインストール

日本語を選択します。
※lubuntu15.04では、何故か日本語が文字化けしていました。
f:id:yu0123ji:20160302002135p:plain

インストール中にアップデートをダウンロードするを選択します。
f:id:yu0123ji:20160302002459p:plain

インストール先のUSBメモリをアンマウントします。
f:id:yu0123ji:20160302002708p:plain

USBメモリパーティションを設定するので、
インストールの種類はそれ以外に設定します。
f:id:yu0123ji:20160302002907p:plain

インストール先のパーティションをex4にし、
マウントポイントをルート(/)にします。
今回、usbメモリは、/dev/sdcでした。
インストール先は間違わないように注意して下さい。
f:id:yu0123ji:20160302003219p:plain

スワップ領域を設定します。
「続ける」を選択します
※本来は、下の方に「続ける」のボタンがあるのですが、
見きれており、カーソルで押せなかったので、タブキーを7回押して、「続ける」を押しました。
f:id:yu0123ji:20160302003504p:plain

「はい」を選択し、インストールを開始します。
f:id:yu0123ji:20160302003841p:plain

あとは、指示に従って進めば、インストールの完了です。

Anacondaで仮想環境構築

Anacondaで仮想環境構築

Anacondaでは、GUIから簡単に複数の仮想環境を構築することが出来ます。
複数仮想環境を作る理由は、新しいライブラリを試すときに、
メインの開発環境を汚したくない時などにお試しとして、
別環境にインストールできることです。

1.Anacondaのメイン画面のEnviromentから「New Environment」を選択します。
f:id:yu0123ji:20151108162612p:plain

2.名前を入力し、「Submit」を選択します。
これで作成完了です。
f:id:yu0123ji:20151108162707p:plain

3.作成した環境がついかされ、選択もGUIから行うことが出来ます。
f:id:yu0123ji:20151108162841p:plain

Anacondaのアップデートとパッケージのインストール

Anacondaのアップデート方法やパッケージのインストール方法を書きます。
pythonの勉強のために、Anacondaを使っています。
思ったよりもAnacondaが便利だったので、そのまま使っています。

本当はインストール方法を書くべきですが、他のサイトをご覧ください。

condaのコマンドは、こちらをご覧下さい。
http://conda.pydata.org/docs/commands.html/

Anacondaアップデート

ターミナルにて、以下のコマンドを実行する。

$ conda updata conda

実行すると、以下のように表示され、実行するか聞かれるので、[y]と入力。

Fetching package metadata: ....
Solving package specifications: .
Package plan for installation in environment //anaconda:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    openssl-1.0.2d             |                0         3.0 MB
    conda-env-2.4.4            |           py27_0          24 KB
    python-2.7.10              |                2         9.9 MB
    requests-2.8.1             |           py27_0         603 KB
    setuptools-18.4            |           py27_0         342 KB
    wheel-0.26.0               |           py27_1          76 KB
    conda-3.18.3               |           py27_0         175 KB
    ------------------------------------------------------------
                                           Total:        14.0 MB

The following packages will be UPDATED:

    conda:      3.16.0-py27_0 --> 3.18.3-py27_0
    conda-env:  2.4.2-py27_0  --> 2.4.4-py27_0 
    openssl:    1.0.1k-1      --> 1.0.2d-0     
    python:     2.7.10-0      --> 2.7.10-2     
    requests:   2.7.0-py27_0  --> 2.8.1-py27_0 
    setuptools: 18.1-py27_0   --> 18.4-py27_0  
    wheel:      0.24.0-py27_0 --> 0.26.0-py27_1

Proceed ([y]/n)? 


進捗状況が出力され、すべて100%になったらアップデート完了です。

Fetching packages ...
openssl-1.0.2d 100% |################################| Time: 0:00:06 461.66 kB/s
conda-env-2.4. 100% |################################| Time: 0:00:00 129.59 kB/s
python-2.7.10- 100% |################################| Time: 0:00:21 477.68 kB/s
requests-2.8.1 100% |################################| Time: 0:00:01 464.79 kB/s
setuptools-18. 100% |################################| Time: 0:00:01 337.48 kB/s
wheel-0.26.0-p 100% |################################| Time: 0:00:00 143.66 kB/s
conda-3.18.3-p 100% |################################| Time: 0:00:00 208.60 kB/s
Extracting packages ...
[      COMPLETE      ]|###################################################| 100%
Unlinking packages ...
[      COMPLETE      ]|###################################################| 100%
Linking packages ...
[      COMPLETE      ]|###################################################| 100%
&

パッケージのインストール方法

Anacondaで管理しているパッケージは、「conda search package_name」で探すことができ、
パッケージが存在していれば、簡単にインストールすることが出来ます。

&conda search opencv
Fetching package metadata: ....
opencv                       2.4.8                np17py27_2  defaults        

インストールは「install package_name」で可能です。
ダウングレードが発生する場合は、知らせてくれます。
インストールを続行するときは、「y」を入力。
もしインストールする環境を指定する場合は、「install package_name -n environment_name」

&conda install opencv
Fetching package metadata: ....
Solving package specifications: ..............
Package plan for installation in environment //anaconda:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    numpy-1.7.1                |           py27_2         2.8 MB
    opencv-2.4.8               |       np17py27_2         8.0 MB
    ------------------------------------------------------------
                                           Total:        10.8 MB

The following NEW packages will be INSTALLED:

    opencv: 2.4.8-np17py27_2

The following packages will be DOWNGRADED:

    numpy:  1.9.2-py27_0 --> 1.7.1-py27_2    

Proceed ([y]/n)? n

アップデートと同様に、進捗状況が出力され、すべて100%になったらアップデート完了です。

Fetching packages ...
numpy-1.7.1-py 100% |################################| Time: 0:00:06 441.23 kB/s
opencv-2.4.8-n 100% |################################| Time: 0:00:14 566.45 kB/s
Extracting packages ...
[      COMPLETE      ]|###################################################| 100%
Linking packages ...
[      COMPLETE      ]|###################################################| 100%

raspberry piにsambaをインストール

sambaをインストールしました。

インストール

以下の2つをインストールします。

$ sudo apt-get install samba-common-bin
$ sudo apt-get install samba

設定

/etc/samba/smb.confを編集します。
smb.confに以下の記述を追加しました。

# クライアントPCに表示されるディレクトリ名
[shared]
# ディレクトリの説明欄に表示される
 comment = samba raspberry
# 実際に参照されるUnix上のディレクトリ
 path = /home/pi/work
# ファイルのアクセス権 No(書き込み可)
 read only = no
# ファイル作成時のパーミッション設定
 force create mode = 770
# ディレクトリ作成時のパーミッション設定
 force directory mode = 770
# ユーザの指定
 force user = pi

次に以下のコマンドでパスワードを設定します。
これをしないと接続できません。

sudo smbpasswd -a pi

次にサービスを再起動させます。

sudo service samba restart

Macから接続

Macから接続するときは、finderのサイドバーからはアクセスすることができません。
finder-「移動」-「サーバーに接続」を選択します。
以下のように、smb://[ip address]で接続を選択し、
パスワードを入力すれば接続できます。
f:id:yu0123ji:20150425001222p:plain