3月 012015
 

最近はほとんどの NotePC にカメラが付いていて Windows とかだと Skype しよう。 Mac だと FaceTime しよう。などと言っていますが、普段はほとんど使わない(と、僕は思う)んだけど、実際にはどうなんでしょうか?

そんな感じの標準装備のカメラですが OS に FreeBSD を利用していた場合にどのような目的でどう使う? ってか、その前に「ここに付いているカメラは FreeBSD で動くの?」などと思ってしまうのですが、今回は実際に NotePC に付いているカメラを FreeBSD で利用してみるとこにしましょう。

 
今回登場する NotePC は僕の持っている ThinkPad Edge e145 です。このブログには何回か登場しているのですが FreeBSD がバリバリ動作しています;-)。この ThinkPad Edge e145 も最近の NotePC のトレンドを追いかけているようで、ディスプレーの上にカメラが付いています。

今回はこのカメラを利用して色々やってみたいと思います。もしかしたら、ネタ的にはもう既に枯れているかも・・f(^^;;。

 
1). カメラを認識させる
最近の NotePC に付属のカメラはほとんどが USB に接続されているようですね。 pciconf -lv とか usbconfig list コマンドを叩き、デバイス的に、どこにカメラが接続されているか確認しましょう。

 # usbconfig list
    :
ugen4.2: <Integrated Camera Vimicro corp.> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (256mA)
    :

 
ThinkPad Edge e145 の場合は USB の ugen4.2 として認識されているようですね。と、いうことでこいつを正しいデバイスとして認識させてみましょう。

 
2). デバイスドライバのインストール
FreeBSD の純正デバイスドライバというのは存在してないのですが、 Linux 方面で開発されたキャラクタデバイスを読み込むドライバを FreeBSD に対応させた Cuse4BSD を利用します。 ports 的には multimedia/cuse4bsd-kmod になります。
まず、これをインストールし、続いてキャラクタデバイスをビデオデバイスとして認識させる webcamd をインストールします。 ports 的には multimedia/webcamd になります。まぁ、 webcamd を make install すると関連性で cuse4bsd-kmod もインストールされますが;-)。

そして multimedia/cuse4bsd-kmod を make install したときにインストールされた cuse4bsd.ko を kldload します。

# kldload /boot/modules/cuse4bsd.ko

 
カーネルモジュールをロードしたあとに wbecamd を起動し /dev/video0 として USB カメラを認識させます。オプションに USB 接続のカメラの USB のデバイス名を指定します。

# webcamd -d ugen4.2
Attached to ugen4.2[0]
Creating /dev/video0
^Z
中断
# bg
# ls -l /dev/video0
crw-rw---  1 webcamd  webcamd  0x82 Feb 28 26:14 /dev/video0
# chmod 666 /dev/video0

 
webcamd を起動すると正しく動作する USB カメラであれば /dev/video0 が生えてきます。
その後、一旦バックグラウンドにほーり投げてパーミッションを確認します。今回は一般ユーザでも利用したいので 666 に変更しています。デバイス生成時にバーミッションを変更したい場合には /etc/devd.conf におまじないを書いてください。ここでは割愛します;-)。

以上で準備は完了です。

 
3). まずはローカルでカメラを利用してみる
/dev/video0 が生えてきたので、実際にカメラに写るモノを表示させてみたいですね。そんな時は pwcview を利用します。 ports 的には multimedia/pwcview になります。
こいつを make install したあとに特にオプションも付けずに起動すると X11 上にウィンドが現れてカメラから映る景色が表示されると思います。

しかし、ローカルな FreeBSD の X11 の画面にカメラから映る景色が表示されても「だから何?」で終わってしまいますよねf(^^;;。
僕自身もまさしくそのとおりでして。ただ単に「あ。 cuse4bsd.ko と webcamd でデバイスを認識したのね。ふーん。すごいね。いじょ。」みたいな・・f(^^;;。

この写真はまさしくそんな感じで、 ThinkPad Edge e145 上の FreeBSD で KDE4 が動いていて、そこで pwcview を起動させた状態です。

IMG_0968_NotePC_Cam_1

ディスプレーの上にカメラがあるのですが、その横にある黄緑色の LED が光っております。カメラが Ready 状態ですねぇ;-)。

と、いうことで何か別の利用方法を考えてみることにしましょう。

あ。 chmod 666 /dev/video0 しましたが、これしないと一般ユーザで起動する pwcview では 画像が読み込めない状態になります。

 
4). リモートからカメラの映像を確認する
ローカルな FreeBSD の X11 に画面が出力されたので、リモートの FreeBSD から ssh -CY し、手元の X11 に pwcview を表示させればいんじゃね? えぇ。まさしくそのとおりですね。それだとリモートの X11 にカメラに映された映像が表示されます。それもひとつの案ですね;-)。

今回は http で画像を転送してみましょう。 ports から mjpg-streamer をインストールします。 ports 的には multimedia/mjpg-streamer になります。 make config は default の設定で良いです。まぁ、強いて言えば “Linux-UVC V4L2 plugin” を有効にしてインストールしましょう。

インストールしたものの中で重要なのはプラグインがインストールされた場所でしょうか。 /usr/local/lib/mjpg-streamer/ の中を覗くと .so なファイルが入っていますが mjpg-streamer を起動するときに利用するプラグインになります。

では実際に起動してみましょう。

$ mjpg_streamer -i 'input_uvc.so -d /dev/video0 -y' -o 'output_http.so -w /usr/local/www/mjpg-streamer'

 
/dev/video0 は chmod 666 しているので一般ユーザ権限で起動できます。

