3月 252012
 

自宅の MacBook がブートしなくなってしまいました。とわいつつ、実は MacBook は二台持っていて、HDD がいかれたっぽいのは以前買った初代 Core2Duo 版でのほうで普段から常用している現行版 MacBook はまだ元気なのでその点は安心しているのですが;-)。

さてさて。ブートしなくなった Mac は以下のような画面を表示して停止してしまいます。

IMG_1443_marshal_hdd_2.jpg

facebook にこれを掲載したとき、色々コメントを頂きました。この画面は割と良く出てくるらしいですね。ブートデバイスが何も無い状態のときに表示されるらしいです。HDD 逝ってしまっているとか CD-ROM/DVD ドライブが認識しないとかの状態に出るらしいです。

そして、今回、もう一個怪しげなアイコンが表示されました。

IMG_1458_marshal_hdd_3.jpg

これは見た人がいないみたいなので、もしかしたら僕は非常にラッキーだったのかもしれません。多分「もうダメじゃん。」的なアイコンなんでしょぅなぁ・・。けど、何かどうダメなのか全然解らない・・f(^^;;。

と、いうことでアキバに HDD を買いに行きました。もともとは S-ATA 250GB くらいのを狙っていったので安いので 4,980yen くらいかなぁ。と思っていました。 MacBook 自体はもう古いものなので SSD にする必要も無いし転送速度も ATA300 なのでそんなに高くはないだろう。みたいな感じでアキバの PC ショップを俳諧するんですけどもね。

で、見つけたのがあやすぃー HDD ;-)。

IMG_3202_marshal_hdd_1.jpg

MARSHAL とか言う初めて見るメーカのものでした。今回購入したのは 2.5 インチ S-ATA 250GB ATA300 5,400 回転のやつで値段がなんと 4,180yen。 有名どころで安い SUMSUNG よりも 1,000yen くらい安いのであります。
今回購入したのはソフマップだったのですが、お店の人に聞いてみると MARSHAL 自体は商社で実際に HDD を作っているメーカではないとのこと。もの自体は OEM らしいです。

上記の写真のカバーを見ると大体メーカ解りますかねぇ? HITACHI のデザインでないことだけは確かですが;-)。

まぁ、もともと古い MacBook に入れるつもりで買ってきたのでこーいうのでも良いか。記事ってか、ネタになるしなー。みたいな感じで試したのであります;-)。

MacBook に換装し OS X Lion をインストールしましたが、無事にインストールできてちゃんと動いております。 HDD 的には特に問題も無いようですし、MacBook も無事に起動したので今回はおーるおっけーってところでしょうか;-)。

3月 122012
 

前回のエントリで「Android 端末が手元に。」ってエントリを書きましたが、一週間ほど使ってみた感想を書いてみたいと思います。

docomo の MEDIAS LTE N-04D で Android 2.3.6 ですが、比較対象は SoftBank mobile (以降 SoftBank と記述)の iPhone4 で iOS は 5.1 です。

箇条書きちっくで行ってみましょう。

1. docomo と SoftBank 回線について
僕的には docomo も SoftBank も回線的には特に変わりないかなぁ。という印象を受けました。電車で帰る時に利用すると docomo が入らないところもあるし SoftBank が入らないところもある。自宅の場合は SoftBank がアンテナ全部立つけど docomo は立たないとかね。
ただ、LTE は速いかもしれない。 Android で USEN スピードサイト確認したら 6.5Mbps 出たし;-)。

2. 無線 LAN なんとかならないかなぁ。
iPhone4 の無線 LAN の優秀さがすげーよく解る。 MEDIAS LTE N-04D って Wi-Fi ポイントの情報を AP ごとに持ってくれないのね。例えば自宅の Wi-Fi AP は固定アドレス設定なんだけど会社は DHCP。その場合の固定アドレスか DHCP かって情報は AP 単位で持ってくれないってすげー変に感じたなぁ。

後、docomo の Wi-Fi って 2013/03 まで無料で利用できるので申し込んだんだけど、 SoftBank のプロファイルってすげーな。って感じた。手動でパスワード入れるんかい? > docomo orz。
他にも sp モードと Wi-Fi との関係ってビミョー。複雑怪奇・・。

3. バッテリーについて
MEDIAS LTE N-04D って確かにバッテリがガンガン、待ち受け中でも減っているような気がする。 iPhone4 に比べても減りが激しい。ただ、僕の場合 iPhone4 と MEDIAS LTE N-04D を気が向いたときにどちらかを利用しているのでトータルではまぁ、良いかぁ。みたいな感じ;-)。

ここまでは Android を使ってみた第一印象。次に OS X との連携について書いてみたいと思います。

1. OS X と USB で接続
MEDIAS LTE N-04D に付属の USB ケーブルで OS X と接続すると Android 側で以下のようなメッセージで出力されます。

IMG_1523_MEDIAS_LTE_N-04D_1.jpg

このときに「カードリーダーモード」を選択すると Android 本体 と SD カードのアイコンが OS X のデスクトップ上に表示されます。そして、iPhoto も自動的に起動するので写真を撮っていればデジカメと同様の動作で写真を取り込むことができます。

2. アドレス帳の連携
まず、OS X の アドレスブックアプリ を起動し、全てのアドレス帳を vCard 形式でエクスポートします。そして MEDIAS LTE N-04D を USB ケーブルで接続したときに vCard 形式のアドレス帳ファイルを SD カードのトップディレクトリに置いて、 Android 側では 電話帳アプリ を起動しメニューから [その他]->[インポート/エクスポート]->[SD カードからインポート] を選択するとアドレス帳が読み込めます。

ただ、グループには対応してないので後から手動でグループ分けする必要がありますが・・。

