7月 142010
 

FreeBSD の最新の ports-current を追いかけていたら KDE4 は kde4-4.4.5 に、 qt4 は qt-4.6.3 になったのだけど、あるときから scim-bridge で日本語の入力ができなくなってしまった。それ以前のバージョンではちゃんと動作していたのになぜなんだよぉ・・。orz

GTK アプリの Firefox とか Thunderbird には日本語が入力できるので KDE4 か QT4 がちょっとあやすぃ。などと思い textproc/scim-bridge や textproc/scim-bridge-qt4 などを再インストールするのだけど、ちぃとも復旧しない。おかしい・・。orz。入力できないのは KDE のアプリと、後 Java アプリで日本語入力ができない状態となっていました。

そして、色々環境変数を見直した所以下の設定で kde4-4.4.5+qt-4.6.3 でも scim-1.4.7 で入力できることが解りました。

o. 動作しない今まで設定していた内容

export QT_IM_MODULE=scim-bridge
export GTK_IM_MODULE=scim
export XMODIFIERS="@im=SCIM"
exec /usr/local/bin/scim -d &

 
この内容を ~/.xsession に書いていたわけですね。あ。僕は KDE4 の利用時に ~/.xsession を利用するってのは以前書いているのでそちらを参考にしてください。

さてと。この設定では scim で KDE4 アプリに文字入力できない。なので設定を見直してみました。

o. 見直した新しい設定

export QT_IM_MODULE=scim-bridge
export GTK_IM_MODULE=SCIM
export XMODIFIERS="@im=SCIM"
export XIM=SCIM
export XIM_PROGRAM="scim -d"

 
「scim」と小文字で設定したのを大文字で「SCIM」と記述し、新たに XIM な環境変数を追加してみました。

そして、今までは ~/.xsession で起動していたものを 「KDE システム設定」の [詳細] タブにある「自動起動」に登録して KDE4 側で自動起動するように設定してみました。そしたらなんとっ!! 無事に復活して KDE4 アプリでも scim で文字入力できるようになりました。良かった良かった。

ちなみに ports が scim のインストールに必要なものは textproc/scim textproc/scim-bridge textproc/scim-bridge-qt4 と、後、僕は Canna 使いなので japanese/scim-canna をインストールしています。

それにしても復活して良かった。このためにまるまる二日を費やしてしまったではないか・・。orz。

3月 192010
 

前回の「FontBook ライクなフォント表示ツール。」の続きです。

「GUI が欲しいなぁ。」などと README.txt の中に書いているのですが、考えてみたら pango-view.sh ファイルを走らせるシェルスクリプトにフォント名を付けて、それをファイルマネージャからダブルクリックして実行すれば良いだけじゃん。などと、ヒジョーに安直な考えが頭に浮かびました。で、それを実戦したのがこんな感じ;-)。

from_dolhin.png

僕は KDE 使いなので Dolphin を利用しているワケですが、とあるディレクトリに MS_ゴシック.sh と言うファイルを作ってそれをクリックすると pango-view.sh が動作するようにするだけ;-)。こうすることで自分の環境にインストールされているフォント名とその書体が一目瞭然となる;-)。