-i でカメラ側のオプションを指定します。 input_uvc.so プラグインを利用し、デバイスは /dev/video0 から入力します。
-o で出力側のオプションを指定します。 output_http.so プラグインを利用しコンテンツは /usr/local/www/mjpg-streamer にあることを指定します。
-o に output_file.so を指定するとカメラに写ったモノはファイルに出力してくれるのでしょうなぁ。僕は試していませんがf(^^;;。

ちなみに /usr/local/etc/rc.d/mjpg_streamer という起動スクリプトがインストールされるのですが、こいつは -i のオプションを指定する部分が無いんですよね。 rc.conf.local には以下のように書くと良いかな。

mjpg_streamer_enable="YES"
mjpg_streamer_flags="-i 'input_uvc.so -d /dev/video0 -y' -o 'output_http.so -w /usr/local/www/mjpg-streamer'"

 
さてさて。あとはウェブブラウザで http://localhost:8080 とかリモートのマシンからアクセスしてみるとそれらしいウェブサイトが表示されると思います。

ちなみにポート番号を変えたい場合には以下のように設定するが良いです。

mjpg_streamer_enable="YES"
mjpg_streamer_flags="-i 'input_uvc.so -d /dev/video0 -y' -o 'output_http.so -p 8081 -w /usr/local/www/mjpg-streamer'"

 
こんな感じで任意のポートに変更できたりします。

ただ、悲しいかな・・。 mjpg_streamer は IPv6 には対応していないようですねぇ。ソースコードの plugins/output_http/httpd.c の socket(PF_INET, …); の部分を書き換えると IPv6 対応になるかなぁ?暇なときにいじってみよう。

さてと。実際に表示される動画ですが、皆さんの目で確認してみてください;-)。
左のメニューから Static を選択すると写真が、 Stream を選択すると動画が流れ始めます。
僕の ThinkPad Edge e145 のカメラは pwcview ではまぁ、そこそこ綺麗に見えるのですが mjpg_streamer で見ると多少ちらつきますね。あと、ブラウザ側の PC の負荷が高くなるかな。

 
と、いう感じで NotePC に付いていたカメラが FreeBSD からでも利用できることが確認できました。しかもそのカメラがリモートからアクセスできて閲覧もできることが確認できたので、これで利用頻度がいっきにアップするのでは無いかと思われます。嬉しいことですね。

ただ、音を飛ばす時にはもっと別の技が必要になりそうな気がしますが、それはまた別の機会にでも:-|。

あと、カメラが付いてない FreeBSD がインストールされた PC には手元にある USB カメラを色々付けてみて cuse4bsd-kmod と webcamd で動作するか確認して見るのもよいかと思います。
もし動作する USB カメラだった場合、フツーの自作 PC にインストールした FreeBSD でも今回の組み合わせでカメラが利用できるようになるかと思われます。

ちなみに、僕は以下の二つの USB カメラを持っているのですが、こいつらをデスクトップの FreeBSD で利用してみました。

IMG_2228_NotePC_Cam_2

左側の白いのは FreeBSD というか webcamd で認識してくれませんでした。以下のようなメッセージが出力されます。

# webcamd -d ugen0.2
webcamd: Cannot find USB device

 
右側の黒いのは赤外線付きで暗いところでも良く見えるカメラなのですが、こいつは pwcview では動きましたが mjpg_streamer では動きませんでした(砂の嵐が表示されます)。
カメラによって動作が多少違うようですね。

 
と、いうことで、今回は NotePC に標準で付いているカメラで遊んでみました。 mjpg_streamer がちゃんと動いてくれると、利用価値は上がりそうですね。 また、 mjpg_streamer に変わる何か別のアプリを見つけてきて、それを試してみるのも良さそうですね。何か良い ports をご存じの方いましたら教えて下さい;-)。

また、最近流行の Raspberry Pi を FreeBSD/ARM で起動して USB カメラを接続し今回の組み合わせを利用すると、IoT な監視カメラができるかもしれません。

バッテリ運用で Raspberry Pi+USB Camera+FreeBSD+cuse4bsd-kmod+webcamd+mjpg_streamer+Wi-Fi な状態のヤツをラジコンカーに積んで走らせたら、録画ではなく、リアルタイムで動画が堪能できるような気がします。

面白そうだ・・;-)。

2月 272015
 

今更感のあるネタで恐縮してしまいますが・・。まぁ、懲りずに読んでやってくださいf(^^;;。

今回のやりたいことは以下です。きっと、僕以外の誰もが、デジカメで撮った写真に GPS 情報を書き込みたい。と、思っているに違いありません。多分・・。

  • デジカメで撮った写真を iPhone6 に取り込む。
  • Windows8.1 タブレットを持っているのでそれで見られると嬉しいなあ。
  • デジカメで撮った写真には GPS ポイントが付いてないのでどうしよう・・。

これらの問題を、母艦である PC もしくは Mac 無しで完結してみよう。と、いうのが今回のエントリの趣旨でしょうかねぇ。
基本的にはデジカメで撮った写真にも GPS (Exif) 情報を付加したい。と、いうのが事の発端では有りますが。

では順番に見ていくことにしましょう;-)。

 
1). デジカメからの取り込み
僕が持っているデジカメはちょっと古いですが、比較的高性能な Canon s90 です。ここに Toshiba の FlashAir の 8GB の SD カードを利用しています。

こんな感じですね。

IMG_0973_camandGPS_1

