10月 262011
 

ウェブで検索すると、もう既にたくさんの人がこの題材で色々書いているようですね。なのであえて書く必要も無いのではないか。と、ちょっと思うのですが、僕も書いてみます;-)。

ちょっと変わった方向性から書こうと思っています。

まず、xterm とか emacs などは X11 のリソース設定しているのですが、今回はそれについては一切は書きません。コマンドプロンプトから以下のコマンドを投入し、リソース情報を全てさっぱり削除しそこから xterm を起動します。

% xrdb -remove

 
このあと、プロンプトから xterm を起動します。まずはオプション無しで。すると以下のような状態で xterm が起動すると思います。そして jman ls と打った状態です。

xterm-default.png

なお、このブログでは写真のサイズは横幅 500 ピクセルと決めているので、今後は全て横幅 500 ピクセルで表示します。上記のキャプチャのみは横幅が 488 ピクセルなのでちょっと小さめ。

まぁ、半角文字も日本語文字も Fixed フォントで表示されているので一応は無事に起動して、無事に表示できるようです。

問題はここからで、せっかくなので自分好みのフォントを利用したい。はたまた xterm は pango やcairo をリンクしているのでアンチエイリアスを有効にしたい。などと思い、色々な人が格闘しているわけですね。
しかし、全くダメ・・。利用に耐えられない表示のしかたをしてくれます。これについて、皆さん色々書いているんですね。

xterm 自体は X11 のリソースとは別にオプションでフォントを指定できます。~/.Xresources では XLFD でフォントを記述するのですが、 -fa オプションでは fc-list で表示されるフォント名を指定します。

以下、2,3 のフォントを指定したときのコマンドラインとキャプチャを掲載してみます。

-.フォントサイズは 10 で画面の大きさは 80×30 です。
-. LANG は ja_JP.UTF-8 です。

o.メイリオフォントを指定して起動

% xterm -fa メイリオ -fs 10 -geometry 80x30

 
xterm-meiryo_500x400.png

o.Osaka の UNICODE フォントを指定して起動

% xterm -fa osaka_unicode -fs 10 -geometry 80x30

 
xterm-osaka_unicode_500x400.png

osaka_unicode は比較的良い線行っているんですが、もうひといきっ!! って感じ・・。

それにしても皆さん、この表示を嫌うんですな。カーソールの四角は全角四角ちっく。あげくの果てには全角文字の間に半角スペースが入る。非常に横長な xterm の起動画面になってしまう。

ports から xterm を make するときには WITH_WIDE_CHARS=true を指定する必要があるのでこれは有効になっています。そして、xterm でマルチバイト、CJK フォントを正しく表示するためのオプションとしては -cjk_width ってのがあるのですが、この -cjk_width がまるで有効になっていない。と、言うことですね。

いやぁ・・。まいったまいった・・。

UTF-8 を扱う場合、日本語の表示には 4Byte 必要なのだそうで、その影響が出て文字の間に半角スペースが入るとか入らないとか。考えてみると MySQL で UTF-8 を利用すると Key のサイズが既定値未満なはずなのに「キー値が長すぎる。」とエラーになる時があるのですが、その現象とも確かに似ているような似ていないような気がしますね。

で、本当に正しく表示できんのかい?とか思い、自分の持っている(インストールされている)フォント全てを xterm に指定して確認してみました。

% fc-list | wc -l
487

 
ふむ。僕の FreeBSD には 487 個のフォントがインストールされているようですね;-)。では、以下のコマンドを実行してコマンドイメージを出力し、早速確認してみましょう。

% fc-list | awk -F, '{print "xterm -fa \"" $1 "\" -fs 10 -geometry 80x30 &"}'

 
これを | sh -X とかするととんでもないことになるので、5,6 個ずつ起動することにします。

確認してみたところ、有名どころなフォントは全て全滅でしたね。正しい表示を全くしてくれません。
あと、日本語を持っていないフォントは日本語部分は表示してくれない。コード自体を持っていてもフォント自体が無いフォントは豆腐が表示されます。

