Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
KernelDevelopment
Edit
PageHistory
Diff
Info
LikePages
!! Tools for LinuxKernel development * [Ostra] * [Sparse] * [Git]; see See KernelDevelopmentWithGit * [OProfile] !! Resources * KernelDevelopmentDebugging * [Linux kernel source cross reference | http://lxr.linux.no/] * [Hacking the Linux 2.6 kernel, Part 1: Getting ready | http://www-128.ibm.com/developerworks/linux/edu/l-dw-linux-kernelhack1-i.html] * [Hacking the Linux 2.6 kernel, Part 2: Making your first hack | http://www-128.ibm.com/developerworks/linux/edu/l-dw-linux-kernelhack2-i.html] * [Linux Kernel in a Nutshell | http://www.kroah.com/lkn/] !! Some notes You can use [DistCC] or [ccache | http://ccache.samba.org/] (or both) to speed up compilation. The main trick is to only make ONE target on the command line. i.e. don't try and do this <tt>make -j6 CC=distcc all modules_install</tt> or else the build will get screwed up and the whole thing will get remade each time. Instead do this: <verbatim> make -j6 CC=distcc all make modules_install INSTALL_MOD_PATH=~/tmp </verbatim> To update the .config file with questions for new options do a <tt>make oldconfig</tt> To output build files to another directory (so you don't mix source and object code) do <tt>make O=outputdir all</tt> To make files in just one source code directory do <tt>make dir</tt>. To make the modules in a directory and link them do <tt>make M=dir</tt>. Remember to put a trailing slash after the directory name. NB The above two may require you to have built your config etc first. To enable extra error checks when compiling do <tt>make EXTRA_CFLAGS=-W</tt>. A script to copy a new [LinuxKernel] to remote machines:'''' <verbatim> #! /bin/bash # syntax m machine_num directory version H=/home/ian SRC=$H/linuxsrc/$2 VER=$3 rm $H/tmp/lib/modules/$VER/build rm $H/tmp/lib/modules/$VER/source rsync $SRC/System.map root@jandi$1:/boot/System.map-$VER rsync $SRC/arch/i386/boot/bzImage root@jandi$1:/boot/vmlinuz-$VER rsync $SRC/vmlinux root@jandi$1:/boot/vmlinux-$VER rsync -av $H/tmp/lib/modules/$VER root@jandi$1:/lib/modules </verbatim> It has also been suggested to use kgdb with qemu and/or kgdboe to help with debugging. ---- CategoryKernel
15 pages link to
KernelDevelopment
:
GrubNotes
Sparse
LinuxKernel
MeetingTopics.2005-10-31
BitKeeper
ArnaldoMelo
RealSoonNow
KernelDevelopmentDebugging
OProfile
DistCC
Ostra
KernelNotes
KernelDevelopmentWithGit
DCCP
IanMcDonald