(6)コンフリクトの解決方法 
         投稿者:H.Kanoh  投稿日:03月02日(火)

カードを増設したときに動かないとか、ハングするといったプラグ&プレイ
(PnP)にまつわる問題はWin98になっても解決されていません。MB BIOSの出来
次第でPnPがスムースに動くかどうかが決まります。一番楽なのは、ASUS製MB
のようなBIOSで各PCIスロットに任意IRQを割り当て可能なMBを使うことです。
強制設定ですので、まずトラブルは発生しません。PnP非対応OSで使う場合も
リソース設定で苦しまずに済むので、MBを選ぶときのチェックポイントになり
ます。

VA503+など、多くのMBではIRQの任意割り当て機能を「省略」しているので、
どうしてもPnPによる自動設定になってしまいます。小生の経験では、このよ
うなMBにカードを挿す場合は、1枚ずつ装着するのが確実な方法です。

コンフリクトが発生した場合は、ビデオカードだけを残して(SCSI-HDDにイ
ンストールしてある場合はSCSIも残す)、コントロールパネル−システムから
外したカードを全て削除します。この時に重要なのは、削除した後にWindows
を終了し必ず電源を切ることです。次に通常モードで起動し、システムから外
したカードが削除されていることを確認します。この時に外したはずのカード
がゾンビ状態で残っているなら、後述するNVRAMに異常データが残っているか、
Windowsのレジストリファイルが壊れている可能性があります。レジストリが
壊れている場合はクリーンインストールするのが最善策となります。正常にカ
ードを削除できたならば、1枚ずつカードを追加して、順番に認識させます。
BIOSやカードの出来が悪くなければ、上記手順でインストールできる事が多い
です。(NVRAM=MB上の不揮発メモリ)

ISA-PnPカードなど出来の悪いカードを挿してコンフリクトが発生した場合、
MB上のNVRAM(リソース設定情報を記憶するメモリ)に異常なデータがカードを
抜いた後にも残ることがあります。BIOSはNVRAMからESCD(拡張システムコンフ
ィグレーションデータ)を読み出してカードの初期化を行いますので、MVRAMに
異常データが残るとカードのリソースは正常に設定されません。
新規にカードをインストールした場合は、カード上のコンフィギュレーショ
ンレジスタを読み出して、カードが要求するリソースを調べます。この時にESCD
も更新されるのですが、BIOSの出来が悪いとリソース競合を解決できない事が
あります。またカード類が「正しく」PCIとPnPの規格に準拠していないと、正
常にリソース割り当てが行われません。このあたりが「相性」と呼ばれる現象
の正体で、要するにPnP規格を満足していない欠陥品と言えます。

PCIカードの場合は、スロット位置を変更して強制的にESCDを再設定させるの
が有効な解決手段になります。しかしカードやBIOSが非常に出来が悪い場合は
スロット位置変更でも解決せず、BIOS書き換えユーティリティーを使ってNVRAM
内のESCDを強制初期化しなければ解決しないこともあります。実際にSB16-PnP
のリソース衝突を解決するためにBIOS書き換えユーティリティーを使ったこと
があります。

小生の場合は、次のような手順でトライしています。
 1.カードを抜いて、ゾンビが残るかどうか確かめる。
 2.カードを挿すスロットを変更する。
 3.NVRAMを強制初期化する。
 4.ビデオカード(場合によってはSCSI)だけを残して、Windowsをクリーン
   インストールする。カードは1枚づつ追加していくが、場合によっては
  スロット位置を試行錯誤する必要があります。

ちょっとBIOS関連HPを探してみたら、NVRAM消去用プログラムが公開されて
ました。Phoenix社のユーティリティーページには便利そうなのがゴロゴロと
置いてあります(^_^)。

http://www.phoenix.com/products/util.html

NVRAM.EXE utility r1.11
NVRAM.EXE is a utility which uses the Plug and Play BIOS interface to
read, write, and parse ESCD data from either the systems ESCD NVRAM
storage area, or, from files.

そのものズバリ、NVRAM.EXEです。初期化だけでなく、ESCDのバックアップ
もできるようですね。