そんな中、一個だけありましたよ。正しく日本語を表示してくれるフォントが;-)。

% xterm -fa "細明體" -fs 10 -geometry 80x30

 
xterm-03_500x400.png

おぉ。ちゃんと日本語が表示できて、文字と文字の間に半角スペースが入ることなく表示してくれていますね。

「けっ。そんなこと言ったってオメーの持っているフォントだろっ。」とか思うんですが、このフォント名で検索してみると、あややややや? このフォントはフリーなの? (@_o)。
いやね。自分自身、このフォントを、いつ、どー言うタイミングでインストールしたか全く覚えてないんですよf(^^;;。

以下のサイトからダウンロード可能なフォントのようです。

http://ja.cooltext.com/Download-Font-細明體+MingLiU

ダウンロードしたあと、インストールして、そのあと fc-cache すれば利用可能になるかと思います。

ちょっと明朝体チックでそれでいて色が薄いので常用に耐えられるかはちょっと疑問ですが、一応は正しい表示をしてくれてアンチエイリアスが有効になって xterm が起動してくれます。

あと、この 細明體 ってフォントは上記サイトでは「日本語フォント」ではなく「中国語フォント」のカテゴリの中に入っているんですね。 中国語のフォントの中に日本語の文字のパタンが埋め込まれている、なんともすごいフォントなのでしょうなぁ。

と、言うことで、今の段階の xterm は、もしかしたらフォント側で対応できていれば綺麗に表示できるんではないかなぁ。と思った僕の考え、合ってる?

あと、「僕も私も xterm で表示が綺麗になるフォント持っているよー。」ってのがあったら教えて頂けませんでしょうか。等幅ゴシックなフォントがあれば嬉しいなぁ。と、ちょっち思っております;-)。

10月 242011
 

いやね。とあるタイミングで ports を csup したら KDE のバージョンが KDE-4.6.5 から KDE-4.7 系にアップデートしていたので「お。新しい KDE4 がリリースされたっ!!」とか思い portupgrade -arR しようかと思ったのだけど FreeBSD 自体も 9 系が CURRENT から RELENG_9 になったので、せっかくだから RELENG_8 から RELENG_9 にしてしまえーーっ!! ってことで、 NotePC にインストールされている FreeBSD を FreeBSD 9.0-RC1 にしてしまったのでありました。

バージョンアップしたのはデスクトップと NotePC の両方。で、今回の記事は ThinkPad X100e についてになります。

それにしてもこの NotePC、夏はてんでダメですな。温度が上がりすぎて勝手に shutdown が走ってしまう。裏を返すと正常に ACPI が動作している。とも言うんですが、Windows7 なんかは夏場の暑い時期だと起動後五分も持たずに shutdown、FreeBSD でも hw.acpi.thermal.tz0._PSV=80.0C とか設定入れて CPU クロックを落としたりするんだけど、自動 shutdown してしまう。メッセージを出力しつつ・・。orz。

熱い CPU っちゅーのはツライですなぁ・・。

と、言うことで本題の suspend/resume についてですが、以前、一回記事にしていますよね。そのとき試したのは RELENG_8 だったのだけど、今回は RELENG_9 でトライっ!! って感じ。で、見事に supend/resume してくれます。わーーいっ!!

そもそも ThinkPad X100e は無線 LAN カードに if_iwn を利用しているのですが、こいつがまた FreeBSD では動作しない・・。orz RELENG_8 では、以前は一時的に動作していたのに 2011/07/05 くらいに改修が入ってそれ以降は動作しなくなってしまった・・。RELENG_9 でも試したんだけどやっぱり動作しない。

しょーがないので僕の場合、無線 LAN は USB の if_run を利用していたのであります。が、こいつは suspend/resume の時に悪さすることが解りました。

suspend/resume するマシンの僕の環境は以下の通り

