2000年1月

[前の月へ] [メニューへ] [次の月へ]

2000/01/26(Wed)

今日は昨日の続きだ。俄然やる気が出てきたぞ(^-^)。
けど、あんまり時間がないので、今日はpmidi, ASeqView, Smurf SoundFont Editor, GseQの4つだけ試してみることにした。

pmidi-1.3.3

ALSAのホームページからもらってきたpmidiというツールを使ってみる。pmidiはALSA sequencerをサポートしているMIDIシーケンサだから、きちんとALSA sequencerが動作しているか確認できる。
今回はインストール方法は書かない。だってINSTALLを読めばすぐにわかるんだもん。
で、実行。
#sfxload 8mbgmsfx.sf2
#pmidi -l
 Port     Client name                       Port name
 65:0     Emu10k1 WaveTable                 Port 0
 65:1     Emu10k1 WaveTable                 Port 1
 65:2     Emu10k1 WaveTable                 Port 2
 65:3     Emu10k1 WaveTable                 Port 3
#pmidi -p65:0 test.mid
おぉ。きちんと聞こえるぜ(^^)。

ASeqView - ALSA Sequencer Event Viewer

Takashi Iwai's Personal Webpageから頂いてきた(ASeqView ver 0.1.2e)。その名の通りALSAのシーケンスイベントをビジュアルに表示してくれる。
#aseqview -d 65:0 &
#pmidi -l
 Port     Client name                       Port name
 65:0     Emu10k1 WaveTable                 Port 0
 65:1     Emu10k1 WaveTable                 Port 1
 65:2     Emu10k1 WaveTable                 Port 2
 65:3     Emu10k1 WaveTable                 Port 3
128:0     MIDI Viewer                       Viewer Port 0
なんか、128:0にMIDI Viewerって名前が増えてる。これにpmidi等のシーケンサをつなげば良いみたい。
#pmidi -p128:0 test.midi
なんか、イコライザみたい。Patch Correctionって書いてあるスケールバーをマウスでグリグリやると音程が変わったりする。おもろい。Velocity Scaleってのは良くわかんない。音量が変わったりするみたい。一番左側のchのボタンはミュートボタンだね。

Smurf SoundFont Editor

ホームページはこちら。バージョンは0.46
なんかSound Blaster Live!附属のMS Windows用ソフトで、Creative Vienna SoundFont Studioというのがあるんだけどそれに似ている(ってか、そうREADMEに書いてある)。SoundFontを編集できるらしい(ってそのままやん(^^;))。でも、使い方良くわからん(^^;)。

GseQ 0.3.2

GTK+を使ったシーケンサ...らしい。起動した瞬間、固まるぞ〜ってなわけで使ってみることができなかった(T_T)。むか〜し入れてみた時は起動くらいできたような気がするんだけどな...(T_T)。

2000/01/25(Tue)

ついにSoundBlaster Live!のシーケンサ&WaveTableが使用可能に!(涙)
※もしかして今までできなかったのオイラだけ?...だったらちょっとはずかしいっす(^_^;)。

Takashi Iwai's Personal Webpageというホームページを見つけた。この方は現在ALSAで活躍されている方だ。あ、それ以前からSound BlasterのAWE関連のフリーソフトを中心にいろいろと発表されていてCreativeのホームページでも紹介されているくらいとにかくすごい方なのだ。

で、そこのALSA related stuffsっていうページで、Sound Blaster Live!用のwavetable synthを使うパッチが公開されていた。 ALSAのCVSソースへのパッチとなっていたので早速ALSAのホームページへCVSソースを取りに行くと、ALSAが0.5.1aにバージョンアップしていた。synth support for EMU10K1ってなっているのですでに岩井さんのパッチがあたってるんだろう
...と勝手に判断して、さっそくalsa-0.5.1aをダウンロード&インストール。alsa-0.4.xとインストール方法は全く変化なしなんで、ここでは省略。
そうそう、インストール後、
#cd alsa-driver-0.5.1a/utils/
#alsasound stop
#alsasound start
としてalsaドライバを再起動することをお忘れなく。あ、alsasound restartでもたぶんOK。
※本来alsasoundは/etc/rc.d/配下にあってブート時に読み出すファイルだよん。