え? そんなん必要無いって?(^^;;。 デスクトップとして利用していてフォントをたくさん突っ込んでいると書体を確認したい時ってあるのよー。

で、fc-list からフォント名が付いたシェルスクリプトを吐き出すのは perl で書いてしまいました(^^;;。大体こんな感じ。これを cron とかで定期的に実行すればたえず最新のフォントを閲覧できるってわけですね。ってそんなに頻繁にフォントをインストールしないか;-P。

#!/usr/bin/perl
use strict;
my $fc_list_cmd = "/usr/local/bin/fc-list"; my $sort_cmd = "/usr/bin/sort"; my $sh_cmd = "/PATHTO/pango-view.sh"; my $fontsize = 120;
my $command = $fc_list_cmd . "|" . $sort_cmd; open(CMD,"$command|"); while(<CMD>) { s/\\//g; my (@t1) = split(",",$_); my ($fontname,@t2) = split(":",$t1[0]); my $filename = $fontname; $filename =~ s/ /_/g; # print $fontname . "\n";
my $outfile = "./Fonts/" . $filename . ".sh"; open(OUT,">$outfile"); print OUT "#!/bin/sh\n"; print OUT "$sh_cmd \"$fontname\" $fontsize\n"; close(OUT); chmod(0755,$outfile); } close(CMD);
exit 1;

 
けど、僕の中ではかぁなり、フォントの扱いが楽になったんですけど;-)。

あ。pango-view.sh の中身は相対パスから絶対パスに書き換えています。さむないと Dolphin が認識してくれなかった。

3月 172010
 

pango-view を利用したフォント表示ツールを作りました。ただのシェルスクリプトなんですけどね。

以下の URL に置きました。もしよかったら使ってみて感想など教えて頂けると、張り合いが出るって感じでしょうか(^^;;。

http://www.icmpv6.org/Prog/FontBook.pango-view.tgz

自分の PC にインストールされたフォントで MacOSX SL の FontBook みたいな文字を表示するスクリプトです。 GUI ではありません(^^;;。

一応、キャプチャ画面だけ載せておきます。

FontBook_pango-view.png

ちなみに表示されている物語りは宮沢賢治の「ポラーノの広場」だと言うことは以前に教えていただきました

配布の形式は tar 玉にしていますが、全然たいしたことないです。その中のスクリプトを実行するとこんな感じのウィンドが表示されます。

オプションや詳細については tar 玉の中に README.txt があるのでそれを読んで頂ければと思います。

それにしても pango-view はちょっとだけ期待ハズレだったかなー。

追伸。
「テキストファイルのセンタリング」ですが、pango-view のオプションに “–align=center” と言うのがありました・・。orz 教えていただいた皆さんありがとうございました。

2月 032010
 

FreeBSD の ports current を追いかけていると virtualbox が oes 3.1.2 にバージョンアップしました。でもってこれを make すると X11 有り/無し が選択できるようです。

デスクトップに FreeBSD がある場合には WITH_X11=true で make したほうが全然良いのであります。しかし、WITHOUT_X11=true で make するのはどんな時かなぁ?と、悩むのですが、おぉ。自宅のサーバは FreeBSD/amd64 で運用していて、こいつはサーバなので X11 無しだよー。

ってことは、FreeBSD で稼働しているサーバ上では WITHOUT_X11=true で make して virtualbox をバックグラウンドで起動すれば、Windows 2008 R2 が FreeBSD 上で動作するんでないかい?などと思ってしまうのであります。ハードウェアは一台なんだけど、サーバは FreeBSD と WindowsServer の両方が動作する自宅の環境ができあがるわけです;-)。

#どんな「自宅だっ!!??」って突っ込みは無し。と言うことで;-P。

と、言うことで早速トライしてみましょう。今回用意するものは以下になります。

・FreebSD/amd64 7.3-PRERELEASE X11 がインストールされているデスクトップ機
・FreeBSD/amd64 7.3-PRERELEASE もしくは FreeBSD/amd64 8.0-RELEASE がインストールされているサーバマシン。こちらは X11 が入っていません。

デスクトップ機では WITH_X11=true で emulators/virtualbox-ose を make してインストールします。サーバマシンでは WITHOUT_X11=true で emulators/virtualbox-ose をインストールします。準備は整いました;-)。

まず、デスクトップ機で VirtualBox を起動します。KDE4 の場合、[「K」メニュー] -> [システム] にあります。

過去に一回でも VirtualBox を起動していると $HOME/.VirtualBox/ と、言うディレクトリが存在しているのでこれを一旦 mv ~/.VirtualBox ~/.VirtualBox.save としてから VirtualBox を起動しましょう。

起動後は 新しいバーチャルマシンを作成します。今回はライセンスの関係で Windows7 Profesional x86 を利用しました。バーチャルマシンの「設定」はサーバマシンのハードウェアに合わせます。フロッピーとかサウンドカードが無い場合にはどんどんオフにしたり削除します。

で、Windows の CD イメージをマウントしてインストール作業。インストールができたらデスクトップ機側の作業は完了です。なお、Windows7 の設定は今のうちに色々やっておいたほうがラクチンです。僕の場合は、ネットワークの設定を行いました。ブリッジにしてネットワークは自宅 LAN 内の固定アドレスを指定しています。ネットマスクは 255.255.255.0 です。

・デスクトップ機 192.168.10.110
・サーバマシン 192.168.10.3
・Windows7(ブリッジ) 192.168.10.7

設定ができたら Windows7 をシャットダウンしましょう。あ。ちなみに僕のデスクトップ機とサーバマシンでは共に NIC が re0 なのでラクチンなのであります;-)。

