10月 152010
 

前回のエントリーで「ThinkPad X100e がサスペンド/レジュームしない。」って書いたんだけど、FreeBSD/amd64 8.1-STABLE 自体はもうバリバリサスペンド/レジュームします。ただ、X の画面がエラー吐いてちぃとも復活しない。って感じなのであります。

ati ドライバ(の radeon)や radeonhd を試したり、後 vesa も試しました。 vesa の場合はレジューム後に X の画面が戻ってきて X が使える場合もあります。ただ、サイズが 1024×768 なのとレジューム後に利用はできるのだけどログを吐きまくっている状態なので使い続けるのはどうかな。などと思うのでありました。

こうなったら xf86-video-ati の radeon ドライバでバグが治ってくれるのを待つばかりですが、せっかくなので、絶えず最新版が利用できるような環境を用意しておこうなどと思ったのであります。

http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/

この辺りを見ていると、コツコツと更新はされているようです。で、snapshot は “master” と言う文字列が付加されて公開されているようなので、それ用の ports を作ってみました。以下に転がしておきます。

結構トリッキーなのでコミットはしません。また、もし利用するのであれば ports に詳しい人限定です;-)。
後、 automake-1.11.1 が必要です。利用する場合には portupgrade して automake のバージョンを上げてください。

http://www.icmpv6.org/Prog/FreeBSD_ports/ports-xf86-video-ati-master.tgz

このファイルをダウンロードしたら /usr/ports/x11-drivers/ 辺りに展開します。 そーすると xf86-video-ati-master/ と言うディレクトリができたかと思います。

ちなみに ports の雛形は x11-drivers/xf86-video-radeonhd-devel を参考にさせてもらっています。nork さんありがとー;-)。

# cd /usr/ports/x11-drivers
# tar xvzfp ~/ports-xf86-video-ati-master.tgz
# cd xf86-video-ati-master
# rm /usr/ports/distfiles/xorg/driver/xf86-video-ati-master.tar.bz2
# make NO_CHECKSUM=yes configure
# cat patch-man_Makefile | patch
# make NO_CHECKSUM=yes install

 
こんな感じですかねー。man がインストールできないので patch-man_Makefile を実行しますが、ports の Makefile で吸収することができませんでした。ダサくてすみません・・。

後、絶えず最新版の xf86-video-ati-master.tar.bz2 を取ってくるので make NO_CHECKSUM=yes します。 distinfo はオマケみたいなものですが、 xf86-video-ati-master.tar.bz2 がダウンロードできない時は distinfo の SIZE を書き換える必要があるかもしれません。

一回インストールしている場合は make deinstall してから make reinstall になると思います。

 
ThinkPad X100e のグラフィックスチップは RADEON HD 3200 の RS780M になります。フツーであれば x11-drivers/xf86-video-radeonhd を利用するのですが、最近の ATI ドライバには radeon ドライバが吸収されていてこっちのほうが進んでいるようです。

xf86-video-ati の ports は 6.13.0 なんですが、上記 URL が示すとおり最新版は 6.13.2 になります。 x11-drivers/xf86-video-ati の Makefile の PORTVERSION= を 6.13.2 にして make NO_CHECKSUM=yes install って手もあります。この場合 xorg.conf のドライバは Driver “radeon” にすると良いです。

で、xf86-video-ati のドライバを使うと何が良いか?と言うことなのですが、僕は持ってませんが DH5000 番台のグラフィックカードが利用できるみたいなんですね。

最新の ATI のグラフィックスチップを利用している人は xf86-video-ati の 6.13.2 もしくは開発中版の master を利用して、トライしてみるのもひとつの手かと思います。

ちなみに ThinkPad X100e の RADEON HD 3200 は前のエントリでも書きましたが、レジューム後に以下のメッセージが出力されて、利用できなくなります。

info: [drm] wait idle failed status : 0xA0003030 0x00000003

 
この文字列で gogo ってみると以下の URL が出てくるので、問題点については認識されていると思うので、早く改修されて、まずは master 版で提供されないかなー。

https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/608665

などと思っているのでありすます。

これからは一週間に一度位の割合で xf86-video-ati を更新するのであります;-)。

あ。もっと美しい ports を書いてくれる方、絶賛募集中;-)。

10月 072010
 

