NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
Building the OMAP-L137 Linux Kernel
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
Contents
Purpose[edit]
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[edit]
- SDK software tools installed on a Linux host
- MontaVista Tools installed on Linux Host
Copy the Linux Kernel[edit]
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[edit]
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[edit]
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[edit]
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[edit]
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[edit]
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?[edit]
See the Building the SDK section of the Getting Started Guide.