続いてサーバ側で Windows7 を起動するための準備をします。まず、デスクトップ機の ~/.VirtualBox をサーバ側に持っていきます。次に、やはりデスクトップ機でインストールした Windows7 のディクスイメージもサーバ側に持っていきます。この時に、デスクトップの VirtualBox の環境とまるっきり同じにします。

準備ができたらサーバ側で早速 Windows7 を起動してみましょう;-)。起動するためにちゃんと認識しているか確認します。なお、 VirtualBox の起動は一般ユーザ権限で問題ありません。

$ VBoxManage list vms
VirtualBox Command Line Management Interface Version 3.1.2_OSE
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
"Windows7 Profetional" {0ee9ff0d-8885-4e30-801d-fbc255515d6c}

 
認識したみたいですね。続いて以下のコマンドはどうでしょう?

$ VBoxManage showvminfo "Windows7 Profetional"
:

 
たくさん出力されるので詳細は割愛しますが、Windows7 Profetional と VirtualBox の詳細が表示されます。他にも VBoxManage には色々なオプションがあるので -h で確認してみてください。

$ VBoxManage modifyvm --audio none

 
などすると オーディオデバイスがオフにできたりします。

では次に Windows7 を VirtualBox 経由で起動してみることにしましょう。

$ VBoxHeadless -s "Windows7 Profetional"

 
ふふふ。コマンドラインから起動できました。ネットワークの設定はブリッジなので 192.168.10.7 に対して ping など打ってみます。Windows7 の起動時のログは以下に出力されます。確認すると良いでしょう。

cat $HOME/.VirtualBox/Machines/Windows7 Profetional/Logs/VBox.log

ログには色々な情報が出力されますが、その中に

00:00:46.408 Guest Log: VBoxService.exe: Started. Verbose level = 0

と、表示されたら Windows7 が起動したことになります。おーーっ。ぱちぱちぱち。

後は、rdc クライアントで接続っと;-)。

で、試したのですが、ポートは開いているみたいですが、黒い画面で接続できませんでした。orz。RDC プロトコルはライセンスの問題があると言うのだけどねぇ。その影響で画面が表示されないのかしらねぇ・・。

ちなみに、デスクトップ機で VirtualBox を利用せず VBoxHeadless コマンドで Windows7 を起動した場合はちゃんと RDC プロトコルで接続できるんですけどねぇ。X11 が無いと接続できないのはちょっとおかしくね?って感じなのです・・。

しゃーないので、デスクトップ機で再度 Windows7 を起動して VNC サーバをインストールします。再起動後に VNC サーバが有効になっていることを確認したらシャットダウンで再度、サーバマシンに持っていってトライっ!!

って感じでやれば、X11 が無い環境でも Windows7 がブートするのであります。今回はデスクトップ機側で設定した VirtualBox の設定をそのままづるづると引きずるすごい簡単な方法です。環境を準備するのが大変なことがあるかと思います。その場合は VBoxManage をコマンドラインから実行することになるので、ドキュメントとか読んで頑張ることになるのでありますぁ;-)。

