trade2の日記

2005/12/26(月)
[PC][OpenBSD]OpenBSDでBluetooth道のりは長いよ中途挫折1

最近OpenBSDにはまっている。

以前、父がLINUXが面白いといって雑誌付録のVineのCDをくれて、そのときいろいろLINUXについてGoogleなんかで検索して、Turbolinuxが使いやすいみたいだというのでftpからダウンロードしようとしたら、どれを落とせばいいのかわからなくて結構巨大になってしまい、落としている間に面倒になってしまって止めたことがあった。落とした後でisoという拡張子のついたファイルだけ落とせばいいことがわかりがっくり。

で、ずっとLINUXはほったらかしになっていたのだが、ShadeとかがPythonが使えるというので、今のデスクトップにPython入れるのはちょっと嫌だないろいろ入っているし、この前クレバリーでFDドライブ付 Windows2000 OEM版を5台分買ったんで(ちょっとXPはメンテの点でいちいち人を介在させなければならないかもしれないのでやはり不安が残った)いまフリーOS入れるとちょっともったいないかもと思ったけれど、そうだもともとphthonってUNIX系なんだからこの際LINUXをあいているパソコンに入れちゃえと思って、Turbolinuxのサイトに行ったら、有料になっていた。RedHatも有料。でまたいろいろ調べて、CentOSやらPlamoやらを発見。Vineはまだ無料だった。RedHatもFedora というのが無料で使えるらしい。とりあえず速度の速い大学系のftpからそれぞれ落としてみたけれど、いま落としたやつも将来有料になったり、誰かが権利を主張したりして使いにくくなるかも知れない。そう考えたらLINUXがまた面倒になってきた。最初から有料なら予定立てて動けるけれど、いきなり変わってしまうんじゃ振り回されるから嫌だ。ほかにもUNIXが使えるOSってなかったっけ?そうだBSDだというのでBSDをみてみると、FreeBSD,NetBSD、OpenBSDがあるらしい。そのなかでセキュリティーがダントツなのがOpenBSDらしいというので、HRK's OpenBSD Memo(HIRANO Kiyoshi さん) http://www.ne.jp/asahi/diver/hrk/openbsd/index.html をみながらインストールしてみた。

まず、 ftp://ftp.jp.openbsd.org/pub/OpenBSD/3.8/i386/ からcd38.isoというのをダウンロード、CDに焼く。

同じディレクトリの拡張子がtgz(etc38.tgzとか)のファイルを別のCDに焼いておく。

ftp://ftp.jp.openbsd.org/pub/OpenBSD/3.8/ のports.tar.gz、src.tar.gz、sys.tar.gzもついでに焼いておく。

パソコンのブートの順位をCDを一番にして、CD飲み込ませてから電源オフ、そしてオン。BSDインストーラーが立ち上がる。 

http://www.ne.jp/asahi/diver/hrk/openbsd/install.html

を見ながら質問に答えていく。


Available CD-ROMs are: cd0.
Which one contains the install media? (or 'done') [cd0] 〈Enter〉

Pathname to the sets? (or 'done') [3.8/i386] 〈Enter〉


と聞かれたら先ほどtgzだけ集めて焼いておいたCDに入れ替えディレクトリを指定してEnter。一応面倒だけれど、焼くときに3.8/i386フォルダを作ってそのなかに入れて焼くと楽。

後はこのページの通りに進む。

先月ShadeとVueで分散して計算したかったので5個のUSBタイプのBluetoothを買っていたので何とかこれを使いたい。OpenBSDはBluetooth対応だというので使えるだろうと思って挿してみたがugen0と出るばかりである。いろいろあちこち書いたりコピーしたり調べたりするうちにカーネルのデバイス一覧でubtがコメントアウトになっていた。

http://www.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/arch/i386/conf/GENERIC?rev=1.447&content-type=text/plain


