Wednesday, January 8, 2014, 10:15 - OS / Misc
Posted by ELIN
先日SoftEther VPNのソースコードがようやく公開されたので早速やる

まずOpenWRTのSDK環境を用意する
OSはLinuxなら何でも良さそうだが、こういう用途は(私の中で)Debianと相場が決まっているので、DebianのVMを用意するところから始める
……が、インストールすら面倒なのでDebianベースのTurnKey Coreを使うことにした

最初に最低限度必要になるものをインストール
# apt-get install -y subversion make gcc g++ libncurses5-dev libghc-zlib-dev gawk bzip2 patch

次にSDKだが、以前横着した結果、どうでもいい地雷を踏んでしまったので、今回は最初からsvnを使う
# svn co svn://svn.openwrt.org/openwrt/tags/attitude_adjustment_12.09
# cd attitude_adjustment_12.09

このままではiconv-fullが含まれていないので
# svn export svn://svn.openwrt.org/openwrt/packages/libs/libiconv-full@29638 package/libiconv-full

さて、SoftEther VPNをmakeするときに起きる問題はUT-VPNのときと同様の問題で、大まかに
1. SoftEther VPNのmakefileがCCFLAGS/LDFLAGSを渡さない
2. Mayaqua.hのiconvに関わる部分がザコってる
3. libopensslのコンパイルオプションにno-sha0が付いている
の3点
1と2に関してはパッチで対応し、3は手動で書き換える必要がある

先に3の問題を修正する
# sed -i 's/no-sha0//' package/openssl/Makefile
次にSoftEther VPNの用意だが、UT-VPNのときと同様にSDKでパッケージできるmakefileを書いたので、特別な理由がなければそれを使えばよい
# git clone https://github.com/el1n/OpenWRT-package-softether.git package/softethervpn

そしてSDKの設定
ちなみにrootで実行しようとすると警告が出て走らない
一見FORCE=1で動きそうだが、defconfig/menuconfigは通っても後述するmakeは通らないので一般ユーザへsuする必要がある
chownも忘れずに
$ make defconfig
$ make menuconfig

設定画面でTarget Systemを必要なら変更し、Network/VPN以下のSoftEther VPNで必要なものにチェックを入れる

最後にmakeする
今回はあくまでSoftEther VPNのパッケージ化なので、OpenWRTのイメージをもmakeする必要はない
従って
$ make prepare
$ make package/softethervpn/compile V=99

と、する
それにしても時間は(本当に)相当かかる

正常に終了すれば
# find bin
bin
bin/ar71xx
bin/ar71xx/packages
bin/ar71xx/packages/terminfo_5.7-5_ar71xx.ipk
bin/ar71xx/packages/libgcc_4.6-linaro-1_ar71xx.ipk
bin/ar71xx/packages/zlib_1.2.7-1_ar71xx.ipk
bin/ar71xx/packages/libncurses_5.7-5_ar71xx.ipk
bin/ar71xx/packages/libreadline_5.2-2_ar71xx.ipk
bin/ar71xx/packages/librt_0.9.33.2-1_ar71xx.ipk
bin/ar71xx/packages/softethervpnbridge_4.03-9408_ar71xx.ipk
bin/ar71xx/packages/softethervpnserver_4.03-9408_ar71xx.ipk
bin/ar71xx/packages/libpthread_0.9.33.2-1_ar71xx.ipk
bin/ar71xx/packages/softethervpnclient_4.03-9408_ar71xx.ipk
bin/ar71xx/packages/libopenssl_1.0.1e-1_ar71xx.ipk
bin/ar71xx/packages/libc_0.9.33.2-1_ar71xx.ipk
bin/ar71xx/packages/libiconv-full_1.11.1-1_ar71xx.ipk
bin/ar71xx/packages/softethervpncmd_4.03-9408_ar71xx.ipk

このように.ipkが生成される

できたのがこちら
softethervpnserver_4.03-9408_ar71xx.ipk
softethervpnclient_4.03-9408_ar71xx.ipk
softethervpnbridge_4.03-9408_ar71xx.ipk
softethervpncmd_4.03-9408_ar71xx.ipk
libopenssl_1.0.1e-1_ar71xx.ipk
OpenWRT 12.09 ar71xx用

あとはOpenWRTへのインストールを残すのみだが、まず必要となるパッケージ
zlib
libpthread
librt
libreadline
libncurses
libiconv-full
をインストールする

そして先程makeしたlibopensslのパッケージをインストールするのだが、これがmd5sum mismatchで弾かれてしまう
これを回避するためにはシェルで
# rm /var/opkg-lists/attitude_adjustment
と、パッケージリストを一度削除し、インストールする必要がある

その後にSoftEther VPNをインストールして完了
1 comment ( 11466 views )

<<First <Back | 1 | 2 | 3 | 4 | Next> Last>>