2006年10月03日

pdaXrom 1.1.0r121:コンソールキーバインド変更

pdaXrom 1.1.0の最新版r121はカーネルが2.6に変更された影響かずいぶんといろいろなことが変わっているようです。(実際にはbeta4からkernel2.6だと思うのですが私はbeta1で足踏みしていたので…)

とりあえず困ったのはコンソールのキーバインドが変わってしまったこと。例えばControlカナひらAlt全/半とか。あと逆クォートが打てない(これは今ままで通りですが)のも辛いところ。

今まで通りkernel.mapでもカスタマイズして…と思ったらファイル構成が変わって機種ごとのディレクトリが出来てる!そしてファイル名もkernel.mapからkeymap.mapに変わり、書式も大幅に変わっています。キーコードも一新されている模様。こりゃどうしたもんか…と一瞬途方に暮れましたが、『ないものは作る!』の精神で調べてみることにしました。

ちなみに当方SL-C750です。3桁型番はたぶん同じで行けると思いますが、4桁型番の場合違うかもしれないのでご了承下さい。

まずはキーコードの調査。
これにはいつもお世話になっている『ゆるゆるはっかー』さんが公開されているshowkeyを使用させていただきました。

Loose Hacker
http://www.loosehacker.com/lhacker/tips/keybind.html

で、調査した結果がこちら → キーアサイン一覧

このキーコードを見ながらkeymap.mapを読むと…確かに設定通りに動いています。となればあとは自分の好きなキーに好きな動きを割り当ててやるだけです。私は以下の変更をすることにしました。
Control:カナひら→Calender
Alt:全/半→Address
逆クオート:(なし)→Fn+m

全部載せると長いので、keycode関連のところ(前半部分ですね)だけ載せておきます。

/etc/sysconfig/keyboard/Corgi/keymap.map
# Default kernel keymap. This uses 7 modifier combinations.
keymaps 0-2,4-5,8,12
# Change the above line into
# keymaps 0-2,4-6,8,12
# in case you want the entries
# altgr control keycode 83 = Boot
# altgr control keycode 111 = Boot
# below.
#
keycode 1 =
keycode 2 = one exclam
control alt keycode 2 = Console_1
keycode 3 = two quotedbl
control alt keycode 3 = Console_2
keycode 4 = three numbersign
control alt keycode 4 = Console_3
keycode 5 = four dollar
control alt keycode 5 = Console_4
keycode 6 = five percent
control alt keycode 6 = Console_5
keycode 7 = six ampersand
control alt keycode 7 = Console_6
keycode 8 = seven apostrophe
keycode 9 = eight parenleft
keycode 10 = nine parenright
keycode 11 = zero asciitilde
keycode 12 = minus at
altgr keycode 12 = at
keycode 13 =
keycode 14 = BackSpace
altgr keycode 14 = Delete
keycode 15 = Tab
altgr keycode 15 = Caps_Lock
keycode 16 = q
keycode 17 = w
altgr keycode 17 = asciicircum
keycode 18 = e
altgr keycode 18 = equal
keycode 19 = r
altgr keycode 19 = plus
keycode 20 = t
altgr keycode 20 = bracketleft
keycode 21 = y
altgr keycode 21 = bracketright
keycode 22 = u
altgr keycode 22 = braceleft
keycode 23 = i
altgr keycode 23 = braceright
keycode 24 = o
keycode 25 = p
keycode 26 =
keycode 27 =
keycode 28 = Return
keycode 29 =
keycode 30 = a
keycode 31 = s
keycode 32 = d
keycode 33 = f
altgr keycode 33 = backslash
keycode 34 = g
altgr keycode 34 = semicolon
keycode 35 = h
altgr keycode 35 = colon
keycode 36 = j
altgr keycode 36 = asterisk
keycode 37 = k
altgr keycode 37 = backslash
keycode 38 = l
altgr keycode 38 = bar
keycode 39 =
keycode 40 =
keycode 41 =
keycode 42 = Shift
keycode 43 =
keycode 44 = z
keycode 45 = x
keycode 46 = c
keycode 47 = v
keycode 48 = b
altgr keycode 48 = underscore
keycode 49 = n
keycode 50 = m
altgr keycode 50 = grave
keycode 51 = slash comma
altgr keycode 51 = less
keycode 52 = period question
altgr keycode 52 = greater
keycode 53 =
keycode 54 = Shift
keycode 55 =
keycode 56 =
keycode 57 = space space
control keycode 57 = nul
keycode 59 = Control
keycode 60 = Alt
keycode 61 = AltGr
keycode 62 = Escape
keycode 63 = Return
keycode 64 = Escape
keycode 65 = Down
keycode 66 = Up
keycode 67 = Control
keycode 68 = F13
keycode 79 = F15
keycode 80 = F16
keycode 82 = F17
keycode 87 = Return
keycode 88 = F11
keycode 97 = Control
keycode 99 = F12
keycode 103 = Up
altgr keycode 103 = PageUp
keycode 105 = Left
altgr keycode 105 = Decr_Console
keycode 106 = Right
altgr keycode 106 = Incr_Console
keycode 108 = Down
altgr keycode 108 = PageDown
ファイルを保存したらキーバインドを再読込します。
loadkeys /etc/sysconfig/keyboard/Corgi/keymap.map

現在アサインされていない記号などもこれに書き加えれば使えると思うのですが、キーシンボルの一覧がどうやっても見つからないんですよね。(前回逆クォートの割り当てをするときにもそれで苦労しました)
ご存じの方いらっしゃいましたら是非ともご教示下さい。
posted by 月水和尚 (とも) at 17:35 | Comment(2) | TrackBack(0) | りなざう

2006年09月17日

ザウルスにシリアルポート

ザウルスにシリアルポートをつけたら便利かな?と思い調べた事あれこれ。
まだ全ての問題解決していません。中途半端な投稿ゴメンナサイ。m(_ _)m
対象機種はりなざう3桁型番機になります。(A300とB500はちょっと微妙)

ザウルスのI/Oポート仕様書(PDF)を見ると、オプションポート16にはシリアルの信号(と言う表現でいいのかな?)が出力されているそうです。では単純にそれを汎用的な9ピンコネクタに繋げばOKかというと、そうは問屋が卸さないようで、以下のような問題点があるそうです。

・信号の極性が逆(負極性)である
・信号の電圧レベルがあっていない


相手がPCであればそのままでもいけちゃうみたいなのですが、ここは一つちゃんと仕様に則った物を作る事を目標にしてみたいと思います。

まずは情報収集。
以下のサイトで非常に有用な情報を公開されていました。(感謝!)

Zaurus serial port | pdaXrom
http://mail.pdaxrom.org/node/92

doggie's Home
http://www003.upp.so-net.ne.jp/doggie/linu-zau/serial/serial.htm

クロスケーブルの製作
http://www.koka-in.org/~kensyu/zaurus/diary/20030628.html

ザウルス用シリアルポート変換ケーブルの作成
http://www.ozetchi.com/zaurus/workshop/serial.html

シリアルケーブルの製作
http://www.areanine.gr.jp/~nyano/cepd04chk.html

最も分かりやすいのはpdaXrom本家の投稿ですね。回路図まで公開されているのでこれを中心に話を進めていきたいと思います。(以下この投稿の事を『本家投稿』と書きます)

まずは第一の問題、負極性について。
これは単純に信号を反転させてあげればよいようです。本家投稿で使用しているICはSN74HCT04。これが何者なのか調べてみたら、どうやら標準ロジックICの1つである74シリーズと呼ばれているものだそうです。

74シリーズ - 通信用語の基礎知識
http://www.wdic.org/w/SCI/74%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA

その中でも7404というのはNOTゲートを提供しています。

7404 - 通信用語の基礎知識
http://www.wdic.org/w/SCI/7404

なるほどこの部分は納得。そして7404のICに関してはdoggieさんのページで紹介されている現品限りで色々なメーカのものが手に入る事が分かりました。

ようこそ「現品限り」のサイトへ
http://www.jcss.ne.jp/~yoshiden/newpage4.htm

74HC04でページ内検索してみると、東芝製(TC)や日立製(HT)のものが在庫有りでした。末尾に色んな型番付いてますが、これはパッケージングの仕方による違いのようなのであまり気にしなくて大丈夫そうです。doggieさんのページで推奨されていた74LV04はありませんでしたが、とりあえずいい事にします。

で、第2の問題。電圧レベルについて。
これはRS-232ラインドライバ/レシーバという物を使用すると解決するみたいです。本家投稿で使用しているICはMAX3387E。詳細な仕様は以下の通りです。

MAX3387E PDAおよびセル電話用、3V、±15kV ESD保護、AutoShutdown Plus RS-232トランシーバ
http://japan.maxim-ic.com/quick_view2.cfm/qv_pk/2106

しかし…これが全然見つかりません。先ほどの現品限りはじめ色々調べてみたのですが、今のところMAX3387Eを1つ単位で売ってくれるところは見つけられていない状態です。

では代替製品は…と考えた時に気付いたのが、doggieさんが使用されているD4721というチップ。調べてみるとNEC製のラインドライバ/レシーバでした。

RS-232 ラインドライバ/ レシーバ用 IC の使い方 ← リンク先PDFです
http://www.necel.com/nesdis/image/S13354JJ3V0UM00.pdf

仕様書をよく読んでみると、D4721は入出力2チャンネルです。シリアルの信号は3チャンネルあるはずなので、そこをどのように解決したのか非常に気になります。2チャンネルあればOKなのであればMAX系でも別の物で対応可能と思われるのですが。(と言ってもどれなら代替品になるのか私の技術レベルでは判断は難しいですが…)

とりあえずラインドライバ/レシーバに関しては、電源電圧が3.3V対応で入出力3チャンネルずつあればOKと思ってます。前述のNEC製ならμPD4723とか。あとはぼちぼちと探していくしかなさそうですね。

と言うわけで、今のところここで挫折してます。
何か良いアイディアをお持ちの方がいらっしゃいましたら、是非ともご教示をお願いいたします。間違い、勘違い等のご指摘もいただけると非常にありがたいです。

最後にRS232Cについて詳しくまとめられているページがあったのでご紹介。

電子回路の豆知識
http://www.nahitech.com/nahitafu/mame/mame5/rs232c.html

あと本編とは関係ないですが、何だかすごい電子工作家の方のページに行き着きひとしきり感動したのでこちらもご紹介。いやはや、世の中にはすごい人がいるものです…。

放課後の電子工作 〜 会社でハンダ付け、自宅でもハンダ付け 〜
http://www.chiaki.cc/index.html
posted by 月水和尚 (とも) at 04:28 | Comment(31) | TrackBack(1) | りなざう

2006年08月21日

pdaXrom 1.1.0beta1 - まとめ #6 Webブラウズ環境の構築

基礎部分が全て完成したので、アプリケーションを導入してきます。
まずはWebブラウジングのために、

w3m
dillo
Firefox

と3つのアプリケーションを導入します。


<w3mの導入>
非力な本体と低速なネットワークでもすこぶる快適な動作をしてくれるw3mを導入します。パッケージはXFCE4の時にもお世話になったkenyaさんが以下のサイトで配布されています。

Proto-Type001へようこそ! — Proto_Type001
http://comomo.shacknet.nu/

libgc_6.7_armv5tel.ipkw3m_0.5.1-CVS1.968_armv5tel.ipk の2つのファイルをダウンロードしてきてください。そうしたら以下のコマンドでインストールします。
install libgc_6.7_armv5tel.ipk
ipkg install w3m_0.5.1-CVS1.968_armv5tel.ipk

ちなみにヘルプを表示するためにはperlが導入されている必要があります。サイズが大きいので導入する/しないと導入先については各自でご判断ください。カードに導入するのであればコマンドは以下のとおりです。
ipkg -d /mnt/card install perl

…と、これだけで終わってしまうのも何なので、ちょっと一工夫。
w3mは設定保存&作業ディレクトリに/home/root/.w3mというディレクトリを使用するのですが、キャッシュやクッキーの保存のために頻繁に書き込みを行うため、本体メモリを痛めそうでちょっと気になります。それに本体メモリをぎりぎりまで使わざるを得ない750にとって容量の確保も頭の痛いところ。そこでディレクトリの実態をカード側にします。(単にリンクを張るだけですが)
mkdir /mnt/card/home/root/w3m
cd
ln -s /mnt/card/home/root/w3m .w3m

これをやっておくもう一つの利点は、本体側でOSの再インストールを行ってもw3mの設定がカード側に残ってくれること。キャッシュやクッキーも残っているのでOS再導入&w3mのインストールが終わったら、リンクを張り直すだけであっという間に今までどおり使うことが出来ます。是非ともお試しください。(って普通の人はそんなに年中OS入れ直したりしないか…)

w3mといえば軽さが信条ですが、私はそれ以上に『驚異的な適応力の高さ』に価値を見いだしています。私がよく利用するmixiGmail、そして会社で使っているWebメールなどがw3mでは全て問題なく使用できます。これはdilloはおろかFirefoxでも実現できていないので、その性能の高さには驚かされるばかりです。FirefoxIEなどGUIなブラウザに慣れてしまっているとちょっと取っつきにくいw3mですが、pdaXromではホントお勧めです。

使い方は以下のマニュアルをご覧ください。

w3m manual
http://homepage2.nifty.com/aito/w3m/MANUAL.html


<dilloの導入>
w3mの補完用にdilloを導入します。w3mと比較して、

<良いところ>
w3mほどではないが十分に動作が軽い
・画像が表示できる

<イマイチなところ>
・サイトの再現性はそれほどでもない
 (表示できないサイトも多々ある)
・日本語入力が出来ない

とこんな感じです。(えらい主観的な比較ですんません)
日本語入力可能なdilloについてはゆるゆるはっかーさんが公開されているのですが、残念ながら今回構築した環境ではうまく日本語入力できておりません。(仕組みがよく分かっていないので原因究明できません…)

パッケージはpdaXrom.jpのアップローダにあるものを利用させていただきます。

アップローダ - pdaXrom.jp
http://pdaxrom.sourceforge.jp/wiki/index.php?%A5%A2%A5%C3%A5%D7%A5%ED%A1%BC%A5%C0

ダウンロードするファイルは dillo-i18n_0.8.5-20060105_armv5tel.ipk です。
インストールはいつもどおりのコマンドで。
ipkg -d /mnt/card install dillo-i18n_0.8.5-20060105_armv5tel.ipk

w3mの補完に使うという意味では、w3m側で外部ブラウザにdilloを登録しておくと便利です。w3mでブラウズしている途中で画像が見たくなったら"M"を押せば即座にDilloで表示!dilloが日本語入力不可であることを十分にカバーできます。


<Firefoxの導入>
何でも出来る最終兵器としてFirefoxを導入します。w3mと比較して、

<良いところ>
・あのFirefoxがザウルスで動く!

<イマイチなところ>
・起動重すぎ(起動に1分くらいかかります…)
・ブラウズ重すぎ(不安定で低速なbitWarpでは辛い…)

とこんな感じです。(これまたえらい主観的な比較ですな)

導入は非常に簡単で、コマンド一発です。
ipkg -d /mnt/card/ install firefox

そしてw3mの時と同じく、作業ディレクトリをカード側に置きます。
mkdir /mnt/card/home/root/mozilla
cd
ln -s /mnt/card/home/root/mozilla .mozilla

この作業ディレクトリには設定だけでなく拡張機能も保存されるため、拡張機能の導入時に異常終了してしまいがちなpdaXrom版では再インストール時の作業が激減して非常に助かります。(これまた再インストールしない人にはあまり意味がないのかな…)

導入完了直後のFirefoxは英語版なので、日本語化のために以下の2つの拡張を導入します。

Locale-Switcher Extension
http://benjamin.smedbergs.us/switch-locales/

ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.5/linux-i686/xpi の一覧
ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/1.5/linux-i686/xpi/

ダウンロードするファイルは switch-locales-1.5.1.xpi および ja.xpi です。上記サイトから直接インストールしようとすると失敗することが多い(上記サイトのせいではなくpdaXromでのFirefoxの問題)ので、一度ファイルをダウンロードし、そのファイルをURL欄に指定してインストールを行います。

ほとんどの拡張機能はpdaXrom上でも動作するようなので、あとはお好きなものを入れていただければよいかと思います。私はちょっと前まではPC上とほぼ同等の拡張を導入していたのですが、w3mをメインにしてからは必要最小限の拡張のみ入れるようにしています。参考までにご紹介。

mozdev.org - menueditor: index
http://menueditor.mozdev.org/

メニューを自由にカスタマイズするための拡張です。メニューの数を減らすことでボタン、メニュー、URL欄、検索欄を1行にまとめてしまい、表示出来るスペースを広く取れるようにしています。

Foxmarks - Foxcloud Wiki
http://www.foxcloud.com/wiki/Main_Page

オンラインでブックマークを同期してくれる拡張です。これでPCで使っているブックマークをザウルス側でも簡単に使用することが可能になります。ザウルス本体や通信にかかる負荷を考慮して自動的に同期を取る機能はオフにしています。(必要に応じて手動で同期)

その他のカスタマイズとしては、以前ご紹介した2つのことを行っています。

その1:タブの色分け
プロファイルディレクトリのchrome配下に以下のファイルを作成します。

内容は別ウィンドウで → /home/root/.mozilla/firefox/xxxxxxxx.default/chrome/userChrome.css

その2:高速化
プロファイルディレクトリの配下に以下のファイルを作成します。

内容は別ウィンドウで → /home/root/.mozilla/firefox/xxxxxxxx.default/user.js


<まとめ>
…まとめは特にないっす。
3つのブラウザを必要に応じて使い分けて、快適なWebブラウズを!
posted by 月水和尚 (とも) at 13:05 | Comment(4) | TrackBack(0) | りなざう

2006年08月17日

pdaXrom 1.1.0beta1 - まとめ #5 モバイル通信環境の整備(bitWarp)

基礎部分の最後の作業であるモバイル通信環境の整備をします。
これが終わればいよいよアプリケーションの導入ですね。


<iptablesの設定>
低速なモバイル通信とはいえ、インターネットに常時接続するということはそれ相当の危機にさらされることになります。というわけで、まずは最低限の防御策を立てたいと思います。

使用するのはiptables。モジュール自体はすでに導入してあるので、必要なのは設定だけです。以前検討した内容がそのまま使えるので、細かいことは以前の記事を参照していただくことにして、ここでは設定だけ。
作成するファイルは /etc/rc.d/init.d/firewall です。

内容は別ウィンドウで → /etc/rc.d/init.d/firewall
そのまま使えるファイルも置いておきます → firewall

そしたら実行権限を付け、runlevel5からリンクを張ります。(ついでに実行もしておきましょう)
chmod a+x /etc/rc.d/init.d/firewall
cd /etc/rc.d/rc5.d
ln -s ../init.d/firewall S80firewall
/etc/rc.d/rc5.d/S80firewall start


<機器認証ツールの導入とダイアルアップの設定>
bitWarpの機器認証ツールである authdrv を入手します。これはシャープの公式ホームページ上でダウンロード可能です。

宝箱Pro SLシリーズ関連 ソースコードダウンロード
http://developer.ezaurus.com/sl_j/source/source_dl_c860.htm

ダウンロードするのはルートファイルシステムのTarball(rootfs-slc860-20031107.tar.bz2)です。860用と書いてありますが、860以外の方でもこれをダウンロードしてください。
860の方はすぐに次に進んでいいのですが、それ以外の機種をお使いの方はちょっとした工夫が必要になります。以前の記事など参考にしてみてください。

中からauthdrvを見つけたらそれを取りだし、/usr/sbinにコピーします。コピーしたあとに実行権限を付けるのもお忘れなく。そしたらXFCEのメニューから『その他→PPP Modem』と選んでいただき、出てきたウィンドウに以下の設定値を入力してApplyを押します。
Accountタブ
 Name:bitWarp
 Username:ソネットのユーザ名
 Password:ソネットのパスワード
 Phone:0570570100##64
Modemタブ
 Device:/dev/ttyS3
 Init string:AT&F&C1&D2&K3&S0E0#A1


<bitWarp快適化モジュールの導入>
bitWarpを快適に使用するために、以前作成したbitWarp快適化モジュールを導入します。作成した経緯や機能については以前の記事(その1その2その3)をご覧頂くとして、ここでは導入に必要な情報だけ書いていきます。

まずはLEDを制御するモジュールを以下のサイトからダウンロードします。

Zaurus Archives:c700ctl
http://www.geocities.co.jp/SiliconValley-Bay/1180/ledctl.html

またそれ以外のファイルもダウンロードします。

/usr/local/sbin 配下のモジュール:bwhelper.tar
/etc/apm/scripts.d 配下のモジュール:apm-sh.tar

では配置作業。
まずはLED制御モジュールを /usr/local/bin にコピーます。
zunzip /mnt/sd/ledctl.gz
cp -p /mnt/sd/ledctl /usr/local/bin

続いてbitWarp快適化モジュールを /usr/local/sbin に導入します。sbinディレクトリは前の手順でlibrestore.shを導入していない場合は存在しないので、事前に作成してください。
cd /usr/local/sbin
tar xvf /mnt/sd/bwhelper.tar
ln -s bitwarp-killer pppb

bitWarpのカードがVN-201でない方はここでbitwarp-keeperを修正しておいてください。
最後にAPM制御関連のシェルを導入します。
cd /etc/apm/scripts.d
tar xvf /mnt/sd/apm-sh.tar
cd /etc/apm/resume.d
ln -s ../scripts.d/bitwarp 900bitwarp


<まとめ>
これで通信環境が整ったはずです。試しに接続してみましょう。
/usr/local/sbin/bppp

最初の1回は接続に失敗しますが、これは機器認証のためです。無事に接続すると以下のようなメッセージが出力されます。
Script /etc/ppp/ip-up started (pid xxxx)
Script /etc/ppp/ip-up finished (pid xxxx), status = 0x0

いちいちパス付きで打つのも面倒なので、/usr/local/sbinにパスを切ることをお勧めします。あとはbitwarp-switcherをランチャーにでも登録すればクリック1つで接続/切断の出来る環境のできあがりです。

1つだけ既知の問題。
bitwarp-switcherをランチャー登録する使い方をすると、X終了時に通信が切れてしまうという問題があります。プロセスがばっさり落とされてしまうためかLEDの点灯だけ残ってしまうというおまけ付きです。(汗)
解決方法は検討中ですが、とりあえず、

・Terminal等から起動する
・そんなもんだと諦める

ってな対応をお願いいたします。
posted by 月水和尚 (とも) at 15:04 | Comment(0) | TrackBack(2) | りなざう

2006年08月14日

pdaXrom 1.1.0beta1 - まとめ #4 Xのリモート操作

前回記事でXの設定が終わりました。
この先Xでの作業が必須になる場面が多々ありますので、PC側からXの操作ができるような設定を行っておきます。


<Xリモート操作環境の設定(VNC編)>
定番のVNCを使う方法です。以前は公式feed(unstableの方だったかな?)にパッケージが登録されていたこともあって導入も設定も非常に簡単だったのですが、現時点では少し煩雑な手順を踏む必要があります。(以前beta1を入れたときにはOKだったのに何で消えちゃったんでしょうか…)

まずはザウルス側にVNCサーバを導入します。
以下のサイトからパッケージをダウンロードします。

pdaxrom feed
http://mail.pdaxrom.org/contrib/ulhume/

ダウンロードすべきファイルは x11vnc_0.8.1_armv5tel.ipk です。
ダウンロードが完了したらインストールします。
ipkg -d /mnt/card install x11vnc_0.8.1_armv5tel.ipk

本体容量をケチってカード側に入れましたが、多用するようであれば本体に入れてしまってももちろんOKです。

母艦側にVNCビューアを入れます。定番はRealVNCでしょうか。

RealVNC
http://www.realvnc.com/

ちなみに私はTightVNCを使っています。

TightVNC: VNC-Based Free Remote Control Solution
http://www.tightvnc.com/

母艦側での導入に関する詳細は適当にググってみて下さい。
全てが完了したらザウルス側でVNCサーバを起動します。X起動後にザウルス上のTerminalから以下のコマンドを実行して下さい。(母艦からPoderosaを使っての実行は×です)
x11vnc -usepw

