contents
  1. 無線LANの機器構成
  2. メール
    1. fetchmail
    2. procmail
    3. mutt
    4. nomail
  3. ntpdate
  4. Web
    1. Netfrontのキーバインド
    2. NetfrontのHTTP_USER_AGENT
  5. SDカード
  6. コマンドライン
  7. vim
  8. copy & paste
  9. Keyhelper

リナザウのこと

無線LANの機器構成

  • corega WLBAR-54GT SetCBW/S
    • WLBAR-54GT (ルータ+アクセスポイント)
    • WLCB-54GT (CardBusアダプタ)
  • corega WLCFL-11 (CF型アダプタ)

まずThinkPadから有線で接続、asahi-netのアカウント情報などセットアップ。 ThinkPadにWLCB-54GTを挿入すると勝手にドライバがインストールされ、 あっさり接続確認。 WEPキーとMACによる接続制限をして完了。 リナザウ側も コレガ からダウンロードしたドライバを導入するだけで無事接続確認。

セクションの編集

メール

最大の目的と言って良いメール。標準のメーラは腐ってると名高いが、 どのへんが腐ってるか実感する前にメールの受信漏れ (自分宛に出したはずのメールが受信できたりできなかったり) が発生したので、買って1週間目でさっさと捨て。 リナザウでも使い慣れたmewでと行きたかったが、 emacsを入れると明らかにメモリが足りなくなりそうだったのと、 このキーボードでコントロールキーを多用するemacsは果たして 使いやすいのかという疑問もあったりで、とりあえずmuttを使ってみることに。 muttはメールの送受信は自分ではできないので、

  • 受信:fetchmail+procmail
  • 読み書き:mutt
  • 送信:nomail

という組み合わせになる。

fetchmail

パッケージをもらって来て普通にインストール。 so-net、asahi-net、rimnetと3つのメールアカウントがあって、 全てのメールをOpenBlockSに集約しているので、 リナザウで先にメールを取ってしまわないよう、keepオプションを付ける。 また、外出中のほとんどはPHSでの通信となるため、 大きなメールは受信できない。so-netに、プライベートな (従って優先度の高い、かつサイズの小さい)メールを集めるようにして、 so-netからのみ受信するようにしている。

[~/.fetchmailrc]
 set nobouncemail
 defaults
        protocol APOP
        uidl
        keep                                                  
        no mimedecode
        mda "/usr/bin/procmail"
 poll pop.tg8.so-net.ne.jp
         username "xxx"
         password "xxxxxxxx"

muttはMaildir形式のメールボックスを扱うので、受信したメールを Maildir形式で保存するため、ローカルメーラとしてprocmailに渡す。

procmail

これは、Maildir形式で保存するためだけに使っており、 メールボックスの振り分けなど一切していないので、設定ファイルは 恐ろしくシンプル。

[~/.procmailrc]
 PATH=/bin:/usr/bin:/usr/local/bin
 MAILDIR=$HOME/Maildir
 DEFAULT=$MAILDIR/mbox/
 LOGFILE=$MAILDIR/procmail.log
 LOCKFILE=$MAILDIR/.lockmail

mutt

何年か前に試した時は、結局良くわからないまま挫折したのだが、 案外使える。

{{code(~/.mutt/muttrc}

set sendmail="/usr/sbin/nomail"
set realname="Fromに入る名前"
set from="Fromのアドレス"
set hostname="tg8.so-net.ne.jp"
set mbox_type=Maildir
set spoolfile="/var/mail/zaurus"
set mbox="+mbox"
set record="+outbox"
set postponed="+postponed"
set tmpdir="~/Maildir/tmp"
set editor="vi %s"
# w3mをページャにするとURLをそのままリンクとして利用できて便利だが、
# 前後のメールに移動するのに手間が増えるので不採用
#set pager="w3m"
auto_view text/html
#auto_view text/plain
auto_view image/jpeg
auto_view application/vnd.ms-excel
mailboxes "+mbox" "+mac"
# I use fetchmail&procmail
# set pop_host="pop://nanashi@example.com"
# 以下、アドレスのエイリアス
alias abc abc@xxx.yyy

}} pagerをw3mにしておくと、メール本文中のURLに直接アクセスできたりして 便利なのだが、前後のメールに移動など一手間増えて面倒なので 常に使う気はしない。メール閲覧中に外部ビューアとしてw3mを起動できれば 良いのだが、残念ながらそんな機能は無い。 仕方ないので、set pager=w3mが有効になったmuttrcを別途用意し、 こんなコマンドを作って使い分けている。

alias muw='rm ~/.mutt/muttrc; ln -s ~/.mutt/muttrc-w3m ~/.mutt/muttrc; mutt -y; rm ~/.mutt/muttrc; ln -s ~/.mutt/muttrc-org ~/.mutt/muttrc'

美しくはないが、自分で使うには充分。

nomail

