Changes between Version 15 and Version 16 of Dev/KernelHack


Ignore:
Timestamp:
Sep 19, 2012 11:15:50 PM (12 years ago)
Author:
mitty
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Dev/KernelHack

    v15 v16  
    22[[TitleIndex(Dev/KernelHack,format=group)]] 
    33 
     4 = links = 
     5 
     6 * [http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/SystemTap_Beginners_Guide/topsyssect.html 4.3.5. Tracking Most Frequently Used System Calls] 
     7 
     8 == how to build == 
     9 * https://help.ubuntu.com/community/Kernel/Compile 
     10  * 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. 
     11 * [http://d.hatena.ne.jp/haradats/20070819 VMware上のUbuntuで最新カーネルをビルドする - よそ行き顔で] 
     12 > * パッケージの導入 
     13 >  * build-essential(これがなくては/usr/includeすらない) 
     14 >  * kernel-package 
     15 >  * libncurses5-dev(make menuconfigを行うために必要。本来kernel-packageに入っていると良いような気がする) 
     16 >  * subversion, subversion-tools(TOMOYOのレポジトリの参照用) 
     17 >  * quilt(もともとはAndrew Mortonが作成したパッチ管理用ツール。自分で使うことはないだろうけれども一応。依存関係でgawkとdiffstatが導入された) 
     18 > もし、rootでコンパイルしたくなければfakerootもあると良い。 
     19 * [http://d.hatena.ne.jp/adsaria/20081104/1225766991 Ubuntuのカーネル再構築 - adsaria mood] 
     20 * [http://d.hatena.ne.jp/m-bird/20110805/1312507198 Linuxカーネルの再構築方法@Debian Squeeze - m-birdとFreeBSDの同棲日記] 
     21 
     22 == how to enhancement kernel == 
     23 
     24 * [http://hekimian-williams.com/?p=20 Adding A System Call To Linux (Fedora 9) - Cory’s Place] Fedora 9 kernel 2.6.26 (i686) 
     25 * [http://hira-consulting.com/wiki/ ようこそ - LinuxKernelHackJapan] 本サイトは、Linuxカーネル内部情報(総3,911ページ)の提供を目的としている。 
     26 * [http://www.geocities.jp/dinone_01/linux_driver.html Linux ドライバ作成 初心者編] 
     27 * http://f42.aaa.livedoor.jp/~hassaku/crswikicrs/ 
     28 > * LinuxDeviceDriver 
     29 * [http://www.hakodate-ct.ac.jp/~tokai/tokai/research/kmod.html カーネルモジュール作成メモ] 
     30 * [http://www.ibm.com/developerworks/jp/linux/library/l-system-calls/ Linux システム・コールを使用したカーネル・コマンド] 
     31 
    432 = debugging Linux Kernel with VMware Workstation = 
     33 * http://wiki.osdev.org/VMWare 
     34 > * Guest debugging 
     35 >   * These options are valid in Workstation 6.0+, and should be set in the virtual machine's .vmx file. 
     36 > {{{ 
     37 > debugStub.listen.guest32 = "TRUE" 
     38 > debugStub.listen.guest64 = "TRUE" 
     39 > }}} 
     40 >   * 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: 
     41 > {{{ 
     42 > target remote localhost:8832 
     43 > }}} 
     44 >   * 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. 
     45 >   * Other useful options: 
     46 > {{{ 
     47 > 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. 
     48 > debugStub.listen.guest64.remote = "TRUE" # Same, but for 64-bit code 
     49 > 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 
     50 > debugStub.hideBreakpoints = "TRUE" # Allows gdb breakpoints to work 
     51 > bios.bootDelay = "3000" # Delay booting the BIOS code. 
     52 > }}} 
     53 
    554 * windellはVistaとのデュアルブートなため、UTCではなくlocal timeでRTCが設定されている 
    655  * Ubuntu インストール時に、UTCにすると時計が9時間進む 
     
    3180 * [http://blog.zhangsen.org/2008/12/how-to-add-syscall-on-x8664.html Jesse's Blog: how to add syscall on x86_64] 
    3281 * [http://forum.soft32.com/linux/system-call-implementation-x86_64-ftopict344646.html system call implementation for x86_64] 
    33  
    34  = links = 
    35  * https://help.ubuntu.com/community/Kernel/Compile 
    36   * 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. 
    37  * [http://d.hatena.ne.jp/haradats/20070819 VMware上のUbuntuで最新カーネルをビルドする - よそ行き顔で] 
    38  > * パッケージの導入 
    39  >  * build-essential(これがなくては/usr/includeすらない) 
    40  >  * kernel-package 
    41  >  * libncurses5-dev(make menuconfigを行うために必要。本来kernel-packageに入っていると良いような気がする) 
    42  >  * subversion, subversion-tools(TOMOYOのレポジトリの参照用) 
    43  >  * quilt(もともとはAndrew Mortonが作成したパッチ管理用ツール。自分で使うことはないだろうけれども一応。依存関係でgawkとdiffstatが導入された) 
    44  > もし、rootでコンパイルしたくなければfakerootもあると良い。 
    45  * [http://d.hatena.ne.jp/adsaria/20081104/1225766991 Ubuntuのカーネル再構築 - adsaria mood] 
    46  * http://wiki.osdev.org/VMWare 
    47  > * Guest debugging 
    48  >   * These options are valid in Workstation 6.0+, and should be set in the virtual machine's .vmx file. 
    49  > {{{ 
    50  > debugStub.listen.guest32 = "TRUE" 
    51  > debugStub.listen.guest64 = "TRUE" 
    52  > }}} 
    53  >   * 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: 
    54  > {{{ 
    55  > target remote localhost:8832 
    56  > }}} 
    57  >   * 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. 
    58  >   * Other useful options: 
    59  > {{{ 
    60  > 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. 
    61  > debugStub.listen.guest64.remote = "TRUE" # Same, but for 64-bit code 
    62  > 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 
    63  > debugStub.hideBreakpoints = "TRUE" # Allows gdb breakpoints to work 
    64  > bios.bootDelay = "3000" # Delay booting the BIOS code. 
    65  > }}} 
    66  * [http://d.hatena.ne.jp/m-bird/20110805/1312507198 Linuxカーネルの再構築方法@Debian Squeeze - m-birdとFreeBSDの同棲日記] 
    67  * [http://www.ibm.com/developerworks/jp/linux/library/l-system-calls/ Linux システム・コールを使用したカーネル・コマンド] 
    68  * [http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/SystemTap_Beginners_Guide/topsyssect.html 4.3.5. Tracking Most Frequently Used System Calls] 
    69  * [http://hekimian-williams.com/?p=20 Adding A System Call To Linux (Fedora 9) - Cory’s Place] Fedora 9 kernel 2.6.26 (i686) 
    70  * [http://hira-consulting.com/wiki/ ようこそ - LinuxKernelHackJapan] 本サイトは、Linuxカーネル内部情報(総3,911ページ)の提供を目的としている。 
    71  * [http://www.geocities.jp/dinone_01/linux_driver.html Linux ドライバ作成 初心者編] 
    72  * http://f42.aaa.livedoor.jp/~hassaku/crswikicrs/ 
    73  > * LinuxDeviceDriver 
    74  * [http://www.hakodate-ct.ac.jp/~tokai/tokai/research/kmod.html カーネルモジュール作成メモ]