初期起動時にはパスワードの入力を促されます。その後ファイルへの保存を聞かれるので"y"を入力してファイル保存して下さい。
あとは母艦側でVNCビューアを起動し、先ほど入力したパスワードを入れればOKです。

ターミナルにログがたくさん出力されてちょっと気になりますが、この辺のカスタマイズは後回しにすることにします。気になる方は、
x11vnc -usepw > /dev/null 2>&1 &

とでもしていただければとりあえずOKかと。
またこの起動のしかただと母艦からのセッションを切断するとVNCサーバは終了してしまいます。再度接続する場合にはザウルス側でVNCサーバを起動し直して下さい。(オプション設定で変えられると思うのですがVNCサーバのオプションはあまりにも多いのでちょっとチェックし切れていません…)


<Xリモート操作環境の設定(Synergy編)>
VNCはリモート操作ができる他、画面のスクリーンショットを取るときなどにも非常に便利なのですが、正直あまりレスポンスがよくありません。ザウルスでの画面表示は終わっているのに母艦側になかなか反映されない…とヤキモキさせられることもしばしば。そこでソフトウェアPC切替機(という表現で正しいのでしょうか…)であるSynergyを使って、母艦側のキーボードとマウスをザウルスで使ってみることにします。

ザウルス側のパッケージは以下のサイトで公開されています。

pdaxrom feed
http://mail.pdaxrom.org/contrib/desertrat/

ダウンロード対象のファイルは synergy-client_1.3.1_armv5tel.ipk です。
インストールはいつも通りのコマンドで。(小さいので本体に入れます)
ipkg install synergy-client_1.3.1_armv5tel.ipk

続いて母艦側。公式サイトからプログラムをダウンロードします。

Synergy
http://synergy2.sourceforge.net/home.html

母艦側での設定は、以前の記事MYCOMジャーナルの記事など参考にしてください。ポイントは『全ての経路を設定しないと動かない』と言うこと。例えばザウルスを母艦の右に置いた場合、『母艦の右側にザウルス』という設定の他に『ザウルスの左側に母艦』という設定もしてあげないと意図したとおりに動いてくれません。

母艦での設定が完了したら、ザウルス側で以下のコマンドを実行します。こちらはザウルスでXさえ立ち上がっていればPoderosaからでも大丈夫です。どうやらVNCと一緒に使うとうまく動かないようなので、母艦側でVNCを終了してから実行して下さい。
synergyc 192.168.129.1

あら不思議、マウスポインタが母艦の画面を突き抜けてザウルスに!
クリップボードも共用されるため、ザウルスが母艦のディスプレイの1つではないかと勘違いしそうなほど便利な環境になります。


<まとめ>
これで母艦上から快適にザウルスを操作できる環境が整いました。
VNCSynergyは一長一短ありますので、どちらかに決め打ちするのではなく状況に応じて使い分けていただけると幸せになれるのではないかと思います。

次はbitWarpを使ったモバイル通信環境の整備を行う予定です。
posted by 月水和尚 (とも) at 13:00 | Comment(0) | TrackBack(0) | りなざう

2006年08月13日

pdaXrom 1.1.0beta1 - まとめ #3 日本語化とXの設定

前回記事からの続きです。(前回記事って何?という方は、シリーズ最初の記事から読まれることをお勧めします)

当初の予定ではアプリをがしがしと入れてしまおうと思っていたのですが、アプリは人によっている/いらないがありますし、導入と設定をセットで書いた方が分かりやすいかと思いますので、何はともあれ日本語化とXの設定をしてしまうことにしました。

今回は(というかこれ以降の作業では)ファイルをダウンロードしてきて使うという手順が多々あります。やり方は、

wgetで直接取得
・母艦でダウンロードしてWinSCPで転送
・母艦でダウンロードしてSDカードで受け渡し

のどれかお好きな方法をご利用下さい。wgetを使う場合は事前に
export http_proxy="192.168.129.1:8080"

とコマンドを打っておいてください。

ちなみにこの段階(まだコンソールしか使っていない)では何も考えずにSDを引っこ抜いて大丈夫ですが(ただし/mnt/sd/mnt/cardの下にcdした状態だとダメです)、Xの立ち上げ以降は不用意に抜くとシステムがおかしくなる可能性がありますので、SDの抜き差しは基本的には電源を切った状態でされることをお勧めします。(抜いたあと再度挿入する前に電源を入れるのは×です)

以降の手順ではファイルは /mnt/sd に置かれたものとして書いています。


<日本語フォントの導入>
日本語を表示できるようフォントの導入をします。

まずはビットマップフォント。
Garbage design Works BLOGで配布されている東雲フォントを有難く頂戴してきます。(私はゴシックのみの方にしました)

Garbage design Works blog
http://blog.g-d-w.net/index.php?categ=1&id=1105371174

ダウンロードが完了したら、以下のコマンドを実行してください。
cd /usr/X11R6/lib/X11/fonts/
tar zxvf /mnt/sd/shinonome_small.tar.gz

続いてTrueTypeフォント。
フリーのTTFはいろいろあるみたいですが、私は友人(というか師匠)の薦めで小夏フォントを使わせていただいております。

Konatu Font - 桝席
http://www.masuseki.com/rnote.php?u=be/konatu.htm

ダウンロードしたファイルから Konatu.ttfKonatuTohaba.ttf を取り出します(私は母艦でやりました)。取り出したファイルをザウルスに送り込んだらフォントの配置先にコピーします。
cp -p /mnt/sd/Konatu*.ttf /usr/X11R6/lib/X11/fonts/TTF

もちろん該当ディレクトリに直接放り込んでもOKです。(私はそうしてます)
配置したフォントをフォントキャッシュに乗せるために以下のコマンドを実行します。
fc-cache -fv

これでフォントキャッシュファイルである /usr/X11R6/lib/X11/fonts/TTF/fonts.cache-1 に両フォントが登録されますが、このままですと等幅フォントが優先使用されてしまいX起動時にあまり嬉しくないことが起こります。なのでキャッシュファイルを修正します。該当ファイルをviで開き、"Konatu.ttf"で始まる行を一番上に持ってきてください。具体的には、

1."Konatu.ttf"で始まる行で dd と入力(行のカット)
2.ひたすら上を押してファイルの先頭に戻る
3.P と入力(行の上方へのペースト)

と、こんな感じで行けます。(大文字小文字の違いに注意してください)
最後にファイルの保存をお忘れなく。(Esc:wq)

ちなみに今回フォントファイルは本体側に置いています。通常は容量に余裕のあるSDカードに置くのが定石なのですが、今回はSDを外した状態でも日本語表示が出来る環境を目指すためにあえて本体側に置いています。SD側に置きたい場合は以前の記事を参考にしてみて下さい。


<日本語入力環境の整備>
日本語入力にはuimAnthyを利用します。
pdaXrom用のパッケージは、私の師匠であるkenyaさんが以下のサイトで配布されています。

Proto-Type001へようこうそ! — Proto_Type001
http://comomo.shacknet.nu/

こちらで uim_1.0.1_armv5tel.ipkanthy_7500b_armv5tel.ipk を入手してください。そうしたら以下のコマンドでインストールを行います。
ipkg install uim_1.0.1_armv5tel.ipk
ipkg -d /mnt/card install anthy_7500b_armv5tel.ipk

Anthyはサイズが大きいのでSDカードにインストールしました。カードにインストールされたファイルは本体側に自動的にリンクが作成されるのですが、何故か/usr/libに作成されたリンクは再起動時に消滅してしまいます。(ファイルシステムのバグ??どうも"."が複数個あるファイルのリンクが消滅してしまうみたいです)
そのため、カードからのリンクを再作成するシェルを /usr/local/sbin/librestore.sh として作成します。

内容は別ウィンドウで → /usr/local/sbin/librestore.sh

えらい力押しのシェルですね…。(汗)
実行権限を付けたら、起動時に実行されるよう以前作成した/etc/rc.d/init.d/startupを修正します。

内容は別ウィンドウで → /etc/rc.d/init.d/startup

この辺の考慮はライブラリ系をカードに入れなければ必要ないので、760以降の機種をお使いの方は本体にインストールすることをお勧めします。

気を取り直して続き。
uimgtkimmoduleに登録します。
ln -s /usr/local/lib/gtk-2.0/2.4.0/immodules/im-uim.so /usr/lib/gtk-2.0/2.4.0/immodules/
cp -p /etc/gtk-2.0/gtk.immodules /etc/gtk-2.0/gtk.immodules_org
gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules

ライブラリの導入位置の問題から、リンクの作成も併せて行っています。


<XFCE4の導入>
pdaXromのデフォルトのX window systemはMatchbox/OpenBoxなのですが、正直なところあまり私の好きな使い勝手ではありませんでした。そこでマッチ箱/空き箱さんを捨て、軽さに定評のあるXFCE4を導入したいと思います。

パッケージはuim/Anthyと同じくkenyaさんが以下のサイトで配布されています。

Proto-Type001へようこうそ! — Proto_Type001
http://comomo.shacknet.nu/

これを書いている時点でbeta1beta2があるのですが、やはり最新版!ということで、今回はbeta2を導入することにします。(実はbeta1はうまく動かなかったりします…一世代前のではOKだったのですが)

ダウンロードすべきファイルは以下のとおりです。
(配置場所がたまに変わるそうなのでその時は自力で探してみてください…)

ホーム→files→pdaxrom→common
libdbh_4.5_armv5tel.ipk
xbindkeys_1.7.3_armv5tel.ipk
libexif_0.6.13_armv5tel.ipk

ホーム→files→pdaxrom→beta1_only
dbus_0.91_armv5tel.ipk
dbus-glib_0.71_armv5tel.ipk

ホーム→files→pdaxrom→beta1_only→Xfce4.4beta2
xfce4_4.4beta2_ipks.tar.bz2

ダウンロードしたら以下のコマンドを実行します。作業を簡略化している都合上、それ以外のファイル(特にパッケージファイル)が/mnt/sd上にないことを確認してからコマンドを実行してください。
cd /mnt/sd
ipkg install *.ipk
bzip2 -dc xfce4_4.4beta2_ipks.tar.bz2 | tar xvf -
cd XFCE4_beta2
ipkg install *.ipk

dbusのインストールで警告が出ますが、あれはユーザとグループを作成した旨のお知らせメッセージなので問題ありません。

そしたらXの起動スクリプトである .xinitrc を作成します。XFCE4では /etc/xdg/xfce4/xinitrc がデフォルトのようです。

内容は別ウィンドウで → /etc/xdg/xfce4/xinitrc
そのまま使えるファイルも置いておきます → .xinitrc

キーボードの設定に以下の定義を追加します。

・"Calender"キーをCtrlキーに、"Address"キーをAltキーに設定する
・"全/半"キーで日本語変換モードになるようにする
・"カナひら"キーを使えるようにする
・"Fn+m"で逆クォートを打てるようにする
・本体脇のジョグダイアルを使えるようにする
 (デフォルトでは別の定義ファイルに書いてあります)

編集すべきファイルは /etc/X11/kb/corgi.xmodmap です。

内容は別ウィンドウで → /etc/X11/kb/corgi.xmodmap
そのまま使えるファイルも置いておきます → corgi.xmodmap

初期導入状態では、アイコンが標準テーマであるhicolor、追加で入れたRodent、どこから入ったのかblondieの3ヶ所に散らばってしまっています。そこでこれら3つをhicolorにまとめてしまいます。またスケーラブルフォントはうまく使えていない(ゆえにlibrsvgを導入していません)ようなので、容量節約のために削除します。
cd /usr/share/icons/Rodent
rm -rf scalable iconrc
cp -pr * ../hicolor
cd ../blondie/
cp -pr * ../hicolor/
cd ..
rm -rf Rodent blondie hicolor/scalable

そうしたらテーマの設定ファイル(/usr/share/icons/hicolor/index.theme)を編集します。

内容は別ウィンドウで → /usr/share/icons/hicolor/index.theme
そのまま使えるファイルも置いておきます → index.theme

/usr/share/icons/hicolor/iconrc-png の1行目にパスが書いてありますので、これも修正します。(Rodenthicolor)