0. 僕の環境
・FreebBSD 9.0-RC 2011/10/19 10:00 頃に csup して来たものを利用
・Xorg-7.5.1 + dri-7.6.1,2 + xf86-video-ati-6.14.2
・KDE-4.7.2 しかし、なぜだか解りませんがデスクトップ効果が有効になりません・・。orz

では、実際に suspend/resume する時の手順を以下に書いてみましょう。

1. Xorg の画面を抜ける
X が起動していてその上で動作している端末上で acpiconf -s3 や KDE4 の[スリープ]を押しただけだと suspend はしますが resume してくれません。X を起動している人は Ctrl+Alt+F1 などでいったん X を抜けてコンソールの画面を表示させます。

なお、sysctl にはこれを自動でやってくれる hw.syscons.sc_no_suspend_vtswitch という MIB があるのですが、これが有効になってないんですよねぇ・・。なので手動で X を抜けます。

2. とりあえず無線 LAN の利用を停止する
僕の場合は run0 で認識している USB NIC を引っこ抜きました。その後で acpiconf-s3 とたたきました。すると suspend してくれます。その後、フタを閉じて開くと PC と言うか OS が目覚めるのでリターンキーを 2,3 発叩きます。するとコンソールが現れると思います。sync 連打して無事を確認します。おーー。 resume しましたねぇー。パチパチパチ。

ここで run0 で認識する USB NIC を接続すると無線 LAN が利用できるようになります。後は Ctrl+Alt+F2|3|4 などを押して X を表示させれば無事に X の画面が表示してくれると思います。

RELENG_8 の頃はコンソールのプロンプトが返ってきても X の再表示ができなくて drm.ko が暴走していたんだけど、 RELENG_9 ではそんなことは無いようです。それが大きな違いでしょうかね。

3. USB NIC は実はくせ者?
さてさて、上記 2. で suspend/resume が利用できるようになりました。もう一回、上記の手順で suspnd/resume すんべかと思い試してみると・・。あいや。orz resume は一回限り有効で、二回目の resume ではコンソールが凍り付きますね。

この場合は、無線 LAN の利用をきっぱりとあきらめましょう。一回目の suspend 前に X の画面を抜けた後、USB NIC を引っこ抜きます。その後で if_run を kldunload します。これがミソです。

有線 NIC を利用する場合、つまり if_re を利用している限りでは何回も suspend/resume してくれます(僕が試したのは連続四回ですが;-)。

そう考えると usb か、 if_run のどちらかに問題があるような気がしないでもないですが、今の段階ではカーネルがそれらしいログを出力してくれないのでちょっとまだ原因がわかりません。また、if_run 以外の 無線 LAN ドライバではどうなのか?もちょっと解りません。

もし if_iwn が動作したとしたら、それは多分 PCI バスに接続されているので、なんか動作しそうな感じはしないでもないんですけどねぇ。

以上は、僕が持っている ThinkPad X100e で RELENG_9 な FreeBSD を走らせたときの suspend/resume の動作になります。
けども RELENG_9 も生ものなので今日動いたものは明日は動かないかもしれない部分も多々あるので、今の環境を保持しておいたほうが良いのかなぁ?

どっちにしても FreeBSD において supend/resume したのは実に CASIO FIVA MPC-206 以来の快挙なのであります。嬉しいですなぁ;-)。わーーいっ!!

後はデスクトップ機で suspend/resume してくれるとすんげー嬉しいんですけどね;-)。

10月 152011
 

この間、ちょいとユーラシア大陸のすみっこのほうをうろついてきました。俗に言う「極東ロシア」という辺りですけども。ハバロフスク・ウラジオストク辺りですね。

