酒日記

2001 08 07

Tue, 07 Aug 2001

モルツ (5% × 500 ml)

Libretto L1 、Kondara-2.0 で pcmcia が使えなくて (起動時のカーネルオプションで acpi=off してもダメ) 仕方なく Kondara2000 で使っていたが、 pcmcia を kernel 組み込みで (モジュールでなく) 再構築すると使えるらしい、という話を Kondara-users ML で見かけたので、やってみる。

・・・しかし、kernel の再構築なんて半年ぐらいやってないぞ。デスクトップで普通に使うなら Kondara の吊るしの RPM で十分だったし。

で、必死に記憶をたどりつつ、再構築。そいつで起動すると、PCMCIA 認識は成功。 んが、PHSカードを差して ppxp でダイアルアップしてみると発呼はするものの、

Aug 08 17:50:41 [1047] CP   : LCP: Send-Configure-Request id=1
Aug 08 17:50:41 [1047] CP   :  Maximum-Receive-Unit: 1500
Aug 08 17:50:41 [1047] CP   :  Async-Control-Character-Map: 00000000
Aug 08 17:50:41 [1047] CP   :  Magic-Number: 0x223b891d
Aug 08 17:50:41 [1047] CP   :  Protocol-Field-Compression: 
Aug 08 17:50:41 [1047] CP   :  Address-and-Control-Field-Compression: 
Aug 08 17:50:41 [1047] FSM  : LCP: Closed -[Open]-> Req-Sent
Aug 08 17:50:41 [1047] ERROR: frame(LCP): bad FCS(0x1c1)
Aug 08 17:50:41 [1047] ERROR: frame(LCP): bad FCS(0xb6ee)
Aug 08 17:50:44 [1047] TIMER: LCPFSM: expire
(上記を数回繰り返し)
Aug 08 17:50:59 [1047] FSM  : LCP: Initial -[TO]-> Stopped
Aug 08 17:50:59 [1047] PHASE: Establish =DOWN=> Dead
Aug 08 17:50:59 [1047] CHAT : delay 500ms
Aug 08 17:51:00 [1047] CHAT : write "+++"
Aug 08 17:51:00 [1047] CHAT : delay 500ms
Aug 08 17:51:01 [1047] CHAT : write "ATH0\r"
Aug 08 17:51:01 [1047] OS   : close(6)
Aug 08 17:51:01 [1047] TIMER: PAUSE
Aug 08 17:51:01 [1047] TIMER: STOP

と、ERROR: frame(LCP): bad FCS(0x1c1) というエラーを数回繰り返した揚げ句に切断されてしまう模様。 うーん。惜しい(?)

気を取り直して、Ethernet カードを試してみる。んが、これも、

Aug  9 06:05:42 lib cardmgr[1463]: initializing socket 0
Aug  9 06:05:42 lib cardmgr[1463]: socket 0: NE2000 Compatible Ethernet
Aug  9 06:05:42 lib cardmgr[1463]: executing: 'modprobe 8390'
Aug  9 06:05:42 lib cardmgr[1463]: executing: 'modprobe pcnet_cs'
Aug  9 06:05:42 lib cardmgr[1463]: get dev info on socket 0 failed: No such device
Aug  9 06:05:42 lib kernel: pcnet_cs: RequestIRQ: Resource in use

こんなログを残して使用出来ず。IRQの衝突って、何が衝突しているんだろう・・・

...

まあ、アプリの実用上は Kondara2000 で十分なのだが、kondara2000 の付属の Kernel-2.2.16 だと longrun が使えない。せっかく crusoe を乗っけてるんだから longrun が使いたいなあ、と思ったわけで。

longrun 自体は kernel-2.2.18 以降で使用出来るらしいが、Kondara 謹製の kernel RPM は 2.2 系は 2.2.17 で最終のようなので 2.2.19 あたりを自前でぶち込むか・・・ とかしてるともうすっかり朝だし。こんなことしてるから寝不足感に溢れる毎日になるのだな。寝よう。


モルツ (5% × 1500 ml)

明日から夏休み・・・じゃなかった GW の代休を2日分取って4連休なので、Libretto L1 のメール環境整備。POP と mutt の設定はしてたけどSMTP の設定をしてなかった。
# 夏休みは別に取るぞ。秋になるか、冬になるか分からんが。

最初、ネットワークにさえつながっていればローカルの sendmail (/usr/sbin/sendmail) コマンドで送信できるだろ、と、.muttrc に

set sendmail="/usr/sbin/nomail"

と書いてみたのだが、相手ホストによっては送れない場合がある。 エラーメールによれば、ホスト名が localhost.localdomain になってたから拒否されてたと(^^;

sendmail の設定をちゃんとすればいいのかもしれんが、ダイアルアップで毎回 IP が変わるし、ホストによっては正引きと逆引きが一致しないと受け取ってくれないところもあるらしい。 そこらへんをちゃんとやるのは大変そうだな・・・てことで、会社で管理してる某メールサーバを POP before SMTP 対応にしてみた。

Google で「postfix pop before smtp」で検索して「Postfixとpop-before-smtp関連メモ」にあった、 todd-pop-before-smtp-1.2.tar.gz というのでやってみる。

インストールに先立って、Perl のモジュールを二つほど追加。

  • Net::Netmask
  • Date::Parse

todd-pop-before-smtp-1.2.tar.gzを展開して、pop-before-smtp を /usr/local/bin にコピー。popbsmtp.init を /etc/rc.d/init.d にコピー。

popbsmtp.init は、

< pgm=/usr/local/bin/$progname
> pgm=/usr/sbin/$progname

と変更。 chkconfig --add popbsmtp.init で起動時に起きるように設定。

Postfix 側の設定は、main.cf に

smtpd_recipient_restrictions = permit_mynetworks,
                               check_client_access hash:/etc/postfix/pop-before-smtp,
                               check_relay_domains

を追加。 pop-before-smtp が /var/log/maillog を監視して DB に保存。
Postfix は DB を参照して、POP 認証を通ったIPアドレスからは一定期間 SMTP リレーを受け付ける、という流れ。

と、やってみるが・・・だめ。というか、POP認証を通っても DB が 更新されていないようで。ソースを見てみると

my $pat = '^(... .. ..:..:..) \S+ (?:ipop3d|imapd)\[\d+\]: ' .
          'Login user=\S+ host=(?:\S+ )?\[(\d+\.\d+\.\d+\.\d+)\]';

という行がある。これが maillog にマッチしたら DB に登録するようだが、そのサーバで使ってる POP サーバは ipop3d でも imapd でもなくて、qpopper だった。ログの形式が違うので、マッチしなかった、というオチ。

qpopper のログは

Aug  8 19:28:21 xxxxxx in.qpopper[24576]: Stats: username 0 0 0 0 ****.****.mal.jp.rim.or.jp 202.247.***.***

(一部伏せ字) のような形式なので、それにマッチするように正規表現を書き換え。具体的には

my $pat = '^(... .. ..:..:..) \S+ (?:in.qpopper)\[\d+\]: ' .
          'Stats: \S+ \d+ \d+ \d+ \d+ (?:\S+ )?(\d+\.\d+\.\d+\.\d+)';

こんな風に。


powered by blosxom