<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.gumstix.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nick</id>
		<title>Gumstix User Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.gumstix.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Nick"/>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php/Special:Contributions/Nick"/>
		<updated>2026-04-29T01:15:16Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.3</generator>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Kernel_Reconfiguration&amp;diff=5094</id>
		<title>Kernel Reconfiguration</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Kernel_Reconfiguration&amp;diff=5094"/>
				<updated>2011-02-21T15:51:36Z</updated>
		
		<summary type="html">&lt;p&gt;Nick: /* Overo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:How_to_-_linux]]&lt;br /&gt;
[[Category:How_to_-_general]]&lt;br /&gt;
There are several possible work flows for modifying the kernel:&lt;br /&gt;
[[http://blogs.elphel.com/2009/12/openembeddedangstrom-kernel-workflow/ Using bitbake]]&lt;br /&gt;
[[http://bec-systems.com/site/521/best-practices-for-kernel-development-with-openembedded Using kernel tools]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Overo==&lt;br /&gt;
&lt;br /&gt;
These instructions assume you are using the default gumstix-oe kernel which is declared here&lt;br /&gt;
  &lt;br /&gt;
 $ cd $OVEROTOP&lt;br /&gt;
 $ grep linux org.openembedded/conf/machine/overo.conf&lt;br /&gt;
 PREFERRED_PROVIDER_virtual/kernel = &amp;quot;linux-omap3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
And the current revision as defined here&lt;br /&gt;
&lt;br /&gt;
 $ bitbake --show-versions | grep linux-omap3&lt;br /&gt;
 linux-omap3                            0:2.6.32-r51&lt;br /&gt;
&lt;br /&gt;
So the rest of the example will assume linux-omap3-2.6.32 revision 51. This is the kernel that will be built when we use the reference 'virtual/kernel' in bitbake commands.&lt;br /&gt;
&lt;br /&gt;
Substitute the kernel version and revision your system is using in the following steps.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
First build the kernel normally with bitbake. If you have built an image, then it's already done. &lt;br /&gt;
&lt;br /&gt;
If not run this command&lt;br /&gt;
&lt;br /&gt;
 $ bitbake virtual/kernel&lt;br /&gt;
&lt;br /&gt;
This will create a source directory in the ${OVEROTOP}/tmp/work/overo-angstrom-linux-gnueabi directory.&lt;br /&gt;
In this case it will be &lt;br /&gt;
&lt;br /&gt;
${OVEROTOP}/tmp/work/overo-angstrom-linux-gnueabi/linux-omap3-2.6.32-r51&lt;br /&gt;
&lt;br /&gt;
To modify the kernel configuration, run menuconfig via bitbake. Make your changes and save the configuration.&lt;br /&gt;
&lt;br /&gt;
 $ bitbake -c menuconfig virtual/kernel&lt;br /&gt;
&lt;br /&gt;
The new kernel configuration file you created can be found here.&lt;br /&gt;
&lt;br /&gt;
${OVEROTOP}/tmp/work/overo-angstrom-linux-gnueabi/linux-omap3-2.6.32-r51/git/.config&lt;br /&gt;
&lt;br /&gt;
Copy that file to where the bitbake recipe for the kernel will use it.&lt;br /&gt;
&lt;br /&gt;
 $ cp ${OVEROTOP}/tmp/work/overo-angstrom-linux/gnueabi/linux-omap3-2.6.32-r51/git/.config \&lt;br /&gt;
    ${OVEROTOP}/org.openembedded.dev/recipes/linux/linux-omap3-2.6.32/overo/defconfig&lt;br /&gt;
&lt;br /&gt;
Then rebuild the kernel.&lt;br /&gt;
&lt;br /&gt;
 $ bitbake -c clean virtual/kernel&lt;br /&gt;
 $ bitbake virtual/kernel&lt;br /&gt;
&lt;br /&gt;
Then rebuild the rootfs to get the modules installed correctly. &lt;br /&gt;
&lt;br /&gt;
Substitute the image you are using, the example if you are using the omap3-console-image.&lt;br /&gt;
&lt;br /&gt;
 $ bitbake omap3-console-image&lt;br /&gt;
&lt;br /&gt;
Finally, install the new kernel and rootfs the way you normally would using either a &lt;br /&gt;
[http://www.gumstix.net/Setup-and-Programming/view/Overo-Setup-and-Programming/Creating-a-bootable-microSD-card/111.html microSD card] &lt;br /&gt;
or by copying to [http://www.gumstix.net/Setup-and-Programming/view/Overo-Setup-and-Programming/Writing-images-to-onboard-nand/111.html onboard nand].&lt;br /&gt;
&lt;br /&gt;
==Verdex==&lt;br /&gt;
&lt;br /&gt;
To reconfigure the kernel with the current state of Gumstix's OE things, you will need ''gnome-terminal''. Run this command: '''bitbake gumstix-kernel -c menuconfig'''&lt;br /&gt;
&lt;br /&gt;
NOTE: You have to have ncurses and ncurses-dev installed in order for the MENUCONFIG to actually work.&amp;lt;br&amp;gt;&lt;br /&gt;
NOTE: If a screen flashes infront of you and dissapears edit $OE_HOME/org.openembedded.snapshot/conf/bitbake.conf to the following &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
-GNOME_TERMCMDRUN = '${GNOME_TERMCMD} -x ${SHELLRCCMD}'&lt;br /&gt;
+GNOME_TERMCMDRUN = '${GNOME_TERMCMD} -x ${SHELLCMDS}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: If you don't have gnome-terminal installed and wish to use xterm instead, use:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
-GNOME_TERMCMD = 'gnome-terminal --disable-factory -t &amp;quot;$TERMWINDOWTITLE&amp;quot;'&lt;br /&gt;
-GNOME_TERMCMDRUN = '${GNOME_TERMCMD} -x ${SHELLRCCMD}'&lt;br /&gt;
+GNOME_TERMCMD = 'xterm -title &amp;quot;$TERMWINDOWTITLE&amp;quot;'&lt;br /&gt;
+GNOME_TERMCMDRUN = '${GNOME_TERMCMD} -e ${SHELLCMDS}'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel config information is kept in&amp;lt;br&amp;gt; &lt;br /&gt;
''$OE_HOME/com.gumstix.collection/packages/linux/gumstix-kernel-2.6.XX/gumstix-custom-YYYYY/defconfig''&amp;lt;br&amp;gt;&lt;br /&gt;
where XX is the current default kernel version for your bitbake environment.  That nugget is set in the&lt;br /&gt;
''$OE_HOME/com.gumstix.collection/conf/machine/include/gumstix.inc'' file, under the PREFERRED_VERSION_gumstix-kernel&lt;br /&gt;
and YYYYY is usually one of connex/basix/verdex.  That nugget comes from&amp;lt;br&amp;gt;&lt;br /&gt;
''$OE_HOME/build/conf/auto.conf''&lt;br /&gt;
&lt;br /&gt;
After running menuconfig, running &amp;quot;bitbake -c rebuild gumstix-kernel&amp;quot; will blow away the customizations just made.  There is probably a better way to do this, but in order to preserve the customizations, you can copy the new config file and replace the default config.  For example, to preserve a verdex board's config, do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
cp \&lt;br /&gt;
 $OE_HOME/tmp/work/gumstix-custom-verdex-angstrom-linux-gnueabi/gumstix-kernel-2.6.21-r1/linux-2.6.21/.config \&lt;br /&gt;
 $OE_HOME/com.gumstix.collection/packages/linux/gumstix-kernel-2.6.21/gumstix-custom-verdex/defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that you have replaced the default config, the following commands will rebuild and repackage the new kernel and create new images for you:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
bitbake -c rebuild gumstix-kernel&lt;br /&gt;
bitbake -c rebuild task-base-gumstix&lt;br /&gt;
bitbake gumstix-basic-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Other notes==&lt;br /&gt;
Totally lost inside of menuconfig?  Press '/' to search for appropriate options.&lt;br /&gt;
&lt;br /&gt;
Want to know more about the kernel?  I found the 'Linux Kernel in a Nutshell' book (not to be confused with the 'Linux in a Nutshell' book) quite helpful.  The book is freely available online here (http://www.kroah.com/lkn/); Chapter 4 (Configuring and Building) and Chapter 6 (Upgrading a Kernel) as well as the first bit of Chapter 7 (Customizing a Kernel) and the last bit of Chapter 8 (Kernel Configuration: Kernel Debugging) have useful notes about kernel configuration.&lt;br /&gt;
&lt;br /&gt;
Your kernel is now larger than the 1MB originally specified so do_sizecheck() fails?&lt;br /&gt;
You'll probably want to edit the ~/verdex-oe/org.openembedded.dev/conf/machine/include and change the maximum image size to, say, 2MB, i.e. KERNEL_IMAGE_MAXSIZE = &amp;quot;2097153&amp;quot;.  Actually, you should really do this in the user.collections directory to keep the original source tree clean.&lt;/div&gt;</summary>
		<author><name>Nick</name></author>	</entry>

	</feed>