<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.mediawiki.compulab.com/w/index.php?action=history&amp;feed=atom&amp;title=Linux%3A_Kernel_development_for_x86_modules</id>
	<title>Linux: Kernel development for x86 modules - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.mediawiki.compulab.com/w/index.php?action=history&amp;feed=atom&amp;title=Linux%3A_Kernel_development_for_x86_modules"/>
	<link rel="alternate" type="text/html" href="https://www.mediawiki.compulab.com/w/index.php?title=Linux:_Kernel_development_for_x86_modules&amp;action=history"/>
	<updated>2026-04-17T22:30:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://www.mediawiki.compulab.com/w/index.php?title=Linux:_Kernel_development_for_x86_modules&amp;diff=2068&amp;oldid=prev</id>
		<title>Grinberg: /* Development */</title>
		<link rel="alternate" type="text/html" href="https://www.mediawiki.compulab.com/w/index.php?title=Linux:_Kernel_development_for_x86_modules&amp;diff=2068&amp;oldid=prev"/>
		<updated>2015-08-31T14:48:06Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Development&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Overview ==&lt;br /&gt;
The purpose of this page is to give the user a minimum amount of information to meet the goal of making a simple change to the kernel, building and installing it.&lt;br /&gt;
&lt;br /&gt;
== Obtaining the kernel sources ==&lt;br /&gt;
Original sources, changelog and deb files for desired kernel version can be found in [http://packages.ubuntu.com Ubuntu Packages] archive.&lt;br /&gt;
&lt;br /&gt;
For example sources of kernel 3.16.0-38-generic compiled for Ubuntu 14.04 (Trusty Tahr) are placed here [http://packages.ubuntu.com/trusty/linux-image-3.16.0-38-generic linux-image-3.16.0-38-generic]&lt;br /&gt;
* linux_x.y.z.orig.tar.gz - mainline Linux x.y.z sources&lt;br /&gt;
* linux_x.y.z-xx.yy.diff - Ubuntu patch&lt;br /&gt;
* config-x.y.z-xx-generic - Ubuntu configuration file (can be found inside linux-image-x.y.z-xx-generic_xxx_amd64.deb)&lt;br /&gt;
&lt;br /&gt;
If modifications provided by Compulab - use CompuLab's patch in addition to Ubuntu patch, use CompuLab's config file instead of Ubuntu's one&lt;br /&gt;
* compulab.x.y.z-module_name.diff - CompuLab patch for the module&lt;br /&gt;
* config-x.y.z-xx-compulab.module_name - CompuLab config file&lt;br /&gt;
&lt;br /&gt;
== Development ==&lt;br /&gt;
* Use a 64-bit machine with Ubuntu, LinuxMint, or another compatible distribution as kernel building host workstation&lt;br /&gt;
* Install the programs and tools required for kernel building&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install libncurses5 libncurses5-dev kernel-package build-essential&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Prepare sources, apply patches and prepare initial config file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd /path/to/module_name/kernel&lt;br /&gt;
$ tar -xvzf linux_x.y.z.orig.tar.gz&lt;br /&gt;
$ cd linux-x.y.z&lt;br /&gt;
$ patch -p1 &amp;lt; ../patches/linux_x.y.z-xx.yy.diff&lt;br /&gt;
$ patch -p1 &amp;lt; ../patches/compulab.x.y.z-module_name.diff&lt;br /&gt;
$ cp ../config-x.y.z-xx-compulab.module_name .config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make modifications for your needs and configure the new kernel&lt;br /&gt;
** (optional) change CONFIG_LOCALVERSION=&amp;quot;-compulab.module_name&amp;quot; to &amp;quot;-yourname.module_name&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If you have a more than one processor or more than one core, you can speed things up by running concurrent compile commands. Setup CONCURRENCY_LEVEL=16 for 8 cores&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ export CONCURRENCY_LEVEL=16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Compile the kernel and create the .deb packages&lt;br /&gt;
** (optional) revision=yyyy.mm.dd can be changed to another custom string, it will appear as part of the .deb file name&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fakeroot make-kpkg --initrd --revision=yyyy.mm.dd kernel_image kernel_headers&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The linux-image-*.deb and linux-headers-*.deb packages will be created in the parent directory&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
* Make the linux-*.deb files accessible from the module, for example mount them with NFS or attach a disk-on-key with the files&lt;br /&gt;
* Install new linux-*.deb packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg -i /path/to/linux-*.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Linux |Kernel]]&lt;/div&gt;</summary>
		<author><name>Grinberg</name></author>
		
	</entry>
</feed>