配信可能なユーザとかローカル配信とかいろいろ機能はあるらしいが、 リナザウで使うにあたっては全然必要ない。/etc/nomail.confでの 設定項目は、

  • internetaddr
  • smtphost

のみ。

smtphostは、自宅で無線LANで使っている時(asahi-net)と外出中に Bitwarp-PDAで使っている時(so-net)とで使い分けないと エラーになってしまうのだが、どうやら/etc/nomail.confを 書き換えるしか方法が無いらしい。そんなものいちいちやってられないので、 このようなスクリプトを自作して使っている。

#!/bin/sh
MY_CONF_FILE=/home/zaurus/etc/nomail.conf
CONF=""
ifconfig ppp0 > /dev/null 2>&1
if [ $? = "0" ] ; then
  CONF="so-net"
else
  ifconfig eth0 > /dev/null 2>&1
  if [ $? = "0" ] ; then
    CONF="asahi"
  fi
fi
if [ "$CONF" != "" ] ; then
  echo "setting nomail.conf for $CONF ..."
  rm $MY_CONF_FILE
  echo "rm $MY_CONF_FILE"
  CONF_FILE="/etc/nomail.conf."$CONF
  ln -s $CONF_FILE $MY_CONF_FILE
  echo "ln -s $CONF_FILE $MY_CONF_FILE"
  exit 0
else
  echo "No active network device."
  exit 1
fi

立ち上がっているネットワークインタフェースが、ppp?かeth?かによって プロバイダを判断し、confファイルを切り替えている。 これを/home/zaurus/bin/nomail_send.shとして保存 (良く考えるとちっとも"send"してないので名前がおかしい)、 .zshrcで

a no="/home/zaurus/bin/nomail_send.sh && nosend"

としている。

セクションの編集

ntpdate

メールするならこれは必須。メールの時刻は猫の髭より大事。 ネットワーク接続をトリガーに時刻同期を行うため、 /etc/ppp/ip-upに

NTPLOG=/home/zaurus/Documents/ntpdate.log
/usr/bin/ntpdate ntp.ring.gr.jp >> $NTPLOG 2>&1
tail -10 $NTPLOG > /tmp/ntpdate.log
mv /tmp/ntpdate.log $NTPLOG
chmod 644 $NTPLOG

を追加。普通のサーバならcronでntpdateしかけて、後はsyslog任せで 終わりなのだが、そもそもsyslogなんてものは無い。一応直近のログは 取っておきたいので、こんな感じに。

セクションの編集

Web

メールの次はWeb。つーか、使ってる時間は当然メールよりWebのが長い。 ブラウザは標準のNetfrontとw3mの併用。PC/Linux/zaurus/Internet関連の 調べものをする時は、ほとんどw3mで事足りるのだが、一般人が見そうな ページは今やスタイルシートが無いとわけわかんなくなってきてるので、 仕方なくNetfront。でもそんなページをSL-C860のCPUでレンダリングするのは 結構辛かったり。最初は回線が遅いんだろうなと思ってたのだが、 どうもそうではない。NetfrontはJavaScript/スタイルシートは だいたい問題無いのだが、flushが使えない。flushページ用に Konquerorも入れているが、ほとんど使っていない。

Netfrontのキーバインド

Fn+←がたまに動かなくなるのは何故だ? 単に遅いだけか?

Fn+bタブを閉じる
Fn+m今開いているページを新しいタブで開く
Fn+nリンク先を新しいタブで開く
Fn+o新しいタブでページを開く
Fn+f検索ツールバーの有無
Fn+aテキストをすべて選択
Fn+dお気に入り登録
Fn+hホーム表示
Fn+sページページメモ保存
Fn+dブックマーク保存
Fn+z or Ctrl+z表示サイズ変更
Fn+↑↓フレーム移動
Fn+r更新
Fn+←戻る
Fn+→進む
Menu,←,←ロケーションバーにフォーカス

NetfrontのHTTP_USER_AGENT

2005年4月くらいから、googleがwmlproxyのサービスを始めたらしい。 携帯端末からアクセスされたらシンプルな検索フォームと検索結果を返す。 それだけなら良いのだが、検索結果は本来の飛び先サイトのコンテンツを 勝手にWMLに変換して下さる。アクセスが集中するgoogleにとって 結構な負荷だろうに。普通は嬉しいのだろうが、はっきり言って ありがた迷惑だ。こっちはれっきとしたVGAだ。そのへんのi-modeだの H"Phoneだのと一緒にするな。

NetfrontのHTTP_USER_AGENTは、

Mozilla/4.0 (PDA; SL-C860/1.0,OpenPDA/Qtopia/1.3.2) NetFront/3.0

こうなっていて、ちっとずつ削って試したところ、後ろの"NetFront"を見て 判断しているらしい。レベルはどうやら関係ない。 デスクトップでNetfront使ってる人なんかもういないのだろうか? まぁ、他に実害が無いか、実際にあちこち行ってみないとわからんので、 とりあえず"Netfront"を削って、

