Raspberry Pi Compute Module 3リリース

Raspberry Pi Compute Module 3がリリースされました。

Compute Module 3 Launch!

Compute Modueは、産業用・組み込み用に特化したバージョンのRaspberry Piです。ボードはDDR2 SODIMMと同じフォームファクターが採用されており、開発ボードなどを通じて開発したのち、機器に組み込んで使用することができます。

Compute Module 3は、Raspberry Pi 3で採用されたBCM2837および1GBのRAMを搭載されます。モデルは2種類用意され、ストレージとして4GBのeMMCを搭載した通常モデル(CM3)と、eMMCストレージが省略される代わりにSDカードインターフェイスのピンがモジュールに配線されたCompute Module 3 Lite(CM3L)が販売されます。CM3は30ドル、CM3Lは25ドルになります。

Compute Module 3のリリースに合わせて、開発用ボードである「Compute Module IO Board V3 (CMIO3)」もリリースされています。

Compute Module 3はElement14やRSコンポーネンツより購入可能となっています。

(日本のRSオンライン) http://jp.rs-online.com/web/p/processor-microcontroller-development-kits/1232011/?sra=pmpn

なお、Compute Module 3は、以前紹介したNECのサイネージシステムでも取り上げられています。

NEC Display Solutions EuropeがRaspberry Piとのコラボレーションを発表


日本製Raspberry Pi 3リリース

アールエスコンポーネンツ株式会社より、Raspberry Pi 3 Model Bの国内生産モデルを販売開始することが11月10日に発表されました。

「Raspberry Pi」の国内生産モデルを販売開始 | 半導体・電子部品の通販 RSオンライン

産業機器などへの組込みなどのニーズが増すなか、日本国内の厳しい製造管理要求に対応するため、日本国内にある実績豊富な製造業社で製造管理を行うことで、各種管理要求に柔軟に対応できるようになり、ユーザ製品への組込み販売を容易に行えるとしています。

日本製Raspberry Pi 3は、これまでのRaspberry Pi 3と同様に(技適マーク)が付いています。

RSオンラインでは150個セットでの販売が開始されています。

http://jp.rs-online.com/web/p/products/1239470/

なお、個人向けの1個単位での販売はKSYで予定されているようです開始されました

https://raspberry-pi.ksyic.com/news/page/nwp.id/42

また、今回のリリースに合わせて、5.1V/2.5A出力に対応した新たな電源ケーブルも発売されています。こちらはRSオンラインにて、1個から購入可能です。

http://jp.rs-online.com/web/p/plug-in-power-supply/1215944/


Raspberry Pi 3とPi DriveでUSB HDDブートをしてみよう

Raspberry Pi 3向けに、SDカード以外のブート方法を提供するための機能が追加されています。現在はベータ版の扱いなので、不具合があるかもしれませんが、試す手順なども掲載されています。

現在はUSBブート、PXEブートの2種類が紹介されています。

https://www.raspberrypi.org/blog/pi-3-booting-part-i-usb-mass-storage-boot/

https://www.raspberrypi.org/blog/pi-3-booting-part-ii-ethernet-all-the-awesome/

PXEブートに関しては私の個人ブログでも紹介していますので、興味がありましたらこちらも見てみてください。

さて、本記事ではPi Driveを使用してUSBブートをしてみたいと思います。

Pi Drive

Pi Driveとは?

Pi Driveは、Western DigialがRaspberry Pi向けにリリースした2.5インチハードディスクです。容量はPi==πにかけて314GBになっています(フォーマットすると……314GBではなくなります)。特徴的なのはインターフェイスで、SATAではなくUSBポートが搭載されています。なので、USBケーブル1本でRaspberry Piと接続できるわけです。

http://store.wdc.com/promo/97047600

正規の購入経路としてはWestern Digitalの通販サイトがあるものの、日本への輸入には対応していないようです。しかし、おおたさんがなぜか入手されたのをお借りしたので、ぺろぺろなめまわしています(なめまわしていません)。

その他謎の入手経路としては、dx.com(中国のガジェット系通販サイト)がありました。ぶっちゃけ容量単価的にはおいしくないですけども。

http://www.dx.com/p/2-5-314gb-usb-hard-drive-for-raspberry-pi-3b-2b-b-silver-black-437594

パッケージはこのような感じです。

IMG_4921

側面には円周率も……!

IMG_4922

Pi Driveはberrybootを使用したHDDブートモードが用意されています。ただ、berrybootがMicroSDカードから起動するようなので完全にSDカードレスにできるわけではないようです。また、Raspberry Pi3リリース前にリリースされたパッケージでしたので、そもそもRaspberry Pi 3には対応していないようでした。

IMG_4923

