wiki:Dev/KernelHack

Version 9 (modified by mitty, 13 years ago) (diff)

--

setup VM

  • windellはVistaとのデュアルブートなため、UTCではなくlocal timeでRTCが設定されている
    • Ubuntu インストール時に、UTCにすると時計が9時間進む

x86

x64

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

links

  • https://help.ubuntu.com/community/Kernel/Compile
    • This page does NOT describe how to build upstream kernels from kernel.org. This is how to rebuild the actual Ubuntu kernel starting from source.
  • VMware上のUbuntuで最新カーネルをビルドする - よそ行き顔で
    • パッケージの導入
      • build-essential(これがなくては/usr/includeすらない)
      • kernel-package
      • libncurses5-dev(make menuconfigを行うために必要。本来kernel-packageに入っていると良いような気がする)
      • subversion, subversion-tools(TOMOYOのレポジトリの参照用)
      • quilt(もともとはAndrew Mortonが作成したパッチ管理用ツール。自分で使うことはないだろうけれども一応。依存関係でgawkとdiffstatが導入された)

    もし、rootでコンパイルしたくなければfakerootもあると良い。

  • Ubuntuのカーネル再構築 - adsaria mood
  • 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.
        
  • Linuxカーネルの再構築方法@Debian Squeeze - m-birdとFreeBSDの同棲日記
  • Linux システム・コールを使用したカーネル・コマンド
  • 4.3.5. Tracking Most Frequently Used System Calls