OpenWRTでUT-VPNを動かす 
Monday, August 6, 2012, 01:37 PM - OS / Misc
Posted by Administrator
OpenWRTでUT-VPNを動かす……ための開発環境を作る

warning: ld-uClibc.so.0, needed by /.../usr/lib/libdl.so, not found (try using -rpath or -rpath-link)
とか
cannot find -lssl
collect2: ld returned 1 exit status
とか
cannot find -lgcc_s
collect2: ld returned 1 exit status
とか
Internat.c:(.text+0x205b): undefined reference to `iconv_close'
tmp/as/Ham.a(Internat.o): In function `IconvStrToWideInternal':
Internat.c:(.text+0x208e): undefined reference to `iconv_open'
Internat.c:(.text+0x20af): undefined reference to `iconv_open'
tmp/as/Ham.a(Internat.o): In function `IconvWideToStrInternal':
Internat.c:(.text+0x20de): undefined reference to `iconv_open'
Internat.c:(.text+0x20ff): undefined reference to `iconv_open'
tmp/as/Ham.a(Internat.o): In function `UnixUniToStr':
Internat.c:(.text+0x2186): undefined reference to `iconv'
tmp/as/Ham.a(Internat.o): In function `UnixStrToUni':
Internat.c:(.text+0x2477): undefined reference to `iconv'
collect2: ld returned 1 exit status
とか
undefined reference to `SHA'
とか、その他諸々でコケるのはなにか間違っている

こんなことがあるのが根本的な問題だが、本当にそうだからワロエナイ
結論から言えば配布されているバイナリを使用してはいけない
少なくともx86ならSDKを落としてきた上でToolchainを上書きすることで通るが、MIPSでは通らない
腐ってる

ここから走り書き

$ mkdir ~/OpenWRT
$ cd ~/OpenWRT

# ソースコードをもってくる
$ svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03.1
$ cd backfire_10.03.1/
$ make menuconfig
# 基本Target System(BUFFALOは殆ど"Broadcom BCM947xx/953xx [2.4]"だろう)をあわせて"Build the OpenWrt SDK"をチェック
$ make V=99

# libiconv-full以外とってくる必要がないかもしらん
$ svn export svn://svn.openwrt.org/openwrt/tags/backfire_10.03.1/package/ncurses package/ncurses
$ svn export svn://svn.openwrt.org/openwrt/tags/backfire_10.03.1/package/openssl package/openssl
$ sed -i 's/no-sha0//' package/openssl/Makefile
$ svn export svn://svn.openwrt.org/openwrt/tags/backfire_10.03.1/package/libreadline package/libreadline
$ svn export svn://svn.openwrt.org/openwrt/packages/libs/libiconv-full@29638 package/libiconv-full

$ make package/ncurses/compile V=99
$ make package/openssl/compile V=99
$ make package/libreadline/compile V=99
$ make package/libiconv-full/compile V=99

$ cd ..
$ wget -q -O - 'http://utvpn.tsukuba.ac.jp/files/utvpn/v1.01-7101-public-2010.06.27/Source%20Code%20(Win32%20and%20Unix)/utvpn-src-unix-v101-7101-public-2010.06.27.tar.gz'|tar zxvf -
$ cd utvpn-*
$ echo -e '1\n1\n'|./configure
# それっぽい環境変数
$ export CCFLAGS="-I`echo ~/OpenWRT/backfire_10.03.1/staging_dir/target-*/include`"
$ export CCFLAGS="-I`echo ~/OpenWRT/backfire_10.03.1/staging_dir/target-*/usr/include` $CCFLAGS"
$ export CCFLAGS="-I`echo ~/OpenWRT/backfire_10.03.1/staging_dir/target-*/usr/lib/libiconv-full/include` $CCFLAGS"
$ export LDFLAGS="-L`echo ~/OpenWRT/backfire_10.03.1/staging_dir/target-*/lib`"
$ export LDFLAGS="-L`echo ~/OpenWRT/backfire_10.03.1/staging_dir/target-*/usr/lib` $LDFLAGS"
$ export LDFLAGS="-L`echo ~/OpenWRT/backfire_10.03.1/staging_dir/target-*/usr/lib/libiconv-full/lib` $LDFLAGS"
$ export LDFLAGS="-liconv $LDFLAGS"
# CCFLAGSとLDFLAGSを読むように、正直これくらい書いてあってほしい
$ sed -i 's/OPTIONS_COMPILE_[[:alnum:]]*=/&$(CCFLAGS) /' Makefile
$ sed -i 's/OPTIONS_LINK_[[:alnum:]]*=/&$(LDFLAGS) /' Makefile


後で調べてみるとここの中の人がパッチをおいてくれているのでこいつを素直に使う
$ svn diff http://lab.mitty.jp/svn/lab/trunk/Dev/u ... 01-public/ -r152:153|patch -p0
具体的にはsrc/Mayaqua/Mayaqua.h:223以降の自前定義が悪さするので"#include <iconv.h>"を入れて自前定義部分を削除すれば良い
手抜きするならifdefをifndefにするとかでもいい

$ make CC=/home/a/OpenWRT/backfire_10.03.1/staging_dir/toolchain-*/usr/bin/*-openwrt-linux-gcc LD=/home/a/OpenWRT/backfire_10.03.1/staging_dir/toolchain-*/usr/bin/*-openwrt-linux-ld
で、完成

ところで上の人のwikiの方法だと依存(OpenWRTに含まれているlibssl.soだかがSHAがないよっていう)で大丈夫なのかなあ
まあ自分で入れ替えているんだろうけど

とりあえずのばいなり
同梱されているlibopenssl_0.9.8r-1_brcm-2.4.ipkを入れないと恐らくなんかコケる
ちなみにlibopenssl_0.9.8r-1_brcm-2.4.ipkはmenuconfigでLibraries/SSL/libopensslにチェックをいれればできる

必要なパッケージ
libiconv-full_1.11.1-1_brcm-2.4.ipk
libncurses_5.7-2_brcm-2.4.ipk
libpthread_0.9.30.1-43.32_brcm-2.4.ipk
libreadline_5.2-2_brcm-2.4.ipk
librt_0.9.30.1-43.32_brcm-2.4.ipk
zlib_1.2.3-5_brcm-2.4.ipk

ちなみにWBR2-G54で動かそうと試みたが、メモリ不足だかなんだかで動かなかった
バイナリは問題ないっぽい
add comment ( 2555 views )   |  permalink

<<First <Back | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Next> Last>>