Mona

Monaをmakeしよう@0.3.0a7

  • うろうろマウス for Monaのスクリーンショットを撮るべく、Monaのmakeに挑戦中です。しかし、またしても壁が……。
  • 環境
    • Cygwin
    • firstbootのcscとかいうのは、v2.0.50727に書き換えて作りました。
  1. secondbootにて
    • 次のようなエラーで停止。firstbootまではうまく対処できたつもりですが、さすがにこれは…orz
    • どなたかお手をお貸しいただけると幸いです
      -cp C:/Mona/MonaNew/share/dotnet/PEAnalyzerLib.dll PEAnalyzerLib.dll
      cp C:/Mona/MonaNew/share/dotnet/IL2Asm16.exe IL2Asm16.exe
      IL2Asm16.exe /MAIN:SecondBootMain /OPT:1 /POST:secondboot32.asm /OUT:secondboot.
      as_ SecondBoot.exe
      Entry Point: void Mona.SecondBoot::Main()
      ERROR PE_0000025C: nop in void Mona.SecondBoot::Main()
      ERROR PE_00000262: nop in void Mona.SecondBoot::Main()
      ERROR PE_0000026D: nop in void Mona.SecondBoot::Main()
        ...(似たようなのがかなり続く)...
      make[1]: *** [secondboot.asm] Error 1
      make[1]: Leaving directory `/Mona/MonaNew/core/secondboot'
  • あれ?そのエラーってSecondBootが.Net 2.0 に対応する以前にもでてませんでしたっけ? -- Gaku? 2006-04-09 (日) 23:57:36
    • Mona の make って落としなおして make してます?MonaNewみたいですが、、、 -- Gaku?
    • SSだけなら開発版(qemu同梱がお勧め)をそのまま使ってみるか、システム/アプリ辺りから持って来き直すとどうなるでしょうか? -- Gaku?
    • それとcscの所で書き換えるのはfirstbootではなくcore/PEAnalyzerLib/Makefile.incのCSCのはずですが、合ってました? -- Gaku?
  • すみません、試験勉強でご無沙汰してましたorz。cscはGakuさんの言うとおりでした。SSは自作アプリをとりたいので、qemu同梱のものでは足りない気がしました。.NETなエラーは今回が初めてだったような……? -- あっきぃ? 2006-04-17 (月) 17:37:15
  • .NET1.1をインストールしてmakeしたところ、うまくできました〜。.NET2.0ではだめっぽいです。 -- あっきぃ? 2006-04-17 (月) 17:48:25
  • あれ、.NET2.0対応にしてもらったはずなんですが。また、ロールバックしてるのかな? -- shadow? 2006-04-17 (月) 19:51:48
  • ↑いや、ウチで4/9日付近に.Net 2.0環境でコンパイルしたはずですが、うまく行ってましたよ? -- Gaku? 2006-04-18 (火) 00:23:15
  • 今度はPerlさんの様子がおかしいです。PATHを通していたActivePerlは解除してcygwinからPerlを入れてみましたが、駄目みたいです。おかしいのはおいらの環境?うううむ。 -- あっきぃ? 2006-04-18 (火) 19:56:25
    perl mkimg.pl
    /Mona/MonaNew
    cp /Mona/MonaNew/share/fat_write/fat_template.img mona.img
    fat_write mona.img --mbr /Mona/MonaNew/bin/firstboot.bin
    fat_write mona.img MONA.CFG MONA.CFG
    fat_write mona.img MONITOR.CFG MONITOR.CFG
    fat_write mona.img AUTOEXEC.MSH AUTOEXEC.MSH
    fat_write mona.img /Mona/MonaNew/bin/AUTOEXEC.MSH AUTOEXEC.MSH
    fat_write mona.img /Mona/MonaNew/bin/FILE.BIN FILE.BIN
    fat_write mona.img /Mona/MonaNew/bin/KERNEL.BIN KERNEL.BIN
    fat_write mona.img /Mona/MonaNew/bin/LOADER.BIN LOADER.BIN
    fat_write mona.img /Mona/MonaNew/bin/MONA.CFG MONA.CFG
    fat_write mona.img /Mona/MonaNew/bin/mona.img mona.img
    can not create file
    Died at mkimg.pl line 27.
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/Mona/MonaNew/tool/mkimg'
    make: *** [all] Error 2
  • /Mona/MonaNew/bin/mona.imgというファイルを消してみてチャレンジしてみてくださいませ。(このエラーは対策したはずなのになぁあ・・・) -- ひげぽん? 2006-04-18 (火) 21:22:00
  • このエラーじゃなかったかもしれませんが、mona.imgを仮想CDツールとかが握ってると、エラーになります。 -- shadow? 2006-04-18 (火) 21:43:53
  • たしかに、これも .Net 2.0 対応付近で一緒につぶしたエラーぽいです。MonaNewのソースコードが古いような気が。MonaNewのソースコードはどこから持って来てます? -- Gaku? 2006-04-18 (火) 23:38:10
  • あ!もしかして「ダウンロード」のところのalpha7かな?.Net 2.0 対応って alpha8 に入る予定であって、まだリリースしてないのではなかったでしたっけ?>ひげぽん -- Gaku? 2006-04-18 (火) 23:41:43
  • 申し訳ないですまだリリースしていないのでhttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/mona/MonaNew/にある、Download tarballのソースでビルドしてもらえれば全部解決しそうな気がします。 -- ひげぽん? 2006-04-19 (水) 00:16:54
  • まだビルドに手間取るようなら0.3.0 alpha 7じゃなくてCVSの最新版を使ってみてください。いくつかの問題点が改善されてるはずです。 -- Gaku? 2006-04-19 (水) 00:22:35
    • かぶった。 -- Gaku? 2006-04-19 (水) 00:23:11
  • あぁっと。もう1つ。↑を試す前に/MonaNew/bin/mona.img かな?を消してmakeして見て、それでも駄目ならCVS最新版をお勧めてことなんで、よろしくです。 -- Gaku? 2006-04-19 (水) 23:43:26
  • a7を消して最新CVSでしてしまいました……(最後まで通りました〜)。 -- あっきぃ? 2006-04-20 (木) 07:31:06

うろうろマウスをMonaOSで

  • src/servers/mouse/main.cppを直して共通パラメータの値変更が反映されるようにでもすればいいのでは?<うろうろマウス -- 2005-05-16 (月) 08:20:48
    • マウスサーバーいじっちゃいますか… -- あっきぃ? 2005-05-16 (月) 13:38:12
    • あとは「うろうろマウスを移植したいのでマウスサーバーの修正よろ」ってひげぽんさんに頼むしか・・・ -- 2005-05-16 (月) 14:43:23
    • とりあえずうろうろマウスは後にします〜 -- あっきぃ? 2005-05-16 (月) 15:01:36
  • 以下のようにいじれば動きました。これでよければCVSに登録しちゃいます。>あっきー -- bayside? 2005-05-16 (月) 15:33:13
    • include/servers/mouse.h:12付近
         MSG_MOUSE_REGIST_TO_SERVER = 0x0300,
         MSG_MOUSE_UNREGIST_FROM_SERVER,
         MSG_MOUSE_INFO,
         MSG_MOUSE_ENABLE_CURSOR,
         MSG_MOUSE_DISABLE_CURSOR,
         MSG_MOUSE_GET_CURSOR_POSITION,
         MSG_MOUSE_SET_CURSOR_POSITION, ←追加
    • src/servers/mouse/main.cpp:340付近
                 case MSG_MOUSE_SET_CURSOR_POSITION:
                     this->posX = receive.arg1;
                     this->posY = receive.arg2;
                     Paint();
                     Message::reply(&receive);
                     SendMouseInformation();
                     break;
    • samples/non-gui/hello/hello.cpp:マウスカーソルを勝手に動かすサンプル
      #include <monapi.h>
      #include <monapi/messages.h>
      int MonaMain(List<char*>* pekoe)
      {
      	dword pid = monapi_get_server_thread_id(ID_MOUSE_SERVER);
      	MonAPI::Message::sendReceive(NULL, pid, MSG_MOUSE_SET_CURSOR_POSITION, 10, 10);
      	sleep(1000);
      	MonAPI::Message::sendReceive(NULL, pid, MSG_MOUSE_SET_CURSOR_POSITION, 20, 20);
      	sleep(1000);
      	MonAPI::Message::sendReceive(NULL, pid, MSG_MOUSE_SET_CURSOR_POSITION, 30, 30);
      	sleep(1000);
      	MonAPI::Message::sendReceive(NULL, pid, MSG_MOUSE_SET_CURSOR_POSITION, 40, 40);
      	return 0;
      }
    • replyは処理が済んでからするべきのような。特に値を代入する前にやるのはどうかと。sendReceiveはデフォルト引数があるから最後の0,NULLは書かないほうがスマートのような。 -- 2005-05-16 (月) 15:52:47
    • SendMouseInformation()でメッセージの受け渡しをしているので先に呼ばないとデッドロックになる可能性があります。あとサンプルはあくまでサンプルですので(もちろんサンプルは登録しません)。 -- bayside? 2005-05-16 (月) 16:34:13
    • SendMouseInformation()では非同期で送りつけているのでデッドロックの可能性はありません。 -- 2005-05-16 (月) 16:49:24
      • ↑のソース修正しておきました。SendMouseInformation() の先でMSG_MOUSE_SET_CURSOR_POSITION を呼ばれるといやなので早めにreplyしています。 -- bayside
      • すみません、言い過ぎた部分があったので削除しておきます。 -- 2005-05-16 (月) 18:00:51
      • SendMouseInformation() の先でMSG_MOUSE_SET_CURSOR_POSITION が呼ばれても問題は起きません。MSG_MOUSE_INFOは非同期で送っているためその結果何かメッセージが来てもキューに溜まるだけで割り込みがかかるわけではないからです。あくまでデッドロックするのはsendReceiveを送ってきた相手にreplyせずにsendReceiveしようとしたときです。そのためSendMouseInformation()から抜けてくるのはメッセージをばら撒いた後で、そのメッセージによって発生した処理を待つわけではありません。逆に言うと待っていても何か変化が起こるわけではないので、SendMouseInformation()の前でreplyするのは特に構わないです。 -- 2005-05-16 (月) 18:06:23
      • Paint()の先を見ると分かりますが、共通パラメータを書き換えています。共通パラメータを見ることでMSG_MOUSE_GET_CURSOR_POSITIONなしにマウスの位置を取得することができるので、共通パラメータを書き換える前にリプライするべきではないと思います。 -- 2005-05-16 (月) 18:09:02
    • えっと、うろうろマウスはあとでやる予定です・・・^^;;; -- あっきぃ? 2005-05-16 (月) 17:48:16
  • といいつつ、作っちゃった〜!いろいろ教えてくれたBaysideさんに感謝(-人-) -- あっきぃ? 2005-05-22 (日) 16:03:20
  • sarではないバージョンも置いて欲しいです。 -- 2005-05-22 (日) 18:29:50
  • sar布教活動のためにsarにしてみたんですが、やっぱりだめですか。じゃあsarinstでsar自己解凍形式にしますね!! -- あっきぃ? 2005-05-22 (日) 21:07:58
  • sar自己解凍形式での配布を開始しました〜(´・ω・`)b -- あっきぃ? 2005-05-22 (日) 21:37:49

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-10-12 (日) 04:20:40