3月 252013
 

いやー。cvsup.icmpv6.org というサーバを立てていたのですが csup がいよいよ利用できなくなりましたね。 cvsupd から持ってきたソースコード、例えば ports を portmaster -D -a とかすると「もう使えないぜ。ベイビー。」とか怒られる。

それならば、と、いうことで ports などは snv で取ってくることにしましょう。基本的には以下のコマンドで svn で FreeBSD の ports ツリーを取ってくることができます。

# svn co https://svn0.us-west.FreeBSD.org/ports/head /usr/ports
# cd /usr/ports && svn update

 
FreeBSD のソースコードを取ってくるには svn というのが必要で、それはつまりは ports 的にいうと devel/subversion が必要になるのでこいつをインストールしてあげる必要があります。後で出てきますが、svn サーバを必要としない、クライアントのみで利用するのであれば devel/subversion-static のほうが、余計なのがインストールされないので良いかもしれません。

上記コマンドを実行するときには一旦 /usr/ports/ の中を綺麗にしたほうが良いかもしれんですね。 ports/distfiles/ の中に色々とゴミが残るのでどこかに一時的に移動するか、サッパリと \rm -r /usr/ports してしまったほうが良いかな? 個人的に自由にしてください;-)。

さてさて。svn コマンドを実行したときに、海外のサーバを見に行くことになるのですが、ちょっと遅いかもしれないし大変ですよねぇ。今まで cvsupd なサーバを自分で構築していたので svn なサーバも自分で構築してみましょう。 FreeBSD のための Subversion のミラーサイト (FreeBSD.org subversion mirror) を構築してみます。それが今回のお題目です。

まずは ports から devel/subversion をインストールします。こちらを make すると make config で色々聞いてきます。 devel/subversion-static のほうは特に何も聞いてきません。 FreeBSD の svn サーバを構築する場合には以下のオプションを [X] にして make install しましょう。

[X] MOD_DAV_SVN        mod_dav_svn module for Apache 2.X
[X] MOD_DONTDOTHAT     mod_dontdothat for Apache 2.X

 
すると apache22 までインストールしてくれます。うひっ。 php とか、この手の apache 絡みのヤツを ports からインストールすると強制的に apache までインストールされてしまうのは、ちょっとどーかと思う。僕は apache は自分で make する派なのでねぇ。 mod_* だけインストールしてくれれば嬉しいなぁ。

と、いうことで apache まで起動できる状態になったので svn サーバ (仮に svnweb と言います)を作成していきましょう。

まずは FreeBSD のソースコードや ports 一式を先に取ってきます。

# mkdir /home/svnweb
# cd /home/svnweb
# ftp -a ftp://ftp5.jp.freebsd.org/pub/FreeBSD/development/subversion/svnmirror-base-r238500.tar.xz
# ftp -a ftp://ftp5.jp.freebsd.org/pub/FreeBSD/development/subversion/svnmirror-ports-r301235.tar.xz
# tar xvzfp svnmirror-base-r238500.tar.xz
# tar xvzfp svnmirror-ports-r301235.tar.xz
# svnsync sync file:////home/svnweb/base
# svnsync sync file:////home/svnweb/ports

 
base のほうは FreeBSD のソースコードです。 ports は ports ですね。 r238500 とか r301235 ってのはレビジョンのようです。以下の URL が参考になるかと思います。

http://svnweb.freebsd.org/base/

ftp で取ってきたやつでさえも古いので更に sync して最新のものに揃えます。それが上記コマンドの下の二行です。 snvsync するとどこから取ってくるんでしょうなぁ? 後でキャプチャしてみよう(キャプチャした結果 svn.FreeBSD.org からでした;-)。

と、いうことで最新のソースがこれで準備できたと思います。あ。定期的に svnsync するには以下のスクリプトを書いて cron に登録すれば良いでしょうね。

#!/bin/sh
/usr/local/bin/svnsync sync file:////home/svnweb/base
/usr/local/bin/svnsync sync file:////home/svnweb/ports

 
ちなみに、base と ports だけで 20GByte くらいのディスク容量が必要になります。HDD の容量に気をつけてください。

さささ。続いてサーバのほうを設定していきましょう。基本的には httpd が動作していて port:80 にアクセスします。 SSL に対応しているのであれば https:// でアクセスできます。

まずは httpd.conf ですが、 devel/subversion をインストールしたのであれば特に何もせずとも動作します。うひっ。 ports/subversion インストール時に上に書いた二つのオプションを有効にしたのであれば、多分 httpd.conf に以下の設定が既に追加されているはず。

LoadModule dav_svn_module   libexec/apache22/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so

 
ほー。svn のサーバって dav で動作するんだねぇ。するっていと多分 extra/httpd-dav.conf にも設定必要だね。って思うんですが、果たしてそのとおりで、 extra/httpd-dav.conf の中身を全部消して、以下の行を追加して上げます。

<Location />
    DAV svn
    SVNParentPath       /home/svnweb
    Order deny,allow
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        Deny from all
    </LimitExcept>
</Location>

 
あとは httpd を起動すれば動作すると思います。あ。Include etc/apache22/extra/httpd-dav.conf の行は当然コメントアウトをはずす必要があります。

ウェブブラウザでアクセスすると http://svnweb.icmpv6.org/base/ こんな感じで見えるようになります;-)。

では実際に正しく動作するか確認してみましょう。手元にある FreeBSD から以下のコマンドを実行してみます。

# svn co http://svnweb.icmpv6.org/ports/head /usr/ports

 
既に一回、他の svnweb から /usr/ports に持ってきてしまうと svn のエラーコード E155000 で怒られます。その場合には違うディレクトリに co するか、 /usr/ports/.svn/ というディレクトリが svn の接続先情報を管理しているようなのでこのディレクトリを mv すれば良いかもしれません。

