2008-06-05

lnp を使用して Cygwin と RCX の通信を行う 1

さて、長期にわたり放置を続けている当Blogであるが、サボってるわけではない。
単純に精神的な余裕がなくて近寄るのもイヤな状態だっただけだ。

さて、東海地区試走会を2日後に控えた今頃になってRCXからログを転送する方法を調べているわけだが、これがなかなか上手くいかない。

lnpdを使用すればよさそうだという事がわかったので早速brickOSのページからダウンロードしてコンパイルしてみた。
Cygwin上で以下のように実行した。
$ curl -O 'http://easynews.dl.sourceforge.net/sourceforge/brickos/lnpd-0.9.0.tar.gz'
$ tar -xzf lnpd-0.9.0.tar.gz
$ cd lnpd-0.9.0/
$ ./configure
$ make
ちなみにこれらのコマンドが何を意味しているのか、理解していません。
他のところでこうしてるのを見たので真似ただけです。
何かが間違ってる気がしますが…

で、結果は
$ make
make all-recursive
make[1]: Entering directory `/home/Administrator/brickos/lnpd-0.9.0'
Making all in lnpd+liblnp
make[2]: Entering directory `/home/Administrator/brickos/lnpd-0.9.0/lnpd+liblnp'

Making all in liblnp
make[3]: Entering directory `/home/Administrator/brickos/lnpd-0.9.0/lnpd+liblnp/liblnp'
/bin/sh ../../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../.. -D_GNU_SOURCE -g -O2 -c lnptest.c
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -D_GNU_SOURCE -g -O2 -c lnptest.c -DPIC -o .libs/lnptest.o
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -D_GNU_SOURCE -g -O2 -c lnptest.c -o lnptest.o >/dev/null 2>&1
/bin/sh ../../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../.. -D_GNU_SOURCE -g -O2 -c stub.c
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -D_GNU_SOURCE -g -O2 -c stub.c -DPIC -o .libs/stub.o
stub.c: In function `lnp_init':
stub.c:381: error: `O_ASYNC' undeclared (first use in this function)
stub.c:381: error: (Each undeclared identifier is reported only once
stub.c:381: error: for each function it appears in.)
stub.c:383: error: `F_SETSIG' undeclared (first use in this function)
make[3]: *** [stub.lo] Error 1
make[3]: Leaving directory `/home/Administrator/brickos/lnpd-0.9.0/lnpd+liblnp/liblnp'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/Administrator/brickos/lnpd-0.9.0/lnpd+liblnp'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/Administrator/brickos/lnpd-0.9.0'
make: *** [all-recursive-am] Error 2
・・・見事にコンパイルできませんでした。
O_ASYNC と F_SETSIG の定義がないとの事。
どう対応したらよいのか調べてみましたが。

O_ASYNC の方は
legOS : 439
that's an OS issue - your host system should define O_ASYNC. Some older
systems define FASYNC instead, try that one.

You can work around this more elegantly, too:

#ifndef O_ASYNC
#define O_ASYNC FASYNC
#endif

And hope for the best.
O_ASYNC は古いシステムでは FASYNC を使って試してみてね。との事。

F_SETSIG の方は
legOS : 3945
・・・全く同じ現象の質問だが放置プレイ状態

legOS : 25788
こちらも全く同じ現象の質問ですが、こちらには回答が付いていました
lnphost is perfect. Thank you for the reference.
えっと、Cygwin上でlnpdは使えません。lnphostを使いましょう。
との事でした。

かなりせっぱ詰まっているので走り書き状態ですが、これで一度公開します。
試走会、何も出来ない可能性が極めて高いのです。
余裕が出来たら手直しします。


0 件のコメント: