8月 232010
 

ちょっと前のエントリーで「ibus-mozc を使う。」ってのを書きました。 「もづく」を使うよ。でもって emacs23 からでも使えるよ。ってやつですね。

で、ibus.el の作者さんの 「irie @ ウィキ」を眺めていたら「scim-bridge.elのぺえじ 」 ってのもあるのに気づきました。

この scim-bridge.el をインストールして emacs23 から利用すれば scim と通信して日本語入力ができるようになるんかな?とか思った次第であります。

でもって、scim と言えば scim-bridge はあるし、scim-canna もあるし scim-bridge-qt4 もあるしで、いろいろあるので scim-bridge.el を利用すれば canna.el なしで Canna の入力が可能になるのかな?とか思い早速試してみました。

まずは scim-bridge.el の ports を作ってみました。参考にしたのは同じ作者さんの ibus.el の ports です。textproc/ibus-el があるのでこれを参考にして作ってみました。以下の URL に置いてあります。

http://www.icmpv6.org/Prog/FreeBSD_ports/ports-scim-bridge-el-20100823.tgz

これをダウンロードしたあとに /usr/ports/textproc/ 辺りに展開してインストールしてください。一応関連性としては textproc/scim と textproc/scim-bridge は付けています。あとは自分の好みで japanese/scim-canna や textproc/scim-bridge-qt4 などをインストールしてください。

~/.emacs に記述するサンプルはこの辺りに置いておきます。

(setq jaime “???”) の文字列で mozc を利用するか scim-bridge を利用するか決定してください。

scim の 設定方法については以前書いた「kde4-4.4.5+qt-4.6.3 環境の scim-1.4.7。」を利用してください。これで多分 scim-bridge.el が動くようになったかと思います。

scim-bridge.el を利用してみてまず驚くのが、ターミナルへの文字入力と一緒でディスプレー上に SCIM のメニューバーが表示されることですね。本当に「ネーティブに動作しているの?」って思うんですが、Ctrl が入力される場面とか、日本語入力ができない時にはちゃんと SCIM がオフになるんですね。この辺りすごい。まぁ、ibus-mozc.el でもその動作は一緒なんですけどね。さすが同じ作者さんだけあって、動作が統一されていてなかなか嬉しいです;-)。また、感激します;-)。ありがとうございます。

あと、emacs 起動時には以下のように IME を none にして起動しているのでこれは多分文句無しにネーティブで動いているんだろう。という感じです;-)。

env XMODIFIERS=@im=none /usr/local/bin/emacs --no-splash

 
さてさて。僕がどうしてこの ports を作ったかと言うと・・。ちょっと前のエントリーで「emacs-23.2+Canna な emacs の ports。」と言うのを書いているのですが、この時に書いたパッチは今の emacs のメンテナの Ashish SHUKLA さん にメールを送っていて、しばらくやり取りしたあと、彼は 06/10 に改定した emacs の ports を Giorgos Keramidas さん 宛に奥っているんだけど、それは今でもちっとも反映されていないんですね。

なので、emacs23 の make config 時のオプションに WITH_CANNA=yes ってのがなかなか現れない・・。orz。 半分諦めの境地ですかね。

あと、実はもう一点あって、Ashish SHUKLA さん から emacs24 (ports 的には editors/emacs-devel なんですが) の WITH_CANNA の パッチも書いてねー。とか言われて、ちょっと書き直し始めたのですが、これがまたあーたっ!! emacs24 の configure の形式とか Makefile.in とかがずいぶんと様変わりしてしまって、ソースコード治すよりもそっちのほうが大変。みたいな感じになっているのであります・・。orz 僕、 C は解っても autoconf/automake はいまいちよくわからないのよねぇぇ・・f(^^;;。

ちゅーこって、ことえり キーバインドに対応した ibus-mozc に走るか scim-bridge に走ったほうがよっぽど早いのであります。 scim-bridge は Canna に対応しているしねぇ;-)。

と、言うことで、僕は多分今後 Emacs 用の WITH_CANNA なパッチは書く事はないと思います。是非とも scim-bridge.el のほうを利用していただけれると嬉しいのであります。

それにしても scim-bridge.el かぁ。これを利用すると Canna キーバインドでの文字入力もサクっとできるし嬉しいのであります。あ、筆者の場合、Canna のキーバインドをかな入力で利用しています。ローマ字入力は試していません。けど、~/.emacs の (scim-define-common-key ?\C-* t) の “*” の部分の文字を任意のものに変更するといろいろなキーバインドが利用できるようになると思います。

8月 202010
 

ちょっと前のエントリーに「SCIM 動かなくなったよー。環境変数変えてみた。」みたいなこと書いたのですが、そもそも、IME 自体を変えてみることにしました。

僕は最近 MacOSX で ことえり を利用しています。正確に言うと ATOK for Mac 使っていてキーバインドを ことえり で利用しています。はたまた、Windows では「google 日本語入力」を利用してキーバインドはやはり ことえり を利用しています。