でもって FlashAir Wi-Fi 経由で iPhone に取り込んでいます。 iPhone6 には FlashAir 用のアプリがあるのでそれを利用し Wi-Fi 経由で iPhone6 に取り込むことができます。

IMG_0974_camandGPS_2

ふむ。 iPhone6 に取り込むことができました。
ここではその方法に付いて詳しくは書きませんが FlashAir を利用すると比較的容易に取り込むことができます。

 
2). Windows8.1 タブレットで見る
Windows8.1 なタブレットは ドスパラの DG-D08IWB 32GB を持っています。ここに Apple 謹製の iCloud をインストールし Apple ID でログインしてから写真を同期するとフォトストリームが降ってきます。

すると iPhone6 側ではフォトストリームをオンにしておく必要がありますね。

あと、 iPhone6 の写真を iCloud のフォトストリームにアップロードするためには Wi-Fi 環境が必要になるので、公衆無線 LAN などに接続してからでないとアップロードできない。と、いう点には注意が必要です。

Windows8.1 なタブレットに iCloud フォトが降ってくればあとは(iPhone6 よりは大画面の) Windows8.1 タブレットで確認すれば良いと思います。

あう。あちこちで騒がれているようですが Windows 版 iCloud では時々フォトストリームの同期が止まる。と、いう事象が発生しているようです。そーいう僕も何回か体験していますがX-(。

一旦 iCloud を削除して再度インストールするとか、一旦ログアウトしてから再度ログインすると同期が復活するようです。詳しくは google などで調べてみてください。

 
3). デジカメの写真に GPS ポイント(Exif 情報)を書き込む
これも実は色々な手段があるんですよねぇ。

例えば iPhone6 上で GPS ロガーアプリを起動しておいて、テクテク歩き回りつつデジカメで写真を取り、自宅に帰って母艦で iPhone6 で記録したロガーとデジカメで撮った写真をとあるアプリに食わせて、そのアプリでは日付と時間でマッチさせて自動的に GPS ポイントを写真に書き込む。

なんてのがあります。しかし、これ、実際にやってみましたが、全然長続きしません。 2,3 回やってあきらめてしまいました。いちいちやってらんねー。みたいな・・。

僕的には FlashAir で取り込んだ時にその場所の GPS ポイントを Exif として書き込んでくれる機能があっても良いのになぁ。などととも思えるんですが。

東芝さん とか、他の Wi-Fi SD カードメーカの方、この案是非とも採用して欲しいものです;-)。

 
と、いうことで、ではどうすんべな? とか思い悩んだのですが iPhone アプリには写真に GPS ポイントを書き込んでくれるヤツ(アプリ)が何個かあるようなので色々試してみました。

で、僕が中々良い。と、感じたのは GeotagMyPic というアプリです。

IMG_0975_camandGPS_3

カメラロールにある写真を選択し、地図を表示させてピンを移動して確定し、そして写真に書き込む。という動作です。

作業は非常に簡単で、旅先での暇な時間帯、例えば、電車や(運転中ではない)車の中とか、温泉から出て相方が出てくるのを待っている時間とか、宿の晩ごはんの時間になるまでの空いた時間とか、あぁ上げればキリが無いですが。に、デジカメで撮った写真を FlashAir で取り込んで GeotagMyPic で GPS ポイントを書き込んでいく。と、いう感じになるでしょうか。

旅の現場なのでほんの一時間前に撮った写真はここだ。などと、一応覚えていますしね。なので後から GPS ポイントを書き込んでもそんなに苦痛ではないように感じました。

しかし、このアプリは 100yen のアプリ内課金があります。 100yen 出すと以下の機能が有効になります。

  • 複数の写真に同一の GPS ポイントを付けることができるようになります。デジカメの場合、一か所で何枚も写真とることがあるのでこの機能があると楽ちんです。
  • 読み込んだ写真のサイズと GPS ポイントを書き込んだ写真のサイズ同じになる。逆に言うと 100yen 払ってない状態だと、デジカメから取り込んだ写真サイズが 1Mbyte だとすると GPS 情報を書き込んで保存した写真は 400kByte くらいになってしまうんですね。
    画素数は変わらないんだけど。なので何かしらのデータが間引きされているんだと思うです。

GeotagMyPic はデジカメから取り込んだ生データはそのままに GPS ポイントを書き込んだ写真は別途保存してくれます。上書きはされません。なので母艦の iPhoto などに iPhone6 の写真を取り込んだときには枚数がドドドと増えることになりますが、まぁ、それはそれで良いことかもしれないですね;-)。

そして、このアプリの良い点は広告が無いのと、日本語化されているところでしょうか;-)。

 
と、いうことで今回掲載した環境を川治温泉に行った時にフィールドテストしてきました。

温泉一泊旅行に行くとそれなりにぽっかりとあく時間ができることがあるので、時間を持て余しそうなタイミングで、上記のような運用方法を実施する点については特に不便などを感じませんでした。

これでデジカメに GPS 書き込み機能がついてなくてもなんとかやっていけるかなぁ。今度は海外に行った時に試してみたいモノですが、その機会があるのか、ビミョーですf(^^;;。

2月 172015
 

今回は emacs の設定の一行だけのエントリです。

実は emacs-24.4 になって、勝手にインデントしてくれて困っていたのであります。

例えば以下のような場合。

  • emacs-24.4+mew6.6 でメールの本文を打っていた場合、段落のために半角スペースを二つ入れたのに改行すると半角二つが消えてなくなってしまう。
  • emacs で開いた文書にマウスのペーストをすると右側にズズズズとずれていってしまう。
  • 他のモードでもとにかく勝手にインデントを付けてしまう。

などなど、文章を打つ時やマウスのペーストが非常に難儀していたのであります。

が、しかし、以下の設定を入れれば大丈夫。

; 勝手にインデントしないようにする設定
(electric-indent-mode 0)

 
この設定を ~/.emacs.d/init.el に書いてあげると emacs-24.3 の頃の文字入力に戻るかと思われます。

emacs-24.4 は他にも色々 default 設定が変わったのですが、この、インデントの動作が変わったのが一番の衝撃でした。フツーに文章を打っているときはそんなに問題はないのですが、 mew でメールを書いているときに発生しているので困った困った。

最近、 mew の ML が無くなって google-group に行ったので僕は入ってないんですけどもね。

と、いうことで上記設定は emacs-24.4+mew-6.6 の人にもとっても非常に有用な情報だと思われます;-)。

#誰か、たどり着く人いるんかな?f(^^;;。

2月 132015
 

CPU コレクションのエントリです。今回がちょうど 70 回目でしょうかね。過去に色々な CPU が登場して来ましたが良く続くモノだと、自分でも驚いています;-)。

と、いうことで今回登場するのはまだまだあったっ!! Soket478 な Celeron の CPU です。前回・前々回と Northwood コアの C1 ステッピングD1 ステッピングが登場したのですが、今回の Celeron もなんとっ!! Northwood コアです。 しかし、調べてみるとステッピングが解らない。

僕は http://www.cpu-world.com で CPU を確認しています。 Socket7 などは覚えているのでここを見なくとも大丈夫だったのですが、Soket478 辺りになるともう何がなにやら解らなくなってきているのでここに、今回の CPU であれば SL73H などと入力して検索するんですが、この CPU にはステッピングの記載が無いんですよね。情報も少ないようですし、もしかしたら非常に貴重な CPU なのかな?

こちらが表側です。

Socket478_Celeron_Northwood-128_1

刻印が薄くて中々読み取るのが大変に CPU でした。

でもってこちらが裏側。

Socket478_Celeron_Northwood-128_2

コンデンサ(というのかな?)の並び方がまたビミョーに今までのと違うんですよね。

これも廃棄予定の PC から引っこ抜いて来たんですけども、 CP バラして CPU クーラー外した瞬間「なんだよぉ。また Celeron かよー。」とか、そんなノリになるんですが、まぁ、一応手元に置いといた。でもって実際に調べてみるとなんか怪しそうな CPU だったのでラッキー。ってかんじでしょうかねぇ。

Soket478 はあともう一個あります;-)。

2月 082015
 

前回のエントリで「Nokia Lumia620 に Windows10 for mobile が入らない。」と、いうのを書きましたが、そもそも Nokia Lumia620 に Windows10 for mobile が既に降ってきているのか確認する方法が無い。もうインストールできるのか解らない。

と、書きましたが、どうやらその確認方法があるようですね。あちこち探してみました。

今回は、自分の持っている Windows Phone で Windows10 が利用できるかの確認方法について書いてみたいと思います。

まず先に、僕の持っている Nokia Lumia620 では今のところまだ Windows10 for mobile は利用できない。と、いうことが解りました。ちょっち悲しいけど、まぁ、それが解っただけで十分か。みたいな・・。

 
1). 確認アプリのダウンロード
まず、最初に Windows Phone にストアから「Windows Insider」というアプリをダウンロードします。
このアプリ、ストアで検索しても中々ヒットしないんですよねぇ。検索しても出てこない場合には以下の URL からたどってくださぃ。

http://www.windowsphone.com/ja-jp/store/app/windows-insider/ed2b1421-6414-4544-bd8d-06d58ee402a5?signin=true

このアプリは Microsoft Windows の情報を一足先に得られるモノです。で、情報を受けるには Windows Insider Program に登録する必要があります。ここでアカウント登録して、次のステップに進みます。

WindowsPhone10_check_1

Microsoft Windows Phone の先進的機能を利用するにはデベロッパーセンターに登録したり、 Windows Insider Program に登録したり、何かと大変ですなぁf(^^;;。

 
2). Windows Insider で確認。
インストールされた Windows Insider アプリを起動し、ログイン情報を入力したあとに表示される画面で “Get preview builds” をタップすると、自分の Windows Phone 用に Windows10 が利用できるか確認することができます。

僕の Lumia620 は以下のような感じ。

WindowsPhone10_check_2

“no builds” と、表示されているのでまだ Lumia620 に対応した Windows10 はできていない。と、いうことになりますね。

ちなみにちゃんと用意されている場合にはどういう表示になるのだろう? また、”no builds” を見たことがある人はいるのだろうか・・。

 
と、いうことで、今回は自分の持っている Windows Phone で Windows10 for mobile がインストールできるかの確認方法について書いてました。

早く僕の Lumia620 にも降ってこないかなぁ。

 
2015/02/14 加筆
ふむー。02/13 に Microsoft から発表がありましたなぁ。 Windows Phone にも Windows10 を提供すると。
基本的にはここに書いたように Windows Insider アプリをインストールしてからアクセスしてね。ってことらしいですが、それにしても僕の持っている Lumia620 は対象外で Lumea630 が番号の一番小さい機種になりましたなぁ・・。

アップデートに必要な容量は 8GB と、書いてあるんだけど Lumia620 も Lumia630 もどっちも 8GB しかないのよねぇ。で、 OS とかアプリをインストールしていると残りは 5GB くらいしかないはずなのに・・。

まぁ、 Lumia620 を持っている人は「きっと Windows10 が降ってくる。」と、心に固く誓い、もうしばらく待ってみることにしましょぅ・・。

2月 052015
 

Microsoft が 2015年01月21日 に Windows10 の紹介イベントを開き、日本語に対応した Windows10 Technical Preview を二月に入ったらダウンロードできる。と、いうことになりました。

デスクトップ版のほうはきっと色々な人がレビュー記事とか書きそうなのであまり気にしていないのですが、今回発表された Windows10 は Windows Phone にも降ってくる。と、いうことなので、僕はどちらかというと Nokia Lumia620 に降ってくるであろうと思われるモバイル版の Windows10 のほうが気になっていたのであります。

今は手元にある Lumia620 には Windows Phone8.1 がインストールされていて、通称 Lumia Cyan というバージョンがインストールされています。

で、その状態で、一月中頃から「電話の更新」を確認すると、何やら新しい更新があることは確認できるのですが、それがインストールできない状態が続いていました。

そして、 PC 用の Windows10 のダウンロードが可能になった段階でも同様のエラーとなり更新ができません。以下のような状態なんですけども。

IMG_3124_WindowsPhone10_1

ここに表示されている 8018830f と、いうエラーコードはどうやらダウンロードして展開したけど、領域が足りないらしい。と、いうことのようなんですね。
ふむー。 Technical Preview 版というのは debug オプションが有効になっていてそれなりに広大なディクス容量が必要なのかいのぉ。あ。ディスクではなく RAM か。などと思っていたんですけども・・。

で、どうしても Lumia 620 で動作する Windows10 が見たいので、うりゃーっ!! などとリセットしてしまいました。で、リセット後に起動して来た状態で簡単な設定のみをして「電話の更新」を試したのですが状況はちぃとも変わらないですね。

それにしても Lumia 620 は RAM は 8GB 、 SD カードも 8GB のものを用意しています。そして、「ストレージセンサー」を確認すると Windows Phone8.1 のシステム部分だけでだいたい 2.5GB ほど利用しており、残りが 4.7GB ほどです。

IMG_3126_WindowsPhone10_3

この領域があったとしてもエラーコードはやはり 8018830f でした。

ふむー。多少の RAM の容量が増えたとしても今のところ Lumia620 に Windows10 が降ってくることはないようです。残念。

と、いうか、そもそも「電話の更新」でダウンロードしてくるファイルが本当に Windows10 なのであるかは定かではないですが、もし、万が一、僕みたいに WindowsPhone を持っていて Windows10 for mobile をインストールしたいなどと悩んでいる人は、ただちにリセットなどかけずに、もう少し待つことにしたほうが良いと思われます。

以上、僕の経験でした。

どなたか Nokia Lumia で Windows10 for mobile が動いた人いますか?

1月 302015
 

安い USB OTG ケーブルがあったので購入してみました。楽天で買ったのですが、送料込み 680yen でした。

このケーブル、充電しつつ USB 機器が一個接続できる。と、いうモノらしいです。が、考え方は色々あるようで、スマートフォンやタブレットには充電しないけど、接続器した USB 機器には給電しつつ利用できるので、スマートフォンやタブレットのバッテリの減りは遅くなるでしょ。と考えることもできるようですね。

そもそも OTG とはなんぞや? ということになるのですが USB “On The Go” の略だそうで PC が無くとも USB 機器単体で通信が行えるようにする規格らしいです。

するとこのケーブルのどこかには USB コントローラーチップが一個埋め込まれている。と、いうことになりそうですね。分解してないのでわからないんですけども。

で、 UBS オスを AC アダプタ(DG-D08IWB 32GB に付属の 2A のモノ)に接続し電力を仕入れたあと UBS メスにカートリーダーを接続をすると、そこに電気が供給されカートリーダーが使えるようになる。

IMG_0753_USBOTG_1

使い方としては USB のオスは AC アダプタなどに接続し電源供給できるようにします。
USB メスに USB キーボードや SD カードリーダーなどを接続し MicroUSB はスマートフォンやタブレットに接続する。って感じですね。

さてと。僕が持っている MicroUSB に対応したスマートフォンやタブレットはというと、以下になります。

  • DG-D08IWB 32GB
  • ZTE Blade Vec 4G
  • Nokia Lumia620
  • NEC Medias LTE N-04D

結論から言いますと Nokia Lumia620 だけが充電できました。他の機器は本体の充電はできずに 1 ポートの USB HUB として利用できるのみです(それはつまりは”変換ケーブル”ってことかい?)。
ただ、USB 機器には AC アダプタから給電されるようです。

DG-D08IWB 32GB のときは USB のオスを AC アダプタに接続し、MicroUSB は本体へ接続。 USB メスにはキーボードとかカードリーダーを接続し、動作する。って感じです。本体への充電はできませんでした。

ZTE Blade Vec 4G も DG-D08IWB 32GB とまるで同じ動作でした。

Nokia Lumia620 は唯一 MicroUSB から本体に対して充電ができました。おぉー。とわ言いつつ、 Windows Phone8.1 で動作する USB 機器が無いんですね・・。orz なので非常に本末転倒。意味が無い状態。

 
他に検証として、このケーブルの USB メスに USB – MicroUSB 変換ケーブルを接続し、MicroUSB 側にスマートフォンなどを接続すると無事に充電できました。つまりは USB オスから USB メスに対しては無事に給電していてくれている。と、いうことですね。
この時に余った MicroUSB に何かしらの USB 機器を接続するとどうなるのだ?と思ったのですが、 USB 変換プラグが無いので試せませんでした。

