Home page of this blog

Sunday, July 8, 2012

Custom 64 bit Mint 13 or Ubuntu 12.04 Kernel 3.4.4 optimized for i3, i5 and i7



Introduction, ah it will be boring, skip below first screenshot to get the kernel compilation how to.

But if you have time to read and patience to hear, good luck with the following paras, :)

After long time, I am finding a bit of free time and used my leisure time to build i7 optimized kernel, recorded every command into script, install and test and create this article for later reference for anyone who would wish to build/play around with kernel ... and know what?

I followed my own earlier article  to build this kernel, why not? 

My memory is not unlimited and after many tries with Ubuntu, Fedora, Kubuntu and in between some heavy office work, some boring books to read from libraries (due to due dates), exploring my xperia phone with ics updates, fixing my windows 7 which gobbled a whole day, updating my friends galaxy s2 to ics, googling cars, visiting relatives, spending my time in doctors lobby and much more day to day stuff ...

My linux sense triggered again to build and play with Kernel 3.4

This time, I do not have Ubuntu (sorry Unity I am damn confused how to use it)

It hardly matters, I have a better Ubuntu which is Mint 13 with Cinnamon. Now the base is Ubuntu 12.04 and everything related to kernel compilation is same to my happiness. 

I have been too lazy to touch Mint and build kernel, as it is quite stable and does not give me problems to look inside or play around. But hey, I am not going to let Mint spoil my geekiness

Here I come, Mint, to shatter your stability and perched laziness by pushing my custom built kernel into you to displace your rock stable kernel

Come on gutsy guys, if you dare, you could get yourself into kernel compilation voyage. If you are faint hearted, be happy with Mint 13 default, do not even touch it

Read ahead, buf if you are impatient to build and try the fruits of my efforts, scroll down to the bottom and you have the download links. This time I tried google drive for sharing and it should be easy to download (tell me if you like)

Straight to the point, here is the Mint 13 screenshot showing new kernel running




To build Kernel 3.4.4 in Mint13 or Ubuntu 12.04 yourself follow this steps



  1. Install Build dependencies
  2. Download Kernel 3.4.4 and Ubuntu patches
  3. Extract and apply Ubuntu patches
  4. Create i7 flavour and tweak kernel config for i7 flavour
  5. Tweak Makefile for optimizing
  6. Build
  7. Optionally install xorg x-swat ppa and upgrade
  8. Reboot and Test



I will try to explain each step in this article

Install build dependencies

Execute these apt-get commands as a sudo user from terminal

sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge libncurses5 binutils-dev libelf-dev libdw-dev libnewt-dev libncurses5-dev

sudo apt-get install flex

sudo apt-get install bison

sudo apt-get  --no-install-recommends install asciidoc xmlto


Optional: GCC 4.7 in Ubuntu 12.04 or Mint 13

If you want to build using gcc 4.7 then follow these steps to install gcc 4.7 in Ubuntu 12.04 from PPA

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.7
sudo apt-get install g++-4.7




Download Kernel sources and Ubuntu patches

You could download the kernel 3.4.4 sources from kernel.org and Ubuntu patches for kernel 3.4.4 from kernel ppa directory

If you prefer not to worry downloading individually, you could just copy and paste these commands in command line and let wget do the downloading job for you



mkdir Builds 
cd Builds 

wget -c http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.4.tar.bz2 

wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4.4-quantal/0001-base-packaging.patch 

wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4.4-quantal/0002-debian-changelog.patch 

wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4.4-quantal/0003-default-configs.patch



Here is a screenshot of wget downloading kernel source in command line




Here is a screenshot showing how I got the download links of ppa for wget, you would not need this if you just use wget given above



Here is a screenshot showing efficient wget completion of sources and ubuntu patches




Extract and Apply Ubuntu patches

You could use gui to unzip the bz2 kernel tarball, but if you prefer command line, use the following command

Extract




tar xjvf linux-3.4.4.tar.bz2 



A screenshot showing the same in action



Soft Link linux folder


Create a soft link for the extracted folder and change to the linux folder using cd



ln -s linux-3.4.4 linux 

cd linux




Apply the patches

From the terminal do the following from inside the linux folder, see previous step to know what I mean as linux folder

patch -p1 < ../0001-base-packaging.patch

patch -p1 < ../0002-debian-changelog.patch 

patch -p1 < ../0003-default-configs.patch



Create i7 flavour


Before creating a new kernel flavor, we give execute permissions for the build scripts

chmod -Rv +x debian/rules

