4月 302018
 

ゴールデンウィークの前半に秋葉原に NVIDIA GeForce GT 720 と 1TB の 3.5 インチの HDD を買いに行きました。古い PC (Athlon64 X2) で FreeBSD を動作させるためですね。
FreeBSD の場合 AMD (ATI) のビデオカードより ports の x11/nvidia-driver-340/ で動作する NVIDIA の NIC のほうが安心して 3D グリグリできるんですね。

で、お買い物終了後、アキバ散策していたら、新しくジャンク屋さんがオープンしていたのでちょっと覗いてみました。そしたらなんとっ!! PCI のグラフィックスカードの新品が 200yen で売っていたので購入してしまいました。当然ジャンク扱いですが。

購入したのはこんな感じ。もう一度繰り返しますが 200yen で、新品です;-)。

グラフィックスチップは往年の ATI の Rage XL です。メモリ 8Mbyte だそうです。うひひ。

今回再利用しようとしている古い PC には PCI スロットがあるので、この 200yen のグラフィックカードで X が表示できると嬉しいなぁ。などと思い、早速試してみました。

# X -configure
...

 
あらら・・。残念ながら、Xorg の -configure では自動的に xorg.conf を生成してくれないようです。挙句のはてには vesa ドライバが選択されました。
古いビデオカードは X -configure で xorg.conf が生成されないのかななぁ・・。

あと、サイズ的にはフル HD の 1920×1080 サイズで表示して欲しいんですけど・・。

やっぱりメモリ 8MB のグラフィックカードでは無理かなぁ?

あまり、格闘せずにさっさと NVIDIA GeForce GT 720 にしてしまったけど、あきらめがちと早いかな。まぁ 200yen だしなぁ・・。

 
話は突然変わりますが、今回購入した NVIDIA GeForce GT 720 を PRIMERGY MX130 S2 の PCI-e BUS にさして電源投入してみましたが、一回 BIOS 画面が出ただけで、まともに表示してくれませんでした。
今まで NVIDIA GeForce GT 210 を利用していたときは無事に起動してくれていたのですけどねぇ。多分電力量の不足が原因なのでしょうなぁ。 AMD FX-6100 な 6Core の CPU 載っているしなぁ。

と、いうことで古い PC の再利用は NVIDIA GeForce GT 720 で決定です。

4月 222018
 

奥さんが利用している PC は Athlon64 X2 で 10 年くらい前の自作。最近電源が怪しくなって来たのか、突然凍りついたりする機会が多くなってきたので、そろそろ寿命かなぁ。などと思っていたのであります。

で、何かほど良い大きさの PC は無いものか探していたら、 Lenovo V525 が手頃な値段で売っていたので飛びつついてしまいました。

ウェブサイトでクーポン使えて TBO でカスタマイズして一番安い構成にしたらなんとっ!! 28,000yen でした。

大きさは Micro ATX で奥行きがなく短く、そして軽い。筐体的にはこんな感じ。

TBO で選択した構成は以下のような感じ。

  • CPU は一番貧弱な AMD A6-9500 だけど SocketAM4 なので将来性あり
  • メモリ 4GB (届いた PC は PC4-2666V DDR4 だった)
  • CD-ROM なし
  • メモリリータ無し
  • キーボード・マウス無し

ホームページではメモリは PC4-19200 DDR4 SDRAM とか書かれていたけど、中を開けて、実際に確認してみるともっと良いメモリだったので驚きました。

中を開けた写真。

自分で 4GB なメモリを別途購入し、計 8GB にしようかと目論んでいたんだけど、いやぁ・・。 PC4-2666 DDR4 SDRAM で 4GB x1 のメモリってのは中々売ってなくて、 4GB x2 を買うとなるとかえって割高になるのでどうしようか、悩み中・・。

困ったのはこれくらいかな。 OS 込みで 28,000yen なのでむちゃくちゃ安い。今回購入した PC は当面は FreeBSD のインストール予定はないのでこのまま Windows10 を使い続ける予定なのであります。

 
ところで AMD は Intel と違って着替え目で、 CPU inside のシールは前面ではなく、側面の下のほうにテロっと貼ってある状態だったのであります;-)。

よしよし。継続して Intel の CPU は使っていないぞ;-)。

3月 292018
 

以前のエントリで「FreeBSD で if_urtwm を使ってみる。」と、いうエントリを書いているのですが、今回はそれの続編です。と、いうか、僕は USB の Wi-Fi ドングルが好きなようで、今までにもこのブログでは何回か書きました。

最近は REALTEK の USB Wi-Fi ドングルは 802.11a の 5GHz 帯に対応しているものが多いので FreeBSD でもその恩恵にさずかりたいものだ。などと思っているのですけども。

 
前回の USB 接続機器はずいぶんと大きかったのですが、今回は手頃なサイズの USB 機器です。まずは写真を。