あ。Windows のアクティベーションの事には触れていませんが、ディスクイメージがあってあちこちでバーチャルな環境を起動した場合、僕はどうなるか知りません。ライセンスはちゃんと守るのが良いかと思われます。私の場合、これは「検証」です;-)。

更に、あぁ。っ!!。 Windows7 の止め方を書いてなかったですね。以下のコマンドで停止します。オプションは色々あるので好きなのを選んでください。

$ VBoxManage controlvm "Windows7 Profetional" poweroff

 
かしこ。

1月 062010
 

この間、ちょっと前の「Thunderbird-3.0 を FreeBSD/amd64 で。」のエントリーのところで FreeBSD/amd64 上の Thunderbird も Firefox もすぐに core dump して使い物にならない。でもって -g したら libpango がどうもおかしい。と言うのを書きました。

このエントリーに添付してある URL にその結末が載っていましたね。要は pango にとあるフォントを食わせると core dump するものがあるので、そのフォントを fontpath から削除すると良いよ。とのことらしいです。

リンク先のスレッドの内容では xlsfonts コマンドで core dump するフォントを特定すると良いよ。と書かれているのですが、日本語フォントの場合、あんまり役に立たないですね。でもって GNOME や KDE を使っている人は特にフォント名が日本語で表示されるのですから。なので、日本語環境の場合は fc-list(1) を使うことにします。

fc-list コマンドで表示されたフォント名を pango-view と言うコマンドに食わせてあげます。その時に pango-view が core dump するとそのフォントは pango で扱えないフォントになるので /usr/local/lib/X11/fonts/ から削除する必要があります。

僕の環境では fc-list | sort -u | wc -l したら 434 個のフォントが利用可能な状態になっていました。うひひ。/usr/local/lib/X11/fonts/ で du -sk したら 1274754 と表示されたのでフォントだけで 1.2GByte のようです;-)。

さてと。fc-list の結果を pango-view に食わせるコマンドは以下でどうでしょう。

$ fc-list | sort -u | awk -F, '{print "echo \"" $1 "\"; ¥
pango-view --font=\"" $1 "\" -t 'TEST,test,テスト' -q"}' > fontcheck.sh
$ /bin/sh ./fontcheck.sh

 
一行目は長いので改行していますが、一行で実行して fontcheck.sh と言うファイルを作成してください。その後、fontcheck.sh を実行すれば pango-view が動作します。 core dump するファイルがあった場合には以下のように出力されます。

ヒラギノ丸ゴ Pro
Segmentation fault (core dumped)
ヒラギノ丸ゴ ProN
Segmentation fault (core dumped)
ヒラギノ明朝 Pro
Segmentation fault (core dumped)

 
表示されたフォント名を持つファイルを /usr/local/lib/X11/fonts/ の中から削除して fc-cache -fv を実行すると core dump するフォントが無くなると思います。

ちなみに僕の環境では MacoSX から持ってきたヒラギノの丸ゴ・角ゴ・明朝の各フォントと平成の明朝・角ゴシックの計 16 個のフォントで core dump が発生したので、これらのフォントを削除しました。

削除した後に Thunderbird3 や Firefox35 を起動すると、おおぉぉっ!! 無事に起動できたのでありました。パチパチパチ。

と、言うことで Thunderbird3 や Firefox35 が libpango で core dump するなんてのはその人の環境によって全然変わる。と言うことですね。僕みたいに(と言い切って良いのか?)たくさんのフォントをインストールしている人はその確率が高くなるわけですが、google で検索しても日本国内でこの現象を書いているのは僕だけみたいなので、もしかして、僕だけが陥った現象なのから?

この問題はオイオイ pango 側で吸収されていくのかなぁ?今回は pango のバージョンは 1.26.2 で特にダウングレードもしていないです。

それにしても復活して良かったです;-)。