chmod -Rv +x debian/scripts/




Clone existing flavor




cp debian.master/config/amd64/config.flavour.generic debian.master/config/amd64/config.flavour.i7


Prepare


first clean and update the new flavor




fakeroot debian/rules clean

fakeroot debian/rules updateconfigs






copy existing config from rock stable 12.04 kernel using uname -r, do not save it in .config, as this file is heavily modified when calling editconfigs





cp /boot/config-`uname -r` stableconfig




Run editconfigs



Give yes to i7 config and no to all other configs






fakeroot debian/rules editconfigs




Load alternate config and choose stableconfig which is untouched by editconfigs, save alternate config and save .config after changing processor type and kernel frequency



Here is a screenshot showing loading of stable config



Change processor and processor frequency



Screenshot showing chaning processor type



Screenshot after processor type change



Screenshot with default frequency


Screenshot with frequency modification


After processor frequency modification




Before exiting, save the config as .config by selecting save alternate config

Adjust abi






cp debian.master/abi/3.5.0-0.0/amd64/generic debian.master/abi/3.5.0-0.0/amd64/i7

cp debian.master/abi/3.5.0-0.0/amd64/generic.modules debian.master/abi/3.5.0-0.0/amd64/i7.modules

sed -i s/getall\ amd64\ generic/getall\ amd64\ generic\ i7/g debian.master/etc/getabis

sed -i s/\=\ generic/\=\ generic\ i7/g debian.master/rules.d/amd64.mk

cp debian.master/control.d/vars.generic debian.master/control.d/vars.i7

sed -i s/\"Generic\"/\"core\ i7\"/g debian.master/control.d/vars.i7



Tweak Makefile

You can change makefile manually to update the processor arch to corei7 (corei7 is target instructions for i3, i5 and i7 intel processors)





sed -i s/\=\ gcc/\=\ gcc\ \-march\=corei7\ \-mtune\=corei7\ \-pipe/g Makefile

sed -i s/\=\ g++/\=\ g++\ \-march\=corei7\ \-mtune\=corei7\ \-pipe/g Makefile

sed -i s/core2/corei7/g arch/x86/Makefile

sed -i s/core2/corei7/g arch/x86/Makefile_32.cpu

Optional: If you want to use  gcc4.7 for building then use the following instead of the above


This changes gcc to gcc-4.7 and g++ to g++-4.7, also mtune is changed to core-avx-i to optimize for the latest i7 processors with avx instructions

sed -i s/\=\ gcc/\=\ gcc\-4\.7\ \-march\=corei7\ \-mtune\=core\-avx\-i\ \-pipe/g Makefile
sed -i s/\=\ g++/\=\ g++\-4\.7\ \-march\=corei7\ \-mtune\=core\-avx\-i\ \-pipe/g Makefile

sed -i s/core2/corei7/g arch/x86/Makefile
sed -i s/core2/corei7/g arch/x86/Makefile_32.cpu

Build and install


We do a clean build of headers and kernel image with newly created i7 flavor





fakeroot debian/rules clean

skipabi=true skipmodule=true fakeroot debian/rules binary-headers

time skipabi=true skipmodule=true no_dumpfile=yes fakeroot debian/rules binary-i7







Install the newly built packages from previous directory by using cd





cd ..

sync

sudo dpkg -i linux-headers-3.4.4-030404_3.4.4-030404.201206221555_all.deb linux-headers-3.4.4-030404-i7_3.4.4-030404.201206221555_amd64.deb linux-image-3.4.4-030404-i7_3.4.4-030404.201206221555_amd64.deb

sync







Optionally install xorg ppa for nvidia latest drivers


if you face problem in building dkms modules of nvidia, here is how I resolved it

Rebooted into new kernel, I added xorg x-swat ppa, updated through synaptic and  upgraded all nvidia packages





sudo apt-add-repository ppa:ubuntu-x-swat/x-updates

sudo apt-get update

sudo apt-get upgrade



Reboot and Enjoy

After installing newly built kernel, reboot into kernel


Here are the,


Download Links


  1. Kernel Headers All --> Link
  2. Kernel Headers --> Link
  3. Kernel Image  --> Link
  4. Script to Build  --> Link
