トップ 最新の日記 ユーザー登録 ログイン ヘルプ

osdev-jの日記 RSSフィード

2008-06-12

人間はUSBだけで暮らせるのか 05:09  人間はUSBだけで暮らせるのか - osdev-jの日記 を含むブックマーク

本の方は赤入れ、組版と進行中。

機材トラブルが相次いでまして、ここ暫くは手元にWindowsマシンがなくロクに図版の制作も行えないなど大ぴんちな状況でした*1。やっと復旧して超暫くぶりにタブレットに触れた次第。

で、↑の絵はUSB-VGAをプライマリディスプレイにして描いたモノ。。

ついにねんがんのDisplayLinkのチップセットを手に入れた。解析はそのうち。。結構素直そうなので。

わかったこと :

  • Windows VistaはVBEが無いVGAボードでもちゃんと16色で動作する
  • USB-VGAをプライマリディスプレイに設定し、起動に使ったVGAボードを無効にすれば普通に生活できる

VGAUSBになると、あとはHDDも、と行きたいところだけど、WindowsUSBだけで使うのはそれなりに敷居が高いので断念。実はLinuxマシンの方はHDDがお亡くなりになってからこっちはUSB-SATA変換が余ってたのでそれを駆使してroot fsをHDDにしている。

USBストレージ上のLinuxを古いM/Bで無理矢理使う

平たく言えば、CDにブートローダとカーネルだけ入れてそこから起動すれば良い。

  1. カーネルオプションを調整
  2. /boot/grub/menu.lst、stage2_eltorito、カーネルを同じディレクトリに配置
  3. GRUBCDを作る ( http://wiki.osdev.info/?GRUB 参照 )

カーネルはUSBマスストレージをすぐにはマウントしてくれないので、カーネルのパラメタを調整する必要がある。使用しているGRUBのmenu.lstはこんなかんじ。

default 0
timeout 10
title=Gentoo(2.6.23)
root (cd)
kernel /linux26-pdev root=/dev/sda3 rootdelay=15 acpi=force

rootdelayがキモで、これが無いと認識までに時間が掛かる分で起動時にroot fsがマウントできなくて死ぬ。

[] Linux PCをA2DP Bluetoothヘッドホンに見せる 05:32  Linux PCをA2DP Bluetoothヘッドホンに見せる - osdev-jの日記 を含むブックマーク

WindowsマシンとLinuxを同時に使う上で困るのは、Windows上にはロクなサウンドサーバが存在しない点。今まではアナログ的にミキシングして聞いていたが、例によって壊れたのでBluetoothで代替することにした。

Windowsには標準でネットワークにオーディオを送出する機能は無いが、BluetoothのA2DPでオーディオを送出する機能は備わっている。もっとも、A2DPを使用する場合音声は圧縮されるのでそれなりに品質は劣化するが。。

当初は、A2DPサーバに相当するコードが見あたらなかったのでついうっかり自作してしまった。実際には自作する必要は全く無く、a2recvとして(古い)bluetooth-alsaのコードにすでに有る。cvsからbtscoをチェックアウトしてconfigureしてmakeすれば得られる。

普通のネットワークプログラムと同じように、起動しておけばちゃんとlistenして動作するが、Windowsの場合は任意のアドレスを指定してBluetoothヘッドホンを接続したりは出来ないのでサービスをアドバタイズする必要がある。

sdptool add a2snk
./a2recv

のようにする。

ただ、Bluetoothスタックの相性によっては上手く動作しない。Windows標準のスタックでは上手く行くが、WIDCOMMのスタックではダメだった(すごくプチプチする)。

同じようにして、(コードさえ書けば)Linux PCをマウスやキーボードに見せたりも出来るが、さすがにそれよりはSynergyの方が便利。ただ、SynergyUACが有効の時上手く動かない*2のでそういう所で使えるかも知れない。。

USBはネットワークプログラムを書くような手軽さでハードウェアを制御できるが、Bluetoothは同じようにして周辺機器をエミュレーションできる。これは非常に便利な性質な気がするが、Bluetoothそのものが結構残念な事になっているので微妙としか言いようがない。

特にWindowsでの状況は悪くて、(何種類もある)Bluetoothデバイスを制御するためのSDKを勉強するよりも自分で最低限のBluetoothスタックを書いた方が早い(経験談)。USBBluetoothはlibusbで大抵正常にコントロールできるが、Broadcomなチップセットは例外なので注意する必要がある。

もし、Bluetoothスタックを自作するためにlibusbでちゃんと制御できるBluetoothドングルを探すなら、箱の裏を丹念に眺めて以下のキーワードを探す

  • ○ IVT Bluesoleilの付属しているもの(素直)
  • × (マウスとかに付属しているもの)(HIDエミュレーションとか有って面倒)
  • × Broadcom、WIDCOMM(ファームウェアが必要だったりと色々とだるい)
  • × (PC内蔵のもの)(Broadcomが多く、ドライバを置換するとシステム自体が困ったことになる事が多い)

XP SP2以降ではBluetoothのドライバが自動で組み込まれてしまうので、「デバイスドライバの更新」から無理矢理libusbのドライバに置き換える。一度そうすれば、同じポートに挿す限りはlibusbのドライバが使われる。

*1:一時期はあまりにも収拾が付かなかったので諦めかけた。図版はデータ無くなったので書き直しの刑。

*2UACが動作しているときにマウスがオートパイロットできたらダイアログの回避が可能になってしまう

KennWaryKennWary 2017/06/17 19:15 Viagra Online Bestellen In Deutschland <a href=http://levitra-buy-us.buylevi.com>Levitra Buy Us</a> Purchasing Cheap Levaquin Levitra In Osterreich Rezeptfrei <a href=http://buy-online-kamagra.kamagpills.com>Buy Online Kamagra</a> Buying Viagra Online

ゲスト



トラックバック - http://osdevj.g.hatena.ne.jp/osdevj/20080612