ただ、上記の通り USB メスに USB – MicroUSB 変換ケーブルを接続し、その変換ケーブルの MicroUSB 側にスマートフォンなどを接続して充電している最中に MicroUSB に Lumia620 を接続すると無事に充電できたので二台同時に充電は可能になりました;-)。

あと、色々接続テストをしていたらたまたま偶然 MicroUSB に接続していた DG-D08IWB 32GB に充電が出来ました。その時 USB メスには SD カードリーダーが付いていて Windows8.1 でも認識しました。ん? やったーっ!! とか思ったのもつかの間、その後、再度確認のために引っこ抜いて色々試したのですが、どう接続しても再現しなくなりました。あらら。

と、いうことでもしかしたらこのケーブルでも DG-D08IWB 32GB に対して USB 機器を使いながら充電できる可能性は残っている。と、いう感じはしました。もう少し色々試してみたいと思っているのですが・・。

 
まぁ、今回は送料込みで 680yen だったので人柱的要素が強いでしょうかねぇ。それはそれでしょーがない;-)。
ちなみに IBM の Windows タブレットでは本体に充電てきて USB 機器も使えるらしいので、色々試してみるのもそれはそれで楽しいのかもしれません。

 
2015/02/15 加筆
このケーブルを利用して DG-D08IWB 32GB が充電できるようになりました。わーい;-)。

接続している写真は以下になります。

IMG_0801_OTG_USB2_1

USB オスは AC 電源、USB メスに USB – MicroUSB 変換ケーブルを接続し DG-D08IWB 32GB に接続すると充電できます。
MicroUSB オスには USB メス – MicroUSB メス変換コネクタを接続し、そこに SD カードリーダーを接続しました。
すると、充電しつつ SD カードを認識したのであります。パチパチパチ。この状態で DG-D08IWB 32GB のバッテリ容量がどんどん増えていくことを確認しました。

アップの写真。

IMG_0805_OTG_USB2_2

USB メス – MicroUSB メス変換コネクタを接続したので利用時にはどちらも USB メスの状態になりました;-)。

ちなみに USB マウスを接続して使ってみたのですが DG-D08IWB 32GB の充電容量は中々増えないですね。 SD カードリーダーを利用した時には増えているんですが。それだけ USB マウスの消費電力が多い。と、いうことなのでしょうなぁ。となると AC アダプタは 2A のモノよりも 2.4A のものを利用したほうが良いのかもしれません。

あと、 ZTE Blade Vec 4G も試してみましたが、こちらは充電はできますが SD カードは認識しませんでした。と、いうことで今のところこのケーブルは DG-D08IWB 32GB で利用可能。と、いうことになりますね。

ちなみに変換ケーブルは 680yen、USB メス – MicroUSB メス変換コネクタは 280yen でした。両方足しても 1,000yen ですねぇ・・。

 
最後にですが、今回のような使い方をしても問題が無いのか、イマイチ良く解りません。ただ『使えました。』と、いうことです。この使い方をして本体や USB 機器などに問題が生じた場合、僕は責任を持てません。自己責任で試してみて下さい。

 

1月 282015
 

CPU コレクションのエントリです。前回は Socket478 の Celeron で Northwood コア、ステッピングが C1 の CPU を掲載しましたが、今回はちょっと違うのを掲載します。

とは言いつつ、違うのはステッピングだけだったりしますf(^^;;。

今回掲載するのは D1 ステッピングの Celeron になります。

まぁ、見てくれが違うのでしょーがない。手元に置いておくんですけどもね;-)。 QRコードの位置がビミョーに違うんですよね。

こっちが表側。

Socket478_Celeron_Northwood-128_D1_1

でもってこっちが裏側。

裏側はかなり違いますね。 C1 -> D1 ステッピングへの変化なのにこんなに二つは違うのかっ!!って気がしてきます。

Socket478_Celeron_Northwood-128_D1_2

多少の見てくれは違うのですが、ただ単にステッピング違いなだけでしかないので書くことあまり無いですf(^^;;。けどもまぁ、これで僕の手元にある Socket478 は Celeron がまだ数個あるなぁ。詳細は調べてないのでここに掲載するときにおいおい調べつつ書いて行きたいと思います。

今まで全部で五種類の Socket478 を掲載しましたが、数だけはたくさんあるので、同じソケットで色々掲載してしまった。と、いうとこになります。

まぁ、 Intel 的にも Socket478 はサーバに積まれたりと結構売れましたからねぇ。

まだ数個 Socket478 があるので引き続きそれを掲載して行きたいと思います。

1月 242015
 

離れた二点間で IPv6 を L2 で利用したいなぁ。と、ずっと思っていたんだけど、中々手段がなかった。 FreeBSD の gif トンネルを使うと L3 接続になるし gre を使うと bridge が利用できないのでややこしいネットワークになってしまうし、そもそも FreeBSD の gre は IPv6 の L2 抜けが 10.0-RELEASE になってもできないみたいだし・・。

と、いうことで今回は離れた二点間で同一の /64 の IPv6 セグメントを利用できるようなネットワークを構築してみたいと思います。
ただ、ネットワーク機器としての FreeBSD の利用は今回あきらめました。今回は VyOS 1.1.1 を利用してみました。
VyOS 1.1.1 はフリーで利用できる仮想環境用のルータ OS です。

VyOS のインストールについてはここでは記載しないので他のウェブサイトでご確認頂ければと思います。

 
でもって、今回構築するネットワーク環境は以下になります。

IPv6_L2TPv3_2

ちょっと説明を。

  • 既存ネットワークのセグメント1: 10.123.1.0/24
  • 既存ネットワークのセグメント2: 192.168.123.0/24
  • 上記二つの異なる IPv4 のセグメントにおいて 2001:470:fc1e:10::/64 の IPv6 セグメントを利用したい。
  • IPv4 は 172.16.101.0/24 もあるけど、ついでに利用できるのであればそれはそれで嬉しい;-)。