そー言えば、MacOSX にフォントをインストールするときに「このフォントは危険です」みたいにアラートが上がってインストールしないこともあるのですが、FreeBSD の場合 fc-cache を実行した時点では何もアラートは上がらないのでインストール前(それはつまり fc-cache コマンドを叩く前と言うことかな)には pango-view を実行するのが良いのかな?

2月 212009
 

前回「KDE-4.2良いよぉ。」と、ちろっと書いたのだけど、その上で konqueror を使っていたら「あれ?Safari と表示が一緒だぞぉ。」などと思えてきたので、今回キャプチャしたものを比較してみたいと思います。ちなみに Safari は konqueror のレンダリングエンジンである KHTML から派生した WebKit がベースで qt4+KDE4 には qt4-webkit なんて言う ports もあったりするので konqueror への期待は大いに高まったりするのです;-)。

今回のブラウザのキャプチャは以下の通り。Windows では日本語のアンチエイリアスが有効にならないので、Windows 自体は全く使う気にならない。WindowsXP 上の Firefox3 でメイリオフォントを指定した場合、どうしてあんな汚い表示なんだぁ?と驚いてしまう。 Windows ユーザは素早く IE も Firefox も捨てて Safari を使ったほうが良いのでは。と、僕個人的は思う;-P。(僕は WindowsVistaは常用していない;-)

・FreeBSD/amd64 7.1-STABLE+kde-4.2.0 の konqueror
・MacOSX Leopard 上の Firefox3.0.6
・MacOSX Leopard 上の Safari3.2.2

Firefox3 は WindowsXP と FreeBSD、そして MacOSX 上で動作しているけど、 MacOSX 上のヤツが一番きれいに表示できるのでそこからのエントリです。全てのキャプチャ画像はクリックすると大きくなります。

まずは kde-4.2.0 の konqueror から。


続いて Firefox3。


最後に Safari3。


全てのブラウザでアンチエイリアスが効いていてフォントがきれいに表示されています。まぁ、多少、フォントの誤差はありますが、その点についてはお許しください。

今回はこのサイトをキャプチャしましたが、konqueror と Safari はタイトルとブログのタイトル文字にうっすらと影があるのが見えるでしょうか?それに引き替え、Firefox3 にはその影が表示されていません。

このブログのテンプレートはもともと Mac ユーザの方が作ってくれたのを利用しているので、MacOSX に最適化され、きれいに表示してくれるようになっています。

なので、最近の僕は(写真の編集などもあるけど)ほとんどのブログの書き込みと確認は MacOSX 上で行っていたのでありました。けど、KDE-4.2 の konqueror が Safari に非常に近いデザインでコンテンツを表示してくれていると言うのに感動しました;-)。さすがは KHTML と言うか WebKit だなぁ。と。

けど、KDE-3.5 の konqueror は見るも無残な状態であったために Firefox3 をずっと使っていたのだけど、KDE-4.2 になったらその出来と言うか、コンテンツ表示のすばらしさにちょっと関心してしまいました。

後、FreeBSD 上では Firefox3 で利用する nspluginwrapper 経由の各種プラグインを konqueror が「mozilla プラグイン」として認識するので linux-flashplugin-9 も動作します。これはこれで大変嬉しいことです。

KDE-4.1.2 は plasma がしょっちゅうぶっこけて全ての KDE アプリを道連れにしていたのだけど、KDE-4.2.0 になって、まぁ、時々 plasma は落ちるけど、自己修復型で再起動してくれるので随分と楽になりました。

やっぱえぇなぁ。qt4+KDE4 は。

ただ、人に言わせると c++ はいらん。だそうです。確かに ports をコンパイルすると膨大な時間が掛かることは確かではありますが・・(^^;;。

皆さんも是非使ってみてください。ちなみに僕は JKUGスタッフです。布教活動には余念が無いであります;-)。