USBブートをしてみよう

USBブートをするためには以下の手順が必要になります。

Raspberry Pi側の準備

  • MicroSDカードでブートする
  • rpi-updateで最新のファームウェアにアップデート
  • USBブートを有効にする設定を記述して再起動
  • USBブートが有効になったことを確認してシャットダウン

HDDの用意

  • パーティションを切る
  • 切ったパーティションをそれぞれフォーマット
  • Raspberry PiのOSイメージからファイルコピー
  • SDカードからbootcode.binとstart.elfをコピー

作業は以下のページを参考に進めました。

https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/msd.md

Raspberry Pi側の準備

USBブートを有効にするには、最新のファームウェアにアップデートした環境で特定のオプションを有効にした状態でブートする必要があります。この作業は1度実行すれば、以降は不要のようです。

MicroSDカードに最新のRaspbianを用意して起動した後、以下のコマンドを実行します。

sudo BRANCH=next rpi-update

/boot/config.txtをエディターで開き、以下の一文を追記します。

program_usb_boot_mode=1

Raspbianを再起動したら以下のコマンドを実行して、出力が「17:3020000a」であることを確認します。

$ vcgencmd otp_dump | grep 17:
17:3020000a

HDDの用意

Raspberry PiにPi Driveを接続します。まずはpartedコマンドでパーティションを作成します。

$ sudo parted /dev/sda

(parted) mktable msdos
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Yes
(parted) mkpart primary fat32 0% 100M
(parted) mkpart primary ext4 100M 100%
(parted) print
Model: WD My Passport 07BA (scsi)
Disk /dev/sda: 314GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
1 1049kB 99.6MB 98.6MB primary fat32 lba
2 99.6MB 314GB 314GB primary ext4 lba
(parted) quit

パーティションをそれぞれmkfsコマンドでフォーマットします。

sudo mkfs.vfat -n BOOT -F 32 /dev/sda1
sudo mkfs.ext4 /dev/sda2

フォーマットしたパーティションをそれぞれ以下のようにマウントします。

sudo mount /dev/sda2 /mnt
sudo mkdir /mnt/boot
sudo mount /dev/sda1 /mnt/boot/

SDカードの中のRaspbianを、rsyncコマンドでHDDにコピーします。rsyncコマンドは別途インストールする必要があります。

sudo apt-get install rsync
sudo rsync -ax / /boot /mnt

コピーしたあとは、HDD内のいくつかのファイルでブート用のパラメータをHDD用に書き換えます。SDカードのデバイス名はmmcblk0ですが、HDDの場合はデバイス名がsdaになるためです。参考ページのようにコマンドで実行すると、一括で置き換えてくれます。

$ sudo sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2," /mnt/boot/cmdline.txt
$ sudo sed -i "s,/dev/mmcblk0p,/dev/sda," /mnt/etc/fstab

最後にSSHホスト鍵を再生成します。こちらも基本的には参考ページの通り実行します。

cd /mnt
sudo mount --bind /dev dev
sudo mount --bind /sys sys
sudo mount --bind /proc proc
sudo chroot /mnt
rm /etc/ssh/ssh_host*
dpkg-reconfigure openssh-server
exit
sudo umount dev
sudo umount sys
sudo umount proc

最後にRaspberry Piをシャットダウンします。

$ sudo poweroff

HDDブート!

Raspberry Piの電源ケーブルを抜いたら、MicroSDカードを抜き取り、HDDは接続したまま電源を再投入します。少しするとHDDがスピンアップして、(一度スピンダウンしながら)Raspberry Piが起動します。

HDDから起動していることを確認するには以下のようなコマンドを実行してみると良いでしょう。


pi@raspberrypi:~ $ cat /proc/partitions
major minor #blocks name

(中略)
8 0 306677760 sda
8 1 96256 sda1
8 2 306580480 sda2
pi@raspberrypi:~ $ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 288G 1.2G 272G 1% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 463M 0 463M 0% /dev/shm
tmpfs 463M 6.2M 457M 2% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 463M 0 463M 0% /sys/fs/cgroup
/dev/sda1 93M 20M 73M 22% /boot
pi@raspberrypi:~ $ mount | grep sda
/dev/sda2 on / type ext4 (rw,noatime,data=ordered)
/dev/sda1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)

まとめ

Pi Driveを使用して、Raspberry Pi 3でUSB-HDDブートする方法を紹介しました。MicroSDカードが不要になるので、書き換え寿命を気にする必要がなくなるのは便利かもしれません。

あと、Pi Driveについて、一つ気なるところをあげるとすると、アクセスランプの白色LEDがまぶしすぎる点でしょうか……。目に跡が残るくらい明るいんですよね……w