
ふと、思い立ってzaurusをhttp proxyにしてみようとsquidをmakeしてみました。
例によってIntel機でcross compileを始めてみましたが、引っかかりまくりです。それじゃ、self compileだとどんなもんかと、(速度面とか、互換性とか)あまり期待せずに./configure掛けてみると、
Pentium4に比べりゃメチャ遅いけど、以外とすんなり通るのに驚いた。
これなら、スピードさえ我慢すればzaurusでself compileした方が絶対楽だと思った。
これが間違いだったかも…
configureがサックリ通ったので、続いてmake all。さっくり進んでます…が、
ん? link error?
undefined reference to 'fstat'
relocation truncated to fit: R_ARM_PC24 stat
collect2: ld returned 1 exit status
調べてみると、同様の事例が結構見付かった。dev_img-1.3と言うかなりメジャーなself compile環境なんですが、
足りないライブラリがあるとの事。具体的には、libc_nonshared.aが無い為にstat系の関数が駄目らしい。
以下の方法でこれは解決できるとの事。
GROUP( /lib/libc.so.6 libc_nonshared.a )
ldconfigすると、libc.soはサイズが小さいからチェックしないよと言われるけど、確かにfstatのlinkは通った。fstatの問題をクリアしたら、何もしないでmakeが完了した。おそるべしself compile
そんなわけで、squidは無事make installでき、普通に使えた。cacheやlogはSD cardに落とすように設定した。いわゆる多段プロキシです。上位proxyとしてzaurusを使おうと。
直接zaurusで見りゃ良いじゃないかと言われそうです。そのとおりです。
でもうまく動くかどうかを試してみたかっただけです。
これも調子にのってselfでmakeしました。
SD memoryのvfat filesystem上でmakeすると、何ヵ所か引っかかります。
makeする際に、大文字ファイル(README.LIB等)をmakeが作るが、vfat上では、readme.libになる為、
それをMakefile中で参照する際に大文字で探しちゃうので、見付からずにエラーになる。
errorの出たファイル名でgrepして、Makefile側を小文字に書き換えればOK。
vfatのマウントオプションで何とかなりそうな気もするけど、まぁいいや。
やっぱりSDもext2にしたくなってきたかも。
delegated -v -P80 SERVER=http PERMIT="*:*:xxx.xxx.xxx.xxx/255.255.0.0" REMITTABLE=+,http RELAY=proxy,delegate
xxx.xxx.xxx.xxxは最初のproxyからアクセスする際に使われるグローバルIPアドレスです。http://zaurusのアドレス/-_-http://www.目的のページ.co.jp/
zaurusのアドレスは、ifconfigでppp0等のアドレスを調べましょう。繋ぐ度に変わっちゃうけど。makeしただけで何もいじっていないですが、お手軽バイナリとして置いておきます。
delegate8.8.7-arm.tgz