あ、最後にですが、MacOSX 用の KDE4 は未だ 4.1.2 のままです。早く 4.2.0 がでないかなぁ;-)。MacOSX 上で konqueror を起動してみたいものです;-)。

2月 132009
 

最近の ports では KDE4 が KDE-4.1.2 から KDE-4.2.0 になった。早速バージョンアップ。実は FreeBSD で初めて KDE4 が利用できるようになったバージョンは 4.1.0 です。KDE-4.0.0 は冒険者のバージョンとして扱われていたのでありました。

で、4.1.2 を使い始めたのだけどこれがまたヒドイしろものでして・・。plasma が落ちるともうデスクトップが利用できない状態になる。emacs を起動しておいて M-x shell から X を kill して復旧していた。 plasma がよく落ちる。と言うのも問題であったのだけど、4.2.0 になったら あんまり plasma が落ちなくなって、落ちても、すぐに再起動するようになった。ちょうど、Windows で凍りついたエクスプローラを終了させて、一瞬画面がフワっとなって再度表示しなおしてくれるような感じと全く一緒。

ja-kde4-l10n は日本語テキストですが、まだ翻訳が行き届いていないですねー。色々な所に英語メッセージが残っています。後、LANG が ja_JP.eucJP だとビミョーに正しく日本語表示できない所が多々有ります。もう LANG は UTF-8 にしろ。ってことですかねぇ。ちなみに僕は KDE-4.1.0 から UTF-8 に移行しました。

ちなみに LANG の設定がばっちりになると、フォント名も日本語でフォントしてくれるようになります。例えば、僕の環境の場合 meiryo.ttc は UTF-8 の場合はフォント名が「メイリオ」となるのですが、ja_JP.eucJP の場合は GTK アプリ(例えば firefox3)と一緒で「Meiryo」と表示されます。なので、先に LANG を決定してからフォントの設定をしたほうが良いかもしれません。

dolphin (ファイルマネージャ)ですが、これは smb:// 先のサーバの日本語にも対応してくれました。今までは日本語ファイルやディレクトリをクリックすると dolphin がクラッシュしていたのですが、今度は無事に表示して、クリックもできるようになりました。

konqueror。これはっ!! そもそも、最近は WebKit が大はやりですが、WebKit はそもそも konqueror で利用していたレンダリングエンジン。その割りには konqueror と Safari の表示に差異があるなぁ。と常々思っていたのだけど、4.2.0 に搭載している konqueror は Safari と同じ表示をしてくれるようになりました。スタイルシートの読み込みが Safari に近くなって来たのかな。とも思うけど。Safari とは ルックアンドフィールや操作性は違うけど、コンテンツの表示が Safari と一緒になった。と言うのはすごいうれしー。

