[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.

*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

v1.0 - Created :)

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.

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).

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!

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

    • PDF-XChange Editor 11.0.1.0 by Razvan Serea PDF-XChange Editor is a comprehensive PDF editor that allows you to create, view, edit, annotate, and digitally sign PDF documents with ease. With advanced features like OCR, document security, and PDF optimization, PDF-XChange Editor is a powerful tool for both personal and professional use. Whether you need to edit text, images, or links, or add comments, stamps, or watermarks, PDF-XChange Editor provides all the necessary tools to make your PDFs look perfect. Additionally, it supports a wide range of file formats, including PDF, XPS, and DOCX, making it easy to convert and share your documents. PDF-XChange Editor key features: Edit text and images in PDF documents Add and remove pages from PDF files Annotate and markup PDFs with comments, highlights, and stamps Use OCR to convert scanned documents into searchable text Create and fill out PDF forms Sign and certify PDF documents digitally Add and edit hyperlinks within PDFs Extract text and images from PDF files Batch process multiple PDF files at once Customize the interface to your preferences Work with multiple documents in tabs Convert PDFs to other formats such as Word, Excel, and HTML Use advanced redaction tools to permanently remove sensitive information Add customizable headers and footers to PDFs Merge multiple PDF documents into a single file Split PDF documents into multiple files Add watermarks to PDF documents Use the measurement tools to calculate distances and areas in PDFs ....and much more PDF-XChange Editor 11.0.1.0 changelog: Fixed a crash in the new Open/Save dialog box when creating a new folder in an unavailable network path. (49552) Fixed a rare/infrequent crash on some dynamic XFA forms after changing their field values. [installer] Fixed an issue where shortcuts were lost during an upgrade from the previous version. [installer] Fixed an issue preventing migration of serial keys during updates from version 10. Fixed the issues with the shell context menu after installation of version 11. Fixed the issue with filtering comments. (49478) Fixed the issue that caused "Error [IO subsystem]: Invalid access mode." when converting PDFs to MS Office formats. Fixed an issue with the context menu position on some multi-monitor systems. (48467) Fixed an issue with handling complex custom file filters, displayed by JS, in the new Open/Save Files dialog box. (49486) Fixed several issues with the new 'Select Folder' dialog box. (49505) Fixed an issue with the new custom 'Open File' dialog box when using double-click to open it. (49498) Fixed an 'infinite' loop/proliferation in the 'Open Files' and 'Manage Places' dialog boxes. (49526) Fixed an issue with handling the mouse wheel inside the document "Find" box. (49539) Fixed an incorrect behaviour in the 'Go back (Alt+Left)' button in the new Open/Save Files dialog box. (49510) Fixed an issue with the shortcut keys (Alt+Left/Right) after navigating via breadcrumb paths in the new Open/Save Files dialog box. (49554) [installer] Fixed an issue with redrawing the progress text in the EXE installers. Fixed the issue where a mouse click outside of the polyline/polygon context menu during annotation creation would cancel the annotation. (49475) We switched back to using the system Open/Save/SelectFolder dialog box by default, instead of using the new one, because some popular features such as the QuickAccess/Recent items are missing in the new version. These will be added in a future release. Replaced the 'Extension' column in the new Open/Save File dialog box with a more user-friendly 'Type' column. Also fixed some issues when handling the 'Show file extension' option. (49497) Added the ability to authenticate local network shares in the new Open/Save Files dialog box. (49557) Improved the handling of dates after 01.01.2030 in XFA files - now such dates are stored properly when set via the dropdown widget. Flags NoZoom and NoRotate are now respected for only a limited subset of annotations. Download: PDF-XChange Editor (64-bit) | Portable ~300.0 MB (Shareware) Download: PDF-XChange Editor (32-bit) | Portable ~200.0 MB Download: PDF-XChange ARM64 | 276.0 MB Download: PDF-XChange Portable @PortableApps.com | 97.0 MB View: PDF-XChange Editor Website | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Still 3x what it should cost. So, it seems the trick is to increase price by 6x so that a reduction in price back to 4x looks like a steal. "You savvy shoppers win again!" I'm glad I'm not in a desperate spot to actually even need this overpriced crap. Hopefully, it comes back down by the time for when (or if) I ever do.
    • Although AI is great and has it's use cases they likely have massively overhyped it and it has not delivered as per their expectations. I fully expect them to start saying the same things again when it does get to a certain level of intelligence!
    • Microsoft wants to end printer driver headaches with Windows Ready Print by Usama Jawad A few days ago, Microsoft released Windows 11 Experimental build 26300.8553, bringing a ton of enhancements such as Start menu customization, search improvements, Taskbar polish, and other minor UI tweaks. Another relatively major enhancement snuck deep within the change log was related to upgrades to the Windows printing experience. Now, Microsoft has shared more details about these benefits. For starters, Microsoft has renamed its Modern Print Platform to Windows Ready Print. The company believes that this name highlights its shift in strategy, which now focuses on modernizing, securing, and streamlining the printing experience for Windows devices. Some of the upgrades present in Windows Ready Print have already been seeded to customers and partners. This includes ending support for third-party printer drivers via Windows Update and transitioning towards the Internet Printing Protocol (IPP) and the native Windows IPP printer driver. In line with these changes, new printer installations will default to Windows Ready Print on eligible devices starting from July 2026. However, Microsoft recognizes that not all environments will be able to migrate to this platform immediately, so it will allow users to choose between installing the printer via Windows Ready Print or the traditional OEM process. Users will be able to toggle this configuration through Settings > Bluetooth & Devices > Printers & Scanners > Printer preferences. This control applies only to new printer installations, and its functionality can also be modified via Group Policy as follows: Launch Group Policy Editor Navigate to Local Computer Policy -> Administrative Templates -> Printers Find and select 'Configure Windows Ready Print driver ranking' -> double click to open it Select 'Enabled' (if you wish to enable Windows Ready Print driver selection) or 'Disabled' (if you wish to explicitly disable Windows Ready Print driver selection). Select Apply Select OK Similarly, if you set up Windows protected print mode through the same setting in Windows 11, it will also default to using Windows Ready Print exclusively. Microsoft hopes that these improvements will help eradicate dependency on OEM-specific driver installation processes and simplify printer installations. We'll likely find out more about other tangible benefits in the coming months.
  • Recent Achievements

    • One Year In
      Primer1st earned a badge
      One Year In
    • Experienced
      JayZJay went up a rank
      Experienced
    • Reacting Well
      Sir_Timbit earned a badge
      Reacting Well
    • Week One Done
      rubentuben8 earned a badge
      Week One Done
    • Week One Done
      ARaclen earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      513
    2. 2
      PsYcHoKiLLa
      231
    3. 3
      +Edouard
      138
    4. 4
      ATLien_0
      87
    5. 5
      Steven P.
      81
  • Tell a friend

    Love Neowin? Tell a friend!