Building the OMAP-L137 Linux Kernel
From Texas Instruments Embedded Processors Wiki
Contents |
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.
Leave a Comment