2013 年 11 月の履歴(もしくは日誌)


2013 年 11 月

11 月 30 日

Mac で QEMU と Raspberry Pi で Mathematica

先日の記事を書き直します.

Linux が動くワンボードコンピュータ Raspberry Pi 版の Mathematica が無料で配布されるようになりました.ぼくも早速試してみる事にしました.

まずはエミューレータで Raspberry Pi を試してみました.

まずは Mac に QEMU をインストール.ぼくは Homebrew でインストールしました.

$ brew install qemu

homebrew の環境が整っていれば,これで簡単にインストールできます.

次に QEMU で Raspberry Pi のエミュレータが動くまでは以下の URL のサイトを参考にしました.

試行錯誤をしましたが,なんとか QEMU で Raspberry Pi 用の Linux である Raspbian を動かす事ができました.

この時点で QEMU の画面は VGA サイズでした.狭くて不便なので次に tightvncserver をインストールしました.

一度 QEMU を終了.Mac 側での起動コマンドに VNC 用のポートの指定 -redir tcp:15901::5901 を追加します.ついでに SSH も.

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda 2013-09-25-wheezy-raspbian.img -redir tcp:10022::22 -redir tcp:15901::5901

Raspbian が起動したら vncserver をインストールします.

pi@raspberrypi:~$ sudo apt-get install tightvncserver

VNC を使わなくても SSH が使えるので Mac のターミナルから ssh -X -P 10022 pi@localhost とやればつながります.これでも十分ですが,デスクトップ画面を出したい場合は VNC が便利かも.

VNC で接続の場合は vncserver 起動後に Mac の Finder の移動メニューから「サーバに接続...」を選び,「vnc://localhost:15901」と入力して「接続」ボタンをクリックすると VNC で Raspberry Pi に接続できます.VNC 接続だとマウスポインタが VNC の画面の中と外を自由に行き来できるし,画面サイズも大きくなり快適です.

エミュレータが良いのはあれこれ試して,失敗してやり直しというのが気楽にできる事です.実機を入手できるまでいろいろ試してみました.

実機を入手してから早速起動してみましたが,モニタを接続してなかったので DHCP で割り振られた IP アドレスが良くわかりませんでした.エミュレータ側で IP アドレスを固定に設定して,そのイメージを SD カードにコピーして起動し直し.ifconfig で MAC アドレスを確認して AirMac Time Capsule の DHCP サーバ側に MAC アドレスを登録して割り振る IP アドレスを指定しました.

エミュレータに ssh 接続する時は ssh -X -P 10022 pi@localhost でしたが,実機の場合はポート番号指定を無くして ssh -X pi@192.168.10.100 とかやれば良い訳です.xterm は入ってませんが lxterminal が使えるみたい.-X オプションで X11 の転送が有効になり lxterminal などが使えます.

Raspbian での Mathematica のインストールは簡単です.コマンドを入力するだけ.

以下の URL のサイトを参考にしました.

pi@raspberrypi:~$ sudo apt-get update
pi@raspberrypi:~$ sudo apt-get install wolfram-engine

これで
/usr/bin/mathematica

/usr/bin/wolfram
が使えるようになります.

特に意味ないけど Mac の Mathematica と Raspberry Pi の Mathematica でベンチマークとってみました.

ちなみに iMac でベンチマークをとったときはこんな感じ.

Needs["Benchmarking`"]
b = Benchmark[];
m = b[[1]][[1]][[2]];
iMac = b /. {m -> "iMac12,1 2.7GHz (4Core)"}
BenchmarkReport[$BenchmarkSystems, iMac]

結果はこちら.

=== System Information ===

Machine Name:          iMac12,1 2.7GHz (4Core)
System:                Mac OS X x86 (64-bit)
Date:                  November 28, 2013
Mathematica Version:   9.0.0
Benchmark Result:      1.19

Machine Name:          MacPro5,1 2 x 2.66GHz 6 Core Xeon(12 Cores)
System:                Mac OS X x86 (64-bit)
Date:                  November 28, 2013
Mathematica Version:   9.0.0
Benchmark Result:      0.97

Machine Name:          MacBookAir3,1 1.4GHz Intel Core 2 Duo (2Core)
System:                Mac OS X x86 (64-bit)
Date:                  November 28, 2013
Mathematica Version:   9.0.0
Benchmark Result:      0.38

Machine Name:          raspberrypi
System:                Linux ARM (32-bit)
Date:                  November 30, 2013
Mathematica Version:   10.0.0
Benchmark Result:      0.01


=== MathematicaMark9 System Comparison ===

iMac12,1 2.7GHz (4Core)                         1.19
Mac OS X x86 (64-bit)

3.07 GHz Core i7-950 (8 Cores)                  1.00
Windows 7 Pro (64-bit) Desktop

MacPro5,1 2 x 2.66GHz 6 Core Xeon(12 Cores)     0.97
Mac OS X x86 (64-bit)