3. スケジュールデータの連係
OS X 上では iCal アプリ を利用してスケジュールを管理していると思いますが iCal アプリがエクスポートしてくれる形式は ics 形式。 Android が必要としている形式は vcs 形式なのでデータに互換がありません。 ics -> vcs 形式と変換してあげる必要があります。変換したデータは SD カード上の Download ディレクトリに入れてあげるとインポートできるようになります。

とわ言いつつ、MEDIAS LTE N-04D は「スケジュール」アプリと「カレンダー」アプリの二つが存在しています。前者は多分 docomo 謹製で後者は google のだと思います。僕は google カレンダーはきらいなので利用していないのでありますが;-)。

今のところ OS X との連携はこんな感じかなぁ。今後他にも発見したら色々書いてみますね;-)。

で、最後に google アカウント無しでどれくらい利用できるか?僕は結局購入から三日後に google アカウントを設定してしまいました・・。

1. 「d マーケット」っていったい・・。
docomo のアンドロイドマーケットらしいのですが、アプリをダウンロードしようとすると Google Play へのリンクなのねー。google のアカウント設定してないとアプリのダウンロードもできない。

2. マップアプリって怖いね。
多分、google 謹製のアプリだと思うのですが、一端起動すると地図アプリなのにバックグラウンドでガシガシ動き回っているんですね。きっと GPS の情報が google にアップされて google マップの渋滞情報に利用されているんですね。マップアプリ はなるべく起動しないようにしました。もし起動したらサクっと kill することにしています。
地図アプリは「地図アプリ」、「ナビ」などがあるのでこれは多分 docomo 側が用意してくれたんでしょうなぁ。そっちを使うことにしました。

3. google+
MEDIAS LTE N-04D は google+ が default でインストールされているのですが、 Apple の iCloud のように撮った写真をそのままアップロードする「インスタントアップロード」の機能があります。それはすいかさずオフにしました。また、写真閲覧アプリである「ギャラリー」は google+ にアップロードしている写真(記事で利用した写真などを含む)も閲覧できるんですねぇ。ふむー・・。

google+ でログイン状態にしておくと google で検索した結果が保存されていて PC のブラウザや Android 端末で過去に何を検索したか表示されます。僕は PC・OS X では google にアクセスする専用のブラウザをインストールしました・・。

恐ろしいことだぁ・・。

で、Android と google の関係を切る案ですが、アプリをダウンロードするときはしょーがない。アプリをダウンロードしない場合には設定の「アカウントと同期」から google のアカウントを削除すれば google にデータが飛んでいかないのではないのかなぁ。などと素人考えながら思っていますが・・。

とまぁ、MEDIAS LTE N-04D を購入して使ってみると docomo の甘さと Android の『んー。』感と google 怖いぞ。みたいなのが感じ取れたのでありました。

このネタ気づいた時にポツポツと書いていきたいと思います。次回はテザリングとか山奥での電波状況など、 docomo とか MEDIAS LTE N-04D 良い点をバリバリ書きたいなぁ;-)。

9月 172011
 

OS X Lion と言うのはなんか、異様にメモリを 食うみたい。僕の利用する環境が悪いのか簡単に 2.5GB 位消費してしまう。

そして、今の時期、DDR3 SO-DIMM は大変に安くなっているのでドーンっと 4×2 の 8GB にしてみるべ。と思ったのであります。

ちなみに僕が利用している Mac は一年前の MacBook。 Core2Duo で、買った当初、メモリは DDR3 SO-DIMM 2x2GB の 4GB な状態でした。

IMG_1941_memry_1.jpg

アキバを俳諧して見つけたメモリは ADATA の 4GBx2 パックのリテール品。ドスパラで特売していたのですが、 8GB で 3,470yen でした。随分安くなったものですねぇ。

ちなみにドスパラ近所のアキバおーでは多分ノーブランド品だと思いますが 3,140yen だったかぁ。で売っていました。それが今週末の、多分最安ではないかと思います。

メモリ換装後、MacBook はスルっと起動し、ちゃんと 8GB として認識して動作しています。

IMG_1941_memry_2.png

あ、ちなみに OS X Lion は default で x86_64 カーネルが起動するので、OS がちゃんと機能していれば 8GB の恩恵が受けられると思います。 Mac OS X SL の場合は default で 32bit カーネルが起動するのでブート時に 6,4 ボタンを押しつつ起動しないとその恩恵は受けられないのでは? と思います。

7月 282011
 

Mac を持っている人はもう既に MacOSX Lion に update してるでしようなぁ。そー言う僕もリリースされたその日の夜のうちにバージョンアップしてしまいました。でもって使い込んでいるわけですけども。

僕は MacBook を持っているのですが、普段はパタンと閉じて、包丁立てに立てて、ディスプレーとキーボード、マウスを接続して利用しているのですが「Lion ではやっぱり Magic TrackPad だべ。」とか思い、この間の土曜日にアキバで Magic TrackPad を探したのですが、Mac 製品を売っているお店三軒回って在庫ゼロ。

amazonにも在庫が無いみたいだったのでっ!! ってか、な、なんだぁ?! amazon では定価より 1,000yen 高くなっているぞぉっ!! 僕は オンラインの Apple Store で購入したのでありました。

IMG_1451_MagicTrackPad_1.jpg

ちゅーこって、これからの MacOSX Lion はこれを使ってバリバリ楽しむのであります;-)。

と、言うことで、ここから先はまだ日が浅いですが、僕が気がついた点をちょっと書いてみたいと思います。 GUI スゲーゼっ!! とか書かないですよ。それについては他のページを見てください;-)。