でもってこっちがパッケージ。僕の場合 Windows10 で動作確認する前にまずは FreeBSD に接続して確認するのですが、ご多分にもれず、今回も素直に ugen に落ちました(^^;;。

パッケージやドライバ DC の印刷を見てみると REALTEK の RTL8811AU というチップが使われているようです。

で、以前掲載した GitHub を見に行くと・・。おやまぁ。カーネルモジュールのは FreeBSD 12-CURRENT に対応した patch になっているようです。で、ちょっと違ったところを見に行くと、おぉ。 FreeBSD 本体に commit されたのかしら? 新しく rtwn_usb というカーネルモジュールになるようですねぇ。
もう少し待てば、自分でコンパイルせずとも、 OS 標準で利用できるようになるのかもしれません。

 
さてと。今回購入した USB Wi-Fi ドングルですが、仕様としては REALTEK RTL8811AU ですが、 if_urtwm.ko は RTL8821AU 対応です。大丈夫か? などと思い試しましたが、すんなりと動きました。

まぁ、当然の作業として if_urtwm.c にはエントリを記述して、 usbdevs にも product ID を登録する必要があるんですが。

o. if_urtwm.c に記述する行

        URTWM_DEV(REALTEK,      RTL8811AU),

 
o. usbdevs に記述する行

product REALTEK RTL8811AU       0xa811  RTL8811AU

 
これで利用可能になりました。

 
以前のエントリで試した AUKEY の AC1200 というのは USB3.0 接続でチップセットが RTL8812AU でしたが、今回のは USB2.0 で RTL8811AU なので、もしかしたら一個古いチップで USB2.0 対応なのかもしれません。

 
電波が外にもれない(と思われる)部屋で動作確認をしたところ、200MB のファイルを転送してみると 50Mbps 程度でいたので、ずいぶんと速度が速い USB WiFi で、それが FreeBSD で体験できることにある意味感動を覚えました;-)。

 
あ。FreeBSD で 802.11a を利用する場合 /etc/rc.conf のネットワークの設定のところにおまじないを書かないと動作しないようです。

o. /etc/rc.conf の記述例

wlans_urtwm0="wlan0"
ifconfig_wlan0="WPA DHCP ssid AP802-5 mode 11a country J5 inet"
#ifconfig_wlan0="WPA inet 192.168.1.100 netmask 255.255.255.0 ssid AP802-5 mode 11a country J5 inet"

 
上記の設定は SSID: AP802-5 という 802/11a (もしくは 802.11ac) の AP に接続するときの設定ですが、どこの国で接続するか指定してあげないと正しく動作しないようです。おかげでサクサクと動作しているー;-)。

今後は安定的に動作していることを確認して行きたいとは思うのですが、こってりと利用するのはちょっとはばかれるので、動作確認のみ。と、したいと思います。

9月 102017
 

Amazon で USB Wi-Fi の子機が安く売っているのを発見し、購入しました。 AUKEY の AC1200 というヤツです。似たようなのを出しているメーカ名は色々あって Wavlink だとか、型番が WF-R6 というものだったりします。きっと OEM なんでしょうね。フツーの価格が 2,980yen で、クーポン利用で 999yen だったのでラッキーです。もう一個買おうかなぁ。

届いたのはこんな感じ。壁掛けパッケージです。そして、実物はこんな感じ。ずいぶんと大きいです。

USB の子機は 802.11 b/g/n/a/ac に対応しています。僕が購入した USB Wi-Fi 子機では初めての a (5GHz 帯) 対応です(僕は ac な AP は持ってない)。親機にもなれるようですが WindowsOS の場合はユーティリティをインストールしないとダメなようです。なので、自分的には子機専用で使う予定です。

利用しているチップは REALTEK の RTL8812AU というモノらしいです。 Windows10 Creators Update ではドライバなしでサクっと認識され 5GHz 帯のアクセスポイントにすんなり接続できました。
Cisco の EAP などに接続するためにはメーカサイトからドライバをダウンロードする必要があります。
ドライバはこの辺りのが使えるかな。 WN688A2–CD_WLAN_V6.85 のドライバをダウンロードすると良い感じです。

WindowsOS で 801.11a で接続して速度の検証してみたところ 802.11n の FreeBSD で言うところの if_run (Ralink のチップ) の機器の倍以上の 100Mbps 程度で通信することを確認しました。

 
さてと。これが FreeBSD で動作するのか、早速試してみました。

REALTEK の RTL8812AU は FreeBSD では対応していないようでドライバがありません。 REALTEK チップのカーネルモジュールとしては if_urtwn.ko がありますが、これでは動作しません。
で、ウェブで調べていると GitHub にカーネルモジュールがあったので、今回はそれを試してみました。

GitHub から urtwm-master.zip をダウンロードして適当なディレクトリに展開します。そしてその中にあるパッチを適用します。 usbdevs に適用するパッチになります。あとは、同梱の README.md を読んでその通りにやるとコンパイルが通り、インストールも無事に完了です。

インストール後は /boot/modules/ に urtwm-rtl8812aufw.ko urtwm-rtl8821aufw.ko if_urtwm.ko が配置されます。そして、それらを kldload すると利用可能な状態となります。
僕は普段から if_urtwn.ko を利用しているので、以下の設定が /boot/loader.conf に書いてあります。今回も必要かもしれません。

legal.realtek.license_ack="1"

 
さてと。カーネルモジュールのコンパイル時のとこをはしょりすぎているのでちょっと書きますが GitHub からダウンロードしたソースコードは 11.0-RELEASE 以降のカーネルソースが必要になります。

僕は FreeBSD/amd64 では環境が整わず FreeBSD/i386 と FreeBSD/arm で検証しました。

