I want to use profiling tools in linux. I see some information say Oprofile is not support in Ubuntu 12.04 and the alternate is perf. So I try to install perf.

I installed linux-tools-common, linux-base and linux-tools.

Then I type perf in the terminal and it returns:

perf not found for kernel 3.12.6
You may need to install linux-tools-3.12.6-3.12.6

But I could not install either linux-tools-3.12.6-3.12.6 (I think it's a wrong name) or linux-tools-3.12.6.

Is it a wrong way to install and use perf in that way, or is it the kernel problem(the kernel is compiled by myself)?

  • You appear to have installed a custom kernel. 3.12 is not in Ubuntu official repositories. This means you'll have to install the tools yourself or to revert the custom kernel installation. Please provide more information on your custom kernel (how did you install it?) Please edit your question when doing so.
    – gertvdijk
    Dec 24, 2013 at 16:20
  • Thank you for the reply! I updated the building steps. I think I just upgraded the kernel without changing the basic ubuntu settings. Dec 26, 2013 at 1:49
  • I am sorry, Braiam. I don't understand your meaning. I don't have any answer of installing perf on custom kernel. I edit my question to add the information of how I building my custom kernel due to gertvdijk asking. You mean I should add the information below the answer section? But what do you mean by editing my question? Dec 30, 2013 at 2:49

2 Answers 2


You may need to build the tools since you are using a custom kernel. If you want to use linux tools from the repositories, you need to use the kernel provided by Ubuntu. Linux tools checks your kernel version and if it don't match it's own it will not run.

  • I see! I try to use perf in my original ubuntu kernel and it works. So isn't there any way to use perf in custom kernel? Dec 26, 2013 at 2:05
  • @user2002993 compile it yourself.
    – Braiam
    Mar 16, 2014 at 17:14
  • @Braiam This is a very late comment, but would you mind adding some detail about where to find the source for linux-tools (eg. in the kernel source) and how to compile it? (eg. run make in linux/tools/perf) etc? I'd make for a more complete answer.
    – ffledgling
    Apr 30, 2018 at 14:36
  • 2
    @ffledgling unix.stackexchange.com/q/92957/41104
    – Braiam
    Apr 30, 2018 at 14:41

On ubuntu "perf" is a shell script that calls a kernel specific perf binary.

But that's not actually needed, perf is compatible. Just remove the wrapper from /usr/bin and copy any of the perf binaries from ./lib/linux-tools* to it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.