ThinkPad X100e の三回目です。これで最後になるか?! と、言う感じなのですが、僕がこの X100e を購入した後に Lenovo から新製品が出たり DELL から AthonII X2 な CPU の NotePC が出たりしてちょっと悲しいことが続いている、つまりはまぁ、僕が購入したタイミングが非常に悪かった。と言うことになるのですけども・・。orz。

と、言うことで今回は X100e で FreeBSD を利用した時の Suspend と Resume についてのお話です。「ThinkPad X100e で FreeBSD。気がついた点。」のエントリーでは「サスペンド・レジューム動きません。」とキッパリと書いたのですが、色々試したら、X 無しだと Suspend して Resume することが確認できました。FreeBSD もドンドンと進んでいると言うことですねぇ・・。大変失礼しました・・。

試した方法ですが、全てのカーネルモジュールを unload します。でもって必要最小限のカーネルもシュールのみで起動します。以下はそのモジュールのリストです。

kernel
acpi_ibm.ko
random.ko
if_re.ko
miibus.ko
procfs.ko
pseudofs.ko
ipfw.ko
libalias.ko
radeon.ko
drm.ko
agp.ko

 
ファイルシステム系のモジュールはあってもなくても大丈夫でしょう。ネットワーク系モジュールはリモートから ssh する用です。後、random もですね。その他に X 系のモジュールをロードしました。
僕は ATA 系周りはモジュールにしていません。

この状態で色々試したわけです。acpi_video は動作が怪しい kldunload acpi_video するとマシンがフリーズするので利用しないことにしました。後は sysctl の設定ですが、 /etc/sysctl.conf には以下の設定を入れました。

#hw.acpi.standby_state=S3
hw.acpi.suspend_state=S3
hw.acpi.thermal.min_runtime=300
hw.acpi.battery.info_expire=30
hw.acpi.power_button_state=S5
hw.acpi.sleep_button_state=S3
hw.acpi.lid_switch_state=NONE
hw.acpi.reset_video=1 hw.syscons.sc_no_suspend_vtswitch=1
vfs.usermount=1 hw.snd.default_unit=1

 
hw.acpi.reset_video と hw.syscons.sc_no_suspend_vtswitch を 1 にするとレジューム後に画面が表示されるようになります。

まずは X を起動せずにコンソールから acpiconf -s3 と叩くと「ヒューン」とか言ってスリープします。でもってパワーボタンはブリンクします。その後しばらくしてからパワーボタンを押すと。おぉーーっ!! 無事に復活するのであります。リモートからの ssh も接続が復活していてコマンドも受け付けてくれます。また、コンソールからもコマンドがバシバシ打てるのであります。

この辺りはミョーに感動です;-)。

と、言うことで、次に X を起動して KDE4 でログインしてから acpiconf -s3 を試してみます。スリープした後にパワーボタンを押すとバックライトは点灯するのですが、X の画面が出てきません。

ssh は利用可能なので、dev.acpi_ibm.0.lcd_brightness や dev.acpi_ibm.0.events 、そして hw.acpi.reset_video などの値を変更してみるのですが、復活する兆しは全く無いのでありました。

しゃーないので shutdown します。

次に試したのは X を起動して KDE4 でログインした後に CTRL-ALT-F1 して X の画面を一旦閉じてコンソールの画面にします。この時、コンソールではベコベコ文字が打てる状態なので acpiconf -s3 します。でもってサスペンドした後にパワーボタンを押すと、おぉっ!! コンソール画面は無事に返ってました。ここでコマンドもベコベコ打てます。

では、さっき CTRL-ALT-F1 しているので、今度は CTRL-ALT-F2 や CTRL-ALT-F3 を押して X の画面を戻すべ。とか思うのですが、ここで再度ブラックアウト。orz バックライトが点いているだけにちょっと悲しい状態なのですが、レジューム後に X が表示されることはないのでありました・・。orz

ちなみに、この状態の時、drm.ko は膨大な量のログを吐きまくっております。以下のようなログなんですけども。

info: [drm] wait idle failed status : 0xA0003030 0x00000003

 
なので問題は drm.ko 側にあるのかなぁ?などとも思えるのですが、vesa.ko でやったらどうなんだ?とか、色々あるわけなんですけどもね。

とりあえず、xf86-video なドライバは radeonhd と radeonhd-devel を試してみましたが、とちらも症状は一緒でした。とほほ。vesa ドライバでも試してみましたが、vesa の場合、ちょっと症状が変わって、壊れた X の画面が表示されたりましたが、X がまともに使える状態ではありませんでした。vesa の場合は drm.ko とか kldunload したら症状変わったりするかなぁ・・。

