<p><i>From <tt>src/README</tt></i>:</p>
<pre>
+</pre>
+systemtap: a linux trace/probe tool
+
+Visit the project web site at <http://sources.redhat.com/systemtap>,
+for documentation and mailing lists for developers and users.
+
+This is free software.
+See the COPYING file for redistribution/modification terms.
+See the INSTALL file for generic build instructions.
+
Prerequisites:
- linux kernel with kprobes (mainline 2.6.11+ or backport)
Installation steps:
-- Install the kernel-debuginfo, kernel-[smp-]devel, gcc packages
+- Install the kernel-debuginfo, kernel-[smp-]devel, gcc packages.
- Install the systemtap package, if one already exists.
Build steps:
-- Install the kernel-debuginfo, kernel-[smp-]devel, gcc packages.
-- Download the latest elfutils snapshot
+- Install the kernel-debuginfo, kernel-[smp-]devel, gcc packages
+ (or see below if you are building your own kernels from source).
+- Download the latest elfutils snapshot:
ftp://sources.redhat.com/pub/systemtap/elfutils/elfutils-NNNN.tar.gz
ftp://sources.redhat.com/pub/systemtap/elfutils/elfutils-portability.patch
- Untar the snapshot in some new directory; apply patch (don't ask, long story)
-- Download systemtap sources snapshot or from CVS
+- Download systemtap sources snapshot or from CVS:
ftp://sources.redhat.com/pub/systemtap/snapshots/
(or)
cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/systemtap login
# enter "anoncvs" as the password
cvs -d :pserver:anoncvs@sources.redhat.com:/cvs/systemtap co -c
-- Build it
+- Build it:
cd src
./configure --with-elfutils=PATCHED-ELFUTILS-DIR [other autoconf options]
make all check
make install
-</pre>
+Tips:
+
+- Systemtap looks for the debug info in these locations:
+ /boot/vmlinux-`uname -r`
+ /usr/lib/debug/lib/modules/`uname -r`/vmlinux
+ /lib/modules/`uname -r`/vmlinux
+
+Building a kernel.org kernel:
+
+- Build the kernel using your normal procedures. Enable
+ CONFIG_DEBUG_INFO, CONFIG_KPROBES, and optionally CONFIG_RELAY.
+- Boot into the kernel.
+- Make sure the large unstripped kernel image 'vmlinux' from your
+ build can be found by systemtap (see above) You can just symlink
+ it to one of these locations.
+- Symlink your source directory to these two places, though systemtap
+ does not at present use such source code.
+ - /usr/src/kernels/`uname -r`
+ - /lib/modules/`uname -r`/source
+- Symlink your build directory to here:
+ - /lib/modules/`uname -r`/build
+- For example, if your kernel source is in /home/me/linux/2.6.17-rc6
+ and you build your kernel in the source directory, you would do
+ this (be sure you are running the right kernel or `uname -r`
+ will be wrong:)
+ ln -s /home/me/linux/2.6.17-rc6/vmlinux /boot/vmlinux-`uname -r`
+ mkdir /usr/src/kernels (if needed)
+ ln -s /home/me/linux/2.6.17-rc6 /usr/src/kernels/`uname -r`
+ mkdir /lib/modules/`uname -r` (if needed)
+ ln -s /home/me/linux/2.6.17-rc6 /lib/modules/`uname -r`/build
+ ln -s /home/me/linux/2.6.17-rc6 /lib/modules/`uname -r`/source
</td>
</tr>
</table>