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.
OMAP3530x Build enviroment guide beta 3 release
Contents
- 1 Software
- 2 Build Directory Structure
- 3 Software Source Packages
- 4 kernel_src
- 5 bluetooth_src
- 6 were to get the required packages for Bluetooth
- 7 wireless_src
- 8 script
- 9 tools
- 10 BT_firmware
- 11 gallery
- 12 patches
- 13 iptables
- 14 Step-by-Step Build Procedure
- 15 Building the project
- 15.1 Downloading and Installing PSP-SDK version AM35x-OMAP35x-PSP-SDK-03.00.01.06
- 15.2 Installing Linux kernel linux-03.00.01.06.tar.gz
- 15.3 Downloading and Installing tool chain
- 15.4 Installing mkimage utility
- 15.5 Building the project
- 15.6 Built binaries setup
- 15.7 Building kernel Modules
- 15.8 In case of compilation issue
Software[edit]
This section lists the source packages required for creating the software package for WL1271
- PSP Linux kernel
Version : linux-03.00.01.06.tar.gz
The download location of PSP SDK is <linux-03.00.01.06.tar.gz>
- PSP tool chain for building packages for ARM cross platform
Version: arm-2009q1-203
The download location of the tool chain is <arm-2009q1-203 tool chain>
- Bluetooth stack for Linux bluez-4.60.tar.gz
- Hcidump source package bluez-hcidump-1.42.tar.gz
- Inter-process communication system BUS dbus-1.2.14.tar.gz
- EXPAT source package expat-2.0.1.tar.gz
- Software utility library needed by BlueZ-4.60 glib-2.20.2.tar.bz2
- Software library for parsing XML documents, libxml2-2.6.32.tar.gz
- Stream oriented parsing library source package obexftp-0.23.tar.bz2
- OBEX source package openobex-1.5.tar.gz
- PCRE source package pcre-7.9.tar.bz2
- USSP source package ussp-push-0.11.tar.gz
- WLAN source package WiLink6.1.6.0.3.tar.bz2
- OpenSSL source package openssl-0.9.8e.tar.gz
- WPA Supplicant source package wpa_supplicant-0.5.7.tar.gz
- IP Table source package iptables-1.4.3.2.tar.bz2
- Iperf network testing tool source package iperf-2.0.5-source.tar.gz
Build Directory Structure[edit]
directory/files | description |
---|---|
common | This directory contains the source packages to be built |
WL1271Build.sh | Master script file to build the project |
set_wl1271_build_env.sh | Script file to set build environment variables |
buildlog | This directory contains log files generated during the packages build |
kernel | This directory contains extracted kernel sources along with the built binaries |
wireless | This directory contains extracted WLAN sources along with the built binaries |
image | This directory contains the binaries of all the compiled source packages |
Software Source Packages[edit]
This section lists the source package information, in detail, and also provides the path for these source packages.
NOTE: Please ensure that all packages mentioned below are in the “common” directory of the build directory structure prior to the start of the build procedure.
kernel_src[edit]
This directory should contain the Linux kernel tar ball. i.e. linux-03.00.01.06.tar.gz.
Download the PSP-SDK package from the following link: <linux-03.00.01.06.tar.gz>
Extract the package in a working directory on the Linux host. This should provide the Linux kernel linux-03.00.01.06.tar.gz for OMAP3 EVM in the directory “AM35x-OMAP35x-PSP-SDK-03.00.01.06/src/kernel/”. Copy the Linux kernel tar-ball to "OMAP35x_WL1271_Release/software/OMAP35x_WL1271_6.1.0.1.149_REL-0001/OMAP35x_WL1271_Sources/common/kernel_src"
bluetooth_src[edit]
This directory should contain the BT source tar files.
Package | description |
---|---|
bluez-4.60.tar.gz | Bluez source package |
bluez-hcidump-1.42.tar.gz | Hcidump source package |
dbus-1.2.14.tar.gz | Inter-process communication system BUS |
expat-2.0.1.tar.gz | EXPAT source package |
glib-2.20.2.tar.bz2 | Glib library needed by BlueZ-4.60 |
libxml2-2.6.32.tar.gz | Software library for parsing XML documents, |
obexftp-0.23.tar.bz2 | Obexftp source package |
openobex-1.5.tar.gz | OBEX source package |
pcre-7.9.tar.bz2 | PCRE source package |
ussp-push-0.11.tar.gz | USSP source package |
Note: If any of the above listed source packages are missing in the bluetooth_src directory, those packages need to be downloaded from the Web prior to the start of the Bluetooth build procedure.
were to get the required packages for Bluetooth[edit]
Package | Release | License | Location |
---|---|---|---|
BlueZ | 4.6 | GPL, version 2 | bluez-4.60.tar.gz |
Bluez-hcidump | 1.42 | GPL, version 2 | bluez-hcidump-1.42.tar.gz |
Dbus | 1.2.14 | Academic Free License version 2.1 or GPL version2 | dbus-1.2.14.tar.gz |
Expat | 2.0.1 | Free | expat-2.0.1.tar.gz |
Glib | 2.20.2 | GPL, version 2 | glib-2.20.2.tar.bz2 |
Libxml2 | 2.6.32 | Free | libxml2-2.6.32.tar.gz |
Obexftp | 0.23 | GPL, version 2 | obexftp-0.23.tar.bz2 |
OpenOBEX | 1.5 | GPL, version 2 | openobex-1.5.tar.gz |
Pcre | 7.9 | BSD | pcre-7.9.tar.bz2 |
USSP-Push | 0.11 | GPL, version 2 | ussp-push-0.11.tar.gz |
wireless_src[edit]
This directory contains the WLAN source tar files
Package | description | location |
---|---|---|
WiLink6.1.6.0.3.tar.bz2 | WLAN sources code | TI deliverable |
openssl-0.9.8e.tar.gz | Open SSL source file | openssl-0.9.8e.tar.gz |
wpa_supplicant-0.5.7.tar.gz | WPA Supplicant source file | wpa_supplicant-0.5.7.tar.gz |
script[edit]
This directory contains the script files described below
Package | description |
---|---|
BTDemoScripts_04.tar | BT demo script files |
install.sh | Installation script file |
WebBrowse.sh | Web browsing script file |
wl1271_wlan.sh | WLAN demo scripts |
tools[edit]
This directory contains:
- iperf-2.0.5 source file, downloaded from <iperf-2.0.5-source.tar.gz>
BT_firmware[edit]
This directory contains the BT firmware
gallery[edit]
This directory contains the audio and JPG files
patches[edit]
This directory contains the patch files, as described below
Patch | description |
---|---|
bluez-4.60_001_demo_patch | Bluez patch file to modify configuration files |
openobex-1.5_001_demo_patch | OpenOBEX patch file to change timeout value test application |
PSP-linux-03.00.01.06-wl1271-support.patch | Linux kernel patch file for linux-03.00.01.06 to enable WLAN and Bluetooth support in the kernel configuration file and add GPIO settings for Bluetooth BT_EN signal |
ussp-push-0.11_001_demo_patch | USSP-push patch file to change Bluez API name |
iptables[edit]
This directory contains iptables source tar file. iiptables-1.4.3.2.tar.bz2 - The package is downloaded from <iptables-1.4.3.2.tar.bz2>
Step-by-Step Build Procedure[edit]
This section describes the procedure to build the sources of the WL1271 Daughter card using the build scripts.
PSP-SDK version AM35x-OMAP35x-PSP-SDK-03.00.01.06[edit]
If PSP-SDK package is not installed already, download the PSP-SDK package from the following link: <AM35x-OMAP35x-PSP-SDK-03.00.01.06.tgz>
Installing Linux kernel linux-03.00.01.06.tar.gz[edit]
Extract the PSP-SDK package in a working directory on the Linux host. This should provide the Linux kernel linux-03.00.01.06.tar.gz for OMAP3 EVM in the directory AM35x-OMAP35x-PSP-SDK-03.00.01.06/src/kernel. Copy the linux-03.00.01.06.tar.gz to the directory 'kernel_src'.
Downloading and Installing tool chain[edit]
If arm tool chain is not installed already, download and install it from the following link.
Version arm-2009q1-203: For PSP version AM35x-OMAP35x-PSP-SDK-03.00.01.06.
The download location of the tool chain is <arm-2009q1-203>
Installing mkimage utility[edit]
In order to generate uImage, 'mkimage' utility is required on Linux host. mkimage source exists in the PSP-SDK package under u-boot source directory. Build the u-boot as per the instructions given in the PSP-SDK user guide. 'mkimage' binary will be generated under 'uboot-<version>/tools'. Copy the mkimage binary file to the ARM Toolchain bin directory.
Ex: cp tools/mkimage <tool chain>/bin
Building the project[edit]
This section describes the procedure to build the sources of the WL1271 Daughter card using the build scripts.
Downloading and Installing PSP-SDK version AM35x-OMAP35x-PSP-SDK-03.00.01.06[edit]
If PSP-SDK package is not installed already, download the PSP-SDK package from the following link: AM35x-OMAP35x-PSP-SDK-03.00.01.06.tgz
Installing Linux kernel linux-03.00.01.06.tar.gz[edit]
Extract the PSP-SDK package in a working directory on the Linux host. This should provide the Linux kernel linux-03.00.01.06.tar.gz for OMAP3 EVM in the directory AM35x-OMAP35x-PSP-SDK-03.00.01.06/src/kernel. Copy the linux-03.00.01.06.tar.gz to the directory 'kernel_src'.
Downloading and Installing tool chain[edit]
If arm tool chain is not installed already, download and install it from the following link. Version arm-2009q1-203: For PSP version AM35x-OMAP35x-PSP-SDK-03.00.01.06. The download location of the tool chain is arm-2009q1-203
Installing mkimage utility[edit]
In order to generate uImage, 'mkimage' utility is required on Linux host. mkimage source exists in the PSP-SDK package under u-boot source directory. Build the u-boot as per the instructions given in the PSP-SDK user guide. 'mkimage' binary will be generated under 'uboot-<version>/tools'. Copy the mkimage binary file to the ARM Toolchain bin directory.
Ex: cp tools/mkimage <tool chain>/bin/
Building the project[edit]
The script WL1271Build.sh is used to build entire packages or individual ones.
The build environment variables to be set in the file 'set_wl1271_build_env.sh';
- PSP_MAIN_VER – main version of the PSP SDK installed. default value should be 3
- PSP_REL_VER - version of PSP Linux kernel tar-ball included in the PSP-SDK PSP_REL_VER=03.00.01.06 for AM35x-OMAP35x-PSP-SDK-03.00.01.06
- ARM_TOOLCHAIN_PATH - absolute path of tool chain directory. Recommended tool chains is arm-2009q1-203
Ex: ARM_TOOLCHAIN_PATH=/opt/crosstools/codesourcery/arm-2009q1
- Build script help
To find the build options that are supported by the WL1271Build Script, use the following command Usage: ./WL1271Build.sh --help
- Build all
To build the kernel, WLAN, BT, iptables and iperf, use the following command Usage: ./WL1271Build.sh build all
- Clean all
To clean the kernel, WLAN, BT, iptables and iperf build, use the following command Usage: ./WL1271Build.sh buildclean all
- Rebuild all
To clean and build the kernel, WLAN, BT, iptable and iperf, use the following command Usage: ./WL1271Build.sh rebuild all
- Delete all
To delete temporary build directories of the kernel, WLAN, BT, iptable and iperf, use the following command Usage: ./WL1271Build.sh builddel all
- Kernel build
To build the kernel, use the following command Usage: ./WL1271Build.sh build kernel
- Kernel clean
To clean the kernel build, use the following command Usage: ./WL1271Build.sh buildclean kernel
- Kernel rebuild
To clean and build the kernel, use the following command Usage: ./WL1271Build.sh rebuild kernel
- Kernel delete
To delete the kernel build directory, use the following command Usage: ./WL1271Build.sh builddel kernel
- WLAN build
To build the WLAN, use the following command Usage: ./WL1271Build.sh build wlan
- WLAN clean
To clean the WLAN build, use the following command Usage: ./WL1271Build.sh buildclean wlan
- WLAN rebuild
To clean and build the WLAN, use the following command Usage: ./WL1271Build.sh rebuild wlan
- WLAN delete
To delete the WLAN build directory, use the following command Usage: ./WL1271Build.sh builddel wlan
- BT build
To build the BT, use the following command Usage: ./WL1271Build.sh build bluetooth
- BT clean
To clean the BT build, use the following command Usage: ./WL1271Build.sh buildclean bluetooth
- BT rebuild
To clean and build the BT, use the following command Usage: ./WL1271Build.sh rebuild bluetooth
- BT delete
To delete the BT build deirectory, use the following command Usage: ./WL1271Build.sh builddel bluetooth
- Iptable build
To build the iptable, use the following command Usage: ./WL1271Build.sh build iptable
- Iptable clean
To clean the iptable build, use the following command Usage: ./WL1271Build.sh buildclean iptable
- Iptable rebuild
To clean and build the iptable, use the following command Usage: ./WL1271Build.sh rebuild iptable
- Iptable delete
To delete the iptable build directory, use the following command Usage: ./WL1271Build.sh builddel iptable
- Iperf build
To build the iperf, use the following command Usage: ./WL1271Build.sh build iperf
- Iperf clean
To clean the iptable build, use the following command Usage: ./WL1271Build.sh buildclean iperf
- Iperf rebuild
To clean and build the iperf, use the following command Usage: ./WL1271Build.sh rebuild iperf
- Iperf delete
To delete the iperf build directory, use the following command Usage: ./WL1271Build.sh builddel iperf
Built binaries setup[edit]
On successful completion of the build, ensure that uImage (Linux kernel image) and vXX.XX.XX.XX-WL6.1.6.0.tar.bz2 (WLAN and Bluetooth binaries) are available under image directory of the build directory structure.
- uImage - This is the Linux kernel image for OMAP3 EVM
- v03.00.01.06-WL6.1.6.0.3.tar.bz2 - This is the binaries tar ball file, which contains the following
- Binaries of the WLAN
- Binaries of the BT
- Utilities (iperf, iptable and so on)
- Script files (BT script, web browse script, installation script and so on)
Building kernel Modules[edit]
On successful compilation of the build, the contents of the directory would be as shown below;
Ex. [arago@localhost Sources]$ ls
bluetooth buildlog common image kernel README set_wl1271_build_env.sh wireless WL1271Build.sh
Execute the following commands to build the modules;
1 Change the directory to the kernel source directory
cd kernel/linux-03.00.01.06/
Ex. [arago@localhost Sources]$ cd kernel/linux-03.00.01.06/
2 Export the tool chain path
export PATH=<ARM_TOOLCHAIN_PATH>/bin:$PATH ---- where the <ARM_TOOLCHAIN_PATH> is the path of the toolchain installed on the host machine;
Ex: [arago@localhost Sources]$ export PATH=/opt/crosstools/codesourcery/arm-2009q1/bin:$PATH
3 Build the modules;
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules
Ex. [arago@localhost Sources]$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules
4 Install the modules into a directory on the host
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules_install INSTALL_MOD_PATH=<root fs path> ----- where the <root fs path> is a temporary directory on the host machine
Ex. [arago@localhost Sources]$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules_install INSTALL_MOD_PATH=~/omap_rootfs_modules
5 Change the directory to the <root fs path>
cd <root fs path>
Ex. [arago@localhost Sources]$ cd ~/omap_rootfs_modules/
6 Compress the modules;
tar -czf libmodules.tar.gz lib/
7 Copy the "libmodules.tar.gz" to the TFTP server as in case of uImage and v03.00.01.06-WL6.1.6.0.3.tar.bz2
In case of compilation issue[edit]
Q1 : Do I need to build any package manually? Ans :
- No, The script WL1271Build.sh can be used to build the Linux kernel, WLAN, BT, Iptables and Iperf.
Q2 : If the kernel build fails, what are the steps to follow? Ans :
- If the kernel build fails, check the following steps;
- Check that the “.config” file is available in the kernel source.
- Delete the kernel build directory ./WL1271Build.sh builddel kernel
- Build the kernel again ./WL1271Build.sh build kernel
Q3 : Build is successful, however, uImage (Linux kernel binary) is not generated under the directory “image”, what are the steps to follow? Ans :
- Check the following steps;
- Check that the “mkimage” tool is installed into the tool chain directory.
- Delete the kernel build directory ./WL1271Build.sh builddel kernel
- Build the kernel again ./WL1271Build.sh build kernel
Q4 : If WLAN build fails and says that “ln: creating symbolic link `/usr/local/bin/perl': Permission denied ERROR: Can not create symbolic link”, what are the steps to follow? Ans :
- Check that 'perl' is installed on the Linux host. If yes, create a soft link to /usr/local/bin/perl as super user.
Ex: (ln -s /usr/bin/perl /usr/local/bin/perl)
- Delete the wlan build directory ./WL1271Build.sh builddel wlan
- Build the wlan again. ./WL1271Build.sh build wlan
Q5 : Where can I get the built binaries? Ans :
- All the build binaries are available under the "image" directory.
Q6 : How can I check the build failure? Ans :
- For the build failure, please check the log file under the "buildlog" directory.
Q7 : Where can I find individual module build? Ans :
- There are individual modules build options available, please check below:
- Check "kernel" directory for kernel build
- Check "Wireless" directory for WLAN build
- Check "bluetooth" directory for BT build
Q8 : BT build fails on Ubuntu host? Ans :
- If BT build fails on Ubuntu host, because of missing utilities like gettext, libglib2.0-dev, flex and so on; install those packages and build the BT again.
- sudo apt-get install gettext
- sudo apt-get install libglib2.0-dev
- Delete the bluetooth build directory ./WL1271Build.sh builddel bluetooth
- Build the bluetooth again ./WL1271Build.sh build bluetooth
Q9 : Iptables build fails due to error in tool chain header file(linux/pkt_sched.h), how to continue build? Ans :
- There is an error in the file linux/pkt_sched.h included in the codesourcery toolchain version arm2009q1.
- Replace u32 with __u32 in the header file.
- Build the package again ./WL1271Build.sh build all
Q10 : Build fails on some Ubuntu host machines(Version 10.04) because of missing "patch" utility. Ans :
- User should check whether "patch" utility has been installed already. If no, install the same.
- Ex. sudo apt-get install patch.