提案/電源管理/カーネル落ちを調査


Top / 提案 / 電源管理 / カーネル落ちを調査

このページは何か? by ひげぽん

カーネルが落ちるようになったので調べます。
電源周りが怪しいのでこのページ名にしていますがもし違ったらリネームします。

状況

qemuで以下のエラーで落ちるようになった。

invalid tss
EAX=00000000 EBX=00000000 ECX=00000000 EDX=00000000
ESI=00000000 EDI=00000000 EBP=f0000000 ESP=f0000000
EIP=a0000000 EFL=00000202 [-------] CPL=3 II=0 A20=1 HLT=0
ES =0033 00000000 ffffffff 00cff300
CS =002b 00000000 ffffffff 00cffa00
SS =003b 00000000 ffffffff 00cff200
DS =0033 00000000 ffffffff 00cff300
FS =0000 00000000 0000ffff 00000000
GS =0000 00000000 0000ffff 00000000
LDT=0000 00000000 0000ffff 00008000
TR =0000 00000000 00000000 00000000
GDT=     00200040 0000ffff
IDT=     00214a30 000007ff
CR0=e0000011 CR2=a0000000 CR3=002c8000 CR4=00000000
CCS=00000000 CCD=00000001 CCO=EFLAGS
FCW=037f FSW=0000 [ST=0] FTW=00 MXCSR=00001f80
FPR0=0000000000000000 0000 FPR1=0000000000000000 0000
FPR2=0000000000000000 0000 FPR3=0000000000000000 0000
FPR4=0000000000000000 0000 FPR5=0000000000000000 0000
FPR6=0000000000000000 0000 FPR7=0000000000000000 0000
XMM00=00000000000000000000000000000000 XMM01=00000000000000000000000000000000
XMM02=00000000000000000000000000000000 XMM03=00000000000000000000000000000000
XMM04=00000000000000000000000000000000 XMM05=00000000000000000000000000000000
XMM06=00000000000000000000000000000000 XMM07=00000000000000000000000000000000

調査

回避する方法は分かった。
GDTUtil.cppで以下をコメントアウトすれば良い

    if( g_apmInfo->isSupported )
    {
//         /* APM 32bit CS */
//         setSegDescExt(&g_gdt[8], g_apmInfo->cs32<<4, (g_apmInfo->cs32_len-1),
//                             SEGMENT_PRESENT | SEGMENT_DPL0 | 0x10 | 0x0A, 0xC0);
//         /* APM 16bit CS */
//         setSegDescExt(&g_gdt[9], g_apmInfo->cs16<<4, (g_apmInfo->cs16_len-1),
//                             SEGMENT_PRESENT | SEGMENT_DPL0 | 0x10 | 0x0A, 0x80);
//         /* APM DS */
//         setSegDescExt(&g_gdt[10], g_apmInfo->ds<<4, (g_apmInfo->cs32_len-1),
//                             SEGMENT_PRESENT | SEGMENT_DPL0 | 0x10 | 0x02, 0xC0);
     }

qemuでは isSupported = 0という値を持っているように見えるんだけどここをコメントアウトすると落ちなくなる。
どういう論理だろうか。見落としがありそう。
とりあえず落ちない状態で commit しておきました。

コメント

最新の1000件を表示しています。 コメントページを参照

お名前:
  • secondbootに手を入れてAPM BIOSの返り値を調べてみました。⇒提案/電源管理/カーネル落ちを調査/secondboot -- Tino 2006-09-22 (金) 12:11:55
    • お疲れ様です。詳細は作っていただいたページにて。 -- ひげぽん 2006-09-23 (土) 00:15:08
  • cygwinでは落ちる。 -- Yume 2006-09-21 (木) 11:46:57
  • こっちではちゃんと動くのに違う環境だと動かないふしぎ。cygwinでも試してみます。 -- Yume 2006-09-21 (木) 09:10:17
    • ちなみにsecondbootはビルドしていますか?それともスキップしてデフォルトのsecondboot.asmをお使いでしょうか。 -- ひげぽん 2006-09-21 (木) 21:34:07

MENU

now: 4

リンク


最新の20件
2018-10-07 2018-09-20 2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-05-29 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 2661, today: 1, yesterday: 0

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:03 (3888d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.025 sec.