(ここから99/11/25追加)
NVRAM.EXEとかマザーのBIOS書き換えユーティリティーのCMOS(NVRAM)初期化
オプションを使うのは、カード位置の差し替えで治らなかった場合の最終手段と
考えてください。

小生もISA PnPカード(SB16PnP)とレガシーISAカードを混在させた時に、どう
してもコンフリクトが解消しなかった場合の最終手段として使っていました。
マシンが全く起動しなくなる心配はありませんが、カードのコンフィグレーシ
ョンが完全に変更されるのでWindowsの再設定は必要になるかもしれません。運が
良ければ自動的に再設定されます。再設定を行う場合は一度に全部のカードを装
着するのではなく、ビデオカード(SCSI環境ならSCSIカードも残す)だけ残して、
1枚ずつカードを追加して下さい。ドライバはインストール済みなので、出来が
良いカードなら自動的にカードを再認識して元のドライバを使ってくれます。

NVRAM.EXEのコマンドオプションは下記の通りです。純粋な英語DOSプログラム
なので、生DOSあるいはWin9x起動FDからconfig.sysとautoexec.batを消去した英
語DOS環境で起動してください。NVRAMの初期化は「-z」オプションを付ければOK
です。

Usage: NVRAM [-?,-b[s] [fn],-e[s] [fn],-r [fn],-l filename,-s filename,-z]
-? : Display this usage screen.
-b [fn] : Display Complete Bitmap Info.
-bs [fn] : Display Summary of Bitmap Info.
-e [fn] : Display Complete ESCD Info.
-es [fn] : Display Summary of ESCD Info.
-r [fn] : Dump Resource Summary of ESCD image.
-l fn : Load ESCD/Bitmap file into nvram.
-s fn : Save ESCD/Bitmap image to a file.
-z : Zero out ESCD/Bitmap image (Load null image).
fn = filename. This Escd image contains an invalid checksum.

ついでに、もう一つBIOSネタを紹介しときます。


(7) AWARD BIOSを飛ばした時の緊急蘇生法

1)マザーにCPU、メモリおよびFDDだけを接続して、PCIビデオカード、HDDその
他は全て外す。
2)ピュアDOS起動フロッピー(config.sys無し)にBIOSファイルとAWDFLASH.EXE
を入れておく。
AUTOEXEC.BATのみ下記の1行を記述しておく。
awdflash BIOSファイル名 /py /sn /cc

3)上記のフロッピーをセットして、電源を投入して暫く待つとBIOSが自動で書
き換わる。(しばらく放置しておく)

AWARDモジュラーBIOS 4.51系統であれば、上記手順で起動不能な状態でもBIOS
書き換えができる場合があります。使用するユーティリティーソフトawdflash.exe
のバージョンは5.33以降が必要のようです。

元ネタはこちら、FAQの「9. How can you recover a corrupt BIOS ?」あた
りに書いてあります。 
http://www.ping.be/bios/