するっていと、FreeBSD でもそろそろ Canna のキーバインドを卒業して ことえり キーバインドに統一したいなぁ。と思うのが人情です;-)。

で、いろいろ調べてみたら uim には ローマ字->日本語 や ローマ字->カタカナ 変換のためのショートカットキーが用意されているんですね。で、試しにかな入力時のこのショートカットを ことえり 風に設定してみたら・・。あぁら・・。かな入力時には設定したショートカットキーが有効にならないのね。と、言うことでちょっとアングリ。orz。

それならば。と言うことで探していたら、IRC で教えてもらったのですが MacOSX や Windows 用には 「google 日本語入力」と呼ばれているものが Linux や FreeBSD では ibus-mozc(iBUS 経由で利用できる「もづく」) としてリリースされているのですねぇ。

ports 的には japanese/ibus-mozc になります。これを make install したあと pkg-message で表示される環境変数を設定して、再度 X にログインし直せばもうばっちり mozc が利用できるのであります。

iBUS と言うのは僕も良く知らないのですが、インプットメソッドとの通信をやりとりする規格みたいなものです。例えば Canna は cannaserver と port 5680 でやり取りしますが、これを iBUS 経由に置き換えると ibus-canna とか言う名前になるんだろうなぁ。と思います;-)。

で、本題に戻ってと。まずは iBUS で mozc を利用する設定をします。 KDE4 を利用している場合、kickoff メニューの「設定」に “iBus の設定” と言うメニューがあるのでそれを起動します。python で書かれた ibus-el-agent と言うのが多分プログラム名だと思います。

ibus-mozc_1.png

これで mozc を指定してあげます。これで iBUS は mozc と接続するようになります。ちなみに、KDE4 を利用しているとシステムトレイに iBUS のアイコンが表示されるようになると思います。

続いて mozc の設定をします。 MacOSX や Windows の「google 日本語入力」でよく見る設定画面ですね。コンソールから mozc_tool_config とタタきます。表示されたウィンドウで自分の好きな設定をします。

ibus-mozc_2.png

これで設定は完了。あとは [半角/全角] キーを押してベコベコ日本語を入力するだけなのであります;-)。僕は ことえり キーバインドのかな入力にしました。これで MacOSX、Windows、そして FreeBSD においてはすべて同じキーバインドになりました。やったーっ!!

なお、mozc の変換効率は少なくとも Canna よりは賢いと思います;-)。まだ使い込みがちょっと足りないですが・・。

あ。「google 日本語入力」にはいつまで経っても治らないバグが一個あります。文字を確定する前に漢字が表示されるプルダウンメニュー(これを「サジェスト」と言うのかな)が表示されますが、この「サジェスト」がマウスカーソルの上に表示されるとその段階で文字が勝手に確定されてしまいます。なので、文字を打つときにはマウスカーソルは画面上の全然関係ない場所に置いておくことをオススメしますX-(。

あと、かな入力時の “ー” 問題ががありますね。 Shift+| でないと “ー” が打てない。そんな場合は xmodmap で設定します。以下の設定で Shift キーなしで “ー” が打てるようになります。

keycode 133 = bar bar bar bar

 
ただしっ!! そーすると今度は “\” キーが打てなくなるのですが、これは “ろ” キーのところで打てます。 \rm * とか打つときに |rm * になってしまいますが、どっちが良いかは自分で判断してみてください。

さて。まだ一点残っております。 emacs23 ですね。こいつの IME はどうすんべ。とか思うのであります。僕自身は emacs23 用に Canna パッチを書いたので Canna を利用していたのですが、そもそも emacs23 だけが Canna キーバインドだと大変だぁ・・。と言うことになるのですが、ちなみに umeさん が ibus.el を ports にしてくださっているのでそれを利用することにします。ports 的には textproc/ibus-el になります。

あとは、~/.emacs の編集になりますが、ibus.elのぺえじ を参照すればその設定方法が分かります。でもって比較的容易に emacs23 を ibus 対応にすることができるのであります;-)。

つい最近 0.2.0 と言う最新版がリリースされました。これを利用すると良いでしょう;-)。

僕が利用している ~/.emacs は dot.emacs.fontSetUp として置いとくのでよかったら参考にしてみてください。 emacs23 がアンチエイリアスを利用しても遅くならないフォントの設定も一緒に描いておきました;-)。

これで本当にすべて、キーバンドの統一が出来ました。嬉しいですねぇ;-)。でもってemacs23 用の Canna パッチは書いたんだけども、emacs24 用のパッチは多分書かないと思います。けど、それはそれでしかたがないことなのかなー。と、自分では思っていますが・・。

8月 182010
 

MacOSX には Spotlight というのがありますが、これは利用している Mac のファイルの情報をデータベースに突っ込んで、それを後から検索できるようにしたものです。