旅の紀行について別のブログに書いたのでそちらを参考していただくとして、今回の旅では iPhone4 を持っていたのでそのことに付いて書いてみたいと思いますが、ロシアのキャリアには接続していませんf(^^;;。

まず、ロシアに入国したら iPhone4 をただちに機内モードにしました。そして、Wi-Fi のみをオンにして準備完了。ロシア国内、まぁ、ハバロフスクとウラジオストクにしか行ってないのですけども。この二つの場合、泊まったホテルでは部屋の中で無料で無線 LAN が利用できました。なので 3G キャリアには接続しなかったんですけどもね。町中を歩いていると「Free Wi-Fi」って看板をそれなりに見つけるのでまぁ、なんとか大丈夫な感じでしょうか。

で、一番困ったのがバッテリー。今回はロシアのコンセントは持って行ってない(と言うか持ってない;-)ので、電池をたくさん持って行ったんですね。最悪電池で充電しよう。みたいな。

あ。成田に向かう青いスカイライナーは座席に電源コンセントがあって利用できるので日本用のコンセントは持って行くと良いかもしれないです。

と、言うことで今回は iPhone4 の充電についてのお話です。まずは写真を一枚。

IMG_2442_iPhone4_Power_1.jpg

これはアキバで 100yen で買ってきた電池ボックスで USB メスコネクタが付いているヤツです。この電池ボックスと iPhone4 を直接接続して充電を試みましたがダメでした。
iOS4 の場合は 「この機器を利用して充電はできません。」みたいなメッセージが出力されるのですが、 iOS5 では何も表示されないですね。ただ単に利用できないだけみたい。
ちなみに iPhone3G では利用できて充電することができます。

さて。困った。僕は iPhone 用に一個だけバッテリーパックを持っているのですが、それでは到底三泊四日の旅に耐えられはしないのであります。

で、しばし悩みつつも三日くらい過ぎるのであります。もっとでかいバッテリパック買うべきか、ロシア用コンセント買うべきかなどなどと。

ところがパッとひらめきました。それが次の写真。

IMG_2437_iPhone4_Power_2.jpg

USB 電池ボックスでバッテリーパックを充電する案です。これだと iPhone4 の影響を受けずに充電ができそうです。

まず、バッテリーパックを充電します。iPhone4 のバッテリが少なくなってきたら バッテリーパックで iPhone4 に電気をあげます。バッテリーパックが空になったら次に USB 電池ボックスを利用してバッテリーパックを充電します。うひひ。完璧;-)。

次の写真はもっとすごい;-)。

IMG_2439_iPhone4_Power_3.jpg

数珠つなぎとかカスケードとかデイジーチェーンとか、言葉はいろいろありますが、iPhone4 -> バッテリーパック -> USB 電池ボックス と接続して充電をするのであります;-)。

これだと特に機器的な問題も無く電池で充電できるのであります。そして安上がりっ!! おーー;-)。

今回の旅では写真のバッテリーパック一個と充電式単三電池八本持って行きました。これで何とか過ごせたかなぁ。と言う感じがします。

ちなみに充電式電池がない場合でもアルカリ乾電池とかを現地調達すれば良いので、一応無尽蔵に充電はできるような気がします。

僕が今回利用した充電式単三電池での充電ですが、二本利用してだいたい 20% 増えれば良いかなぁ。と言う感じでした。海外では 機内モード にしているので 3G は利用しなかったので iPhone4 自体のバッテリーの持ちが良かったような気がします。

と、言うことで、今回のまとめ;-)。

iPhone4 で利用できない充電用機器でもバッテリーパックに充電しながらだと利用できる。

10月 092011
 

「CPU コレクション」の第46回目ですが、前回からちょうど Mac で利用されていした CPU の掲載をはじめたばかりだったのに 10/06 に非常に衝撃的なニュースが朝一番で伝わりました。jobs がいなくなってしまった。

僕が Apple 製品を一番最初に手にしたのは iPod mini。その後は iPod Touch(1G) -> iPhone3G -> iPhone4。でもって Mac のほうは Mac mini(PowerPC G4) -> iBook(PowerPC G4) -> MacBook(初代 Core2duo 版) -> MacBook (角が丸くなったヤツ)と、それなりに Apple 製品を利用していたつもりだったので、非常に残念でなりません。ご冥福をお祈りしたいと思います。

と、言うことで、今回登場する CPU は PowerPC G3 の次に来ますね。 PowerPC G4。 PowerPC G3 は IBM 製なのですが、PowerPC G4 はモトローラ製のものが Mac で利用されました。アーキテクチャは一緒なのですが、製造メーカが違うと言うことですね。

