YanaKernel0の試作品に、(TCP/IPを使用できる)uIPを組み合わせています。
とりあえず、MIPSに続いて、ARMについても、サンプルを実行できました。
なお、YanaKernel0を使用するuIPに続いて、YanaKernel0を使用しないuIPについても、割り込みを使用しない場合のサンプルを実行できました。
次のアーカイブ・ファイルは、責任や保証を求めずに、個人的に用いてください。
次の差分ファイルは、ファイル「minix_source_3_1_1_complete.tar.bz2」のライセンスなどを確認して、同じように用いてください。
次の差分ファイルは、ファイル「uip-1.0.tar.gz」のライセンスなどを確認して、同じように用いてください。
次のような環境で、サンプルを実行できました。
サンプルのビルドについては、まず、次のようにファイルを用意します。
yana@cygwin ~ $ tar xjf minix_source_3_1_1_complete.tar.bz2 yana@cygwin ~ $ rm src/include/stdarg.h yana@cygwin ~ $ patch -dsrc -p1 <yanakernel0prototypeuip20091111minix.txt patching file include/stdio.h yana@cygwin ~ $ tar xzf uip-1.0.tar.gz yana@cygwin ~ $ mkdir uip-1.0/testarm yana@cygwin ~ $ cp -p uip-1.0/unix/*.h uip-1.0/unix/main.c uip-1.0/testarm yana@cygwin ~ $ cp -pr uip-1.0/testarm uip-1.0/testmips yana@cygwin ~ $ patch -p0 <yanakernel0prototypeuip20110111uip.txt patching file uip-1.0/apps/resolv/resolv.c patching file uip-1.0/apps/webclient/webclient.c patching file uip-1.0/uip/uip.c patching file uip-1.0/testarm/main.c patching file uip-1.0/testarm/uip-conf.h patching file uip-1.0/testmips/main.c patching file uip-1.0/testmips/uip-conf.h yana@cygwin ~ $ unzip -q yanakernel0prototypeuip20110111.zip yana@cygwin ~ $ cp -pr yanakernel0prototypeuip/enable/* uip-1.0 yana@cygwin ~ $ unzip -q yanakernel0prototype20100311.zip yana@cygwin ~ $
次に、ARMの場合は、DNSサーバとWWWサーバについて、ファイル「uip-1.0/testarm/main.c」を変更して、ディレクトリ「uip-1.0/testarm」で、次のようにビルドします。
割り込みを使用しない場合 |
CC="arm-elf-gcc -D_EM_WSIZE=4 -fpack-struct -Os" make |
割り込みを使用する場合 |
CC="arm-elf-gcc -D_EM_WSIZE=4 -fpack-struct -Os -DENABLE_INTERRUPT" make |
また、MIPSの場合は、DNSサーバとWWWサーバについて、ファイル「uip-1.0/testmips/main.c」を変更して、ディレクトリ「uip-1.0/testmips」で、次のようにビルドします。
割り込みを使用しない場合 |
CC="mips-elf-gcc -D_EM_WSIZE=4 -fpack-struct -Os" make |
割り込みを使用する場合 |
CC="mips-elf-gcc -D_EM_WSIZE=4 -fpack-struct -Os -DENABLE_INTERRUPT" make |
サンプルの実行については、まず、ARMの場合は、割り込みを使用しない場合でも、割り込みを使用する場合でも、次のように出力します。
yana@cygwin ~/uip-1.0/testarm $ gxemul -q -E testarm main NOTE: This is a LEGACY emulation mode. Found name 'yana.jp' = 60.32.201.105 Webclient: connected, waiting for data... Webclient: got 1166 bytes of data. Webclient: got 1400 bytes of data. Webclient: got 77 bytes of data. Webclient: got 0 bytes of data. uIP log message: tcp: got reset, aborting connection. Webclient: connection aborted
次に、MIPSの場合は、割り込みを使用しない場合でも、割り込みを使用する場合でも、次のように出力します。
yana@cygwin ~/uip-1.0/testmips $ gxemul -q -E oldtestmips -C 4kc main NOTE: This is a LEGACY emulation mode. Found name 'yana.jp' = 60.32.201.105 Webclient: connected, waiting for data... Webclient: got 1166 bytes of data. Webclient: got 1400 bytes of data. Webclient: got 77 bytes of data. Webclient: got 0 bytes of data. uIP log message: tcp: got reset, aborting connection. Webclient: connection aborted
サンプルを実行すると、「uIP log message: tcp: got reset, aborting connection.」と出力しますが、TCPのコネクションの切断に関係する不具合(もしくは制限)があるようです。
次の差分ファイルは、ファイル「gxemul-0.4.7.2.tar.gz」を変更するために作成しましたが、メーリング・リスト「gxemul-devel」に連絡したところ、ファイル「gxemul-0.6.0.tar.gz」には反映されました。
(C) 2009-2011 Yana
Direction: Yana
HTML: Yana
Program: Yana
2011-01-11 release 3
2010-05-11 release 2
2010-01-11 release 1
2009-11-11 release 0