さてさて。 apache の設定に戻りますが、svnweb のためだけに httpd を起動する人は皆無だと思うので、多分 httpd-vhosts.conf で VirtualHost の設定をしているかと思います。 DAV svn の設定も簡単で VirtualHost ディレクティブの中に httpd-dav.conf で書いた設定をそのまま書いてあげると良いです。その場合は Include httpd-dav.conf の設定は必要なくなります。

と、いうことで 簡単な svn の使い方と svnweb の立て方をサラっと書いてみました。皆さんもどんどん日本に FreeBSD 用の svn のサーバを起動してみてください;-)。 ちなみにですが、以下を一応用意しました。それぞれのサーバに base/ と ports/ があります。

http://svnweb.icmpv6.org/ (IPv4/IPv6)
https://svnwebv4.icmpv6.org/ (IPv4)

いつも動作している保証はありません;-)。

2月 022013
 

VMware ESXi が色々動作して来たのでそれではいよいよ FreeBSD をインストールしましょう。

OS インストール用の iso イメージは以前書いた通り「データストア ブラウザ」を利用して VMware ESXi にアップロードします。

「新規仮想マシンの作成」 からゲスト OS をを作成します。
僕の場合、40GByte の HDD を持つ FreeBSD-default という仮想マシンを作成しました。まず先にここに FreeBSD/amd64 9.1-RELEASE をインストールして環境を整えて必要な ports をインストールしてからタネにしました。

あとは「データストア ブラウザ」からファイルをコピーして新たな FreeBSD をボコボコ量産していきました;-)。

以下はキャプチャですが、左側のフレームでフォルダを作成し、 FreeBSD-default ディレクトリ中の log ファイル以外のデータを新規に作成したディレクトリにコピーしてあげます。



クリックすると大きくなります。

vmdk などのファイル名は仕様により変更できないので、タネのファイル名はいかにも “共通” っぽいファイル名のほうが良いと思います。

新しいディレクトにコピーが完了したら vmx 拡張子のファイルを選択し右クリックで「インベントリへ追加」を選択します。そーすると VMware vSphere Client のインベントリに新しい仮想マシンが登録されます。一番最初の起動時のみコピーしたのか? 移動したのか? と聞かれるので「コピーした。」を選択し、起動すれば良いですね。

起動前に「仮想マシンの設定の編集」画面を開いて色々設定すると良いかもしれません。僕は「イーサネットアダプタ」を追加しています。特にアダプタタイプに “VMXNET 3” を指定したものを一個追加しています。そして、全ての仮想マシンに “VMXNET 3” 用の仮想スイッチを追加し、裏 LAN 用に利用しています。



クリックすると大きくなります。

FreeBSD のインストールが完了したら VMware Tools をインストールしましょう。 freebsd.iso というのがちゃんと用意されているので「CD/DVD ドライブ 1」にそれをマウントします。 VMware ESXi 的には /usr/lib/vmware/isoimages/ の中に色々な OS 用の VMware Tools が用意されています。

まぁ、このディレクトリから freebsd.iso を持ってきて mdconfig を利用して mount して vmware-freebsd-tools.tar.gz を抜き出しても全然問題は無いです;-)。

tar.gz ファイルを展開すると vmware-tools-distrib/ の中に vmware-install.pl というスクリプトがあるのでこれを実行するとインストールが完了します。

# mdconfig -a -t vnode -f freebsd.iso -u 0
# mount_cd9660 /dev/md0 /mnt/
# cd /mnt/
# cp vmware-freebsd-tools.tar.gz /tmp/
# cd /tmp/
# tar xvzfp vmware-freebsd-tools.tar.gz
# cd vmware-tools-distrib/
# ls
FILES           doc/            lib/
INSTALL@        etc/            vmware-install.pl@
bin/            installer/
# ./vmware-install.pl
A previous installation of VMware Tools has been detected.
:

 
僕は FreeBSD/amd64 9.1-RELEASE をインストールしていますが、VMware tools をインストールするには ports から misc/compat6x をインストールする必要があります。あと、 perl も必須になるので lang/perl* の好きなバージョンをインストールしてください。僕の場合は perl-5.16.2 をインストールしました。

VMware Tools のインストールが完了するとメモリ周りが速くなったりするそうです。あと、イーサネットアダプタに “VMXNET 3” を追加したので vmx3f0 というインターフェースが生えてきます。こいつは media: Ethernet 10Gbase-T でリンクアップします;-)。

実際に仮想マシン同士で em0 と vmx3f0 でデータ転送の比較をしてみたのですが em0 は大体 430Mbps 、 vmx3f0 は 440Mbps 程度の転送速度でした。 10Gbps は出ないですねf(^^;;。

VMware Tools をインストールしたら kldstat とか叩いてみると良いかもしれないです。色々 VMware のカーネルモジュールがロードされるようになります。

これで VMware ESXi 対応の FreeBSD の環境が整いました。 jail も良いんだけど OS 単体の FreeBSD がボコボコ作れる状態になりました。思う存分 FreeBSD で遊べそうです;-)。

1月 232013
 

ちょっと前の FreeBSD-users-jp な ML で USB マウスが動かなくなる。と、いうスレッドがありました。PS/2 マウスと USB マウスの二つがあった場合、そのうちの一個が動かなくなる。と、いうのものでした。

僕の場合、USB マウスではなく、 PS/2 マウスとタッチバッドの組み合わせなのですが、マウスのほうが動かなくなって悩んでいたのであります。

僕が持っているのは ThinkPad X100e で、こいつは Windows OS で言うところの UltraNav です。キーボードの真ん中に赤ポッチがあるのが、 FreeBSD 的に言うと /dev/sysmouse でこいつは ports 的 には x11-drivers/xf86-input-mouse で認識して動作します。タッチパッド側は /dev/psm0 で x11-drivers/xf86-input-synaptics で認識してタッチパッドとして利用できます。右側を上下になぞるとちゃんとスクロールもしてくれるように設定しています。