2.93 GHz Core i7-940 (8 Cores)                  0.89
Linux Ubuntu (64-bit) Desktop

2.67 GHz Core 2 Quad Q9450 (4 Cores)            0.80
Linux Debian (64-bit) Desktop

3.00 GHz Core 2 Duo E8400 (2 Cores)             0.78
Linux Ubuntu (64-bit) Desktop

3.06 GHz Core 2 Duo E8435 (2 Cores)             0.73
iMac OS X Snow Leopard (64-bit) Desktop

1.73 GHz Core i7-820QM (8 Cores)                0.73
Windows 7 Ultimate (64-bit) Laptop

2 * 2.26 GHz Quad Core Xeon E5520 (8 Cores)     0.69
Mac XServe OS X (64-bit) Server

2.80 GHz Core 2 Duo Mobile T9600 (2 Cores)      0.67
Windows 7 Pro (64-bit) Laptop

2 * 2.66 GHz Dual Core Xeon 5150 (4 Cores)      0.56
MacPro OS X Snow Leopard (64-bit) Server

2.4 Ghz Core 2 Duo Mobile T8300 (2 Cores)       0.47
MacBook OS X Snow Leopard (64-bit) Laptop

2.60 GHz Core 2 Duo Mobile T7800 (2 Cores)      0.44
Windows XP Pro (32-bit) Laptop

2 * 2.80 GHz Opteron 254 (2 Cores)              0.38
Windows XP Pro (64-bit) Server

MacBookAir3,1 1.4GHz Intel Core 2 Duo (2Core)   0.38
Mac OS X x86 (64-bit)

2.13 GHz Core 2 Duo E6400 (2 Cores)             0.36
Windows Vista (32-bit) Server

1.6 GHz Core 2 Duo Mobile L7500 (2 Cores)       0.32
Windows 7 Pro (32-bit) Laptop

2 * 2.00 GHz G5 PowerPC (2 Cores)               0.14
Mac OS X (32-bit) Desktop

raspberrypi                                     0.01
Linux ARM (32-bit)

(Faster systems give larger numbers)

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20131130n1 TrackBack

11 月 25 日

Raspberry Pi, Raspbian で Mathematica 動かしてみました

Raspbian での Mathematica のインストールは簡単です.コマンドを入力するだけ.

以下の URL のサイトを参考にしました.

pi@raspberrypi:~$ sudo apt-get update
pi@raspberrypi:~$ sudo apt-get install wolfram-engine

これで
/usr/bin/mathematica

/usr/bin/wolfram
が使えるようになります.

/usr/bin/mathematica がノートブックの GUI インタフェースで /usr/bin/wolfram はコマンドライン.以前の math とどう違うのかな?

Raspberry Pi の Mathematica ですが,以外と普通に動くのでびっくりです.Raspberry Pi の実機の制約で RAM が 512MB までしか使えないのが一番の制約になるのかなぁ.

Raspberry Pi の Mathematica には Kernel の設定があって,リモートの Kernel が指定できるようになってました.これは Mac の Mathematica と接続できたりするのでしょうか?

Raspberry Pi を何台も用意して Mac 側の Mathematica フロントエンドから複数の Raspberry Pi Mathematica Kernel に接続して分散処理とかできるんだったら,楽しそうですね.

ベンチマークとってみました
MathematicaMark9 / Mac で QEMU と Raspberry Pi で Mathematica

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20131125n2 TrackBack

Mac で QEMU, Raspberry Pi, Raspbian を動かしてみました

Linux が動くワンボードコンピュータ Raspberry Pi 版の Mathematica が無料で配布されるようになりました.Matheamtica が無料で配布ってすごいですね! Raspberry Pi ってデスクトップコンピュータなんかと違って非力なコンピュータだけど,5000 円程度で買えるコンピュータに Mathematica がバンドルだもんなぁ.これまでと使い方が違ってきますね.

まずはエミューレータで Raspberry Pi を試してみました.

Raspberry Pi は Intel CPU でなくて ARM 系です.だから VMWare とか無理なので QEMU を使います.

まずは Mac に QEMU をインストール.Windows では Raspberry Pi を動かす為のセットがあるらしいです.ぼくは Mac に Homebrew でインストールしました.

$ brew install qemu

homebrew の環境が整っていれば,これで簡単にインストールできます.

次に QEMU で Raspberry Pi のエミュレータが動くまでは以下の URL のサイトを参考にしました.

試行錯誤をしましたが,なんとか QEMU で Raspberry Pi 用の Linux である Raspbian を動かす事ができました.

この時点で QEMU の画面は VGA サイズでした.狭くて不便なので次に tightvncserver をインストールしました.

一度 QEMU を終了.Mac 側での起動コマンドに VNC 用のポートの指定 -redir tcp:15901::5901 を追加します.ついでに SSH も.

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -hda 2013-09-25-wheezy-raspbian.img -redir tcp:10022::22 -redir tcp:15901::5901