あ。自動保存機能は凄いですね。これは本当に凄い。テキストエディットアプリなんかはそのまま終了してしまうと言うか、開けたままで shutdown -r now とかしても全然平気だし、本当に恐ろしい世の中になって来た。と言う感じがします。
PhotoShop とか対応すればもう DTP の人も安心して仕事ができるでしょうね。
emacs なんかは自動保存機能に対応しないと使われなくなっていくんではないかなぁ、と思います。

と、言うことで、まずは IPv6 かなー。
Lion の IPv6 についてですが、Windows と同じ auto config の anonymous なアドレスが付加されるようになりました。なので、IPv6 アドレスは自動的に二個付加されています。すげ。けど、その割りに sysctl で kame のバージョンを見ると以下の感じ。特に変更されてない感じがします。

net.inet6.ip6.kame_version: 2009/apple-darwin

 
それならば、と思い、FreeBSD で言うところの ip6addrctl (8) は実装されたのか? と思いきや、このコマンドは存在していません。ありゃりゃ。ip6(8) で IPv6 のオン/オフ と ip6config(8) ってコマンドがあります。

あと、ネットワークインターフェースとしては p2p0 なんてのが増えました。sft0 ってのは SL のころからあったかなぁ?覚えてないや。

と、言うとこで、ソースアドレスセレクションについてはどんな動作になるんだろう?相変わらずロンゲストマッチかな?

次、開発環境である Xcode について少々。
Xcode 自体は App Store から無料でダウンロードできるのでそのままインストールすれば例のごとく /Developer/SDKs/MacOSX10.7.sdk/ とかインストールされます。

さてと、インストール終わったらからコンパイルするぞーーっ!! とか思っても gcc がまともに動作しない・・。orz。 Lion では llvm-gcc-4.2 が標準のコンパイラのようです。LLVM-gcc ってヤツかいな?初めて使ったよー。って感じです。
で、コンパイルは以下の要領で行う必要があります。

% gcc -mmacosx-version-min=10.7 helo.c

 
-mmacosx-version-min=10.7 無しだと 以下のメッセージが出力され configure さえも通りません。

% gcc helo.c
<built-in>:0: error: Unknown value '11.0' of -mmacosx-version-min

 
default が -mmacosx-version-min=11 で動作している感じですね。僕には SDK の設定などが解らなかったので /usr/bin/gcc は以下のスクリプトにしてしまいした。
#弱いなぁ。とか思うんですけども・・f(^^;;。

#!/bin/sh
llvm-gcc-4.2 -mmacosx-version-min=10.7 $@

 
これで、メッセージは出力されるんですけどもまぁ、なんとかコンパイルは通るようになるかなぁ。と言う感じです。

あ。そーそー。MacOSX Lion は default で x86_64 カーネルが動作するようになりました。 i386 バイナリも動作するんでけすけど、VMware Fusion 2 は動作しませんでした。カーネルモジュールなど全てをキッパリと削除しました。

マニア向けの Lion としては今のところこの辺りでしょうか。僕は epkg のパッケージとか作っているので、開発環境はそこはかとなく利用しているのですけどもね。

今後も引き続きバリバリ利用し、気がついた点があれば書いて行きたいと思います。

あ。最後に一点納得行かない点。

suspend/resume から目覚めた MacBook ですぐにネットワークを利用しようとすると全てのアプリケーションにおいて「接続エラー」と表示されますね。これは非常にやってらんない。resume 後のネットワークの初期化が上手に動作してないでないの?って感じ・・。それがちょっと納得行かない・・。

6月 072011
 

僕は Intel MacBook を 2009 年に購入して、現在利用しているのですがもつい最近 Apple から

MacBook の下部ケース交換プログラム

と、言うのが発表されました。

上記 URL のページをたどるとシリアル番号を入力するページにたどり着くので、そこで自分の MacBook のシリアル番号を入れてみると・・。あれま。サクっと交換してくれる画面に飛びました。と、言うことは、僕の MacBook は交換対象の機器ということか。

と、言うことで本日交換してみました。あ。しかし、上記 URL の下のほうには「注:お使いの MacBook にこの問題が見られない場合は、ご注文手続きをしていただく必要はありません。」って書いてあるんですね。見事に読み漏れていました・・。どうもすみません・・。

Apple から荷物が、クロネコヤマトで届きました。交換したパーツは Apple に送り返すらしいので、配達の人が待っている間に交換して以前付いていた裏ぶたは配達員さんが持って帰るようです。

しかし、家に居ないのでそれはちょっち無理ですね。先に交換して後日取りに来てもらうことにしました。

Apple から届いたものはこんな感じ。

IMG_1281_mac_urabuta_1.jpg

中に入っていたのは以下のような感じ。

o. 在宅自己交換修理サービスのご案内
o. 交換の手順書(二枚・八カ国語)
o. ねじ 8 本
o. ドライバー

これらを参考にして作業の開始です。

IMG_1284_mac_urabuta_2.jpg

これが届いた新品のバーツ。

付属のドライバーで MacBook の裏ぶたを外して作業開始。ねじ八本抜いてから真ん中辺りで止まっているのをパコンと外します。すると BacBook の中身が現れます。

IMG_1287_mac_urabuta_3.jpg

今回は HDD 交換するわけでも、メモリ増設するわけでもないので眺めるだけ;-)。すかさず新品の裏ぶたをパコンとはめてねじで固定して作業は完了するのでありました。

その後、電源を投入して無事に起動することを確認して作業は完了するのでありました。

後は交換したパーツを Apple に送り返すだけなのであります。

6月 032011
 

いやぁ。普段はテレビを見ないんだけど、REGZA 買っちゃいました。37 インチのやつ。一応はフル HD;-)。

