物好き者

物好き者が行ったことを載せています。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

smtp認証機能が無い機器からのメール送信に挑戦13

WHR-HP-G54とWLI-TX4-G54HPへのSDカード取り付けがうまくいっていないため、perlやOptwareのインストールが出来ません。

smtp認証機能が無い機器からのメール送信に挑戦9 で、http://www.cip.ifi.lmu.de/~colberg/openwrt/bin/kamikaze/7.09/atheros-2.6/ のパッケージのうち、libdb1-compat_2.1.3-1_mips.ipk・libgdbm_1.8.3-1_mips.ipk・perlbase-gdbm-file_5.8.8-3_mips.ipk をインストールしましたが、smtpproxが動作しませんでした。

http://www.cip.ifi.lmu.de/~colberg/openwrt/bin/kamikaze/7.09/atheros-2.6/ にはperl関連のパッケージがいろいろとあるので、すべてをLaFoneraに接続したSDカードにインストールしてみました。

http://www.cip.ifi.lmu.de/~colberg/openwrt/bin/kamikaze/7.09/atheros-2.6/ から、perl関連のパッケージをすべてPCにダウンロードしました。

LaFoneraにインストールしたOpenWRTのSDカードにファイルを転送して、ipkg install *.ipkとしたところ、途中で止まってしまいました。
シェルスクリプトで、パッケージ名を指定してインストールしましたが、ipkg: fork failed: Cannot allocate memory でインストールできなくなってしまいます。
インストール時に/tmpパッケージファイルを解凍してコピーしますが、パッケージのうち容量が大きいものは/tmpに入りきらないため、エラーとなるようです。しかも、エラー後に解凍ファイルを削除しないため、その後のパッケージインストールもエラーとなってしまうようです。

このため、エラーとならないものだけをインストールしました。
インストールするときに - はけの徒然日記 によると、ipkgはtar+gzで圧縮してあるものということです。
このため、SDカード上で解凍したファイルをコピーすることで、ipkg install が出来なかったパッケージをインストールしました。

smtpproxを実行すると、今まで発生していたエラーは出なくなりましたが、別のエラーが発生しました。
perl invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0
Call Trace:[<800492ec>][<800492ec>][<8009041c>][<800920d4>][<800920bc>][<80094bb0>][<8008f080>][<8009cdf8>][<8009e020>][<8004d160>][<80052b7c>][<80052018>][<800b7af4>][<800b5f04>][<800b5e10>][<800431a0>][<800431a0>]
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:1746 inactive:285 dirty:0 writeback:0 unstable:0
free:127 slab:740 mapped:1 pagetables:95 bounce:0
DMA free:508kB min:508kB low:632kB high:760kB active:6984kB inactive:1140kB present:16256kB pages_scanned:12737 all_unreclaimable? yes
lowmem_reserve[]: 0 0
DMA: 1*4kB 3*8kB 0*16kB 3*32kB 0*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 508kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 0kB
Total swap = 0kB
Free swap: 0kB
4096 pages of RAM
0 pages of HIGHMEM
691 reserved pages
4725 pages shared
0 pages swap cached
Out of memory: kill process 1771 (perl) score 684 or a child
Killed process 1772 (perl)
klogd invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0
Call Trace:[<800492ec>][<800492ec>][<8009041c>][<800920d4>][<800920bc>][<80094bb0>][<802147ec>][<8018470c>][<80214a80>][<8008f080>][<8017f000>][<8009e020>][<800b49cc>][<8004d160>][<8007b2b4>][<8022622c>][<800632f0>][<80063278>][<8007b2b4>][<800431a0>][<8004b4e0>]
Mem-info:
DMA per-cpu:
CPU 0: Hot: hi: 0, btch: 1 usd: 0 Cold: hi: 0, btch: 1 usd: 0
Active:1746 inactive:285 dirty:0 writeback:0 unstable:0
free:126 slab:741 mapped:1 pagetables:95 bounce:0
DMA free:504kB min:508kB low:632kB high:760kB active:6984kB inactive:1140kB present:16256kB pages_scanned:12737 all_unreclaimable? yes
lowmem_reserve[]: 0 0
DMA: 0*4kB 3*8kB 0*16kB 3*32kB 0*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 504kB
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap = 0kB
Total swap = 0kB
Free swap: 0kB
4096 pages of RAM
0 pages of HIGHMEM
691 reserved pages
4725 pages shared
0 pages swap cached

メモリが足りなくなっているようなので、smtpproxを、下記のように変更しました。
my $syntax = "syntax: $0 [--children=1] [--minperchild=1] ".
"[--maxperchild=1] [--debugtrace=undef] ".
"listen.addr:port talk.addr:port\n";

my $children = 1;
my $minperchild = 1;
my $maxperchild = 1;


エラーが発生しなくなりましたので、telnetによる接続を実行してみましたが、応答が有りません。
パケットをキャプチャすると、smtpproxとSMTPサーバーで通信が行われていますが、SMTPサーバーからの応答がクライアントに届いていないようです。
このため、クライアントからSMTPコマンドを発行できずにタイムアウトになっています。

クライアントとsmtpprox間のパケットをキャプチャしようとしましたが、SDカードがエラーとなってしまい、perlが使えなくなってしまいました。
WindowsでSDカードをフォーマットしてもエラーとなってしまいます。また、Linuxでfdiskをしても、その設定が書き込み出来ません。
SDカードがおかしくなってしまったようです。別のSDカードを入手する必要がありそうです。

ただ、perlパッケージをインストールすることでsmtpproxがある程度動作することが判りましたので、LaFoneraにperlパッケージをインストールしてテストしていくことにします。
必要最低限のperlパッケージを見極めることが出来れば、SDカードが無いLaFoneraでも動作させることが出来るので、これを行うことにします。

スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する
 

承認待ちコメント

このコメントは管理者の承認待ちです

| | 2012年02月18日(Sat)04:08 [EDIT]


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。