と、言うことで、X 無しでは無事にサスペンド・レジュームすることを確認しました。ただ、必要最低限のカーネルモジュールをロードしての確認なのですけどね。そもそも、X が動かないので、これ以上、カーネルモジュールをロードしてテストしても仕方がない。と言うのが素直な僕の感想なのですけども・・。

ThinkPadX100e は Radeon なんだけど、Core2Duo の Intel 系のグラフィックスチップの場合、無事に drm.ko も動作するのかなぁ? それがちっくと疑問なのですけども。

10月 052010
 

さて。ThinkPad X100e を購入して色々試している最中です。「ThinkPad X100e で FreeBSD。気がついた点。」のエントリーで書いた通り、if_iwn が動作しないので手元にある USB 接続の WiFi デバイスを試してみました。

手元にあるのは二つ。

MELCO WLR-UC-G
PCI GW-US300MiniW

上の MELCO WLR-UC-G は Ralink の 802.11a/b/g に対応した RT2500W のチップを載せています。こいつは FreeBSD 8.1-STABLE においては usbdevs にエントリが無いのでパッチを書きました。以下の URL にパッチはあります。

http://icmpv6.org/Prog/FreeBSD_patches/MELCO_WLR-UC-G_8.1-STABLE.patch

そして、このパッチは send-pr したので近いうちにパッチを適用せずとも利用できるようになるのでは。と思います。
なお、MELCO WLR-UC-G は ディップスイッチで AOSS(AP モード)とクライアントモードの両方に対応していますが、USB の deviceid は両方とも登録しておきました。

下の PCI GW-US300MiniW は 8.1-STABLE にはドライバは用意されていますが、man ページが存在していないようですね。if_run で認識するデバイスです。 if_run は Ralink の 802.11a/b/g/n に対応した RT2700U / RT2800U / RT3000U のチップに対応したデバイスです。

if_rum_run_0.jpg

では、FreeBSD/amd64 8.1-STABLE で利用できるのか? 検証した結果をちょっと書いておきます。

まず、if_rum の MELCO WLR-UC-G ですが、パッチを適用して kldload if_rum した後に USB に接続すると無事に認識します。認識するとこんな感じになります。

ugen2.2: <Buffalo> at usbus2
rum0: <Buffalo WLR-UC-G, class 0/0, rev 2.00/0.01, addr 2> on usbus2
rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528

 
今回は一番簡単な wep で接続しています。全ての機器はこれで利用するようにコマンドを投入しました。rum0、run0 とオンボードの iwn0 は以下のコマンドで検証しています。

# ifconfig wlan0 create wlandev rum0
# ifconfig wlan0 ssid SS-ID wepmode on wepkey 0x313131 weptxkey 1 up
# dhclient wlan0

 
パッチ適用後の MELCO WLR-UC-G はこれで無事に動作することを確認しました。DHCP サーバからアドレスを取得して、ネットワークに接続できることを確認しました。ただ、問題もまたあって、どうやらマルチキャストパケットが通らないようです。

最近の FreeBSD と言うか KDE は mDNS が動作していて、Apple の Bonjour などと連携してプリンタが利用できたりするんですが、 mDNSResponder が以下のメッセージを出力し正常に動作していないように見えます。あれま・・。orz。

mDNSResponder: mDNS_AddDNSServer: Lock not held! mDNS_busy (0) mDNS_reentrancy (0)

 
ユニキャストなどが無事に通信ができるデバイスなだけにちょっと残念です。ちなみに mDNS 関係のソースは追ってないのであります・・。

次に if_run の PCI GW-US300MiniW についてですが、僕は 9-CURRENT を追っかけていないのでよく解らないのですが、 8.1-STABLE に man が無いと言うことはまだ STABLE に降りてきて時間が経ってないと言うことなんでしょうかね?

kldload if_run した後に USB に接続すると、既にエントリーが登録されているようで特にパッチを書く必要もなくサクっと認識しました;-)。

ugen2.2: <Ralink> at usbus2
run0: <1.0> on usbus2
run0: MAC/BBP RT2860 (rev 0x0102), RF RT2820 (MIMO 2T2R), address 00:90:cc:fd:86:e7
run0: firmware RT2870 loaded

 
上に書いてある ifconfig コマンドを投入し、こちらも wep で動作確認します。run0、wlan0 ともに status: associated になっているのですが、DHCP でアドレスをもらうことができませんでした。orz。