ただ、今のところ UTF-8 なコンテンツしか見えないんだけど・・X-(。ってのは前に書いていたねぇ(^^;;。

とまぁ、感動した点を重点的にツラツラと書いてみました。

実は 4.1.2 では plasma があまりにも頻繁に落ちるのでイヤになって KDE-3.5 を再インストールしていたのですが、4.2.0 はそれなりに安定して来たと言う感じかなぁー;-)。

つづく。かな?

2月 022009
 

それにしても最近、FreeBSD ネタ多いなぁ。今回もなんだけど・・。

/var/locg/messages に、以下のようなログが出力されませんか?

kernel: error: [drm:pid872:i915_getparam] *ERROR* i915_getparam called with no initialization

 
xorg を 7.4 にしたら突然出るようになって、X を終了(プロセスを kill するなど)すると OS 自体を道連れにマシンが凍り付く。怖いですねぇ。イヤですねぇ・・。

xorg-7.4 とカーネルの agp とか drm 回りの相性で Intel 系のグラフィックチップを使っている場合に発生します。ちなみに僕は DELL の X1 でこの現象に陥りました。X を立ち上げたが最後、もー後は X が終了できなくなります。sync を 30 回位叩いてから shutdown を実行しますが、終了プロセスにおいて X のプロセスを kill した段階で凍りつきます。

ちなみに DELL X1 は i915GM です。xorg-7.3 の時は問題なかったのですが、 7.4 にしたらこの状態・・。しかし DELL X1 では 2009/01/09 頃の FreeBSD/i386 7.1-STABLE を利用していたのだけど、 1/31 に csup したら直りました。

なので、STABLE を利用している方は最新のバージョンに up したほうが良いかもしれません。7.1-RELEASE を使っている場合にこの問題に陥るか、僕は知りません。ごめんなさい。

1月 312009
 

前回のつづきです。いろいろ試してみました。

hald を起動した時の問題点ですが、まず、NotePC のタッチパッドの左ボタンでダブルクリック及びトリプルクリックができない件ですが、これはパナソニックの CF-W5 のみの問題であることが分かりました。 DELL の X1 では無事にタッチパットの左ボタンが特に問題なく利用できました。

続いて、キーボードの 「む」のキーにおいて、「}」や「]」が入力できなくて、「\」キーと同じバインドになってしまう。と言う件ですが、これは xmodmap で対応可能です。以下の設定を ~/.xmodmaprc とかに保存して xmpdmap で実行してあげればキーバインドは刻印通りに動作します。

! }]  key setting
keycode 51 = bracketright braceright

 
と、言うことで hald 経由でも特に問題無く動作することの確認が取れました。前にも書いた通り、PS2 のマウスとキーボードを利用している場合には hald を起動する必要はなく、 xorg.conf に AutoAddDevices を false にしてキーボードとマウスの設定を利用したほうが楽かもしれません。

PS2 (タッチパッドなど) は標準で使うけと、時々 USB マウスやキーボードを使いたい。と、言う場合には hald を起動したほうが良いと言うことでしょうなぁ。

ちなみに、hald 経由の場合だと、USB のマウスやキーボードを抜き差ししても全然問題なく動作します。ただ、PS/2 キーボードがある環境で USB キーボードを付けた場合、USB キーボードで文字入力はできますが、PS/2 キーボードでは入力を受け付けなくなります。まぁ、当然と言えば当然か。

けど、マウスは PS/2 と USB の両方のマウスが動作します。さすがは /dev/sysmouse って感じでしょうか。この時、ps で確認したら USB マウスを付けた段階で moused が起動しますねー。けど、マウスや X の動作には全然問題は無いので敢えてデーモンを kill することも無いでしょう;-)。

さてと。僕の環境では xorg-7.4 の設定はこれにて全てしゅーりょー。いやぁ。良かった良かった;-)。

1月 302009
 

FreeBSD の ports の最新をおっかけていると xorg が 7.3 から 7.4 になり、X が起動しねー。とか、マウスが動かねー。キーボードが 101 だぁー。などとあちこちで大騒ぎのようです。まぁ、僕もそーだったのですけどね。

けど、、なんとか動くようにしたのでありました。僕は会社のもひっくるめて、デスクトップ二台、NotePC で二台の計四台の PC で X11 が動作しています。

デスクトップの場合、PS/2 のマウスとキーボードを利用しているぶんには非常にラクチンで、Section “Files” から RgbPath を取り去った後に以下の設定を記述すれば大丈夫です。まぁ、Xorg -configure した後にできた xorg.conf.new を利用したほうが楽ですけどね。

Section "ServerFlags"
    Option “AllowEmptyInput” “off”
    Option “AutoAddDevices”  “false”
EndSection

 
この設定を入れると xorg.conf に記述したキーボードとマウスの設定が有効になります。その時、 moused は起動してはダメになります。なので、マウスの設定の所は Device において /dev/sysmouse ではなく /dev/psm0 を指定することになります。これでマウスがちゃんと動くようになりました。めでたしめでたし。

後、キーボードのほうですが、ServerFlags の所で二つのオプションを追加しているので xorg.conf の内容をそのまま引きずってくれるので jp106 とか ctrl:swapcaps の設定は有効になったままとなるでしょう。