そういえば、先ほどのALSA related stuffsでは、sfxloadが必要だよって書いてあったので、 同じく岩井さんのページからSB AWE32/64 Sound Driver for Linux / FreeBSDからAWESFX utilities ver.0.4.3cを頂いてきて、そいつもインストールしてみた。
#tar xvzf awesfx-0.4.3c.tgz
#cd awesfx-0.4.3c
#cp Makefile-shared Makefile
#cp awelib/Makefile-shared awelib/Makefile
で、Makefileとawelib/MakefileのINSTDIRを/usr/local → /usrに変更。
次にawelib/config.hを編集。DEFAULT_SF_PATH を /usr/lib/sfbank に変更した。
続いて、
#make all
#make install
としてインストール。

さて、実験。アカウントは別にrootでなくてもいいみたい。
#sfxload 8mbgmsfx.sf2
8mbgmsfx.sf2はWindows98にインストールされるCreative Labs社のサウンドフォント。
で、このファイルは、
(Windows98をマウントしたディレクトリ)/Program\ Files/Creative/SBLive/SFBank
にあるからそれを利用した。著作権的には問題ないみたい(たぶん)。
別にこのファイルを使わなくても.sf2ファイルならなんでもOKなはず。
※うちのマシンはLinuxとWindows98のディアルブートで、LinuxからWindows98のディレクトリを見ることができるようにしてある(see dmsdos)。


で、次に、AWE対応のplaymidiで確認する。playmidi -h で -aオプションがあることを確認してね。
#playmidi -a test.mid
すばらしい!! いい音するよ...。まじ泣けるよ....。半ばあきらめかけてたしね...。

ともかく、これからしばらくはいろいろ楽しめそうだぜ(^^)。

そうそう、もしかしたら参考になるかも知れないから(誰の?(^^;))lsmodした結果もコピっておこう(量が多いからサウンド周りだけね)。
#lsmod
Module                  Size  Used by
snd-seq-oss            24800   1 (autoclean)
snd-seq-midi-event      2548   0 (autoclean) [snd-seq-oss]
snd-synth-emu10k1       3388   1 (autoclean)
snd-synth-emux         23344   1 (autoclean) [snd-synth-emu10k1]
snd-seq-midi-emul       4228   0 (autoclean) [snd-synth-emux]
snd-seq                36436   0 (autoclean) [snd-seq-oss snd-seq-midi-event snd-synth-emux]
snd-card-emu10k1        2244   1 (autoclean)
snd-emu10k1            18108   0 (autoclean) [snd-synth-emu10k1 snd-card-emu10k1]
snd-pcm                26264   0 (autoclean) [snd-emu10k1]
snd-timer               7864   1 (autoclean) [snd-seq snd-pcm]
snd-emux-mem            1456   0 (autoclean) [snd-synth-emux snd-emu10k1]
snd-rawmidi             9656   0 (autoclean) [snd-emu10k1]
snd-ac97-codec         22432   0 (autoclean) [snd-emu10k1]
snd-mixer              23624   0 (autoclean) [snd-ac97-codec]
snd-seq-device          3308   0 (autoclean) [snd-seq-oss snd-synth-emu10k1 snd-synth-emux snd-seq snd-card-emu10k1 snd-rawmidi]
snd                    31372   1 [snd-seq-oss snd-seq-midi-event snd-synth-emuxsnd-seq-midi-emul snd-seq snd-card-emu10k1 snd-emu10k1 snd-pcm snd-timer snd-emux-mem snd-rawmidi snd-ac97-codec snd-mixer snd-seq-device]
soundcore               2820   4 [snd]
ついでに/etc/modules.confは以下。
#ALSA/SB Live Setup
alias char-major-116 snd
options snd snd_major=116 snd_cards_limit=1
alias snd-card-0 snd-card-emu10k1
options snd_index=1 snd_id="SB'Live" snd-card-emu10k1

#OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

2000/01/11(Tue)

Java Mailを試したい。でも、試すだけでいちいちプロバイダに接続するのはばかばかしい(貧乏だからね...(^^;))し、おいらのプロバイダはIMAP4のサービスをやってない(たぶん(^^;))。
で、マイマシンにPOP3,IMAP4のサーバを導入することにした。こういう時、Linuxだと便利だよね。
#ちなみにSMTPサーバの方はsendmailがもともとインストール済みなので今回は割愛する、つーか設定方法わからん(^^;)。