これと似たようなことが、最近の KDE4 では利用することができます。strigi と言うものですね。ports 的には deskutils/strigi です。こいつは KDE4 をインストールすると比較的容易に利用可能で、KDE のスタートメニューの検索や、システム設定での検索などで利用されています。

strigi 自体は FreeBSD 中のファイルの情報を収集してデータベースにほーりこんで検索できるようにしてくれますが、その時に NEPOMUK を利用して、検索しやすい索引情報を付加します。ちなみに NEPOMUK は ports ではなく、KDE4 の一部として、ports では x11/kdebase4-runtime に含まれています。

しかし、KDE4 をインストールして早速 Spotlight みたいにデータベース作って検索可能にするぜぃ。と思ってみても FreeBSD の ports では KDE4 を全部まるまるインストールしても、データを格納するデータベースがインストールされないので default で strigi を利用することはできません。

KDE4 のシステムトレイの 丸 “i” マークの所に「virtuoso がインストールされてないので strigi は利用できないよん。」とメッセージが表示されます。つまり ports 的には databases/virtuoso をインストールして初めて利用することが可能になります。

それはつまり、KDE4 の ports と virtuoso は関連性が切られていると言うことですね。ワザと切っているのかたまたま忘れただけなのかはビミョーですね。関連性を付けてしまうと「デスクトップ検索なんざいらねーぜ。」って人の環境でも動作してしまう。と言うことななるので・・。

自分から進んで databases/virtuoso をインストールしたら一旦ログアウトして再度ログインしましょう。これで strigi を利用する準備が整いました;-)。

既にバックグラウンドで strigidaemon と nepomukserver が動き出したかもしれません。データ収集開始ですね。

どこのディレクトリ、どのファイルを収集するかは「システム設定」の [詳細] タブの「詳細なユーザ設定」の中にある「デスクトップ検索」で設定することが可能です。

strigi_1.png

[基本設定] タブでは両方にチェックを付けます。検索を止めたい時はこのタブのチェックを外します。 [ファイルのインデックス作成] タブではディレクトリとかファイルの設定を行います。左側のメニューでどのディレクトリを検索対象とするか、右側でどのファイルを検索対象とするかを指定します。

後はひたすら待つばかりです。システムトレイに時々情報が表示されるのでまぁ、気がついた時に確認してみましょう。

インデックスの作成はけっこうこまめに起動しています。救いなのが一個の CPU しか使わないのでマルチコアの PC の場合にはそんなに苦痛は感じないのではないかと思われます。あ。けど、ディスクアクセスが気になる場合もあるかなー。 1Core な CPU や回転数の遅い HDD を利用している場合には stringi 自体は利用しないほうが良いですね。databases/virtuoso をサクっと pkg_delete するのが良いかと思われます;-)。

さてと。strigi と nepomukserver で集めたデータは $HOME/.strigi/ に格納されます。 clucene/ と言うディレクトリの中に入ります。雰囲気的には qdbm みたいな感じでしょうかね。ただ、サイズが気になるところではありますが。

データ収集はこんな感じで、続いて実際に検索結果を表示したい所ですが KDE4 を利用していない人は strigiclient と言うコマンドがあるのでそれを利用してみてください。検索結果が表示できるかと思います(後、検索パスも指定できます)。

KDE4 を利用している人は K メニューから「ファイル/フォルダを検索」を指定して起動してください。 kfind と言うコマンドが起動されます。後は [名前/場所] や [内容] のタブでそれぞれ検索すれば結果が表示されるようになります。

strigi_2.png

これでデスクトップ検索ができるようになりました;-)。

もし、検索しても何も表示してくれない場合にはもしかしたら kfind を以前に起動したことがあるからなのかもしれません。$HOME/.kde4/share/config/kfindrc を削除して kfind を再実行してみてください。

パッと思いつくのは Thunderbird や mew などのメーラ(MUA) で、こいつらは独自の検索システムを持っていてそれぞれ個別にデータベースにその情報を突っ込んだりしていますが、それも必要ないかなー。デスクトップ検索でメールの情報もパスに入れてしまえばデータを保持する場所は一個で済むし。みたいな感じでしょぅか・・。

とは言いつつやはり、デスクトップ検索のデータ収集中(インデックス作成中)はそれなりに CPU とメモリを持っていかれるのでちょっと贅沢なマシン環境で実行するのが良いかなぁ。と、僕も思うのであります;-)。

まぁ、あるものは使ってみた。と言う感じでしょうか;-)。

ちょっと前に書いた「KOrganizer と google カレンダーの sync。」の記事もそうなのですが、今まで X と言うのはマルチウィンドウでターミナルと emacs を利用する。みたいな感じだったのですが、最近はコッテリとした “統合デスクトップ環境” の各機能を使いこなしても面白いなぁ。などと思うようになってきました。

KDE4 の アドレスブック(kaddressbook) と AdtiveDirectry を連携させてみたり、MacOSX 上のアドレスブックの情報を vCard で出力して KDE4 の アドレスブックに食わせたりとか。