パケットが全く外に出て行ってない感じで手動で IP アドレスを付加して ping を打ってもまぁるで利用できない状態なのでありました・・。orz。

後、run0 で気になったのは if_run のコードをチロっと見てみると 802.11n に対応しているコードが入っているようです。でもって、今回接続したPCI GW-US300MiniW は 802.11n に対応しているデバイスなのですが、こいつは 802.11g で認識してしまいました。あぁれぇ・・。

ドライバがアップデートされるのをちっくと待ちましょうかねぇ。

さてと。ThinkPad X100e に付属の fi_iwn が利用できない。USB の if_run が利用できない。USB の if_rum は利用できるみたいだけどマルチキャストがどうもあやすぃ。みたいな感じとなりました。さてと、どうすっかなぁ・・。

9月 282010
 

前回のエントリーで ThinkPad X100e 買いました−。っての書きました。でもって Windows7 x64 と FreeBSD/amd64 8.1-STABLE が動いているわけですが、今回は FreeBSD での動作についてちょっとまとめてみたいと思います。

1. サスペンド・レジューム動きません。
acpiconf -s3 で寝ることはできます。パワー LED もちゃんとブリンクするので「お。寝たか?」とか思うのですが、電源投入するとそこでフリーズします。 s5 も動きません。
FreeBSD の サスペンド・レジューム は SMP カーネルの場合、コードがスパっと抜け落ちているそうなので絶対に動作しないのでありますね。はい。ただ、シングル CPU カーネルの場合は動作するのかなぁ?試していませんし、試そうとも思いませんが・・。

2010/10/19 加筆
サスペンド・レジュームについては「ThinkPad X100e を FreeBSD で Suspend/Resume。」を参照してください。


2. 無線 LAN if_iwn は動作しません。
ThinkPad X100e は AMD のアーキテクチャなのに無線 LAN 周りは Intel のセントリーノ技術を使ってイいるんですね。利用しているチップは if_iwn 対応で Intel(R) PRO/Wireless 6250 と、言うヤツです。これと USB 接続の WiMAX 対応チップがセットになったヤツらしいのですが、以下のメッセージが出力され動作しません。

iwn0: iwn5000_send_calibration: could not send calibration result, error 22
iwn0: iwn_init_locked: could not initialize hardware, error 22

 
if_iwn.c のソースコードをチロっと眺めたところ、本来であれば iwn6250 版台(ファームウェア的には 6050 かなぁ?)なのに if_iwn.c のコード的には iwn5000 のファームウェアで動いているっぽいのでその辺りが影響しているのかもしれません。

なお、Intel(R) PRO/Wireless 625 は 802.11n に対応しているので 300Mbps 出る(論理値)のですが、ドライバ側では 802.11a/b/g にしか対応してないので 54Mbps しか速度が出ません。コード的には #if 0 って部分ですが、更に必要な define が無いのでどうしようもない状態・・。

3.サウンドチップは特殊でした。
NotePC 的にはスピーカがついているのにそこから音は出ない。けど、イヤホンジャックにヘッドホンを接続すると音が出ている。あれあれあれ?って感じですが、cat /dev/sndstat してみるとデバイスが二つ認識しているようです。

$ cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: <HDA Conexant CX20582 (Pebble) PCM #0 Analog> (play/rec)
pcm1: <HDA Conexant CX20582 (Pebble) PCM #1 Analog> (play/rec) default

 
なんとっ!! pcm1 がスピーカ側のデバイスで、pcm0 がヘッドホン側のデバイスです。普段は sysctl -w hw.snd.default_unit=1 しておいて、ヘッドホンで聞く時は hw.snd.default_unit=0 する必要があります。

これは KDE-4.5.1 の Kmix (サウンドミキサーアプリ)のキャプチャですが、それぞれのデバイスのためにボリューム(「OSS Audio Mixier」ってヤツのタブ)が二つあります。ヘッドホン用とスピーカー用ですね。いやぁ。ちょっと驚き。最近の NotePC ってみんなこうなのかな?

thinkpadx100e2_1.png