あと /usr/share/xfce4/mimeRodent.mime.xml というファイルが配置されるのですが、これをどうしたらいいかよく分かりません。中にパスは書いてないのでファイルを修正する必要はないと思うのですが、名前に意味を持っているのだとすると hicolor.mime.xml とすべきなのかもしれない…。
というわけで、とりあえず修正してしまうことにします。
cd /usr/share/xfce4/mime
mv Rodent.mime.xml hicolor.mime.xml

これでXFCE4の開始コマンドであるstartxfce4を実行すればOK…と言いたいところなのですが、現時点ではstartxfce4だとちょっとうまくいかない部分があるので、通常のX起動コマンドであるstartxからXFCE4が起動されるように、/home/root/.xinitrcからリンクを張っておきます。
cd
rm .xinitrc
ln -s /etc/xdg/xfce4/xinitrc .xinitrc

ちなみにMatchbox/OpenBoxの起動シェルの実体は/usr/bin/mbsessionなので、リンクを張り替えればすぐにMatchbox/OpenBoxの環境に戻せます。

さらにはショートカットキーの設定ファイル(正確にはxbindkeysの設定ファイル)も作成します。ファイルは /home/root/.xbindkeysrc です。

内容は別ウィンドウで → /home/root/.xbindkeysrc
そのまま使えるファイルも置いておきます → .xbindkeysrc

さんざんいじくり回したので、ここらで一度再起動しておきましょう。
あとは再起動後にstartxすればXFCE4が立ち上がってきます。
startx

パネルは使い勝手が良くなるよう適当にカスタマイズしてください。
詳細は以下のページが詳しいです。

Xfce 4 パネル
http://www.dayomon.net/xfce/docs-4.2/xfce4-panel.html

個人的にはこんな感じです。

パネル2は削除しパネル1を下に配置
パネル1に以下のアイテムを配置(左から順に)
・Xfceメニュー
・タスクリスト
・ページャー
・システムトレイ
・Battery Monitor
・アクションボタン
・時計

パネルの設定変更はメニュー(Menuキーで出てくる)→設定→パネルマネージャーで、パネルへのアイテムの追加はパネルの右クリック(Calenderキーを押しながらタップ)で可能です。


<まとめ>
これで日本語統合デスクトップ環境と日本語入力環境が整いました。
次は母艦からXなザウルスを快適に使用できる環境を構築します。
posted by 月水和尚 (とも) at 00:16 | Comment(1) | TrackBack(0) | りなざう

2006年08月10日

pdaXrom 1.1.0beta1 - まとめ #2 パッケージの整理と初期設定

前回の作業からしっかり一休み出来ましたか?
では引き続き作業を行いましょう。
ここから先はインターネット上のリソースにアクセスをするので、母艦側でBlackJumboDogを立ち上げておくのをお忘れなく。


<パッケージ管理コマンドの設定>
パッケージ管理コマンドである ipkg の設定をします。
設定ファイルである /etc/ipkg.conf を以下のとおりに編集してください。
src beta1 http://mail.pdaxrom.org/download/1.1.0beta1/Zaurus-7x0-860/feed/
dest root /
dest cf /mnt/cf
dest sd /mnt/card
dest net /mnt/net
dest user /mnt/user
dest tmpinst /home/tmp/ipkg/inst
option http_proxy 192.168.129.1:8080
option ftp_proxy 192.168.129.1:8021

ファイルの編集が完了したら、パッケージリストの最新化をします。
ipkg update


<不要なパッケージの削除>
デフォルトで入っているパッケージの中で不要な物をじゃんじゃん削除します。SL-C750は本体メモリ容量が小さいため、必要なものでもSDに入れ直すという理由で削除してしまっているものもあります。削除対象は以下のとおりです。
abiword
audiofile
dillo-xft
esound
galculator
gqview
gtkboard
ircp
irda-utils
libffmpeg
libgnomeprint
libgnomeprintui
libid3tag
libmad
mc
mixmos
mplayer
obexftp
openobex-apps
scite
sdl
sdl-mixer
sylpheed-gtk2
tremor
xdemineur
xircp
xmms
xmms-dumb
xmms-mad
xmms-tremor
xmmsmplayer
xpdf

パッケージを削除するコマンドは以下のとおりです。
ipkg remove パッケージ名

そんなに沢山コマンドを打つのは大変!と言う方(私です…)は上記のリストをファイル(ここではhogeという名前です)に保存したあとにこんなコマンドをどうぞ。
for TARG in `cat hoge`; do ipkg remove $TARG; done


<パッケージの導入(本体)>
続いてインストール。本体側に以下のパッケージを導入します。
bzip2
gawk
gconf
glibc-locale-en-us-utf-8
glibc-locale-ja-jp-utf-8
pcre
grep
hc-cron
iptables
ntpdate
orbit2
sed
shared-mime-info
timezones
unzip
vte
xutf8
zip

パッケージを導入するコマンドは以下のとおりです。
ipkg install パッケージ名

削除と同じくこんなコマンドで少し楽できます。
for TARG in `cat hoge`; do ipkg install $TARG; done

hogeの書き換えはくれぐれもお忘れなく。(笑)


<タイムゾーンとプロンプトの設定>
タイムゾーンを日本にします。まずはlocaltimeを日本に設定。
ln -s /usr/share/zoneinfo/Japan /etc/localtime

そして /etc/profile の最終行に以下の記述を追加します。
export TZ=JST-09