まずは、雑誌の付録のRedHat Linux 6.1 日本語版からimapパッケージを導入する。
$su
passwd:
#rpm -ivh imap-4.5.4.i386.rpm
次に、/etc/inetd.confを編集。次の2行の#を削除する。
(旧)
#pop-3   stream  tcp     nowait  root    /usr/sbin/tcpd  ipop3d
#imap    stream  tcp     nowait  root    /usr/sbin/tcpd  imapd

(新)
pop-3   stream  tcp     nowait  root    /usr/sbin/tcpd  ipop3d
imap    stream  tcp     nowait  root    /usr/sbin/tcpd  imapd
次に、/etc/hosts.deny , hosts.allowにそれぞれ以下の設定を追加。 特にインターネットに接続しっぱなしではない限り特に必要はないとは思うんだけど、何事も勉強っつ〜ことで一応設定する。ローカル環境でしか使わないから、localhost以外からの問い合わせを拒否する設定。
/etc/hosts.deny に以下を追加。

imapd: all
pop3d: all

#all: allとやれば全てを拒否する形になるそうだ。

/etc/hosts.allow

imapd: 127.0.0.1
pop3d: 127.0.0.1

#ホスト名で指定することもできるけど、DNSの偽造とかでセキュリティホールになりやすいんだってさ。

で、inetdを再起動する。
#killall -HUP inetd
次にテスト。メールクライアントとか使ってテストしても良いのだけど、こういう時はコマンドラインの方が楽だよね。
そんなわけで、telnetで直接pop3dと対話してみる。以下、黒字部分が手入力した部分。 (一応、日常使っているアカウントで、テストメールが混ざったりするのは嫌なので、専用のアカウントtest(passwordはhoge)を作っておいた。なお、ホスト名は仮にhoge.comとする)

まずはPOP3(コマンドはRFC1939を参考にした)
---------
$mail test   (mailをtest宛に送信)
Subject: test

test
.
Cc: 
$telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK POP3 localhost v7.59 server ready
USER test
+OK User name accepted, password please
PASS hoge
+OK Mailbox open, 1 messages
LIST
+OK Mailbox scan listing follows
1 325
.
RETR 1
+OK 325 octets
Return-Path: 
Received: (from hoge@localhost)
        by hoge.com (8.9.3/8.9.3) id AAA01560
        for test; Thu, 13 Jan 2000 00:14:16 +0900
Date: Thu, 13 Jan 2000 00:14:16 +0900
From: TEST 
Message-Id: <200001121514.AAA01560@hoge.com>
To: test@hoge.com
Subject: test
Status:   


test
.
QUIT
+OK Sayonara
Connection closed by foreign host.
$


次にIMAP4(コマンドはRFC2060を参考にした)
---------
$telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK localhost IMAP4rev1 v12.250 server ready
a001 login test hoge
a001 OK LOGIN completed
a002 select inbox
* 1 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 947605881] UID validity status
* OK [UIDNEXT 8] Predicted next UID
* FLAGS (\Answered \Flagged \Deleted \Draft \Seen)
* OK [PERMANENTFLAGS (\* \Answered \Flagged \Deleted \Draft \Seen)] Permanent flags
a002 OK [READ-WRITE] SELECT completed
a003 fetch 1 body[header]
* 1 FETCH (BODY[HEADER] {305}
Return-Path: 
Received: (from mutoh@localhost)
        by hoge.com (8.9.3/8.9.3) id AAA01560
        for test; Thu, 13 Jan 2000 00:14:16 +0900
Date: Thu, 13 Jan 2000 00:14:16 +0900
From: TEST 
Message-Id: <200001121514.AAA01560@hoge.com>
To: test@hoge.com
Subject: test

)
a003 OK FETCH completed
a004 logout
* BYE sowhat IMAP4rev1 server terminating connection
a004 OK LOGOUT completed
Connection closed by foreign host.
$


一通り動作は確認できた。ということで、今日はここまで。もう寝よ(=o=)zZZZZ。

2000/01/03(Mon)

Linux USER 1月号の「秋葉原からのはまり道」(なべしんさん) を読んでいたら、「ハードディスクのパフォーマンスチェック」というところに、hdparmの使い方が書いてあった。 そういや、オイラのマシンではどうなってるのかな〜、とやってみたら...
$su 
Password:
#hdparm -t /dev/hda

/dev/hda:
 Timing buffered disk reads:  64 MB in 13.74 seconds = 4.66 MB/sec
