[n00b Guide]Compiling Upstream Kernel with CPU Optimizations


Recommended Posts

OK So below is my guide for you to all compile the latest Linux Kernel from https://www.kernel.org/ built with your CPU in mind.

This is intended for guys like me who were curious about this kind of thing, Meant to be as simple as possible so you can practically copy and paste the commands to your terminal.

  Quote

*All the following you MUST be run as root. on Ubuntu

sudo -su[/CODE]

*This works on the latest versions of Ubuntu.

First lets install all the pre reqs.

[CODE]sudo apt-get install kernel-package fakeroot build-essential ncurses-dev[/CODE]

After you have installed all the pre reqs, You need to set your optimizations.

To check your processor ...

[CODE]

cat /proc/cpuinfo


[/CODE]

In your terminal. Read this and pick out your CPU Type and Adjust Accordingly. For Mine it is an i7 :D

http://gcc.gnu.org/o...64-Options.html

[CODE]export CONCURRENCY_LEVEL=8
export CFLAGS="-march=corei7-avx -O3 -pipe"
export CXXFLAGS="$CFLAGS"[/CODE]

I will explain these:

CONCURRENCY_LEVEL, for some programs, mainly the program we will be using to build the kernel the "debian" way, it is capable of using multiple cores, with this variable set to the number of cores of your CPU, it will use all of them when compiling the kernel.

CHOST, this variable is for gcc, the compiler used in Linux. This line tells gcc what architecture to build for. this is currently set for Intel/AMD x86_64 cpu's and 64 bit distro's, if you are building for a 32 bit distro, use CHOST="i686-pc-Linux-gnu", instead. This flag isn't always needed, you can exclude it if you want. * I have removed this as its not needed

CFLAGS, these are compile flags, mainly for optimization for the binary. -march, the family of your CPU, latest versions of GCC can auto detect these features, setting it to native is suitable in most cases. Setting -march allows GCC to compile the code to take advantage of any feature of your CPU. -O2 and -pipe, are another optimization flag. There are more flags, but these are "generic" ones used, that offer a decent amount of benefits, I'm afraid going into more detail, is beyond the scope of this guide.

CXXFLAGS, extra flags for GCC, typically you can set them to CFLAGS, which has be done here.

Keep the terminal open, as everything you will be doing will require it. (if you close the terminal, you will need to export those variables again.)

Next Make a tmp directory. This will be used to unpack and build the kernel. Wherever you like. A suggestion is....

[CODE]mkdir ~/tmp
cd ~/tmp[/CODE]

Download the latest Kernel from Kernel.org.

[CODE]wget https://www.kernel.org/pub/linux/kernel/v3.x/testing/linux-3.9-rc8.tar.xz[/CODE]

Unpack it....

[CODE]tar xvf linux-3.9-rc8.tar.xz[/CODE]

Move into your directory and build your config file. Now here I suggested building your default one. I have heavily modified mine and taken alot of the stuff out to make it as stream lined as possible. You will be asked a lot of questions, How many depends on what version you are building. If in doubt, pick the default answer (i.e. hit enter). If really in doubt, use post here.

[CODE]cd linux-3.9-rc8/
cat /boot/config-`uname -r`>.config
make oldconfig
make-kpkg clean[/CODE]

For the more adventerous amongst you, I suggest you familiarize yourself with the Menu Config. If I remember I will post my .config file for you to download. However it is built for a Sony VAIO Laptop. So... if you want to make any specific changes to the kernel (e.g. add support for certain devices) ...

[CODE]make menuconfig[/CODE]

Then the fun part. Building the kernel.

[CODE]time fakeroot make-kpkg -j8 --initrd kernel_image kernel_header[/CODE]

*As usual 8 is the number of threads you wish to launch -- make it equal to the number of cores that you have for optimum performance.

If you get it under 30mins on an i7 You are doing well. Sit back and enjoy...

After all the good stuff, Install your new shiny built kernel.

[CODE]
cd ..
sudo dpkg -i linux-image-*.deb
sudo dpkg -i linux-headers-*.deb
[/CODE]

You should also see it update the GRUB Boot loader so it boots right into your new kernel. Reboot and enjoy.

You can see here on how to test your performance...https://www.neowin.net/forum/topic/1148290-cpu-optimizations/

Further Reading ...

http://freecode.com/...myths-and-facts

  Quote
v1.0 - Created :)
  On 30/04/2013 at 10:34, ChuckFinley said:

Any chance we could make this a Sticky?

I think you would need to PM a mod for that... or a mod could visit this thread and see your comment, but there are not may mods who visit this subforum AFAIK. While useful, I don't think that this guide should be made a sticky. It would be nice to move it to the "HOW TO & FAQ Guides" subforum of this subforum though; then it would be with all of the other useful guides and easier to find in the future (which I think was your goal with making it a sticky).

  • Like 2

