12月 182014
 

デスクトップとして FreeBSD を利用するとなると色々な ports がドドドと入るのですが、その中に coretutils というのがインストールされることに気がついた。 ports 的には sysutils/coreutils になるんですが、こいつは何かというと Linux で利用されているような GNU のコマンド一式なんですね。 FreeBSD 的には /usr/bin/ 配下にあるコマンドの先頭に g が付いて /usr/local/bin/ に大量にインストールされます。別に新規に GNU のコマンドを入れなくて良いよー。と、なるのでありますが・・。

そもそも coreutils はどの ports に関連付いてインストールされるのか調べてみると kdepim4 がインストールしているみたい。うひっ!! すると KDE4 をインストールしていない人にはまるで関係の無い ports と、いうことになるじゃん・・。orz

今回は、既に /usr/bin/ などにコマンドがあるのに、新たに GNU のコマンドを入れてしまう coreutils をインストールしないように kdepim4 の ports を書き換えてみたいと思います。
環境は FreeBSD 10.0-RELEASE で ports-current 、 kdepim4 のバージョンは kdepim-4.14.2_1 で coreutils のバージョンは coreutils-8.23 になります。

1). kdepim4 の Makefile 参照
まず、 kdepim4 が coreutils-8.23 をインストールしていることが解ったので deskutils/kdepim4/Makefile を覗いてみます。すると、以下の行ですね。

 20  RUN_DEPENDS= ${KDE4_PREFIX}/bin/accountwizard:${PORTSDIR}/deskutils/kdepim4-runtime \
 21               ${LOCALBASE}/bin/gmd5sum:${PORTSDIR}/sysutils/coreutils

 
20 行目で RUN_DEPENDS が設定してあって 21 行目で gmd5sum を利用するために coreutils-8.23 をインストールするようです。
では、実際にソースコードはどこで gmd5sum を使うのか確認してみましょう。

 
2). 設定ファイルで利用されている?
kdepim-4.14.2_1 の中では libkleo/libkleopatrarc.desktop というファイルの中でのみ gmd5sum が利用されているようです。ついでに gsha1sum も利用されているようです。他のソースコードでは全く利用されていないようですし、また、他の g シリーズのコマンドも利用されないようです。

これだけのために g シリーズのコマンド一式インストールするんかい!? となるので、是非ともなんとかしたいモノです。

 
3). md5sum と sha?sum のみインストールする ports を作る
coreutils の他のコマンドは要らないので md5sum と sha?sum のみインストールする ports を作りました。
実は FreeBSD の md5 や sha1 で代用できるんかな? とか思ったのですが md5sum や sha1sum には -c (–check) オプションがあって kdepim4 の kleopatra (これについては後で詳しく説明します;-) の中ではまさしく -c オプションを利用しているので FreeBSD に標準で付いているコマンドではダメなんですね。
あと、 openssl md5 オプションでも -c に相当するオプションはありませんでした。
なので、しょーがない。 md5sum と sha?sum のみをインストールする ports を作成しました。

http://icmpv6.org/Prog/FreeBSD_ports/ports-md5sum-20141216.tgz

ちなみに FreeBSD の md5 に -c 相当のオプションないんかい? などと思いウェブを色々調べたのですが、 BSD 系の人は、この -c オプションが無いためにスクリプト書いたりと色々ナンギしているようですね。

上記 ports は、もとは sysutils/coreutils を利用していますが、先頭の “g” を取って必要最小限なモノしかインストールしないように pkg-plist を書き換えました。
Makefile 中の CONFLICTS で coreutils-* も指定してあるので md5sum と coreutils の両方インストールすることはできません。

ダウンロードしたファイルは /usr/ports/sysutils/ に展開してください。

 
3). kdeppim4 の Makefile の編集と files/ の下のファイルを一個消す
上に掲載した kdepim4 の Makefile の 21 行目を以下のように直します。

 20  RUN_DEPENDS= ${KDE4_PREFIX}/bin/accountwizard:${PORTSDIR}/deskutils/kdepim4-runtime \
 21               ${LOCALBASE}/bin/md5sum:${PORTSDIR}/sysutils/md5sum

 
そして、不要となったファイルである deskutils/kdepim4/files/patch-libkleo__libkleopatrarc.desktop を削除します。

あとは kdepim4 を make && make deinstall && make reinstall し直せば OK。ノラ ports である md5sum も合わせてインストールされます。

 
4). kleopatra をちょっと説明
そもそも libkleopatrarc ってのは KDE の中で何をしているモノなのか?
コマンド的には kleopatra というのがあります。では kleopatra とはなんなのか? 基本的には証明書マネージャーの GUI 版で、ヘルプを見てみると「証明書マネージャと統合された暗号 GUI」とのことで PGP キーなどを管理するソフトウェアになります。

