その後のNanoBSD

March 3rd, 2010

freebsd_logo

「どうやってやるんだ?」と悩んでいたけど、普通にpkg_addでできるらしい。というかできた。
ルートボリュームは、通常リードオンリーなので、
# mount -u -o rw /
としてルートボリュームを読み書きできるようにする。
で、あとはpkg_addをすればいい。

試しにmpd5をpkg_addでネットワーク経由でインストールしてみたら、libpdelをインストールしている途中で、/varが一杯になってしまった。なので、逆順にpkg_addしてみた。

# pkg_add -r libpdel
# pkg_add -r expat
# pkg_add -r mpd5

うん、今度は素直にインストールされた。

その後、ルートボリュームをリードオンリーに戻してあげる。

# mount -u -o ro /

手動でmpd5を起動したけど、mpd.confを書いていないのでちゃんとは起動していない。

portsを使う場合は、NFSでマウントするとできそう。

pfSenseからnanoBSDに寄り道 (のまだまだ途中)

February 16th, 2010

pfSense_logoFreeBSDルータをつかっているんだけど、少しくたびれてきているのとサーバ達の中で一番うるさいマシンになってしまったので、リプレイスしようと画策している。今の所それほど緊急性が無いのもあって、進み具合はかなりゆるゆる。

そんな中、出会ったのがpfSense。ちょうど昨年開発者による本も出たのでAmazonで予約して購入。なにぶん英語の本なので未だに全部読んでなかったりする(爆)

pfSense-1.2.3-release-nanobsdバージョンも出たので手順通りにCFを作った。

といってもpfSenseのサイトからpfSense-1.2.3-RELEASE-4g.nanobsd.img.gzをダウンロードしてきて、


# gzcat pfSense-1.2.3-nanobsd.img.gz | dd of=/dev/disk1 bs=16k

でおしまい。

これをCF -> Serial ATAアダプタを介してCPUに接続し、あとは起動し、Webでアクセスすると…

起動しないんだな。これが。4Gのイメージで失敗。2Gにしても失敗。古いバージョンのpfSense-1.2.1-Embedded.img.gzを128MBのCFに書いてやっと起動した。

ここで、ふと思った。今時のUSBメモリはソケットから5mmしか飛び出ないのもあるので、実は行けるんじゃないか?と。

さっそくBaffaloの2GのUSBメモリを買ってきて試してみたら、ばっちり起動する。Webブラウザでアクセスし、必要項目をセットすると取りあえずは使えるようになった。

pfSense 1.2.3はnanoBSDをベースとしている。pfSense-1.2.3がなぜCFで起動しないのか気になりだした。気になりだすともうダメなので今度は、nanoBSDのイメージを作ってみた。作るのはnanoBSDのHowtoのままやってみた。


# /usr/src/tools/tools/nanobsd
# sh nanobsd.sh
# cd /usr/obj/nanobsd.full
# dd if=_.disk.full of=/dev/da0 bs=64k

母艦は、release-8.0

/dev/da0はpfSenseで使ったUSBメモリ。ところが起動はするが、/をマウントするところで止まってしまう。そう、母艦でddでライトするときは、/dev/da0なんだけど、fstabはad0になっているんだな。

nanobsd.shで指定されているディスクがad0となっているのでコンフィグファイルで、NANO_DRIVE=da0を指定する。これで再度スクリプトを走らせてUSBメモリに書き込むがやはりマウントポイントの所で、止まってしまう。一応手入力でufs:/dev/da0s1aを入力すると起動する。でもこれぢゃ今ひとつ。試しにCFに書いてみると今後はgeometoryが違うとおこられるので、diskifo -v /dev/da0でgeometoryを調べてまたまたスクリプトを走らせてみると今度はすんなり起動する。なんだかなー。

気を取り直してnanoBSDを調べていくとportsやらpackageがそのまま使えるらしい。というか中身はFreeBSDなので。がしかし、CFは書き込み回数に制限があるので、/etcや/varはmdを使ったいわゆるRAMディスクなので一癖あるらしい。うーむ、どうやってやるんだ? <- いまここ。