mplayer とか立ち上げて映画とか見ていた場合、最初はスピーカーで聞いていたけど、ヘッドホンにしたい場合は sysctl -w hw.snd.default_unit=0 とか打つ必要があります。てもって音の出力先が変わったので mplayer は再起動し直しとなります。ふむー。

4. Fn+F?? キー使えません。
Fn+ テンキーって、ベンダ向けに用意されている acpi_*.ko をロードすれば Fn+ テンキー が利用できると思っていたのだけど、acpi_ibm.ko をkldload してもキーがマッピングされないので、音のボリューム・無線 LAN のオン/オフ・ディスプレーの明るさが変更できません。orz。 僕が最近の NotePC を知らないだけなのかも。技を知っている方、教えてください。

無線 LAN はそもそも利用しないのでずっとオフでも良いかも;-|。まぁ、仮に動作するようになったとしたら kldload/kldunload if_iwn.ko すればいーや。とか思っているんですが;-)。
音の大きさはミキサーアプリで調整するのでこれまたなんとかなりそう。
ディスプレーの明るさは acpi_video.ko を kldload すると sysctl MIB として hw.acpi.video.lcd0.brightness と言うのが生えてくるのでそこで明るさを指定します。以下のようなスクリプトを書けば良いかなー。って感じなのでありますが・・。

#!/bin/sh
sudo sysctl -w hw.acpi.video.lcd0.brightness=$1

 

多少使い込んで気がついたのはこんな感じでしょうか。まぁ、多分、標準的な「NotePC にインストールした FreeBSD の動作。」だと、僕は思っているのですけどねぇ;-P。

if_iwn は当分更新される予定は無いみたいなので半分あきらめです。最近は Windows7+IE9 も中々良いと思えるのでどうしても無線 LAN が必要な場合は Windows7 利用するかも;-P。まぁ、その前に iPhone4 があるので、多分めったに NotePC を門外に持ち出すことは無いと思うのだけどねぇ;-)。

9月 262010
 

久しぶりに AT 互換機の NotePC を購入しました。今まで利用していたのが 4,5 年前の DELL X1 。もう「遅いっ!!」などと感じ始めていたので新しい NotePC の購入に踏み切ったのでありました。

で、新しく購入したのが Levono の ThinkPad X100e。僕的に ThinkPad の購入は実に 535E 以来なのであります。二台並んだ写真。

ThinkPadX100e_1.jpg

自分でも思うけんど、この新旧二台が並んだ写真てのは中々無いとおもうぜぉ;-)。貴重な写真なのであります;-)。

と、言うことで、DELL X1 から大きく変わった点をちっくと書いておきます。

・CPU が Intel PentiumM 900MHz から Athlon Neo X2 L335 の 1.6GHz になった。
・チップセットが Intel から AMD になった。
・メモリが 2GHz から 4GByte になった(実際に積んでいるのは 3GByte)。
・HDD が 1.8 インチ 60GByte から 2.5 インチ 320GByte になった。
・無線 LAN が 802.11n に対応した。

みたいな感じでしょうか。

CPU がデアルコアになってクロックアップしたのと、HDD が 1.8 インチから 2.5 インチになったので、体感的に随分速くなったように感じます。
当初 DELL X1 の HDD を SSD に交換しようかと思ったのだけど、1.8 インチの東芝 50pin IDE タイプの SSD は 60GB だと 30,000yen を遙かに上回る値段なので購入を断念。後 30,000yen 出せば新品買えるじゃん。みたいな感じだったのでありました。

それにしても、僕はデスクトップは Intel 買わなくなって随分久しいのですが、NotePC もいよいよ AMD 系になったかー。と言う感じなのであります。今は Apple MacBook だけか。 Intel 系なのは。そんな感じなのであります。

では、ThinkPad X100e の気がついた点を少々。

例のごとく、初期インストールの Windows7 はブートもせずにサクっと消しました。後、HDD に入っていた Windows7 のリカバリー CD イメージもサクッと消したので、純正アプリに何が入っているのか全く知りません;-)。 320GB の HDD は余計なの全て消して、FreeBSD/amd64 8.1-STABLE に 80GB、Windows7 に 220GB の二つにしました。

Windows7 は Profetional x64 をインストールしました。リカバリー CD イメージはもうないので Microsoft TechnetPlus のをインストールしたので、このマシンも検証機器になりました;-)。

後で Levono に電話してリカバリー CD イメージを送ってもらおうと思っています。