なんか、ようやっと “統合デスクトップ環境” を使いこなせてきたぞぉ。みたいな感じがしてきました;-)。これからもちょくちょく書いていきたいです;-)。

7月 222010
 

僕の自宅にはネットワーク上に FreeBSD 二台、Windows7 二台、MacOSX 一台がクライアント PC として存在してます。でもって自宅にはプリンタがあって ブラザー HL-2040 があるのですが、このプリンター、USB とパラレルポートで接続できるのであります。

HL-2040 のパラレルポートは Windows7 に、USB は MacOSX に接続されているので FreeBSD が動作している PC にはプリンタが接続されていないのであります。

そもそも、FreeBSD ではプリンタが動作するようにする設定はややこしいし、無理して FreeBSD から印刷しなくとも、cupsd が動作していて、ベンダがドライバを用意している MacOSX から印刷すれば綺麗に印刷できるのでそれで良いやー。とか思っていたわけですが・・。

しかし、よくよく調べてみるとブラザーは MacOSX と Linux 用に cups ドライバを用意しているので、それを FreeBSD に持ってきたら FreeBSD でも綺麗に印刷できるではないかい?

とか思い、FreeBSD で cupsd を onestart したわけです。で、その後に http://localhost:631 にアクセスするわけです。そしたら・・。

あぁれぇ? MacOSX に接続しているプリンタが FreeBSD から見えるではありませんかっ!! 以下は cupsd に接続した時の「プリンタの管理」の画面です。

cups_printer.png

cupsd で既に認識されているので、後はアプリから使えるのか確認するだけです。まずは GTK アプリの代表格 Firefox からですが、「印刷」を選択するとちゃーんと MacOSX に接続されたプリンターが見えていて、印刷もちゃんとできました。

次は僕がメインで利用しているデスクトップ環境の KDE4 の konqueror で印刷してみましたが、これまたプリンタがちゃんと見えていてちゃんと印刷ができたのでありました。日本語も文字化けせずに綺麗に印刷されております(@_o)。

す、すげーな。って感じなのてありました。

さてと。ここからはただの観測でしかなくて、全くウラは取ってないのですが、MacOSX と、後、KDE4 を利用した僕のデスクトップ環境では mDNS やら avahi やら hald などがガシガシ動いている環境です。なので、MacOSX 上の samba でファイル共有とプリンタ共有がオンになっていると Apple 謹製の cupsd はサクっとお互いを認識しあえるのかなぁ(サクっと認識されたのは多分 mDNS の影響だと、僕は思うのでありますが)。などと思った次第です。

MacOSX に接続され、ネットワーク共有されているプリンタはサクっと利用できると言うことなのでしょうなぁ。

それにしても上のほうに書いた通り HL-2040 のパラレルポートは Windows7 に接続しています。で、Windows7 に接続しているプリンタもネットワーク共有しているのですが、こいつは cupsd からは見ることが出なかったのでありました。

cupsd 同士、後、mDNS などの親和性がすごーく良い。と言うことなんでしょうかねぇ。

最後にですが FreeBSD 上で make した cups-base の make config のオプションを付けておきます。

# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for cups-base-1.4.3
_OPTIONS_READ=cups-base-1.4.3
WITH_GNUTLS=true
WITHOUT_PHP=true
WITHOUT_PYTHON=true
WITHOUT_LIBPAPER=true
WITH_DNSSD=true
WITHOUT_PAM=true
WITHOUT_LDAP=true
WITHOUT_DBUS=true
WITHOUT_LIBUSB=true
WITH_GHOSTSCRIPT=true
WITHOUT_XPDF=true
WITHOUT_XDG_OPEN=true

 
本当に良く分からないのですが WITH_DNSSD=true なのかなぁ。 FreeBSD で簡単にプリンタを使いたければ MacOSX に接続されているプリンタで。って感じでしょうか;-)。

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。

7月 032010
 

ちょっと前のエントリーで「ONKYO ND-S1 を PC に接続してみる。」と、いうのを書きました。その時は MacOSX と Windows7 では無事に動作したけど FreeBSD では usb.ko 辺りでエラーになって動作しないですねぇ。で終りました。

その時検証した FreeBSD は 7.3-STABLE だったのですが、今回 8.1-PRERELEASE にバージョンアップしたので再度試した所、無事に動作することを確認できました。mp3 や 音楽 CD、後、mp4 の動画についても音が出ることが確認できたので、FreeBSD から ND-S1 はサウンドカードとして無事に認識できました。