freebsd_logo

iMac (Early 2008) のメモリ

February 3rd, 2010

Micron

今使っているMacintoshは、iMac (Early 2008)なんだけど、VMwareを使うには、ちょっとばかりメモリが心もとない。というのもキーボードが英字キーボードという以外は、ケチケチ仕様で、当時のデフォルトの2GB。

いろいろ調べていくとAppleの公式仕様では、Memoryの上限は、4GBだけど、実際には、6GBまで認識するらしい。というわけでメモリを増設したい病にかかっている。

一時期Memoryの価格がものすごく下がったんだけど、何となく機を逸して増設しなかったんだな。

んで、最近メモり増設したい病にかかっているので毎日お昼にMemoryの価格を価格.comで調べていたり。

6GBにするには、SAMSUNGのMemoryぢゃなきゃダメみないなことが書いてあったんだけど、ふと今のメモリはSAMSUNGなのか調べてみたら、なんとMicronのMemoryだった。MT8HTF12864HDZ-800E1 SO-DIMM PC2-6400  (DDR2, 800, CL6)

SAMSUNG以外の4GBのMemoryを増設してみるかなぁとも思ってみたりして。

February 1st, 2010

J-WAVEのWeekDay昼の番組M+でDJ TAROさんがダフトパンクの元ネタ特集をしていた。

ダフトパンクのファンには当たり前かもですが、メモってことで。

Voyager – The Alan Parsons Project
Release the Beast – Breakwater
Can You Imagine – Little Anthony & The Imperials
Cola Bottle Baby – Edwin Birdsong
Get Down Saturday Night – Oliver Cheatham
Get it Up for Love – Tata Vega
Hot Shot – Karen Young
Supernature – Cerrone
I Love You More – George Duke
Il Macquillage Lady – Sister Sledge
More Spell on You – Eddie Johns

『グリム童話/メルヘンの深層』全文

December 14th, 2009

『グリム童話/メルヘンの深層』の全文が公開されていたのでメモ

http://www.shosbar.com/grimm/grimm0.html

椅子の高さ

December 11th, 2009

ちょっと前からグラ付いていた椅子を思い切って捨ててしまった。
買う前に捨ててしまったので、今は、ハイチェストでダイニングテーブルに。

どの椅子を買ったらよいか探しているところに、TLで(自分に取って)旬な話題があったので、メモ。

人間工学を使った計算式

  • 椅子の高さ=身長×0.25-1
  • 机の高さ=身長×0.25-1+身長×0.183-1

これによると僕にぴったりなのは、

170 × 0.25 – 1 = 41.5

うむ、IKEAの椅子って殆どが45cmなんだよね。IKEAの椅子はひとつあるんだけど、微妙に座りづらいと思っていたんだけど、それが証明できたわけだ。足置きを作ってそこに足を置いていたんだよね。

足を切っちゃっと。でも平行に切れるかなぁ。

仕事をするのにオフィスはいらない -Nomad Style-

July 23rd, 2009

404 Blog Not Foundで紹介されていた佐々木俊尚氏の「仕事するのにオフィスはいらない」を読んでみた。

紹介している小飼 弾氏の最後の2行につられて一息に読んでしまった。

世の中で活躍している人の事例から著者自身が実践している方法を簡単に紹介している。
なるほど、IT=クラウドで武装して個だけどコラボレーションツールを使っていろいろなところに繋がっているわけだな。

既に使っているツールもあったけど、別なツールの紹介もされていて参考になる部分もあって面白かった。

ノマドなワークスタイルでは、アテンションコントロールという自己管理が一番重要。
著者もあっちが気になったり、こっちが気になったりするけど、どうやって仕事に集中するかを紹介していて、これがとても参考になった。

Frisk Mega88 on FreeBSD7.2 with libusb

July 16th, 2009

