w3mをキー登録 (2006.10.7)
mysql python iptables などの設定 (2005.5.14)
OpenSSH TeX Apache+PHP USB-host などなど(2004.11.23)
とうとうSL-C3000を買いました(2004.11.14)
久しぶりのアップとなりました。使っていて特に不便が無かったということか,単に忙しかったということか,日付をみるとZau関係では1年以上ご無沙汰でした。 世の中W-ZERO3でしばし盛り上がっているようですが,Zaurusの新製品はでないのかな・・・などと思う日々です。
通勤の合間などに,BitWarpとw3mを使ってネットをみる機会が増えました。また,スケジュール管理もlocalのWEBで行っています。そこで,どうしても手早くw3mを起動したり,w3mにスイッチしたいことが増えたので,以下のスクリプトを仕込んで,アイコンに登録。次に設定タブのキー設定を使って,カレンダーボタンにこのスクリプトを登録しました。
次のスクリプトです。if文は,二重起動防止のため。ps の -N オプションは,このスクリプト中の「grep w3m」がひっかからないように。
#!/bin/bash
export HTTP_HOME=http://localhost/
U=`ps -N | grep w3m`
if [ -z $U ]; then
exec embeddedkonsole-ja -e /hdd2/QtPalmtop/bin/w3m
else
qcop QPE/System 'notBusy(QString)' embeddedkonsole-ja
qcop QPE/System 'execute(QString)' embeddedkonsole-ja
fi
よく理解していないのですが,バックグランドに回っているアプリを前面に呼び出すためには,notBusyとexecuteを順に送らないとだめなようです。executeの代りに,QPE/Application/embeddedkonsole-ja 'raise()'でもいいようです。
ほんの微調整ですが,ずいぶんと使いやすくなりました。
久しぶりに母艦の環境に手を入れ,Vine2.6CRからVine3.1CRに変更しました(TV録画やmplayer,印刷周りなどの設定にちょっとてこずりましたが)。2.6へのバージョンアップはなかなかやれないでいるうちに時間が経過してしまった経験から,できるだけ早い時期にやっておこうということで,私にしては早い作業でした。
ということでまずはusbnet関連ですが,Vine3.1では特に手を加える事なく標準でSL-C3000を認識しました。開発のかたがたの素早い対応に頭が下がる思いです。また,母艦との接続に使うスクリプト類も全く問題なく動きました。
以前にSL-C700にもインストールしていたMysqlをいれました。全て本体メモリに入れ,パッケージはmysql_3.22.32-2_arm.ipkですが,特に問題なくインストールは完了しました。システムブート時の起動用設定も自動で/etc/rc.d/内に行われます。
早速デスクトップで使っていた,Postgresqlを使った技術メモのデータベース(というとちょっと大袈裟なんですが)データの一部をSL-C3000に持ち込みました。これを以前インストールしていたApacheとPHPを使ってウェブ経由で引けるようにしました。当然httpd.confなどを使ったアクセス制限はかけていますが,SL-C3000上だけではなく,usbnetやethernet経由でも引けるようにして,プチデータベースをどこでも持ち歩けるような環境ができあがりました。
今のところデータを検索するだけですが,登録できるようにするのも簡単なことなので,そのPHPスクリプトも仕込もうと考えています。(ただ,母艦の側のデータベースと同期をとる作業も必要になりますがこれは新たな宿題ということで。)
これができあがると,スケジュール管理も自前のデータベースでやる衝動に駆られます。でも,LinuZau ToolBox(http://tbox.jpn.org/wiki/linuzau/wiki.cgi?zdbat)で公開されているzdbatが強力なので,これを活用させていただき標準のdatebookとリンクさせた方が手軽なのかななどと思案しています。ただ自分の使い方では,ポケットに入っている「2代目」SL-A300で現場でスケジュール入力,というケースも少なくないので,こちらとの連携の取り方が工夫のしどころとなりそうです。A300のxmlデータも捨て難いんですよね。一件ごとに赤外線通信で転送かな・・・(笑)。
pythonの勉強もしたいと考え, http://pyqplayer.sourceforge.net/cgi-bin/bin/view/Main/PyqPlayerDownload から,python-exe_2.4.0-1_arm.ipkとpython24.ex2.gzをダウンロード。 python-exeをインストールしました。 Python Zaurus Imageのほうは,read-onlyとwritableのものがありますが,サイズは大きいもののwritable imageの方をいれました。ストレージに余裕があるというのはいいもんですね! 以前debianのパッケージからSL-C700にexpectを入れようとしてうまく行かずに止めていたんですが,python版のpexpectというのがあるということで,それもインストールしやすくするために書き込み可能な方を入れたのです。インストール後,本体を再起動させるか,一回起動スクリプトを走らせるかすると,loopback device を使って自動でイメージを/hdd2/QtPalmtop/lib/python2.4にマウントします。
pexpectについてはhttp://pexpect.sourceforge.net/からダウンロード・解凍してこのフォルダ内にコピーすればOKです。 epectが使えるようになったので,自宅LANでのNASをホーム画面のアイコンをタップしてmount,unmountするなどして使っており,重宝しています。
Zaurusのpython に関する情報は、Python for Mobile Devices からがたどりやすかったです。
それから,いよいよというか,やっとというかBitWarpを契約し,Zaurusでのモバイル環境が整いました。携帯電話を持たない主義?でやってきましたので,移動通信手段として安価なPDAコースを選択。 やっぱり,それほど速度は出ませんが,メールチェックが主になりますし,ウェブについても優秀なw3mを使わせていただけば,十分実用になります。
ちなにみ,w3mの起動時に表示させたいページの指定は,
$ export HTTP_HOME=file://***
と行います。これをshellの設定ファイルに書いておきます。もちろんfile://ではなくて,ウェブページならhttp://***です。起動時に開くページについて,w3m内のオプション設定は無いのですよね(実は結構捜し回りました。笑)。
ここで,当然ながらインターネット側から丸見えになります。実際に他のプロバイダ経由で実験したら(危険だって!)C3000のapacheもsshdもきちんと返事をしました。 で,iptablesのインストールと設定,早速アクセス制限の見直しを行いました。
まず,ありがたいことにSL-C3000用のiptablesが,「きまぐれ日記」さん(http://www.neuro.ie.u-ryukyu.ac.jp/~sira/index.php?%A4%AD%A4%DE%A4%B0%A4%EC%C6%FC%B5%AD%2F2005-02-11)で公開されています。早速ダウンロードさせていただきインストールしました。
iptabelesのnetfilterのポリシーをどうするかは,なかなか(自分には)難しいのですが,とりあえずインターネット経由でZauに直接アクセスする機会はまず無いと思いますので,ppp0経由での接続要求は一括して弾くようにしてみました。 総本山「日本のLinux情報」内のhttp://www.linux.or.jp/JF/JFdocs/INDEX-network.htmlの関連ドキュメントを熟読して,徐々にチューンアップして行くことが必要ですね。
とにかく,iptablesをシステム起動時に有効になるように,/etc/rc.d/rc5.d/内に登録しました。ネットワーク関連の物より前に起動させておく必要があるのでしょうから,フォルダ内をよくみて,
# ln -s ../init.d/iptables.sh S07iptables
としました。Sの後の番号は環境によりますのでご注意を。また,iptables.shは,iptablesの起動用スクリプトで, iptable_filterのモジュールのロードと,フィルタの設定を行っています。
購入以降,マシンパワーを生かすべく様々な設定をしたメモです。特に,PHPが使えるようになったこと,また待望のpLaTeXの環境ができたことが,とっても嬉しいです。
GUIのインストーラではだめとのことで
# ipkg install openssh-server_3.6.1p1_arm.ipk openssh-client_3.6.1p1_arm.ipk openssh-addon_3.6.1p1_arm.ipk
として,3つをインストールしました。あとは, 「Zaurus ハマリ道」(http://park11.wakwak.com/~nkon/homepc/zaurus/config/ssh.html) や「Fedoraで自宅サーバー構築」 (http://fedora.zive.net/openssh.shtml) を参考にさせて頂きながら,鍵を作り,inetd 経由でC3000のデーモンを起動するようにしました。
また,A Way Out(http://club.h14m.org/kenji/diary/?200306c#200306220)を参考に/etc/inetd.conf が,
ssh stream tcp nowait root /usr/sbin/sshd sshd -i -q -f /etc/ssh/sshd_config
となっているので,
ssh stream tcp nowait root /usr/sbin/tcpd /usr/sbin/sshd -i -q -f /etc/ssh/sshd_config
に変更しておきました。
apache-1.3.27-php-4.2.3_0.1_arm.ipkをダウンロード。普通にインストールすると /home がいっぱいになって正常にインストールが終了しないようです。この状態でうまく動くのかは確認していませんが,とにかくエラーを出さないために
# ln -s /hdd2/www /home/www
として凌ぎました。http documents 本体は /home/www/htpdoc/以下に/hdd3以下からリンクを張り,/home の不足に対処しました。その結果,/home はほとんど減少せずに済みます。ただ,/hdd3がvfatなのが,こういったリンク張りまくりの状態では,やっぱりちょっと不便ですね。
/home/www/bin/apachectl をC700のときと同じように修正し,/etc/rc.d/init.d/httpd としてコピーします。次に,boot時とshutdown時とreboot時にapacheを起動・終了するように, ../init.d/httpdをrc.d/rc5.d/S90httpd とリンクさせます。同じく ../init.d/httpdとrc.d/rc0.d/K90httpdとrc.d/rc6.d/K90httpdリンクさせます。
また,何故かphp.ini が見つかりませんでした。以前のようにglobal 変数を使うように変更できません。 LAN内でしか使いませんが,一応セキュリティー上global変数は使わない方が良いのだろうから,自分のコードをなおすことにします。また,C700からもってきたPukiWikiは無事動いてくれました。
MakinoTakaiさん(http://www.snowelm.com/~t/doc/tips/20031120.ja.html)のページからイメージファイルをいただきました。/mnt/ptexにマウントするのが前提のようなので
# mkdir /mnt/ptex
とマウントポイント作成。
# ln -s /hdd3/ptex/mount-ptex-sys /etc/rc.d/rc5.d/S92mount-ptex-sys
とリンクを張りました。前者はイメージファイルをmountするためのスクリプトです。imgは /hdd3/ptex/ptex312-gs707.img において,システム起動時にこのスクリプトを呼び出して,imgをマウントするようにしました。
次に/home/zaurus の .bashrc に
TEXMF=/mnt/ptex/share/texmf
export TEXMF
PATH=/mnt/ptex/bin:$PATH
と挿入。.bash_profile には
TEXMF=/mnt/ptex/share/texmf
export TEXMF
PATH=/mnt/ptex/bin:/hdd2/QtPalmtop/bin:~/bin:$PATH
と挿入。
また,emacs をインストールし,加えてDvi viewer と PDF viewer も入れさせていただきました。ただ,TeXの環境がshift_jis のパッケージのようで,母艦(EUC-JP)との連携がちょっと不便ではあります。これで,念願の pLaTeX の環境が(一応)完成しました。
野鳥(http://www.yatex.org/)から yatex1.72.tar.gz をダウンロード。解凍してできるディレクトリの install の記載に従えばよいのでしょうが,多分Info関連は,もとのemacsのパッケージでも入っていないようなので, 最低限必要なファイルを「手」でコピーしました。
はじめに,emacs の設定ファイルは,母艦の .emacs.el をコピーして編集。 次にinstallの指示通り,まずは下の2項目を記載あるいは修正。
(setq auto-mode-alist
(cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
次に emacs-lisp ファイル群を置くディレクトリを load-path に追加。
(setq load-path (cons (expand-file-name "~/src/emacs/yatex") load-path))
ここでは,指示に素直にしたがって,~/src/emacs/yatex としています。まず,/mnt/card/Documents/ に src/emacs/yatex というディレクトリを作ります。ファイルシステムの容量に余裕があるなら,どこでも良いと思います。
次に解凍したディレクトリ中の *.el ファイルを /home/zaurs/src/emacs/yatex にコピー。
次に /home/zaurus で
$ ln -s /mnt/card/Documents/src src
これで,TeX のファイルの読み込み時に,YaTeX モードが起動していま す。この通り一応動いたということで,かなりいい加減ですので,参考にはな らないと思います・・・。でも,快適です。
install するもちょっと調整が必要でした。smb.conf などが /etc/sambaにないとまずいよ うなのです。
# cd /etc/samba
# ln -s /hdd2/usr/lib/samba/smb.conf smb.conf
# cd codepages
# ln -s /hdd2/usr/lib/samba/codepages/codepage.932 codepage.932
# ln -s /hdd2/usr/lib/samba/codepages/unicode_map.932 unicode_map.932
としてみました。
まず dvi file をdvipdfmx で pdf に変換。 次にgsを使いpdf fileを eps形式の print ファイルに変換します。
gs -sDEVICE=epswrite -dNOPAUSE -dBATCH -sOutputFile=Target.prn Target.pdf
これをscriptにまとめると楽ですね。先ほどのsmbclient で Linux 母艦の printer に繋いで,今作ったprint file を putします。母艦のprinter driver (filter)経由で無事印刷。
Zaurusだけでとは行きませんが,一応印刷できます。それがどうしたと言われそうですね。近くに母艦があるのですから(笑)。でも,filterを持ったマシンがLAN内にあればで印刷可能ですので。今回つかわさせて頂いているパッケージでは,直接 gs が対応する printerもあり,DEVICEの一覧はgs -h で書き出してくれます。実は自宅(職場も)のprinter が epson なので,この方法をとるしかありませんでした。Linux Zaurus SL-C860 (http://www.lares.dti.ne.jp/~ich/sl_printer.html) に詳しく記載があり,大変参考になりました。
A300やC700とおなじように,ssh を使った backup の scriptを作り走らせ,ハードディスクのバックアップをとろうとしましたが,usbd0 の timeout がいっぱい出てしまいます。Zau側が原因なのか,母艦のusbnetが問題なのかは不明です。ただ,普段は起きないところをみると,大きなファイルの転送が問題のようです。usbnet.cのパッチはヤマカンですので,それが原因の可能性が大です。
ただ,ウェブ上でも,以前のZaurusのusbnet使用時に同じような問題が報告されていました。
また,usbnet 経由の smbmount で同じ問題が起るかは検証していません。HDDのバックアップではUSB-hostで外づけHDDを直に繋げば問題は無いはずだし,etherもあるから・・・,ということで,実用上は問題ないと思っています。
USB-hostケーブルを購入しました。ネットでは時間がかかりそうなので,待ちきれそうもなく,お店でシグマリオン3のものを購入しました(高かったデス)。
あわせて,SANWA SUPPLY の スーパーミニキーボード SKB-SL04U 購入。これは無事動きました。HHK-pro も一応動きましたが,ドライバが日本語キーボード用らしく,\など入力できませんでした。
外づけHDDケースCENTURY CAC25U2はもちろん給電すれば使えました。これで,早速C3000のハードディスクのバックアップをとりました。また,HUBではもSIGMAのSHBH-4SVを繋いでみたら,給電すれば動きました。コンパクトフラッシュのリーダ・ライタアダプタでは,imation FlashGO! はそのまま使えましたが Hagiwara sys-com の FlashGateは,HUBに繋いで給電しないとだめでした。多分,要求する電力の差なんでしょうね。
2つIFがあれば,router かな。でももったいない。やっぱりポータブルサーバかな・・・
ページ更新は随分と久しぶりです。C700購入後,しばらく様子を見ていたのですが,いよいよ3世代目になってしまったので購入を決意し予約。発売日に受け取り,そそくさと箱を開けました。ハードディスクを載せたものの,ネット上ではどちらかというと前向きな評価は少ないような気がしますし,次の製品は細かい部分でチューンされような気もしますが,自分にとってはそろそろ「旬」だということで。
C700と比べるのもなんなんですが,当然軽快に反応してくれます。お店でさわるC860より反応は良いような気がします。
ハードディスクによる電力使用も気になるので,多分必要はないと思いますがスワップを置く可能性や,頻繁にアクセスするデータのために,SD-Cardも512MB,しかもSunDiskの早いカードと奮発しました。
これは特に問題なくVine(2.4.22-0vl2.15)から認識,マウントできました。ただC3000側の準備が面倒なので,A300やC700と同じように,usbnet経由でsmbmountして使うことになりそうです。もっとも,出先なんかでWinマシンとちょっと繋ぐには重宝しそうです。
以前購入していたPLANEX CF-10Tと無線のCorega Wireless LAN CF-11とも無事動きました。
Kenjiさん(http://club.h14m.org/kenji/diary/?200312b#200312200)を拝見していましたので,多分C3000でもなんとかなるだろうと考えていました。 期待通りバイナリエディットで問題なく動くようです。ただ,usbnet.cを眺めてみたら,構造体のエントリをちょっと増やせばなんとかなりそうだったので,ソースを変更しモジュールを作り直しました。なんとか動いているようです。パッチは以下のような具合いです。 <追記:以前書いておいたpatch-fileが変だったようなので,入れ替えました。patchの中身はたいしたことはなにもしていないので,読み取ることはできたとは思うのですが。変なことを書いてすみません。(2005.1.2)>
--- usbnet.c.orig 2005-01-02 20:50:09.000000000 +0900
+++ usbnet.c 2005-01-02 20:49:48.000000000 +0900
@@ -1419,7 +1419,15 @@
.in = 1, .out = 2,
.epsize = 64,
};
+static const struct driver_info zaurus_slc3000_info = {
+ .description = "Sharp Zaurus SL-C3000",
+ .flags = FLAG_FRAMING_Z,
+ .check_connect = always_connected,
+ .tx_fixup = zaurus_tx_fixup,
+ .in = 1, .out = 2,
+ .epsize = 64,
+};
#endif
@@ -2411,6 +2419,15 @@
.bInterfaceSubClass = 0x0a,
.bInterfaceProtocol = 0x00,
.driver_info = (unsigned long) &zaurus_slc700_info,
+}, {
+ .match_flags = USB_DEVICE_ID_MATCH_INT_INFO
+ | USB_DEVICE_ID_MATCH_DEVICE,
+ .idVendor = 0x04DD,
+ .idProduct = 0x9031,
+ .bInterfaceClass = 0x02,
+ .bInterfaceSubClass = 0x0a,
+ .bInterfaceProtocol = 0x00,
+ .driver_info = (unsigned long) &zaurus_slc3000_info,
},
#endif
これで Vine の /usr/src/linux-2.4.22/drivers/usb/usbnet.c にパッチを当て
# make clean modules
としてコンパイル。このディレクトリに出来た usbnet.o を /lib/modules/2.4.22-0vl2.15/kernel/drivers/usb にコピー(上書き)しました。ただ,あれこれする前に,バックアップを忘れずに。
それから,usbケーブルを刺すとすぐに繋がるように,murasaki周りの設定にSL-C3000を追加。やったことは, SL-C700#8やSL-C700#9に書いたことととまったく同じです。
/etc/inetd.conf でtelnet(TCP Wrapper)のコメントを外して,/etc/rc.d/init.d/inet restart
これは passwd を直接編集。
/hdd2/usr/lib/samba/smb.conf と,置き場所が変りました。これを必要に応じて変更。
USBケーブルの抜き差しは,慣れないせいかちょっと不便な印象です。IOコネクタがついているのにとちょっと残念。 じっくり触る時間がとれないので,年末にでもいろいろいじり,TeXやデータベースなど,環境を整えて行きたいと思います。 また地震などの災害時の事も考えると,メールの出し入れのできる通信環境も揃えようかとも思っています。
でも,でかくなったなという印象を持ったのは私だけでは無いと・・・。ミニパソコンの風情ですね。それから,キーはくっきりとした印象ですが,実際に押してみると見掛けと反対にキーの高さが無いためか,少々押しにくい感じが。特に机の上においてタイプするときにそれが感じられます。このへんは慣れもあるのかな。
それでも私には,十分魅力的なLinuxマシンです。