最近のテレビ番組は面白いとか楽しいとかあまり思わなくなって来ているんだけど、大画面のディスプレーとして映画みたりする感じでしょうかねぇ。

DVD とかブルーレイの再生機器は持っていない(PSP は持っているけど DVD+R の二層式が再生できないのでいまいち使い道が無い・・。orz)ので PC から HDMI ケーブルを接続して PC のサブディスプレーとして DVD を再生したりしています。

後、僕は、もう結構古いモノなんだけど YAMAHA のホームシアターセット TSS-1 を持っているのでコイツを REGZA に接続して 5.1ch を楽しんでいます。 REGZA 側は外部出力 S/PDIF に対して PCM を選択すると一応 5.1ch で音が出るので DVD がソコソコ楽しめます;-)。

と、言う感じで PC との接続は特に問題は無いです。ただ、僕の買った REGZA 37Z1S は D-SUB 15-pin が無いので NotePC とかは変換ケーブルをかまさないとディスプレーがつなげられないのがちょっと悲しいところかな。

と、言うことで本題。

以前のエントリーで「iOS4.3.0 のホームシェアリングで iTunes 共有。」と言うのを書きました。ネタ的にはそれと全く同一って感じです。済みません・・。

ONKYO の ND-S1 に iPhone4 を接続して iTunes 共有すると動画も転送できます。

DVD は PC で見るから良いけど、iTunes に入っている動画(つまりは iPhone3G,4 に最適化してバックアップしたものたち)をたまには見たいときがあるわけですね。それらを iPhone4 でホームシェアリングして、REGZA の大画面で見るという感じです。

IMG_1275_REGZA_1.jpg

ONKYO の ND-S1 には画面出力のコンポジットがあるのでそれを REGZA に接続します。後は REGZA 側での[入力切換]ボタンでコンポジット入力を選択するだけです。ちなみにこの時、音は ND-S1 を接続している CR-D2 のスピーカら出ます。まぁ、もとのコンテンツは 5.1ch に対応していないのでこのさいステレオ 2ch で十分でしょ。みたいな感じです。

一点だけ注意が必要なのですが、 ND-S1 と iPhone4 をダイレクトに接続しないと映像が ND-S1 に届きません。

僕は ND-S1 と iPhone4 の間を延長ケーブルで接続してよく使っているのですが、安っちぃケーブルを利用していると映像線が無いんでしょうな。画像が出ないのであります。

ケーブルはこんな感じ。

IMG_2368_REGZA_2.jpg

アキバに行くと 500yen くらいで売っている ドックコネクタ延長ケーブル みたいなヤツです。これで映像までちゃんと引っ張ってくれるケーブルって世の中にあるのかなぁ?

と、言うことで、動画を見るときはしっかりと iPhone4 を ND-S1 のドックコネクタに接続したほうが良いでしょう。

それにしても、当初はどうやって MacBook と REGZA を接続しよう。やっぱり DVI->HDMI 変換した後に DHMI ケーブルを伸ばすかなぁ。なんて考えていたのですが、やっぱり今回も iOS のホームシェアリングの機能に救われたっ!! って感じでしょうか。ふむふむ。

けど、そーすると AppleTV とか必要ないのかなぁ? iOS のホームシェアリングの機能は iTMS からレンタルした映画も飛ばせるのかなぁ? 今度試してみよう;-)。

4月 102011
 

こないだ ports-current に kde-4.6.1 が登場したばっかりなのに約一週間で 4.6.2 にバージョンアップされてしまったのでまたまた make し直し。けども今回は Qt のバージョンアップは無かったのでほぼ一晩で完了。って感じでしょうか;-)。

さてさて。ここ最近は KDE4 のこと、しかも kdepim4 のことを色々書いているのですが、今回ももう一回 kdepim4 関連のネタになります。すみません。

今回登場するのは KAddressBook と言うアプリケーションです。簡単に言うと「アドレス管理用アプリケーション」になります。

僕はデスクトップ環境としては MacOSX も利用していて、iPhone4 も持っているのでアドレス管理は MacOSX の アドレスブックアプリ (Address Book.app) で行っています。 iPhone4 から電話するときやメールを送信する時に利用しているので、”アドレスブック” で管理している情報はメールアドレスの他に電話番号なども含まれます。

登録している情報はメールアドレスだけの人とか電話番号のみの人があるわけですけども、一個のアプリで全てを管理できるのでそれはそれで嬉しいのであります。また、アドレスブックに登録しているユーザに写真などを設定していると登録してある人からメールが届くと Mail.app では写真が表示されたり、iPhone4 に電話がかかってくるとその写真が表示されたりしてくれて中々楽しいのであります;-)。

さて、この MacOSX のアドレスブックアプリ、中に入っているデータは vCard 形式で出力することが可能です。登録されている写真の情報なども vCard 形式の PHOTO;BASE64 タグで保持してくれるので写真ファイルをたくさん持つ必要も無いんですね。

さてさて。ここので MacOSX の アドレスブックアプリ について長々と書きましたが、こいつから出力した vCard 形式を KDE の kdepim に含まれている KAddressBook でインポートできるんですな。

kaddressbook_1.jpg

KAddressBook のキャプチャはこんな感じなんですが、[ファイル] から 「インポート」を選択して vCard 形式のファイルを指定するとおぉっ!! MacOSX 上で管理している情報そのままが KDE 上で再現されるのであります。上でも書いたように vCard 形式なので PHOTO;BASE64 タグがあるため写真もばっちり表示してくれるようになります。

その他に KAddressBook は LDAP とも同期してくれます。まぁ「LDAP と同期」と言ってはアレなんですが Microsoft の Active Directory と同期してくれる。と言えば良いかな。オフィスなどでユーザ情報の管理を Active Directory で行っている場合、 KAddressBook の LDAP の設定時に Active Directory の情報を指定してあげるだけでオッケー。みたいな感じです。後は「LDAP を検索」して、検索結果をインポートすればそれでグー。みたいな。