Windows7 はサクっとインストールが完了しました。唯一 WiMAX のカードが認識しなかったので Levono からドライバーをダウンロードして動作するようになりました。あ。そーそー。このマシン、CPU とチップセットは AMD 、 NIC は re0 、 無線 LAN チップが Intel のセントリーノを利用してる(Centrino Advanced-N+WiMAX 6250 の組み合わせ) んですね。ある意味面白い;-)。

USB カメラがあるみたいなんだけど、使い方はイマイチ解りませんf(^^;;。まぁ、必要ないかな。

続いて FreeBSD/amd64 ですが、特に問題無くインストールは終了。pciconf -lv しても none0 が一個だけ。Centrino Advanced-N+WiMAX 6250 って FreeBSD のドライバってあるのかなぁ? GENERIC カーネルで none なんだけど・・。

後、USB デバイスが三つついています。 usbconfig list によると

ugen4.2: <USB2.0-CRW Generic> at usb
ugen4.3: <Integrated Camera Image Processor>
ugen4.4: <Intel(R) Centrino(R) Advanced-N + WiMAX 6250 Intel(R) Corporation>

らしいですが、あれ? NIC は USB なのかー。後はカメラと SD スロットみたいですね。SD スロットはフツーに認識しました。 Centrino Advanced-N は後で試してみよう。if_u のどれかを kldload したら認識するかなぁ?

現在は カーネルを 8.1-STABLE にして KDE4 を make している最中です。X も RADEONHD ドライバで RS780M/RS780MN [Radeon HD 3200 Graphics] と認識し、サクっと動いております;-)。

まぁ、2,3 世代古い構成なので枯れている。って感じでしょうか。特に難もなくどっちの OS も動作しているのであります;-)。

このネタ続くかなぁ?比較的容易に動作してしまったので特にネタは無いかも・・;-)。

あ、最後に一点。僕のパーティションの切り方の問題かもしれないですが、この PC、 Windows7 をインストールしたにも関わらず Windows7 側のブートマネージャを利用せず、以前の通り、F1 で Windows、F2 で FreeBSD がブートするようになりました。Windows7 側の bcdedit を利用して FreeBSD をブートしようとしたら「できねいぜぃ。」みたいに言われてしまいました。

難儀したのはそれくらいでしょうかねぇ。

DELL X1 と比べて随分と速くなったので今晩中に KDE4 の make は完了するかなぁ?楽しみなのであります;-)。

あ。dmesg とか pciconf -lv とか xorg.conf など見せて。って言う人いましたらコメントください。掲載しますので。

2010/10/04 加筆
dmesg とか pciconf -lv とか xorg.conf などが見たいですー。と言うコメントを頂いたので公開します。
以下の URL に色々な情報を置いたので良ければ参考にしてください。

http://icmpv6.org/Prog/tmp/ThinkPadX100e/

9月 242010
 

Evernote ってのが世の中にはあるみたいです。僕は iPhone4 ユーザなのですが、ファイルをクラウド上にアップして、色々な機器から利用できるみたいです。詳細については以下の URL を参照してください。

http://www.evernote.com/about/intl/jp/

さて、iPhone4 上ではデータを同期するクライアントがあります。あと、MacOSX とか Windows、他の携帯端末用のクライアントもあるのですが、Linux や FreeBSD のためのクライアントは無いようです。

Linux の人が頑張っているのは wine で Windows 版 Evernote クライアントを動かすと言うワザなんですね。FreeBSD でも ports に emulators/wine があるので早速試してみましょう。

まず、 ports から wine をインストールして、上記 Evernote のサイトから Windows 版クライアントをダウンロードします。その後、以下の要領で実行します。

$ wine ./Evernote_3.5.6.2848.exe
fixme:heap:HeapSetInformation 0x0 1 0x0 0
wine: Install the Windows version of Mono to run .NET executables
$

 
あいやまぁ・・。Evernote は .NET はレームワークを利用しているようです。しかし、 wine の default の環境では .NET はレームワーク が無いのでインストールできないみたいです。

ちなみに wine の環境は ~/.wine/ になり、 ~/.wine/drive_c/ が Windows で言うところの c:\ になります。それにしても .NET フレームワークをインストールする必要があるのでインストールすることにしましょう。

世の中を探しまわっていたら wine の環境をサクっとインストールしてくれるスクリプとがあるようです。