普段 PGP などはコマンドラインで利用しているかと思いますが、 kleopatra を利用すると GUI で鍵の作成・サイン・エクスポート・管理などが行えます。実際に利用してみると中々便利ですね;-)。

ちょっと kleopatra をコンソールから起動してみます。するとまず最初に「kleopatra セルフテストの結果」が起動し、そのときにコンソールにはログとして以下が表示されます。

    :
ChecksumDefinition[ "sha1sum" ] ("xargs", "-0", "sha1sum", "--") 
ChecksumDefinition[ "sha1sum" ] find -print0 |  "/usr/bin/xargs" ("-0", "sha1sum", "--") 
ChecksumDefinition[ "sha1sum" ] ("sha1sum", "-c", "--") 
ChecksumDefinition[ "sha1sum" ] "/usr/local/bin/sha1sum" ("-c", "--") "%f" () 
ChecksumDefinition[ "md5sum" ] ("xargs", "-0", "md5sum", "--") 
ChecksumDefinition[ "md5sum" ] find -print0 |  "/usr/bin/xargs" ("-0", "md5sum", "--") 
ChecksumDefinition[ "md5sum" ] ("md5sum", "-c", "--") 
ChecksumDefinition[ "md5sum" ] "/usr/local/bin/md5sum" ("-c", "--") "%f" () 
    :

 
セルフテストの結果に赤い NG のがあるのであれば、問題を取り除き、全部緑色にしたほうが良いでしょうね。
キャプチャはありませんが、例えば security/gnupg をインストールするときに make config のオプションで [x] SCDAEMON としてから再インストールする必要があったりします。

が、しかし、ログを確認すると今回の目的である md5sum と sha1sum のみのインストールができたので今回はよしとしましょう。

ちなみに md5sum と sha1sum が記載されているファイルは /usr/local/share/config/libkleopatrarc としてインストールされます。すると kleopatra は起動時のセルフテストにおいてはこのファイルを参照して動作しているようですね。

libkleopatrarc はインストールしたものを利用しても良いし、以下のように自分の設定として保存し、それを手で編集しても良いです。

$ cp /usr/local/share/config/libkleopatrarc $HOME/.kde4/share/config/

 
上記のコマンド実行後に自分の $HOME に置いた設定ファイルを手で編集し、 ports を利用せずに個別にインストールした md5dum と sha1sum を利用するように変更したりもできるようになります。

 
それにしても、どうして coreutils-8.23 を使うのがイヤかというと、とあるプログラムをインストールしようとして configure を走らせたのですが、これがなんと /usr/bin/install ではなく /usr/local/bin/ginstall を利用したりと FreeBSD 由来のコマンドではなく ports からインストールした GNU のコマンドを利用しているんですね。

