This blog is subject the DISCLAIMER below.

Sunday, February 25, 2007

Enabling Dual-core/Hyper-threading in Ubuntu

Ubuntu 6.10 (Edgy) doesn't enable dual-core out-of-the-box. Maybe the next one will. Anyway to enable it, you have to use a different kernel.
I started to hear people screaming. I can see you clicking away of this article right now!

Well, don't be afraid, it is as easy as a single click nowadays. All you need to do, if you have Intel (non-AMD) processor is this:
From synaptic package manager choose these 2 packages:
And then reboot.
For command-line people just type:
sudo apt-get install linux-686-smp linux-restricted-modules-686
and reboot.

To make sure your kernel now sees the both processor type:
cat /proc/cpuinfo | grep -i '^processor' | wc -l
This command will show you how many processors is recognized by the kernel.

For AMD users, the packages are not named 686, they are named k7.
Good luck.

A last hint: (thanks to my dear friend Shereef Sakr)
To speedup the booting process, you might want to enable concurrency in the booting processes.
In the /etc/init.d/rc file, there is a line called CONCURRENCY=none, it is probably the first un-commented line. Change 'none' to 'shell' or to 'startpar'.

Shell and startpar both are concurrent but shell cares about the order or the printed output. I used startpar and it didn't work, so I used shell and it is working fine, although not as fast as startpar; startpar booted in a blink, but shell just cuts few seconds off.


Shereef Sakr said...

startpar didn't work for me too.
Anyway, Good article, Good work.

Magdy Wageeh said...

Yeah, Great article.

Pontus said...

I wonder where you got that information :D By default 6.10 uses 'generic' kernel that supports SMP, and 686 or K7 kernels don't even exist for Edgy..

Also (in 6.06 and older versions) 686 kernel works just fine with AMD CPU's, although K7 is more optimized for them.

Mohammad Nabil said...

I originally had Dapper and upgraded to Edgy. The number of my CPUs was 1. After updating the kernel they changed to 2.