Linux Install Memo

サーバー管理者によるLinux関連ソフトのインストールメモ

Home » □Linux-2.2 系でリブートができないよ

□Linux-2.2 系でリブートができないよ

Linux-2.2 系でリブートしようとして shutdown -r now とか、キーボードから
CTRL-ALT-DEL をしても、

:
:
Rebooting
Restart system
disabling symmetric IO mode … done

となってリブートしないことがあります。2.4系では見たことが無いのです
が、2.4系とリブートシーケンスを見比べてみると、SMP(2個以上のCPU搭載
時)のリブート信号を落とす前の APIC 関連の処理が違います。

2.2系の方はすっきりしているのですが、どうもリセット信号を叩いても、
ちゃんとリセットできないようです。APICを初期化?してしまっているから
かも。

で、別にその辺まで来ると後はリセットボタンを押すだけ、と同じ状態なので
強制リセットのルーチンを頂きましょう。

/usr/src/linux/arch/i386/kernel/process.c

> void machine_restart(char * __unused)
> {
> #if CONFIG_SMP
> /*
> * turn off the IO-APIC, so we can do a clean reboot
> */
> init_pic_mode();
>
> #endif
>
> if(!reboot_thru_bios) {
> /* rebooting needs to touch the page at absolute addr 0 */
> :
> :

という関数の所で、次のようにSMPだったら強制的にリセットしてしまう
ようにしましょう。

> void machine_restart(char * __unused)
> {
> #if CONFIG_SMP
> /*
> * turn off the IO-APIC, so we can do a clean reboot
> */
> init_pic_mode();
>
> machine_real_restart(jump_to_bios, sizeof(jump_to_bios));
> #endif
>
> if(!reboot_thru_bios) {
> /* rebooting needs to touch the page at absolute addr 0 */
> :
> :

本来は、どうせこの関数を抜けることなくリブートするわけですから。(^^;

Name of author

Name: admin

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です