そんなのはイヤだー。純粋な FreeBSD の /usr/bin/* なコマンドを利用したいよー。などと思ったのが今回のコトの発端なのであります。人によっては「そんなんどっちでもいーじゃん。」ってのがあるかもしれませんけどねぇ。

 
しかし、今回作成したノラ ports である md5sum は coreutils の中から一部のコマンドを切り出しただけの ports なので、似たようなのが色々できそうですね。例えば Linux の ls(1) を利用したい場合には ls のみをインストールする ports である gls とか簡単に作れそう;-)。

しかし、そんなことは、多分、僕しかしないだろうなぁf(^^;;。

12月 162014
 

以前のエントリで「KDE4 で VirtualBox を動かしたしたときに ISO がマウントできない件。」と、いうエントリを書きました。FreeBSD 上で動作する VirtualBox でゲスト OS はISO イメージを mount できない。 dbus が悪さしているようだ。って感じなんですけども。

で、そのエントリに対してコメントを頂きました。なるほど。 issetugid を undef すれば良いのですね。コメントくださった方、ありがとうございました。

で、 make configure 走らせて config.h 編集してから make && make deinstall && make reinstall するのは大変なので、 ports で選択できるようにしました。

dbus_VirtualBox_1

make config に ISSETUGID オプションを [x] にすると Support VirtualBox ISO image mount が有効になります。

gnome@freebsd.org に連絡する必要があるような気がするんだけど、きっとノラ ports のままにしておくと思いますf(^^;;。
コミットしてくださる方がいると非常に嬉しいですが VirtualBox を利用していて ISO イメージをマウントできないのは KDE4 を利用している人だけなのかな?

FreeBSD で VirtualBox 使ってて ISO イメージがマウントできない。と、お嘆きの方は以下の ports を利用してみてください。
あ。変更したのは dbus/Makefile のみです。

http://icmpv6.org/Prog/FreeBSD_ports/ports-dbus-VirtualBox_ISO_image_mount-20141215.tgz

ISSETUGID オプションを有効にすると configure ファイルの ac_func から issetugid を削除します。すると config.h では #undef HAVE_ISSETUGID になります。それで make すると VirtualBox のゲスト OS で ISO ファイルがマウントできるようになります。

12月 082014
 

iPhone6 は SoftBank で、でもって ZTE Blade Vec 4G は MVNO である ASAHI ネットの「ASAHIネット LTE」の 1 ギガプランを契約していたのですが、昨今の MVNO は 2GB へと増量したりしていたので、サポートに問い合わせてみたところ ASAHI ネットでは今のところ増量する予定は無いとのこと。

時期を同じくしてぷららが期間限定で SIM 手数料 3,240yen 無料キャンペーンをしていたのでそっちを申し込みました。 ASAHI ネットの LTE は 12 月末まで利用し、今回新しくぷららモバイル LTE を契約したのですが、利用開始月は無料なので、実質的に乗り換え時には特に問題も無駄な料金も発生することなく、スルっと行えたのであります。ただし 12月中は二枚の SIM カードが利用可能な状態です;-)。

 
ぷららモバイル LTE は「定額ライトプラン」を申し込みました。月々 972yen で一日 50MByte のデータのやり取りができます。対して ASAHI ネット LTE は三日で 100MByte だったので、ぷららモバイル LTE のほうがゆとりがあります。僕的には転送量はこれで十分なんじゃね?とか思えてきます;-)。

と、いうことで、ぷららモバイル LTE はキャンペーン期間中である 2014/11/30 に申し込んだので、申し込み時の SIM 料金を含む約 3,000yen は免除。手元に SIM カードが届いたのは 2014/12/06 だったのであります。あ。ぷららモバイル LTE には SMS オプションがあったのでそれも合わせて申し込みしました。

今回は MVNO を変えたときのお話をちょっとしてみたいと思います。

 
1. 12 月中の使い道
12 月中は SIM カードが二枚あることになるので、 ZTE Blade Vec 4G にはぷららの SIM を、今まで利用していた ASAHI ネットの SIM は Nokia Lumia620 の Windows Phone8.1 に入れて利用してみようと思ったのですが、以前は利用できていた ASAHI ネットの SIM が利用できない状態になっているんですね。

Windows Phone8.1 のビミョーなアップデートの問題なのか APN を設定しても docomo の回線に接続できないんです・・。

で、試しにぷららの SIM を Nokia Lumia620 に入れて ASAHI ネットの APN で接続すると、ピクトアンテナが立つし。あれあれ?おかしいじゃん。なんで? 頭がこんがらがります・・(o_@)。

ちなみに、どうして繋がらないのか解らないが、Windows Phone8.1 のキャプチャを二つ。

なんか、「設定」->「アクセスポイント」->「情報」を見ると MNC の情報が 103 とかになっているんだけど・・。

asahi-net_plala_1

こっちは「設定」->「ネットワーク+」->「オペレータ情報」の [SIM 設定] の内容。こっちは合っている。

asahi-net_plala_2

すると、「アクセスポイント」アプリの内容を書き換えてあげないとダメっぽいような気がしないでもないが・・。けど、ぷららモバイル LTE の SIM を入れると ASAHI ネットの APN でアンテナたつし・・。もうわけわかんない・・。

 
2. mobac.net って?
と、いうことで、ASAHI ネットもぷららも SIM の APN には lte.mobac.net を指定しろ。って書かれているんですね。まぁ、僕がぷららモバイル LTE を申し込んだときに届いた資料には、今後 APN は lte.nttplala.com のほうを指定しろ。って紙が一枚入っていましたが。

APN が一緒でユーザ認証のみで ISP を判断しているとしたら、トラフィックはややこすぃーことだぁ。どうなるんだぁ?

さて。そもそも mobac.net ってのは一体何なんだ? ということになり、調べてみると、今まで僕の知らなかった新しい言葉である “MVNE” ってのが登場してきます。 MVNE ってのは Mobile Virtual Network Enabler の略だそうです。

僕が思うに、その昔、インターネットが流行りだして ISP が雨後の筍のようにドドドとサービスを開始した状況の時に「一次プロバイダ」と「二次プロバイダ(もしくはサブプロ)」などという言葉がありましたが、それと似たような感じかな?などと思うんですけども。

電話キャリアは NTT docomo 、一次 ISP は OCN 、二次 ISP は ASAHI ネットとぷらら。

そんな感じで MVNE とMVNO があるんだと思われます。

以下にキャプチャ画面を二つ。

o. ASAHIネット LTE の SIM を入れてインターネット接続したとき

asahi-net_plala_4

o. ぷららモバイル LTE の SIM を入れてインターネット接続したとき

asahi-net_plala_3

接続元アドレスを表示するサイトに接続して確認したんですが、ふむ。接続元アドレスが違いますね。 どちらも ASAHI ネットの APN から接続しています。あ。当然、ユーザ名とパスワードも ASAHI ネット LTE のモノを利用しています。
ただし、出口の IP アドレスが別物になっている。中々面白い体験というか、頭がこんがらがります(o_@)。

 
3. 使ってみた感想。
上記で説明した通り ASAHI ネットもぷららも OCN のバックボーンを利用してるんだからそんな変わんないじゃない? と、いうことになります。

例えば IIJ は MVNE として展開もしていて、自社で MVNO として SIM を販売すると共に、他の MVNO である BIG SIM に対してもバックボーンを提供しています。 OCN と IIJ で、どっちが速いか、それはつまりはどっちが太いバックボーンを持っているか? と、いうこになると、この勝負は見ものですね;-)。

しかし、ASAHI ネットもぷららも OCN のバックボーンなので、多分なぁんにも変わらないのだと思うのでありますf(^^;;。

 
一日で使える容量が増えたのは非常に良いことですね。それだけのために今回はぷららモバイル LTE に乗り換えた。と、いうことになるのであります。
申し込み時の SIM 料金を含む手数料無料なところへだとサクっと乗り換えられますね。今回は中々良いタイミングでした;-)。

12月 062014
 

ちょっと前のエントリに「iPhone6で音楽聴くのやめた。」というのを書いたのですが、 iPod mini のバッテリは結局三時間持たないことが解ったので、新規にバッテリを購入し、更に容量 32GB 化する改造を実施しました。今回はそのときの顛末を写真付きで書いて行きたいと思います。

まず、ウェブで iPod mini の分解・改造方法を探します。今回は以下の URL を参考にさせて頂きました。ありがとうございました。

iPod mini 4GBのメモリ32GB化とバッテリー交換(写真付き)

さてさて。これが、僕の持っている iPod mini の情報。

iPod_mini_1

容量 4GB で、多分、第一世代のヤツだと思うんですが、モデル番号は M9434J です。

 
上記 URL に従いケースからマザーボードを取り出しバッテリと HDD を外します。そして、新しいのと並べた図。

iPod_mini_2

まず、バッテリーを外してから HDD を交換しましょう。とのことでしたのでその通りにしました。

今回の新しいパーツはバッテリーが送料込み 800yen くらいのやつ見つけました。いやー。安くて嬉しいですね;-)。
そして GREEN HOUSE の CF QUAD 32GB です。転送速度は 65MB/s 433 倍速って書いてあります。
これは実は DELL X1 を CF による SSD 化しようと思って買ったヤツなのですが、実際に DELL X1 に装着し、 Windows7 とかインストールしたのですが、遅すぎて断念して、眠っていたのを利用しました。

 
新しい CF と バッテリを装着し、またケースに戻すのですが、ケースに戻す時には慎重に。と、書かれています。グググと押し込んでいくと、以下のところで一旦止まりますね。

iPod_mini_4

ケース内部のガイドに沿って押し込んでいくのですが、ここで一旦止まります。下から覗くとマザーボードが確かに引っかかっているので、ケースの下のほうから棒などでグイっとマザーボードを押少し上げてあげるとズズズとまた入って行きます。

HDD を包んでいたゴムとテープを付けるとこの現象に陥りますね。交換した CF はハダカでケース内にいれると結構簡単にスルっと入って行きます。これ、今回の僕の体験談;-)。

一番下まで入ると CF が確かにガタガタ動いているので、 HDD をカバーしていたゴムをケースと CF の間にグイッと押し込んであげて CF が動くのを抑制してあげました。これで十分かな?

 
さて。次はもとに戻して起動です。がっ!! orz

iPod_mini_5

中途半端にデータが書き込まれている CF だったのですが、それだと見事にブートできませんでした。orz
iTunes に接続して初期化すればいーやー。とか思っていたのですが、甘かった。初期化ボタン押しても iTunes で認識してくれない。 Mac 版と Windows 版の最新 iTunes で試しましたが、どちらも認識してくれませんでした。

しょーがないのでもう一度分解して CF を取り出し、 Windows でフォーマットし直しました。そして、再度トライすると、おぉっ!! 無事に iTunes で認識し、初期化ロジックが動き出したのでありました。ふぅ・・。

今まで利用していた CF はまず、初期化してから iPod mini に組み込みましょう。これ、今回の僕の体験談;-)。

 
でもって無事に改修完了。起動したあとはこんな感じ。

iPod_mini_6

しかし、それにしても携帯音楽プレーヤーで 32GB などという広大な領域を持った機器は初めてだぞぉ。 iPhone だって三台使ったけど、どれも一番容量の少ないヤツを購入していたし・・。

iTunes 経由で楽曲をドドドと入れるのであります。ちなみに僕は全部で大体 44GB 程度の楽曲を iTunes で管理しているようですね。全部とはいきませんが、2/3 くらいは iPod mini に入れられるようになった。と、いうことでしょうか・・。そんなに持ち歩いてもしょーがないような気がするけど・・。f(^^;;。

無事に古い iPod mini が生まれ変わりました。これからはこれで音楽を聴くべな;-)。

11月 302014
 

最近、ようやっと iPhone6 用の防水・対衝撃ケースが出て来たので購入しました。僕は魚釣りに行ったりキャンプや野宿などするので、ドボーンっ!! と落とすことは無くとも波しぶきくらいは防いでくれるケースが必要になるのであります。

で、今回購入したのは Griffin Technology iPhone6 SURVIVOR というヤツです。(多分パチモンだと思うがf(^^;;) 実はこれ、 iPhone5のときにも利用していたんですね。

届いたのはこんな感じで。

IMG_0307_iPhone6_WC_1

iPhone6 に装着してみた感じだとこーいう風になります。

IMG_2014_iPhone6_WC_2

実際に使用してみた感じを少々書きます。

iPhone5 に比べて iPhone6 は大きいのであらゆるところでその影響が出ているかなぁ。と、感じました。裏のゴムみたいな手触りは iPhone5 のときに比べて滑りやすくなったと感じました。そして薄くなった。耐衝撃性が多少落ちたかな? などと個人的には思えますが、実際のところどーなんだろ?

表面のクリアシートはベコベコになり、ディスプレーとクリアシートの間には大体 2mm くらいの隙間ができています。これも iPhone5 の時にくらべると劣化している部分でしょうかね。
ただ、画面に対するタッチはちゃんと動作するので、まぁ、隙間が大きいねぇ。と、いう程度です。
タッチ ID もちゃんと利用できます。なので、これはこれで良いかなぁ。と、いう感じがします。

防水についてですが、上にも書いた通り、波しぶきが防げれば良い感じなので・・。

しかしまぁ、これでようやっと本格的な iPhone6 の防水・対衝撃ケースが出て来た。と、いう感じになりました。ふぅ。

IMG_2014_iPhone6_WC_3

これが今までの防水ケースの一覧ですね。左から iPhone6 -> 5 -> 4 です。 iPhone4 の時が一番贅沢でしたね。 BALLISTIC のケースですからねぇ。こいつはゴツかった;-)。

 
さてさて。iPhone6 の防水ケースについては他にも色々買ったので合わせて書いておきます。

まずは写真を。

IMG_0322_iPhone6_WC_4

左側の巾着袋はアキバのとあるショップでジャンクで 100yen で売っていたので買ってみました。最近は 100yen ショップでも売っていたりしますね。
袋に入れて口をキュッとしめれば良いので簡単ですが、フィット感が無いのでイマイチですね。

右側のは 990yen で購入しました。タッパーの中に iPhone6 を入れて密閉する感じで、ありとあらゆる操作ができません。
ディスプレーの表面は伸びのある柔らかい素材を利用しているので僕的には不安感があります。
実際に iPhone6 を入れてみましたがディスプレーにピタっとくっつくのですが空気が入って気泡ができると美しくないです。あと、写真でも解ると思いますが色が濁っている。ふむ。

側はプラスチックなので耐衝撃性が非常に不安です。

 
と、いう感じで、僕的には iPhone の防水・対衝撃ケースは必須なので、毎回購入している。と、いう状態なのですが、これを読んだ人で、購入前に色々聞きたいことがある。と、いう人はコメントに書き込んで頂ければと思います;-)。

 

11月 292014
 

iPod Touch 1G 以降、電車に乗ったときに音楽を聴くのは iPone3G -> 4 -> 5 と来て、 iPhone6 でもそれは引き継いでいたんだけど、いやー。さすがに iPhone6 は大きくてポケットの中に入れておくにはジャマになるので、ここいらで iPhone6 で音楽を聴くのは終了にしようと思うようになりました。

では、今まで聴いていた音楽や英会話などはなにで聴くか?というと・・。約 10 年ぶりくらいに iPod mini を復活させました。僕は初代 iPod Touch を買う前は iPod mini を利用していたのですが、それを再利用することにしました。

ここ 4,5 年ほったらかしにしてあった iPod mini ですが、実はバッテリーを一回交換しています。で、久しぶりに取り出したのですが、そこはかとなくバッテリーがまだ利用できる状態ですね。二日くらい(計四時間くらい)持つような感じです。

しかし、まぁ、せっかくなので新品のバッテリーを一個注文しました。ウェブサイトで iPod mini 分解・バッテリー交換・ HDD 交換などで検索すると色々出てくるし、僕の持っている iPod mini は 4GB なんだけど、これを SD カードに換装すると 32GB にまで容量を増やせるとのことなので、今のバッテリがへたってきたら iPod mini 分解・換装のエントリを書く予定です;-)。

 
さてと。 iPhone6 の他に新たに iPod mini を持ち歩く必要が出て来たのだけど、僕が待ち歩くガジェットはだいたいこんだけになりました。

IMG_3544_ gadget_1

左から

・GRATINA ガラケー (京セラの KCP1 端末で au SIM 通話用)
・ZTE Blade Vec 4G (Android で docomo MVNO SIM 利用)
・iPhone6 (iOS で Softbank SIM)
・iPod mini (音楽聴く用)

とまぁ、こんな感じで持ち歩くことになりそうです。以前から携帯 3 キャリア全て持ち歩いている状態のところに今度は音楽用端末が追加された。と、いうことになりそうです。 OS 的には手元には Windows Phone8.1 がありますが、あまり出番はなくなりつつあります。

 
さてさて、久しぶりに iPod mini で音楽を聴くようになったので引き出しの奥に眠っていたFiiO のアンプ兼リモコンも引っ張り出してきて古い環境を整えつつある状態なのであります。

約 10 年前の iPod mini の復活です。こいつは色々改造(換装)できる端末なので一台持っていても良いかもしれません;-)。

11月 232014
 

僕は自宅のサーバとして VMware ESXi 5.1 を利用していますが、ゲスト OS としては FreeBSD がメインで、他の OS も合わせてだいたい 10 台が動作しています。

今回は VMware ESXi 上に FreeBSD/amd64 10.0-RELEASE をインストールして、それをポートサーバとして運用し、他の FreeBSD のゲスト OS に対して FreeBSD のポートサーバから各ゲスト OS に対してシリアルコンソールからログインできるようにしてみたいと思います。

まずは今回の構成図を先に掲載しましょう。

console_cap0

o.FreeBSD でポートサーバを作成します
o.実際に D-sub 9pin ケーブルではなく VMware の機能を利用します
o.ポートは /dev/cuau0,1,2,3…. と、ゲスト OS の数だけ増やせます

 
1. ポートサーバ側のシリアルコンソールの設定
さて。まずは FreeBSD のコンソールサーバにシリアルポートをたくさん生やします。コンソールサーバを shutdown した状態で VMware vSphere Client からコンソールサーバの「仮想マシン設定の編集」画面を開きます。その画面でシリアルポートを追加します。

一個目に追加したのは FreeBSD 的には cuau0 、二個目に追加したものは cuau1 になります。

console_cap3

追加するシリアルポートの「シリアルポート出力」は [名前付きパイプに接続] を選択し [次へ (>)] を押します。

console_cap1

次に「パイプ名及び属性」の設定ですが、以下の設定をします。

console_cap2

1).パイプ名
ポートサーバとゲスト OS を接続するときに利用する名前を指定します。
今回は “vm01-vm02″ という名前にしました。vm01 とvm02 を接続する。と、いう意味がこもっています;-)。ポートサーバと二個目のゲスト OS を接続ときは “vm01-vm03″ などと指定すれば分かりやすいでしょう。

2).近端
ポートサーバ側で利用方法ですが、ポートサーバなので [サーバ] をを指定しました。

3).遠端
[仮想マシン] を選択します。

3).デバイスのステータス
パワーオン時に接続にチェック

4).入出力モード
ポーリング時に CPU を放棄は良くわからないのですが、チェックを外しましたf(^^;;。

 
以上の手順でゲスト OS に接続する数だけシリアルポートの設定を追加し作業は完了です。ポートサーバな FreeBSD を起動しましょう。

 
2. ゲスト OS 側のシリアルコンソールの設定
1. ではポートサーバ側のシリアルポートを、ゲスト OS の数だけ追加しましたが、ゲスト OS 側ではシリアルポートは一個で十分です。

「パイプ名及び属性」の設定時に「パイプ名」のみ気をつけます。ポートサーバの cuau0 に相当する”シリアルポート 1″ はパイプ名に vm01-vm02 と付けました。それと同じ名前にします。

図にするとこんな感じでしょうか。

console_cap11

接続したいモノ同士で「パイプ名」を揃える。と、いうことになり VMware ESXi 内部で結びつけてくれるようです。

 
3. ゲスト OS 側のシリアルポートの設定
これについては FreeBSD がゲスト OS であった場合には以前書いているのでそちらの URL を参考にしてください;-)。

PRIMERGY MX130 S2 を FreeBSD で利用する。

 
以上で全ての準備が整いました。必要であれば、各サーバをリブートして実際に接続できるか確認してみましょう。
僕の場合は cu(1) コマンド を利用しています。

$ cu -l /dev/cuau0
can't open log file /var/log/aculog.
Connected

FreeBSD/amd64 (freebsd-02.running-dog.net) (ttyu0)

login:

 

こんな感じになれば OK で、あとは cuau の数だけ試してみましょう。

 
さてと。最後にもう一点。では、コンソールサーバのシリアル接続はどうするのだ?と、いう話があるのですが、ふむー・・。実は /etc/ttys とか変えたり、シリアルポートを追加したりして色々試したのですが、ダメでした。orz と、いうことで、今回はシリアルコンソールと化した FreeBSD に対するシリアル接続の設定についてはナシということで・・。

ちょっと弱いような気がしないでもないんですけどねぇ・・f(^^;;。

11月 152014
 

今週のアキバ PC ホットラインを見ていたら「CPU WARS の新作が登場」という記事を見つけたのですかさずゲットしてきました;-)。

週末にアキバにいってお店で Volume.1 と 2 の両方を購入しました。

IMG_0208_CPU_WARS

以前、 Volume.1 が出たときに「欲しいモノだ。」などと思っていたのですが、結局そのままになってしまい、今回 Volume.2 が出たというので、そのタイミングで両方をゲットした。と、いう感じなのであります。

それにしても表のビニールはやぶってないので、中は僕はまだ見たことが無いのであります;-)。

そもそも、僕の場合はカードゲームで CPU 対戦するのではなく、リアルに CPU 取り出して対戦することができるくらいたくさんの種類の CPU が手元にあります。 x86 系だけでなく、 Volume.2 のサーバ系 CPU も SPARCMIPS 、更には Itanium2 など色々持っているので、こちらも多分リアルに CPU 対戦できると思います;-)。

けどもまぁ、せっかくなので CPU WARS を、リアルな CPU たちと一緒に、一応手元に置いておくことにしました;-)。

これもある意味『CPU コレクション』だぜぃ;-)。

11月 032014
 

Intel Pentium 20 周年記念ということで手持ちの Pentium4 の掲載しています。前回掲載したのは順番が入れ替わってしまった Northwood より前の Willamette コアでした。そして、今回は Soket478 最後のコアである Prescott コアの登場です。

この CPU は廃棄予定の PC サーバから引っこ抜いたと記憶しています。

廃棄確定の PC サーバだったのですが、当時、僕は会社支給の PC で Pentium4 なヤツを利用していたのでそれをパワーアップすべく引っこ抜いてきたこの CPU を利用しました。
最初に入っていたのは Northwood コアの CPU でしたが、 Prescott は 600MHz くらいクロックが高くて 2.8GHz くらいになったかと思います。しかも HTT が動いて OS 的には二個の CPU として認識します。うひひ。これは非常に嬉しい。

しかし、その分フロントファンがぶあんぶあんと分回るようになってしまったんですけども、まぁ、自宅環境ではなく、会社での環境だし、多少のファンの音は気にならないか。って感じで;-)。

と、いうことでこちらが CPU の表です。

Socket478_Pentium4_ Prescott_D0_1

ロットは SL7 なので Prescott で、しかも HTT が有効になっている CPU です;-)。そして、この CPU のステッピングは D0 です。 Prescott は他にもステッピングはもっとあるような気がしますが。

こちらは裏側。

Socket478_Pentium4_ Prescott_D0_2

しかし、廃棄予定の PC サーバから抜き取って、それがデスクトップ PC のほうで復活するのでなんか良い感じ、無事にリサイクルができているねぇ。って感じなのであります;-)。

 
さてと。手元の CPU では Soket478 な Pentium4 はこれが最後です。でもって、 Intel 的にも Soket478 な Pentium4 はこれが確か、最後ですね。 Intel はこのあと LGA775 に移行していったと記憶しています。 LGA755 についてはもう少しあとに書くことにして、その前に Soket478 をもう三回くらい書いてみましょうかねぇ;-)。

10月 272014
 

必要に迫られて perl でグラフを書くことになりました。 perl でグラフを書くためには以下のモジュールを利用すれば良いみたいです。

円グラフ: GD::Graph::pie
線グラフ: GD::Graph::lines
棒グラフ: GD::Graph::bars
棒と線の混ざったグラフ: GD::Graph::mixed

などを利用するとサクっとグラフが書けるし、ウェブで検索すると、そのためのサイトがちらほらとあるので非常に簡単にグラフが書けてよかったです。

しかし、GD::Graph の問題点もちらほら。

一個目
GD::Graph::mixed を利用したとき、グラフの右側が折れ線グラフの値のラベルで左側が棒グラフのラベルだとした場合、 y2_min_value の値が有効にならないみたいです。 y1_min_value の値と一緒になってしまうという、明らかにバグちっくな動作をしてしまう。利用している GD::Graph のバージョンの影響もあるのかな?

ちょっとサンプルコードを。

$graph->set(
        :
    types        => [ qw(bars lines) ],
    y1_max_value => 5,
    y1_min_value => 0,
    y2_max_value => 100,
    y2_min_value => 70,
        :
);

 

上記のようなコードにした場合、y1_min_value も y2_min_value も結局 “0” から始まってしまうので mixed グラフはあきらめて lines と bar のグラフを二個表示させるようにしました。orz

 
二個目
円グラフでグラフの中に文字を表示したい場合、その文字列が長いと悲しい状態になってしまいますなぁ・・。

以下、サンプルのグラフ。

test_pie0

でもって、これを回避するために GD::Text::Align など GD::Text 系を利用して色々編集できるらしいのですが、ウェブで探してもサンプルコードや、実際に表示できる成果物のグラフが無いので利用するのを断念しました。

php でグラフを書く場合には絵グラフの横に各フィールドの説明分を表示できるみたいなんですが perl ではそれができないみたいです。
表示しようとする文字列に “\n” を入れると改行はしてくれますが、センタリングしてほしいなぁ。とか、均等割付けしてほしいなぁ。と思う場合にはどうすんべな。とか思うのですが、それもあきらめました。
なので、 HTML で以下のように表示するようにしました。

test_pie1

これは簡単にできたのでコードを掲載してみます。

#!/usr/bin/perl

use strict;

use GD::Graph::pie;
use GD::Graph::colour qw( :files );
use GD::Text;

use Jcode;

GD::Graph::colour::read_rgb("./rgb.txt");

my @count  = qw(4 5 3 2 5);
my @color  = qw(OldLace OliveDrab OrangeRed PaleGoldenrod PaleTurquoise);
my @title  = (
    "1.長い文字列のデータ $count[0]",
    "2.長い文字列のデータ $count[1]",
    "3.長い文字列のデータ $count[2]",
    "4.長い文字列のデータ $count[3]",
    "5.長い文字列のデータ $count[4]",
);

#my @data = ([@title],[@count]);
my @data = ([@count],[@count]);

my $pie   = GD::Graph::pie->new(190,200);
$pie->set(title   => jcode("円グラフ")->utf8,
    axislabelclr  => 'black',
    dclrs         => [ @color ],
    pie_height    => 0,
    start_angle   => 180,
    transparent   => 0,
);

GD::Text->font_path("./");
$pie->set_title_font("ume-tgc4.ttf",8);
$pie->set_value_font("ume-tgc4.ttf",9);

my $image = $pie->plot(\@data);

my $graph = "./test_pie.png";
open( OUT,">$graph");
binmode OUT;
print OUT $image->png();
close OUT;

my $html = &make_title(\@title,\@count,\@color);

print "Content-type: text/html;charaset=utf-8\n\n";
print <<EOF;
<HTML>
<HEAD><META HTTP-EQUIV="Content-type" CONTENT="text/html;charset=utf-8"></HEAD>
<BODY>
<TABLE BORDER="0">
<TR><TD><IMG SRC="${graph}"></TD><TD>${html}</TD></TR>
</TABLE>
</BODY>
<html>
EOF

exit 1;

##
sub make_title {
    my ($title,$count,$color) = @_;

    my $c = 0;
    my $html = "<table bgcolor=\"#DCDCDC\" border=0 class=\"sen\">\n";
    foreach (@$title) {
        $html .= "<tr bgcolor=\"#FFFFFF\" class=\"font\">\n";
        $html .= "<td bgcolor=\"$color->[$c]\">$count->[$c]</td>\n";
        $html .= "<td>$title->[$c]</td>\n</tr>\n";
        $c++;
    }
    $html .= "</table>\n";

    return ($html);
}

 

メインルーチンはグラフを書くのに一生懸命になっていて、サブルーチンの make_title() では TABLE タグを利用していてダサいですが、円グラフのフィールドに書くべき文字列を別途表示するようにしました。
既に組み立てた配列のデータをそのまま利用しているので比較的容易に情報を別途表示することが可能になりました。
詳細についてはコードをじっくりと追ってみてください;-)。あ。 make_title() の中ではスタイルシートとかバシバシ書くと更に見栄えが良くなると思います。

とまぁ、こんな感じで文字列が長い円グラフもなんとか見栄え良く表示できるようになりました。めでたしめでたし;-)。

 
ちなみに上記のコード中で利用している rgb.txt は emacs や netpbm に含まれているモノを利用できます。フォントは ume-tgc4.ttf を利用していますが、これは ume フォントに含まれているモノを利用しました。