それにしても FreeBSD の 10 系 RELEASE と 11 系 RELEASE では USB 周りのソースの配置がガラっと変わりましたね。 10 系までは /usr/src/sys/dev/usb/wlan/ などにモジュールのソースがあったのに 11 系では /usr/src/sys/dev/ 配置されるようになりました。他にもカーネルのコードが変わっているので 10 系 RELEASE では if_urtwm はコンパイルできません。是非とも 11 系 RELEASE を用意しましょう。

 
と、いうことで if_urtwm* のコンパイルが通ったので使ってみることにします。一番最初に試したのはなんと Raspberry Pi 2 Model B の FreeBSD 11.0-RELEASE-p1 です。 USB Wi-Fi の子機は USB3 に対応しているのですが Ras Pi2 は USB2 にしか対応していないので性能が出ないんですが・・f(^^;;。

ザクっと USB ポートにさしてみると ugen に落ちて認識しません。あらら。僕が購入した AUKEY の AC1200 の情報を usbdevs に書いてあげる必要があります。

と、いうことで以下の行を /usr/src/sys/dev/usb/usbdevs に記述してあげます。 VendorID は既に登録済みだったので ProductID のみ記載します。

product REALTEK RTL8812AU      0x8812  RTL8812AU

 
あと、ソースコード中にも記載してあげる必要があります。 urtwm-master/sys/dev/urtwm/if_urtwm.c に対して以下のパッチを適用します。

--- sys/dev/urtwm/if_urtwm.c.orig       2017-09-07 18:59:06.031051000 +0900
+++ sys/dev/urtwm/if_urtwm.c    2017-09-06 20:51:41.749003000 +0900
@@ -128,6 +128,7 @@
        URTWM_RTL8812A_DEV(SENAO,               EUB1200AC),
        URTWM_RTL8812A_DEV(SITECOMEU,           WLA7100),
        URTWM_RTL8812A_DEV(TRENDNET,            TEW805UB),
+       URTWM_RTL8812A_DEV(REALTEK,             RTL8812AU),
        URTWM_RTL8812A_DEV(ZYXEL,               NWD6605),
        URTWM_DEV(DLINK,        DWA171A1),
        URTWM_DEV(DLINK,        DWA172A1),

 
これで、再度コンパイルしてインストールします。今回購入した USB Wi-Fi 子機は REALTEK の RTL8812AU というデバイスとして認識されるようになります。

kernel: urtwm0 on uhub0
kernel: urtwm0:  on usbus4
kernel: urtwm0: MAC/BB RTL8812AU, RF 6052 2T2R

 
で、 FreeBSD/arm 11.0-RELEASE-p1 と FreeBSD/i386 11.1-RELEASE-p1 で試してみましたが、残念ながら 802.11a では接続できませんでした・・。orz

ただし、 802.11n では動作しました。こちらのほうはかなりの速さで、一応 30Mbps くらい出ました。 USB 子機が大きくてアンテナがちゃんとしているからでしょうかね。
WindowsOS では 802.11a で利用できるのですが、残念ながら FreeBSD では 802.11n だったですが、速度が出るのでヨシとしておくかぁ。と、いう感じでしょうか。 NotePC には大きくて常用は厳しいですが Ras Pi2 には良いかもしれんです。

USB3 へ接続すると 802.11a で通信できるのかなぁ? 今回はその環境がありませんでした。

あ。 /etc/wpa_supplicant.conf とか /etc/rc.conf の記述方法は今回ここでは書きませんが、大丈夫ですよね?

 
自宅の ThinkPade145 は USB3 が動作するのですが、この NotePC はカーネルのみが 10.1-RELEASE のままなので今回のカーネルモジュールはコンパイルできません。 syspend/resume を取るか、最新の FreeBSD を取るか悩ましいところではありますが、僕の場合は suspend/resume のほうが重要。なのでバージョンアップはしていません。

 
と、いうことで GitHub から拾ってきた if_urtwm のカーネルモジュールですが、一応は動いている。ということになります。if_run も if_rum も if_urtwn も、今までは 802.11n 対応だったので今回 FreeBSD で初めての 802.11a のドライバ。と、いうことになるかと思われます (僕の試した環境では接続できなかったけど・・)。

if_urtwm はどんなデバイスがあるのか? というのは上のパッチを適用したソースコードである sys/dev/urtwm/if_urtwm.c の中に書いてあるので、試してみたい方は一回覗いてみると良いかも知れません;-)。

2月 022017
 

IT 系のニュースサイトを会社でお昼休みに見ていたら Amazonセール速報:本日限りの特価! と、いうのを発見。かねてより会社で使うためのマウスを探していたので、すかさず購入しました。

購入後、次の日には届いたので早速使ってみることに。が・・。あたたたたた。使えることは使えるんだけど、ホイールが軽すぎて真ん中ボタンを押したら上下にホイールしてしまう状態である意味全然全く使えない。

例えばブラウザでとあるサイトのアンカータグを真ん中ボタンでクリックすると新規タブで開いてくれるんだけど、真ん中ボタンを押した表示されているコンテンツが上下にズズズと動いてしまう状態。全然使えないじゃん・・。

と、いうことで届いたその日のうちに分解。何とかカスタマイズできないかなぁ?などと思うわけです。分解の手順は至って簡単。

1. 電池を抜きます。
2. すると電池の溝の影のところにネジが一本あるのでそれを抜きます。
3. 裏ブタを下にずらしつつ上のほうのロックが外れる。
4. 上ブタのボタンのコネクタを爪などで抜きます。