Raspbian が起動したら vncserver をインストールします.

pi@raspberrypi:~$ sudo apt-get install tightvncserver

tightvncserver を起動してパスワードの設定をします.

pi@raspberrypi:~$ tightvncserver 

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:

New 'X' desktop is raspberrypi:1

Creating default startup script /home/pi/.vnc/xstartup
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspberrypi:1.log

pi@raspberrypi:~$ 

vncserver 起動後に Mac の Finder の移動メニューから「サーバに接続...」を選び,「vnc://localhost:15901」と入力して「接続」ボタンをクリックすると,パスワードを聞いてきます.先ほど設定したパスワードを入力すれば,VNC で Raspberry Pi に接続できます.VNC 接続だとマウスポインタが VNC の画面の中と外を自由に行き来できるし,画面サイズも大きくなり快適です.

ちなみにもし proxy 経由の場合は /etc/apt/apt.conf.d ディレクトリの中に proxy とか適当な名前のファイルを作り,

Acquire::http::proxy "http://proxy.example.com:8080/";
Acquire::https::proxy "http://proxy.example.com:8080/";

なんて書いておくと apt-get コマンドが Proxy 経由になります.

エミュレータが良いのはあれこれ試して,失敗してやり直しというのが気楽にできる事です.

Raspberry Pi でやりたい事は VPN サーバを構築する事と無料で使えるようになった Raspberry Pi 用 Mathematica を試す事.エミュレータでうまく動くようになったら SD カードにコピーして,実機を起動します.

VPN サーバ設定のあれこれは後回しにして,まずは Mathematica の起動確認.

Raspberry Pi 実記で試してみたら Mathematica はあっさりインストールできてすぐに利用できました.

VPN サーバ設定はあちこち参考にしながらエミュレータ上で設定をいじってますが,まだうまくできてません.

別記事を追加しました:Mac で QEMU と Raspberry Pi で Mathematica

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20131125n1 TrackBack

11 月 22 日

OS X 10.9 Mavericks には Ruby 1.8.7 がプリインストールされています

OS X 10.9 Mavericks ではデフォルトの Ruby は 2.0.0 p247 です.1.8.7 をインストールしようと rbenv install 1.8.7-p374 とかやるとエラーが出ます.これはエラーメッセージを読んで gcc をインストールしてからやりなおせば,ちゃんとインストールできます.できました. が,しかし Mavericks には Ruby 1.8.7 p358 があらかじめインストールされているんですね.2.0.0 p247 と 1.8.7 p358 の両方がインストールされていて,デフォルトが 2.0.0 p247 なんです.

/System/Library/Frameworks/Ruby.framework/Versions を確認するとわかります.

さて,どうやって切り替えのでしょう?

rbenv で管理できればうれしいですよね.そこで試してみました.

ln -s /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr ~/.rbenv/Versions/system-1.8.7-p358
rbenv rehash

これで system にインストールされていた Ruby 1.8.7 p358 が rbenv versions で

system-1.8.7-p358 としてリストされるようになりました.ちゃんと切り替えもできているようです.

MacRuby もインストールしてプラグインの rbenv-macruby もインストールして rbenv から切り替えられるようにしてみました.でも,そもそも MacRuby は OS X 10.9 Mavericks ではまともに動いていないみたいですね.

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20131122n3 TrackBack

RubyMine 使ってみた

RubyMine を試用しています.無料のお試し期間が終わったら買おうかな.最初に気がついたのはとても起動が遅いこと.iMac で起動に何分も待たされる.もう使い物にならないと.でもそれは Sophos Anti-Virus が原因でした.Sophos Anti-Virus の設定を変えたら,普通に起動するようになりました.

Ruby も楽しいね.いままで Ruby on Rails はちょっと触った事があったんだけど,Ruby を良く理解しないままいじってました.少し Ruby を理解してからだとやっぱり違うものだなぁ.

Perl では Affrus が良い感じだったんだけど,最近は開発が止まってしまったみたい.Ruby には RubyMine があってうらやましい.Perl にもそういう IDE とかあっても良いよなぁ.Padre はなんか違うんだよなぁ.

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20131122n2 TrackBack

最近 Ruby やってます

Ruby の入門書と Rails の入門書を数冊読んで,Rails を少しいじったことがある程度でした.Ruby をよくわからないまま Rails いじってました.職場で使う備品の貸し出し予約管理とか.そういう簡単なの.

最近はまた別件で Ruby でやってみようって思う事があって,「パーフェクト Ruby」とか読んでます.なるほどちゃんと本を読んでからコードをみると,理解が深まりますな.

パーフェクト Ruby より先に「コーディングを支える技術」って本を読んだんだけど,これを読んで Perl と Ruby と Java でのオブジェクト指向プログラミングの違いとかがなんとなくわかったので,Ruby の本を読んですんなり入るような気もする.

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20131122n1 TrackBack

[ 上に戻る]