![]() |
灼くぞCDに! | ![]() |
ハードの準備は整った。後はソフトだけだ。CD-Rを灼かねばならない。
う〜む。実は私はCD-R(W)ドライブを今まで持っていなかった。友人の結婚式に 出た時に撮影したデジカメ画像を編集してSpecial CD-ROMを作る際も、自分の マシンで編集作業→ペンコンに全部を収めて持っていき、灼いて貰う→校正作 業→ペンコンに…迂遠に過ぎる…。
既にNGP-DCケーブルのように安からぬ出費をしてしまっている。仕方無い。バッ クアップ等のためにも必要性は感じていたし、近所のCompMartの閉店セールで (まぁなんとか納得できる範囲内の)安価なドライブも見つけたし。
後々も使いでのありそうな、Marcus氏のserial-slaveでも灼いてみよう。
![]() |
![]() |
R/RWメディアとEasyCD Creater4附属 | 装着した姿 |
こいつを今までのATAPI CD-ROMとリプレースする形でPrimary Slaveに接続する。 FreeBSD 4.2-RELEASEでは次のように認識した。
PIO4?そういえば、ATAPIに対してDMAを許可するOptionを付けてなかった。 LINTより。
acd0: CD-RWat ata1-slave using PIO4
取り敢えずATA_ENABLE_ATAPI_DMAしてみる。何か不具合があったら戻せば良い さ…。(010615 追記: 4.3-RELEASEになったらこのoptionは消えていた。その 代わり、/boot/loader.conf.localでhw.ata.atapi_dma=1。追記と言えば…今 日、SofMap厚木店にI・O DATAの12x/4x/32x BurnProofなATAPI CD-RWが!何と いうことだ…9,800円…危ないところだった…もし同価格だったら悔やんでも 悔やみきれなかった筈だ。約1,300円。う〜む。) で、
# ATA_ENABLE_ATAPI_DMA: enable DMA on ATAPI device, since many ATAPI devices # claim to support DMA but doesn't actually work, this # is not enabled as default. options ATA_ENABLE_ATAPI_DMA
こうなった。
acd0: CD-RWat ata0-slave using UDMA33
が、UDMA33である種のCDROMをmountしようとすると、
ata0-slave: too many segments in DMA table
などと言って失敗することが判明した。PIO4でいいや…。(追記:010716) ライティングソフトは標準のburncdを、ISO9660イメージ作成はmkisofs…手元 に4.2-RELEASEのパッケージが無いな…少し古いかもしれないが、 mkisofs-1.12.1をpkg_add。これでCD-R(W)する準備は完了。
よそで例示されているように、4秒の無音ファイルを作り、オーディオトラッ クとして灼き込んだ。8倍速で全く問題無し。-eを付けてあるのは、何故か一旦 イジェクトしないと、
frodo% dd if=/dev/zero of=audio.raw bs=2352 count=300 300+0 records in 300+0 records out 705600 bytes transferred in 0.061231 secs (11523571 bytes/sec) frodo% ll audio.raw -rw-rw-r-- 1 m-arai m-arai 705600 Jun 9 03:21 audio.raw frodo# burncd -e -s 8 -f /dev/acd0c audio audio.raw fixate next writeable LBA 0 written this track 689 KB (100%) total 689 KB fixating CD, please wait..
cdcontrol: getting toc header: Input/output error
なんてことになるからだ。
灼き上がりはこのようになる。
ちゃんと灼けているようだ。しかし、例に倣って4秒の無音(同サイズ)を使っ ているのに、「0,11702」だ。細かい事は気にすまい。
frodo# cdcontrol -f /dev/acd0c info Starting track = 1, ending track = 1, TOC size = 18 bytes track start duration block length type ------------------------------------------------- 1 0:02.00 0:06.02 0 302 audio 170 0:06.02 - 302 - - frodo# burncd -f /dev/acd0c msinfo 0, 11702
お次はISOイメージの作成。serial-slaveはIP.BINだけだ。折角CD-Rを灼くの に、スカスカでは勿体無い。ついでにバックアップしたいデータも入れてしまお う。
ただ、ISOイメージのルートに"READ_ME.TXT"は必須だ。無いと、IP.BINの Bootstrapに処理が移行しないで途中で終ってしまう。これは serial-slaveのパッケージに含まれたやつで無くても良く、ただファイルとし て存在しさえすれば良い筈である。ROMのboot処理が、IP.BIN内で指定された ファイルの読み込みを必要としているだけで、しかも実際にはここで読み込ま れるREAD_ME.TXTにジャンプすることはないのだから。
frodo% ls data/ READ_ME.TXT frodo% cat READ_ME.TXT Serial port upload bootstrap program by marcus. Use at your own risk.
ISOイメージファイルが出来た。後はこれにGENERIC BOOT IMAGEとしてIP.BIN を入れ込む。その為に短いプログラムを書いたの で使う。ddでやれるのに何故わざわざそんなものを?それは…HDD貧乏だから。 74minメディア1杯分くらいなら置けるけど、2杯分を置く磁性面のスペースが 無いのだ…今回は小さいからddでも可なのだけど、テストの意味も兼ねて。まぁ こんな程度のモンにテストも何もないが。
frodo% mkisofs -l -C 0,11702 -o ~/tmp/image.iso . mkisofs: Warning: -C specified without -M: old session data will not be merged. 88.39% done, estimate finish Sat Jun 9 13:15:12 2001 Total extents actually written = 5270 Total translation table size: 0 Total rockridge attributes bytes: 0 Total directory bytes: 94208 Path table size(bytes): 590 Max brk space used 57404 16972 extents written (33 Mb)
後は灼くだけ。
frodo% cd ~/tmp frodo% ls IP.BIN bisogb.c image.iso frodo% gcc -o bisogb.c bisogb.c frodo% ./bisogb image.iso IP.BIN Brand ISO Image with Generic Boot Image 'IP.BIN'->'image.iso' Success!
frodo# burncd -e -s 8 -f /dev/acd0c XAmode1 image.iso fixate next writeable LBA 11702 writing from file image.iso size 10540 KB written this track 10540 KB (100%) total 10540 KB fixating CD, please wait.. frodo# cdcontrol -f /dev/acd0c info Starting track = 1, ending track = 2, TOC size = 26 bytes track start duration block length type ------------------------------------------------- 1 0:02.00 2:38.02 0 11702 audio 2 2:38.02 1:12.22 11702 5272 data 170 3:48.24 - 16974 - -
![]() |
serial-slave 起動画面 |
そこで、作ったケーブルでPCのいわゆるCOM2に接 続し、/etc/remoteに
なるエントリを書いておいてtipしてみよう。おっと、改行の代わりにCTRL-Jを 使うのを忘れずに。
cuaa1e|cua1e:dv=/dev/cuaa1:br#57600:pa=none:
動いてる動いてる。ケーブルも正常である証が立てられた。
frodo% tip cuaa1e connected >>>>>V103 >>>>>>>>>>>V103 ~ [EOT]
勿論、モトローラS形式のファイル転送もちゃんと出来る。「~C」さらに「cat srec-filename」だ。試しにDreamripでもロードしてみるか。
問題無し。
~CLocal command? cat dreamrip.srec >> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> …(中略)… >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>OK please set 115k and hit 'o','k'
そういえば、構築した開発環境で正しく実行形式の生成が出来ていることも確 かめられるようになった訳だ。Marcus氏のサンプルをmake/実行してみよう。
![]() |
![]() |
tatest.srec 立方体がぐるぐる | mapletest.srec デバイスリスト表示 |
もう遊び倒すだけ。