と、いうような感じ。 IPv4 を L2 で抜けるソリューションは色々あるようなんだけど IPv6 の L2 抜けってのはどうも対応してない OS があったりして中々手強いモノがあったのであります。

セグメント2 側に IPv6 が無いので L2 で抜けて行って IPv6 使えるようにしましょう。ってのが今回の要件でしょうかね。

dtcp を利用した gif インターフェース使えば良いじゃん。と、いうソリューションもあるのですが、その場合 dtcps を起動する側には /48 が必要で dtcpclient 側に /64 を配布。って形になるので /64 しか無い場合には L2 抜けしてあげないとちょっとつらいんですね。

 
と、いうことで上の図は構成図です。物理的にはセグメント1 にもセグメント2 にも VMwareESXi 5.1 がいます。そこにサーバ(今回は FreeBSD をチョイス。と、いうか、いつも FreeBSD だけど;-)と VyOS が入っている状態です。

  • セグメント1: FreeBSD-01・FreeBSD-02・VyOS-01
  • セグメント2: FreeBSD-03・VyOS-02

では以下に手順を書いていきます。

 
1). VMWareESXi 5.1 の設定
サーバと VyOS が vSwitch で接続された状態にします。そして vSwitch ではプロミスキャス・モード (promiscuous mode) を有効にしておく必要があります。
日本語版では「無差別モード」と言っているようですが。

以下は VMWareESXi の vSwitch の設定のキャプチャです。

IPv6_L2TPv3_1

[構成]タブ -> ネットワーク -> vSwitch のプロパティを開きます。
[ポート]タブの「編集」ボタンを押します。
表示されたウィンドの[セキュリティ]タブの「無差別モード」を “承認” にします。

以上で準備は完了です。これをやっておかないとあとで痛い目にあいますX-(。

 
2). VyOS-01 側の設定
VyOS のインストールが済んで、ログインユーザ名とパスワードの設定が完了した状態からの設定です。

まずはホスト名の設定と ssh を有効にしておきましょうかねぇ。

set system host-name VyOS-01
set service ssh port 22

 
続いて既存ネットワークのセグメント1 側の IPv4 アドレスを指定します。

set interfaces ethernet eth0 address 10.123.1.11/24

 
続いてブリッジインターフェースを作成します。

set interfaces bridge br0

 
そして、新規 IPv6 ネットワークに接続する eth1 をブリッジグループに入れます。 eth1 にはアドレスを付加しません。ブリッジするのでイーサーネットインターフェースとして利用します。

set interfaces ethernet eth1 bridge-group bridge br0

 
ここまで各セグメントに接続するインターフェースの設定が完了しましした。
続いて二つのセグメントを接続するための L2 トンネル部分の設定をします。今回は VyOS の L2TPv3 を利用します。
一応 VyOS の gre でも試してみたのですが bridge-group のメニューが出てこないのでブリッジグループに入れることができません。以前の vyatta では gre も bridge-group に入れることができたようなのですけどねぇ。まぁ、 IP インターフェースは bridge-group に入れることはできない。と、いうことなのでしょうなぁ。

さて。 L2TPv3 を利用するために以下のコマンドを投入します。

set interfaces l2tpv3 l2tpeth0
set interfaces l2tpv3 l2tpeth0 local-ip 10.123.1.11
set interfaces l2tpv3 l2tpeth0 remote-ip 192.168.123.21
set interfaces l2tpv3 l2tpeth0 session-id 10
set interfaces l2tpv3 l2tpeth0 peer-session-id 11
set interfaces l2tpv3 l2tpeth0 tunnel-id 20
set interfaces l2tpv3 l2tpeth0 peer-tunnel-id 21
set interfaces l2tpv3 l2tpeth0 source-port 2030
set interfaces l2tpv3 l2tpeth0 destination-port 2031
set interfaces l2tpv3 l2tpeth0 encapsulation udp
set interfaces l2tpv3 l2tpeth0 bridge-group bridge br0

 
ちょっと説明しますと、

  • interfaces l2tpv3 を l2tpeth0 として create します。
  • local-ip は自分の IPv4 アドレスを、 remote-ip は接続先 IPv4 アドレスを指定します。
  • session-id は好きな数値を、 peer-session-id は接続先の session-id を指定します。
  • tunnel-id と peer-tunnel-id も上記と同じルールで指定します。
  • source-port と destination-port も同じ要領で指定します。それにしてもどうして peer-source-port じゃないんだろ?;-)
  • encapsulation は udp にしました。他には ip も指定できるようです。
  • 最後に l2tpeth0 を ブリッジグループに登録します。

以上で L2TPv3 トンネルの設定が完了しました。最後に commit して save して exit すれば configure モードを抜けます。
VyOS-02 側にも同じ設定を入れるとトンネルが張られます。

eth1 と l2tpeth0 はブリッジされたのでこれで IPv6 が L2 でズドーンと抜けられるようになります。

 
3). VyOS-02 の設定
まぁ、基本的には VyOS-01 で設定したのと一緒です。サクサク行きます;-)。

ホスト名と ssh の設定と eth0 に IPv4 アドレスを付加する設定。

