パソコン鳥のブログ

アクセスカウンタ

zoom RSS ハードウェアリセット方法

<<   作成日時 : 2014/10/24 22:38   >>

ブログ気持玉 0 / トラックバック 1 / コメント 0

ハードウェアリセットの方法です。


キーボードリセットによる方法


ポート 0x64 の bit 0 に 0 を書き込むと、コールドリセットされます。
0x64 はキーボードコントローラのポートです。

パソコン鳥も、15年以上前にこの方法でリセットするコードを書いたことがあります。

Linux ではリセットを実施するとき、アドレス 0x64 に 0xfe を書き込んでいます。
該当箇所はカーネルソースの arch/x86/kernel/reboot.c 、arch/x86_64/kernel/reboot.c のnative_machine_emergency_restart()関数内です。


PCIポートへのアクセスによる方法


ポート 0xCF9 に 0x06 を書き込むと、ウォームリセットされます。
ポート 0xCF9 に 0x0E を書き込むと、コールドリセットされます。

Linux ではキーボードリセットでリセットできなかった時に、この方法でリセットしています。
該当箇所はカーネルソースの arch/x86/kernel/reboot.c 、arch/x86_64/kernel/reboot.c のnative_machine_emergency_restart()関数内です。


Linux で /proc/sysrq-trigger に 'b' を書き込む


Linux限定ですが、下記で紹介したように、/proc/sysrq-trigger に 'b' を書き込むと、即座にシステムがリブートされます。

linux強制再起動 − shutdownコマンドでもダメな時の再起動手段 パソコン鳥のブログ/ウェブリブログ

ここでのリブートは、上記の「キーボードリセットによる方法」「PCIポートへのアクセスによる方法」の方法によって、ハードウェアリセットが実施されます。

この方法も、カーネルソースの arch/x86/kernel/reboot.c 、arch/x86_64/kernel/reboot.c のnative_machine_emergency_restart()関数が呼ばれます。


参考


ISAPnP-HOWTO
Realtime Windows Now: PCの強制リセット手法
[PATCH] reboot: perform warm/cold reset correctly for CF9 type | Linux | Kernel

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(1件)

タイトル (本文) ブログ名/日時
linux強制再起動 − コマンドでウォームリスタート・コールドリスタートする
コマンドでウォームリスタート・コールドリスタートする方法です。 rootでコマンドを実行します。 ...続きを見る
パソコン鳥のブログ
2016/04/14 20:59

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
ハードウェアリセット方法 パソコン鳥のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる