Kawauchi さんのところ[玄箱でNetBSDを動かす - memo]で USB が動いた旨の報告があったのを見て追試を試みる。つい 'cvs update -P' したら make が通らなくなってしまった。2007.12 上旬に入った mutex 周りの追加(src/sys/sys/lock.h)に evbmips ポートが対応していないようだ。assym.h が作れない。cvs では -D オプションで特定の日付、-r でブランチを指定できるから、UPDATING を見てとりあえず 'cvs update -P -D 20071130-UTC' 辺りでやり直そう。この際には古いソースに戻るため、-u オプションを付けずに make clean を通さないと以前に作ったライブラリなどが残ってしまい具合が悪いのかな。
more...先日製作した MC908JB16 基板の動作チェック。HC08 スターターボードに基板を接続して hamayan さんのページにあるテスト用プログラム[jb16test1.zip]を流し込む。写真は CodeWarrior のデバッガから走らせたところ。青い LED (PTD5) が約 1 秒周期で点滅してとりあえず OK.
NetBSD on BBR-4MG は Kawauchi さんの成果を手元で追試しているが、これがうまく行かない。アドバイスをいただいて続行。MC908JB16 基板のテストもまだ。牛歩の如し。
「安原製作所 回顧録」を購入。私はこの「安原一式」を所有している。運良く発売後の早い時期に入手できたのだが、あれから 9 年近く経つのか。正直なところ、あまり出来の良い機械とは言えないが、それなりに思い入れもある。これについてはまたいずれ書くかも知れない。
写真は私の安原一式(T981)+Canon Serenar f:1.8 50mm. 距離計窓には黄色いセロファンを挟んで二重像を見え易くしている。シャッターボタンには Nikon のソフトレリーズ。台になっているのは郵送時のパッケージ。
NetBSD on BBR-4MG の続き。手元で make した kernel で USB メモリをマウントできた。と思ったら、やっぱりエラー。Kawauchi さん版でも同じようにエラーになることがある。リブートして同じ kernel を使っても挙動が異なる。config で USB_DEBUG オプションを有効にすると、また調子が悪い。別の USB メモリで試してみようと fdisk/disklabel/newfs. 誤って MBR 領域を壊してしまった。こうなると通常の方法では回復できない。どうしたものか。
more...吹雪の中を小樽遠征。この先の水天宮は山の上にあって更に風が厳しい。新年のどんど焼きは7日に済んでいて人影も少ない。観光客も雪の中をなかなかここまでは登って来ない。晴れていれば小樽港から石狩湾を望む風景が楽しめる。
写真手前が UNICOMP UNI04G6 "Endurapro 104" キーボード(参考:キーボードショップ ネオテックの商品説明ページ)。某店のジャンク箱から回収。多少の汚れはあるものの機能面で特に異常は見当たらない。本体重量は随分と重い。「メンブレン・バックリングスプリング」方式でしっかりとしたクリック感があるが、結構うるさいから静かなオフィス等での使用は憚られる。IBM 5576-C01 と同等品らしい。
写真奥左は IBM Space Saver Keyboard II RT3200. 右は BTC-5100. コネクタが AT タイプなのが今となってはちょっと不便だ。
川野さんのところから MC908JB8 基板 (by hamayan) のパーツが届いた。週末を待ち切れずに早速工作に取り掛かる。先日の JB16 基板(記事その1、その2)とほぼ同じなのでスムースに進む。
先日組み立てた MC908JB8 基板で USB の動作テストをする。元ネタは The USB08 Project Page から拾ってきた。
昨日の JB8 用プログラムを JB16 に適用してみた。変更に当たっては CodeWarrior でデフォルトの JB16 スケルトンをベースにできるようにしている。元のプログラムではレジスタやビットマスクの定義に hc08jb8.h を使用していたが、これを derivative.h → mc68hc908jb16.h でのマクロに合わせた。
Kawauchi さんのほうでは精力的に動作検証が進められているが、私のほうの追試は全く進んでいない。port-evbmips ML では Edimax BR6104K (BBR-4MG と同じく ADM5120 使用のルータ) で安定して動いているという報告があるものの、結構怪しいような気もする。それでもオリジナルの port を発表した David Young 氏もこんなメッセージを出しているので進展が期待できそうだ。
That is good news about the stability. A lot of people are responsible for the port. Ruslan Ermilov and Vsevolod Lobko are responsible for the original port. Matt Isaacs and I brought the port up-to-date with NetBSD-current. I wrote drivers for the PCI controller, GPIO, watchdog, and---on the RB153---the CompactFlash slot. Someday I would like to produce support for the NAND flash interface and the ethernet switch on the ADM5120, and then tackle the RouterBOARD 3xx and 5xx series.
適当に訳すと、「大勢がこの port に反応しているよ。Ruslan Ermilov に Vsevolod Lobko とか。Matt Isaacs と私(David Young) は -current への準備をしている。PCI コントローラ、GPIO、それとコンパクトフラッシュのドライバーを書いた。将来的には NAND フラッシュと ADM5120 内蔵のイーサスイッチをサポートしたい。それから RouterBOARD 3xx と 5xx シリーズにも取り組みたい。」と言ったところか。
試しに手元の BBR-4MG で gpioctl を実行してみると 8 pin と返ってくる。適当に設定コマンドを叩いてみると 8 pin のうち 5 pin はエラーになる。おそらく LED で使用している部分なのだろう。それ以外の 3 pin の状態を実際に確認してみたい。
Perl で Device::USB を試してみる。ターゲットは MC908JB8 基板。先日作成したファームウェアを使う。NetBSD では pkgsrc/develop/libusb を make install 後に CPAN からインストールするが、LIBS オプションに '-L/usr/pkg/lib' を設定しておく。FreeBSD や Linux でも 同様にできると思う。デバイスドライバは汎用 USB デバイスになるため、インストールは不要だ。Windows では ActiverPerl の ppm でインストールするが、ActiveState 社のリポジトリには含まれていないから http://www.bribes.org/perl/ppm/ を追加しておくこと。libusb も入るから、ターゲットとなる USB デバイスをインストールする際には、ここでインストールされた libusb0.sys を指定すること。デフォルトでは C:\Perl\site\lib\auto\Device\USB 以下にある筈だ。別のドライバをインストール済みの場合には削除して入れ換えること。.inf ファイルは http://libusb-win32.sourceforge.net/ で配布しているデバイスドライバ・バイナリパッケージに含まれる inf-wizard.exe コマンドで作成できる。[参考:EX908USB HOWTO (ISHIDA Engineering)]
more...Planex の 8 port ギガビットスイッチの新古品FXG-08TXS。ジャンボフレームに対応していない生産終了品で噂によれば相性の悪いデバイスもあるらしいが 10/100 の新品より安いくらいだから買い得なのか。5 port のものもあり。
中古の 3.5" HDD は 60-120GB 以上で SATA のものにシフトしてきている。USB メモリや SD カードの類も小容量のものはあまり出回らなくなっているようだ。2GB の USB メモリを購入。1,700 円程。最安品は 1,500 円を切っている。ネット通販であった 128MB が 10 個で 1,000 円と言うのもなかなか惹かれる。
この冬は雪が少なくて助かると思っていたら先週から、これまでの分を取り戻すかのように雪が降る。今日も朝から雪かき。
今日の工作は2台目の BBR-4MG にシリアル + USB 増設。一度体験済みとは言え、0.5mm ピッチのQFP から配線を引き出すのは大変だ。写真は USB 用の発信器とコネクタの配線まで済ませて動作を確認しているところ。この後で RS232C コネクタを引き出してカバーを開けないでもいじれるようにする。もう1系統のシリアルや USB、GPIO もなんとかしたかったが今回はここまで。
「JB8USB 基板 + Device::USB」の続編として、今回は C プログラムから libUSB を使ってのホスト側サンプルプログラム。libusb-win32 に含まれている bulk.c を少し書き換えただけのいい加減なもの。LED 0.5 秒オン、0.5 秒オフを 10 回繰り返して終了する。