SHA256SUM of above in order

  1. ba18d38b88a621b8758a2293365b6750da298e262946a635044d81eed1cf501c  linux-headers-3.4.4-030404_3.4.4-030404.201206221555_all.deb
  2. 8c050642b90de73d9b3a8cfad3e072d63406d6b49a89422e4c8f616d8520a77a  linux-headers-3.4.4-030404-i7_3.4.4-030404.201206221555_amd64.deb
  3. c48586472892897c2ee4362976708f8bcbdd4f10369b82943b053eab99f611f0  linux-image-3.4.4-030404-i7_3.4.4-030404.201206221555_amd64.deb
  4. d85d8f0ef88627633c519d5ba197a19216815644c00185f674052d772a59d0cc  Kernel3.4.4Compilation


Below are the download links of kernel and headers built using gcc-4.7


  1. Kernel Headers All
  2. Kernel Headers
  3. Kernel Image
  4. Script to Build (save this file and give it execute permissions using chmod +x or you can execute all the instructions one by one after reviewing :) )

SHA256SUM of above in order


  1. 49e25d90ddabcbc56e8c43bc1702791e36ef74b80c5f72542ad6afbb9939e8f9  linux-headers-3.4.4-030404_3.4.4-030404.201206221555_all.deb
  2. d18401bc72902f559fac2153b4568d634e4b4863addcba139a997f56feb32bd3  linux-headers-3.4.4-030404-i357_3.4.4-030404.201206221555_amd64.deb
  3. 400864ae46f3f898e567b0d77097ee0c46861d9d0537bf21440005749c2810e7  linux-image-3.4.4-030404-i357_3.4.4-030404.201206221555_amd64.deb
  4. bf2baa2cedd9ee9e194e35ad4ef56f511f2fa557a4ce56305a8bb7f32d1789e9  KernelCompilation344UsingGCC47

Kernel 3.4.6 optimized for i7 (64 bit)


  1. Script to build with gcc4.7
  2. Kernel Headers All
  3. Kernel Headers
  4. Kernel Image
SHA256SUM of the above in order

  1. c7870ec1a3e3e9bd30a46fd9816feb9f4c574fb063865b13aca4ea977ae53f57  buildkernel3.4.6.sh
  2. c10441220d94221155a50d13ba7ef448052e385ff897837b48ec0f7f9b552ab0  linux-headers-3.4.6-030406_3.4.6-030406.201207191609_all.deb
  3. 87758a8b1c2b93e025be041a2eb0fbbd1bc4f2e7d6411d16f8535ef71aba660e  linux-headers-3.4.6-030406-i7_3.4.6-030406.201207191609_amd64.deb
  4. 1f801329bf41e53fc0b43526ad0d6f7827a4f752ff4bce49c0c6f037b8180879  linux-image-3.4.6-030406-i7_3.4.6-030406.201207191609_amd64.deb
Kernel 3.5.2 optimized for i7 (64 bit)


  1. Script
  2. Kernel Headers All
  3. Kernel Headers i7
  4. Kernel Image


SHA256SUM of the above in order


  1. c6a3f6996242af24e719f3c6e029749a052954328efb4daa2cca87ead81977d7  buildkernel352.sh
  2. 47a8dbc136af8ff1331ddcd5841a226242ba3ae635534bb0c3f0b9dcead1ef5f  linux-headers-3.5.2-030502_3.5.2-030502.201208151151_all.deb
  3. 6965992662a3a4db3b7c02bcb9f0c4dd60f61dbb7c930485f6b5fc806b41e101  linux-headers-3.5.2-030502-i7_3.5.2-030502.201208151151_amd64.deb
  4. 25807da234187423ff746edc2976bf2aa4c81a6832f9dc1b725ca63410022350  linux-image-3.5.2-030502-i7_3.5.2-030502.201208151151_amd64.deb







63 comments:

  1. By the time, I spent time editing and fixing scrolling, pre tag, bold, overflowing text, english mistakes, grammar and html annoyance, I lost patience and got irked

    I will clean and rewrite this in openoffice, till then forgive me

    But that will be another time I find time

    ReplyDelete
  2. Since default compiler in Ubuntu12.04 is GCC4.6, this kernel will be built using that.
    Fedora17 is already using GCC4.7 .
    Any way to compile the kernel using GCC4.7 in Ubuntu12.04/Mint?

    ReplyDelete
  3. Will give it a try, does gcc 4.7 produce faster code?

    ReplyDelete
  4. I managed to compile kernel with GCC 4.7, will try out and update this article

    ReplyDelete
  5. Great!
    Do you have a "AVX" supporting CPU?
    if yes, does the kernel compile with "-corei7-avx" for Sandy-brisge and "-core-avx-i" for Ivy-bridge processors ?

    ReplyDelete
    Replies
    1. I dont have avx, but I have added mtune for avx

      Delete
  6. When updating the article, please add the instructions to install GCC4.7 on ubuntu12.04 .
    I was searching on the net, but couldnt find any tutorial to install GCC4.7 on U12.04 . All i could find was the news "U12.10 to use GCC4.7" .

    ReplyDelete
    Replies
    1. Sure, I added ppa for gcc 4.7 and changed makefile to use this gcc instead of default gcc

      Delete
    2. Updated article

      Headings with optional describe how gcc4.7 to be installed and makefile changed

      Download links for kernel compiled with gcc4.7 is appended

      Delete
  7. so have you updated the blog with these changes?

    ReplyDelete
  8. if you hate Unity, there are other options like :

    1. cinammon desktop : gnome2 with gnome3 tech. great, and increasingly the only desktop env that is practical for multitasking.

    2.gnome3 : as minimal as unity, but better IMO

    3.Ubuntu 2d : Gnome2 like UI.

    4.enlightenment desktop : highly minimal. not for serious work. but good "effects+theme". very different from the other UI's.

    ReplyDelete
    Replies
    1. I have settled on Mint 13 cinnamon which uses cinnamon desktop, I tried gnome3, still not that great as cinnamon

      Is ubuntu2d still available in Ubuntu 12.04 ? Is this the samething as Mint Mate edition ?

      Enlightment, I love that engage taskbar where icons zoom like Mac

      Delete
    2. ubuntu2d is unity but with a top pannel. looks like gnome2.
      you can install it via a PPA. not available by default in u12.04.

      Delete
  9. for the GCC4.7 builds you provided, the optimisations are march=corei7 , mtune=core-avx-i . Does this mean that :
    1.these builds are using the corei7 (without avx) as the base optimisation. so they wont run on core2 and below.

    2. if the kernel sees a newer corei7 (with corei7-avx and core-avx-i) it will use these instruction sets also.

    http://www.phoronix.com/scan.php?page=news_item&px=MTA3NjE

    [quote]'corei7'
    Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 and SSE4.2 instruction set support.
    `corei7-avx'
    Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AES and PCLMUL instruction set support. [/quote]

    [quote]With the forthcoming Intel Ivy Bridge processors there is also the core-avx-i option that includes the Sandy Bridge (corei7-avx) options while also tacking in support for the new Ivy instruction sets: FSGSBASE, RDRND and F16C. [/quote]



    also, in the GCC4.7 script, commands to install GCC4.7 are not there. :) plz update that.

    also, it should be mentioned that the reader should either download the compiled .deb files OR use the script provided.

    ReplyDelete
    Replies
    1. Ok, I will update that, thanks for pointing this

      Delete
    2. yes they won't run on core2, I can build for core2 and upload it today (today is Sunday :) )

      corei7 instruction set does not support AVX, AES and PCLMUL extensions so I think it will be emulated unless march is set to core-avx-i, not sure how compiler takes it

      Delete
    3. no need to build for core2 yourself :)

      just point in the article where to make appropriate changes in the commands to build for a specific version.

      Eg : bold the part in the commands where the specific switch is used. then mention that "replace the part in bold with the switch of your choice"

      Delete
    4. Just replace corei7 to core2 when replacing in Makefile and arch specific makefiles

      Delete
  10. writing "march=corei7" and "mtune=corei7" is redundant. "march=x" implies" mtune=x" .
    so "march=x" is sufficient.

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

    and if march and mtune targets are different, then i think the mtune switch is ignored.
    so for building specifically for "Sandy bridge" , use only "march=corei7-avx" and for "ivy bridge processors" use only "march=core-avx-i".

    ReplyDelete
    Replies
    1. march=cpu-target implies mtune=cpu-target, but if I set march=core2 and mtune=corei7 then compiler will use core2 instructions but optimizations will be for corei7 processors, this is why mtune=generic is given, which means within that architecture it will use the generalized instruction set, say march=core2 optimization will be general and instruction sets used will be of core2

      Delete
    2. except for cross-building(like building ON core2 FOR corei7), i dont think mtune is needed at all.
      if i have a first gen corei7 processor, why would i need "mtune=core-avx-i" ?

      i'd rather use "march=native".

      so to reduce complexity , you might want to use only "march=native" for all the builds. this would prohibit cross-building, but is easier. :)

      Delete
    3. I will build with march=native then and leave mtune param

      Delete
    4. I have built kernel with march=native and it seems the kernel is very fast, system booting in less than 7 seconds

      Delete
  11. i ran the script for the GCC4.7 build and the script after some time. :(

    it downloaded the files, and definitely did the patch command. after that i think it stopped.
    i did not run the script in a terminal so do not know the error.

    ReplyDelete
    Replies
    1. Can you try from commandline and tell the error you might have got. I guess the script was asking user input and kernelconfig will not run unless we give yes when editconfigs is ran

      Delete
  12. Hello, I really want to thank mister Sankaran for his blog it has been very informative. I'm compiling using his recommendations. Since I'm compiling from Debian should I have a flavor patch applied to the kernel?

    ReplyDelete
    Replies
    1. There are some patches to make the symlinks work properly when installing debs, I am not sure which one, other than that applying patch is not necessary.

      Especially since it is debian, a kernel without patch will be great, both in their purest forms :)

      Delete
  13. 1. during the "run editconfig" phase, what does changing the "processor type" and the "timer frequency" do?

    2. Are you sure that the build uses GCC4.7 ? i was building today, and ran out of disc space. The console showed error in GCC4.6 folder. can you check ?

    3.how to clean the system ? i tried 4 builds and ran out of space on my system. i deleted the folders where i downloaded and built the kernel. but i think lots of files are still present in some other system folders. any way to delete them?

    ReplyDelete
    Replies
    1. I will check if it is using gcc4.7, regarding disk space can you remove -pipe from Makefile and try

      check temp folder for other files

      Delete
    2. I changed gcc-4.7 to gIIcc-4.7 in Makefile and started building, if this variable is not honored it would not have shown error, but it showed error and stopped building which means the value we change in Makefile are taken

      Anyhow to be completely sure, we can do the following

      After installing gcc-4.7 and g++-4.7, change gcc/g++ symbolic link to point to new gcc-4.7/g++-4.7

      sudo rm -rf /usr/bin/gcc
      sudo rm -rf /usr/bin/g++

      sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
      sudo ln -s /usr/bin/g++-4.7 /usr/bin/g++

      Delete
    3. the first two commands work. the last two commands give an error : "command not found".
      but the first two commands did change the GCC version. when i type gcc --version, it i see "gcc (Ubuntu/Linaro 4.7.0-7ubuntu3) 4.7.0" .

      Delete
  14. so what is your next project now ?

    ReplyDelete
    Replies
    1. I was planning to build KDE from source, but donno

      Delete
  15. I am a total newbie at this.

    I managed to follow upto the edit makefile. Couldn't figure out where to change the processor arch to core i7

    I m running Ubuntu 12.04 LTS. kernel 3.2.0.26-generic.

    also i accidentally said yes to some other config flavor(the last one after making cpu n frequency changes) but didnt save any changes.should this be a problem?

    ReplyDelete
    Replies
    1. Actually processor arch is changed in Makefile

      should not be a problem, since we build only the flavor we want, any other changes though done will not affect unless we build that flavor

      Also tell me, did you change kernel config (that blue colored screen :) )?

      Delete
    2. i did only the cpu (core 2/newer xeon) and 1000 Hz frequency change (blue and grey screen)

      nothing else outside the terminal

      Do you mean to say that after doing changes in Abi, i can continue to build the kernel without any manual changes to the Makefile?

      Delete
    3. yeah, you can it will be optimized to core2 (not corei7) then

      Delete
  16. i want it for core i5.

    but i m not able to locate where in the makefile should I make the change.

    Stuck up here

    "You can change makefile manually to update the processor arch to corei7 (corei7 is target instructions for i3, i5 and i7 intel processors)"

    ReplyDelete
    Replies
    1. Just follow Tweak Makefile section in this article

      Delete
    2. those sed instructions when run on command will alter the makefile

      Delete
  17. i see that you have updated the blog with the 3.4.6 build :)

    now it time for a 3.5 build!

    maybe you can add instructions to add the -ck patches ?

    ReplyDelete
  18. or maybe wait till the 3.6 becomes stable ?
    On the kernel.org site, the stable version is still "3.4.6".

    have you tried the -ck patches ? (that have the BFS-Brain Fuck Scheduler) it is designed to keep the desktop in low latency during heavy activity (heavy IO or heavy CPU, dont know).

    ReplyDelete
    Replies
    1. Not sure, :), just came home, already sleepy

      Delete
    2. Maybe liquorix kernel already has ck patches and BFS scheduler

      Delete
  19. need a little help with the maintenance

    3.4.4-030404-i7 is what my kernel version is($uname -r)

    however the default(shipped) update manager with 12.04 LTS says

    Installed version: 3.2.0.26.28
    Available version: 3.2.0.27.29

    how do I make my kernel recognized to the update manager?

    ReplyDelete
    Replies
    1. This requires the packages to be from repository, there are two ways to do this

      1. Local repository (easy, refer linux mint)
      2. Create a Ubuntu PPA (Personal Packaging Archive)

      Delete
  20. Hi

    Recently I updated the BIOS (which is supposed to enhance thermal control) and I installed ubuntu 12.04 fresh and then the first things I installed on it were two things: the fglrx 12.6 patched to be compatible with kernel 3.4 and this costum kernel for the i7 (I have an 1.6 GHz Intel Core i7-720QM Processor and I used the files compiled by you from the links at the bottom of the page).

    Before all these updates, my computer did get really hot but it had never reached the 100ºC nor had it shutdown "to prevent overheating". Now it is often to urgent shutdown and reach these temperature, namely when I'm watching movies, even youtube videos; I think it has something to do with the fullscreen mode.

    Is it possible that this is caused by this costum kernel? BIOS? fglrx?
    is there something I can change on the compilation of the kernel to prevent this from happening?

    btw, what does this costumization do in reality? what does it feature?

    Cheers,
    Pedro Lacerda

    ReplyDelete
    Replies
    1. Sorry to hear your processor is reaching such big temperature zones,

      Could you change the kernel frequency to 100 HZ and try instead of 1000 HZ

      Also check if acpi cpufreq module is running

      To check if your processor is running in lower frequency

      run and check what frequency your processors are running

      cat /proc/cpufreq

      To manually add cpufrequency modules we can do the following

      sudo modprobe acpi_cpufreq

      sudo modprobe cpufreq_ondemand

      Delete
    2. I am building kernel 3.5.2 with ubuntu patches and 300 HZ frequency with gcc 4.6.3, will upload once the build is completed and update the links, which you can give a try

      Delete
    3. Well, I've been using the costum kernel 3.5.2 and I think it got better. But I'll be keeping an eye on it to see if the problem is solved.

      Thanks!

      Delete
    4. Oh, good to hear the kernel performs well, thanks to kernel devs who should have added 1000s of fixes

      Delete
  21. Updated with kernel 3.5.2 build optimized for i7 with 300 HZ kernel frequency

    ReplyDelete
  22. http://www.phoronix.com/scan.php?page=news_item&px=MTE2MzY

    interesting article. Link-time optimization for the entire Kernel.
    Any plan on integrating this in the next build ?

    ReplyDelete
    Replies
    1. Wow, what an interesting link, hope Fedora will lead as usual, :)

      Delete
  23. hello,

    I'm a bit confused,

    Load alternate config and choose stableconfig which is untouched by editconfigs, save alternate config and save .config after changing processor type and kernel frequency

    are you stating to save two config files? one .config and the other stableconfig???

    if so are you telling me to change the processor and kernel frequency in both?

    also I noted while reading your blog that fglrx 12.6 patched to be compatible with kernel 3.4..???
    I didn't patch fglrx on previous attempts (several different howtos) they didn't boot to x.

    ReplyDelete
    Replies
    1. you are loading a stableconfig, which in earlier step we copied from ubuntu lts kernel config via cp /boot/config-`uname -r` stableconfig

      After loading this stableconfig, we are making changes and saving it into .config, just .config while saving

      Editconfig assumes whatever changes we make are in .config and will parse .config, so we are saving in .config

      Delete
  24. additional note: I get an error when installing virtualbox once I install the 3.52 kernel
    no suitable module found for running kernel.

    ReplyDelete
    Replies
    1. How did you install virtualbox, because I am having oracle virtualbox running and I am running kernel 3.5.2

      Delete
  25. Hi Sankaran,

    Great tutorial, I have myself successful following your steps. Although I have a couple of questions which I would very appreciate if you could help me answering them.

    My CPU is an Intel Core i5-2500K and I put "native" on both march and mtune configurations also put Core2/newer Xeon on the processor type just as you told, since I assume it is the most optimize settings if I were to build it just for my own computer, please CMIIW.

    Another question is that is there a specific reasoning on why to change the default timer from 250 Hz to 1000 Hz in the kernel configurations? I have read some findings on the Web about the timer configuration but I am not really sure what is the purpose and what is the pros and cons of increasing its value to 1000 Hz. I did find that the timer function is replaced by something called high precision or HPET or something. Could you please share some light here? :)

    Thanks in advance, Sankaran!

    ReplyDelete