Difference between revisions of "Custom Linux Kernel Development"

From wiki.emacinc.com
Jump to: navigation, search
(added and tested clone commands)
m (minor edit)
Line 5: Line 5:
 
Before continuing, make sure that git tools are installed on your development machine, and review the [[Building the Linux Kernel]] document.
 
Before continuing, make sure that git tools are installed on your development machine, and review the [[Building the Linux Kernel]] document.
  
== Downloading the Kernel Source ==
+
== The Kernel Source ==
  
 
Source code for EMAC kernels is provided through our Git server. Refer to the documentation for your system to determine the correct source to use.  
 
Source code for EMAC kernels is provided through our Git server. Refer to the documentation for your system to determine the correct source to use.  
Line 11: Line 11:
 
{{mbox|type=notice|text=For this guide, the 2.6.30-at91 kernel tree will be used, which currently covers many of EMAC's SoM-based ARM products.}}
 
{{mbox|type=notice|text=For this guide, the 2.6.30-at91 kernel tree will be used, which currently covers many of EMAC's SoM-based ARM products.}}
  
=== Clone ===
+
=== Clone the Git Repository ===
  
 
To clone the git repository over anonymous HTTP, run the following commands:
 
To clone the git repository over anonymous HTTP, run the following commands:
Line 20: Line 20:
 
Once the command has completed, the entire source should be contained in the <code>linux-2.6.30-at91</code> directory. The ''master'' branch will be checked out automatically. Because EMAC uses the ''master'' branch for all releases, this is the correct branch to use, but other branches or tags may be checked out if directed or required.
 
Once the command has completed, the entire source should be contained in the <code>linux-2.6.30-at91</code> directory. The ''master'' branch will be checked out automatically. Because EMAC uses the ''master'' branch for all releases, this is the correct branch to use, but other branches or tags may be checked out if directed or required.
  
 +
=== Kernel Source Structure ===
 +
 +
Within the source directory, you will see a
  
 
== Configuration ==
 
== Configuration ==
 +
 +
  
 
Refer to configuration section in the kernel building document. Show how to add / remove options in the config.
 
Refer to configuration section in the kernel building document. Show how to add / remove options in the config.

Revision as of 10:11, 29 December 2013

TODO: {{#todo:Write this|Travis Stratman|oe 5,TS,NotStarted}}

The ability to easily customize and expand any portion of the kernel is a feature of Linux that makes it very well suited for embedded systems development. In the embedded environment, specialized hardware, protocols, and systems may require a look into the kernel internals, custom configuration, feature additions, or driver development. This article aims to provide information on the most common kernel development tasks for EMAC OE Linux systems. In addition, the reader is pointed to additional sources for kernel development resources.

Before continuing, make sure that git tools are installed on your development machine, and review the Building the Linux Kernel document.

The Kernel Source

Source code for EMAC kernels is provided through our Git server. Refer to the documentation for your system to determine the correct source to use.

Clone the Git Repository

To clone the git repository over anonymous HTTP, run the following commands:

developer@ldc:~$ git clone http://git.emacinc.com/public/source/linux-2.6.30-at91.git

Once the command has completed, the entire source should be contained in the linux-2.6.30-at91 directory. The master branch will be checked out automatically. Because EMAC uses the master branch for all releases, this is the correct branch to use, but other branches or tags may be checked out if directed or required.

Kernel Source Structure

Within the source directory, you will see a

Configuration

Refer to configuration section in the kernel building document. Show how to add / remove options in the config.

Adding Support for a new Carrier Board

Show how to add a carrier board in the 2.6.30 "emac-carrier" structure.

Driver Development

Basic info on driver structure here.


Where to go for Additional Information

LDD3, mailing list, EMAC support.