AWARD BIOSは書き換えユーティリティーで上書きされることのない小さなブ
ートブロックを備えているそうです。これはISAビデオカードとFDDのみをサポ
ートするミニBIOSですけど、上記のような緊急蘇生には役立ちますね。もっと
も、物理的にBIOSチップが破損しているとかブートブロックまで壊れている場
合は対処できませんけどね(^_^;。

<追加情報;2000/7/19>AMIBIOSフラッシュユーティリティーのコマンド文法です

Flash EPROM Programming Utility
Copyright (C)1992-1997 American Megatrends Inc. Ver.6.34
ヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘ
Usage: AMIFLASH ROM_file_name / / /
Example: AMIFLASH AMIBIOS.ROM /A --> AUTO Detect/Programming Flash ROM
トトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトトト

?|H|h : Help
A|a : Auto Detect&Programming Flash ROM AND [Reboot]
B : Force Boot Block Programming
b : Do not program Boot Block
C|c : Do not clear CMOS, default is yes
I|i : Identification BIOS file is right for this system or not
L|l : Lists of all parts that is supported
P|p : Auto Detect&Programming Flash ROM
Q|q : Break utility after save BIOS function done
S|s : System halt after programming done
O|o : Flash function calls from BIOS file and then Restart utility
F|f:[Filename] : If filename presented then save BIOS function can be enabled
and implement immediately else disabled
Sample: A. Save BIOS function Disabled
AMIFLASH /F
B. Save ROM data to "AMIBIOS.ROM"
-- More --
AMIFLASH /F:AMIBIOS.ROM
C. Save ROM data to "AMIBIOS.ROM" and Quit utility
AMIFLASH /F:AMIBIOS.ROM /Q

I > O > A > S > P
ヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘヘ


AMI BIOSでしたら、

AMIFLASH BIOSファイル名 /Aで良いと思います。
(AMIFLASH.EXEというファイル名では無い場合もあります)

 それからAMI BIOS固有の使い方として、BIOSが気絶して動かなくなった場合に、
ENDキーを押し続けながら電源スイッチを入れると、セットアップに入れる場合が
あります。

ちなみにAWARD BIOSの場合は下記の通りです

Awdflash 7.53 (C)Award Software 1999 All Rights Reserved

Usage: AWDFLASH [FileName1] [FileName2] [/[/...]]
FileName1 : New BIOS Name For Flash Programming
FileName2 : BIOS File For Backing-up the Original BIOS

?: Show Help Messages
py: Program Flash Memory pn: No Flash Programming
sy: Backup Original BIOS To Disk File sn: No Original BIOS Backup
Sb: Skip BootBlock programming sd: Save DMI data to file
cp: Clear PnP(ESCD) Data After Programming
cd: Clear DMI Data After Programming
cc: Clear CMOS Data After Programming
R: RESET System After Programming cks: Show update Binfile checksum
Tiny: Occupy lesser memory
E: Return to DOS When Programming is done
F: Use Flash Routines in Original BIOS For Flash Programming
LD: Destroy CMOS Checksum And No System Halt For First Reboot
After Programming
cksXXXX: Compare Binfile CheckSum with XXXX

Example: AWDFLASH 2a59i000.bin /py/sn/cd/cp/cks2635




(8)クリーンインストールで楽する方法 
            投稿者:H.Kanoh  投稿日:03月03日(水)

レジストリなどのシステムファイルが壊れたとか、ドライバなどのゴミファ
イルが残って正常に動かない場合はクリーンインストールを行う羽目になりま
す。再インストール時にディスクのフォーマットを行わずに、Windowsディレク
トリだけを消したい場合がありますよね。Winが動いている間はディレクトリを
消せませんからDOSモードに抜けて操作することになります。この時に、システ
ム属性の隠しファイル・サブディレクトリを多数含んだWindowsディレクトリを
どうやって消去しているでしょうか?

\WINDOWS\COMMANDに存在する「DELTREE.EXE」を使えば一括消去できます。小
さなプログラムなので、起動FDにコピーしておくと便利だと思います。

 DELTREE ドライブ:ファイルまたはディレクトリ名

削除対象にディレクトリを指定すれば、システム属性のサブディレクトリまで
一括削除できます。これでフォーマットは省略できますが、アプリケーション類
は再インストールしなければなりません。
ディスクパーティションを作成しないで1ドライブのまま使っており、MO等
のバックアップドライブやLANも無いのでクリーンインストールもままならな
い、というようなドツボの状況で効果を発揮すると思われます(^_^;。
後はDOS汎用のVFAT対応COPY、XCOPYコマンドあたりも用意しておけば、ブラウ
ザの「お気に入り」なんかもバックアップできますので、かなり手間は省けるで
しょう。(フリーのVFAT対応ツール 
http://www.valley.ne.jp/~kazu-ma/


<オマケ>Windowsのsetup.exeのオプション
           (2001/9/18 H.Kanohさんからのメールより)

修復インストールで楽するために…
setupコマンドのコマンドオプションと便利なコマンド

 Windowsのセットアップコマンドには知っていると便利なコマンドオプションが多く存在します。

/im     基本メモリの空き容量をチェックしない
/is     スキャンディスクを省略する
 この二つはsetup実行時にメモリ不足のエラーが発生した場合に有用です。
 メモリ不足の原因となるのはスキャンディスクが原因なので、フォーマット
 したばかりのHDDにインストールするなら省略しても問題ありません。上書き
 インストールの場合は、setup実行前にコマンドラインから仮想ディスク内の
 scandiskを手動で起動すれば良いです。

/ir     MBRを更新しない
 他のOSと共存させており、MBRを変更したくない場合に指定します。

/pj     ACPIハードウェアの検出を行う
 BIOSや拡張カード類がACPIに対応している場合は、ACPIモードでインストールが
 行われます。

/NTLDR    HDDに既存のOSがインストールされているかチェックしない
 OEM版Windowsでは新品のHDDにインストールすることを前提としており、Windowsが
 インストールされているHDDに対してはsetupが実行できません。このチェックを
 回避するためのオプションです。

/d      HDDにインストール済みのWindowsの設定を引き継がない
 Windowsの具合が悪くなって修復インストールする場合に、不具合のあるレジスト
 リ設定等を継承したくない場合に指定します。





(9)NTオートログインなどのTips  投稿者:H.Kanoh  投稿日 : 99年6月24日<木>

ハードウェア関連
1.ハードウェア調査用TOOL
 フロッピーを1枚用意する
 CD-ROMの2枚目 \Support\Hqtool\makedisk.bat を実行する
 作成したFDを用いて起動すると、各種デバイスの使用リソースが検出できる

2.CDの自動挿入を解除
  HKEY_LOCAL_MACHINE\SYSTEM\ControlSet00*\Services\CdromのAutorunを0
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CdromのAutorunを0

3.自動電源切断を行う方法
 NTディレクトリのSYSTEM32以下に存在するHAL.DLLをHAL.DL_あたりにリネーム。

シングルマシン用(P2B-Fで確認済み)
 サービスパック4以降のi386に存在するHAL.DLL.SOFTEXをHAL.DLLにリネームし,
SYSTEM32にコピーする
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
  キー PowerdownAfterShutdown を0から1に変更する。

Dualマシン用
 サービスパックに含まれるhalmps.dll.softexをシングル用と同様に入れ換える。
ただし,HCLに掲載されている機種でしか使えないようです。
 Dualでもシングル用と同様に
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
 キー PowerdownAfterShutdown を0から1に変更する。

(↓以下はかなり危険)
 http://www.fmworld.ne.jp/product/lib/hal/fmv.html
 F社製のマルチ対応HALに入れ換える
 ただしSP5ではHALのマイナーバグがFIXされているので,F社製HALで自動電源
切断を取るかHALのバグFIXを取るかの二者択一になります(^_^;
HALとDualマザーとの相性がきつく,F社HALでもMBによっては切断できない。
FW-6280ではF社HALで電源切断OKでした(SP4およびSP5で確認済)

 シングルマシン用は問題が少ないようですが,Dual用は相性がキツイので
ちょっと試してダメだったら直ちに元へ戻した方が無難です。うまくいけば
めっけもんと言ったところで,あまりお勧めできません。

※F社製HALを流用するのは当然保証外の行為ですし,かなり危険なので「自
己責任」を理解できない人は絶対に行わないで下さい。最悪の場合はシステ
ムが異常になって再インストールが必要になります。

オマケ
1.カーソルを方向キーで動かす方法
 「ユーザー補助」の機能の一部であるマウスキーを有効にするとキーボード上の
方向キーでマウスを動かすことができる。
 1.コントロールパネルの「ユーザー補助」をダブルクリック。
 2.「マウス」タブにある「マウスキーを使う」をチェック。
 「ユーザー補助」がインストールされていない場合は「アプリケーションの追加
と削除」で機能をインストールしておく。

2.自動ログオン
 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon]
 "AutoAdminLogon"="1"
 "DefaultPassword"="自分のパスワード"

 NTの場合はREGEDT32を使わないと細かい設定変更ができませんけど,キーが判っ
ているなら怖いのは操作ミスだけです。事前にRDISKコマンドで,設定ファイル類
をバックアップしてから変更すれば大丈夫でしょう。