以上で分解完了。

ホイールの部分を眺めてみるとどこかでテンションというか抵抗を付けてあげるとホイールの回転が渋くなるのになぁ。と思います。それに相当するのが、あったー。

写真でいう針金のようなものがホイールを回り込んているようです。

これを曲げてホイールに対して抵抗を作ってあげるとクルクル回る現象はある程度回避できそうです。
針金は本体プラスチックの爪で固定さているので横 (右ボタン側) にずらして外します。このときスプリングがびよーーんっ!! とどこかに飛んでいってしまうので注意が必要です。

抜き出した針金はこんな感じ。

これを、ちょうど良い硬さのホイールになるように曲げてあげます。僕はラジオペンチで曲げつつ調整しました。ビタっとしたちょうど良いホイールの硬さにするために三回くらいトライしました。もし、このエントリを読んだ人が同じことをする場合は、自分の感覚を信じて色々曲げてみてください;-)。

と、いうことでホイールは無事にちょうど良い硬さになり、ホイールの真ん中ボタンを押してもコンテンツが上下にブレる。と、いうことから開放されたのでありました;-)。

 
と、いうことで、これだけで終わってしまったらただ単にフツーの、そこいら中にある分解・改造の記事になってしまうので一歩踏み込みます;-P。

まず、僕の PC の環境についてですが、キーボードとマウスは二台の PC で共有しています。 USB 切替器で FreeBSD と Widnows10 を行ったり来たりしている状態です。

で、この Logicool の M5454 というマウスはホイールが前後に回転する他に左右に倒すことによってイベントが発生するようです。しかも右側には更にボタンが二つあります。

パッっと思いつくのは『このボタン達は FreeBSD で使えないのかな?』と、いう点。 Windows10 の場合は専用ドライバをインストールすると、ホイールの左右方向と左側の二個のボタンには色々な動作を割り当てられます。

これを FreeBSD+Xorg で似たようなことできるのかな?とか思い、ちょっと調べてみました。

まずは Xorg のマウスの設定。

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/sysmouse"
        Option      "ZAxisMapping" "4 5 6 7"
        Option      "ButtonMapping" "1 9 3 2 2"
EndSection

 
最後に ButtonMapping と、いうオプションを付けてみました。

オプションの数値はボタンの番号を表しています。ボタンの番号は xeve で取得できます。数値が “1 9 3 2 2” となっていますが、これは “左 左横前 右 ホイール ホイール” の各ボタンを指しています。
動作的には “左ボタン 真ん中ボタン 右ボタン ホイールの前 ホイールの後” ということになります。 FreeBSD のマウスによるペースト動作を左横前ボタンで代用する。と、いう設定ですね。

さてと。X を再起動して /var/log/Xorg.0.log を眺めてみましたが X からは ButtonMapping の設定がまるで無視されていました・・。orz

 
次に FreeBSD の ports で何かないんかい?と思い調べたのですが x11-drivers/xf86-input-evdev という、 X のドライバでマウスの様々なボタンに対応できるらしい。とのことで調査開始。

