wiki:Dev/KernelHack

Version 16 (modified by mitty, 12 years ago) (diff)

--

links

how to build

how to enhancement kernel

debugging Linux Kernel with VMware Workstation

  • http://wiki.osdev.org/VMWare
    • Guest debugging
      • These options are valid in Workstation 6.0+, and should be set in the virtual machine's .vmx file.
        debugStub.listen.guest32 = "TRUE"
        debugStub.listen.guest64 = "TRUE"
        
      • If using these options, Workstation prints a message "VMware Workstation is listening for debug connection on port 8832." into the vmware.log file. Start a GDB session (using a copy of your kernel that includes debug information), then:
        target remote localhost:8832
        
      • Standard gdb commands work in this mode (e.g. printing memory, backtrace). Note that this is a debug stub attached to the KERNEL, not a userspace program.
      • Other useful options:
        debugStub.listen.guest32.remote = "TRUE" # Allows debugging from a different computer / VM instead of localhost. # The IP for remote debugging will be that of the host.
        debugStub.listen.guest64.remote = "TRUE" # Same, but for 64-bit code
        monitor.debugOnStartGuest32 = "TRUE" # Breaks into debug stub on first instruction (warning: in BIOS!) # This will halt the VM at the very first instruction at 0xFFFF0, you could set the next breakpoint to break *0x7c00 to break when the bootloader is loaded by the BIOS
        debugStub.hideBreakpoints = "TRUE" # Allows gdb breakpoints to work
        bios.bootDelay = "3000" # Delay booting the BIOS code.
        
  • windellはVistaとのデュアルブートなため、UTCではなくlocal timeでRTCが設定されている
    • Ubuntu インストール時に、UTCにすると時計が9時間進む

x86

x64

  • viola0[1-6]でビルドする場合、そのままではx86_64のカーネルが作られるので注意