Mozilla/4.0 (PDA; SL-C860/1.0,OpenPDA/Qtopia/1.3.2)

としてしばらく様子を見ることに。

セクションの編集

SDカード

リナザウ用に256MのSDカードを購入。symbolic linkとか、muttのメールボックスとか、 ext2じゃないと困る場面がある一方で、FATにしておかないと USBストレージとして使えない。さらにSWAPも作っておきたいので パーティションを3つに切ることに。普通にfdiskで

 /dev/mmcda1  FAT 160M
 /dev/mmcda2  swap 32M
 /dev/mmcda3  ext2 64M

のように分割。それぞれformatした後、device fileが1,2までしか 用意されていないので、

 mknod /dev/mmcda3 b 60 3
 mkdir /mnt/sd3
 mount /dev/mmcda3 /mnt/sd3

で確認。fstabにswapを追加。

zaurus% cat /etc/fstab
/dev/mtdblock2  /               jffs2   ro,noatime      1  1
/dev/mtdblock3  /home           jffs2   defaults,noatime        1  2
none            /dev/shm        tmpfs   size=1m,noauto  0  0
/dev/hda1       /mnt/cf         auto    noauto,owner    0  0
/dev/mmcda1     /mnt/card       auto    uid=500,noauto,owner    0  0
/dev/mmcda2     swap            swap    defaults        0  0
none            /dev/pts        devpts  gid=5,mode=620  0  0

次に、SDカードの挿抜を制御している/etc/sdcontrolを改造。

zaurus% diff -uw sdcontrol.org sdcontrol                                 [/etc]
--- sdcontrol.org       Sat Apr  3 11:20:00 2004
+++ sdcontrol   Sun Apr 10 12:29:50 2005
@@ -9,7 +9,9 @@

 ACTION=$1
 DEVICE=/dev/mmcda1
+DEVICE2=/dev/mmcda3
 MOUNT_POINT=/mnt/card
+MOUNT_POINT2=/mnt/sd3
 SMB_MOUNT=/home/samba/SD_Card
 INSTALL_DIR=Documents/Install_Files
 FSTYPE="-t vfat"
@@ -107,6 +109,8 @@
                         kill -HUP "$STORAGE_PID"
                 fi
         fi
+        mount $FSTYPE2 $DEVICE2 $MOUNT_POINT2
+        /sbin/swapon -a
         ;;
 'eject')
         if [ $STORAGE_DEV = $DEVICE ]; then
@@ -121,6 +125,8 @@
        else
                exit 1
         fi
+        umount $MOUNT_POINT2
+        /sbin/swapoff -a
         ;;
 'compeject')
         if [ $STORAGE_DEV = $DEVICE ]; then

'insert'ではswapon -aして、'eject'でswapoff -a。swap使用中にswapoff したらどうなるのだろう。まぁ、基本的にはejectしないので、 あまり気にしないことに。

実際に挿入してみると、自動的にmountされてswapも有効になる。 これでOKと思ったら、rebootするとエラー発生。何とdevice fileが 消えている。/dev/mmcda[1-2]の日付は2003/6なので、毎回作っている わけではないはず。良くわからんのでboot時にmknodするスクリプトを 作成。

[/etc/rc.d/init.d/mkdev]
 #!/bin/bash
 #
 # /etc/rc.d/init.d/mkdev - make device file for /dev/mmcda3
 #
 case "$1" in
     start)
         /bin/mknod -m 644 /dev/mmcda3 b 60 3
         ;;
     stop)
         ;;
     restart)
         ;;
     *)
         echo "Usage: $0 (start|stop|restart)"
         exit 1
         ;;
 esac
 exit 0
zaurus% chmod 755 /dev/rc.d/init.d/mkdev
zaurus% ln -s /etc/rc.d/init.d/mkdev /etc/rc.d/rc3.d/S01mkdev
zaurus% ln -s /etc/rc.d/init.d/mkdev /etc/rc.d/rc5.d/S01mkdev

今まで意識したことが無かったが、/etc/inittabを見ると runlevelは5らしい。who -rは無い。

セクションの編集

コマンドライン

qcop QPE/KeyHelper "enable()"
KeyHelperの変更反映
netctl -c WLAN0
ネットワーク接続
netctl -d
ネットワーク切断
セクションの編集

vim

エディタは長らくjviを使っていたが、howmを使いたいのでvimを入れることに。 vim-6.1+香り屋パッチ を使う。さすがにjviに比べると起動に0.5秒くらいかかるが、emacsよりましだろう。 Zaurus 別館から落せるパッケージはどうもおかしい。 環境のせいなのかわからんが、第一引数を見ていない。

セクションの編集

copy & paste

誰かTerminalでcopy & pasteする方法を教えてください。X/Qt入れないと ダメですか? つーか、X/Qtならできるのでしょうか? 何で情報無いのだろう?

セクションの編集

Keyhelper

工事中。

Last modified: 2011-03-20 by Unknown