が、この状態において、僕の環境では赤ポッチとそれに付属するポタン類が一切動作しない状態で、上記スレッドを参考に色々試したのですが、やはり動作しないので放置していたのでありました。

今回、環境を 9.1-RELEASE にしたのでもう一度試してみたのですが、やはり動作しません。悲しい・・。

以下は僕が利用している 赤ポッチマウスとタッチバッドマウスの xorg.conf の設定です。一応 hal に関係する設定も書いておきます。

Section "ServerFlags"
Option    "AllowEmptyInput" "off"
Option    "AutoAddDevices"  "off"
#       Option    "AllowEmptyInput" "on"
#       Option    "AutoAddDevices"  "on"
EndSection
Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "ZAxisMapping" "4 5 6 7" EndSection
Section "InputDevice" Identifier "Touchpad0" Driver "synaptics" Option "Protocol" "psm" Option "Device" "/dev/psm0" Option "SHMConfig" "on"
Option "TapButton1" "1"
Option "VertTwoFingerScroll" "1" Option "HorizTwoFingerScroll" "1" Option "VertScrollDelta" "200" Option "HorizScrollDelta" "200" Option "MinSpeed" "0.1" Option "MaxSpeed" "0.2" EndSection

 
この設定を書いても赤ポッチ側が動作しません。ps で hal と moused のプロセスを確認すると以下のようになっています。