set system host-name VyOS-02
set service ssh port 22
set interfaces ethernet eth0 address 192.168.123.21/24

 
ブリッジグループの設定

set interfaces bridge br0
set interfaces ethernet eth1 bridge-group bridge br0

 
L2TPv3の設定。


set interfaces l2tpv3 l2tpeth0
set interfaces l2tpv3 l2tpeth0 local-ip 192.168.123.21
set interfaces l2tpv3 l2tpeth0 remote-ip 10.123.1.11
set interfaces l2tpv3 l2tpeth0 session-id 11
set interfaces l2tpv3 l2tpeth0 peer-session-id 10
set interfaces l2tpv3 l2tpeth0 tunnel-id 21
set interfaces l2tpv3 l2tpeth0 peer-tunnel-id 20
set interfaces l2tpv3 l2tpeth0 source-port 2031
set interfaces l2tpv3 l2tpeth0 destination-port 2030
set interfaces l2tpv3 l2tpeth0 encapsulation udp
set interfaces l2tpv3 l2tpeth0 bridge-group bridge br0

 
session-id・peer-session-id と tunnel-id・peer-tunnel-id そして source-port・destination-port は VyOS-01 で指定したものと値を逆にします。

以上で設定が完了ですね。

 
4). 確認方法
VyOS-01 と VyOS-02 の間で無事に L2TPv3 インターフェースが接続できているかの確認方法は以下になります。

vyos@VyOS-02:~$ show bridge br0 macs
port no mac addr                is local?       ageing timer
  2     01:05:73:a1:0f:ff       no                 2.16
  1     02:0c:29:f2:ec:f3       yes                0.00
  2     03:15:2c:73:dc:00       no                 2.07
  2     04:19:30:14:2e:c8       no                 1.14
  2     e5:9b:30:55:4e:c8       yes                0.00

 
ブリッジインターフェースの br0 の Mac アドレスを確認します。 今回はサーバ三台とスイッチポートが二つなので全部で五つの Mac アドレスが載りました。 “is local?” ってのは判りやすいですね。 yes が自分のネットワーク側で no が向こう側のネットワークに接続された機器のようです。

ついでなので VyOS の br0 にもテストのために IPv4 アドレスを付加してしまいましょう。

・VyOS-01

set interfaces bridge br0 address 172.16.101.101/24

 
・VyOS-02

set interfaces bridge br0 address 172.16.101.102/24

 

これでサーバやルータのインターフェースに ping を打って到達性が確認できれば L2 トンネルは成功です。
172.16.101.0/24 の IPv4 や 2001:470:fc1e:10::/64 の IPv6 アドレスに対して ping6 して到達性があることを確認します。

もし、この時に ping や ping6 が当たらない場合には一番上に戻って VMwareESXi の vSwitch において「無差別モード」が “承認” になっているか確認してみましょう。
僕はこの設定をすっかり忘れていて ping6 が通らずに随分と悩んでしまいましたf(^^;;。

 
5). ゲートウェイの設定
VyOS 自体に IPv6 を付加する必要が無いのであれば VyOS でのルーテイングの設定は何も必要ありません。サーバ側には IPv6 の default gateway を設定してあげます。

・FreeBSD

# route add -inet6 default 2001:470:fc1e:10::1

 
三台全てのサーバで同一のコマンドを打ちます。そして、全てのサーバはグローバル IPv6 なサイトに対してアクセス可能になったことを確認しましょう。

 
とまぁ、こんな感じで VyOS を利用することによりようやっと念願だった /64 の IPv6 の L2 トンネルができるようになりました。
本当は FreeBSD 単体でできると良いのですけどね。まぁ、それはしょーがない。

 
あと、今回のエントリでは VPN や IPSec については書いてないです。暗号化されてない L2 トンネルになります。
と、いうのも、僕は思うんですが、最近はプロトコル単位で暗号化されているのでトンネルを暗号化する必要ねんじゃね? みたいな。
ウェブ・メール・ssh・scp によるフアイル転送などはプロトコルで暗号化されています。唯一 samba かな? だったら ssh トンネル掘れば良いんじゃね? みたいな。

あ。 mDNS も L2 トンネルを抜けていくかな?だとしたら暗号化が必要だけど、考えてみるとマルチキャストを通すためには設定が一個必要だったような気がしたなぁ;-)。
まぁ、ザレゴトだということで;-)。

 
今回の設定は以上になります。ふぅ。

1月 172015
 

CPU コレクションは今年も継続していきます。去年は Intel Pentium 20 周年とのことだったので手持ちの Socket478 の Pentium4 を何個か掲載しました。で、話はそのまま Socket478 を継続していく予定なのであります。
Socket478 には Pentium4 の他に Celeron もあるので今回はそれを掲載します。

で、今回掲載するのは Socket478 の Celeron です。コアは Northwood になります。
Northwood コアな Celeron は非常にややこすぃ。今回登場するは C1 ステッピングの Celeron です。

また、 Pentium4 のように Willamette コアPrescott コアの Celeron は無いようです。

こっちが表側。

Socket478_Celeron_Northwood-128_C1_1

Celeron はL1 キャッシュ が 128Byte だったりして Pentium4 の半分しかないんですよね。

でもってこっちが裏側。

Socket478_Celeron_Northwood-128_C1_2

ふむ。過去にも何回か書いていますが Socket478 な CPU は手元にゴロゴロしているので、その中からピックアップしているんですが、今回掲載したのは Socket478 の Celeron で Northwood コア、ステッピングが C1 のヤツなのであります。