Linux
RaspberryPi

Raspberry PI3 で遊ぶ

経緯

会社で希望者にRaspberry PI3を配ったので(自分も希望した)遊ぶことになった。
買ったのは
- Raspberry PI3
- RSで売ってるアダプター
- ケース
- SDカード東芝 Toshiba microSDXCカード 128GB 型番不明

Ubuntu のインストール

https://ubuntu-mate.org/raspberry-pi/
後で見つけたけどここにだいたい載っている

インストール方法

NOOBS

NOOBS というOSのインストールマネージャーがあり、FAT でフォーマットしたSDカードにファイルを配置すれば起動する
eFAT だと起動しないので注意
またインストールマネージャの実行にUSB 接続のキーボードとマウスが必要

Raspbian

よく調べてないけど公式のDebian

Ubuntu MATE

古いUbuntu(と思っていた)

Snappy Ubuntu Core

新しいUbuntu(と思っていた)

Windows 10 IOT Core

なにそれ無料なの?旧Windows CE? 気にはなるけど金を貰わずに触りたくないのでパス

Snappy Ubuntu Core のインストール

ちなみにクライアントはmacOs Sierra 10.12.5

https://developer.ubuntu.com/core/get-started/raspberry-pi-2-3
ここのUbuntu Core image から Raspberry PI3用のイメージをDL

基本的にはこの手順書通り
https://developer.ubuntu.com/core/get-started/installation-medias#on-mac-os

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

/dev/disk1 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *128.0 GB   disk1
   1:                  Apple_HFS                         1.6 GB     disk1s1
   2:                      Linux                         33.6 MB    disk1s5

/dev/disk2 (disk image):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        +500.0 GB   disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS Time Machineバッ...     499.7 GB   disk2s2

$ diskutil umountDisk /dev/disk1
## ディスク間違えるとMac ぶっ壊れるので注意
## Ubuntu のドキュメントではbs=32MB だが、 32m じゃないと動かないので注意
$ sudo dd if=/Users/katsusuke/Downloads/ubuntu-core-16-pi3.img of=/dev/disk1 bs=32m 

ここまでやってSDカードを装着して起動したが、

Press enter to configure.

と出てUSBキーボードが無いので詰んだ


キーボードを会社から持って来て次に進んだところ、ubuntu oneへのログインが出来ず、その先に進めない。
https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=141283

If you install Snappy you're going to be in a very lonely group with one member. Nobody uses it, it really is a project that failed to launch.
Go with Raspbian or Ubuntu MATE your experience will be much better that way.

と言う有益な情報を入手したので諦めて ubuntu MATEを試すことにする

下公式
https://ubuntu-mate.org/raspberry-pi/

ダウンロードページで、イメージが用意されているのは
Ubuntu MATE 16.04.2 LTS
のみなのでおとなしくそれをDLする

xz -dv ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz
diskutil umountDisk /dev/disk1
sudo dd if=/Users/katsusuke/Downloads/ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img of=/dev/disk1 bs=32m

ちなみにdd コマンドの途中で^t を押すと経過が見えて不安を紛らわすことができる

boot 領域の拡張

dd で書き込んだ直後は/boot の領域のサイズが56MB しか無いため、起動したあと、Ubuntu のアップデートが成功しない
gparted を使ってパーティションの移動を行う

gparted Live のダウンロード

http://gparted.org/livecd.php
GParted Live on USB をDL

UNetbootin

Mac でブート可能なUSBメモリを作成するためにUNetbootin を入れる
http://unetbootin.github.io/
Diskimae を選択後、gparted Live のiso を選択
USBメモリを選択してOKを押す

Gparted Live をつかって/boot の領域を増やす

gparted を使って、/boot の領域を512MBに増やす
ルートパーティションの領域は自動でSDカードの終端まで拡張されるので容量を増やす必要は無い

インストール

Rasppberry PI にSDカードを刺して起動したらGUIのインストーラーが立ち上がってインストールが行われる

Wi-Fi

Wi-Fi のチャンネルを13に固定していたら繋がらなかった
検証してみたら13-12 は繋がらなかったので11ch に変更した

5G

5Gもデフォでは拾わない
http://akira.matrix.jp/archives/941

sshd

openssh-server はデフォルトでインストールされているが、有効になっていないので有効にする

$ sudo service ssh start

GPIO

Raspberry PI といえば簡単にアクセスできるGPIO。
(ref: http://pc.watch.impress.co.jp/docs/column/nishikawa/1006048.html)

とりあえず gpio readall ってコマンドで状態が見れるそうな

$ gpio readall
+-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| | | 3.3v | | | 1 || 2 | | | 5v | | |
| 2 | 8 | SDA.1 | IN | 1 | 3 || 4 | | | 5V | | |
| 3 | 9 | SCL.1 | IN | 1 | 5 || 6 | | | 0v | | |
| 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 0 | IN | TxD | 15 | 14 |
| | | 0v | | | 9 || 10 | 1 | IN | RxD | 16 | 15 |
| 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 |
| 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | |
| 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 |
| | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 |
| 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | |
| 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 |
| 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 |
| | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 |
| 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |
| 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | |
| 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 |
| 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | |
| 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 |
| 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 |
| | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+---Pi 3---+---+------+---------+-----+-----+

続く

TODO

  • Bluetooth のSPPを試してみる
  • git 等開発に必要なやつらを一式インストール
  • プログラミング言語の選択
  • systemctl -t service をすると、systemd-modules-load.service と ureadahead.service でエラーが出ているので調べる
  • Wifi の5Gを拾う