PowerPC_G4_1.jpg

こちらが CPU ボードの表側。CPU コアの周りにモアモアっとしたものがあります。なので、セラミック上に書かれた「MOTOROLA」と言う文字が見えません。しかし、CPU ボートの隅っこのほうにはちゃんと “APPLE COMPUTER INC” と書かれてるんですな。

こちらは Core のアップの写真。

PowerPC_G4_2.jpg

利用されていた Mac は PowerMacintosh G4/AGP 用らいです。実はこの CPU もヤフヤクで購入しました。 G3 が手元にあるんだから G4 も置いとく必要あるべ。と、言う感じで;-)。

こちらが CPU の裏側になります。

PowerPC_G4_3.jpg

白い部分がソケットになります。 当時の Mac の CPU というのはサードパーティからアップグレードキットとか出ていて、ソケットにサクっと差し替えるとパワーアップできていたんですね。Mac OS 的には 9.4 より以前の OS のバージョンになります。

で、サードパーティから出ていた CPU にはフロッピーが一枚ついていて、ドライバーをインストールする必要があった。そのドライバが MacOS X では利用できなくなって、サードパーティは MacOS X 用も出したりしていたんだけどそのうちにイヤになってやめてしまった(10.2 辺りまではドライバ出していたりしたかな?)。みたいな感じですね。

実は僕も古い Mac を一回使った事があって、友人から 30,000yen で譲り受けた Mac はまさしくそんな感じで。筐体はグレーのヤツでタワー型なんだけど、横がベコンと出っ張っているモデル。けっこうダサい感じだった;-P。

と、言うことで、実は PowerPC の G3/G4 ってのは使ったことがあるわけなのであります。

今後も Apple からすばらしい製品が出ることを切に願うのであります。そして、jobs。安らかに。

10月 022011
 

「CPU コレクション」の第45回目です。 MIPSSPARC  と続いたら、ここは当然 DEC Alpha か?と、皆さん誰もが思ったことでしょう。しかし、持ってないのですよー。僕も是非とも手に入れたいと思っているのですが・・。頑張って入手したいと思います。

と、言うことで、次に非 IA な CPU として登場するのは IBM の PowerPC です。今回は G3 になります。

この CPU は Apple の Power Macintosh 7500 用の CPU になります。考えてみると MIPS も SPARC も UNIX が動作していた CPU ですね。で、Apple は Mac OS X で UNIX と名乗るようになり、今や世界最大の UNIX ベンダとなっているわけであります。そー考えると、この CPU も UNIX が動作している CPU ということになりますね;-)。

こちらが全体写真。

PowerPC_G3_1.jpg

ファンレスのヒートシンクとか台座とか全部取っ払って CPU のみにしたものになります。右上の黒いパーツはデップスイッチになっています。何に利用するのでしょうかねぇ。

で。こちらが Core 部分の拡大写真。

PowerPC_G3_2.jpg

Core のセラミックの部分にはちゃんと IBM って書いてありますなぁ。

でもってこちらが裏側。

PowerPC_G3_3.jpg

デップスイッチの設定が書いてあります。CPU クロックとか、倍率を変更するための説明文でしょうかね。 PC の場合だと昔はマザーボード側でやっていましたが、 PowerPC では CPU ボード側にその機能がついている。と言うことですね。

この CPU はヤフオクでゲットしました。この頃、僕はまだ Mac を利用していなかったのでねぇ。 CPU を集め始めて、 MIPS とか SPARC が手に入ってしまうと、もっと他にも色々なものを手元に置きたい。となってしまうので、ついつい購入してしまった。というわけなのであります。

ちなみにこの CPU って Mac 専用なのかなぁ? IBM の UNIX マシンにそのままサクっと刺せたりするのかなぁ?その辺り、ちーとも解らないのでありますが・・。

そんなこんなの PowerPC G3 なのであります;-)。