読者です 読者をやめる 読者になる 読者になる

銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

Mono on RaspberryPi でHelloWorld

C# RaspberryPi

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

f:id:tanaka733:20140208023955j:plain

今回使った道具

  • 8GBのSDカード
  • LANケーブル
  • USBケーブル

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

SD Card Formatter 4.0

というツールを使います。ダウンロードして解凍してでてきたexeを起動します。

f:id:tanaka733:20140208040859p:plain

SDカードを挿した状態だと右上のDeviceが選択できるので、該当ドライブ名を選択します。Image Fileは先ほどのディスクイメージファイルを選択します。そしてWriteを押してしばらくすると書き込みが完了します。

これでSDカードをRaspberryPiに挿入して、LANケーブルをつなぎ、USBケーブルを挿して電源を入れます。

今回はSSH接続で操作することにします。LANケーブルで家のルーターにつないでいるので、家のWindowsマシンからPuttyを使って接続します。RaspberryPiに払い出されたアドレスを探して接続します。

f:id:tanaka733:20140208041328p:plain

ダウンロードページにあるように 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

f:id:tanaka733:20140208044159p:plain

ここまで来たらあとは 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!

f:id:tanaka733:20140208044210p:plain

というわけでできました。

次はRaspberryをサーバーとして使えないかなあと考えているところです。