#hdparm -t /dev/hdb

/dev/hdb:
 Timing buffered disk reads:  64 MB in 11.87 seconds = 5.39 MB/sec
※オイラのマシンはハードディスクが/dev/hda(Ultra DMA非対応,/dev/hdb Ultra DMA対応)の2つある。

げげ、遅い...遅過ぎる...。
なななんで???
と、とりあえず、HDDの情報を表示させると...
#hdparm /dev/hdb

/dev/hda:
 multcount    =  0 (off)
 I/O support  =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 nowerr       =  0 (off)
 readonly     =  0 (off)
 readahead    =  8 (on)
 geometry     = 787/64/63, sectors = 3173184, start = 0
#hdparm /dev/hdb

/dev/hdb:
 multcount    =  0 (off)
 I/O support  =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  0 (off)
 keepsettings =  0 (off)
 nowerr       =  0 (off)
 readonly     =  0 (off)
 readahead    =  8 (on)
 geometry     = 1027/255/63, sectors = 16514064, start = 0
ぐげげげ。DMA が効いていないだけではなく、I/Oサポートも16bitとは....。 一体どうしたことだ...
そこで、「秋葉原からのはまり道」に書いてある通り、以下の2つをやってみることにした。
#hdparm -c 1 /dev/hda

/dev/hda:
 setting 32-bit I/O support flag to 1
 I/O support  =  1 (32-bit)
#hdparm -c 1 /dev/hdb

/dev/hdb:
 setting 32-bit I/O support flag to 1
 I/O support  =  1 (32-bit)
で、hdparmで測定。
#hdparm -t /dev/hda

/dev/hda:
 Timing buffered disk reads:  64 MB in 12.53 seconds = 5.11 MB/sec
#hdparm -t /dev/hdb

/dev/hdb:
 Timing buffered disk reads:  64 MB in  8.38 seconds = 7.64 MB/sec

お、ちょっとだけ速くなってるぞ。ってなわけで、次にDMAの設定を変更してみると...
#hdparm -d 1 /dev/hda

/dev/hda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: 許可されていない行為です
 using_dma    =  0 (off)
[/usr/src/linux]#hdparm -d 1 /dev/hdb

/dev/hdb:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: 許可されていない行為です
 using_dma    =  0 (off)
ありゃ〜? なんぢゃ〜?
DMAが有効にできんぞ〜?
カーネルのコンフィグレーションで、Use DMA by default when availableもYesになってるのに一体なぜなんだ〜?
てなことで、あれこれやった後に、ふとdmesgをたたくと....
#dmesg
...
PCI_IDE: unknown IDE controller on PCI bus 00 device 78, VID=10b9, DID=5229
PCI_IDE: not 100% native mode: will probe irqs later
PCI_IDE: simplex device:  DMA disabled
ide0: PCI_IDE Bus-Master DMA disabled (BIOS)
PCI_IDE: simplex device:  DMA disabled
ide1: PCI_IDE Bus-Master DMA disabled (BIOS)
hda: WDC AC31600H, ATA DISK drive
hdb: IBM-DTTA-350840, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: WDC AC31600H, 1549MB w/128kB Cache, CHS=787/64/63
hdb: IBM-DTTA-350840, 8063MB w/467kB Cache, CHS=1027/255/63
...
ふにゃぁ、となると、マザーボードのIDE Controllerが原因か?
おいらのマシンのマザーボードはASUS P5A なんだけど、これのIDE Controllerは ALi M1543C だ。

で、インターネットでいろいろ探してみると、開発元(?)のAcer Laboratories Inc.Driverのページに、「IDE Driver ver.1.00 / For Linux Operating System. (Beta Version 3)」というものを発見!!。すばらしいぞAcer。
ベータ版だけど、まぁ、大丈夫だろうって感じで、ダウンロード。
中身を見ると、kernel 2.2.12 へのパッチになっている。つい先日、カーネルを2.1.13にしたばっかりなのでちょっとがっかり。が、せっかくサウンドボードとかグラフィックボードとかをバージョンアップしても、肝心のハードディスクが遅いままでは話にならん、つーことで、INSTALLを読みながら、手作業で変更してみることにした。

----
まずは、suでrootになる。
INSTALLに書いてある通り、まずは、/usr/src/linux/drivers/block/Config.inの変更。Config.inのCONFIG_BLK_DEV_IDEDMAを検索してそこら辺を以下のように変更。