まぁ、それはある意味 Microsoft の Active Directory がちゃんと LDAP に準拠した作りになっているのがすばらしいのでありますが;-)。

vCard ファイルがインポートできて、LDAP とも連携できてインポートできる。すげーじゃないですか;-)。

もう一個だけ機能を書きましょうかね。今度登場するのは Thunderbird です。こいつも単体でアドレス帳を持っています。でもって Active Directory (LDAP) とも連携が取れます。が、vCard には対応していないんですね。 MacOSX のアドレスブックからのデータを Thunderbird にインポートできないんですよ・・。これは悲しい・・。

kaddressbook_2.jpg

これが Thunderbird のインポートの時のキャプチャ画面です。 vCard 形式には対応していないみたいですね。

そこで KAddressBook の登場です。KAddressBook は vCard 形式でインポートした情報を Thunderbird で利用できる形式である LDIF 形式にエクスポートできるのであります。おー。パチパチパチ。

と、言うことで、LDIF 形式でエクスポートしたファイルを今度は Thunderbird のアドレス帳に読み込んであげることで全てのアドレス帳のデータは同期できるようになるのであります。

ただ、一個だけ欠点があって、vCard 形式では写真まで情報を持っていってくれるのですが LDIF 形式 への変更時に写真データがバッサリと落とされてしまいます。それがちょっと悲しいところかな。などとちょっと思いますが。

以上、アドレスデータの変換機能として KAddressBook を利用するのであります。これはこれで非常に良い感じです。

ちょっと前までは携帯の情報は携帯上で、メールの情報はメーラで管理。って感じでしたが、iPhone が手元に来てから、また MacOSX を使うようになってからはすっかりとその二つのデータは統合される方向に進んで行ってしまいました。なので、アドレス帳の管理って実は簡単にやりたいなぁ。などと、最近は思うのであります。

そしてそんなときには KAddressBook が役に立つのであります;-)。

12月 152010
 

さてさて。 前回のエントリで「iOS4.2・AirPrint で体験する CUPS。」ってのを書きましたが、その続編です。いきなりこちらから読むと内容がちぃとも解らないかもしれないので前編から読んで頂ければと思います。

前回は確か、cups-pdf インストールして airprint.types というファイルを /usr/local/share/cups/mime/ に設置したけど、ダメだったー。ってところで終わりました。

iPhone4 に FreeBSD 上のプリンタを認識させるには CUPS ではなく avahi-daemon のほうであるようなので、実は avahi-daemon に設定ファイルを用意する必要があるのでありました。MacOSX や Windows では “Bonjour” と呼ばれている実装が FreeBSD 的には “avahi” になります。

ports 的には net/avahi になるのですが KDE4 をインストールしていると net/avahi-app のみがインストールされると思います。今のところはそれで十分でしょう。gnome の場合も net/avahi-app はインストールされるのかなぁ?僕は知らないのですが。もしインストールされていないようでしたらインストールして avahi-daemon と avahi-dnsconfd を起動してください。

avahi の設定ファイルは /usr/local/etc/avahi/ と言うディレクトリで管理されていますが、その中に /services/ と言うディレクトリがあります。ここに何かしらの名前で、今回は例えば AirPrint-PDF_Printer.service と言うファイルをしましょうか。ファイルを一個おけば、それが iPhone4 上のプリンタメニューに表示されるのであります。

AirPrint_avahi_1.jpg

では、AirPrint-PDF_Printer.service の中身はどう書けば良いのか?ってことですよね。以下は例です。

<?xml version="1.0" ?>
<!DOCTYPE service-group  SYSTEM 'avahi-service.dtd'>
<service-group>
    <name replace-wildcards="yes">AirPrint PDF_Printer @ %h</name>
    <service>
        <type>_ipp._tcp</type>
        <subtype>_universal._sub._ipp._tcp</subtype>
        <port>631</port>
        <txt-record>txtvers=1</txt-record>
        <txt-record>qtotal=1</txt-record>
        <txt-record>Transparent=T</txt-record>
        <txt-record>URF=none</txt-record>
        <txt-record>rp=printers/PDF_Printer</txt-record>
        <txt-record>note=FreeBSD/amd64</txt-record>
        <txt-record>product=(GPL Ghostscript)</txt-record>
        <txt-record>printer-state=3</txt-record>
        <txt-record>printer-type=0x80f04c</txt-record>
        <txt-record>pdl=application/octet-stream,
                application/pdf,
                application/postscript,
                application/vnd.cups-banner,
                application/vnd.cups-command,
                application/vnd.cups-postscript,
                application/vnd.cups-raw,
                image/gif,
                image/jpeg,
                image/png,
                image/tiff,
                text/html,
                text/plain
        </txt-record>
    </service>
</service-group>

 
途中、”pdl= ” の行だけ改行していますが、実際は一行で書く必要があります。

後、avahi のサービスの設定と CUPS に登録してあるプリンタはどこで結び付くのだ? と思いますがそれは “rp=printers/PDF_Printer” の行になります。CUPS の URL http://localhost:631/ にアクセスして [プリンター] タブに表示されているプリンタをクリックすると URL が表示される(http://localhost:631/printers/PDF_Printer)と思いますが、その http://localhost:631/ を取ったヤツになります。