kernel: uhub7: 2 ports with 2 removable, self powered
root: Unknown USB device: vendor 0x08bb product 0x2704 bus uhub7
kernel: ugen5.7: <Burr-Brown from TI> at usbus5
kernel: uaudio0: <Burr-Brown from TI USB Audio DAC, class 0/0, rev 1.10/1.00, addr 7> on usbus5
kernel: uaudio0: Play: 48000 Hz, 2 ch, 16-bit S-LE PCM format
kernel: uaudio0: No recording!
kernel: uaudio0: No midi sequencer
kernel: pcm4: <USB audio> on uaudio0

 
前回書いた通り、サウンドデバイスがたくさんある PC になっている (cat /dev/sndstat の結果) のでサウンドカードを特定する必要があるのですが、以下のコマンドで pcm4 に向けてあげます。

# sysctl hw.snd.default_unit=4

 
これで無事に音がでるようになったということですね。演奏中は特にエラーを吐くことも無く快調に音が出るのでありました;-)。

さて。 7.3-STABLE と 8.1-PRERELEASE では基本的に USB 周りが改修されているようです。 8 系 FreeBSD では usb.ko から ochi.ko 、 uhci.ko 、 ehci.ko が独立しました。その関係でコードが見直されたのでしょうなぁ。良かった良かった。

筆者はその昔、8.0-STABLE を試しているのですが、この時、USB 接続の HDD が認識しませんでした。その時の顛末は「8.0-STABLE の USB ブート。」に書いているのですが、なるほどー。8 系リリースのことをよく調査もしないで、7 系と同じ感じで usb.ko だけロードすれば USB が使えると思っていて uhci.ko とかロードしていないために USB 接続の HDD が認識しなかったのねぇ。という感じなのでありましたf(^^;;。

最後にですが、ONKYO ND-S1 は USB バスパワーでも動作します。サウンドカードとして利用する分には AC アダプタは必要ありませんでした。 iPhone3G を接続した時に充電するためには AC アダプタが無いと充電できません。なので、実質的には AC アダプタは必要になるかと思うんですけどねぇ。

さてと。これで FreeBSD からもデジタル出力でオーディオ機器に対して音が出るようになったということですね。DVD を mplayer で見た時、5.1 チャンネルで音が出るようになるのかなぁ?だとしたらそれはそれで凄いことだけど;-)。 snd_uaodio.ko はどうなっているんだっけかなぁ。

6月 202010
 

オンキョーの CR-D2+D-D2E と言う組み合わせのミニコンポを購入しました。そして、その後に ND-S1 と言う PC と USB で接続できる iPod ドック付きのデジタルメディアトランスポートを購入しました。

音響機材としての感想などについては以下の URL に書いたのでそちらを参照して頂ければと思います。

ここでは ND-S1 を PC のパーツとして利用した場合にどんな感じか、ちょっとまとめてみたいと思います。

まず、ND-S1 と言うデバイス、PC からすると「サウンドカード」と言う扱いになります。USB 接続の外付けサウンドデバイス。 PC に接続すると USB Audio DAC として認識するので Windows・MacOSX・FreeBSD の全てでサクっとデバイスとして認識します(筆者の自宅に Linux は存在しない;-)。

まず、Windows についてですが、簡単に書いておきます。 Windows7 Ultimate x64 に接続するとサクッと認識します。後はコントロールパネルのサウンド設定で出力先を ND-S1 に向けてあげるだけで Windows Media Player や iTunes で音が出ます。また、 iTunes では iPod と Sync も行えます。

MacOSX は製品のカタログでは対応外の OS となっているのですが、こちらも Windows7 と同じくサクッと認識します。

usbdac_1.jpg

これが認識した瞬間ですね。後は iTunes の音も出るし、システム全体の音もステレオに飛ぶようになります。当然 iPod との Sync も行えるのであります。

さてと。ここまで二つの OS でサクッと認識したので、では今回の本命の OS である FreeBSD はどうだ?と言うことで、FreeBSD/amd64 7.3-STABLE に接続してみました。

uhub6: <vendor 0x0409 product 0x005a, class 9/0, rev 2.00/1.00, addr 3> on uhub5
uhub6: single transaction translator
uhub6: 2 ports with 2 removable, self powered
ugen1: <Burr-Brown from TI USB Audio DAC, class 0/0, rev 1.10/1.00, addr 4> on uhub6

 
一発目。USB ポートに接続したら、あれま。 ugen0 に落ちてしまいました。カーネルモジュールをロードしよう。と言うことで /boot/kernel を眺めるとそれらしいのは snd_uaudio.ko くらいしか見あたらないのでそれをロードしてから再度接続すると。おぉ。pcm として認識しましたね。

uaudio0:  <NBurr-Brown from TI USB Audio DAC, class 0/0, rev 1.10/1.00, addr 4k> on uhub6
uaudio0: audio rev 1.00
pcm4:  <NUSB Audiok> on uaudio0

 
cat /dev/sndstat してみると以下のような感じ。

$ cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2007061600/amd64)
Installed devices:
pcm0:  <NHDA ATI R6xx HDMI PCM #0 HDMIk> at cad 0 nid 1 on hdac0 kld snd_hda
pcm1:  <NHDA Realtek ALC883 PCM #0 Analogk> at cad 0 nid 1 on hdac1 kld snd_hda
pcm2:  <NHDA Realtek ALC883 PCM #1 Analogk> at cad 0 nid 1 on hdac1 kld snd_hda
pcm3:  <NHDA Realtek ALC883 PCM #2 Digitalk> at cad 0 nid 1 on hdac1 kld snd_hda
pcm4:  <NUSB Audiok> at ? kld snd_uaudio [GIANT] (1p:1v/0r:0v channels default)
mode 1:(output) 2ch, 16/16bit, pcm, 32000,44100,48000Hz
mode 2:(output) 1ch, 16/16bit, pcm, 32000,44100,48000Hz

 
おぉ。pcm4 で USB Audio DAC な機器として認識したようです(Realtek ALC883 PCM は長すぎるので後ろの文字列を消しています。今回重要なのは pcm4 になります)。これはすばらしいっ!!

それにしてもこの ND-S1 と言う機器は出力用にコンポジットデジタルとオプティカル光デジタル出力があるので output は二系統あります。そんでもって input は持っていないと言うことが解ります。

これが悲しいのよねぇ。ミニコンポから光デジタル出力して ND-S1 にデジタル入力があったとしたら PC 側でデジタル録音できたのにねぇ。それができない。フツーの PC 用サウンドカードではない。ということが良く分かります。

話を戻しますが、FreeBSD ではここからが泥沼です。まず、デジタル出力のチャンネルが二系統あるのですが、僕は「どっちかの出力チャンネルを指定する」コマンドなり設定を見つけることができませんでした。なので、オプティカル光ケーブルで接続しているほうを優先的に利用することができないので実際に正常に音が出ているのか確認できないのであります。orz。Windows とか MacOSX はどうやって判断しているのだろう・・。

ちなみに sysctl の hw.snd MIB ではそれらしいのを見つけることができませんでした。

けどもまぁ、気を取り直してとりあえず CD でも聞いてみましょう。あれ・・。音が出ない・・。
じゃあ mplayer で mp3 でも聞いてみましょう。あれ・・。音が出ない・・。
それなら dolphin (KDE4 付属のメディアプレーヤー)で動画でも見てみましょう。あれ・・。音が出ない・・。

orz。つまりは全滅。と言う感じなんですね。あげくの果てにはなにやら怪しげなログを出力しているようです。

kernel: pcm4:virtual:dsp4.vp0: play interrupt timeout, channel dead
kernel: usb5: *** WARNING: opening low/full speed device, this does not work yet.
pcm4:virtual:dsp4.vp0: play interrupt timeout, channel dead
kernel: usb5: *** WARNING: opening low/full speed device, this does not work yet.

 
USB HUB が悪さしていて USB の速度が出ないよ。的なメッセージなんですかね。けど、PC の USB ポートに直接接続したので特に問題は無いのではないかと思えるんですけど・・。また、同一 PC でマルチブートする Windows7 は同じ構成で無事に動作したし。

ちなみにこのメッセージが出力される部分がどこか、一応ソースを眺めたのですが、sys/dev/usb/ の
ehci.c と uhci.c だったので snd_uaoudio 側ではなく、USB 側の問題であろうと言う感じはします。時間ができたらじっくりとソースを眺めてみたいとは思いますが・・。

とまぁ、そんな感じで ONKYO ND-S1 を購入したのですが、ネタ的には音響機器・PC のデバイスと色々な角度から見てネタができて良かったです。

まぁ、FreeBSD で動作して本当に嬉しい?と言われれば何ともいえないのですけどね。 iPhone3G や iTunes での音楽の管理は 全て MacOSX 上で行っているので MacOSX に接続して、そこで動作すれば良いやー。となってしまうのでありますが;-)。

つづきを別のエントリーとして書きました。以下になります。

ONKYO ND-S1 と FreeBSD 8.1-PRERELEASE。

6月 182010
 

今年の初めあたりに「virtualbox-ose-3.1.2 を X11 無しで利用する。」というエントリーを書いたのですが、FreeBSD の ports の VirtualBox も今はバージョンが virtualbox-ose-3.2.4 というものになりました。

ports から make すると、make config で VNC がサポートされたことが解ります。つまり、X11 無しのサーバ上で VirtualBox を起動して VNC で接続すれば Windows でもラクチンに運用できる。ということですね。

先に起動方法を書いてしまいます。ports から emulators/virtualbox-ose をインストールしますが、 make config で WITH_VNC=true だけ指定して make install します。後は「virtualbox-ose-3.1.2 を X11 無しで利用する。」のエントリーで書いたコマンドを順番に実行していけば良いだけです。

が、コマンドオプションをちょっとだけ追加してみましょう。

$ VBoxHeadless -s "WindowsServer 2008 R2 EPE x64"  -n -m 12345

 
“-n” は VNC を使いますよー。ってオプションで “-m” は VNC で接続する時のポート番号ですよー。ってオプションです。

