約3,300円で買えるLinuxパソコンRaspberry PiをMacで使う
2015/12/21
価値ある情報をユーザー視点で発信するブログ
2015/12/21
RSコンポーネンツから42.00米ドルで買えるLinuxパソコンと言いながら、その実ARM CPUを搭載したマイコンボード……にしては豪華すぎる仕様のRaspberry Piが届いたので使ってみました。
(続きは[Read More]から)
Raspberry Pi(ラズベリーパイ) |
Raspberry Pi | An ARM GNU/Linux box for $25. Take a byte! |
もくじ
Raspberry PiにはHDMIポートが付いていますが、うちにはHDMIポート付きのモニタが一台も無いし、元よりRaspberry Piをパソコン的な用途として使う気は全く無いので、モニタ無し、母艦Macな環境で、高機能なマイコンボードとして使うべく、Lチカをやったところまでのメモです。
HDMIポートが無くても、以下のような変換ケーブル、変換アダプタを使うと、DVI-Dでも使えるということです。VGAに変換するのはコストが嵩むので現実的ではないでしょう。
電源はmicroUSBから供給します。5V/700mAだということです。MacBook Pro with Retina DisplayのUSB(3.0なので供給能力は900mAあるはず)から取りました。電源の取り回しはよいですね。
Raspberry Piは世界中で売れまくりだそうです。
家庭内ミニサーバみたいな感じで使えるだろうし、ネットワークを使う組み込み用途でもいいでしょうね。
乾電池駆動のような超省電力を求められる用途では辛いでしょうが、パソコンみたいな扱いができるマイコンがありがたい僕みたいな人も多いんじゃないでしょうか。
Rubyが普通に動くので、TwiProwl、IMAProwlのように、プロセスを常駐させておかなければならないネットワーク監視/プッシュ通知用途でもかなりいけていると思います。daemonアリのVPSを借りるよりは、電気代は随分安く付くのではないかな。
→とりあえずTwiProwl / IMAProwlをインストールしてプッシュ通知サーバとして使ってみています。IMAProwlではGmailのプッシュ通知をし、それをProwl側でSparrow for iOSにリダイレクトして、間接的にSparrow用のプッシュ通知にしています。
The Weight @northeye: TwiProwl |
Raspberry Pi上で動かしたRuby(ruby 1.9.3p194 (2012-04-20 revision 35410) [armv5tel-linux-eabi])からTwitterに書き込んだテスト。
Hello, Raspberry Pi!
— moyashi (@hitoriblog) July 21, 2012
RubyGemsでTwitterのgemをインストールして、といった具合に普通に使えます。
激しいクローリング(RAM256MBなため)を必要としなければ、Twitter用のbotサーバとしてもいいと思います。gcc、libxml2、libxsltをインストールしたら、Ruby Mechanizeも動きました。
Raspberry Piの電源、5V、700mAとして、
P=V*I=5*0.7=3.5Wh。
1時間に0.0035kWhの消費。1時間の電気代を22円とすると、
0.0035*22=0.077
1時間に0.077円。24時間、31日とすると、月額で約57円。
単純な比較はできませんが、自宅に置いたRaspberry Piでできる範囲の役目を代替する分には、最安VPSの1/8ぐらいのコストですかね。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1133525821
Raspberry PiにはOSが搭載されていないので、OSをインストールします。
OSをインストールするには、本体に備えられたSDカードソケットに挿すSDカードが必要です。
僕は確か500円ぐらいで買った2GBのmicroSDカードにアダプタをかませて使いました。
SDカードにOSをインストールする作業は、Mac上でやりました。
Downloads | Raspberry Pi |
Raspberry Piの公式で用意されている三つのディスクイメージの中から、”simplicity and full control to the end user.”だという触れ込みのArch Linuxを選択。知人の @Sakurina 君オススメです。
@hitoriblog: Archが最高
— Yanik Magnan (@Sakurina) July 21, 2012
@hitoriblog: It’s the best distribution for geeks. All the friends I’ve introduced to it switched and refuse to use anything else now.
— Yanik Magnan (@Sakurina) July 21, 2012
ダウンロードしてzipを取得し、解凍してimgを得ます。
Mac (OS X)向けに、Raspberry Pi用のOS入りSDカードを作るためのRasPiWriteというスクリプトを作ってくれた方がいらっしゃるので、それを利用するとSDカードへの書き込みは簡単です。
サイトが無くなってしまったので、一応アップロードしておきます(ライセンスはGPL)
ダウンロード: RasPiWrite-1.15
RasPiWrite Script | Exaviorn |
ダウンロードしたRasPiWrite-1.15.zipを解凍、Raspberry Pi用のSDカードをMacに挿入した後でraspiwrite.pyをルート権限で実行。
$ cd ~/Download/RasPiWrite $ sudo python raspiwrite.py
「Now insert your SD Card, press enter when you are ready…」と聞かれるので、enterキー押下。
「Please enter the location you believe holds the SD Card:」と聞かれるので、確認の後enter。
Filesystem Size Used Avail Capacity Mounted on /dev/disk2s1 94Mi 34Mi 60Mi 37% /Volumes/Untitled --------------------------------------------------------- I believe this is your SD card: /dev/disk2s1 is that correct? (Y/n)
こんな風に聞かれるので、間違いなければyと入力してenter。
「Do you wish to Download a Raspberry Pi compatible image (choose yes if you don’t have one) (Y/n):」と、イメージのダウンロードまでやっちゃうか? と聞かれましたが、僕は既に別途ダウンロードしていたのでn、enterで。
「Please locate the disk image (.zip, .img.gz, .tar.bz2 (.tar.bz2 only working with QtonPi distros currently):」と、イメージの場所を聞かれたので、「/Users/ユーザ名/Downloads/archlinuxarm-13-06-2012.img」と入力してenter。
指示に従い、しばらくすると書き込み完了! ddコマンドについて知る機会を得ないまま終わってしまいました。
OSを書き込んだSDカードをMacから取り外し、SDカードソケットに挿す。
Ethernetケーブルを挿す。
最後に電源供給用のmicroUSB(MacBook Proから電源供給)を挿して起動開始。電源スイッチはありません。
しばらくするとDHCPサーバで(BOOTP?)でIPアドレスを取得してネットワーク上に現れるので、ルータのDHCPのテーブルを確認。
DHCP クライアント ホスト名 IPアドレス MACアドレス リース時間 alarmpi 192.168.1.106 xx:xx:xx:xx:xx:xx 1 day 00:00:00
alarmpiというホスト名が付いていました。Macのターミナルからsshでログイン。
$ ssh root@alarmpi
以下のように聞かれるのでyesで。
The authenticity of host 'alarmpi (192.168.1.106)' can't be established. RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:79:28:79:18:0a. Are you sure you want to continue connecting (yes/no)? yes
パスワードはroot。つまり、ユーザ名root、パスワードもrootですね。
Xが勝手に上がってしまうのかなと思ったら、そうでもないみたいです。
そもそも、このArch Linuxのイメージには、デフォルトではX入ってないみたい?
思惑通りでした。
とりあえず、あっという間にLinuxサーバとして機能するようになりました。
Arch Linuxのパッケージ管理に使うコマンドはpacmanです。
パックマン。こういうセンスいいですね!
まずはデータベースの更新。一応、システムの更新もしておきます。
# pacman -Sy # pacman -Syu
手始めにRubyインストール。
# pacman -S ruby
ついでにWebサーバもインスコしてみました。
# pacman -S nginx # rc.d start nginx
http://alarmpi/ にアクセスするとnginxのスタートページが見えました。
パッケージを探すのは「-Ss キーワード」
pacman -Ss ruby
pacmanについては、ここに日本語の解説がありました。
Pacman (日本語) – ArchWiki |
USB端子が二つ付いているので、リーダに挿したmicroSDを装着。
# ls /dev/sd* /dev/sda /dev/sda1
/dev/sda1が増えているのでマウントしてみます。
# mount /dev/sda1 /mnt # cd /mnt # ls LOST.DIR upload.rb clockworkmod opensource upload_test.rb DCIM PRIVATE DEVPROF SD_VIDEO
読めました。この辺をオートでやりたいっすね。
もう一つのUSB端子に無線LANのAPになれるドングルを挿したら、
自作AirStashができそうですね。無線LANも動いているそうです。
Raspberry Piには、もちろんGPIOが付いています。
LEDをつないでチカチカさせましょう。
ここに詳しく書いてあります。
RPi Low-level peripherals – eLinux.org |
いつものLチカ用基板におでましいただく。
チュートリアルではGPIOの4番を使った例が多いので、それに倣います。
GPIOの4番は、SDカードソケットを挟んでmicroUSBとは逆サイドの端にある「P1」というシルク印刷のあるコネクタにあります。
「P1」とある位置にあるのが1番ピン、そこから数えて4番目がGPIOの4番です。GNDは、2列目の3番目。
富豪マイコンらしく、Lチカ(LEDチカチカ)にもRubyを使うことにします。
ltica.rbというスクリプトを書きます。
#!/usr/bin/ruby system('echo "4" > /sys/class/gpio/export') system('echo "out" > /sys/class/gpio/gpio4/direction') 1000.times do |v| system("echo #{v%2} > /sys/class/gpio/gpio4/value") sleep 1 end
実行。
# ruby ltica.rb
LEDチカー!
ということで、Raspberry Piもマイコンボードっぽく(?)使えることが分かりました。
ものすごく地味な試行でしたが、Raspberry Piは本来、USBキーボード、USBマウス、HDMIのディスプレイ(変換ケーブルでDVIにも)を繋ぎ、Quake 3を動かす実力のある、かなりハイスペックなものです。
だがしかし、ネットワーク機能を内蔵したマイコンとしてもかなり安いので、今後様々な用途で使われていくことになるでしょうね。
Webサーバとしても速攻で機能しますし、シェルスクリプトからでも触れるGPIOをコントロールするのは簡単です。赤外線リモコンをつないだら、外出先からスマフォでエアコンの電源を入れる、などということもすぐできますね。