Good work Chuck, hopefully this will help people who often distro jump just for a newer kernel :)

I agree with xorangekiller not really worthy of a sticky, but definitely should be moved to the HowTo subforum.

  On 30/04/2013 at 15:41, xorangekiller said:

I think you would need to PM a mod for that... or a mod could visit this thread and see your comment, but there are not may mods who visit this subforum AFAIK. While useful, I don't think that this guide should be made a sticky. It would be nice to move it to the "HOW TO & FAQ Guides" subforum of this subforum though; then it would be with all of the other useful guides and easier to find in the future (which I think was your goal with making it a sticky).

  On 30/04/2013 at 18:43, sean.ferguson said:

Good work Chuck, hopefully this will help people who often distro jump just for a newer kernel :)

I agree with xorangekiller not really worthy of a sticky, but definitely should be moved to the HowTo subforum.

Yeah makes sense!

  On 30/04/2013 at 15:49, ir0nw0lf said:

OP, 2nd link in your post is borked... "http://gcc.gnu.org/o...64-Options.html"

For some reason I cant edit it. But this is the link.

http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html

  • 3 months later...
  • 7 months later...
  • 4 months later...

way too complex and i suspect no one interested in kernel updates would go this long and uneasy to follow tutorial.

either use the mainline ubuntu ppa kernels where you just need to download and dpkg 3 files then reboot, or someone finally makes the kernelpatcher tool which was running fine till the 2.6 kernels up2date....

 

i think especially stuff like kernel update needs to be implemented in an easy usable tool. no one has an interest to copy and paste endless lines into the terminal and even additionally open links in his webbrowser.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Use this popular dating app? Hackers may have leaked your name, ID, and private photos by David Uzondu Image via Tea A dating app has been going viral lately (you have probably seen it on X), it's called "Tea," and it lets women anonymously post pictures of men to share dating "red flags." The app's marketing claims this is all for "safety," and you can see it on the company's website, where it states its mission is "to create a safer dating environment for women." In case you're confused and need a visual explanation, the following image pretty much sums it up (click to enlarge): Image: Tea's Website Tea has been around since 2023, but the surrounding controversy helped its recent rise to the top of the app charts. Now the platform has suffered its first notable breach courtesy of users from 4chan. This breach stemmed from a classic, sloppy development mistake. The Tea developers left a backend database wide open on Google's Firebase platform. Firebase allows for quick development, but its default security settings can be disastrously permissive if they are not locked down before an app goes live. Data in Firebase is stored in things called "buckets," which are just cloud storage folders. The leaked bucket in Tea's case contained the exact verification data the app requires from its users: selfies and ID photos, which it needs to confirm that users are women. It did not take long for users on 4chan to find this open door and walk right in. One user claimed, "Yes, if you sent Tea App your face and driver's license, they doxxed you publicly!" Another user claimed they downloaded as many as 3000 images before they got rate-limited by the server. Image: 404Media They described the trove of personal information as being "raw and uncensored." As per the Terms of Use (via 404Media) before you sign up for Tea, apart from selfie and ID photos, you are required to submit your location and birth date. All of this was reportedly accessible. 404 Media says that for a while, anyone with the right URL could view a list of user files. That page has since been locked down and now returns a "Permission denied" error, likely because the developers finally became aware of the leak. Tea has stellar reviews on both the Play Store and the App Store from users who see it as a more secure version of the "Are We Dating the Same Guy?" Facebook groups.
    • I always use O&O tools, it's a German software company and they release bunch of cool free tools like O&O Shutup to disable Windows crap or O&O AppBuster that allows you to remove apps that Windows doesn't allow to remove. Really good and reliable tools.
    • Ergh all the additional admin crap is gonna kill smaller UK forums All to please the religious puritans that are too illiterate to set up parental controls
    • I assume all the UK readers here are using a VPN now? Seriously who the hell is submitting their ID or doing a face scan to watch porn?
  • Recent Achievements

    • First Post
      Electronic Person earned a badge
      First Post
    • Week One Done
      CyberCeps666 earned a badge
      Week One Done
    • Very Popular
      d4l3d earned a badge
      Very Popular
    • Dedicated
      Stephen Leibowitz earned a badge
      Dedicated
    • Dedicated
      Snake Doc earned a badge
      Dedicated
  • Popular Contributors

    1. 1
      +primortal
      603
    2. 2
      ATLien_0
      234
    3. 3
      Xenon
      159
    4. 4
      neufuse
      131
    5. 5
      +FloatingFatMan
      124
  • Tell a friend

    Love Neowin? Tell a friend!