以前、RaspberryPiを買ったもののだいぶと放置していたので一念発起してMonoを入れて C# で HelloWorld してみました。

今回使った道具
- 8GBのSDカード
- LANケーブル
- USBケーブル
まず、SDカードにOSをインストールします。Raspberry Pi 公式ページで配布しています。今回はRasbianを選択しました。zipを解凍すると 2014-01-07-wheezy-raspbian.img (先頭の日付はバージョンに依存) というディスクイメージファイルが出てきます。これをSDカードに起動できる状態で書き込みするのですが、
というツールを使います。ダウンロードして解凍してでてきたexeを起動します。

SDカードを挿した状態だと右上のDeviceが選択できるので、該当ドライブ名を選択します。Image Fileは先ほどのディスクイメージファイルを選択します。そしてWriteを押してしばらくすると書き込みが完了します。
これでSDカードをRaspberryPiに挿入して、LANケーブルをつなぎ、USBケーブルを挿して電源を入れます。
今回はSSH接続で操作することにします。LANケーブルで家のルーターにつないでいるので、家のWindowsマシンからPuttyを使って接続します。RaspberryPiに払い出されたアドレスを探して接続します。

ダウンロードページにあるように pi/raspberry でログインします。次に sudo raspi-config でもろもろの設定をします。初期状態だと2GBしか認識していないので、Expand FileSystemで拡張し、パスワードを変更しておきます。
再起動後、パッケージをアップデートしておきます。
$ sudo apt-get update $ sudo apt-get upgrade $ uname -a Linux raspberrypi 3.10.25+ #622 PREEMPT Fri Jan 3 18:41:00 GMT 2014 armv6l GNU/Linux
ここまで来たらいよいよMonoをインストールします。
$ sudo apt-get install mono-complete
と入力してインストールしますが、おそらく30分くらいかかるはずなので気長に待ちます。
$ mono -V
Mono JIT compiler version 3.2.3 (Debian 3.2.3+dfsg-5+rpi1)
Copyright (C) 2002-2012 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: normal
Notifications: epoll
Architecture: armel,vfp+hard
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen

ここまで来たらあとは HelloWorld.csを書きます。
$ mkdir HelloWorld
$ cd HelloWorld
$ vi HelloWorld.cs
using System;
public class HelloWorld
{
public static void Main()
{
Console.WriteLine("Hello World!");
}
}
$ gmcs HelloWorld.cs
$ mono HelloWorld.exe
Hello World!

というわけでできました。
次はRaspberryをサーバーとして使えないかなあと考えているところです。