Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

Building the OMAP-L137 Linux Kernel

From Texas Instruments Wiki
Jump to: navigation, search

Important Note:

The software discussed on this site is available for download, but is no longer being actively developed. This wiki is in maintenance mode and the software is supported on OMAPL1x Processor E2E forum


Purpose

When using the ARM core on the OMAP-L137 the Linux kernel is responsible for controller the various peripherals on the chip. This section will go over how to configure the Linux kernel with default values and how to open the kernel configuration to modify the supported peripherals.

Prerequisites

  • SDK software tools installed on a Linux host
  • MontaVista Tools installed on Linux Host

Copy the Linux Kernel

Use commands like the following to make a local working copy of the MontaVista Linux Support Package (LSP) in your home directory. This copy contains the embedded Linux 2.6.18 kernel plus the drivers for the peripheral devices on the chip. It is generally a good idea to make a copy before modifying the kernel. If you installed in a location other than /opt/mv_pro_5.0, use your location in the cp command. You should use your user account, not root.

host $ cd /home/<useracct>
host $ mkdir -p workdir/lsp
host $ cd workdir/lsp
host $ cp -R /opt/mv_pro_5.0/montavista/pro/devkit/lsp/ti-davinci .

Configuring Linux Kernel

To configure the kernel with the default options use the following commands from the root of the kernel tree:

host $ cd ti-davinci/linux-2.6.18_pro500
host $ make ARCH=arm CROSS_COMPILE=arm_v5t_le- distclean
host $ make ARCH=arm CROSS_COMPILE=arm_v5t_le- da830_omapl137_defconfig

NOTE: The CROSS_COMPILE variable specifies a prefix for the executables that are used during compilation.

This will set up the a new configuration with default answer to all options for OMAP-L137. To modify the kernel options, you will need to use a configuration command such as:

host $ make ARCH=arm CROSS_COMPILE=arm_v5t_le- menuconfig (or)
host $ make ARCH=arm CROSS_COMPILE=arm_v5t_le- xconfig

You can then use the configuration screens to add/remove drivers and kernel features. See a standard Linux kernel reference book or online source for more information about Linux build configuration options.

Building uImage

Once you have configured the kernel you can create an image for use with U-Boot using the following command:

host $ make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage

This will create a kernel image file called uImage in the arch/arm/boot directory of the kernel tree.

Building Modules

If the kernel is configured with any loadable modules, use the following command to build the modules:

host $ make ARCH=arm CROSS_COMPILE=arm_v5t_le- modules

Installing Modules to Target File System

Once the modules are built they must be installed on the target file system in order to be used. The following command will install the modules to the target file system and create the modules dependency file.

host $ su root
host $ make ARCH=arm CROSS_COMPILE=arm_v5t_le- INSTALL_MOD_PATH=<target filesys dir> modules_install

For example if you have been following the Getting Started Guide you should have created a target file system at /home/<useracct>/workdir/filesys. In the above command you should replace <target filesys dir> with /home/<useracct>/workdir/filesys.

Copying Linux Kernel Image to TFTP directory

Once the kernel has been compiled, use the following commands to copy the uImage to a place where U-Boot can use TFTP to download it to the EVM. These commands assume you are using the default TFTP root area, which is /tftpboot. If you use another TFTP root location, please change /tftpboot to your own TFTP root location. (Perform these commands as root or use a chown uImage command to get ownership of the file).

host $ cp /home/<useracct>/workdir/lsp/ti-davinci/linux-2.6.18_pro500/arch/arm/boot/uImage /tftpboot
host $ chmod a+r /tftpboot/uImage
host $ exit

For more information on setting up a TFTP server see the Setting up a TFTP Server page.

What's Next?

See the Building the SDK section of the Getting Started Guide.