ついでなのでプロンプトも変更しておきましょう。8行目にある"PS1"の記述を以下のように変更して下さい。("\"は画面上はバックスラッシュで表示されます)
PS1="[\u@\h \W]# "


<ハードウェアクロックの調整>
ザウルスは放っておくとハードウェアクロックがどんどんずれていってしまうらしいので、それを自動的に調整するようにします。
まずはcronから5分ごとに実行してくれるコマンドの置き場を作成します。
mkdir /etc/cron.5minutely

上記ディレクトリにハードウェアクロックの調整コマンドであるsethwclockを実行するシェルを(viなど使って)作成します。ファイル名は何でもいいんですが、ここではsethwclock.shとします。内容は以下のとおりです。
#!/bin/sh
/usr/bin/sethwclock

そしたら作成したシェルに実行権限をつけて下さい。
chmod 755 /etc/cron.5minutely/sethwclock.sh

/etc/crontabの設定は必要ありません。

ついでに時刻合わせもしましょう。母艦がWindowsXPであればntpサーバの機能を持っているので、以下のコマンドで時刻合わせが出来ます。
ntpdate 192.168.129.1

うまくいかなかった場合、母艦側で明示的にntpサーバと同期する(時計と時刻のプロパティのインターネット時刻タブで"今すぐ更新"を押す)とうまくいく場合があります。(というか私の場合これをやらないと絶対にうまくいかない…)


<キーアサインの追加>
標準状態のザウルスでは逆クォート(`)が打てません!普通に使う上ではあまり影響ないかもしれませんが、私はシェラー(=shell+er 笑)なのでこれが打てないと激しく困ります。そこで /etc/sysconfig/keyboard/kernel.map に以下の記述を追加します。
alt keycode 13 = grave

これでFn+mで逆クォートが打てるようになりました。
ちなみにやはりシェラーには必須の記号である中カッコ({})はFn+uFn+iで打てるのでご安心を。


<画面回転の不具合修正>
SL-C750/760ではViewStyleにすると表示が乱れてしまうという不具合があります。原因は画面回転時に使用するシェルでの機種判定漏れ。そこで /etc/sysconfig/clamshell/scripts.d/x11scr を以下のように変更します。

内容は別ウィンドウで → /etc/sysconfig/clamshell/scripts.d/x11scr

面倒なので機種判定部分はばっさりと切り落としてしまいました。もしC700をお使いの方はfastsysclkに対してechoで書き込みしている行を消してしまってください。(75のまま変更なしなので)


<起動時にクロックアップ>
ザウルスはとても簡単にCPUのクロック変更を行うことが出来ます。CPUの個体差もあると思いますが、ハズレを引いていなければ2割近いクロックアップが可能です(私もぜんぜん問題なく動いてます)。なので、起動時にクロックアップするようにします。

ただし、クロックアップをすることによりシステムが不安定になったり、最悪の場合CPUの寿命が縮まったりする可能性もあります。なのでこの作業は『それでもOK!』と思われる方のみ実施をお願いします。

まずは /etc/rc.d/init.d/startup を作成します。

内容は別ウィンドウで → /etc/rc.d/init.d/startup

見てお分かりのとおり、汎用的なスタートアップ/シャットダウン用のスクリプトにしてます。細かなことをしようとする度にスクリプトを新規作成するのも面倒なのでここにまとめるようにしました。

完成したら実行権限を付け、runlevel5からリンクを張ります。
chmod a+x /etc/rc.d/init.d/startup
cd /etc/rc.d/rc5.d
ln -s ../init.d/startup S99startup

ちなみにクロックアップについてはこちらが非常に参考になります。

SL-A300/B500/C700/C750/C760/C860/C1000/C3000/C3100/C3200/5600/6000 special kernel
http://tetsu.homelinux.org/zaurus/kernel/


<まとめ>
これでベースになる部分は完成しました。
一部の変更を有効にするためにOSのリブートをしましょう。
いよいよ次回からプログラムの導入、日本語化、そしてXの立ち上げなどをしていこうと思います。
posted by 月水和尚 (とも) at 13:00 | Comment(3) | TrackBack(0) | りなざう

2006年08月09日

pdaXrom 1.1.0beta1 - まとめ #1 OS導入と下準備

Linux Zaurusの代替OSであるpdaXromに関する導入、設定その他のまとめです。

今までもいくつか関連記事を書かせていただいておりましたが、いざ再導入となるとあっちを見たりこっちを見たりでいつも難儀していたので、今回beta1再導入を期にきちんとまとめてみることにしました。

非常に快適かつ楽しいpdaXromではありますが、SHARPの正規リリースでない以上全くの無保証です。そして私の書いている手順も申し訳ありませんが無保証です(自身のザウルスで手順の検証はしていますが)。あなたのザウルスが『煉瓦』になってしまうかもしれないリスクを理解した上で、自己責任にてこの楽しい世界をご堪能いただければと思います。

何か前書きが物々しくて申し訳ございません…。m(_ _)m


<前提>
SL-C750+SDカード512MBpdaXrom 1.1.0beta1 を導入します。
目標はbitWarpを使ったお出かけWebブラウジング環境。メールは読むだけなのでWebメールで済ませてしまいます。あとは家で録画したTV番組の再生にも使えるようにします。PDAのPDAたる機能であるPIMは全く使いません。(紙の手帳大好きな古い人間なんです…)

導入、設定にはWindowsマシンを使用します(以降『母艦』と呼びます)。またザウルス側のネットワークは付属のUSBケーブルを使って確保します(CF型のLANカードは使いません)。以降の作業に必要になる以下のプログラムは事前に導入しておいてください。

ザウルスのパソコン用ソフトウェア
http://support.ezaurus.com/sl-c750/update/c750softupdate/c750softupdate.asp

sshが使えるターミナルエミュレータ(私はPoderosaを使ってます)
http://ja.poderosa.org/

sftpクライアント(私はWinSCPを使っています)
http://winscp.net/eng/docs/lang:jp

プロキシーサーバ(私はBlackJumboDogを使っています)
http://homepage2.nifty.com/spw/software/bjd/

プロキシーサーバに関しては以前の記事などもご覧下さい。
以降、説明はプログラム名になるかと思いますのでご了承下さい。


<事前準備>
オリジナル環境のバックアップを取ります。(2度目以降は不要)
  1. 電池を抜き、ACアダプタも抜く
  2. FATでフォーマット済みのSDを挿す
  3. "D"と"M"を押しながらACアダプタを差し込む
  4. ServiceMenuの3ページ目にある"NAND Flash Back Up"を実行
SDに作成されたバックアップファイルはPCなどに大切に保管しておきましょう。


<OS導入>
pdaXromを導入します。といっても手順はいたって簡単です。
  1. まず以下のサイトからbeta1の導入イメージをダウンロード
     http://mail.pdaxrom.org/download/1.1.0beta1/Zaurus-7x0-860/
    ダウンロードするファイル名は kathrin-1.1.0beta1-corgi.zip です。
  2. ダウンロードしたファイルを解凍し、SDカードにコピー(それ以外のファイルは消しておく)
  3. ↑のSDカードをザウルスに挿す
  4. フルリセット(電池もACも抜けばOK)後に"OK"を押しながら電源投入して「メンテナンスメニュー」を表示
  5. "4 アップデート"→"3 SD"と選択(そのあと出る警告は無視する)
  6. "3 NAND Flash Utils"→"3 Fix Sharp loader NAND 64MB limit(SL-C760/C860 only)"と選択(これは一度だけやればOK)
  7. 再起動するので上記手順を繰り返し「メンテナンスメニュー」を表示
  8. "3 NAND Flash Utils"→"1 Resize root partition"を選択 設定値に"57"を入力(760/860なら"121" これも一度だけやればOK)
  9. 再起動するので上記手順を繰り返し「メンテナンスメニュー」を表示
  10. "1 Install new ROM"を選択しインストールの実行
  11. インストール終了後、"6 Reboot"を選択して再起動
再起動時に電源ランプが消える瞬間があるので、そのタイミングで"OK"を押すとすぐにメンテナンスメニューに入るので作業が楽です。

これで基本的なインストールは完了です。


<rootパスワードの設定>
起動したら、rootでログインします。パスワードは聞かれません(設定されてないので)。今後の作業をssh経由で行うためにパスワード設定は必須なので、以下のコマンドでパスワードを設定します。
passwd

パスワード聞かれますので、お好きなものを設定して下さい。

sshで接続できることを確認します。USBケーブルでザウルスと母艦を接続してください。母艦でザウルスが認識されたら、該当のネットワークカードのIPアドレスを 192.168.129.1 に設定します。ザウルス側はデフォルトでは 192.168.129.201 になっています。準備が出来たらPoderosaで接続してみましょう。

…接続できましたか?では次の作業へ!


<vimのインストール>
pdaXrom標準のviコマンドは動作が芳しくありません。なので何はともあれこいつをvimに置き換えます。母艦で以下のサイトから vim_7.0_cvs30_armv5tel.ipkvim-locale-ja_7.0_cvs30_armv5tel.ipk をダウンロードします。

pdaxrom — Proto_Type001
http://comomo.shacknet.nu/files/pdaxrom/

ダウンロードしたパッケージはWinSCPを使ってザウルス側に転送します。そしてファイルを置いたディレクトリで以下のコマンドを実行してインストールを行います。
ipkg install vim_7.0_cvs30_armv5tel.ipk
ipkg install vim-locale-ja_7.0_cvs30_armv5tel.ipk

ファイルがない旨エラーが出ますがここでは気にしないでください。
vi と入力したら vim が実行されるようリンクを張ります。
rm /bin/vi
ln -s /usr/bin/vim /bin/vi


<SDカード関連の設定>
まずは /etc/fstab を以下のように変更します。
(いらない定義の削除と後続のSDマウントのための準備)
削除
 /dev/mtdblock/3 /home jffs2 rw 0 0

追加
 /dev/mmcd/disc0/part2 /mnt/card auto noauto,owner 0 0

変更
 /dev/mmcd/disc0/part1 /mnt/card auto noauto,owner 0 0
        ↓
 /dev/mmcd/disc0/part1 /mnt/sd auto noauto,owner 0 0

最終的にファイルの内容はこうなります → /etc/fstab

ついでにマウントポイントも作成しておきます。
mkdir /mnt/sd

SDカードの取り回しを良くするために、/etc/sdcontrol を修正します。
(経緯については過去の記事をご覧下さい)

内容は別ウィンドウで → /etc/sdcontrol
sftpで置くだけの実ファイルも置いておきます → sdcontrol

そしたらSDカードのパーティション設定とフォーマットを実行します。
まずはSDカードを挿して(抜いてなければそのままでOKです)以下のコマンドを実行します。
umount /mnt/card
fdisk /dev/mmcd/disc0/disc

fdiskのプロンプトが出るので以下のとおり作業します。
n(新しい区画を作成)
p(基本区画)
1(1つ目のパーティション)
何も入力せずEnter(ディスクの先頭から)
+312M(サイズは312MB)
n(新しい区画を作成)
p(基本区画)
2(2つ目のパーティション)
何も入力せずEnter(残り区画の最初から)
何も入力せずEnter(サイズは残り全部)
t(区画のシステムIDを変更)
1(1つ目のパーティション)
6(FAT16に設定)
w(テーブルを書き込んで終了)

これでパーティショニングは完了しました。
続いて各領域をフォーマットします。1つめをFAT、2つめをext3とします。
mkfs.msdos /dev/mmcd/disc0/part1
mkfs.ext3 /dev/mmcd/disc0/part2

フォーマットの完了した各領域をマウントします。
mount /mnt/sd
mount /mnt/card

無事にマウントできたか確認してみましょう。
mount

/mnt/sd/mnt/cardが表示されればOKです。

続いてSD上のext3領域に32MBのSWAPファイルを作成します。
dd if=/dev/zero of=/mnt/card/.swap bs=512 count=65536
mkswap /mnt/card/.swap
swapon /mnt/card/.swap

無事に完了したか確認してみましょう。
free

これでSwap:という列のtotal32760と表示されていればOKです。


<仮想コンソールの設定>
デフォルトではpdaXromで使用できるコンソールは1つだけですが、何かと便利なので2つ使えるようにしておきます。/etc/inittab に以下の1行を追加します。
lm:345:respawn:/sbin/getty 9600 tty2

最終的にファイルの内容はこうなります → /etc/inittab


<まとめ>
これでOSの導入と以後の作業に向けた下準備は完了です。
ここらで1回OSをリブートしてみましょう。(ターミナルを抜けるのを忘れずに)
念のためリブートのコマンドも書いておきます。
reboot

リブートが完了したら以下の点を確認してください。

・SDカードの2つのパーティションがマウントされている
・SWAPファイルが使用可能になっている
・2つの仮想コンソールを"Alt+左右の矢印"で行き来できる


全て大丈夫でしたか?ではこの辺で一休み!
次はパッケージの整理と初期設定について書きたいと思います。もうしばらく華やかさのない地味な作業が続きますが、頑張りましょう。
posted by 月水和尚 (とも) at 15:40 | Comment(0) | TrackBack(0) | りなざう

2006年07月27日

快適bitWarp メジャーバージョンアップ

メジャーバージョンアップなんて格好いい事書いてますが、実は中核モジュールであるbitwarp-keeperに致命的な不具合があることが発覚!bitwarp-keeperを常駐させておくと、jffs2_gcd_mtd2というプロセスが定期的にCPUを食い尽くしてしまうことが分かりました。(この結論に辿り着くまでが長かったんです…orz)

以前のモジュールをお使いの方、大変申し訳ありませんでした。m(_ _)m

どうやらbitwarp-keeperが定期的にカードの状態を確認しに行っている部分が原因のようなのですが、cardctlを頻繁に実行するのが悪いのか1秒周期のループ処理ってのが悪いのか詳しい原因はよく分かっていません。

とは言え原因部分が判明したので、対策を打つことにします。

そもそもカードの監視は『通信中に本体をサスペンドしてしまうとレジューム時にカードの状態がSuspendになってしまい通信が継続できなくなる』という現象の対策として行っています。(ダイアルアップのコマンドであるauthdrvも監視していますがこいつは頻繁に落ちるわけではないので監視頻度はもっと長くてもかまいません)

ゆえにレジューム時に何かコマンドを実行してくれる機能があればそちらに機能を移すことが出来る(というかその方が美しい)ので、そんな機能はないかなぁ…と探したところ、/etc/apm 配下に求める機能が実装されていました。サスペンド時に suspend.d 配下にあるコマンドを、レジューム時に resume.d 配下にあるコマンドを実行してくれるようです。(/etc/rc.d 配下と同じような感じですね)

そしてここをよく見てみると、サスペンド/レジューム時にカードに対して処理を行っていることが判明!内容としては、
サスペンド時:カードの取出 (cardctl eject)
レジューム時:カードの挿入 (cardctl insert)

となっています。

bitWarp通信中はカードはauthdrvに握られてしまうためejectは利きません。そのままサスペンド状態になるので、レジューム時にはカードは挿入されたままResume状態になります。そのためレジューム時に実行されるinsertもエラーとなり、結果としてレジューム後のカード状態はSuspendになってしまうようです。

まずはこの点について改善します。処理の内容を、
サスペンド時:カードのサスペンド (cardctl suspend)
レジューム時:カードのレジューム (cardctl resume)

に変更します。

/etc/apm/scripts.d/cardctl
#! /bin/bash
#
# cardctl Eject cards before a suspend and reinsert after resume
#
# description:
#



# See how we were called.

suspend() {
# cardctl eject 2>/dev/null
cardctl suspend 2>/dev/null
return 0
}

resume() {
# cardctl insert 2>/dev/null
cardctl resume 2>/dev/null
return 0
}


case "$1" in
suspend)
suspend
;;
resume)
resume
;;
*)
echo "Usage: $0 {suspend|resume}"
exit 1
esac

exit $?
ストレージ系のカードを使っている場合にどのような影響があるかちょっと未知数ですが、私の場合CFスロットは常時通信カードなのでこれで良しとします。(気になる方はカードのidentで条件分岐させるのも手かと)

これで通信カードはきちんと使える状態で復帰してくれるはずなのですが、一度カードをsuspendにしているのでauthdrvは再起動の必要があります。レジューム時に再起動されるようにこんなスクリプトを作成します。

/etc/apm/scripts.d/bitwarp
#! /bin/bash
#
# bitwarp Restart bitwarp connection if already started
#

suspend() {
return 0
}

resume() {
/usr/local/sbin/bitwarp-restarter &
return 0
}


case "$1" in
suspend)
suspend
;;
resume)
resume
;;
*)
echo "Usage: $0 {suspend|resume}"
exit 1
esac

exit $?
このシェル内に再起動処理を持たせても良かったのですが、関連シェルが1ヶ所に集まっていた方が幸せなので再起動処理を行うシェルを呼ぶだけにしました。

このシェルがレジューム時に呼び出されるようにします。
cd /etc/apm/resume.d
ln -s ../scripts.d/bitwarp 900bitwarp

実際に再起動を行うシェルも作成します。

/usr/local/sbin/bitwarp-restarter
#
# bitwarp-restarter - restart bitwarp connection
# Ver 1.0 (2006/07/27) by tomo@bird-head
#

# set parameter
BW_DIALCMD="authdrv" # dialup command name
PROCSTAT=0 # dialup process status

# check bitwarp connection status
ps | grep ${BW_DIALCMD} | grep -v grep > /dev/null

# restart bitwarp connection if already connected
if (( $? == 0 ))
then
# stop bitwarp
/usr/local/sbin/bitwarp-killer
ledctl --led2 flashon

# wait for stop dialup
while (( $PROCSTAT == 0 ))
do
sleep 1
ps | grep ${BW_DIALCMD} | grep -v grep > /dev/null
PROCSTAT=$?
done

# restart bitwarp
/usr/local/sbin/bitwarp-keeper &
fi
これでカード監視の必要がなくなったので、bitwarp-keeperから該当のロジックを削除します。(ついでに細かなバグ取りとかチューニングもしています)

/usr/local/sbin/bitwarp-keeper
#!/bin/bash
#
# bitwarp-keeper - start and keep bitwarp connection
# Ver 2.0 (2006/07/27) by tomo@bird-head
#

# set parameter
BW_CARDNAME="VN-201" # bitWarp card ident
BW_DIALNAME="bitWarp" # PPP dial name
BW_DIALCMD="authdrv" # dialup command name
PING_HOST="202.238.95.65" # ping target host

# check card existence
cardctl status 0 | grep "no card" > /dev/null
if (( $? == 0 ))
then
cardctl insert
cardctl status 0 | grep "no card" > /dev/null
if (( $? == 0 ))
then
echo "Please insert bitWarp card!"
bitwarp-errinfo &
exit 1
fi
fi

# check card identification
cardctl ident 0 | grep ${BW_CARDNAME} > /dev/null
if (( $? != 0 ))
then
echo "Please insert bitWarp card! (other card exist)"
bitwarp-errinfo &
exit 1
fi

# check dialup status
ps | grep ${BW_DIALCMD} | grep -v grep > /dev/null
if (( $? == 0 ))
then
echo "bitWarp already started."
exit 0
fi

# reset bitWarp card
cardctl reset 0

# Mail LED blink
ledctl --led2 normblink

# start ping
ping -i 15 ${PING_HOST} > /dev/null 2>&1 &

# start and keep connection
while (true)
do
# if dialup not executed, start dialup
ps | grep ${BW_DIALCMD} | grep -v grep > /dev/null
if (( $? != 0 ))
then
${BW_DIALCMD} ttyS3 debug call ${BW_DIALNAME} &
bitwarp-pppcheck on &
fi

# sleep 10 seconds
sleep 10
done
残りのシェルは前回からほぼ変更なしなので一気に行きたいと思います。(配置場所を /usr/local/bin から /usr/local/sbin に変更した影響で前回のままでは動かない物もあるのでご注意下さい)

/usr/local/sbin/bitwarp-killer
#!/bin/bash
#
# bitwarp-killer - stop bitwarp connection
# Ver 1.2 (2006/07/27) by tomo@bird-head
#

# set parameter
BW_DIALCMD="authdrv"

# Mail LED blink
ledctl --led2 normblink

# Stop bitwarp moodules
killall ping > /dev/null 2>&1
killall bitwarp-keeper > /dev/null 2>&1
killall bitwarp-pppcheck > /dev/null 2>&1
killall bitwarp-errinfo > /dev/null 2>&1
killall ${BW_DIALCMD} > /dev/null 2>&1

# Check ppp status
bitwarp-pppcheck off
/usr/local/sbin/bitwarp-switcher
#!/bin/bash
#
# bitwarp-switcher - switch bitwarp connection
# Ver 1.1 (2006/07/27) by tomo@bird-head
#

ps | grep /usr/local/sbin/bitwarp-keeper | grep -v grep > /dev/null

if (( $? == 0 ))
then
/usr/local/sbin/bitwarp-killer
else
/usr/local/sbin/bitwarp-keeper &
fi
/usr/local/sbin/bitwarp-pppcheck
#!/bin/bash
#
# bitwarp-pppcheck - check ppp status (LED status change)
# Ver 1.0 (2006/04/04) by tomo@bird-head
#

# set parameter
TARGSTAT=$1
if [[ $TARGSTAT == "on" ]];then
TARGRC=0
elif [[ $TARGSTAT == "off" ]];then
TARGRC=1
else
exit 1
fi

# check ppp status
ifconfig | grep -q ppp0
while (( $? != $TARGRC ))
do
sleep 1
ifconfig | grep -q ppp0
done

# Mail LED change
ledctl --led2 $TARGSTAT
/usr/local/sbin/bitwarp-errinfo
#!/bin/bash
#
# bitwarp-errinfo - inform error status (LED flash)
# Ver 1.0 (2006/04/04) by tomo@bird-head
#

# Mail LED veryfastblink
ledctl --led2 vfstblink

sleep 5

# Mail LED OFF
ledctl --led2 off
使い方やカスタマイズ方法などは前回記事をご覧下さい。

一つだけ既知の問題。
コマンドラインからbitwarp-keeperを実行するときにはフルパス指定で実行する必要があります。(死活監視をフルパス付きのpsで見ているためです)
コマンドラインから頻繁に使われる方は、こんなシェルを作成されると良いかと思います。(というか私も使っています)

/usr/local/sbin/bppp
#!/bin/bash

ps -ef | grep /usr/local/sbin/bitwarp-keeper | grep -v grep > /dev/null

if (( $? == 0 ))
then
echo "bitwarp-keeper already started."
else
/usr/local/sbin/bitwarp-keeper &
fi
あとは/usr/local/sbin にパスを通しておけば完璧かと。

作成したファイルはこちらに置いておきます。
ファイル数が多いので配置先ごとにtarで固めておきました。

/usr/local/sbin 配下のモジュール:bwhelper.tar
/etc/apm/scripts.d 配下のモジュール:apm-sh.tar

ご意見、感想などお待ちしております。
(実際にお使いになっている方、一言でいいので是非ともコメントをお寄せ下さい!)
posted by 月水和尚 (とも) at 10:34 | Comment(0) | TrackBack(0) | りなざう

2006年04月04日

快適bitWarp バージョンアップ!

−重要なお知らせ−

致命的な不具合が発覚したためバージョンアップしました。
詳しくは新しい記事をご覧下さい。


以前作成したbitWaprの快適化モジュール、ちょっとバージョンアップしてみました。きっかけになったのはQT環境に戻っていたときの通信の快適さ。何しろタスクバーアイコン1クリックで接続も切断も出来たのですからコンソールからコマンドを打つpdaXrom上の環境とは雲泥の差です。

というわけで、今回の目標。

bitwarpの接続/切断を1クリックで!
・接続状態も分かればなお良し

接続の1クリック化は実は簡単で、既存のシェルをちょっといじるだけなのですが、問題は接続状態の表示。QT環境のようにウィンドウが表示されたりアイコンのデザインを変えたりなどという事はとてもじゃないけど不可能です。う〜ん…と考え込んでいたときにふと目に付いたのが、メールのLED。QT環境ではメール受信の際に点くものですが、pdaXromでは使われていません。これを何とか使えないか…と思ったら、LEDを制御するプログラムを公開してくださっている方がいらっしゃいました。

Zaurus Archives:c700ctl
http://www.geocities.co.jp/SiliconValley-Bay/1180/ledctl.html

これならいけるかも!というわけで、早速作ってみました。

/usr/local/bin/bitwarp-keeper
#!/bin/bash
#
# bitwarp-keeper - start and keep bitwarp connection
# Ver 1.2 (2006/04/06) by tomo@bird-head
#

# set parameter
BW_CARDNAME="VN-201" # bitWarp card ident
BW_DIALNAME="bitWarp" # PPP dial name
BW_DIALCMD="authdrv" # dialup command name
PING_HOST="202.238.95.65" # ping target host

# Mail LED blink
ledctl --led2 normblink

# check card existence
cardctl status 0 | grep "no card" > /dev/null
if (( $? == 0 ))
then
cardctl insert
cardctl status 0 | grep "no card" > /dev/null
if (( $? == 0 ))
then
echo "Please insert bitWarp card!"
bitwarp-errinfo &
exit 1
fi
fi

# check card identification
cardctl ident 0 | grep ${BW_CARDNAME} > /dev/null
if (( $? != 0 ))
then
echo "Please insert bitWarp card! (other card exist)"
bitwarp-errinfo &
exit 1
fi

# start ping
ping -i 5 ${PING_HOST} > /dev/null 2>&1 &

# start and keep connection
while (true)
do
# if card is suspended, stop dialup and resume card
cardctl status 0 | grep "suspended" > /dev/null
if (( $? == 0 ))
then
ledctl --led2 normblink
killall ${BW_DIALCMD} > /dev/null
cardctl resume 0
sleep 1
fi

# if dialup not executed, start dialup
ps | grep ${BW_DIALCMD} | grep -v grep > /dev/null
if (( $? != 0 ))
then
${BW_DIALCMD} ttyS3 debug call ${BW_DIALNAME} &
bitwarp-pppcheck on &
fi

# sleep 1sec
sleep 1
done
/usr/local/bin/bitwarp-killer
#!/bin/bash
#
# bitwarp-killer - stop bitwarp connection
# Ver 1.1 (2006/04/06) by tomo@bird-head
#

# set parameter
BW_DIALCMD="authdrv"

# Mail LED blink
ledctl --led2 normblink

# Stop bitwarp moodules
killall ping > /dev/null 2>&1
killall bitwarp-keeper > /dev/null 2>&1
killall bitwarp-pppcheck > /dev/null 2>&1
killall bitwarp-errinfo > /dev/null 2>&1
killall ${BW_DIALCMD} > /dev/null 2>&1

# Check ppp status
bitwarp-pppcheck off &
/usr/local/bin/bitwarp-switcher
#!/bin/bash
#
# bitwarp-switcher - switch bitwarp connection
# Ver 1.0 (2006/04/04) by tomo@bird-head
#

ps | grep /usr/local/bin/bitwarp-keeper | grep -v grep > /dev/null

if (( $? == 0 ))
then
/usr/local/bin/bitwarp-killer
else
/usr/local/bin/bitwarp-keeper &
fi
/usr/local/bin/bitwarp-pppcheck
#!/bin/bash
#
# bitwarp-pppcheck - check ppp status (LED status change)
# Ver 1.0 (2006/04/04) by tomo@bird-head
#

# set parameter
TARGSTAT=$1
if [[ $TARGSTAT == "on" ]];then
TARGRC=0
elif [[ $TARGSTAT == "off" ]];then
TARGRC=1
else
exit 1
fi

# check ppp status
ifconfig | grep -q ppp0
while (( $? != $TARGRC ))
do
sleep 1
ifconfig | grep -q ppp0
done

# Mail LED change
ledctl --led2 $TARGSTAT
/usr/local/bin/bitwarp-errinfo
#!/bin/bash
#
# bitwarp-errinfo - inform error status (LED flash)
# Ver 1.0 (2006/04/04) by tomo@bird-head
#

# Mail LED veryfastblink
ledctl --led2 vfstblink

sleep 5

# Mail LED OFF
ledctl --led2 off
関連モジュールの作成はこれで完了。
続いてタスクバーアイコンのためのファイルを作成。

/usr/share/applications/bitwarp-switch.desktop
[Desktop Entry]
Name=Switch bitWarp
Comment=Swtich bitWarp connection status
Exec=bitwarp-switcher
Terminal=0
Type=PanelApp
Icon=kppp.png
StartupNotify=False
SingleInstance=False

そしたらこいつをタスクバーに追加します。面倒なのでmbdock.sessionに以下の記述を追加。(お好きなところにどうぞ)

/home/root/.matchbox/mbdock.session
mb-applet-launcher -o -1 --desktop /usr/share/applications/bitwarp-switch.desktop

これでアイコンをクリックすると未接続なら接続を、接続中なら切断を行います。LEDは接続や切断の最中が遅い点滅、PPP接続が確立されたら点灯、切断時は消灯、カードがなかったりとエラーが発生した場合は早い点滅が5秒間。

だいぶ使い勝手UP!ふっふっふ。

作成したファイルはこちらに置いておきます。

bitwarp-keeper (Ver1.2 2006/04/06)
bitwarp-killer (Ver1.1 2006/04/06)
bitwarp-switcher(Ver1.0 2006/04/04)
bitwarp-pppcheck(Ver1.0 2006/04/04)
bitwarp-errinfo (Ver1.0 2006/04/04)


 → 修正履歴はこちら
posted by 月水和尚 (とも) at 18:16 | Comment(0) | TrackBack(0) | りなざう

utf8でも日本語w3m

beta1EUCからutf8に完全移行を果たした私の日本語環境ですが、ちょっとだけ困ったのがw3m。今まで使っていた日本語メッセージカタログのw3m.moを導入しても文字化け化けで使い物になりません。どうやらメッセージカタログもutf8化しなければならないみたいです。

ないものは作る!というわけで、初めてのメッセージカタログ作りに挑戦。

まずは元ネタをゲットします。開発元からファイルを一式入手。

W3M Homepage
http://w3m.sourceforge.net/index.ja.html

ダウンロードしたファイルから ja.po を取り出します。
そしたらそのファイルをの上の方にある記述を以下のように変更します。
"Content-Type: text/plain; charset=EUC-JP\n"
   
"Content-Type: text/plain; charset=UTF-8\n"

そしたら保存なのですが、元はEUCなファイルをutf8で保存する必要があります。私はWindowsでいつも便利に使わせていただいているoeditを使って編集/保存しました。(ちなみにoeditの場合は"UTF8"ではなく"UTF8(no signature)"という方で保存しないと駄目でした)

そしたらこのファイルをlinux環境に持ち込みます。私の場合は自宅にVine Linuxがあるのでそれを使いました。
そして以下のコマンドを実行してメッセージカタログを生成します。
msgfmt -o w3m.mo ja.po

完成したw3m.moをザウルスの/usr/local/share/locale/ja/LC_MESSAGESに保存すれば完成です。

…と思ったのもつかの間。ヘルプが英語表示です。
こちらはVine側から以下のファイルを持ち込んだら日本語になりました。(ザウルス側の保存先は/usr/local/shareです)
/usr/share/w3m/w3mhelp-funcdesc.ja.pl
/usr/share/w3m/w3mhelp.html

このままだとデフォルトのヘルプ表示が英語なので、デフォルトで日本語が表示できるようにします。オプション設定の画面から『受けつける言語(Accept-Language:)』を選択し、以下のように編集します。
ja;q=1.0, en;q=0.5

w3mって今まであまり使い道を見いだせてなかったのですが、使ってみたら超便利!軽いってのもさることながらページの再現性は『これがテキストブラウザ?』と思ってしまうほどの素晴らしさです。ブックマークはFoxmarksMy Foxcloudに行けばFirefox側と同期できてるも同然ですし、dilloFirefoxでさえもうまく表示できなかったGMailも楽々使えました。これはちょっと感動でした。

折角なので作ったw3m.moこちらに置いておきます。よかったらお使いください。
posted by 月水和尚 (とも) at 12:05 | Comment(4) | TrackBack(0) | りなざう

2006年04月03日

ないしょキーアサイン

キーボードからは打てないと思っていた ` ですが、実は"Fn+m"で打てることが判明!比較的使うキーだけに非常に嬉しい発見♪
ただ残念ながら打てるのはXを立ち上げているときだけ。/etc/sysconfig/keyboard/kernel.mapcorgi.xmodmapと同じ記述を入れてみましたが、打てるようにはなりませんでした。はて何とかならないかな…と思って調べていたら、いつもお世話になっているゆるゆるはっかーさんのところにやり方が公開されていました。

Loose Hacker
http://www.loosehacker.com/lhacker/tips/keybind.html

しかしここではFnキーの使い方が書かれていません。xmodmapと同じ書き方をしてもうまくいかなかったので、妥協案として"Alt+m"に割り当てることに。すると…。

『"Fn+m"でもちゃんと打てるじゃないですか!』

コンソールではFnキーAltキー(というかAddressキー)は両方ともAltに割り当てられていたんですね。

/etc/sysconfig/keyboard/kernel.mapに追加したのはこの1行です。
alt keycode 13 = grave

あとはX上であればFnと上下左右の組み合わせでPageUP/PageDOWN/Home/Endも使えます。(小さいノートPCなんかだとありがちなキーアサインですね)

またちょっとだけいい感じになりました♪
posted by 月水和尚 (とも) at 20:37 | Comment(0) | TrackBack(0) | りなざう

2006年04月01日

uim+anthyで完璧日本語入力!

kenyaさんが最新のuim1.0.1anthy7500をコンパイルして下さいました!(感謝)

pdaXromクロスコンパイル — Proto_Type001
http://comomo.shacknet.nu/3

で、さっそく使わせて頂いたのですが、普段ATOK慣れしている私には変換操作がうまく出来ない…。(涙)
そこでkenyaさんに教えて頂いた情報を元にカスタマイズを実行。すんごくいい感じで使えるようになりました。カスタマイズ後の操作方法としては、
次の文節に移動:Alt+右 Ctrl+n
前の文節に移動:Alt+左
文節を伸ばす:右 Ctrl+l
文節を縮める:左 Ctrl+k
半角英数変換:Ctrl+p
全角英数変換:Ctrl+o
ひらがな変換:Ctrl+u
カタカナ変換:Ctrl+i
日本語変換ON:全/半
日本語変換OFF:全/半
ひらがな/カタカナ切替:カナひら
変換開始:スペース
確定:リターン Ctrl+m
キャンセル:Cancel
次の変換候補:下 スペース
前の変換候補:上 Shift+スペース
次の変換候補群:カナひら
前の変換候補群:Shift+カナひら
バックスペース:BS Ctrl+h
削除:Del Ctrl+g
カーソルを右へ:Ctrl+右
カーソルを左へ:Ctrl+左

としています(かなり個人的趣味)。また"/"キーは通常"、"でShift付き"・"、"?"キーは通常"。"でShift付き"?"としています。

必要なファイルは以下の2つです。

/home/root/.uim
(require-module "anthy")
(define-key anthy-next-segment-key? '("<Alt>right" "<Control>n"))
(define-key anthy-prev-segment-key? '("<Alt>left"))
(define-key anthy-extend-segment-key? '("right" "<Control>l"))
(define-key anthy-shrink-segment-key? '("left" "<Control>k"))
(define-key anthy-transpose-as-latin-key? '("F10" "<Control>p"))
(define-key anthy-transpose-as-wide-latin-key? '("F9" "<Control>o"))
(define-key anthy-transpose-as-hiragana-key? '("F6" "<Control>u"))
(define-key anthy-transpose-as-katakana-key? '("F7" "<Control>i"))
(define-key anthy-transpose-as-hankana-key? '("F8"))
(define-key anthy-commit-as-opposite-kana-key? '())
(define-key anthy-wide-latin-key? '())
(define-key anthy-hankaku-kana-key? '())
(define-key anthy-kana-toggle-key? '("Henkan_Mode"))
(define-key anthy-on-key? '("zenkaku-hankaku"))
(define-key anthy-latin-key? '("zenkaku-hankaku"))
(define-key anthy-begin-conv-key? '(" "))
(define-key anthy-commit-key? '("return" "<Control>m"))
(define-key anthy-cancel-key? '("escape"))
(define-key anthy-next-candidate-key? '("down" " "))
(define-key anthy-prev-candidate-key? '("up" "<Shift> "))
(define-key anthy-next-page-key? '("Henkan_Mode"))
(define-key anthy-prev-page-key? '("<Shift>Henkan_Mode"))
(define-key anthy-beginning-of-preedit-key? '())
(define-key anthy-end-of-preedit-key? '())
(define-key anthy-kill-key? '())
(define-key anthy-kill-backward-key? '())
(define-key anthy-backspace-key? '("backspace" "<Control>h"))
(define-key anthy-delete-key? '("delete" "<Control>g"))
(define-key anthy-go-left-key? '("<Control>left"))
(define-key anthy-go-right-key? '("<Control>right"))
(define ja-rk-rule
(append '(
((("/") . ()) ("、" "、" "、"))
(((",") . ()) ("・" "・" "・"))
((("\\") . ()) ("¥" "¥" "¥"))
)
ja-rk-rule))
/home/root/.anthy/last-record2_default
ADD "PRIVATEDIC" S"・" S"÷" S"#KJ" N1 S"/" S"#KJ" N1 S"‥" S"#KJ" N1 S"…" S"#KJ" N1
ADD "PRIVATEDIC" S"・・" S"‥" S"#KJ" N1
ADD "PRIVATEDIC" S"・・・" S"…" S"#KJ" N1
ADD "PRIVATEDIC" S"¥" S"\\" S"#KJ" N1 S"\" S"#KJ" N1

どちらのファイルも文字コードはEUCで作成する必要があります。

あと、"カナひら"キーと"全/半"キーを使えるようにするために/etc/X11/kb/corgi.xmodmapに以下の記述を追加します。
keycode 129 = Henkan_Mode
keycode 130 = Kanji

これで完了。

作成が大変…と言う方のために、上記の.uimlast-record2_defaultを置いておきますので、良かったら使ってやって下さい。
またキーバインドを自分なりにアレンジされたい方はご本家の情報を参考に色々弄ってみて下さい。

uim - カスタマイズ
http://anthy.sourceforge.jp/cgi-bin/hikija/hiki.cgi?CustomizeUim

今更気付いたのですが、漢字を使う時って"Fn+全/半"(紫文字の"漢字")じゃなくて単に"全/半"なんですね。今回はキーコードの調べ方とかxmodmapの書き方とか色々と勉強になりました。
kenyaさん、yasuさん、いつもお力添えありがとうございます。m(_ _)m
posted by 月水和尚 (とも) at 23:19 | Comment(0) | TrackBack(0) | りなざう

2006年03月30日

matchbox-panel ぷちTips

ちょっと今回は手抜き説明です。m(_ _)m

<その1>
日本語ロケールでもかっこいい時計!


日本語ロケールで起動すると、英語ロケールのそれとはうって変わって何だか間抜けな表示になってしまう右下の時計。これを英語ロケールの時のかっこいい表示にするための方法。

まずは時計アプレットを移動。
mkdir /usr/bin/mb-applet.d
mv /usr/bin/mb-applet-clock /usr/bin/mb-applet.d

そしたら以下の内容のシェルを作成。

/usr/bin/mb-applet-clock
#!/bin/sh

export LANG=""
export PATH=/usr/bin/mb-applet.d
mb-applet-clock &

作成したシェルに実行権限をつけたらXを起動します。

・・・ほら、格好いい時計に早変わり!


<その2>
アプレットの順序を記憶


アプレットの表示順は通常きちんと記憶されていますが、アプレットが障害等で落ちてしまった場合、再立ち上げ(というかAddから追加し直し)すると一番内側に表示されてしまいます。順序の入れ替えも出来ず、元に戻そうと思ったらアプレットの追加と削除を繰り返して並べ替えるしかありません。それの簡単な回避方法。

まずはアプレットを綺麗に並べます。理想的な配置になったら一度Xを終了。
そしたらセッション管理ファイル(と呼んでいいのかな?)をコピーします。
cd /home/root/.matchbox/
cp -p mbdock.session mbdock.session.org

そして.xinitrcの最初の方に以下の記述を追加。
cp -p /home/root/.matchbox/mbdock.session.org /home/root/.matchbox/mbdock.session

これでいつでも理想の配置♪
あ、配置を変更したらファイルのコピーをお忘れ無く。


<おまけ>(上記弄っていて気が付いた事)

日本語化の常套手段である『日本語TTFを配置したら元からあったフォントは全て削除』ですが、これやらなくてもLook&Feelで日本語のフォントを指定してあげれば豆腐にならずにきちんと日本語表示されます。

あとこれまた日本語化の時に必ず追加する
test -f /etc/X11/kb/corgi.xmodmap_jp
         && xmodmap /etc/X11/kb/corgi.xmodmap_jp

ですが、何気に追加しなくても問題ないですね。beta1でもbeta2でもcorgi.xmodmap_jpというファイルは存在しないので…。(どのバージョンから無くなったんでしょ?)

mbdock.sessionを編集すればアプレットの順序は自由に変更可能です。またAddから追加した場合に左にしか追加出来ないアプレットを右側に出す事も可能です。やり方はファイル見ればすぐ分かると思うので割愛。
posted by 月水和尚 (とも) at 20:38 | Comment(0) | TrackBack(0) | りなざう

sdcontrol再構築(beta1編)

さんざん弄くり回したbeta2ですが、またもシステムが不安定になってしまったのと、SDカード周りの問題で実用には辛いと言うことがはっきり分かったので、beta1に戻すことにしました。(いやそれ以前はRC10だったのでそこから見れば大幅バージョンアップなのですが)

beta1ではSDに問題は発生しないのですが、せっかく複数パーティション対応をbeta2でやったので、beta1sdcontrolも再構築してみました。

/etc/sdcontrol
#!/bin/sh
#
# sdcontrol 1.0 Rev.2 2006/03/30 by T.Yokota
# ( 1.0 2001/8/8 21:33:19 (Hideki Hayami) )
#
# Initialize or shutdown a SD card device
# (for pdaXrom 1.1.0 beta1 or older release)
#
# The first argument should be
# 'insert' 'eject' 'compeject' 'change'.
#

# Command parameter
ACTION=$1

# User definition
# (Please edit for your environment)
MOUNT_POINT=(/mnt/sd /mnt/card)
SWAPFILE=/mnt/card/.swap

# Constant definition
DEVICE_PREFIX=/dev/mmcd
STORAGE_STAT_FILE=/proc/usb-storage
STORAGE_PID_FILE=/var/run/usbdstorage.pid

# mouont / umount
case "$ACTION" in
'insert')
TARGSTAT=0
for TARGET in ${MOUNT_POINT[*]}
do
mount | fgrep $TARGET > /dev/null 2>&1
if (( $? != 0 )); then
mount $TARGET
fi
done

if [ -r $SWAPFILE ]; then
swapon $SWAPFILE
fi
;;

'eject'|'compeject')
TARGSTAT=1
SWAPSIZE=`free | awk '/Swap/{print $2}'`
if [ $SWAPSIZE != "0" ]; then
swapoff $SWAPFILE
fi

for TARGET in ${MOUNT_POINT[*]}
do
mount | fgrep $TARGET > /dev/null 2>&1
if (( $? == 0 )); then
TARGDEV=`grep $TARGET /etc/fstab | awk '{print $1}'`
if [ $ACTION = "eject" ]; then
fuser -s -m $TARGDEV
if (( $? == 0 )); then
echo "!!WARNING!! Filesystem $TARGET is in use. Cannot umount."
continue
fi
else
fuser -s -k -m $TARGDEV
fi
umount -l $TARGET
fi
done
;;

'change')
$0 compeject
sleep 1
$0 insert
;;

*)
echo "Usage : $0 ( insert | eject | compeject | change )"
exit 1
;;
esac

# Check result
mount | grep -q $DEVICE_PREFIX
if (( $? != $TARGSTAT )); then
echo "SD $ACTION failed."
exit 1
fi

# Reload usb storage module (if executing)
grep -q $STORAGE_STAT_FILE $DEVICE_PREFIX 2> /dev/null
if (( $? == 0 )); then
kill -HUP `cat $STORAGE_PID_FILE`
fi

# finish
exit 0
mountfuserの挙動がきちんとしているので外出しのシェルなしできちんと動きます。やっぱこうでないと。(これならumount-lオプションも不要かな?)

この対応で初めてUSBストレージモードを使ってみたんですが、これ便利ですね。今までネットワーク接続してsftpとかで送ってた自分がちょっと間抜けに見えてしまいました。(汗)
しかしZaurus側でファイルの変更してもPC側には即時に反映されないのにはちょっと驚きました。現行のスクリプトではSDのinsert/eject時にリフレッシュをかけてますが、USBストレージモードで動かしてるときは定期的にリフレッシュをかけるようにしておいた方が使い勝手がよいような気がします。まぁ使う側で気をつければいい話ではありますが。(リフレッシュのコマンドは用意しておいた方が幸せですね)

検証はSL-C750でしかしていませんがどの機種でも動くような気がします…が、そもそも検証が甘甘なので試される方はくれぐれも自己責任でお願いいたします。m(_ _)m
posted by 月水和尚 (とも) at 12:50 | Comment(6) | TrackBack(0) | りなざう

2006年03月27日

sdcontrol再構築

前回beta2を飛ばす原因になった(関係ないのかな?)sdcontrolの再構築がとりあえず完成。これならうまく動くはず。ただそもそもこれを弄くるきっかけになった『CF刺さないと起動失敗問題』とは関係なさそう。

SL-C750+SDカードにパーティションを2つ(1つめがFATで2つめがext3)という環境専用です。その他の環境の方はオリジナルのsdcontrolを見ながら適宜変更してください。あと/etc/fstabにSDのパーティション2つの定義が書かれているのが必須です。

/etc/sdcontrol
#!/bin/sh
#
# sdcontrol 1.0 Rev.2 2006/03/27 by T.Yokota
# ( 1.0 2001/8/8 21:33:19 (Hideki Hayami) )
#
# Initialize or shutdown a SD card device
#
# The first argument should be
# 'insert' 'eject' 'compeject' 'change'.
#

ACTION=$1
SD_MODULE=mmc_pxa

MOUNT_POINT=(/mnt/sd /mnt/card)
SWAPFILE=/mnt/card/.swap


case "$ACTION" in
'insert')
/sbin/lsmod | grep $SD_MODULE > /dev/null 2>&1
if (( $? != 0 )); then
/sbin/modprobe $SD_MODULE
fi
usleep 50000

for TARGET in ${MOUNT_POINT[*]}
do
mount | fgrep $TARGET > /dev/null 2>&1
if (( $? != 0 )); then
mount $TARGET
fi
done

if [ -r $SWAPFILE ]; then
swapon $SWAPFILE
fi
;;

'eject'|'compeject')
SWAPSIZE=`free | awk '/Swap/{print $2}'`
if [ $SWAPSIZE != "0" ]; then
swapoff $SWAPFILE
fi

for TARGET in ${MOUNT_POINT[*]}
do
mount | fgrep $TARGET > /dev/null 2>&1
if (( $? == 0 )); then
if [ $ACTION = "compeject" ]; then
/etc/sdcontrol.fuser "$TARGET"
fi
umount -l $TARGET
fi
done

/sbin/lsmod | grep $SD_MODULE > /dev/null 2>&1
if (( $? == 0 )); then
/etc/sdcontrol.rmmod $SD_MODULE &
fi
;;

'change')
$0 compeject
sleep 2
$0 insert
;;

*)
echo "Usage : $0 ( insert | eject | compeject | change )"
exit 1
;;
esac

exit 0
/etc/sdcontrol.fuser
#!/bin/sh

TARGDEV=`grep $1 /etc/fstab | awk '{print $1}'`
/bin/fuser -s -k -m $TARGDEV

/etc/sdcontrol.rmmod
#!/bin/sh

sleep 1

/sbin/rmmod $1

解説は後ほど…。
posted by 月水和尚 (とも) at 14:49 | Comment(5) | TrackBack(0) | りなざう

2006年03月26日

無惨に散りゆくワタシ

beta2、砕け散りました…。orz

SD周りが非常に不安定だったので /etc/sdcontrol を大々的に書き直していたのですが、色々実験をしたせいか段々とOSそのものが不安定になり、今はXがまともに立ち上がらなかったり、サスペンドしようとするとフリーズしたりと実用に耐えなくなってしまいました。

とりあえずまだOSそのものは起動可能なので、今までの成果が回収出来るのがラッキーでした。回収終わったらまた1から入れ直しです。OSのインストールそのものはそんなに大変じゃないんですが、Firefoxの拡張をまた全部入れ直すのが結構気が重いです…。(拡張導入時にFirefoxが落ちまくるので)

兎にも角にも人柱泣かせなbeta2であります。
早くbeta3出ないかな〜。
posted by 月水和尚 (とも) at 01:28 | Comment(8) | TrackBack(0) | りなざう

2006年03月24日

bitWaprでもW-OAMを!

WillcomのPHS高度化通信規格『W-OAM』にものすごい魅力を感じる今日この頃。高速化もさることながら、電波が不安定なときに速度を落として通信を安定させる機能にたまらなく惹かれます。だって電波はそれなりに捉えているのに、不安定で全然通信が進まない事って多いんですもの。

bitWarpも基本的にはWillcomのインフラを使っているわけで、通信カードさえW-OAM対応のやつを出してくれればその恩恵に与れるはずです。というわけで、早速サポートにメールを出してみました。

W-OAMに対応するbitWarp用の通信カードが提供される予定はありますか?

で、返ってきた答えがこちら。

So-netインフォメーションデスクです。
平素はSo-netをご利用いただきまして、ありがとうございます。

お問い合わせの件でございますが、現在「bitWarp PDAコース」の
対応機種は、以下のようになっております。

■ シャープ株式会社
 ザウルスSL-C3200
 ザウルスSL-C3100
 ザウルスSL-C3000
 ザウルスSL-C1000
 ザウルスSL-C860
 ザウルスSL-C760
 ザウルスSL-C750

■ 株式会社東芝
 GENIO e550CT
 GENIO e550DT
 GENIO e550GT
 GENIO e830W
 GENIO e830

■ 日本ヒューレット・パッカード株式会社
 HP iPAQ hx2110 Pocket PC
 HP iPAQ Pocket PC h2210
 HP iPAQ Pocket PC h5550
 HP iPAQ hx4700 Pocket PC
 HP iPAQ hx2410 Pocket PC
 HP iPAQ hx2750 Pocket PC

■ デル株式会社
 デル Axim X50v
 デル Axim X50

上記以外の機種につきましては、現在未定となっております。
対応可能となり次第、弊社ホームページ上にてご案内をさせていただき
ますので、恐れ入りますが、ご確認いただけますようお願いいたします。

その他ご不明な点がございましたら、ご遠慮なくお問い合わせください。

今後ともSo-netをよろしくお願いいたします。

ちがう〜そうじゃない。そうじゃないんです!!
おいらの日本語の使いかが悪かったのでしょうか…。orz

まぁ、サポートデスクでその名前にぴんとすらこなかったって事は、bitWarpW-OAM対応はまだまだ先の話なんですかね。素のWillcom使いの方が羨ましいです。(でもこの金額差ではとても乗り換えられない…)

<お詫び>
W-OAMbitWarpで検索してこのページにたどり着いちゃった方、期待に応えずこんな駄文でごめんなさい。m(_ _)m
posted by 月水和尚 (とも) at 13:34 | Comment(0) | TrackBack(0) | りなざう

2006年03月23日

そして舞い戻ったワタシ

beta2入れました!

QT環境もそれなりに快適ではあったのですが、やっぱり普通のlinux機として使い倒せるpdaXromは楽しいです!ただ今度のbeta2はなかなかの曲者で、CFカードスロットに何か入れておかないと起動に失敗したり、細かなところで挙動がおかしかったりと素直に言うことを聞いてくれません。とりあえず手元の環境はそれなりに落ち着いてきてくれたので一安心ですが、やはりQTの時のような簡単さや安定度を求めるべくもないのかもしれませんね。

個人的なbeta2化の最大の恩恵はFirefoxがPCと同じ1.5になった事です。おかげでPC側で使っている各種の拡張がみんなザウルス上でも使えます。Foxmarksがきちんと動いたときには本当に感動ものでした。拡張の導入時にFirefoxが非常に落ちやすくなったという難点はありますが、導入さえ終わってしまえば動きは完璧です。すんばらしい!

とりあえず、まずはお知らせまで。
近日中にトラブルレポートやらインストールのコツやら書いていきたいと思います。

これを見て『とりあえず導入したい!』と思った方はこちらを参考にどうぞ。(私も参考にさせていただきました…yasuさんいつもありがとうございます)

pdaXrom: pdaXrom 1.1.0 beta2に挑戦!(纏め#1)
http://benefits.cocolog-nifty.com/pdaxrom/2006/03/pdaxrom_110_bet_23c5.html
posted by 月水和尚 (とも) at 12:55 | Comment(2) | TrackBack(0) | りなざう

2006年03月13日

もう元には戻れないワタシ

我が家のZaurusくん、ただいまQT環境に戻ってます。
RC10がお亡くなりになってしまったのですが、まぁいい機会なので入れ替え前にちょっと素のザウルスを使ってみようかと思いまして。

実はワタクシ、素のザウルスって一度も使った事がないんです。(笑)
中古で買ってすぐにpdaXrom化してしまったもんで…。
というかpdaXromが無かったらZaurusを買う事もなかったでしょう。はい。

Operaでインターネットもさくさく。Ver7.25を導入しているので日本語表示はもちろんの事、日本語入力だって完璧です。bitWarpの設定だってGUIであっという間に完了。ダイアルアップもワンクリック。基本的にインターネット端末としての利用がメインの私には完璧とも言える環境です。

が、しかし。

何か物足りない…。orz

すっかり普通の人には戻れなくなってしまったようです。(汗)
と言うわけで、明日以降この完璧なネット環境とおさらばして、beta1の導入に取りかかりたいと思います。れっつ茨の道!

ちなみに、素ザウルスの完璧ネット環境はこの辺を参考にどうぞ。

Soon Hot, Soon Cold. : [zaurus] Opera で日本語入力(コピペじゃなく)
http://pscatterb.exblog.jp/1560828

注)ダウンロードするのは opera_7.25-lite-1_arm.ipk ではなく opera_7.25-lite-2_arm.ipk です。

ザウルスのある生活 / Life with Zaurus: Opera 7.30をSL-C760にインストール
http://slzaurus.seesaa.net/article/3246071.html

SL-B500/C700/C750/C760/C860/6000/C1000/C3000/C3100 special kernel
http://tetsu.homelinux.org/zaurus/kernel/
posted by 月水和尚 (とも) at 01:04 | Comment(10) | TrackBack(0) | りなざう
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。