Raspberry Pi に Raspbian を 入れむ with MacOS


# 1. mini SD card の 準備

* http://www.raspberrypi.org/downloads/ より Raspbian OS の image を 得。

* MacOS machine に 空の mini SD card を 插す。

* 次にて mini SD card の device 名をば 確認す。 我が ばあひは /dev/disk2s1 と なりぬ。

```bash:console
$ df -h
```

* 次にて mini SD card に image を やきこむ。 なほ /dev/diskNsM のとき of=/dev/rdiskN とす。

```bash:console
$ diskutil umount /dev/disk2s1
$ sudo dd bs=1m if=2015-02-16-raspbian-wheezy.img of=/dev/rdisk2
$ diskutil eject /dev/disk2s1
```
やきこみには 数分。 MacOS にて かきこみを 確認せむとて Finder にて mini SD card を 開くべからず。 ごみをば やきこみてむ。

# 2. Raspbian 起動

* すなはち mini SD card を Raspberry Pi に 插し また display HDMI cable, network cable, USB keyboard cable を 插して 最後に Android 電源 cable を つなぐ。 疾く Rasbian たちあがらむ。
ちなみに USB keyboard として Happy Hacking Keyboard は 何故か 用ゐ得ず。

* raspi-config 自動す。

* raspi-config を 一度 をへ ifconfig にて IP address を たしかむ。 IP address は DHCP にて ふらるゝ ため DHCP server にて address を たしかめ 得ざる 時は 必ず display, keyboard をば 要する。

* ほかの 端末より ssh にて account pi にて 入る。 このとき default の password は raspberry。 super user には sudo にて 入り得。

* raspi-config を 動かして 1 Expand Filesystem を 選びて mini SD card の 使用量を 加ふべし。

* raspi-config を 動かして 4 Internationalisation Options の 12 Change Timezone にて Asia, Tokyo を 選ぶべし。

# 3. そのほか もろもろ

* OS を 最も 新しく す。

```bash:console
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get -u dist-upgrade
$ sudo apt-get autoremove
```

* X window を 入る。 この 環境には 別の VNC 端末より 入り得。

```bash:console
$ sudo apt-get install tightvncserver

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

$ vncserver -kill:1
```

* Mathematica を 入る。

```bash:console
$ sudo apt-get install wolfram-engine
```

---

# 追記. 實機に 非ず emulator にて 動かさむ

* MacOS 上に qemu なる software を 入る。 Homebrew ならば brew install qemu にて。

* http://www.raspberrypi.org/downloads/ より Raspbian OS の binary image を 得。 2015-02-16-raspbian-wheezy.img とす。

* http://xecdesign.com/downloads/linux-qemu/kernel-qemu より Linux の kernel の binary image を 得。

* qemu にて 初めて Raspbian を 起動す。

```bash:console
$ qemu-system-arm -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda1 panic=1 rootfstype=ext4 rw init=/bin/bash" -kernel kernel-qemu -hda 2015-02-16-raspbian-wheezy.img
```

* これにて qemu の console 畫面 現れて ひとしきり 文字行群 流れし 後 次にて 停む。 これ single mode にて root に login せり。

```bash:console
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
root@(none):/#
```

* /etc/ld.so.preload を 編輯して 一行を 註とす。

```:ld.so.preload
# /usr/lib/arm-linux-gnueabihf/libcofi_rpi.so
```

* /etc/udev/rules.d/90-qemu.rules を 創る。

```:90-qemu.rules
KERNEL==“sda”, SYMLINK+=“mmcblk0”
KERNEL==“sda?”, SYMLINK+=“mmcblk0p%n”
KERNEL==“sda2”, SYMLINK+=“root”
```

* /usr/bin/raspi-config を 編輯して mmcblk0p 或いは mmcblk0 を　sda とす。

* ^D にて qemu より 出づ。 則ち qemu は 終る。

* 次にて binary image の 容量を 増やす (2GB に 非ずとも よし)。

```bash:console
$ qemu-img resize 2015-02-16-respbian-wheezy-raspbian.img +2GB
```