# USB devices
uhub* at usb? # USB Hubs
uhub* at uhub? # USB Hubs
umodem* at uhub? # USB Modems/Serial
ucom* at umodem?
uvisor* at uhub? # Handspring Visor
ucom* at uvisor?
uvscom* at uhub? # SUNTAC Slipper U VS-10U serial
ucom* at uvscom?
ubsa* at uhub? # Belkin serial adapter
ucom* at ubsa?
uftdi* at uhub? # FTDI FT8U100AX serial adapter
ucom* at uftdi?
uplcom* at uhub? # I/O DATA USB-RSAQ2 serial adapter
ucom* at uplcom?
umct* at uhub? # MCT USB-RS232 serial adapter
ucom* at umct?
uipaq* at uhub? # iPAQ serial adapter
ucom* at uipaq?
uaudio* at uhub? # USB Audio
audio* at uaudio?
umidi* at uhub? # USB MIDI
midi* at umidi?
ulpt* at uhub? # USB Printers
umass* at uhub? # USB Mass Storage devices
scsibus* at umass?
atapiscsi* at umass?
uhidev* at uhub? # Human Interface Devices
ums* at uhidev? # USB mouse
wsmouse* at ums? mux 0
ukbd* at uhidev? # USB keyboard
wskbd* at ukbd? mux 1
uhid* at uhidev? # USB generic HID support
aue* at uhub? # ADMtek AN986 Pegasus Ethernet
atu* at uhub? # Atmel AT76c50x based 802.11b
axe* at uhub? # ASIX Electronics AX88172 USB Ethernet
cue* at uhub? # CATC USB-EL1201A based Ethernet
kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet
cdce* at uhub? # CDC Ethernet
upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network'
udav* at uhub? # Davicom DM9601 based Ethernet
url* at uhub? # Realtek RTL8150L based adapters
wi* at uhub? # WaveLAN IEEE 802.11DS
urio* at uhub? # Diamond Multimedia Rio 500
uscanner* at uhub? # USB Scanners
usscanner* at uhub? # USB SCSI scanners, e.g., HP5300
scsibus* at usscanner?
#uyap* at uhub? # Y@P firmware loader
udsbr* at uhub? # D-Link DSB-R100 radio
radio* at udsbr? # USB radio
#ubt* at uhub? # USB Bluetooth
ugen* at uhub? # USB Generic driver
ural* at uhub? # Ralink RT2500
#option NATM
#ueagle* at uhub? # Analog Devices Eagle ADSL


コメントアウトをはずす。

http://www.ne.jp/asahi/diver/hrk/openbsd/kernel.html のページをみながらカーネルのカスタマイズ。

あと ftp://ftp.jp.openbsd.org/pub/OpenBSD/distfiles/ から

bluetooth-libs-20050716.tar.gz と bluetooth-tools-20050725.tar.gz をダウンロード。

ports.tar.gzを/usr以下に展開し、cd /usr/ports でmake search key=bluetoothで

ディレクトリを探す。

bluetooth-libs-20050716.tar.gz はそのままmakeでできたが、bluetooth-tools-20050725.tar.gz はできなかったので、 cd/usr/ports/net/bluetooth-tools でディレクトリに入り、Makefile をvi で開きNO_CHECKSUM=[tab]Yes を書き加え、あとファイルの名前がbluetooth-tools-20050716 になっているのをbluetooth-tools-20050725 に書き直してmake,make install, make clean。

最新のMakefileがhttp://www.openbsd.org/cgi-bin/cvsweb/ports/net/bluetooth-tools/

にあがっているけれど、まだ使っていない。

以前に買っておいた(今回買ったのとは別)Planex のGW-BHO3U を挿す。

今度はubt0で認識。

http://www.surfline.ne.jp/kaneko/papa_sakura/FreeBSD/bluetooth.html のページを参考に

hccontrol -n ubt0 inquiry

でBD_ADDRが出てきた。







やった、次はファイル交換だというのでopenobexを入れてみようと思ったら、あれが足りないこれが足りないといわれ、それまではフロッピーに入るファイルサイズだったのだがとうとうlibiconvが3MB超だったのでまだどれだけのファイルがいるのかわからないのに一回ずつCDに焼くのももったいないので使っていないコンパクトディスクが使えないか考えた。

imation の FlashGO!ポータブルというUSB接続フラッシュカードリーダーライターは、最初コンパクトディスクを挿してからUSBに接続しても

sd0: drive offline

とsd0はあるけど使えないという表示が出ていた。

ファームウエアのアップデートを http://www.imation.co.jp/support/download/index.html したらパソコンでfat形式フォーマットしてしまったコンパクトフラッシュを認識できたので、そのコンパクトフラッシュカードにlibiconvをコピーして接続。

どうやってマウントするのかわからないのでまた調べまくったところ、

http://www.znet.or.jp/uhp/k0014/music/roland-fantom.html

で、

# disklabel sd0

とするとコンパクトフラッシュ内のパーテーションが出てきたので

mount -t msdos /dev/sd0i /mnt

でコンパクトフラッシュsd0のiディレクトリを /mntにマウントすることができたので、そこからlibiconvを

cd /usr/ports/distfiles

cp /mnt/libiconv-1.9.2.tar.gz .

umount /mnt

でコピー、portsのディレクトリーに入ってmakeでインストールした。

やっとopenobexの./configureが動いたが,

checking for Bluetooth support... no

肝心のブルートゥースが入らない。

またほかのパソコンでこのブルートゥースを見るとno nameと出る。

