Raspberry PiやOpenBlocksでTremaが動けばいいと思っていた訳ですが、イロイロとめんどくさそうです。
とりあえず、出張中に試したRaspberry Piの結果を。
Raspberry Piには、Raspbianを利用しているものとして記載しますが、まずはデフォルトでrubyを入れるとruby 1.9が導入される為、以下エラーで動きません。
Tremaがruby 1.9対応されていない為出ているエラーの為、rubyは1.8を指定して導入する必要があります。(ruby 1.9への対応パッチも存在する様ですが試していません)
pi@raspberrypi /var/lib/gems/1.9.1/gems/trema-0.2.5 $ ./build.rb sudo
.mono.rant:419: syntax error, unexpected ':', expecting keyword_then or ',' or ';' or '\n'
when String: obj
^
.mono.rant:427: warning: else without rescue is useless
.mono.rant:462: syntax error, unexpected keyword_end, expecting $end
end # module Rant
^
./build.rb aborted!
次は、ruby 1.8に変更しgemsで導入を試みましたがエラーで導入できず。
最後に、githubから入手しビルドを試みましたが、エラーで導入できず。
/var/lib/gems/1.8/gems/trema-0.2.5/src/lib/match_table.c: In function 'compare_filter_match':
/var/lib/gems/1.8/gems/trema-0.2.5/src/lib/match_table.c:115:39: error: cast increases required alignment of target type [-Werror=cast-align]
/var/lib/gems/1.8/gems/trema-0.2.5/src/lib/match_table.c:115:39: error: cast increases required alignment of target type [-Werror=cast-align]
/var/lib/gems/1.8/gems/trema-0.2.5/src/lib/match_table.c:115:39: error: cast increases required alignment of target type [-Werror=cast-align]
/var/lib/gems/1.8/gems/trema-0.2.5/src/lib/match_table.c:115:39: error: cast increases required alignment of target type [-Werror=cast-align]
/var/lib/gems/1.8/gems/trema-0.2.5/src/lib/match_table.c:115:39: error: cast increases required alignment of target type [-Werror=cast-align]
/var/lib/gems/1.8/gems/trema-0.2.5/src/lib/match_table.c:115:39: error: cast increases required alignment of target type [-Werror=cast-align]
/var/lib/gems/1.8/gems/trema-0.2.5/src/lib/match_table.c:116:39: error: cast increases required alignment of target type [-Werror=cast-align]
........まだまだ続く
エラーは、-Werror=cast-alignがgccのオプションに指定されているからですが、このオプションを外してビルドできることは確認しているものの、動作に問題ないかの問題もあるのでコードを読む必要がありそうです。
ちなみに、TremaAppsもビルドして動かしてみましたが、エラーがでててやはり動きません。。。
現状、簡単には動いてくれそうにないです。
他のOpenFlow Controllerを試してから再挑戦するか考える事にしましょう。
root@raspberrypi:/home/pi/trema# TREMA_HOME=/home/pi/trema ./trema run ../apps/routing_switch/routing_switch.conf
/home/pi/trema/ruby/trema/util.rb:32:in `sh': Command '../apps/routing_switch/routing_switch.conf --name routing_switch.conf ' failed! (RuntimeError)
from /home/pi/trema/ruby/trema/daemon.rb:79:in `run!'
from /home/pi/trema/ruby/trema/dsl/runner.rb:156:in `maybe_run_apps'
from /home/pi/trema/ruby/trema/dsl/runner.rb:155:in `fork'
from /home/pi/trema/ruby/trema/dsl/runner.rb:155:in `maybe_run_apps'
from /home/pi/trema/ruby/trema/dsl/runner.rb:36:in `run'
from /home/pi/trema/ruby/trema/command/run.rb:44:in `trema_run'
from ././bin/trema:62
from /var/lib/gems/1.8/gems/gli-2.4.0/lib/gli/command_support.rb:136:in `call'
from /var/lib/gems/1.8/gems/gli-2.4.0/lib/gli/command_support.rb:136:in `execute'
from /var/lib/gems/1.8/gems/gli-2.4.0/lib/gli/app_support.rb:260:in `call_command'
from /var/lib/gems/1.8/gems/gli-2.4.0/lib/gli/app_support.rb:273:in `call'
from /var/lib/gems/1.8/gems/gli-2.4.0/lib/gli/app_support.rb:273:in `call_command'
from /var/lib/gems/1.8/gems/gli-2.4.0/lib/gli/app_support.rb:67:in `run'
from ././bin/trema:241