플로피 이미지 파일의 GRUB 사용하여 Boch에서 자신의 커널을 시작하십시오.

StackOverflow https://stackoverflow.com/questions/5058545

문제

기본적으로 여기에있는 지침을 따랐습니다. http:///sig9.com/bochs-grub BIOS가 GRUB를 시작할 수있는 맨 손으로 이미지 파일을 만듭니다.

문제는 다음과 같습니다.

  • 작성중인 커널은 http : // www를 사용하여 32 비트가됩니다. jamesmolloy.co.uk/tutorial_html/index.html 시작을 위해 그러나 내 호스트 (물리적) 컴퓨터는 다음과 같이 구성된 Boch가있는 x86_64입니다.

    // 구성 --prefix= / usr - enable-vbe --without-wx - enable-cpu-level= 6 \ - enable-fpu \ enable-plugins - enable-x86-64 - enable-smp \ - enable-long-phy-address - enable-debugger - enable-disasm --enable-debugger-gui \ - enable-raw-serial - enable-vmx - enable-x86-debugger --enable-iodebug

    다음 문제를 해결 한 후에도이 작업이 작동하지 않는지 모르겠습니다.

    • Bochs를 부팅 할 때 GRUB 쉘이 시작되지 않습니다.

      모든 것이 있습니다 :

      00000000000i[SYS  ] bx_pc_system_c::Reset(HARDWARE) called
      00000000000i[CPU0 ] cpu hardware reset
      00000000000i[APIC0] allocate APIC id=0 (MMIO enabled) to 0x00000000fee00000
      00000000000i[CPU0 ] CPU[0] is the bootstrap processor
      00000000000i[CPU0 ] CPUID[0x00000000]: 00000003 756e6547 6c65746e 49656e69
      00000000000i[CPU0 ] CPUID[0x00000001]: 00000f20 00000800 00002020 078bfbff
      00000000000i[CPU0 ] CPUID[0x00000002]: 00410601 00000000 00000000 00000000
      00000000000i[CPU0 ] CPUID[0x00000003]: 00000000 00000000 00000000 00000000
      00000000000i[CPU0 ] CPUID[0x00000004]: 00000000 00000000 00000000 00000000
      00000000000i[CPU0 ] CPUID[0x80000000]: 80000008 00000000 00000000 00000000
      00000000000i[CPU0 ] CPUID[0x80000001]: 00000000 00000000 00000101 2a100800
      00000000000i[CPU0 ] CPUID[0x80000002]: 20202020 20202020 20202020 6e492020
      00000000000i[CPU0 ] CPUID[0x80000003]: 286c6574 50202952 69746e65 52286d75
      00000000000i[CPU0 ] CPUID[0x80000004]: 20342029 20555043 20202020 00202020
      00000000000i[CPU0 ] CPUID[0x80000006]: 00000000 42004200 02008140 00000000
      00000000000i[CPU0 ] CPUID[0x80000007]: 00000000 00000000 00000000 00000000
      00000000000i[CPU0 ] CPUID[0x80000008]: 00003028 00000000 00000000 00000000
      00000000000i[PLGIN] reset of 'unmapped' plugin device by virtual method
      00000000000i[PLGIN] reset of 'biosdev' plugin device by virtual method
      00000000000i[PLGIN] reset of 'speaker' plugin device by virtual method
      00000000000i[PLGIN] reset of 'extfpuirq' plugin device by virtual method
      00000000000i[PLGIN] reset of 'iodebug' plugin device by virtual method
      00000000000i[PLGIN] reset of 'ioapic' plugin device by virtual method
      00000000000i[PLGIN] reset of 'keyboard' plugin device by virtual method
      00000000000i[PLGIN] reset of 'harddrv' plugin device by virtual method
      00000000000i[PLGIN] reset of 'serial' plugin device by virtual method
      00000000000i[PLGIN] reset of 'parallel' plugin device by virtual method
      00000000000i[XGUI ] [x] Mouse off
      00000000000i[     ] set SIGINT handler to bx_debug_ctrlc_handler
      Next at t=0
      (0) [0x00000000fffffff0] f000:fff0 (unk. ctxt): jmp far f000:e05b         ; ea5be000f0
      
      .

      누구든지 내가 무엇을 잘못할 수 있는지 어떤 생각이 있습니까?

      http://sig9.com/bochs-grub 의 지침을 따르면 의심합니다. 이 효과는 32 비트 에뮬레이트 된 시스템으로 가정 된 floppy.img에 대한 호스트의 64 비트 그랩 바이너리를 복사합니다.

도움이 되었습니까?

해결책

That last line is the debugger printing out the current line of code. Press 'c' and hit enter, and it should start running. As for using 32 bit, it should work as x86-64 processors will run in protected mode just like any other x86 processor.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top