* 再び qemu を 起動す。 init parameter は 消す。 redir option にて 記したるは port の redirection にして ssh (22) と vnc (5901) を それぞれ host の ports 10022 と 15901 に わりあてり。

```bash:console
$ qemu-system-arm -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "root=/dev/sda1 panic=1 rootfstype=ext4 rw" -kernel kernel-qemu -hda 2015-02-16-raspbian-wheezy.img -redir tcp:10022::22 -redir tcp:15901::5901
```

---

なんと。 我 Mathematica10 を 動かしむるがため qemu を 用ゐたれども 實機に 非ずば Mathematica10 動き得ざる やうなり (;_;)

---

## UnixBench の 結果

qemu は MacBook Pro 13inch retina (2.9 GHz Core i7) にて。
恐らくは qemu ぞ 最も 遲き。
なほ Raspberry Pi 2 model B のみ 4 CPUs なれども 特に 竝行させず。 竝行せしめば より 速し。

<table>
  <thead>
    <tr>
      <th></th>
      <th>model B</th>
      <th>2 model B</th>
      <th>qemu</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>Dhrystone 2 using register variables</th>
      <td style="text-align:right;">1668537.6 lps</td>
      <td style="text-align:right;">1971965.0 lps</td>
      <td style="text-align:right;">1078328.9 lps</td>
    </tr>
    <tr>
      <th>Double-Presition Whetstone</th>
      <td style="text-align:right;">267.4 MWIPS</td>
      <td style="text-align:right;">331.4 MWIPS</td>
      <td style="text-align:right;">126.9 MWIPS</td>
    </tr>
    <tr>
      <th>Execl Throughput</th>
      <td style="text-align:right;">195.0 lps</td>
      <td style="text-align:right;">355.6 lps</td>
      <td style="text-align:right;">128.7 lps</td>
    </tr>
    <tr>
      <th>File Copy 1024 bufsize 2000 maxblocks</th>
      <td style="text-align:right;">32303.3 KBps</td>
      <td style="text-align:right;">50949.1 KBps</td>
      <td style="text-align:right;">31647.9 KBps</td>
    </tr>
    <tr>
      <th>File Copy 256 bufsize 500 maxblocks</th>
      <td style="text-align:right;">9706.0 KBps</td>
      <td style="text-align:right;">14202.5 KBps</td>
      <td style="text-align:right;">8571.3 KBps</td>
    </tr>
    <tr>
      <th>File Copy 4096 bufsize 8000 maxblocks</th>
      <td style="text-align:right;">83287.4 KBps</td>
      <td style="text-align:right;">140729.4 KBps</td>
      <td style="text-align:right;">98403.6 KBps</td>
    </tr>
    <tr>
      <th>Pipe Throughput</th>
      <td style="text-align:right;">136028.5 lps</td>
      <td style="text-align:right;">116630.1 lps</td>
      <td style="text-align:right;">81011.1 lps</td>
    </tr>
    <tr>
      <th>Pipe-based Context Switching</th>
      <td style="text-align:right;">15525.6 lps</td>
      <td style="text-align:right;">21204.9 lps</td>
      <td style="text-align:right;">8213.6 lps</td>
    </tr>
    <tr>
      <th>Process Creation</th>
      <td style="text-align:right;">513.1 lps</td>
      <td style="text-align:right;">914.1 lps</td>
      <td style="text-align:right;">529.8 lps</td>
    </tr>
    <tr>
      <th>Shell Scripts (1 concurrent)</th>
      <td style="text-align:right;">361.9 lpm</td>
      <td style="text-align:right;">879.7 lpm</td>
      <td style="text-align:right;">132.3 lpm</td>
    </tr>
    <tr>
      <th>Shell Scripts (8 concurrent)</th>
      <td style="text-align:right;">45.3 lpm</td>
      <td style="text-align:right;">249.9 lpm</td>
      <td style="text-align:right;">16.3 lpm</td>
    </tr>
    <tr>
      <th>System Call Overhead</th>
      <td style="text-align:right;">373884.2 lps</td>
      <td style="text-align:right;">274409.9 lps</td>
      <td style="text-align:right;">220628.6 lps</td>
    </tr>
  </tbody>
</table>