01/16/2008

ncftp for Angstrom

Angstrom distribution has sftp but lacks classic ftp client.

I built NcFTP Client. Following is a tar ball of executable files, just in case anybody looking for binary.

o ncftp-3.2.1-arm-linux.tar.gz

And patch file ncftp-3.2.1-arm-linux.patch.

Following is my try and error log.
$ wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.1-src.tar.bz2
$ tar jxvf ncftp-3.2.1-src.tar.bz2
$ cd ncftp-3.2.1
$ ./configure --host=arm-none-linux-gnueabi --prefix=/opt/arm-cc
$ make
$ file bin/ncftp
bin/ncftp: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped
Oops. I built x86 binary. It looks like configure doesn't support cross compiling. So I modified Makefile to set CC=arm-none-linux-gnueabi-gcc.
$ make clean
$ make
strip: Unable to recognise the format of the input file `../bin/ncftp'
make[1]: [../bin/ncftp] Error (ignored)

Compiling wgets.c: [ERROR]
In file included from wgets.c:9:
syshdrs.h:142:22: error: ncurses.h: No such file or directory
So, strip should be arm-none-linux-gnueabi-strip. And ncurses.h is missing. I have ncurses headers and libraries in my openembedded image. Just copy them.
$ pushd ~/openembedded/tmp/work/armv5te-angstrom-linux-gnueabi
$ pushd ncurses-5.4-r9/image/usr/include/
$ sudo cp * /opt/arm-cc/lib/gcc/arm-none-linux-gnueabi/4.2.1/include/
$ popd
$ cd ncurses-5.4-r9/image/usr/lib
$ sudo cp * /opt/arm-cc/lib/
$ popd

Alternatively, ncurses-dev.ipk could be used.
$ ssh root@zaurus
# ipkg update
# ipkg install ncurses-dev
# ipkg files ncurses-dev
Package ncurses-dev (5.4-r10) is installed on root and has the following files:
/usr/lib/libcurses.a
/usr/lib/libncurses.a
... snip ...
/usr/lib/libncurses.so
/usr/include/unctrl.h
/usr/include/term.h
/usr/include/menu.h
/usr/include/ncurses.h
Copy them back from Zaurus to PC.

Now try again.
$ make clean
$ make
one-linux-gnueabi/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
It looks like the linker doesn't know where to find ncurses library. Modify vis/Makefile to add LDFLAGS+= -L/opt/arm-cc/lib.
$ make
$ find bin/ -type f -print | xargs file
bin/ncftp: ELF 32-bit LSB executable, ARM, ...
bin/ncftpbatch: ELF 32-bit LSB executable, ARM, ...
bin/ncftpbookmarks: ELF 32-bit LSB executable, ARM, ...
bin/ncftpget: ELF 32-bit LSB executable, ARM, ...
bin/ncftpls: ELF 32-bit LSB executable, ARM, ...
bin/ncftpput: ELF 32-bit LSB executable, ARM, ...
Now I got executables for arm.

If you want to build using my patch, step would be
$ wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.1-src.tar.bz2
$ tar jxvf ncftp-3.2.1-src.tar.bz2
$ cd ncftp-3.2.1
$ ./configure --host=arm-none-linux-gnueabi --prefix=/opt/arm-cc
$ cd ..
$ patch -p0 < ncftp-3.2.1-arm-linux.patch
$ cd ncftp-3.2.1
$ make

Cheers,

というわけで、今度はAngstrom用にNcFTP Clientをビルドしてみました。

Angstromにはsftpはあるけど、普通のftpがないので。もしかして欲しい人がいれば、↓をダウンロードして使ってください。

o ncftp-3.2.1-arm-linux.tar.gz

んで、ごにょごにょしたログです。
(以下略)
posted by 安藤恐竜 at 17:43 | Comment(4) | TrackBack(0) | 日記
Comments for this entry
http://www.angstrom-distribution.org/repo/?action=details&pnm=ncftp

3.2.0ですが、ncftpのipkあるみたいです。
Posted by shizaru at 01/16/2008 21:39
あれれ?Angstrom Zaurusでipkg list | grep ftpしても出てこなかったので。

ありがとうございま・・・

ncftp 3.2.0-r0 for ppc603e (&#197;ngstr&#246;m unstable ppc603e base feed)

PowerPCですね。でも、bitbake用のパッチはありそうですね。ありがとうございました。
Posted by 安藤恐竜 at 01/16/2008 23:00
うわ、恥ずかしい間違いでした。同じ理由で以前自分でもオンデバイスビルドしたんだった。申し訳ありませんでした。
Posted by shizaru at 01/16/2008 23:03
いえいえ。feedの検索も出来るんですね、Angstrom Distributionは。自力でpatch当てする前に、一度調べてみるようにします。

shizaruさんも、AndroidなZaurusを試されたんですね。AndroidのGUIで、ようやくシステム液晶の真価がでる気がします。αブレンディングすごい綺麗すぎ。

Android動作中にHDDアクセスランプがピカピカするのは、android-root/tmpにプロセス間のshared memoryをファイルとして作成しているせいのようです。

こいつをRAMに追い出せば、速くなるはずなので、そのうちごにょごにょしたいと思ってます。
Posted by 安藤恐竜 at 01/16/2008 23:23
Leave your comment
Name: [Must]

EMail: [Must]

URL: [Must]

Comment: [Must]

Confirmation Code: [Must]


Type in alphabets what you see in this image.
Trackback URI:  http://blog.seesaa.jp/tb/78886916
Trackback entries must contain URL of this entry.

Trackbacks to this entry
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。