※赤字が変更部分
if [ "$CONFIG_BLK_DEV_IDEDMA" = "y" ]; then
  bool '     ALI 15X3 chipset support (EXPERIMENTAL)' CONFIG_BLK_DEV_ALI15X3
  bool '     Tekram TRM290 chipset support (EXPERIMENTAL)' CONFIG_BLK_DEV_TRM290
  bool '     NS87415 chipset support (EXPERIMENTAL)' CONFIG_BLK_DEV_NS87415
  bool '     VIA82C586 chipset support (EXPERIMENTAL)' CONFIG_BLK_DEV_VIA82C586
  bool '     CMD646 chipset support (EXPERIMENTAL)' CONFIG_BLK_DEV_CMD646
fi

----
Configure.helpの変更。
Configure.helpはJFのもので日本語化してあるので、 とりあえず、ここでも日本語を追加してみた(もちろん意訳(^^;))。
なお、例にあった通り、Tekram TRM290 chipset support (EXPERIMENTAL)の上に追加した。


ALI M15X3 chipset support (EXPERIMENTAL)
CONFIG_BLK_DEV_ALI15X3
  This driver ensures (U)DMA support for ALI 1543 and 1543C,
  1535, 1535D onboard chipsets.

  (ALI M15X3 チップセットのサポート(ベータ版))
  このドライバは オンボードチップ ALI 1543, 1543C, 1535, 1535D
  の(U)DMAを使用可能にします.

Tekram TRM290 chipset support (EXPERIMENTAL)
...

----
次にMakefileの変更。

#vi ../drivers/block/Makefile

ifeq ($(CONFIG_BLK_DEV_ALI15X3),y)   
IDE_OBJS += alim15x3.o               
endif                                

ifeq ($(CONFIG_BLK_DEV_TRM290),y)

----
Acer Laboratories Inc.からダウンロードしたファイルの中から、alim15x3.cを/usr/src/drivers/block/にコピーする。

#cd ../../drivers/block/
#cp ~/ALiIde10b3/alim15x3.c .

----
/usr/src/drivers/block/ide-pci.cを以下のように変更。


#define DEVID_ALI15X3   ((ide_pci_devid_t){PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M5229})  

#define DEVID_TRM290    ((ide_pci_devid_t){PCI_VENDOR_ID_TEKRAM,  PCI_DEVICE_ID_TEKRAM_DC290})

...

#ifdef CONFIG_BLK_DEV_ALI15X3                  
extern void ide_init_ali15x3(ide_hwif_t *);    
#define INIT_ALI15X3  &ide_init_ali15x3         
#else                                          
#define INIT_ALI15X3  NULL                       
#endif

#ifdef CONFIG_BLK_DEV_TRM290
extern void ide_init_trm290(ide_hwif_t *);

...