僕は自宅で動作している FreeBSD のサーバ上に virtualbox-ose-3.2.4 をインストールして、上記コマンドを実行したのでありました。

後は手元のデスクトップから VNC クライアントで vnc://server:12345 と接続すると、WindowsServer が起動する所から確認することができるのでありました;-)。

ちなみに、今回は Windows7 Ultimate x64 上で動作している VirtualBox にインストールした WindowsServer 2008 R2 EPE x64 を FreeBSD/amd64 7.3-STABLE 上に持っていって起動しました。
あ。FreeBSD/amd64 上で VirtualBox を起動させるためにはカーネルの設定ファイルに options COMPAT_IA32 が必要です。カーネルの再構築が必要ななります。

Windows7 上の \ユーザ\takachan\.VirtualBox\ を samba 経由でサーバ上に ~/.VirtualBox/ としてコピーしました。サーバ上ではパーミッションを直した後に以下のファイルを手で編集します。

  • ~/.VirtualBox/VirtualBox.xml
  • ~/.VirtualBox/Machines/WindowsServer 2008 R2 EPE x64/WindowsServer 2008 R2 EPE x64.xml

上の xml ファイルは VirtualBox 自体の設定を行う XML ファイルです。パスなどに “\” などが入っていたら “/” に書き直してあげる必要があります。

下のファイルは OS の設定用 XML ファイルです。このファイルは手で直すか、VBoxManage で設定するかします。僕の場合、Windows7 のデスクトップ上ではサウンドをオンにしていたのですが、サーバ上ではサウンドをオンにしていないので WindowsServer が起動しなかったため VBoxManage コマンドで –audio off しました。

これで無事に起動しました。後、ネットワーク周りとかでも引っかかったりするのではないかなぁとか思いますが、ダメだったらインストールしなおしてください(^^;;。ちょっとだけ設定ファイルを書いておきます。ネットワークの設定はこんな感じです。

<Network>
<Adapter slot="0" enabled="true" MACAddress="080123858840" cable="true" speed="0" type="82540EM">
<BridgedInterface name="re0"/>
</Adapter>
<Adapter slot="1" enabled="false" MACAddress="080123328902" cable="true" speed="0" type="82540EM"/>
:
<Adapter slot="7" enabled="false" MACAddress="08012319BA1F" cable="true" speed="0" type="82540EM"/>
</Network>

 
これはブリッジの設定ですが 僕は re0 を利用しているのでデバイス名を指定します。 NAT を利用する場合に <NAT/> と書くだけになります。

なんせ、僕は X11 無し版の VirtualBox 上では OS はインストールしたことがありません。前回は デスクトップ機として利用している FreeBSD/amd64 上で稼働する VirtualBox から、今回は Windows7 x64 上で稼働する VirtualBox から OS イメージと設定ファイルを持って来ています;-)。

しかし、自宅の FreeBSD サーバ上に WindowsServer 2008 が動作するようになりました。何のために利用するかですが、まずは SilverLight なサーバでも構築するか。という感じなのですが、自宅内のために AD を起動したりするのも良いかなぁ。などと思っているのであります;-)。がっ!!そーだった。検証目的のインストールなんだったf(^^;;。

あ。一点書いておきます。VNC クライアントで VirtualBox に接続するとマウスが、その動作に対して追随して来ません。実際のポイントとずいぶんとずれてしまうので難儀は必死です。そんな時は Windows 側のマウスの動作を最速にすると良いかと思います。後、Ctrl+Alt+DEL を利用しないようにするにはレジストリを変更する。ってのは書かなくとも良いですよね;-)。

5月 252010
 

ちょっと前のエントリーで「USEN 放送を録音して iPhone で聞く。」ってのを書いたのですが、ようは USEN のチューナからアナログケーブルで PC の LINE-In に接続して録音してみました。ってヤツでした。

しかし、これやっても音が非常に悪いっ!! アナログ特有の「ぶーー」って音が後ろの方で聞こえていたりしてもうダメダメ。なのでアナログ録音することはあきらめました。orz。

するっていと、自宅にやってきた USEN は結局どうるすか?と言うことになるのですが、自作した「USEN SOUND PLANET-i プレイリスト」で今流行の曲を認識して、その曲自体を USEN で聞く。みたいな感じにしか利用できないのであります。

欲しいな。と思う曲があれば iTMS で購入したりするのですが、youtube も検索してみるわけです。ふむー。自分でアナログ録音したのより youtube のほうが音、いいんじゃね?とか思うのでありますが、ここでようやっと clive の出番です(^^;;。

clive とは youtube の動画を自分の PC にダウンロードできるコマンドです。使い方はこんな感じ。-f は保存形式を指定します。 mp4 で保存します。 URL は youtube の動画が見えるページの URL をそのまま指定します。

% clive -f mp4 "http://www.youtube.com/watch?v=77EJiYJG3h0"

 
すると、Flash なのに mp4 ファイルで保存してくれます。すげー。jobs に感化されて Flash キライ(インストールしてない)な人は mplayer とか QuickTime Player で見てください;-)。