後、設定を見ると type タグの中に情報が書かれていますが、ipp に対するサービスの設定である必要があります。良くわからないのが “printer-type=” ですが、まぁ、これで多分大丈夫だと思いますf(^^;;。

あ。そーそー。前回設定した /usr/local/share/cups/mime/airprint.types は削除しました。これで一応設定は完了です。avahi-daemon と avahi-dnsconfd、cupsd を再起動します。

でもって早速 iPhone4 のブラウザを開いて「プリント」を見てみましょう。無事に表示されたでしょうか?そして、印刷してみましょう。前回も書いた通り、FreeBSD の場合は /var/spool/cups-pdf/ にユーザ名のディレクトリができて、その中に PDF ファイルが出力されます。無事に出来ていたら完成です;-)。

え?ダメですか・・。ではここからはトラブルシューティングです。

まず、CUPS の管理ページにアクセスして [管理] タブの右側の一番下にある 「トラブルシューティングのためにデバッグ情報を保存」にチェックを入れて設定を保存します。すると、/var/log/cups/error_log に iPhone4 からアクセスがあった場合にログが出力されるのでその様子を見ます。

後、tcpdump -i re0 port ipp とかして iPhone4 からパケットが正常に流れてきているか確認するのも良いでしょう。

tcpdump から解ることとして、IPv4、IPv6 のどちらでパケットが到達しているか確認するのも良いかもしれないです。筆者の環境では 2001:c90:609:: でお互いに LISTEN にしていたのでガクゼンとして慌てて BB ルータの IPv6 ブリッジを切りました・・orz。iPhone4 恐るべし。NTT の IPv6 閉域網のアドレスで LAN 内をアクセスしていたんかいっ!! って感じで・・。

自宅のネットワークがデアルスタクの人はまず、ネットワークの状態を確認しておいたほうが良いでしょう。

続いて、CUPS のエラーログを見ます。無事に印刷できないログの原因としてパッと思いつくのが以下でしょうか。

cupsdAuthorize: No authentication data provided.

 
このログは後で解ったのですが、 PDF の出力には特に関係は無いので無視してよさそうです。もう一個のログのほうが重要でした。

Request from "192.168.1.200" using invalid Host: field "wanchan.local"

 
“192.168.1.200” と言うアドレスは iPhone4 のアドレスです。IPv6 でアクセスしている場合にはここに IPv6 が入ると思います。もう一個の “wanchan.local” と言うのは CUPS が動作している FreeBSD マシン名です。ホスト名の FQDN 的には wanchan.running-dog.net なのですが、mdns・avahi 的には wanchan.local になるんですな。

けど、何故か知らないですが、CUPS 自体がこの “wanchan.local” と言う「ホスト名」を認識しないみたいです。なので、/usr/local/etc/cups/cupsd.conf に以下の行を追加して上げてください。

ServerAlias wanchan.local

 
これで cupsd を再起動します。で、再度 iPhone4 からチャレンジ。こんどはどうだぁ? 無事に印刷されました?

あ。無事に印刷されない場合 iPhone4 はプリントクライアントが動きっぱなしになります。パケットキャプチャしているとずっとパケット送り続けてきます。タスクリストに表示されているので job をキャンセルしましょう。
#あ。iPhone3G ではマルチタスクが無くて、この画面を表示できないから AirPrint に対応してないのねー。なるほど。

AirPrint_avahi_2.jpg

仮に、無事に印刷ができたと仮定して FreeBSD 側を見てみると /var/spool/cups-pdf/ANONYMOUS/ と言うディレクトリが出来ていると思います。オーナーは nobody:nobody。認証がなくとも無事に印刷できたようですね。よかった。よかった;-)。

以上で「iPhone4 から PDF プリンタへの印刷」は完了です。

さてと。avahi についてですが、僕もあまりよく知らないのですが、知っている限りの情報をちょっと書いてみましょう。

まず、mdns・cups・avahi を起動するとネットワーク上の色々なサービスが、許可されていれば相互に利用できます。ports 的には net/avahi-gtk と言うのがあり、こいつをインストールすると avahi-discover-standalone コマンドがインストールされ GUI で、現在利用できるサービスの一覧が表示されます。サービス・NIC と後、IPv4/IPv6 の情報が表示されます。表示されている情報をクリックするとこれまたなかなか面白いですがf(^^;;。一回確認してみると面白いかもしれません;-)。

ただ、サーバにプリンタを付けているので X なんざねーよ。って場合があるかもしれません。そんな時は 以下のコマンドを叩いてみると良いでしょう。

$ avahi-browse -rat

 
CUI で現在提供されているサービスの一覧が表示されます。今回のオプションは -rat を指定しています。

例えば、僕の環境では MacOSX に接続されている HL-2040 プリンタが見えるわけです。そいつの情報は “= re0 IPv6 Brother HL-2040 series @ macosx-host _ipp._tcp local” として表示されます。情報がややこしいのでここには書きませんが、上記コマンドを叩くとだいたい想像が付くと思います。表示される内容は avahi-discover-standalone の GUI で表示されるものと基本的には一緒です。

実は、ここに表示された内容を /usr/local/etc/avahi/services/ の下に置いた services ファイルの XML に記述することになります。なので、僕の場合は MacOSX に接続されている HL-2040 プリンタの XML ファイルを書いて、それをサも自分の PC のサービスの如く iPhone4 に見せて、

iPhone4 -> FreeBSD(wanchan) -> MacOSX -> プリンタ -> 印刷

と言うことも可能になるわけですね。ややこしいけど;-)。

ただ、残念なことに FreeBSD に直に接続しているプリンタが無いので avahi-browse の出力結果がどのようになるのか解らないのが悲しいところです。

今回は iPhone4 対応の PDF プリンタが準備できたのでヨシとしておきましょうか。

ちなみに、僕の場合は、多分 MacOSX 上に PDF プリンタを準備したほうが圧倒的に早いしらくちんだったと自分でも思います。が、それだとあまりネタにならないしねぇ;-)。