http://www.kegel.com/wine/ から winetricks と言うスクリプトをダウンロードしてくればよいみたいです。

$ ftp -a http://www.kegel.com/wine/winetricks
$ chmod 755 winetricks
# mv winetricks /usr/local/bin/
$ rehash
$

 
winetricks を実行するためには一個 ports をインストールする必要があります。 archivers/cabextract をインストールしましょう。これで winetricks を実行する準備が整いました。

オプション無しで実行するとウィンドウが一個現れたと思います。winetricks -h と実行すると、バババと文字が表示されたかと思います。ウィンドのメニューやオプションに dotnet30 を選択もしくは指定すると ~/.wine/drive_c/ に .NET Framework をインストールしてくれます。他にも色々インストールしてくれるヤツがあるので winetricks -h で表示されたものをじっくりと眺めてみても面白いです;-)。

と、言うことで今回は winetricks dotnet30 と叩くのでありました。

wine_evernote1.png

こんな感じでインストールが始まります。おぉっ!! これはラクチンだぁ;-)。.NET Framework がインストールするのをしばし待ちます。また、必要であればその他色々インストールしてみるのも良いかもしれません。

でもって今度はいよいよ次は Evernote のインストールです;-)。上で実行した wine コマンドを投入します。すると今度はインストーラが起動したようです。うひひひ;-)。

wine_evernote2.png

以降、フツーのインストールと同じように進むと無事にインストールが終わりました。おぉっ!!これは素晴らしい。

続いて早速実行してみることにしましょう。インストールされた Evernote.exe は ~/.wine/drive_c/Program Files/Evernote/Evernote3.5/Evernote.exe にあります。これを wine コマンドのオプションとして実行してあげます。

するとー。

wine_evernote3.png

orz。今日はこの辺りまでにしておきましょう・・。