$ ps -ax | grep mouse
1120 ??  Is     0:04.49 /usr/sbin/moused -p /dev/sysmouse -t auto
1332 ??  I      0:00.01 hald-addon-mouse-sysmouse: /dev/psm0 (hald-addon-mouse

 
moused は /dev/sysmouse 側をコントロールしています。 hald のほうは /dev/psm0 をコントールしています。 xorg.conf の設定では /dev/sysmouse は赤ポッチマウス、 /dev/psm0 はタッチパッドマウスです。まぁ、タッチパッドが無事に動作しているのでいーやー。とか思っていた時期が長いんですけどもね。

で、色々設定を見なおした結果、両方とも動作することが確認できました。上記 xorg.conf は何も問題がありませんでした。問題があったのは /etc/rc.conf で設定する moused の設定だったのであります。

以下のように設定すると 両方のマウスが無事に動作することが解りました。

moused_nondefault_enable="NO"
moused_enable="YES"
#moused_port="/dev/sysmouse"
moused_port="/dev/psm0"

 
今までは hald が /dev/psm0 をいじっているなら moused は /dev/sysmouse だろ。とか、勝手に思っていたのですが、moused のほうも /dev/psm0 に変更したらあぁら不思議。両方のマウスが動き出した。ということなんですね。 ps で確認すると以下のような感じ。

 $ ps -ax | grep mouse
33230 ??  Is     0:04.49 /usr/sbin/moused -p /dev/psm0 -t auto
33232 ??  I      0:00.01 hald-addon-mouse-sysmouse: /dev/psm0 (hald-addon-mouse

 
なんか、非常に違和感あるんですが、これで無事に二つのマウスが動作しております。考えてみると xf86-input-mouse がバージョンアップして以来赤ポッチマウスが動作していなかったので、随分と久しぶりに両方動きだした。ということになります。

いやー。良かったです。 xorg.conf が正しい設定であるならば rc.conf の moused の設定を変えてみてはいかがでしょうか。なお、今回は /usr/local/etc/hal/fdi/policy/ にはマウスの設定は入れていません。 xorg.conf の設定がそのまま X11 で有効になっていると思います。

ちなみにタッチパッドのほうは xf86-input-synaptics で動作しているので UltraNav みたいな動作が一応できます。 Synaptics を試してみたい方は参考にしてみてください。あ。細かい説明は一切ナシですけどもね;-)。

12月 292012
 

前回の「SkyDrive を FreeBSD に mount して使う。」のエントリでは SMEStorage 経由で SMEStorage 提供の smestorage コマンド (perl スクリプト) を利用して KDE4 のファイルマネージャである dolphin から SkyDrive を FreeBSD から見る。ということろまででした。

今回はその続編になります。それにしても fusefs ってのはなんか面白いというか不思議なファイルシステムですねぇ。イマイチ解りませんが・・f(^^;;。 /usr/ports/sysutils/ の下には fusefs-* というのがたくさんあるんですね。

で、今回は、まぁ、海外のとある会社の製品というかサービスについて書くことになってしまうのですが SMEStorage を GUI で利用します。でもって、その上で SkyDrive を利用してみます。

まず、ソースコードですが、前回ダウンロードしてきた rpm を展開すると usr/share/sme_install_pack/ というディレクトリの中にドドドと入っていたのでこれを make して利用してみます。通常であれば、ベンダとかサードパーティから提供されるコマンドやアプリケーションはバイナリ形式のものが多いのですが SMEStorage はソースコードを提供してくれています。嬉しいですね。早速試してみましょう。

今回は /usr/local/SME/ と、いうディレクトレにインストールすることにしてみます。ソースコードは /usr/local/src/SME/ に展開してコンパイルしています。

# mkdir /usr/local/SME/
# cp -pr usr/share/applications /usr/local/SME/
# cp -pr usr/share/pixmaps /usr/local/SME/
# cp -pr usr/share/smestorageclient  /usr/local/SME/
# cp usr/local/bin/smestorage /usr/local/bin/
#
$ mkdir /usr/local/src/SME
$ cp usr/share/sme_install_pack/* /usr/local/src/SME/
$ cd /usr/local/src/SME
$ unzip SMEExplorer.zip
$ unzip SMEStorageClient.zip
$ unzip SMESyncCenter.zip
$ rm *.zip

 
Fuse-0.09.zip と XML-Simple-2.18.zip は ports からインストールされていると思うので今回は必要ありません。
上記 unzip したファイルは QT ベースのソースコードになります。KDE4 がインストールされていて QT4 がフルセットインストールされている環境であれば簡単にコンパイルが通ります。 QT4 がインストールされていない人はもしかしたらコンパイルのために QT4 一式をインストールする必要があるかもしれません。

QT4 がインストールされているものとして、次のステップに行きます;-)。ソースコードは Linux のためにコードにコマンドパスなどがベタ書きしてあるのでそれを変更してコンパイルします。

$ cd /usr/local/src/SME/
$ foreach i ( */*.h )
foreach? sed s#usr/share#usr/local/SME# $i > FILE
foreach? /bin/mv FILE $i
foreach? end
$ foreach i ( */*.cpp )
foreach? sed s#usr/share#usr/local/SME# $i > FILE
foreach? /bin/mv FILE $i
foreach? end

 
上記は tcsh で foreach を利用して Linux 用のパスである usr/share を今回インストールする usr/local/SME に書き換えています。 tcsh でない人は別のコマンドを利用して一括変換してください。

続いてコンパイルします。ソースコードは QT4 ベースなので make には qmake-qt4 を利用します。

$ cd /usr/local/src/SME/SMEExplorer/
$ qmake-qt4 ; make
# cp smestorageexplorer /usr/local/bin/
$ cd ../SMEStorageClient
$ qmake-qt4 ; make
# cp SMEStorageClient /usr/local/bin/
$ cd ../SMESyncCenter
$ qmake-qt4 ; make
# cp SMESyncCenter /usr/local/bin/

 
QT4 ベースのアプリはコンパイルが楽チンですね。 qmake は そのディレクトリの .pro ファイルを参照して Makefile を生成します。あとは make すると c++ がコンパイルをガシガシしてくれて、ハイ完成。って状態にしてくれます。

これで、前回のエントリでインストールした smestorage と今回新たに三つのアプリケーションのインストールが完了しました。以下に今回インストールしたアプリケーションの説明をちょっと書いてみます。

・smestorageexplorer
これだけ小文字なのですが、ウェブブラウザでアクセスする SMEStorage のサイトをファイルマネージャみたいなヤツで閲覧するアプリケーションです。非常に良くできていて SkyDrive も閲覧可能です。

smestorageexplorer_1.png

・SMEStorageClient
fusefs を利用してクラウド上にある SMEStorage を自分の FreeBSD に mount_fusefs するアプリケーションです。マウント専用の GUI です。

SMEStorageClient_1.png

・SMESyncCenter
SMEStorageClient でローカルに mount_fusefs したクラウド上の情報をローカルのディスクと sync するアプリです。簡単に言うと Windows 版の SkyDrive アプリケーションと似ているでしょうか。

SMESyncCenter_1.png

さてさて。これらコマンドの使い方ですが、smestorageexplorer は単体で利用できます。このコマンドは fusefs を利用しないのでサクっと動作します。まぁ、ウェブブラウザで SkyDrive にアクセスするか、専用アプリで SMEStorage 経由で SkyDrive にアクセスするかの違いだと思います。

問題は SMEStorageClient と SMESyncCenter を組み合わせて利用する場合です。まず、 SMEStorageClient アプリケーションで SMEStorage を mount_fusefs します。今回のキャプチャの例では smestorage.com にログインして fusefs を利用して /data/SME/ にマウントします。が、これが中々うまくマウントできないんですよねぇ。以下のメッセージが出力します。

mount_fusefs: /dev/fuse0 on /data/SME: Operation not permitted
fuse: failed to mount file system: No error: 0
could not mount fuse filesystem!

 
なんでやねん? とか思うのですが、そもそも、それ以前に儀式が必要です。

# /usr/local/etc/rc.d/fusefs onestart
# sysctl vfs.usermount=1

 
/usr/local/etc/rc.d/fusefs を start するときは kldload fuse.ko してくれます。 stop するときは kldunload fuse.ko と fusefs をマウントしている場合にはそれをアンマウントしてくれます。
vfs.usermount=1 のほうはユーザランドでマウントが利用できるようになる systcl mib です。
あと、/data/SME/ ディレクトリは SMEStorageClient を実行するオーナでないとダメです。 chown で調整してあげましょう。

が、こいつらを設定してもダメなんですよねぇ・・。orz しょーがないのでコマンドラインで以下のコマンドを叩きました。あ。以下のコマンドを叩くときは上記のコマンド二つは実行済みの状態です。

$ mount_fusefs auto /data/SME allow_other
mount_fusefs: failed to exec fuse daemon: No such file or directory

 
なんかデーモンが “No such file or directory” とか言ってますが(fuse 用のデーモンは特に動作していない)上記のコマンドを叩いたあとに mount コマンドで確認してみると無事にマウントできていたりします。

この段階で SMEStorageClient を起動して [Mount] ボタンを押すと「既にマウントしているよ。」と言われます。そして、そのあと [File] メニューの [Sync Center] を押すと SMESyncCenter が起動します。「Sync するか?」と聞いてくるので [OK] を選択すると、バババと同期してくれます。おぉっ!!

あとは、自分の好きなように利用するのが良いかと思われます;-)。

と、いうことで二回に分けて書いた今回の、主に SMEStorage のお話ですが fusefs のことがまぁ、そこそこ書けたのではないかなぁ。などと一人思っていますが、それにしても奥が深いのであろうと思われます。

あ、ちなみに、 SMEStorage のソースコード一式は多分、ports の解る人が ports を作成すれば簡単に ports 化できるのではないかと思われます。関連性でどこまで QT4 が必要になるかは(僕の環境では一式入っているため)解りませんけどね;-)。

と、いうことで今年のエントリは多分これが最後になるかと思われます。皆さん良いお年をー;-)。

12月 202012
 

僕は SkyDrive の利用者なのですが、ことの発端は、Windows7 や OS X では SkyDrive がファイルマネージャから利用できるのに FreeBSD の (KDE の) ファイルマネージャでは見ることができないんかな?と、いうところから始まりました。

で、結論から先に書くと、多少問題はありますが /mnt 辺りにマウントできて、 ls とか打てば表示してくれます。でもってファイルマネージャ、例えば KDE4 の ファイルマネージャである dolphin から SkyDrive が参照することができてデスクトップにコピーとかもできるようになります。

では、その方法についてちょっと見て行きましょう;-)。

まずはじめに、僕は以前「SkyDrive をコッテリ使う。」というエントリを書きました。当時はまだ Microsoft から SkyDrive の App が出ていなかったので苦肉の策だったんですけどもね。最近は iOS や Android 用アプリ、上にも書いたデスクトップ用アプリがあるので簡単にアクセス可能になりました。

まぁ、 FreeBSD で利用するときはブラウザ経由で利用すればいーじゃん。と、いう話はあるのですが、どーせならネーテブに利用したい。ってんで、探してみるとその、上のリンク先のエントリに書いた SMEStorage ってのを利用すると mount することができることが解りました。

SMEStorage に付いてはリンク先のエントリを読んでください。で、スマートフォン用アプリが無い時代には SMEStorage を利用していたのですが、最近はすっかりとご無沙汰していたのであります。このサイトにログインすると Linux 用のクライアントが用意されているのでそれを利用してみることにしました。

SMEStorage のトップページはこちら http://storagemadeeasy.com/
その Linux 向けツールはこちら http://storagemadeeasy.com/LinuxDrive/

とりあえず CentOS 用の RPM をダウンロードして展開します。

$ rpm2cpio smestorage-3.0-16.noarch.rpm | cpio -id
$ cd usr/local/bin/
$ ls
smestorage
$ file smestorage
smestorage: a /usr/bin/perl -w script text executable

 
RPM を展開すると usr/local/bin/smestorage というのが現れます。 usr/share/ の下はとりあえず無視します。で、 smestorage というコマンドは perl のスクリプトなんですね。すげー。 Linux バイナリじゃないし。で、すかさず実行します;-)。が、perl の色々なモジュールが無いと言われるので ports からインストールしてあげます。ちょっと解らなかった ports は devel/p5-TimeDate ですかね。あとはサクっとインストールして完了です。

で、perl のモジュールが色々入ったので早速実行してみますが、あいや。 mount_fusefs ってなんだぁ? となります。 Fuse.pm をインストールした時に合わせて fusefs-kmod とか fusefs-libs がインストールされます。

fusefs ってのはファイルシステムの一種なのですが、僕は今回初めて知りました。以下の URL を参照して貰えれば一目瞭然でしょう;-)。

http://fuse.sourceforge.net/

ユーザ空間内で利用するためのファイルシステムだそうです。なんのこっちゃ?f(^^;;。

# kldload /usr/local/modules/fuse.ko
# ls -l /dev/fuse0
crw-rw----  1 root  operator    0, 118 Dec 28 22:45 /dev/fuse0

 
と、いうことで fuse.ko を kldload したらデバイスが一個生えてきました。こいつを利用して再度 smestorage を実行します。オプション無しで実行するとコマンドラインオプションが表示されます。

# ./smestorage
Usage: smestorage mountpoint user:password [providerUser:providerPassword] [--server=host] [--ao] [--DEBUG] [--ct=time]
Example:
smestorage /folder1 login1:password1 --server=eu.smestorage.com --ao --ct=30

 
第一パラメータにマウントポイントを指定します。そして login1:password1 は http://storagemadeeasy.com/ にアカウントを作成し、ログインするためのログイン名とパスワードを指定します。最初はこれだけでコマンドを実行します。

すると、あぁら不思議。と、いうか、あぁらすごい。 http://storagemadeeasy.com/ のウェブベースファイルマネージャで閲覧できる内容が /mnt に見えるようになりました。

# ./smestorage /mnt smeuser:smepasswd
# ls /mnt/
Image Thumbs/
My Quick Uploads/
My SkyDrive files (smestorage@live.jp)/
My Syncs/
My backups/
My contacts/
My iPhone Syncs/
My memos/
My voice memos/

 
SMEStorage のサービスで SkyDrive を利用していると “My SkyDrive files” というディレクトリができています。で、そこに cd して ls とか叩くと SkyDrive 上の内容が表示されるようになります。うひっ。

けど、多分純粋な SkyDrive の内容ではなく、SMEStorage がキャッシュした SkyDrive の内容だと思います。なので、更新とかしてあげないと最新の情報を SkyDrive と sync してくれないこもしれないです。まぁ、その辺りはある程度はしょーがいなですね。

そして、遅いかなー。まぁ、クラウド上のデータを ls するんだからそれなりに遅いですよね。それはまぁ、仕方のないことかな。

で、上記のコマンドオプションのみだと /mnt/ は root 権限でしか見ることができません。 smestorage コマンドのオプションに –ao ってのがあるので、このオプションを利用すると一般ユーザからでもアクセス可能になります。なので KDE4 の人は dolphin などでアクセスが可能になります。僕は LANG に UTF-8 を利用しているのですが、SkyDrive 上の日本語のフアイルも文字化けせずに利用することができます。

と、いうことで、これで SkyDrive の内容が自分の FreeBSD から直接アクセス(正確に言うと SMEStorage 経由の間接的なキャッシュ情報へのアクセス)できるようになりました。有る意味すごいですね。色々できそうな感じです;-)。

とわ言いつつ、基本的には SMEStorage のサービスというか機能に引っ張られての SkyDrive の利用なので、その点について、良いか悪いかはいまいち解りません。

今回は fusefs のお勉強がメイン。と言う感じでしょうか。あ。/mnt のアンマウントは umount /mnt で可能です。エラーが出ますが、多分アンマウントされていると思います。
それにしても smestorage コマンドが perl で書かれているので、僕はまだ中を覗いてないのですが、色々できそうですね。

 
このエントリ、続くか?;-)。

9月 102012
 

普段から利用している ThinkPad X100e ですが、こいつは Windows7 と FreeBSD/amd64 9.0-STABLE のマルチブートで利用していました。ところが、 FreeBSD 側で利用していたら GEOM がエラーを吐き出すようになってきて、どうやら HDD がご臨終のようです。
シングルユーザでブートして fsck -y を走らせても完走しないしないので、いよいよ HDD を交換することにしました。
#この前の段階でバックアップは既にバッチリ取っといてある;-)。

で、せっかくの機会なので Intel の SSD にしてみました。選択したのは INTEL 330 Series SSDSC2CT120A3 300i で 128GB モデルです。 ThinkPad X100e に最初から付いていた HDD は 東芝製の 2.5 インチ 320GB 、 5400 回転のやつでしたが、それを交換しました。

ThinkPad X100e の HDD 交換は NotePC の裏蓋のネジを外してパカっと開けるともうアクセスできるのでそこですかさず交換です。非常に簡単に HDD を交換できます。

WindowsOS 部分には 50GB 、 FreeBSD 側には 60GB にしました。ちなみに WindowsOS は Windows8 をインストールしました。

まだあまり使い込んではいませんが、実際に両方の OS での動作確認をしてみたいと思います。

1). Windows8
Windows8 は 64bit 版をインストールしました。まぁ、フツーに起動した。と、言う感じでしょうか;-)。 ThinkPad X100e のデバイスは割とサクッと認識してくれました。認識していないのは多分 3G のチップだと思います。これは Windows7 のドライバをインストールしようと思っていますがまだ試していません。

あと、 Lenovo の診断ツールとかもまだインストールしていないです。無事に動作するのかな?

で、 Windows エクスペリエンスですが、こんな結果になりました。

windows8_status.jpg

SSDに交換した以外は以前と変わらないのでこんな感じでしょうかね;-)。

2). FreeBSD/amd64 9.1-PREPELEASE
フツーにインストールしてサクサク動作しています。まぁ、特に気にすることもなく。と、いう感じでしょうか。僕の持っている ThinkPad X100e は suspend/resume するというのは以前書いていますが、今回も特に問題なく動作します。

今までは 2012/05/17 くらいの 9.0-STABLE を使い続けていたのですが、いよいよ最新版の 9.1-PREPELEASE にしてしまった。と、言う感じでしょうか。

KDE-4.8.4 の『電源管理』から suspend すると X のスクリーンセーバまでかかってくれます。すげ;-)。

if_iwn の Intel(R) PRO/Wireless 6250 は相変わらず動作が不安定ですね。 USB NIC の if_run は必須な状態です・・。orz

3). Windows8 と FreeBSD の同居
320GBの HDD から 128GB の SSD に変更し WindowsOS は 7 から 8 に変わりました。マルチブートの設定についてですが Winsodws8 側で bcdedit で書き込んであげる必要があります。

Windows8 のインストールが終わって FreeBSD/amd64 9.0-R のインストールが完了した時点では FreeBSD しか起動しなくなります。

この状態で、まず最初に試したのが FreeBSD 8.3-R の CD-ROM を持ってきて MBR にブートマネージャをインストールしてみました。 Windows7 ではブートしてくれていたのですが Windows8 ではまるっきりダメですね。 Windows8 がブートしなくなったので Windows8 のメディアでレスキューとか復旧を色々試しましたがダメだったので結局で再インストールしました。

Windows8 の再インストール後は管理者権限の DOS プロンプトから bcdedit で起動情報を設定してあげます。以前このブログでも掲載しているのでそのやり方と全く一緒で OK です。

Windows8 のブートローダはバーチャルマシンイメージが起動できたりと色々なモノがブート可能になっているのが面白いですね。

あと、 default で Windows8 をブートするようにしていると NotePC の起動直後に Windows8 のマークが表示されて Windows8 の GUI なブートメニューが表示されます。 FreeBSD を default ブートにすると Windows7 の時のようなテキストベースのブートメニューになります。

Windows8 のブートローダから FreeBSD を選択すると、いきなり BIOS のトップ画面が表示されたりするのでこれまた中々焦るというか面白い現象ですね;-)。

とまぁ、こんな感じで HDD からSSD に変更したのですが、ネタ的には Widnows8 とのマルチブートについて。になってしまったでしょうかねぇ;-)。

皆さんも Windows8 で色々検証したり遊んでみてくださいー;-)。

あ。本当に最後に一点。 bcdedit は、くれぐれも管理者権限の DOS プロンプトから実行してください。管理者権限の PowerShell から実行してもまるでコマンドを受け付けてくれません・・。orz。

8月 042012
 

一台目の PRIMERGY MX130 S2 は自宅サーバになりました。二台目の PRIMERGY MX130 S2 はデスクトップで利用しているんですが、 FreeBSD/amd64 9.1-BETA と Windows7 のマルチブートです。今回は珍しく Windows7 でのベンチマークの結果などを書いてみたいと思います。

おっと、その前にメモリを増設したのでそのことについて書いておきます。購入当初、一台目の余っていた ECC DDR3-1333 メモリと二台目の ECC DDR3-1333 メモリを足して計 4GB で運用していたのですが、Non ECC DDR3-1333 メモリ 4GBx2 を追加して合計 12GB で動作しています。

で、メモリの装着方法ですが、メモリバンクの 1,3 番に ECC DDR3-1333 メモリ、2,4 番に Non ECC DDR3-1333 メモリを接続するとブートしてくれないですね。で、順番を入れ替えて 1,3 番に Non ECC DDR3-1333 メモリ(計 8BG) と 2,4 番バンクに ECC DDR3-1333 メモリ (計 4GB) を接続したらブートするようになりました。 ECC、Non ECC メモリ混在の場合はこのように接続するとブートすると思います。

で、本題。まずは Windows Experience の結果から。

PRIMERGY_MX130_S2_Experiens.PNG

グラフィックスカードは nVidia の GeForce210 を乗せているので default のよりは速いかもしれません。メモリは ECC メモリのみの場合と ECC、Non ECC メモリ混在の場合では値に変化はありませんでした。メモリに関しては、混在の状態は初めての体験だったので「ふーん。」って感じですね;-)。

で、次のキャプチャは CPU-Z の結果。

PRIMERGY_MX130_S2_CPU-Z.PNG

ふむー。PRIMERGY MX130 S2 というか AMD FX-6100 のスペック調査っぽいんだけど、まぁそれはそれでヨシとして。

FX-6100 って考えてみたら Windows7 では Turbo CORE が有効になって最大 CPU クロックが 3.9GHz になるんですね。すっかり忘れていましたわ。 FreeBSD/amd64 を使用したときは Turbo CORE は有効にならないので最大 CPU クロックは 3.3GHz だったなぁ。

以下は FreeBSD の sysctl の dev.cpu.0.freq_levels の結果ですが、ふむ。最大は 3300 ですね。

dev.cpu.0.freq_levels: 3300/13635 3000/10925 2625/9559 2400/7417 2100/6489 1800/4620
1575/4042 1400/3195 1225/2795 1050/2396 875/1996 700/1597 525/1198 350/798 175/399

 
で、思い出した。 FX-6100 って CPU クロック可変なんだけど、公称では確か 1.4GHz から 3.3GHz までの範囲で可変。そして Turbo CORE 有効時には 3.9GHz で動作する。ってことでしたよね。 Windows7 で利用する場合には CPU-Z をみているかぎりでは確かにその通りに動作します。

けど、 FreeBSD/amd64 を動作させたときの上記の sysctl を見るとクロック可変の部分の幅がずいぶんあるのね。 Turbo CORE のコードはまだ書かれていないと思うので、まぁ、ひとまずおいておきますが・・。

それらしい sysctl MIB をあげてみました。

dev.cpu.0.freq: 700
dev.cpu.0.freq_levels: 3300/13635 3000/10925 2625/9559 2400/7417 2100/6489 1800/4620
1575/4042 1400/3195 1225/2795 1050/2396 875/1996 700/1597 525/1198 350/798 175/399 dev.hwpstate.0.freq_settings: 3300/13635 3000/10925 2400/7417 1800/4620 1400/3195

 
もしかしたら dev.cpu.0.freq と dev.cpu.0.freq_levels はあてにならないのかも・・。正しい値が dev.hwpstate.0.freq_settings だとしたら、実際に動作している CPU クロックは何になるのだろう・・。

ちょっと疑問に思った、今回のベンチマークの結果なのでありました。が、まぁ、どっちにしても Core が 6 個もあるので処理はじゅーぶんに速いです;-)。

6月 052012
 

KDE や Qt、あげくの果てには png のバージョンアップがあったりして最近の ports 回りは大変でしたなぁ・・。でもって libreoffice 、 ports 的には editors/libreoffice になるわけなんですけども、こいつは最近まるっきり make が完走しないのでホトホトいやになっていた。

libreoffice は make にも時間が掛るのでなおさら使いたくないモノだ。などと思っていたのですが、 make が通らなくなったのでキッパリと諦めることができた;-)。では、代わりに何かないかな?と探し回っていた思いついたのが KDE 由来のオフィススイート。

ついこの間、ports から okffice が全部削除されましたね。で、代わりに calligra というのになった。 koffice から calligra に名前を変更した。と、いうことですね。

と、いうことで libreoffice の代わりに calligra にインストールをしました。インストール自体は libreoffice の 1/3 程度の時間で済んだかな?結構早く make が終わったので嬉しい;-)。

さてと。日本語テキストの ports はあるかな? と探してみたら、あたた・・。無いようですね。 JKUG (Japan KDE Users Group) の翻訳担当の人に Twitter で聞いてみたら「手が回って無い状態です。」とのこと。そらそーですよねぇ。本体で手一杯のような気がします。お疲れさまです。

と、いうことで、calligra の日本語テキストを起こしてみました。

幸い koffice の日本語化は 2.3.2 まで進んでいるようでソースコード自体は koffice-l10n-ja-2.3.2.tar.bz2 としてリリースされています。このファイルを calligra に対応させてみました。あくまで対応させただけで、個別に追加の翻訳などは一切していません。

以下の URL にあるので利用したい人は試してみてください。 koffice-2.3.2 相当の日本語は表示してくれると思います。

calligra-l10n-ja-2.4.2.tar.bz2

あと、FreeBSD 用の ports も作りました。以下の URL にあります。

http://icmpv6.org/Prog/FreeBSD_ports/ports-calligra-l10n-ja-20120605.tgz

ダウンロードしたら /usr/ports/editors 辺りで展開して中に入っている calligra-l10n-ja-2.4.2.tar.bz2 を /usr/ports/distfiles/KDE/calligra-l10n/ にほーりこんだら make install でインストールされます。

やはり同じく koffice-2.3.2 相当の日本語は表示してくれると思います。

せっかく作ったので、一応 JKUG の ML には連絡してみたいと思っています。 KDE 本家に取り込まれるか、そして FreeBSD の ports として提供されるようになるかですねぇ;-)。

5月 072012
 

お遊びで ports 作りました;-)。

最近、jail で遊んでいるのですが、jail の動作確認のために jls ってコマンドを良く打ちます。でもって ls ってのを間違えて sl とか打ってしまうと SL がターミナル上を走るのですが、それの jsl 版があってもいいんじゃね? とか思った次第です;-)。

とは言いつつ、しょせんはお遊びなので ports の games/sl をインストールすると do-install: のところで合わせて sl と jsl の両方をインストールするように Makefile を改修しただけです;-)。

こーいうのって ports のメンテナの方にも送るのもアレなので、ここにノラ ports として置いておきます。

僕も私もインストールしたい。と、言う方は、ports の Makefile を覗いてみてください。あ。当然 pkg-plist も更新しているので make deinstall にも対応しています。

http://www.icmpv6.org/Prog/FreeBSD_ports/ports-sl-20120507.tgz

ほんとうにどうでも良い ports ですね;-)。 4/1 に出すべきだったかぁ?

4月 102012
 

いやはや。僕が利用している NotePC は以前のエントリにも書いたかもしれないですが ThinKPad X100e です。この NotePC は AMD の CPU を利用していて E-350 です。時々熱がこもって ACPI shutdown が走ったりするんですけども、NotePC では唯一 X11 の drm が動作する VESA ではない(ドライバは xf86-video-ati を利用しています)最後の NotePC なのではないかなぁ。と思っているところですが;-)。

で、この NotePC は現在 FreeBSD/amd64 9.0-STABLE がインストールされているんですが、つい最近までは suspend/resume しなかった。9.0-PRERELEASE までは suspend/resume していたんだけど、その後 RC になってからは ACPI 周りの問題からか、acpiconf -s3 すると resume はブラックアウトでフリーズ、あげくの果てには AC コンセントを抜き差ししないとブートさえもしてくれない状態だったので、もう本当にある意味あきらめていたんですけどね。

さすが CURRENT および STABLE は『生もの』ですね。 2012/04/07 辺りの 9.0-STABLE を csup して make build world と install したら見事に suspend/resume が復活しました。パチパチパチ;-)。

今回はその様子を動画に撮ってみたのでちょっと公開してみましょう;-)。こんな感じ。一分07秒の動画です。


20120410.jpg

※ “再生アイコン” が見えない表示されないブラウザの場合は上記写真をクリックしてください。

いやね。雰囲気的に resume は MacBook に近い動作をします。以下、寝て起きる上記の説明です。

1. Fn+F4 で suspend します。
2. X の画面からコンソールの画面にひとまず落ちてから寝ます。
2. 手前の緑の LED が二個点きました。右側が「スリープ状態」を示しています。
3. フタを明けて resume。緑の LED は一個だけの点灯になります。
4. resume 後は X が即座に表示され早速利用可能。
5. USB Wi-Fi の run0 を利用していますが、その LED が点滅し、しばらく後に利用可能。

とまぁ、動画的にはこんな感じで suspend/resume します。上記で「MacBook に近い動作」と書いたのはフタを明けてから利用できるようになるまでの時間のことを言っています。フタを明けるとただちに X が動作するのはこれまたすごいっ!! 今までの FreeBSD にはちょっと無い体験でした。

後、何回 suspend/resume をしても特に問題なくちゃんと寝て起きてくれます。 jobs の言うところの “It just works.” って感じでしょうか;-)。

で、まだあまり試していないのですが、一点問題があるように感じます。一番最初。電源投入後、一回目の suspend だけはどうやら Ctrl+Alt+F1 で X を後ろに飛ばしてからコンソールで acpiconf -s3 を打つ必要があるみたいです。で、その時の resume はちゃんと起きて Ctrl+Alt+F3 辺りで X の画面を戻したあと、以降は Fn+F4 で寝て、そして起きてくれるようになります。この辺りがまぁ、なんちゅーか本中華なんですが、もしかしたら僕の気のせいかもしれません;-)。

で、これだけサクサク suspend/resume が動作するんだから KDE4 の電源管理で Windows7 みたいに一定時間後には寝てくれるんかいな?などと、ちょっと思ってしまうのでありますが、実際に試してみました。

PowerProfile_1.jpg

KDE4 のコントロールパネルから「電源管理」メニューで色々設定してみます。あと、タスクバーにも電源管理アイコンがあって、ここからレジュームとかハイバネードとかシャットダウンとかあるんですけどね。

今回は PowerSave の設定で 10 分後に「スリープ」と設定して放置してみました。

あたたた・・。サスペンドはしてちゃんと寝てくれます。しかし、レジューム(起動)時には X がブラックアウトしていまいました。ただし、カーネルは死んでないので ACPI S5 ステートとかリモートからの ssh は可能なので本当に X の画面のみが見えない状態。と、いう感じでした。これは上で書いたタスクバーの電源管理から「スリープ」ボタンを押した時と同じ動作でした。

と、いうことは FreeBSD 単体ではサクサク suspend/resume するけど、 KDE4 経由の電源管理ではまだもう少し頑張りが必要だね。と、いう感じでしょうか。

けどもまぁ、そこまで贅沢は言いません。これだけサクサク、何回も suspend/resume してくれるのであれば全然問題はありません。今まで suspend/redume が動作するのは二回まで。三回目に起きた時には画面はブラックアウトだっただけにずいぶんと進歩してそして非常に嬉しいのであります。

上にも書いたとおり、CURRENT や STABLE は生ものです。次回 csup してカーネルを作り替えたら動作しなくなるかもしれません。なので、今回の環境は非常にじゅーよー。みたいな。この環境でずっと使い続けたい気分です;-)。

なお、今回はこのブログ初の動画でしたが、今後は機会があれば色々、動くものを掲載して行きたいと思います;-)。