Linux では動作するらしいですね。 /dev/input/* なデバイスを利用するとマウスで色々なボタンが利用できるようになったり、Logicool M565 などは専用カーネルモジュールがあるようで。

FreeBSD ではまだ evdev.ko なるカーネルモジュールがないので実質的に xf86-input-evdev は利用できないようです。 CURRENT で現在検証中らしいのですが、それ以上は追うのはやめました。

 
と、いうことで FreeBSD においてはフツーの無線の USB マウスとして利用しようとおもった矢先、ブラウザでとあるサイト見ているときにホイールを左右に振ってみると。あれれ?

ホイールを左に振ると戻るボタン
ホイールを右に振ると進むポタン

と、して動作するようですねぇ。あれれ? X で制御しているのかな? KDE 側で対応しているのかな?あれあれ? ソースコード追ってません。すみません。ただの動作確認のみですf(^^;;。
一応 firefox rekonq では上記のように動作しました。 konqueror では動作しませんでした。

xmodmap で進む・戻るボタンが設定できるようですね。詳細は書きませんが。 evdev が動かなくても xinput などでも色々設定が可能らしいです。ここでは詳細は書きませんが。

まぁ、珍しい機能が動くモノだ。と、いうことで Windows10 側でもドライバユーティリティで設定を FreeBSD に合わせた。と、いうことで、二つの OS で動作が一緒になったのでありました;-)。

 
今回はマウスを一個購入して、エントリを書いていますが、タネは二つ。

・ホイールクルクルがイヤな人は分解して針金曲げてみましょう
・FreeBSD ではホイール左右で戻る・進むが動作する

と、いうことですね。中々楽しめた一品だったのでありました;-)。

あ。お約束ですが、『分解』することになるので、自己責任でお願いしますね。

9月 112016
 

ドスパラの手頃な値段の Windows タブレット Diginnos DG-D08IWB 32GB ですが Windows10 にアップデートして使っていたのですが、とあるタイミングで shutdown したら、起動しなくなってしまいました。

o.電源ボタン押しても起動せず。
o.電源ボタン長押しでも起動せず。
o.電源ボタンと音量アップボタン同時長押しでも起動せず。
o.電源ボタンと音量ダウンボタン同時長押しでも起動せず。
o.USBポートにマウスを付けても LED が光らない。

もうダメダメじゃーん・・。 orz。

バッテリーの残量が少ないと起動しない。と、いう話はあちこちに登場します。起動しなくなったあと、ずっと充電している(赤い LED が点いていた)ので多分フル充電状態だと思われます。
MicroUSB ポートに変換ケーブルを挿して USB マウスを接続しても USB マウスの LED が光らないのはきっと MicroUSB ポートに電通されていないからだろう。などと思うわけです。

で、ウェブで調べても特に復活させる情報が無い。が、しかし、唯一、

o.マザーボードとバッテリーを繋ぐケーブルを一旦抜き差しすると復活するらしい。

と、いうのを見つけて、もう、ホトホト諦めつつ殻割りすることを決意。保証はもう既に切れているのでできる芸当ですが・・。

しかし、更にウェブで調べてみても DG-D08IWB を殻割りした。と、いう情報は無い。困ったなぁ。ヒトバシラーかぁ・・。などと思いつつ決行っ!!

まずは無事に殻割りが完了した写真っ!! v(^^)。

img_5160_dg-d08iwb_1

グリグリと裏の鉄板をはがしました。鉄板というか、一応、高級感を出しているアルミのバックパネルを引っぺがしました。

本体と裏のアルミのバックパネルは接着剤でくっついていて、それをはがした。と、いう感じです。
上の写真で黒い部分に白っぽいムラが見えますが、接着剤の固まったヤツです。

MicroUSB スロットのあるところが唯一のアクセスポイントです。そこからバックパネルを取りにかかります。
今回利用したツールはマイナスドライバーとピンセット。

img_5165_dg-d08iwb_3

ピンセットの手元の部分を MicroSD スロットの横の空きスペースに突っ込んでグイグイと上に持ち開けます。するとアルミのバックパネルの接着剤が浮くので、時計回りにマイナスドライバーでグリグリと引っぺがしにかかります。

ぐるっと一周して。ベコンと取れました。ふぅ・・。取れた状態が一番最初の写真になります。

今回はパカっと開けることが目的ではないのでその後継続して作業を進めます。バッテリーとマザーボードが接続されているコネクタを一回引っこ抜いて再度接続するとマザーボードに対してリセットがかかって復活する(あー。僕的には情報ソースが発見できませんでしたが、一応トライしてみる。と、いう暴挙に出ています;-)。と、いうことだったのでその通りやってみるとこにします。

img_5174_dg-d08iwb_3

ケーブル類は黒いテープで覆われていたのでとりあえずテープをはがします。カメラの下の部分にあります。上記写真だと右側の、マザーボード側が白でバッテリー側が黒いソケットの部分を外します。
マイナスドライバーとピンセットを利用して外し、完全に外れたことを確認したあとに再度接続します。

これだけの作業ためにアルミのバックパネルを外したということになります。orz。

 
さて。ケーブルを抜き差ししたあと、電源ボタンを押すと・・。あぁら。あっと言う間に起動し Windows10 が何事も無かったのごとくブートしました(@_o)。

本当にマザーボードとバッテリーのケーブルを抜き差しすることでハードウェアリセットがかかったのね・・。

Windows OS 的にも特に問題無く動作しています。

と、いうことで無事に復活したのでありました。良かったぁ・・。

 
けど、接着剤でくっついていたアルミのバックパネルをはがしたので、その後、再度接着剤で固定するか、悩ましいところではあります。僕の DG-D08IWB 32GB はケースに入れているので、とりあえずは養生テープで固定してケースに入れて利用することにしました。今度また同じ状態になったときのことを考えると・・。

 
と、いうことで Diginnos DG-D08IWB 32GB の復活方法を記載しましたが、最後にお約束の言葉を書きますね。僕はたまたまうまく行ったけど、自己責任でお願いします。分解して動かなくなっても、保証が効かなくなっても僕は一切関知しません。
自己責任でお願いします。

5月 262016
 

ちょっと前のエントリでZSUN Wi-Fi 付きカードリーダーを購入してみました。というのを書きました。

Wi-Fi の USB メモリとしては利用できるんだけど、ZSUN の Wi-Fi に接続すると外部ネットワークにアクセスできなくなるのであまり使えない。と、いう結論でしたが、実は回避策が見つかったので、ちょつとエントリを書いてみます。

 
前回のエントリでは ZSUN のアプリを起動して下のメニューに iPhone では “Internet” 、 Andorid では “Bridge Internet” という項目があるのでもしや!? とか思ったけどやっぱりダメだった。と書いています。

しかし、iPhone では 3G/LTE に接続しつつ Wi-Fi にも接続できる機能というか、ワザがあったのですね。

二つのネットワークを同時に利用するには片方の default gateway を設定しないことがじゅーよー。

この点に尽きます。基本的には 3G/LTE 側に defaut gateway が設定してあるとした場合、 Wi-Fi 側のネットワークからは defaut gateway を削除しておくと Wi-Fi 側にはリンクのアドレスに対して通信が行える。

と、いうのがどうやら iPhone の仕様のようですね。

では実際にどうするか? ですが、簡単です;-)。

1). 3G/LTE で通信可能な状態にしておく
2). Wi-Fi をオンにして ZSUN Wi-Fi USB アダプターの AP に接続する
3). ZSUN Wi-Fi USB アダプターの AP に接続したあどは静的 IP アドレスを設定する
4). 固定 IP アドレス設定時 default gateway を空白にする

これでけです。上記のように設定すると 左上の Wi-Fi の扇子のマークが消えて 3G/LTE の状態が表示されます。しかし、この状態でも ZSUN Wi-Fi USB アダプターにアクセス可能で、Disk の中身も確認できて、音楽も聞ける状態になります。

IMG_4211_ZSUN_WiFi2_1

キャプチャはこんな状態です。

ZSUN Wi-Fi USB アダプター本体のアドレスは 10.168.168.1 なのでそれ以外の IP アドレスを設定すれば問題ありません。

なるほどねー。こーいうワザがあっのか。って感じですが、これで ZSUN のディスクの中身に ZSUN アプリでアクセスしつつ、その他のアプリではネットワークは 3G/LTE 側に抜けていくので、同時に両方のネットワークが利用可能な状態。と、いう環境が作れました。良かったですねぇ;-)。

この技は iOS を利用していると、ありとあらゆる場面で利用可能な可能性を秘めているですよね;-)。

 
さてと。上記は iPhone6 の iOS 9.3.2 でのお話ですが Android 4.4.2 ではどうか? というのを ZTE Blade Vec 4G で試してみました。

Wi-Fi で静的アドレスを利用する設定があるにはあったので早速設定してみましたが、 Android 4.4.2 のネットワーク設定では “ゲートウェイ” と “DNS1” は空白にすることができないですね。ゲートウェイの設定では何かしら値が入ってないとダメのようで、試しに 0.0.0.0 を指定してみましたが Wi-Fi 側のネットワークを利用してしまうようです。
DNS1 に至っては空白にすると勝手に 8.8.8.8 が設定されてしまう。ウギャーっ!! さすが google 謹製の OS だわぁ。

IMG_4212_ZSUN_WiFi2_2

キャプチャはこんな状態です。

と、いうことで、今回のエントリのネタは iOS にしか有効にならない。と、いうことになりました。 Android の場合には “Bridge Internet” の機能が動作するようになることを祈るだけですね。

あ。 Nokia Lumia620 の Windows 10 Phone では試してないな。とわ言いつつ、技適通ってない機器なので成田の出国カウンターの向こう側で試すしかないか;-)。

5月 102016
 

ascii.jp で Wi-Fi 機能付きの USB カードリーダーが売っている。とのことで早速買ってみました。 https://www.donya.jp/item/73733.html を見てみると技適が通っているので日本国内でも安心して利用できる点が良いですね。

見た感じはこんなふう。

IMG_4114__ZSUN_1

早速利用してみました。今回は iPhone6ZTE Blade Vec 4G で試してみました。

iOS と Android のそれぞれのアプリストアから ZSUN で検索してアプリをダウンロードします。

購入した「Wi-Fi 付きカードリーダー」に 32GB の MicroSD をセットし、とりあえず Windows10 が動作している PC の USB ポートに接続します。

PC 側で特に何の問題もなく USB カードリーダーとして認識して 32GB のリムーバブルメディアとして認識するのでドドドとテストデータをコピーします。

以上で準備完了。

 
次に iPhone で利用してみます。

まず 設定アプリ から Wi-Fi の設定画面を開き zsun-??? な SSID が見えるので接続します。パスワードはありません。

zsun-??? な SSID に無事に接続できたら先ほどダウンロードした ZSUN アプリを起動し 下に見えるメニューから一番右の “MENU” をタップし “Setting” を表示します。ここで SSID を再設定したりパスワードを設定したり認証方式を設定したりします。

IMG_4116_ZSUN_2

同じことは Android のアプリでもできます。 SSID の設定は iOS もしくは Android 側で一回行えば十分でしょう。

SSID を再設定し iOS と Android が再度接続できたら準備完了です。

 
続いてモード選択について説明します。下のメニューに “Switch Mode” というのがあるのでそれをタップします。すると以下のキャプチャのような画面が現れるかと思います。

IMG_4117__ZSUN_3

モードは全部で三つ。

・Wireless Disk
PC に接続された「Wi-Fi 付きカードリーダー」を Wi-Fi 経由でアクセスする場合にはここを選択します。
このとき、PC では 32GB のリムーバブルディスクとは認識していなくて、 PC から MicroSD の中は見えません。

・Flash Disk
PC に接続された「Wi-Fi 付きカードリーダー」を PC のみで利用する場合に選択します。ピロロンと Windows10 から音が出て、リムーバブルディスクとして認識された状態です。
このときは Wi-Fi から MicroSD に対してはアクセスできなくなります。

「Wireless Disk」と「Flash Disk」は排他で利用するような感じですね。

・My Device
これは iPhone や Android 内のデータを「Wi-Fi 付きカードリーダー」にコピーするために利用します。自分のスマートフォン内を覗き、必要なファイルを選択する画面になります。ここで写真などを選択し MicroSD にコピーすることになります。

以上の動作がメインです。英語で書かれているのでちょっとシキイが高いですが、解ってしまえば操作は簡単です。

 
Flash Disk モードのときに PC 側でフォルダを作成し、 Flash Disk モードに切り替えて中を参照すると新しいフォルダが見えませんが、表示されている情報を更新する必要があります。その場合には画面を指で下に引っ張ると更新され PC で作成した新しいフォルダが現れます。

そして、その後 My Device で「Wi-Fi 付きカードリーダー」にコピーしたいファイルを選択しペーストすれば作業は完了です。

 
ここまではスマートフォン -> 「Wi-Fi 付きカードリーダー」方向の動作でしたが、逆に「Wi-Fi 付きカードリーダー」内のファイルをスマートフォン側で利用する場合について書いてみます。

と、いうのも、僕は最近ハイレゾにはまりつつあるのですが、その楽曲データの量の多さに圧倒されつつふるので外部ストレージが必要になったために今回「Wi-Fi 付きカードリーダー」を購入してみたのでありました。

Flash Disk モードにして、早速 PC 側から mp3・m4a・flac の各ファイルを「Wi-Fi 付きカードリーダー」に入れ、 Wireless Disk モードにして、画面を下に引っ張り更新してから参照します。
mp3・m4a・flac の各ファイルは無事に見えるようです。では早速再生を。その場合はタップすると、なんとっ!! ZSUN アプリ内蔵プレーヤーが起動し、再生することができました。すげっ!!

IMG_4142_ZSUN_4

再生中の見た目は地味ですが iOS 版アプリでは mp3・m4a・flac が再生できます。 flac は 192kHz/24bit のものも再生できますし 96kHz/24bit のものも再生できます。ただし 192kHz/24bit のものが 15 曲入っているフォルダがあるのですが、楽曲自体が表示されない場合もありました。あらら。残念。

Android 版アプリも同様で mp3・m4a・flac が再生できます。 flac は 192kHz/24bit のものも再生できます。 Android の音楽プレーヤーは 96kHz/24bit のものは再生できても 192kHz/24bit は再生できないのが多い中、よくもまぁ、ちゃんと再生してくれるモノだ。などと感激です;-)。

ちなみに iOS 版アプリでは表示できなかったフォルダも Android 版アプリでは再生できました。

あ。僕は動画はあまり見ないので今回はテストしていません;-)。

写真の場合 JPG はサムネイル表示できますが、PNG は表示できません。なのでキャプチャデータなどは厳しいです。

 
あと、 mp3・m4a・flac ファイルの再生についてですが 2,3 テストしてみました。

まず iPhone6 と ZTE Blade Vec 4G の両方で同時に ZSUN アプリの内蔵プレーヤーで同時に再生してみました。特に問題なく、両方の機器から音が聞こえました。音飛びなども発生していませんし「Wi-Fi 付きカードリーダー」本体の熱も気になるほど熱くはなりませんでした。10 分程度の再生ですけどね。

一番悲しかったのは ZSUN アプリの内蔵プレーヤーが連続再生に対応していない点でしょうか。以下のフォルダ形式でデータが入っているとします。

一曲目: d:\Music\aaa\01.mp3
二曲目: d:\Music\bbb\01.m4a
三曲目: d:\Music\ccc\01.mp3
四曲目: d:\Music\ccc\02.m4a
五曲目: d:\Music\ccc\03.flac

aaa bbb ccc と三つの個別のフォルダがあり ccc の中にのみ三つの曲が入っているとすると、一曲目から再生すると一曲目を再生して終了。
ccc フォルダに移って三曲目を再生すると五曲目まで連続して再生して終了。
一曲目から五曲目までを順番もしくはランダムに再生するには全ての楽曲を同一フォルダに入れておく必要があります。

まぁ、おまけで付いてきている内蔵プレーヤーだからショーがないかなぁ。

iOS も Android も ZSUN アプリ内蔵以外の音楽プレーヤーからは楽曲を見つけることができないので再生はできないです。

単発で再生する場合に利用するのが良いですね。

 
とまぁ、中々面白いデバイスではありますが、あまり実用性はないかなぁ・・。

WI-Fi で「Wi-Fi 付きカードリーダー」に接続していると、インターネットに抜けられないんですよね。 iOS 版アプリでは下のメニューに “Internet” 、 Android 版は “Bridge Internet” というのがあるのですが、おっ!! これはもしかして default gateway をグローバル側に設定して通信ができるのか? と、期待させてくれるのですが、現在では(多分)まだ正常動作していないようです。

Wi-Fi をオンにすると 3G/LTE に抜けられないのが悲しい点ですね。

 
さてと。今回購入したコレは、素直に写真のバックアップ用にしたほうが良いのかなぁ・・。

ウェブで見ているとこのデバイスに OpenWRT インストールしている人がいるようですし、遊び方は色々あるのでしょうなぁ;-)。

6月 222015
 

遅ればせながらですが、Raspberry Pi2 MODEL B を購入しました。まぁ、世の中はボーナスセール開催中ですしねぇ。

と、いうことで Amazon で手頃な値段で売っていたのでゲットです。ケース付き本体が 5,980yen 、 そこにヒートシンク 850yen が無料で付くというのでそれをそのまま購入。翌日には配送されました。

筐体が届き OS はどうすんべかいのお・・。などと悩んでいたのですが FreeBSD/arm をインストールすることにしました。

と、いうことで初めての FreeBSD/arm です。今回から数回に分けて Raspberry Pi2 で FreeBSD/arm が動くまで、動いた後について書いて行きたいと思います。

 
1). 購入
まぁ、 Amazon でボタン押しただけですf(^^;;。
届いたのはこんな感じ。

IMG_2092_raspi2_1

箱とケース付きの本体と、そして、ヒートシンクパック。これで送料込み 5,980yen だったのでまぁ、ボチボチかな。

電源ケーブルがありません。どうすんねん? とか思ったら MicroUSB から電源供給できるんですね。スマホの充電ケーブルとかが代用できます。僕は docomo の MEDIAS N-04D 購入したときに合わせて購入した電源コンセント -> MicroUSB で無事に起動しました。ふふふ。

 
2). OS は FreeBSD/arm をチョイス
ウェブなどで調べたのですが、まぁ、以下の URL が参考になるでしょうか。

FreeBSDarmRaspberry Pi 2 image

ここを見て色々やろうとしました。まず rpi2.img ってのはなんだべ? ってことろから入るのですが、それはつまりは、以下の URL からダウンロードしてきた USB スティックイメージのことなんですね。

ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/arm/armv6/ISO-IMAGES/11.0

僕は今回は FreeBSD-CURRENT をチョイスしました。そして FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20150618-r284544.img というファイルを利用しました。
ダウンロードした img ファイルを上記 URL のように mdconfig とか打ったりしたんですが、面倒になったのでいきなり手持ちであった 8GByte の MicroSD カードに素の img ファイルを dd コマンドを叩き書き込んでみました。

# dd if=FreeBSD-11.0-CURRENT-arm-armv6-RPI2-20150618-r284544.img of=/dev/da1 bs=10240

 
of= は自分のデバイスに合わせてください。あ。上記コマンドは FreeBSD/amd64 上で実行しています。

MicroSD カードに OS が入ったので Raspberry Pi2 に突っ込んで電源投入です。あ。 USB キーボードと HDMI のディスプレーを用意してから電源投入しました。

するとな。なんとっ!! サクっと OS が起動しました。すげー。今の FreeBSD-CURRENT はスゲーよっ!!

USB キーボードも認識するし、 USB Wi-Fi を接続したら run0 で認識するし、 CPU は四つ認識しているし、あっと言う間に Raspberry Pi2 から FreeBSD/arm が起動しました。

あ。一点だけ。 root パーティションが見つからないのでブートは途中で止まります。

boot> ufs:/dev/mmcsd0s2a

 
として起動するとサクっとブートして login プロンプトが出ました。
default のユーザ名 root でパスワードも root でサクッとログインできました。ログイン後に /etc/fstab を以下のように変更します。

# Custom /etc/fstab for FreeBSD embedded images
#/dev/ufs/rootfs /       ufs     rw      1       1
/dev/mmcsd0s2a   /       ufs     rw      1       1
/dev/msdosfs/MSDOSBOOT /boot/msdos msdosfs rw,noatime 0 0
md /tmp mfs rw,noatime,-s30m 0 0
md /var/log mfs rw,noatime,-s15m 0 0
md /var/tmp mfs rw,noatime,-s12m 0 0

 
これで無事に起動します。 8GByte MicroSD は 8GByte よりちょっと小さい / バーティションが用意されます。

あとは freebsd という su できる一般ユーザがあるのでこれを適当に利用したり削除して自分のアカウントを作成したりして、 /etc/rc.conf を書き換えたりとか、自分の好みの FreeBSD に仕上げて完成。

dmesg は以下になります。

dmesg

FreeBSD/arm には PCI BUS ってのは無いようですね。pciconf -lv は表示してくれません。
あと、 sysctl -a を見ると dev.cpu.0.freq で CPU 速度が 900MHz と 600MHz で可変のようですが、 900MHz で動作しているところを見たことがありませんf(^^;;。
dev.cpu.0.temperature もきっちりとあって、温度が取れます。僕のはヒートシンク付きなので高いときで大体 44゜C くらいでしょうかね。

 
Raspberry Pi2 を知らなくて FreeBSD にうんと詳しい人(あ。それは僕のことです;-P)が接すると大体一時間くらいで遊べるようになります。

 
3). /usr/prots どうするよ?
一応 NFS まで動かして自宅の ports サーバの /usr/ports を NFS マウントして /usr/ports/ports-mgt/pkg/ を make してみたのですが、やはり遅くてダメですね。途中で Ctrl-C して止めてしまいました。

クロスコンパイル環境を FreeBSD/amd64 に作らないとダメっぽい。

とわ言いつつ、一応、自分で make した packages を用意しました。以下の URL にあるので欲しい方はダウンロードして pkg add してみてください。

http://distfiles.icmpv6.org/distfiles/packages/All.armv6/

拡張子が tbz なのは僕が make したモノ、 txz は README.txt に書かれている URL からダウンロードしたモノになります。
上にも書いている通り僕は FreeBSD-11.0-CURRENT の r284544 を利用しています。そこでコンパイルしたモノになります。 make config は自分の趣味で指定してます。極力余計なモノをインストールしないオプションを指定しています;-)。

 
と、いうことで今回はここまで。

FreeBSD-CURRENT の image ファイルを持ってきて dd して Raspberry Pi2 で起動すると、あっと言う間に起動します。すげー簡単に FreeBSD/arm が遊べるようになります。

次は FreeBSD/amd64 でクロスコンパイル環境が作れた。と、いうネタで書けると良いなぁ;-)。

 
僕はヒートシンク(プロモーションだった;-)付きで 5,980yen で購入したんだけど、タイミングが良かったのかな?

 

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 な状態のヤツをラジコンカーに積んで走らせたら、録画ではなく、リアルタイムで動画が堪能できるような気がします。

面白そうだ・・;-)。