とまぁ、PS/2 のマウスとキーボードのみを利用した環境であれば特に問題はないのですが、NotePC のように普段はタッチパッド(こっちはたいていの場合 PS/2 として認識される)を利用するけど、時々は USB マウスを接続して利用したい。と言う場合もあるわけです。

その場合、Section “InputDevice” の mouse の設定をいちいち /dev/psm0 から /dev/ums0 に書き換えて、X を再起動してからでないと利用できません。後、タッチパッドと USB マウスの同時利用と言うのもできなくなります。あれまー。不便ですねぇ・・。困りましたねぇ。

このような場合はやはり、hald を起動して PS/2 と USB のマウスを認識させるしか手は無いのであります。同時に利用したい人はまずはともあれ hald を起動して、moused を停止しましょう。なお、/etc/rc.conf において moused_enable=”NO” と記述していても USB マウスを接続したとたんに moused が起動してしまう場合がありますが、とりあえずは無視して起動状態としておいても大丈夫でしょう。

続いて xorg.conf の設定ですが、マウスとキーボードの認識を hald で行うようにしたので上に書かれている ServerFlags セレクションの設定二行を削除します。

そして、/usr/local/etc/hal/fdi/policy/10-keyboard-jp106.fdi と言うファイルを用意し、以下の記述をします。

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
    <device>
        <match key="info.capabilities" contains="input.keyboard">
           <merge key="input.x11_options.XkbRules" type="string">xorg</merge>
           <merge key="input.x11_options.XkbModel" type="string">jp106x</merge>
           <merge key="input.x11_options.XkbLayout" type="string">jp</merge>
           <merge key="input.x11_options.XkbOptions" type="string">ctrl:swapcaps</merge>
        </match>
    </device>
</deviceinfo>

 
まあ、書いている内容は xorg.conf に書いた内容を XML 形式にしただけ。と言う感じでしょぅか。

準備ができたら hald が動作していることを確認しつつ、しかし新規にファイルを設置したのでいったん停止して再起動しつつ、 X を再起動してみましょう。

これで無事に起動したでしょうか? そしたら、PS/2 マウスと USB マウスが、両方動くことを確認します。続いてログインし、キーボードが 106 になっていることを確認して、CAPS キーと Ctrl キーもちゃんと入れ替わっていることを確認します。

しかし、hald 経由でキーボードとマウスを認識させたら、問題点が二つあるみたいです。

一個は僕の NotePC 固有の問題かもしれませんが、タッチパッドに付いているマウスの左ボタンでトリプルクリックができなくなりました。一行まるまるコピーの場合にトリプルクリックを利用するのでけすけど、それができない。ついでにダブルクリックもできない・・。トホホ。ちなみに USB マウスでは正常に動作しています。

二個目の問題ですが、キーボード入力で “け” の右横のキーの入力が出来なくなりました。”かっことじ” と “mu” のキーが “へ” の右横の “\” のキーと一緒になってしまいました。これは xmodmap で直せるかなぁ・・。
ちなみにこの記事を書いているキーボードが、既に打てない状態となっていますf(^^;;。
もし、正常に動作しない場合は /var/log/Xorg.0.log を確認してみましょう。どう言う風に確認するのかと言えば・・。動かない。とコメントに書いてください(^^;;。

なお、今回の設定ではコンソールのとこは考慮していません。僕はコンソール画面においてはマウスを利用しない人なので、コンソールでのマウスの挙動は良く分からないのです。

けど、せっかくなので、PS/2 版の xorg.conf と hald 版の xorg.conf を以下に置いておきますね。

PS/2 マウス版 xorg.conf
hald 版 xorg.conf

なお、上のほうは moused が起動している必要があります。下のほうは moused は起動していなくとも良いが hald が起動している必要があります。hald が起動している場合はポリシーファイルが必要です。

つづく