Intel Microcode Update Utility for Linux
The microcode_ctl utility is a companion to the IA32 microcode driver written
by Tigran Aivazian <tigran@aivazian.fsnet.co.uk>. The utility has two uses:
- it decodes and sends new microcode to the kernel driver to be uploaded to
Intel IA32 processors. (Pentium Pro, PII, PIII, Pentium 4, Celeron, Xeon etc -
all P6 and above, which does NOT include pentium classics). It also supports
processors of the x86_64 architecture.
- it signals the kernel driver to release any buffers it may hold
The microcode update is volatile and needs to be uploaded on each system
boot i.e. it doesn't reflash your cpu permanently, reboot and it reverts
back to the old microcode.
*** Intel are now distributing the microcode to the wider community ***
A lot has happened in the last 7 years, and now with more OSs and CPUs to
support Intel have decided to make their microcode datafiles available for
general download on their main Download center and as there isn't any point in
multiple points of distribution we'll not be making updated datafiles available
anymore!
To get the datafile, you now have to go to http://downloadcenter.intel.com/default.aspx
select processors, select the CPU you're interested in, go to Linux as the OS and download from
there. You can setup an RSS feed if you're interested too.
Anyway, there you go!
-Simon
FAQ
Q. is there a changelog for the microcode?
A. No, if Intel change their minds and release it we'll post it here.
Q. what eratta are fixed with microcode version X?
A. see the first question....
Q. ....AMD or any non-Intel processors?
A. This driver is designed for Intel IA32 microprocessors only, it will not work
with AMD or any other non-Intel processors as they don't support microcode
updates or they support it in a manner different from Intel's specs.
Most Recent Microcode data file is here >
Download microcode_ctl app source
- Microcode utility zip not updated with microcode
- I can't see much point in rerolling a tarball when only the data is changing! If by some miracle your Linux distribution doesn't have the utility, download one below and update the data file by hand (it's trivial)
- microcode_ctl-1.17.tar.gz (326K)
- (26th April 2007) Updated microcode within archive, but really the code is unchanged from 1.11 NOTE: REQUIRES KERNEL VERSION 2.6.20+
- microcode_ctl-1.16.tar.gz (318K)
- (24th January 2007) Updated microcode within archive, but really the code is unchanged from 1.11 NOTE: REQUIRES KERNEL VERSION 2.6.20+
- microcode_ctl-1.15.tar.gz (264K)
- (19th September 2006) Updated microcode within archive, but really the code is unchanged from 1.11 NOTE: REQUIRES KERNEL VERSION 2.6.20+
- microcode_ctl-1.14.tar.gz (264K)
- (28th June 2006) Updated microcode within archive, but really the code is unchanged from 1.11
- microcode_ctl-1.13.tar.gz (261K)
- (19th January 2006) Updated microcode within archive, but really the code is unchanged from 1.11
- (26th January 2006) recreated tarball with datafile fixed
- microcode_ctl-1.12.tar.gz (195K)
- (13th September 2005) Updated microcode within archive, but really the code is unchanged from 1.11
- microcode_ctl-1.11.tar.gz (195K)
- (30th October 2004) remove some references to the old -i option
- microcode_ctl-1.10.tar.gz (195K)
- (25th October 2004) Updated microcode within archive, applied patch from Tigran to support the 2.6.x x86_64 architecture (and some other cleanups!)
- microcode_ctl-1.09.tar.gz (185K)
- (2nd September 2004) Updated microcode within archive, but really the code is unchanged from 1.06
- microcode_ctl-1.08.tar.gz (167K)
- (12th August 2004) Updated microcode within archive, but really the code is unchanged from 1.06
- microcode_ctl-1.07.tar.gz (167K)
- (28th March 2004) Updated microcode within archive, but really the code is unchanged from 1.06
- microcode_ctl-1.06.tar.gz (126K)
- (11th Jun 2001) Portability changes for Slackware, Suse 7.1 and devfs.
- microcode_ctl-1.05.tar.gz (125K)
- (31st May 2001) some small changes
- Includes new microcode from Intel (01May2001)
- microcode_ctl-1.04.tar.gz (119K)
- (17th Jan 2001) Changes: even more small changes; in particlar
portability fixes all over and a RPM stratagy rethink (see below).
- Includes new microcode from Intel
- microcode_ctl-1.03.tar.bz2 (89K)
- (07th Sept 2000) Changes: lots of small changes, startup script, (S)RPMs,
backport utility to 2.2 kernel (2.2.18pre3)
- microcode_ctl-1.02.tar.bz2 (87K)
- (28th June 2000) Changes: 22 June 2000 microcode, file format fix, man page
- microcode_ctl-1.01.tar.bz2 (78K)
- (19th June 2000) Changes: tidy up, argument sequencing fix, default filename and -u switch
- microcode_ctl-1.0.tar.bz2 (78K)
- (09th June 2000) Initial release, 29 Feb 2000 microcode
This utility requires the Linux kernel IA32 microcode driver
(2.4.0-test1-ac10 or 2.2.18 onwards). These kernels can be found on http://www.kernel.org
The project is listed on freshmeat
http://freshmeat.net/projects/intelp6microcodeupdateutility/
and is now included in many Linux distributions.
RPM Packages
The (S)RPM packages were removed from the website - the RPM packages can now
be built directly from the tar.gz file. It's easy and this avoids the
portability problems of rpm v3 and v4, it should work on upgraded RedHat and
SuSE distributions.
"rpm -ta microcode_ctl-x.xx.tar.gz"
or on more recent machines
"rpmbuild -ta microcode_ctl-x.xx.tar.gz"
The RPM and SRPM will be placed in the default location for your system,
it's printed as rpm finishes (e.g. RedHat it's /usr/src/redhat/*RPMS/
and SuSE is /usr/src/packages/*RPMS/)
Debian Packages
Francisco Javier Jimenez Gomez <frajigo@inf.upv.es>
sent me some patches for debian unstable 3.1, here's an uber
patch in unified diff against TOT
debian-unstable.patch
Giacomo Catenazzi
<cate@debian.org>
is maintaining a copy of the utility in a Debianized format,
they are available from his site at
http://people.debian.org/~cate/files/microcode/
Questions?
Contact either myself at simon@urbanmyth.org
or Tigran at tigran@aivazian.fsnet.co.uk.
(Please note that simon@veritas.com is no longer a valid email address!)
Special thanks
Intel Corporation, for supplying microcode update data and publishing
the specifications that enabled us to write microcode driver for Linux.
File last modified: Sunday, 07-Oct-2007 18:06:27 BST simon@urbanmyth.org