非常に疲れた・・。ふぅ。

12月 142010
 

iOS4.2 の機能の目玉の一つ、AirPrint が HP の対応プリンタ以外のハードウェアでも利用できて、印刷できるらしい。と言うのが最近あちこちで騒がれています。例えばこれ。

ascii.jp の「OS XのプリンターをAirPrint経由で使う」
マイコミの「既存のプリンタで iOS AirPrint 印刷に対応する方法」

僕的には ascii.jp の記事のほうがラクだったのでそっちで試してみました。本文にあるとおりですが、/usr/share/cups/mime/airprint.types と言うファイルを作成して、その中に以下の行を書いたら MacOSX をリブート。

image/urf urf (0,UNIRAST<00>)

 
後は、システム環境設定の「共有」でプリンタ共有にチェックを付けて「全員 プリント可能」を選択するだけでで iPhone4 から AirPrint が利用できます。

AirPrint_2.jpg

ちなみに元記事では「認証ダイアログ」が出てきてしまう。と書かれていましたが「プリンタとファクス」の設定の所で [ネットワークでこのプリンタを共有] のチェックを2,3回付けたり外したりしてシステム環境設定を閉じれば、iPhone4 側では特に認証を聞かれることもなく印刷が可能になります;-)。

AirPrint_3.jpg

このブログで何回か書いていますが、僕はブラザーの HL-2040 を利用しています。iPhone4 のキャプチャでちゃんと認識できます。HP のプリンタでなくともこうして iOS4.2 の AirPrint が利用できるのですね。ぱちぱちぱち。
#ちなみに iPhone3G では AirPrint はまぁるで利用できません。メニュー自体がありません。あしからず・・。orz。

さて。これで終わったら、ただの記事のパクリですね。もうちょっと足を突っ込んでみましょうか。

そもそも、MacOSX では CUPS と言うプリントシステムを提供しています。Apple 謹製で、僕が普段利用している FreeBSD も CUPS が動作します。

以前のエントリで「CUPS で FreeBSD から簡単印刷。(MacOSX があればだよ)」というのを書いていますが、詳しくはそっちに譲ります。

MacOSX のシステム環境設定の「共有」で「プリンタ共有」の制御を行うのは、実は CUPS の設定を変更しているんですな。試しに http://localhost:631 にアクセスして「管理」タブの右側の「このシステムに接続されているプリンターを共有」のチェックのところを見ていると解ります。「共有」の「プリンタ共有」のチェックを外して http://localhost:631 の「管理」タブのページをリロードすると、チェックが外れたりします。

AirPrint_1.jpg

ブラウザとシステム環境設定の画面をキャプチャしたモノですがちゃんと見えるかな?

その時、/etc/cups/cupsd.conf にも実はこっそりと設定が入って、更にバックグラウンドで cupsd がリサスタートされるわけですね。ふむー。立派な GUI なこと。FreeBSD にもこーいう統合的な GUI が欲しいなぁ。KDE4 には無いんだけど、gnome にはあるのかなぁ?

ちなみに共有するかしないかチェックによって /etc/cups/cupsd.conf が書き換わるんですが、以下はその差分ですねー。

--- cupsd.conf.O        2010-12-14 02:17:05.000000000 +0900
+++ cupsd.conf  2010-12-14 02:17:24.000000000 +0900
@@ -1,19 +1,21 @@
LogLevel warn
SystemGroup admin
SystemGroupAuthKey system.print.admin
-# Only listen for connections from the local machine.
-Listen localhost:631
+# Allow remote access
+Port 631
Listen /private/var/run/cupsd
-# Show shared printers on the local network.
+# Enable printer sharing and shared printers.
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseRemoteProtocols
-BrowseLocalProtocols
+BrowseAddress @LOCAL
+BrowseLocalProtocols CUPS dnssd
DefaultAuthType Basic

-  # Restrict access to the server...
+  # Allow shared printing...
Order allow,deny
+  Allow @LOCAL
</Location>
<Location /admin>
</Location>

 
と、言うことで MacOSX っちゅーのは UNIX 知っている人でもむやみやたらに手で設定ファイル変更したらアカンよ。って感じなのでしょうかね。

それにしてもその昔、「プリンタ共有」ってのは samba で行い、smb.conf の中にプリンタ共有の設定を記述することにより行っていたのですが、MacOSX がベースになると CUPS 側でプリンタのドライバから共有まで一手に面倒見てくれるので、随分と変わったモノだ。などとなるのでありました。

Windows を利用している人でも、UNIX 系 OS や MacOSX がネットワークにある人は是非とも Bonjour をインストールしておきたいものです。って、 Windows7 版ではもうないんだっけか;-)。

さてさて。話がここで終わってしまうとこれまたどーも尻切れとんぼちっくなので FreeBSD での動作についてもちっくと書いておきましょうかね。

結論から言うと FreeBSD 上で動作する CUPS では AirPrint ができませんでした。

僕の知識が多分足りないのだと思います。思いますが・・。

簡単に行った手順を書いておきます。

1. まず、FreeBSD の CUPS に対応しているプリンタが無いので cups-pdf と言うプリンタを ports からインストールします。 CUPS 経由で印刷したものを PDF 化する “プリンタ” です。 firefox3 や KDE4 では「印刷」で「PDF に出力」ってのがあるので本当は必要無いのですけどね。 print/cups-pdf という ports です。

2. 続いて http://localhost:631 にアクセスして cups-pdf を「プリンタの追加」に登録します。「ロカールプリンタ」を選択し、ベンダは「Generic」を選択すればプリンタの準備は完了です。後は実際にアプリケーションから印刷してみます。印刷した時にできる PDF は /var/spool/cups/cups-pdf/ユーザ名/ に出力されます。

3. さて。プリンタの準備も整ったので、早速 AirPrint 対応してみましょう。一番上に書いた airprint.types というファイルを /usr/local/share/cups/mime/ に設置します。後、一応、/usr/local/etc/cups/ にも symlink しましょうかね。

4. cupsd・avahi-daemon・mdnsd を再起動 (restart) します。プリンタ共有しようとする場合、この三つのデーモンはセットですね。どれか一個が起動していない(hoge_enable=”YES” になっていない)と MacOSX のプリンタも共有できないです。その割りには MacOSX 側では avahi-daemon が動いている気配無いのにプリンタ共有できるんですよね。不思議だ・・。

で、自分が思っている設定が終わったので、早速 iPhone4 からアクセスするのですが、「プリタンーが見つかりません。」と悲しい状態になるのでありました・・。orz。

多分、 cupsd・avahi-daemon・mdnsd のうち、どれかの設定が悪いのだと思います。ログを見ていると認証というか、アクセス系のエラーが出ていたのでそっち方面の設定をしたら良いかもしれません。そもそも、僕の iPhone4 は自宅の無線 LAN に接続すると IPv6 でアクセスしているので、更に何か設定が必要なのかもしれません。

ちなみに、MacOSX も FreeBSD も cupsd・avahi-daemon・mdnsd は全て IPv4/IPv6 のデアルスタクで動作しています。

とまぁ、大体こんな感じで試したのですが、 FreeBSD で AirPrint をやるにはもう少し情報収集してから再度トライする必要がありそうです。せっかく MacOSX と同じ環境持っているんですしね。けどもまぁ、裏を返すと MacOSX で AirPrint できるんだからもういいんじゃね? ともなるんですが・・f(^^;;。

続編書きました。-> 「iOS4.2・AirPrint で体験する avahi。

11月 292010
 

このエントリーは参考になる人が、日本全国に何人くらいいるのだろう?みたいな感じです。

僕はかな入力の人です。メインで利用しているのは FreeBSD ですが、以前は Canna をかな入力で利用していました。それを ibus-mozc にしました。ibus-mozc は google 日本語入力の Linux 版と言うかオープンソース版なんですけども、こいつはことえりのキーバインドが利用できるです。

後、もう一個、僕は MacOSX もバリバリ利用しているのですが、こちらは ATOK for Mac の定額制を利用しています。キーバインドはことえりで、かな入力。

全てにおいて共通しているのが「かな入力」なのであります。

では、Windows7 ではどうしようかなぁ。と悩んでいたのですが、google 日本語入力 は Windows 版があって、しかもことえりキーバインドが利用できるので当初は喜んで利用していたのですが、最近、MS-IME の影響なのか解りませんがキー設定に [ことえり] を選択しても MS-IME のモードにかならないのでホトホト愛想が尽きてアンインストールしてしまいました。

原因はなんだろな?何かインストールされているものが原因で多分ことえり入力にならないと思うのですけどね。

で、Windows でことえりキーバインドできないか色々調べてみました。 ATOK for Windows はキー設定に「ことえり」が用意されていないんですね。がっかり。Mac 版があるのだから是非対応して頂きたいものです。宜しくお願いします。> JustSystems さん。

で、MS-IME のプロパティを見てみると・・。あれま。キー設定、つまりキーバインドの設定ってのは ATOK とか VJE とか選択できるんですねぇ。これは驚いた。で、[変更]ボタンを押すと色々細かい設定ができることが気がつきました。

MS-IME_1.jpg

それでは行ってましょうっ!! 題して

「MS-IME 2010 のキーバインド(キー設定)をことえりのかな入力と同等にする設定」

ちょっと長いか・・f(^^;;。

チマチマと変更してきます。インポート・エクスポートの機能があれば嬉しいのですけどねー。

大体これ位のキーが変われば良いかな。と言う感じがします。

「入力のみ」の項目 新しく設定するキーバインド
文字右 Ctrl+O
文字左 Ctrl+I
半角英数 Ctrl+;
全角英数 Ctrl+L
カタカナ Ctrl+K
ひらがな Ctrl+J
文字末尾 Ctrl+E

 
これくらい設定するとことえりのかな入力らしくなってきます。

MS-IME_2.jpg

ちょっと注意が必要なのは xkeymacs を利用してる場合でしょうか。Ctrl-K とかは xkeymacs にもって行かれてしまうので文字入力時は xkeymacs をオフにすると良いでしょう。後、Atrl-A は MS-IMEで default で行頭に設定されているので行末の設定が Ctrl-E になります。

Canna とか ことえりの Ctrl-I・Ctrl-O は使った事がある人なら解りますね。変換途中でカーソルを左右に移動するキーバインドです。

と、言うことでこれらの設定を施したらだいぶ日本語が打ちやすくなりました。一番嬉しいのは Ctrl+; でしょうか。MS-IME を利用している人は F10 とかブラインドタッチで押せるのでしょうか? まぁ、この辺りは「かな入力」しているので特殊なキー操作も必要になっているとは思うのでけどねぇ・・。

それにしても全ての IME において同じ入力形式が選択できるのは本当に嬉しいものです。これでますます Windows7 使う機会が増えるか?:D:D。

ってーか。 MacOSX の Microsoft Office 2011 のキーバインド、なんとかなんない?ひどすぎて使う気起きない。Windows7 上で xkeymacs 利用してベコベコ打ったほうがよっぽど MacOSX に近い操作感だよ・・。

なお、Windows7 x64 で動作する xkeymacs についてはこちらを参考にしてください。

http://twitter.com/kikairoya/statuses/10926482489

ありがとうございました。助かりました。