{DEVID_ALI15X3, "ALI15X3", INIT_ALI15X3, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, 

{DEVID_TRM290,  "TRM290",  INIT_TRM290,  {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 },

----
/usr/src/linux/drivers/ide-dma.cを変更する。
__initfunc(...)内に以下の数行を追加する。

 __initfunc(unsigned long ide_get_or_set_dma_base (ide_hwif_t *hwif, int extra, const char *name))
    {
        ...
        if (dma_base) {
            if (extra) /* PDC20246 & HPT343 */
                request_region(dma_base+16, extra, name);
            dma_base += hwif->channel ? 8 : 0;
            hwif->dma_extra = extra;

            /* ====== ALI M5229 ================================*/    
            if( hwif->pci_dev->device == PCI_DEVICE_ID_AL_M5229)      
               outb(inb(dma_base+2) & 0x60, dma_base+2);              
            /* =================================================*/    

            if (inb(dma_base+2) & 0x80) {
                printk("%s: simplex device:  DMA disabled\n", name);
                dma_base = 0;
            }
        }
        return dma_base;
    }

----
ここまでで、人手パッチ当て終了。
で、カーネルの再構築。一応、make xconfig(config/menuconfig)を行う前にmake cleanをすることと書いてあるので、そいつを一番最初にやった。
#cd ../..
#make clean
#make mrproper
#make xconfig
ここで、先ほどの設定を有効にする。
(1) Code maturity level oprions
          Prompt for development and/or incomplete code/drivers => y
(2) Block devices
          Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support   => y
          Generic PCI IDE chipset support                       => y
          Generic PCI bus-master DMA support                    => y
          Use DMA by default when available                     => y
          Other IDE Chipset support                             => y
          ALI 15X3 chipset support (EXPERIMENTAL)               => y

#make dep
#make clean
#make bzImage
#make modules
#make modules_install
#cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.13 
#cp /usr/src/linux/System.map /boot/System.map-2.2.13
#cd /boot 
#rm System.map 
#ln -s System.map-2.2.13 System.map 
#rm initrd-2.2.13.img
#mkinitrd /boot/initrd-2.2.13.img 2.2.13

で、リブート。

----
さっそくdmesgをしてみる。

#dmesg
...
ALI15X3: IDE controller on PCI bus 00 dev 78
ALI15X3: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xb800-0xb807, BIOS settings: hda:DMA, hdb:DMA

************************************
*    ALi IDE driver (1.0 beta3)    *
*       Chip Revision is C1        *
*  Maximum capability is - UDMA 33 *
************************************

    ide1: BM-DMA at 0xb808-0xb80f, BIOS settings: hdc:pio, hdd:pio
hda: WDC AC31600H, ATA DISK drive
hdb: IBM-DTTA-350840, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
 ALI15X3: MultiWord DMA enabled
hda: WDC AC31600H, 1549MB w/128kB Cache, CHS=787/64/63, DMA
 ALI15X3: Ultra DMA enabled
hdb: IBM-DTTA-350840, 8063MB w/467kB Cache, CHS=1027/255/63, UDMA
をぉ。なんか、いろいろ主張しているのがいかにも商業的だが、きちんと読み込めてるぞ。

----
hdparmはっと。

#hdparm -t /dev/hda

/dev/hda:
 Timing buffered disk reads:  64 MB in 13.66 seconds = 4.69 MB/sec
#hdparm -t /dev/hdb

/dev/hdb:
 Timing buffered disk reads:  64 MB in  7.31 seconds = 8.76 MB/sec

あれ? たしかに、/dev/hdbはかなりはやくなってる(1.625倍)けど、/dev/hdaはそれほど変わっていない。
一応、hdparmで情報を見てみると、

#hdparm /dev/hda

/dev/hda:
 multcount    =  0 (off)
 I/O support  =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 nowerr       =  0 (off)
 readonly     =  0 (off)
 readahead    =  8 (on)
 geometry     = 787/64/63, sectors = 3173184, start = 0
#hdparm /dev/hdb

/dev/hdb:
 multcount    =  0 (off)
 I/O support  =  0 (default 16-bit)
 unmaskirq    =  0 (off)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 nowerr       =  0 (off)
 readonly     =  0 (off)
 readahead    =  8 (on)
 geometry     = 1027/255/63, sectors = 16514064, start = 0
using_dmaがonになってる。すばらしい。
でも、I/O supportが相変わらず16-bitだ。
次はこいつをonにしてみるとするか...
#hdparm -c 1 /dev/hda

/dev/hda:
 setting 32-bit I/O support flag to 1
 I/O support  =  1 (32-bit)
#hdparm -c 1 /dev/hdb

/dev/hdb:
 setting 32-bit I/O support flag to 1
 I/O support  =  1 (32-bit)

で、hdparmで再度測定。
#hdparm -t /dev/hda

/dev/hda:
 Timing buffered disk reads:  64 MB in 13.40 seconds = 4.78 MB/sec
#hdparm -t /dev/hdb

/dev/hdb:
 Timing buffered disk reads:  64 MB in  5.53 seconds =11.57 MB/sec
うーん。結局/dev/hdaはほとんど速くならなかったなぁ。Ultra DMAは使えないっつーのはわかってたけど、DMAは効いているはずなのになぜ...?
でも、まぁ、/dev/hdbは2倍以上に速くなったからよしとするか...(2.147倍)。それでも、「秋葉原からのはまり道」の16.89MB/secには遠く及ばなかったな...。まだ、やりようがあるのかな...。

最後に、hdparmを起動時に設定できるようにしたいので、とりあえず、/etc/rc.d/rc.sysinitにhdparm -c 1 /dev/hda, hdparm -c 1 /dev/hdbを記述した。

余談になるが(?)、インターネットをさまよっていると、P5AのBIOSもバージョンアップしていたので、こちらもダウンロード/バージョンアップした。


[前の月へ] [メニューへ] [次の月へ]