FreeBSDのlibusbがちょっと違うらしいと思っていたんだけど、そうでも無いらしい。

FreeBSDでは、USBデバイスの認識をumassやukbdやulptとして認識する。
vusbを使ったFrisk Mega88(名前決めてないや)はHIDとして認識するようにしているので、WindowsやMacでは、ドライバ不要で使えたりする。FreeBSDでもhidでバイスは、uhidとして認識されるわけだが、どうやらFreeBSDのlibusbはuhidで認識されたデバイスにアクセスできないらしい。

FreeBSDのlibusbは汎用のUSBデバイスであるugenとして認識できたデバイスだと上手く操作出来るらしい。

ということをGoogle様で探してLipwoodさんのところで見つけた。
LipwoodさんはUSB-IOというデバイスをFreeBSD上でlibusbを使って動作させたということなので、早速実験してみた。

まず、Frisk Mega88をそのままFreeBSDマシンのUSBに接続する。
uhid0: on uhub1
やはりuhidで認識されている。

ここで、コマンドを叩いてみる。
# ./getemp
Could not find USB device “GETTEMPDev”
となり温度情報を取得することが出来ない。

というわけで、uhidをカーネルコンフィグからコメントアウトしてカーネルの再構築を実行。
待つことしばし。

reboot後、Frisk Mega88をFreeBSDマシンに接続。こんどは、
ugen0: on uhub1
という訳で、ugenデバイスとして認識している。

んじゃってことで、コマンドを叩いてみる。
% ./getemp
Could not find USB device “GETTEMPDev”
ダメじゃん!何かが違うんだろうなorz…

しばらくして、ふとrootでコマンドを叩いてみたら
# ./getemp
28.6
#
いぇい!まんまと温度を取得することが出来た。

そうか管理者権限が無いと出来ないらしい。
試しにPWM(一応組み込んではある。ドライブは出来ないだろうけど)の設定をしてみるとLEDの明るさを換えることができる。
# ./getemp 1
#
ついでにステータスも取得してみる。
# ./getemp status
Duty is 1
#

んじゃ、シェルスクリプトで温度取得をぶん回してみる。
# sh gett.sh
26.7
26.8
:
#
100回でも500回でも大丈夫らしい。

次は実験機に組み込んでみようと思う。

# そういえば、AVRライターであるHIDspxをFreeBSDで使ってみよ。
# 認識はするけど、使えないって
# 何処かに書いてあったような無かったような。
# もしかしら今の状態だと使えるかもしれないし。

Frisk mega88 five

July 14th, 2009

久しぶりに電子工作三昧な日を過ごすことができ、一気にFrisk ATmega88モジュールを仕上げた。

まずは、FRISKのケースに合わせてユニバーサルボードをカットする。
board
Friskのケースにユニバーサルボードを合わせると10×25のサイズになり、秋月のボードからは3枚取れるらしい。
カットは、切り口とサイズが奇麗なピラニア ノコできっていたんだけど、かったるくなったので鉄パイプを切るノコギリに換えた。
こちらの方が、ノコギリの歯の幅と穴のサイズが同じ位で意外と調子が良かった。

穴の位置で切ると少し大きめなので、後はひたすら紙ヤスリで削る!
sanding

というわけで、サイズを合ったら部品を載せて、これもひたすらハンダ付け。
atmega88_fives
で、前に一つ作っていたので、合計5個のFrisk mega88モジュールができた。

上手い具合に秋月のWebに載っているシングルピンソケットが高さも丁度良くはまりプログラミング用のコネクタも付けることが出来た。

最終的な実体配線図チックな回路はこうなった。青の破線は、部品面でジャンパーしている。
基板の外側を回っているのは、ワイヤーでジャンパーのイメージ。
動いているので大丈夫だと思うけど、参考にするならYour Own Riskでよろしく。
frisk_rev22

課題としては、
ADCのノイズ対策をしていないこと。
ADCのリファレンス電源。
USB供給の電源のノイズ具合はどうなんだろう?
というところかなぁ。

