Monoのバージョンを 3.12.1に更新完了しました。
特に変わったところは感じません(まあ、OpenSimうごかしてるだけなら違いはわからない)。
これで、Linuxのバージョンに追いついた。
最近、FreeBSDのlang/monoの本家のMonoへの追従がわりと早いです。
また、バイナリーのパッケージングシステムがpkgになったので、パッケージ作成マシンにssh経由でアクセスできるようにしとくだけで、他のマシンに作成済みのパッケージをすばやくインストールできるようになりました(以前もできなかったわけではなかったけど、Webサーバーたてたりとかが必要だった...と思う...)。
うちみたいな小規模用途の場合、特別にパッケージサーバーとかを立てる必要もないので、結構便利です。
でも、まあ、やっとLinux並みになったというところなんでしょうけどwww。
2007年5月にSecondLifeをはじめました。SecondLifeや日々の関心のあることをボチボチと書ければいいかなって思っていますが...日記とかはあんまり書かないほうなので、放置気味になるかもしれません。 ちなみに、Blogやるのはこれが初めてです。ヨロシク。
2015年4月12日日曜日
2015年3月2日月曜日
x11-toolkits/libgdiplus のビルドの問題が解決
「Monoを3.10.0に更新中 #2」の記事で書いた、x11-toolkits/libgdiplus の問題は、数日前にPortsをアップデイトしたら、files/patch-src_gifcodec.c のパッチが追加されていて解決しました(万歳!)。
ただし、そのままコンパイルしてしまうと、XOpenDisplay()等の関数を呼び出してしまうので、Xをインストールしていない環境では、OpenSim起動時にエラーになってしまいます。
この為、次のMakefile.localと、files/patch-src_general.c を x11-toolkits/libgdiplus のディレクトリに追加してビルドします(昔の記事には、このパッチを載せてなかったみたい...そのうちちゃんとまとめねば....)。
ただし、これはXをインストールしていない環境で無理やりOpenSimを動かすためのものなので、Xが存在する環境では、この作業はしないでください。libgdiplus を使う他のアプリケーションに悪影響がでる可能性があります。
ただし、そのままコンパイルしてしまうと、XOpenDisplay()等の関数を呼び出してしまうので、Xをインストールしていない環境では、OpenSim起動時にエラーになってしまいます。
この為、次のMakefile.localと、files/patch-src_general.c を x11-toolkits/libgdiplus のディレクトリに追加してビルドします(昔の記事には、このパッチを載せてなかったみたい...そのうちちゃんとまとめねば....)。
ただし、これはXをインストールしていない環境で無理やりOpenSimを動かすためのものなので、Xが存在する環境では、この作業はしないでください。libgdiplus を使う他のアプリケーションに悪影響がでる可能性があります。
Makefile.local
# # Makefile.local --- Local settings for OpenSIM # .if defined(WITHOUT_X11) CFLAGS+= -DWITHOUT_X11 MAKE_ARGS+= 'SUBDIRS=src' .endif
files/patch-src_general.c
--- src/general.c.orig 2011-01-13 22:28:19.000000000 +0000
+++ src/general.c 2012-08-27 07:31:08.000000000 +0000
@@ -132,6 +132,9 @@
dpis = h_dpi;
return dpis;
+#elif defined(__FreeBSD__) && defined(WITHOUT_X11)
+ dpis = 96.0f;
+ return dpis;
#else
char *val;
これで、Portsを最新にしても、OpenSimを動かすことができるようです。2015年2月22日日曜日
Monoを3.10.0に更新中 #2
lang/mono をFreeBSD8.4で最新のものをビルドすると devel/llvm34 がインストールされてしまうので、更新をずっとためらっていたんですが、FreeBSD10.1でもemacsをインストールしようとすると、(たぶん、まだclangに全面的に対応できてないのか) gccがインストールされてしまうようです。
まあ、それならあんまりためらっている事もないか....と、portsを最新にしていろいろアップデイトを掛けてました。
なんか、FreeBSDのバイナリーパッケージングシステムがpkgngに変わったので、いろいろと調整が必要で、結構時間かかってしまいました。一番時間かかるのは、古い頭を新しいシステムになれさせる事なんですが....。
で、別環境で作成した最新バイナリーパッケージを使って、OpenSim動かしているマシンを更新かけたところ、libgdiplus.soが読み込めなくて、OpenSimが立ち上がらなくなりました(;Д;)。
あれぇ?と思って、libgdiplusを再構築してみたら、src/gifcodec.c のコンパイル中にエラーがでてました。調べてみると「2015-01-15 Update graphics/giflib to 5.0.5」ってMakefileのSubversionログにはかかれているけど、giflibライブラリのインターフェイスが変わっているのに、ソースコードが未修正なのが原因みたいです(libgdiplusのporterさん、ちゃんとテストしてるのかしら?)。
しかたないので、中身の意味もろくすっぽ調べないで、適当にパッチあてて、コンパイルだけ通して、バイナリーパッケージ作成し、更新かけてみましたけど......やっぱりだめでした....。
気を取り直して、 OpenSim動かしているマシンに残っていた古いportsソースを元に、libgdiplusを作り直したら、とりあえず動くようになりました。 libgdiplusは、依存するライブラリがかなりあるので、慎重にビルドしないとだめのようです...(ライブラリの依存関係の情報もlibgdiplusはちゃんとかかれてないようですし....。とはいうものの、私もports作成に関しては知識あんまりないけど...)。
ところで、libgdiplusって、OpenSimでは、Mapイメージ作るのにひつようなのかしら???
というわけで、OpenSimが立ち上がって、とりあえず、ホっとしてます。 新しい環境に移行する場合は、テスト用のマシン・環境にインストールして、確認してからの方がやっぱりいいですね....。今後、どうやって、やろうかしら....。やっぱりもうひとつJail環境つくって、そのなかでテストしてからの方がいいかな....。
まあ、それならあんまりためらっている事もないか....と、portsを最新にしていろいろアップデイトを掛けてました。
なんか、FreeBSDのバイナリーパッケージングシステムがpkgngに変わったので、いろいろと調整が必要で、結構時間かかってしまいました。一番時間かかるのは、古い頭を新しいシステムになれさせる事なんですが....。
で、別環境で作成した最新バイナリーパッケージを使って、OpenSim動かしているマシンを更新かけたところ、libgdiplus.soが読み込めなくて、OpenSimが立ち上がらなくなりました(;Д;)。
Exception: System.TypeInitializationException: An exception was thrown by the type initializer for System.Drawing.GDIPlus ---> System.DllNotFoundException: libgdiplus.so
あれぇ?と思って、libgdiplusを再構築してみたら、src/gifcodec.c のコンパイル中にエラーがでてました。調べてみると「2015-01-15 Update graphics/giflib to 5.0.5」ってMakefileのSubversionログにはかかれているけど、giflibライブラリのインターフェイスが変わっているのに、ソースコードが未修正なのが原因みたいです(libgdiplusのporterさん、ちゃんとテストしてるのかしら?)。
しかたないので、中身の意味もろくすっぽ調べないで、適当にパッチあてて、コンパイルだけ通して、バイナリーパッケージ作成し、更新かけてみましたけど......やっぱりだめでした....。
気を取り直して、 OpenSim動かしているマシンに残っていた古いportsソースを元に、libgdiplusを作り直したら、とりあえず動くようになりました。 libgdiplusは、依存するライブラリがかなりあるので、慎重にビルドしないとだめのようです...(ライブラリの依存関係の情報もlibgdiplusはちゃんとかかれてないようですし....。とはいうものの、私もports作成に関しては知識あんまりないけど...)。
ところで、libgdiplusって、OpenSimでは、Mapイメージ作るのにひつようなのかしら???
というわけで、OpenSimが立ち上がって、とりあえず、ホっとしてます。 新しい環境に移行する場合は、テスト用のマシン・環境にインストールして、確認してからの方がやっぱりいいですね....。今後、どうやって、やろうかしら....。やっぱりもうひとつJail環境つくって、そのなかでテストしてからの方がいいかな....。
2015年2月7日土曜日
Monoを3.10.0に更新中 #1
ひさしぶりにBlog書いてみます。
FreeBSDのlang/monoのバージョンがだいぶ上がってたんですが、FreeBSD8.4だとdevel/llvm34 のコンパイラをインストールしようとします(ほかにもPhytonとかいろいろインストールしようとします)。OpenSim動かすmonoの為だけに大きなコンパイラをインストールするのもなんかイヤで、FreeBSD10.xにしたらシステム標準のコンパイラがllvm34レベルになるから、それからって思ってました。
でも、FreeBSD10.1にして、ファイルシステムが「soft updates journaling」がデフォルトになったけど、インストールが悪いのか、なんかミスったのかわかりませんけど、なんか変になってファイルシステムが壊れてしまいました(gmirrorと組み合わせてるのが災いしたのかしら???)。まあ、私のところだけなのかもしれませんが...。
というわけで、FreeBSD10.xに全面移行するのは、もうちょっと先にして、FreeBSD8.4でmonoを最新にビルド中です。
しばらく、portsをアップデイトしてないと、いろいろバージョンがあがってたり、pkgngに代わってたりで、なかなかスムーズにいきません。Subversionも良くわかってなかっので、勉強しなおしたりと.....回り道ばかりしてます。
FreeBSDのlang/monoのバージョンがだいぶ上がってたんですが、FreeBSD8.4だとdevel/llvm34 のコンパイラをインストールしようとします(ほかにもPhytonとかいろいろインストールしようとします)。OpenSim動かすmonoの為だけに大きなコンパイラをインストールするのもなんかイヤで、FreeBSD10.xにしたらシステム標準のコンパイラがllvm34レベルになるから、それからって思ってました。
でも、FreeBSD10.1にして、ファイルシステムが「soft updates journaling」がデフォルトになったけど、インストールが悪いのか、なんかミスったのかわかりませんけど、なんか変になってファイルシステムが壊れてしまいました(gmirrorと組み合わせてるのが災いしたのかしら???)。まあ、私のところだけなのかもしれませんが...。
というわけで、FreeBSD10.xに全面移行するのは、もうちょっと先にして、FreeBSD8.4でmonoを最新にビルド中です。
しばらく、portsをアップデイトしてないと、いろいろバージョンがあがってたり、pkgngに代わってたりで、なかなかスムーズにいきません。Subversionも良くわかってなかっので、勉強しなおしたりと.....回り道ばかりしてます。
2014年7月18日金曜日
Raspberry Pi に FreeBSDをインストール #2
ARMでは、まだMonoが動かない
Raspberry Pi + FreeBSDでも、OpenSimうごけばいいなーって思ってたんですが、Portsのlang/monoは、まだARM-CPUでは動きません。残念...。 いずれ移植されて動くようにはなると思うので、そのとき、再挑戦してみることにします。ヒートシンクをつけてみた
Raspberry Pi のCPUやチップは、わりと熱をもつようです。OS全体をコンパイルする、make world, make kernel とかすると、かなり長時間高負荷でイジめることになるので、熱的に大丈夫か不安になったので、ヒートシンクを買いました。私の部屋は南向きなので、日中はかなり温度があがってしまいます。これで、長時間システムを動かし続けても、ちょっとだけ安心です。
2014年7月15日火曜日
Raspberry Pi に FreeBSDをインストール #1
> まずは、順当にLinuxでも動かしてみようかしら...。
って書いたんですが、FreeBSD 10.0 のRaspberry Pi 用のインストールイメージがFreeBSD本家サイトにあったんで、こっちを先にインストールしてしまいました...(FreeBSDで遊ぶのに飽きたら Linuxもいじってみることにします www)。
この.bz2ファイルの展開して得られた .imgファイルをSDメモリカードに書き込みます。書き込みは、別に動いてるFreeBSDマシンにUSBメモリカードリーダーライターをつないで行います。 展開後のディスクイメージが1GBぐらいなので、 使用するメモリカードは、2GB以上の容量のものが良いと思われます。 私が、最初使ったメモリカードはClass4の4GBのものでした。
私のところの場合、SDメモリカードをFreeBSDマシンのUSBに挿すと /dev/da0 として認識されます。書き込みは4~5分で終わりました。
Windowsでディスクイメージを書き込む場合、DD for Windows というツールが使えます。Windows7で使えました。
私はWindows7のマシンに、Amazonで買った次のようなUSBシリアルケーブルを接続しました(中国製でかなり安かったけど、到着まで時間かかるし、ちょっと怪しいので積極的にはお勧めしない www)。入出力の電圧レベルは、TTLレベルのものです。
このケーブルをTeraTerm経由で接続します。設定は次の通りです。
次の手元にあったカードは、最初なんどもエラーになり、bootの途中で落ちました。が、何回か書き込みしたり、抜き差ししている間になんとなく動くようになりました(謎だ)。
また、 最初に使用したカードでも、portsツリーをportsnapで展開したり、ヘビーにコンパイルかけると、たまーにエラーでカーネルが落ちしてしまってることがありました。SDメモりカードをTranscend の16GB, Class 10のものに変えて試してみたら、エラーがでなくなり問題なく動作している雰囲気です。可能ならClass 10などの高速なカードを使うことをお勧めします。
しかし、今一度、OSが起動しないときのブートメッセージを見てみたら
となっていました。一方、正常に起動したときのブートメッセージは、以下のようになりました。
これを見ると、50.0MHz/4bitのモードになったときはエラーになり、25.0MHzの場合は正常にメモリカードにアクセスできる、ということみたいです。
SDカードの仕様には、まったく詳しくないので、これが何を意味するのかは分かりませんが、メモリカードコントローラーの初期化の部分になんらかの不具合があるような気がします。
いったん起動すると安定してうごいているように見えます。FreeBSDも10.0になってCコンパイラがClangになったりして、いろいろ変わっているので、まだまだいろいろ変わっていく途中なのだと思います。
SDメモリカードのベンチマークしてみましたが、読みこみはさほど遅くないのですが、書き込みがUSB-HDDディスクの1/4~1/5 のスピードしか出ません。原理的にしかたないようですし、フラッシュ系メモリは書き込み回数に制限あるので、次は、ルートファイルシステムをUSB-HDDにしようと思います。
って書いたんですが、FreeBSD 10.0 のRaspberry Pi 用のインストールイメージがFreeBSD本家サイトにあったんで、こっちを先にインストールしてしまいました...(FreeBSDで遊ぶのに飽きたら Linuxもいじってみることにします www)。
FreeBSDディスクイメージのSDメモリへの書き込み
現時点での最新は次のものです。FreeBSD-10.0-STABLE-arm-armv6-RPI-B-20140630-r268038.img.bz2
この.bz2ファイルの展開して得られた .imgファイルをSDメモリカードに書き込みます。書き込みは、別に動いてるFreeBSDマシンにUSBメモリカードリーダーライターをつないで行います。 展開後のディスクイメージが1GBぐらいなので、 使用するメモリカードは、2GB以上の容量のものが良いと思われます。 私が、最初使ったメモリカードはClass4の4GBのものでした。
使用したSDメモリカード
私のところの場合、SDメモリカードをFreeBSDマシンのUSBに挿すと /dev/da0 として認識されます。書き込みは4~5分で終わりました。
# bunzip2 FreeBSD-10.0-STABLE-arm-armv6-RPI-B-20140630-r268038.img.bz2 # dd if=FreeBSD-10.0-STABLE-arm-armv6-RPI-B-20140630-r268038.img of=/dev/da0 bs=1M
Windowsでディスクイメージを書き込む場合、DD for Windows というツールが使えます。Windows7で使えました。
シリアルコンソールの接続
次に、Raspberry Pi にシリアルコンソールケーブルを接続します。シリアルケーブルが無いと、ログインする方法がないので手も足もでないことになります(液晶ディスプレイやUSBキーボードが接続されていたら、なんとかなるのかもしれないけど、持ってないから分かりません。また、sshd_configを書き換えてrootログインを許可してssh経由で接続ということもできなくはないけど....)。ですんで、やるならシリアルケーブル接続することを、まずはお勧めします。
私はWindows7のマシンに、Amazonで買った次のようなUSBシリアルケーブルを接続しました(中国製でかなり安かったけど、到着まで時間かかるし、ちょっと怪しいので積極的にはお勧めしない www)。入出力の電圧レベルは、TTLレベルのものです。
USB-TTLシリアルコンソールケーブル
このケーブルをTeraTerm経由で接続します。設定は次の通りです。
Baud rate: 115200bps結線は、Raspberry Piのビン配置 を参考に、ケーブル赤(VCC, +5V)以外を接続します。
Data bit: 8bit
Parity bit: none
Stop bit: 1bit,
Flow control: none
ケーブル緑(TxD) --- Raspberry Pi 10番pinケーブル赤(VCC) はつながない事! 最初、赤もつないでしまって、なにも出力されないので使えないのかと思ってしまいました。Raspberry Pi 壊れなくて良かった...www。
ケーブル白(RxD) --- Raspberry Pi 8番pin
ケーブル黒(GND) --- Raspberry Pi 6番pin
SDメモリカードに関する注意
FreeBSD for RPI のSDメモリカードドライバーにまだ不具合があるのかどうかはわかりませんが、SDカードによってはエラーになって動作しないものがあります。次の手元にあったカードは、最初なんどもエラーになり、bootの途中で落ちました。が、何回か書き込みしたり、抜き差ししている間になんとなく動くようになりました(謎だ)。
SDメモリカードのモードに関して気づいたこと
しかし、今一度、OSが起動しないときのブートメッセージを見てみたら
mmcsd0: 4GB <SDHC LEXAR 1.0 SN 194340 MFG 11/2010 by 40 BE> at mmc0 50.0MHz/4bit /65535-block mmcsd0: Error indicated: 1 Timeout mmcsd0: Error indicated: 1 Timeout ...
となっていました。一方、正常に起動したときのブートメッセージは、以下のようになりました。
mmcsd0: 4GB <SDHC LEXAR 1.0 SN 194340 MFG 11/2010 by 40 BE> at mmc0 25.0MHz/1bit /65535-block ...
mmcsd0: 4GB <SDHC LEXAR 1.0 SN 194340 MFG 11/2010 by 40 BE> at mmc0 25.0MHz/4bit /65535-block ...
これを見ると、50.0MHz/4bitのモードになったときはエラーになり、25.0MHzの場合は正常にメモリカードにアクセスできる、ということみたいです。
SDカードの仕様には、まったく詳しくないので、これが何を意味するのかは分かりませんが、メモリカードコントローラーの初期化の部分になんらかの不具合があるような気がします。
とりあえず Raspberry PiでFreeBSDが起動した
紆余曲折はありましたが、Raspberry Pi でFreeBSDが起動しました。root@raspberry-pi:~ # uname -a FreeBSD raspberry-pi 10.0-STABLE FreeBSD 10.0-STABLE #0 r268038: Tue Jul 1 04:2 9:43 UTC 2014 root@grind.freebsd.org:/usr/obj/arm.armv6/usr/src/sys/RPI-B a rm root@raspberry-pi:~ #
いったん起動すると安定してうごいているように見えます。FreeBSDも10.0になってCコンパイラがClangになったりして、いろいろ変わっているので、まだまだいろいろ変わっていく途中なのだと思います。
SDメモリカードのベンチマークしてみましたが、読みこみはさほど遅くないのですが、書き込みがUSB-HDDディスクの1/4~1/5 のスピードしか出ません。原理的にしかたないようですし、フラッシュ系メモリは書き込み回数に制限あるので、次は、ルートファイルシステムをUSB-HDDにしようと思います。
2014年6月29日日曜日
Raspberry Pi を買ってしまった
今日、BeagleBone BlackでBSDを動かす事に関してSecondlifeの友人からIMがきました。BeagleBone Blackというのは、ARMコアCPUを使った超小型ボードPCです。
以前から、Raspberry Pi などのARMコアの超小型ボードPC には興味があったのですが、私には荷が重そうで、たぶん買っても使いこなせなさそうだったんで横目で見てました。が、しかし、さっき発作的にRaspberry PiをAmazonに注文してしまいました(あーあ、やってしもた...)。
BeagleBone BlackとRaspberry Piのどっちにしようか迷ったんですが、FreeBSD-CURRENTでサポートされているらしいので Raspberry Pi にしました。BeagleBone Blackも動かしている人いるようだしスペック的にはよさそうなのですが、初めてこのタイプのボードをいじるので、情報が得やすいRaspberry Piにしました(軟弱ものな私....BeagleBone Blackもよさげだけど、まあそのうち....www)。
ちなみにFreeBSDのARM-CPUのサポート状況は以下のページに情報があります。
余裕ができたらFreeBSDとかを動かしてみて、monoとか動かして、
そして最終的にOpenSimを動かせたらいいなぁ....。
http://beagleboard.org/友人はこのPCボードでOpenSimを動かそうとしているらしいです。こういう小さいボードでOpenSimが動くというのはすごく面白そうです(それにしてもマニアックな....www)。
http://akizukidenshi.com/catalog/g/gM-06867/
以前から、Raspberry Pi などのARMコアの超小型ボードPC には興味があったのですが、私には荷が重そうで、たぶん買っても使いこなせなさそうだったんで横目で見てました。が、しかし、さっき発作的にRaspberry PiをAmazonに注文してしまいました(あーあ、やってしもた...)。
BeagleBone BlackとRaspberry Piのどっちにしようか迷ったんですが、FreeBSD-CURRENTでサポートされているらしいので Raspberry Pi にしました。BeagleBone Blackも動かしている人いるようだしスペック的にはよさそうなのですが、初めてこのタイプのボードをいじるので、情報が得やすいRaspberry Piにしました(軟弱ものな私....BeagleBone Blackもよさげだけど、まあそのうち....www)。
ちなみにFreeBSDのARM-CPUのサポート状況は以下のページに情報があります。
https://wiki.freebsd.org/FreeBSD/armまずは、順当にLinuxでも動かしてみようかしら...。
余裕ができたらFreeBSDとかを動かしてみて、monoとか動かして、
そして最終的にOpenSimを動かせたらいいなぁ....。
登録:
投稿 (Atom)



