C:\Users\ユーザ名\AppData\Roaming\Microsoft\Windows\SendToなので上に対して C:\Users\ユーザ名\ にショートカットを作っておくと便利
sourceforge から coLinux-0.7.2-src.tar.gz ftp.kernel.org から linux-2.6.22.tar.gz を取得する。それぞれを /usr/src で展開する /usr/src/coLinux-0.7.2/ /usr/src/linux-2.6.22/ となっている前提で、 1)パッチを合成する # cd /usr/src/coLinux-0.7.2/patch # cat `cat series-2.6.22` > /tmp/sumary.patch # cd /usr/src/linux-2.6.22/ 2)パッチを当てる # patch -p1 < /tmp/sumary.patch # rm /tmp/sumary.patch 3).configを作る # zcat /proc/config.gz > .config 4)ビルド # make 5)インストール できあがった vmlinux を c:\program files\colinux にコピーする # make modules_installcoLinuxでは SMPネイティブは無理のようだ
# less arch/i386/Kconfig 中略 config SMP bool "Symmetric multi-processing support" depends on !COOPERATIVE
sh7760-ohci sh7760-ohci.0: remove, state 1 usb usb1: USB disconnect, address 1 usb 1-1: USB disconnect, address 2 usb 1-1.1: USB disconnect, address 3 sh7760-ohci sh7760-ohci.0: USB bus 1 deregistered sh7760-ohci: stopping SH7760 USB Controller Device 'sh7760-ohci.0' does not have a release() function, it is broken and must be fixed. Badness in device_release at drivers/base/core.c:83理由
void __exit ohci_hcd_sh_cleanup(void) { platform_device_unregister(&usb_hcd_sh_dev); ←ここでエラー platform_driver_unregister(&usb_hcd_sh_driver); }リソース(iobase,irq)を unregister しようとしているのでエラーが出ている。本来リソースは unregister しない。リソースの登録を setup760.c に移せば解決する。(TODO)
型名 elecom UC-VRS03メーカ純正のものでダメ。OEM供給元と思われる
/dev/ssi_play /dev/ssi_recのデバイスとした。で、大方の予想通り
# cat /dev/ssi_rec > data.bin で録音ができ # cat data.bin > /dev/ssi_play で再生ができるう〜ん。こいうのが簡単にできるのがLinuxのいいところだなぁ。
# cat dancingqueen48K.pcm > /dev/ssi_playとかして遊んでみた。ノイズ対策を全くしていない基板だが意外と音がよくて驚いた。48KHz,16bit,Stereoデータ(=データレートは192KByte/secだね)の再生時に、
# time cat dancingqueen48K.pcm > /dev/ssi_play real 3m49.402s user 0m0.000s sys 0m0.030sスプールバッファ256Kバイト/一回の転送サイズ8Kバイトの条件で、3分49秒のPCMデータを鳴らして、ドライバ動作時間+CFからのファイル読み込み時間の累計はたったの30msec。
この試作基板のサンプリングレートは48KHzなのでCDからリッピングした44.1KHzのPCMデータはそのままでは再生できない。試しにやってみたら1音以上音が高くなって気持ち悪かった。変換ツールはヤマハさんが出しているフリーのものが便利に使えた。
http://www.yamaha.co.jp/ にいって検索窓に twe と入れると出てくる。2001年のものだけどVISTAでも動いたし、機能も十分だった。
#define RX_INP (RX_SIZE-*DMAARXTCNT0) while(RX_INP == RX_OUTP){ // 受信リングバッファが空から少し待つ ; } rx_inp = RX_INP; // RX_INPは動いてしまうのでテンポラリ変数に控える if(rx_inp > RX_OUTP){ length = rx_inp - RX_OUTP; }else{ length = RX_SIZE - RX_OUTP; }とやるとノイズだらけ。どうやら DMAARXTCNT0 (受信DMA残りバイト数)が示す値よりも実際にメモリに書き込まれた情報が少ないようである。ここから先はマニュアルにも書いていないので憶測だけど、SDRAMへの転送ストアキューに入っているデータが数ライン分あって、それはSDRAMには到達していないように思う。仮に
while(RX_INP == RX_OUTP){ // 受信リングバッファが空から少し待つ ; } rx_inp = RX_INP; // RX_INPは動いてしまうのでテンポラリ変数に控える mdelay(1); // 1msec待つ 以下同じとやって DMAからメモリに書き込まれただろうと適当に1msec待ちを挟むとノイズがない。む。
colinuxをインストールするとき windosのブリッジ機能を使うことになる。windowsのブリッジミニポートは、ブリッジに参加している物理I/Fのmacアドレスの上位を 0x02 に置き換えたものをブリッジのmacアドレスとして使うようだ。そのため、DHCPサーバからみると新しいPCが増えたように見えてしまい、MACアドレスと縛りつけたDHCPでの運営ができなくなった。要注意だ。
BicカメラでサンワサプライのUSB-CVRS9を買ってきた。パッケージにはVISTA対応と書いてあったが結局文字化けがおさまらなかった。ダメ。PL2303系はだめかもしれない。
CP2101のモジュールも silicon laboratory においてある最新のドライバでは化ける。
結局、CP2101+XP用ドライバ の組み合わせで正常動作した。