<69kk6q$jbd$1 _at_ news.alles.or.jp>の記事において
zic _at_ alles.or.jpさんは書きました。
佐野@浜松です。
(この記事も職場から出したつもりになってましたが、
停電に伴うシステム停止のため、送られていません
でしたので、Nifty から送り直します。週末を狭んで
フォローが遅れましたことをお詫びします。_O_)
In article <69kk6q$jbd$1 _at_ news.alles.or.jp>
zic _at_ alles.or.jp (Zenith Inn CIIly) writes:
> なんか、すれ違っちゃったみたいですね。
> 二人して解析してたみたい。
どうもお世話おかけしました。
> お待ちしておりました。予想通りの提案を下さってますが、これは、
> hdb: INVALID GEOMETRY: 255 PHYSICAL HEADS?
> となって果てます。
。。。読まれていましたか。(まだまだ修行が足りないなあ>自分)
> probe_hwifにおいて、BIOS設定値を読み込んだ後に、
> for (unit = 0; unit < MAX_DRIVES; ++unit) {
> ide_drive_t *drive = &hwif->drives[unit];
> (void) probe_for_drive (drive);
> if (drive->present && drive->media == ide_disk) {
> if ((!drive->head || drive->head > 16)
> && !drive->select.b.lba) {
> printk("%s: INVALID GEOMETRY: %d PHYSICAL HEADS?\n",
> に入るのですが、probe_for_driveは noprobe オプションのために、
> 直ちに何もせずに帰り、引き続くif文で drive->select.b.lba が
> やはり偽であるために、このようになります。
確認しました。おっしゃるとおりです。_O_
> だから、
> ・プローブさせて自動認識を成功させる
> ・liloオプションで正しいジオメトリを渡し、かつ、プローブさせない
> (この場合、EZDの認識のために、forced_geomをリセットする必要がある)
> の、どちらかしか、選択肢は無い筈です。
間違った憶測を流してしまい、失礼しました。今手元で
使用中のバージョン 2.0.32 のカーネルコードで確認
したところ、そのとおりでした。
で、ここまで時間を使わせてしまった罪滅ぼしにと、
開発版のカーネルでの状況を確認するために 2.1.78 を
調べてみました。
linux/drivers/block/ide.c を見ると、probe 関係は
ide-probe.c に、disk 関係は ide-disk.c に移動した
ようで、いろいろ処理の流れが変更されているようでした。
# どうもパラレルポート IDE がサポートされているよう
# なのですが、2.1.xx 系をお使いのかたでこの機能を
# 試してみた方はいらっしゃいますか?どんなハードで
# 動作実績があるのか、ちょっと興味があるもので。
で、ちょっと見ると ide-probe.c の中の probe_hwif() には
"%s: INVALID GEOMETRY: %d PHYSICAL HEADS?\n", を出力
する部分がすっぽり抜けていて、「これは改善されているの
かな?」と思ったのですが、よく調べると実は ide-disk.c
の中の idedisk_init() の中に該当するコードがあって、
やはり drive->head が 1 から 16 の範囲に無く、かつ
drive->select.b.lba が有効になっていないと、認識を
拒否されてしまうようです。
また、drive->select.b.lba を有効にするのは
idedisk_capacity() ( current_capacity() から名前を変更
されたもの。コメントにはまだ以前の名前が残っている。)
だけで、これは例の lba_capacity_is_ok() で 10% の
チェックをクリアーしないと有効にならないのも同じでした。
結局 2.1.78 でもカーネルパッチが必要というのは同じかと
思います。
probe_cmos_for_drives() で CMOS から LBA の設定を渡して
もらえるようになるとか、[EZD] を強制認識させるオプション
の新設とか、あるいは LBA アクセスを強制するオプションの
新設、などの対処を期待していたのですが、どうもまだみたい
ですね。必要性を認識していないのかもしれません。
私としては、投稿されたパッチを含めて、上のような
対処方法が用意されていても良いように思うので、
「こういう状況があって、こういう要望がある」ぐらいは
カーネル開発者に連絡してみたらどうかなという気が
しますが、どんなものでしょう
(「連絡するべき?べきでない?」> 識者のかたへ)
---
#わたしのおうちは浜松市、「夜のお菓子」で有名さ。
<xlj06203 _at_ niftyserve.or.jp> : Taketoshi Sano (佐野 武俊)