Home page of this blog

Saturday, July 23, 2011

Custom Kernel 3.0 amd64 ubuntu packages optimized for i7 processors




Requirements

Read getting ready for kernel 3.0 before trying this kernel

This package is created in Ubuntu 11.04 and should install fine in all versions of Ubuntu Linux 11.04 (as well 10.10) and Linux Mint 11 (as well Mint 10) (should as well in debian squeeze but not sure about dkms)

The build is for 64bit i7 processors (as well i3 and i5 as they are same instruction set as i7)

The following are the configuration settings

  1. Processor is selected as CORE2
  2. Makefile and Makefile_32 modified to reflect march settings and mtune settings to native (my processor is i7 920, it should support all i7 processors)
  3. Configuration of oneiric kernel is taken as base, http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.0-rc7-oneiric/
  4. Kernel Timer Frequency is 300 HZ
  5. Changed arch/x86/Makefile and arch/x86/Makefile_32.cpu to reflect CORE2 optimization flags as native

How to install

To install

sudo dpkg -i linux-image-3.0.0-corei7native_07.00_amd64.deb linux-headers-3.0.0-corei7native_07.00_amd64.deb

followed by (these steps update-initramfs and update-grub are not required for mint10 or maverick, these were required when using Ubuntu Lucid)

sudo update-initramfs -c -k 3.0.0-corei7native

and final step of

sudo update-grub

before rebooting and reboot into the newly installed kernel from grub

How to build yourself

follow my blog on how to build kernel in ten steps at


Kernel Source

I downloaded the kernel source tarball from kernel.org

Version: 3.0

http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2



Makefile difference

sankaran@sankaran-desktop:/usr/src/linux-3.0/arch/x86$ diff Makefile_32.cpu Makefile_32-orig.cpu
35c35
< cflags-$(CONFIG_MCORE2) += -march=native $(call tune,native)
---
> cflags-$(CONFIG_MCORE2) += -march=i686 $(call tune,core2)
sankaran@sankaran-desktop:/usr/src/linux-3.0/arch/x86$ diff Makefile Makefile-orig
57c57
< $(call cc-option,-march=native,$(call cc-option,-mtune=native))
---
> $(call cc-option,-march=core2,$(call cc-option,-mtune=generic)) 

MD5SUMS



63c35f4e075cc414260f23da6344fc95  CONFIG-KERNEL3.0
f883043be01167e2366c24e173d53ec8  linux-headers-3.0.0-corei7native_07.00_amd64.deb
e2fde737a471dc108d9dd47f442195dc  linux-image-3.0.0-corei7native_07.00_amd64.deb
7af19f91cef44da6dac861b237a57a8c  Readme.odt
f7e6a104a19859e2f7529754b953045f  Readme.pdf

SHA256SUMS



a3d84e0163c67dcc1056416a9c56b2befb171e94b9e49b26b15c857d70c71c46  CONFIG-KERNEL3.0
5fa6e0b1198b7ba63f64c4a45a57ef8f852f2117456a11f3cd73b63d03cc2a05  linux-headers-3.0.0-corei7native_07.00_amd64.deb
fe35c9399cc7752aa03a7e3cdda89c56152af4ffc7ae31f9c9ac371e61b46b45  linux-image-3.0.0-corei7native_07.00_amd64.deb
482e59e839a177f4478507e0b86f219ea8b0de04bb79a596c3a52e52fb62dd42  Readme.odt
368875964a09e7a7a79514ab5705b72cd2b64c47c67efde198ae0a85984c4d54  Readme.pdf

Dropbox Download Links


http://dl.dropbox.com/u/22900905/MyKernelBuilds/3.0-corei7native/CONFIG-KERNEL3.0
http://dl.dropbox.com/u/22900905/MyKernelBuilds/3.0-corei7native/linux-headers-3.0.0-corei7native_07.00_amd64.deb
http://dl.dropbox.com/u/22900905/MyKernelBuilds/3.0-corei7native/linux-image-3.0.0-corei7native_07.00_amd64.deb
http://dl.dropbox.com/u/22900905/MyKernelBuilds/3.0-corei7native/MD5SUMS
http://dl.dropbox.com/u/22900905/MyKernelBuilds/3.0-corei7native/Readme.odt
http://dl.dropbox.com/u/22900905/MyKernelBuilds/3.0-corei7native/Readme.pdf
http://dl.dropbox.com/u/22900905/MyKernelBuilds/3.0-corei7native/SHA256SUMS

Dont have i3/i5/i7 and want to try core2 optimized kernel 3.0, visit my other blog post

4 comments:

  1. With this kernel I am able to boot into box within 5 seconds sometimes!!

    ReplyDelete
  2. Building for core2, will publish in another 30 mins

    ReplyDelete
  3. Nice work man. I trying to compile my own for my i7-2600k with the help of your guide as well. Thanks! By the way would you know how would I figure out what my Kernel Timer Frequency should be and where to change it in the .config file?

    TIA,

    Rob

    ReplyDelete
  4. Doh! Never mind I found the Timer Freq. in the config. Still unsure if I should leave it @ 300 or go to 1000 ??

    ReplyDelete