これで、実機に組み込んでというところで大問題が!
温度を測ろうと思っていたのは、ATOM兄弟。OSはFreeBSD7.2がのっているのだが、FreeBSDでは、libusbがちょっと違うらしくデバイスは認識されるんだけど、コマンドに応答してくれない。:-(

う〜ん、困ったなぁ。
まっハードは出来たってことで良しとするか。
まだまだ道のりは遠いですな。

Mega88をFRISKケースに入れてみた -VUSB Exampleの実行

June 25th, 2009

mega88-frisk

ライターをFRISKケースにまんまと仕込み、勢いでブレッドボードでテストしていた温度測定用のATmega88もFRISKケースに無事に納めることができた。
#ケースの真ん中に穴があいているのは
#やっぱり心配だったのでICソケットを使った。
#しかし部品少ないな。

その後、しばらくAVRに触れることが出来なかったんだけど、少し時間を作って触ってみた。

VUSB -A.K.A avr-usb – のexampleであるcustom-classは、今までMac OSXで作業していたんだけど、何となくWindows XPに接続してみたところ、コード10のエラーが出て、USB HID(ヒューマン インタフェース デバイス)として認識してくれない問題が出た。試しにLinuxに接続してみたけど、やっぱり認識してくれない。
なぜかMac OSXだけ認識する状態。

回路を色々みてまわったところ、異なる箇所は、

  • USBのD-, D+の抵抗値が68Ω。今回は、75Ωを使った。
  • ツェナーダイオードに3.6V。今回は、3.3Vを使った。
  • 発振子は12MHz。今回は、16MHz。

抵抗と発振子をそれぞれ68Ωと12MHzにしてWindows XPに接続したけど、ダメ。

タイミング良く3.3V出力の3端子レギュレータが手に入ったので、ツェナーダイオードを外して、全体を3.3V で駆動するようにしたけどやっぱりダメ。

千秋さんのところでHIDaspxがmega88で動作させるプロジェクトがあるのを思い出して、除いてみた所、irukaさんのところで、mega88を使ったHIDmonとHIDaspxを公開されていた。
早速ダウンロードし、自作ライターで件のmega88にfirmwareを書き込んで、Windows XPに接続すると、ちゃんとUSB HIDで認識するじゃあーりまんせんか!

ためしにハードの構成を、ダメだとおもっていた構成に、つまり抵抗75Ω、発振子16MHz、ツェナーダイード3.3VにしてもちゃんとWindows XPはHIDとして認識する。
なーんと、firmwareの問題だった。というか、またまた先人に助けられたわけだけど、ハードとソフトの切り分けが出来たのは本当にありがたいです。

さて、firmがどこが違うかは、首から下の作業。(当然違う箇所があるのだけど、ある程度目星を付けて見て行った)

■ usbconfig.h

  • USB_CFG_DEVICE_CLASS 0xff -> 0 にする。
  • USB_CFG_INTERFACE_CLASS  0 -> 3 にする。

Windows XPに繋いでみるとHIDデバイスと自動で認識する。おぉぉぉ〜〜〜〜

でも、まだだめ。コード10のエラーが出て、デバイスマネージャで認識されてない。

■ usbconfig.h

  • USB_CFG_HID_REPORT_DESCRIPTOR_LENGTHのコメントを外す

■ main.c

  • PROGMEM char usbHidReportDescriptorを設定する。

これは、内容を今ひとつ解読していないので、HIDmon-mega88のmain.cからコピーした。

なんとなく、いけそ〜な、気がする〜!
繋いでみた。おっ、おっ、HIDとして認識してくれた。
commandlineからアクセスしてみると…ちゃんと温度情報を応答した。

というわけで、VUSBのExampleはデフォルトでは何らかのドライバが必要なのかな?
HIDとして認識させるには、usbconfig.hのHIDに関連する項目の設定とusbHidReportDescriptorが必要ということですな。

よし!材料は揃ったぞ。