bluetooth-tools-20050725.tar.gzを展開して出てくるファイルでhccontrolのほかに

etcというファイルがあり、中にはbluetoothフォルダがありその中にhcsecd.conf、hosts、protocols Makefileの4つのファイルが入っている。Makefileがあるのでmakeすると

.include ができないというエラーが返ってくる。

仕方ないので、etcフォルダーの中にbluetoothというフォルダを作ってそこへコピーし、Makefileの指示どおりにchmodで権限を変えておく。

http://www.openbsd.org/cgi-bin/cvsweb/ports/net/bluetooth-tools/

に新しいMakefileその他があるがつかっていない。

hcsecd.conf、hosts、protocolsそれぞれ書き直して保存。

# hccontrol -n ubt0 inquiry

でBD_ADDRが指定した名称に変わった。

# hccontrol -n ubt0 remote_name_request xx:xx:xx:xx:xx:xx 0 0 0

ではまだ指定した名前が出てこない。

hcsecd.confについてよく読んでみるとhcsecdというデーモンがあるらしい。

仕方がないのでFreeBSD用の http://www.geocities.com/m_evmenkin/ から

http://www.geocities.com/m_evmenkin/ngbt-fbsd-20030908.tar.gzをダウンロードして+Lhaca で展開、みてみるとhcsecdのほかにもまだまだいろいろ必要な部品があった。

とりあえず、OpenBSDのほうへコピーして

cd /usr/ports/distfiles/20050908/src/usr.sbin/bluetooth/hcsecd

make

とするも動かず、

中のファイルで

include

となっているものすべて

include

に書き直し、

parser.yがあるので bisonをportsでインストール

parser.y からbisonでparser.tab.hをつくり、そのファイルをリネームしてparser.hにする。

Makefileのほうも


# $Id: Makefile,v 1.8 2003/08/14 20:06:20 max Exp $
# $FreeBSD$

PROG= hcsecd
MAN= hcsecd.8 hcsecd.conf.5
SRCS= hcsecd.c lexer.l parser.y
WARNS?= 1

.if defined(SNAPSHOT)
DESTDIR= /usr/sbin/
MANDIR= ../share/man/man

CFLAGS+= -g -I${.CURDIR} -I${.CURDIR}/../../../sys \
-I${.CURDIR}/../../../lib/libbluetooth

DPADD= ${.CURDIR}/../../../lib/libbluetooth/libbluetooth.a
LDADD= -L${.CURDIR}/../../../lib/libbluetooth -lbluetooth
.else
DPADD= /usr/lib/libbluetooth.a
LDADD= -lbluetooth
.endif

.include


になっているのを


# $Id: Makefile,v 1.8 2003/08/14 20:06:20 max Exp $
# $FreeBSD$

PROG= hcsecd
MAN= hcsecd.8 hcsecd.conf.5
SRCS= hcsecd.c lexer.l parser.y
WARNS?= 2
BINDIR= /usr/local/bin/
MANDIR= /usr/local/share/man/cat

DPADD= /usr/local/lib/libbluetooth.a
LDADD= -L/usr/local/lib -lbluetooth
.include



に変更、make ,make install ,make clean

を終えて

hcsecd -f /etc/bluetooth/hcsecd.conf

hcsecd -d

とすると

hcsecd[XXXXX]:SYNTAX ERROR line 41

とでたままとまる。その後キー入力を受け付けないのでスイッチボタンで強制シャットダウンかとちょっと青くなる。

がそうそうBASICではこういうときのブレーク方法があったじゃないと思い出し、仕方なくCtrl+Cで強制終了。

もう一度hcsecd.cを見てみるとnetgraphがどうたらこうたら。

もうそこまで行くと何を書き直せばいいのやら。

一応/usr/include/netbtのなかに、FreeBSDから移植してファイル名だけ変えたファイルが2〜3あるのを発見するも、すべてはないし、膨大なCプログラムのどの文言を修正すればいいのか。bluetooth-tools-20050725.tar.gzのpatchを読みながら気が遠くなった。

今のところ7月と9月にbluetooth関連のファイルがアップされているようだし、OpenBSD自体のアップデートもほぼ半年毎のようだ。

ftp://ftp.jp.openbsd.org/pub/OpenBSD/3.8/i386/INSTALL.i386

に動作可能なハードの一覧が載っていて、

WLI-U2-KG54(無線LAN USB)

http://buffalo.melcoinc.co.jp/products/catalog/item/w/wli-u2-kg54/

は使えるようだ。

半年待ってみるか、それともつい先月USB BLUETOOTHで2万ほど使ったのに、またUSB LANを買うのか。

いまちょっと悩んでいます。


BACKNUMBER


女の子お絵かき掲示板ナスカiPhone修理