FreeBSD の ports では multimedia/clive にあります。make install すればもうばっちし。

しかし、mp4 の動画、サウンドトラックとビデオトラックがあるけどビデオトラックを消して m4a にしたいので、その時は MacOSX 上で GarageBand を利用するので、どうせなら clive もMacOSX 上で動かしたいモノだ。とか思い epkg を作ろうとしたのだけど・・。

うひー。perl のための epkg というのがなくて、ひな形となる Makefile が存在しないみたい。あれれ・・。まぁ、epkg と言うのはユニバーサルバイナリを出力するための「フレームワーク」なわけで perl スクリプトなどはアーキテクチャには依存しないので当然と言えば当然か。

と、言うことでコマンドラインから clive をインストールします。

まず、clive のソースを取って(http://clive.googlecode.com/files/clive-2.2.11.tar.bz2) きて、展開した後に perl Makefile.PL;make;mak einstallします。けど、色々 perl モジュールが足りないぜぃ。と言われるので必要なものをインストールしてあげます。cpan(1) を利用してインストールします(コマンドイメージはこんな感じ % perl -MCPAN -e shell )。必要な perl モジュールは以下になります。

  • Class-Singleton
  • Config-Tiny
  • Getopt-ArgvFile
  • HTML-Parser
  • URI
  • WWW-Curl

cpan からのインストールが終わると、/Library/Perl/5.10.0/ 辺りにインストールされます。その後で再度 clive をインストールすると無事に入るので上記のコマンドをすかさず実行します。実行時に WWW/Curl/Easy.pm が無いと言われたら /var/root/.cpan/build/ の下の WWW-Curl で直接 make install 叩いちゃってください;-)。

clive は以上なのであります。

さて、引き続き、GarageBand についてちょっと書いてみたいと思います。

そもそも iPhone(iPod) で音楽を聴きたいので動画部分は必要ありません。そんな時は GarageBand でビデオトラックを削除して、サウンドトラックのみにしてから保存すれば大丈夫です。

まずは GarageBand を起動してダウンロードした mp4 データを DnD してあげます。すると以下のような感じになるでしょうか。

GarageBand.jpg

左上部分のキャプチャですが、二個並んでいるのがトラックです。上がビデオトラック、下がサウンドトラックです。ビデオトラックをクリックして、メニューから [トラックを削除] を選択すると簡単に m4a(AAC) な音楽ができます。後はこれを iTunes に転送してあげれば良いだけですね。

簡単なのでありました;-)。

などと、GarageBand をいじっているとその機能の多さにちょっと感動します。僕もミュージシャンになって音楽でも作ろうかなぁ。などと思ってしまうのでありました;-)。

ちなみに、著作権についてですが、 USEN 放送を録音して自分で聞く分にはちゃんとシロです。youtube の動画を保存して自分用に聞くのはどうなんだろう? 以前別のブログに書いたのがあるんだけど、こっちは youtube 上からもう既に削除されてしまっています。と、言うことはクロかな?

自己責任でお願いします。

5月 222010
 

以前「emacs-canna の ports。」と言うエントリーで、emacs-23.1+Canna な ports を作りました。と書きましたが、FreeBSD のports-CURRENT の editor/emacs が 23.2 になったみたいなので、 emacs+Canna の ports も23.2 に追随してみました。

以下の URL からダウンロードできます。

http://icmpv6.org/Prog/FreeBSD_ports/ports-emacs232-canna-20100521.tgz

/usr/ports/japanese 辺りで展開して make してください。

ちょっと説明すると、editoe/emacs は make config に対応したみたいなので、config の画面で CANNA を選択できるようにしました。

後、Canna for GNU Emacs23 では emacs-23.1 にしか対応していないので、このパッチを参考にさせて頂いて emacs-23.2 に適用できるように改修しました。emacs-23.2 対応の パッチは以下の URL にあります。Linux 方面の人はこっちのほうが嬉しいですかね;-)。

http://icmpv6.org/Prog/emacs232canna-20100521.patch.gz

と、言うことで自分で書いたモノを、短い時間ですが使ってみても特に問題無くネーテブに Canna で日本語入力ができています。もし良かったら使ってみてください;-)。

さてと。この ports を今後どうするか。と言うのが大きな課題です。一応 make config で CANNA が選択できるようになったので editor/emacs に吸収してもらっても良いかなぁ。とか思っているのですが、そーすると send-pr したり、 ports のメンテナに連絡とったりするかなぁ。

emacs-23.1 の ediotr/emacs は config の画面が出なかったのであれだったんだけど 23.2 の ports は良くできているような気がしないでも無いのでねぇ。今回は連絡取ってみようかなぁ。

と、言うことで Canna での入力を必要としている皆さん。利用した結果のコメントなどいただければ嬉しいです。