筆者自身まだよく wine を把握しておりません。Windows ディレクトリにどういったものがインストールされているか、どういったものが必要なのか、Windows について、筆者はあまりよく知らないんですねf(^^;;。

今回の目的としては winetricks の使い方が解って良かったよねー。これ使うと wine の環境整えるのが楽だよねぇ。みたいな。そんな感じでこれにて終わるのでありました。

中途半端でどうもすみません・・。

8月 302010
 

自宅の PC はそろそろ FreeBSD 7 系から 8 系にバージョンアップしているのであります。が、我が家にはちょっとワンパクな EeePC がいるのであります。最終型は FreeBSD 7.3-STABLE に落ち着いていたのですが、各種デバイスが動作しないので早いところ FreeBSD 8 系にしたいものだ。と何回もトライしていたのですが・・。

今回やはりバージョンアップにトライしました。 EeePC に USB 接続の 2.5 インチ HDD を接続します。

それとは別に USB メモリからブートしてイントールするためのブートイメージを作成します。参考にしたのは「USBメモリからFreeBSDをインストールする」こちらのサイト。

ここに書かれている USB メモリの dd や newfs などを参考にさせてもらいした。ありがとうございました。ただし一点だけ。僕は USB メモリからブートしたあとにネットワークインストールする予定なので CD-ROM イメージ全ては必要ありません。上記 URL の cp -pR /cdrom/* /usbmem の部分は以下のようにします。

# cd /cdrom
# cp -pr /boot boot.catarog cdrom.inf /usbmem

 
/boot だけを USB メモリにコピーする。って感じです。これだと USB メモリの容量は 64MB のもので済みます。あとはブートしたあとにネットワークインストールするだけ。FreeBSD の iso イメージ的には FreeBSD-8.1-RELEASE-i386-bootonly.iso を用意すれば十分。て感じでしょうか。

と、言うことで、ブート用の USB メモリと USB 接続の 2.5 インチの HDD (今回はここに FreeBSD 8.1-RELEASE をインストールします)が用意できました。これでインストールします。が・・。EeePC では USB 接続の HDD を認識してくれませんでした。orz。FreeBSD のインストーラは起動するのですが、HDD 選択の画面で USB 接続の HDD を認識してくれないのであります。ブート用の USB メモリは問題無くブートしました。

しょーがないので普段利用しているデスクトップ PC で再度トライ。BIOS 設定を変更して USB メモリからブートするようにします。でもってブート。おぉ。今度はちゃんと USB 接続 の HDD を認識したのでこちらに対して FreeBSD 8.1-RELEASE をインストールし、無事に完了するのでありました。

母艦 PC (インストールに利用したデスクトップ PC) をシャットダウンしたあとに USB メモリと USB 接続の HDD を抜きます。でもって USB 接続の HDD を EeePC に接続してブートするのであります。

おぉっ!! ブートしたっ!! と思ったのもつかの間・・。umass0:0:1 など、 USB デバイスは認識するのですが、HDD が認識しないので FreeBSD が root バーティションはどこだ?と聞いてきます。

ufs:/dev/da0s1a

とか打つ画面ですね。ここから先に行かない・・。orz。dmesg 的には以下のような感じ。

uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
uhub2: 2 ports with 2 removable, self powered
uhub3: 2 ports with 2 removable, self powered
ugen0.2: <Initio> at usbus0
umass0: <Initio 0M9AT00, class 0/0, rev 2.00/1.06, addr 2> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x0000
ugen2.2: <ENE> at usbus2
umass1: <ENE UB6225, class 0/0, rev 2.00/1.00, addr 2> on usbus2
umass1:  SCSI over Bulk-Only; quirks = 0x0000
umass0:0:0:-1: Attached to scbus0
umass1:1:1:-1: Attached to scbus1
---> ここまで来たところで ufs:/dev/daos1a ? のプロンプトが出るっ!! ---> ここから下が動いてくれないっ!!
(probe1:umass-sim1:1:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 (probe1:umass-sim1:1:0:0): CAM status: SCSI Status Error (probe1:umass-sim1:1:0:0): SCSI status: Check Condition (probe1:umass-sim1:1:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) da0 at umass-sim0 bus 0 scbus0 target 0 lun 0 da0: <Initio 0M9AT00 1.06> Fixed Direct Access SCSI-0 device da0: 1.000MB/s transfers da0: 19077MB (39070080 512 byte sectors: 255H 63S/T 2432C) da1 at umass-sim1 bus 1 scbus1 target 0 lun 0 da1: <USB2.0 CardReader SD0 0100> Removable Direct Access SCSI-0 device da1: 1.000MB/s transfers da1: Attempt to query device size failed: NOT READY, Medium not present Trying to mount root from ufs:/dev/da0s1a

 
どーしたもんかいのぉ・・。と悩んでいるのであります。8-CURRENT や 8-STABLE をインストールした時と全然一緒な状態・・。orz。

そんなバナナっ!! この後におよんでいくら何でも 8.1-R まで行っても USB デバイスからブートできないなんてありえないだろうっ!! とか思い、いよいよ IRC で聞いてしまいました。そしたらとある有名なコミッタの方が以下の設定を /boot/loader.conf に書いてみそ。と言うので言われたとおり書いてみました。

kern.cam.boot_delay=10000

 
インストール直後の状態でシングルユーザでもブートしてくれないのにどうやって /boot/loader.conf 編集したらえーねん。とか思うのですが、僕は USB HDD を別の FreeBSD に接続して mount /dev/da0s1a /mnt したあとに /boot/loader.conf を編集しました。そのあとで再度 EeePC に接続してブートしたらっ!! おぉー。da0 がようやっと認識できて上のような dmesg となったのでありました;-)。わーいっ!! ありがとうございましたーー。

EeePC では 7 系 STABLEは今まで動作していたのですが、 8 系 STABLE はこの USB の問題で諦めていたのでありました・・。

ちなみに他の FreeBSD を持っていない人は /boot/loader.conf に書き込むこと、できないですよね。そんな人は ブート時のメニューで 6 を選択します。そこで set コマンド叩いてから boot とたたけば良いらしいです。ブートしたあとはすかさず /boot/loader.conf に設定を追加してあげれば OK です。

set kern.cam.boot_delay=10000
load /boot/kernel/kernel
boot

 
ふぅ。FreeBSD を USB メモリや USB HDD などからブートしたい人は上記設定を入れると、umass の認識でちょっと待ち状態が入るのでそのあとに da0 が認識され、ルートパーティションが取得できると言うわけですね。上記の設定が無い場合、da0 を認識する前にルートバーティションはどこぜお?ってなってしまうのでちっくとまちぃや。って感じで上記の設定を入れるのだそうです。

それにしても無事にブートできて良かったです。うんうん。さてと。今から csup で 8.1-STABLE にしようかなー;-)。

ほんにもう。それにしてもありがとうございました。

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 の アドレスブックに食わせたりとか。

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