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.

IPNC RDK DM38x , DM8127

From Texas Instruments Wiki
Jump to: navigation, search


Important
This document covers details for DM38x IPNC RDK GA Release (v3.9.1) and DM8127 IPNC RDK GA Release (v3.9.1). This release is tested on DM38x and DM8127 CSK.



Software User Guide

- DM38x IPNC RDK Release (v3.9.1)

- DM8127 IPNC RDK Release (v3.9.1)



Contents

Requirements[edit]

A 64-bit Linux Ubuntu 14.04 or later is required to install the IPNC RDK Software

System Installation[edit]

Installation Procedure[edit]

  • The default IPNC RDK install directory is ../ti/ipnc_rdk-3.9.1. The following three files are installed:
  • ImageTuningTool_V3.00.01.00.zip
  • IPNC_RDK_InstallGuide.pdf
  • IPNC_RDK_3.9.1.tar.gz

Perform following steps to install the IPNC files

  • Change Permission as follows
   chmod 777 IPNC_RDK_3.9.1.tar.gz
  • Decompress the IPNC_RDK_3.9.1 using
   tar -xvf IPNC_RDK_3.9.1.tar.gz


  • Following Release directories should be available after the above installation:
Files/Directories
Description
Source IPNC RDK source code resides here
Utils Contains scripts like mksd-ti81xx.sh to flash images and filesystem on sdcard
Utils/yocto script and patches to build ipnc-rdk filesystem


  • Source directory is base work directory having source code for developing IPNC RDK. Description of the folders under ipnc_rdk directory is as below
Files/Directories
Description
ipnc_rdk/target/filesys Target File System.
ipnc_rdk/tftp Stores kernel, uBoot and filesys images.
ti_tools All components and build tools needed for software development of IPNC RDK.
ipnc_rdk/ipnc_app Core IPNC application code.
ipnc_rdk/ipnc_mcfw Source code for Multi Channel Framework.
ipnc_rdk/binaries Prebuilt binaries for DM8127/DM388 csk.


System Requirements[edit]

Hardware requirements[edit]

IPNC RDK software is functional on DM8127/ DM38x CSK. To install this on system, following components will be required:

  • IPNC DM8127/DM38x Reference Design CSK Hardware
  • Power supply(5V, 1.5-3A)
  • micro USB to USB/Serial port cable(for debugging, getting rtsp link, using console etc.)
  • micro USB to USB cable for mass storage (only required for using csk device in gadget mode and setting static ip over USB)
  • HDMI cable(if HDMI out needed)
  • Composite Video Cable (if using analog video output)
  • Ethernet cable (only if streaming has to be done over Ethernet)
  • 100/1000 Ethernet switch/hub (only if streaming has to be done over Ethernet)
  • Wi-Fi router (optional: required only if board is in STA mode and streaming needs to happen over Wi-Fi)
  • HDMI TV supporting 1080P60 (if HDMI out needed)
  • 64 bit PC with Linux (Ubuntu 14.04 recommended)
  • Micro-SD card (8GB or higher recommended)
  • PC with windows for using web GUI Application (May not be required if not using web GUI or streams are not being displayed on vlc installed on Windows machine)

Software requirements[edit]

  • IPNC RDK 3.9.1 package (includes PSP, TI SDK, IPNC applications, filesystem and other utilities)
  • VLC media player(version 2.1.6 or above)- Not required if using web GUI for reception of live streaming
  • Serial Terminal (like Teraterm on windows, minicom on Linux)
  • Code Composer Studio (version 5.x or above) - Needed only for using CCS based NAND programmer or for debugging
  • NFS server which can export IPNC file-system (if using NFS). To install this on host Ubuntu PC use
   $ sudo apt-get install nfs-kernel-server


Requirement for video streaming in IE on windows[edit]

The following are the PC software and hardware requirement to view 1080p high quality Video using Internet Explorer:

1. Hardware

  • Intel(R), Pentium(R), DUAL Core (D),CPU 3.0GHz or equivalent
  • 4 GB system memory or above
  • Sound Card: DirectX 9.0c compatible sound card (if audio functionality is required)
  • Video Card: 3D hardware accelerator card required – 100% DirectX 9.0c compatible
  • Ethernet network port/card (if Ethernet is used for streaming)
  • Wi-Fi network adapter/card (if streaming has to be done over Wi-Fi)

2. Software

  • VLC media player(version 2.1.6 or above) - Not required if using web GUI
  • Windows XP / Windows 7 Service Pack 2 or above
  • Resolution of screen setting: 1280x960 or higher for the display of 720P/1080P

Hardware Installation[edit]

  • Board Information
power cable.
CSK Board.
  • Camera Connection
1. Lift up the actuator of the camera connector (J7) using a thumb or index finger, as shown in Figure 1-1 and Figure 1-2 below
Figure 1-1.
Figure 1-2.


2. Fully insert the camera cable parallel to the mounting surface, with the exposed conductive traces facing UP, as shown in Figure 1-3 and Figure 1-4
Figure 1-3.
Figure 1-4.


3. Rotate the actuator down until it is firmly closed, as shown in Figure 1-5 and Figure 1-6
Figure 1-5.
Figure 1-6.


4. Figure 1-7 shows the DM8127/DM38x CSK after connecting it to the camera module.
Figure 1-7.

Note : Shorter camera cables(7.5cm or less) are recommended for better stability and performance.


Software Installation[edit]

Installation of the basic tools and host software[edit]

NOTE: If using pre-built binaries, then user should skip this section.

Before custom build, make sure the following are installed on Linux PC prior to installing the IPNC specific software:

  • For building the code, User need to install FLEX and BISON on the Linux HOST machine
    sudo apt-get install bison flex
  • Following other package needs to be installed for successful build of filesystem
  • acl library
  • zlib library
  • lzo library
  • uuid library
  • ncurses library
using
     sudo apt-get install libacl1-dev zlib1g-dev liblzo2-dev uuid-dev libncurses-dev
  • Install dtc version 1.4.1 or above
     sudo apt-get install device-tree-compiler
  • Packages required for running 32 bit binaries on 64 bit machine
     sudo dpkg --add-architecture i386
     sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386


Boot setup for CSK[edit]

Boot setup using prebuilt binaries[edit]

The IPNC RDK 3.9.1 package comes with prebuilt binaries that can be directly flashed on micro-SD card or NAND to get started with the streaming use-case.

  • Default location of prebuilt binaries are: <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/<board>/<mode>/.
 Here <board> can be DM8127/DM388 and <mode> can be sd/nand

Boot from SD[edit]

Boot mode Switch settings[edit]

  • Set SW1 switch to ON for SD Boot .


Default location of binaries[edit]

  • SD boot binaries for DM38x: MLO, u-boot.img, dm38x-csk.dtb and uImage are available in <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM388/sd
  • SD boot binaries for DM8127: MLO, u-boot.img, dm8127-csk.dtb and uImage are available in <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM8127/sd

Prepare SD Card[edit]

This section explains the procedure required for creating SD card image for this release. The steps have been verified on 8GB micro-SD card.

1. Plug a micro-SD Card on Linux Host Machine

2. Run dmesg command to check the sd device name. Double check this to ensure you do not damage your Hard Disk Drive contents since SD cards and HDDs have similar names.

host $ dmesg

   [14365.272631] sd 6:0:0:1: [sdc] 3862528 512-byte logical blocks: (1.97 GB/1.84 GiB)
   [14365.310602] sd 6:0:0:1: [sdc] Assuming drive cache: write through
   [14365.325542] sd 6:0:0:1: [sdc] Assuming drive cache: write through

In this example, micro-SD card is detected on /dev/sdc.

3. Navigate to '<ipnc-intstall-dir>/Utils/sd-script using

    $ cd '<ipnc-intstall-dir>/Utils/sd-script

4. Run the script mksd-ti81xx.sh script available inside <ipnc-intstall-dir>/Utils/sd-script as shown below

    $  sudo ./mksd-ti81xx.sh <device> <PATH_OF_MLO> <PATH_OF_u-boot.img> <PATH_OF_dtb> <PATH_OF_uImage> <PATH_OF_rootfs tar.gz>
  Example for DM38x: 
  $ sudo ./mksd-ti81xx.sh /dev/sdc <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM388/sd/MLO <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM388/sd/u-boot.img 
    <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM388/sd/dm38x-csk.dtb <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM388/sd/uImage 
    <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM388/sd/filesystem_DM388_FULL_FEATURE.tar.gz

NOTE: filesystem name may differ depending upon usecase being run. For full feature use-case, name is filesystem_DM388_FULL_FEATURE.tar.gz and for low power use-case, name is filesystem_DM388_LOW_POWER.tar.gz

  Example for DM8127: 
  $ sudo ./mksd-ti81xx.sh /dev/sdc <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM8127/sd/MLO <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM8127/sd/u-boot.img 
    <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM8127/sd/dm8127-csk.dtb <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM8127/sd/uImage 
    <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM8127/sd/filesystem_DM8127_FULL_FEATURE.tar.gz

NOTE: filesystem name may differ depending upon usecase being run. For full feature use-case, name is filesystem_DM8127_FULL_FEATURE.tar.gz and for low power use-case, name is filesystem_DM8127_LOW_POWER.tar.gz

NOTE One may see on the terminal an error message similar to umount: /dev/sdc2: not found. This message indicates that the SD card must be unmounted manually before the new content can be written. Type df -k. If the /dev/sdc1 or /dev/sdc2 appear in the list, they must be unmounted manually as follows: sudo umount /dev/sdc1


Board bootup[edit]

  • Insert micro-SD card in board and power ON the power switch
  • For running application, refer [1] below.

Boot from NAND[edit]

Boot mode Switch settings[edit]

  • Set SW1 switch to OFF for NAND Boot.

Default location of binaries for NAND boot[edit]

  • DM38x: MLO, u-boot.img, dm38x-csk.dtb, uImage, ubifs_csk_DM388_FULL_FEATURE.bin and ubifs_csk_DM388_LOW_POWER.bin - available in

<path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM388/nand/

  • DM8127: MLO, u-boot.img, dm8127-csk.dtb, uImage, ubifs_csk_DM8127_FULL_FEATURE.bin and ubifs_csk_DM8127_LOW_POWER.bin is available in <path to ipnc-intstall-dir>/Source/ipnc_rdk/binaries/DM8127/nand/

Prepare SD Card[edit]

  1. Create bootable FAT Partition of minimum 1 GB size on micro-SD card, refer Setion 7
  2. Copy respective binaries in created partition as mentioned below:

DM38x: Copy MLO, u-boot.img, uImage and ubifs_csk_DM388_FULL_FEATURE.bin/ubifs_csk_DM388_LOW_POWER.bin in micro-SD card NOTE: Based upon use case requirement, user can select between ubifs_csk_DM8127_FULL_FEATURE.binand ubifs_csk_DM8127_LOW_POWER.bin.

DM8127: Copy MLO, u-boot.img, uImage and ubifs_csk_DM8127_FULL_FEATURE.bin/ubifs_csk_DM8127_LOW_POWER.bin in micro-SD card NOTE: Based upon use case requirement, user can select between ubifs_csk_DM8127_FULL_FEATURE.bin and ubifs_csk_DM8127_LOW_POWER.bin.

Board bootup[edit]

  • Insert micro-SD card in board and power ON the power switch

Flash Images from SD Card to NAND[edit]

  • From uboot prompt, run following command to erase ALL of the blocks on the NAND device. This will also set most of the bad blocks to "good".
   nand scrub.chip
  • Flash all the images to nand from u-boot prompt
   mmc rescan
   fatload mmc 0 0x82000000 MLO 
   nand erase 0x00 0x20000 
   nand write 0x82000000 0x000 0x20000 
   
   fatload mmc 0 0x82000000 u-boot.img 
   nand erase 0x20000 0x00400000 
   nand write 0x82000000 0x20000 0x00400000   
   
   fatload mmc 0 0x82000000 uImage 
   nand erase 0x440000 0x600000 
   nand write 0x82000000 0x440000 0x600000 
   

For DM38x, load board specific dtb file using:

   fatload mmc 0 0x82000000 dm38x-csk.dtb 

For DM8127, load board specific dtb file using:

   fatload mmc 0 0x82000000 dm8127-csk.dtb 

Then continue with below commands:

   nand erase 0x0CA40000 0x40000 
   nand write 0x82000000 0x0CA40000 0x40000 

For DM388 full feature use-case, load specific file system image using:

   fatload mmc 0 0x82000000 ubifs_csk_DM388_FULL_FEATURE.bin

For DM388 low power use-case, load specific file system image using:

   fatload mmc 0 0x82000000 ubifs_csk_DM388_LOW_POWER.bin

For DM8127 full feature use-case, load specific file system image using:

   fatload mmc 0 0x82000000 ubifs_csk_DM8127_FULL_FEATURE.bin

For DM8127 low power use-case, load specific file system image using:

   fatload mmc 0 0x82000000 ubifs_csk_DM8127_LOW_POWER.bin

Then continue with below commands:

   nand erase 0x00A40000 0x0C000000 
   nand write 0x82000000 0x00A40000 0x0C000000 

Remove micro-SD card and reboot the board. For running application, refer SECTION 4 below.


Boot setup for custom build[edit]

Application build procedure[edit]

Modify the Rules.make file based on the system’s deployment.Rules.make that comes with release package has default configuration. If the user has different paths and need to build the binaries for different configuration, modify them in Rules.make located at <path-to-ipnc-install-dir>/Source/ipnc_rdk/Rules.make .

Variable Name
Values Possible
Description
APP_BUILD_CFG debug / release Build configuration
BINARY_MODE sd / nand Build binaries for SD/NAND boot
IPNC_DEVICE DM388 / DM8127 Target platform to build
IPNC_CONFIG FULL_FEATURE / LOW_POWER Various features like Face Detect, ISS and DSS Noise Filter, Video Stabilization, HDMI Output, TV Out, Privacy Mask are not supported in LOW_POWER mode . As the respective hardware modules for these will be switched OFF in LOW_POWER mode, power consumption will be less.
MTD_UTILS_MODE 64bit / 32bit UBIFS mtd-utils mode. 64Bit is supported.

NOTE: MEMORY_CONFIG option is removed as only 512MB memory footprint is supported.

Customizing Linux Kernel[edit]

If user wants to enable/disable some options in linux kernel, he needs to setup defconfig file to reflect the changes in final build. To setup defconfig file

  • Add/Remove corresponding config flags from board specific defcofig file at <path to ipnc-intstall-dir>/Source/ti_tools/ipnc_psp_arago/kernel/ti_config_fragments/<board config file>

NOTE: For dm8127 <board config file> is dm8127_csk.cfg and for dm38x it is dm38x_csk.cfg

  • Run defconfig builder script in kernel
    $ <path to ipnc-intstall-dir>/Source/ti_tools/ipnc_psp_arago/kernel/ti_config_fragments/defconfig_builder.sh -w .
  • Select option 2 i.e. Advanced Options
  • Select board name for which defconfig file has to be built. i.e. option 2 for DM38x & option 3 for DM8127
  • Select option 1 (board specific defconfig file).
  • Following above steps will generate a defconfig file which will be used by build system to create final defconfig file.

Customizing U-boot[edit]

If user wants to enable/disable some options in u-boot then he needs to add/remove corresponding flags in device config file at <path to ipnc-intstall-dir>/Source/ti_tools/ipnc_psp_arago/u-boot/configs/<board specific defconfig>.

  • For DM38x <board specific defconfig> is dm38x_csk_sd_defconfig(if using sd boot) or dm38x_csk_nand_defconfig(if using nand boot).
  • For DM8127 <board specific defconfig> is dm8127_csk_sd_defconfig(if using sd boot) or dm8127_csk_nand_defconfig(if using nand boot).


Building[edit]

  • Before starting application build, extract the "filesys" & "mtd-utils" folders at <path to ipnc-intstall-dir>/Source/ipnc_rdk/target/ using
   $ cd <path to ipnc-intstall-dir>/Source/ipnc_rdk/target
   $ tar -xvf filesystem_ipnc_dm81xx.tar.gz
  • Build application using the following command:
   $ cd <path to ipnc-intstall-dir>/Source/ipnc_rdk
   $ make sysall
  • If building for NAND boot create ubi filesystem image using
   $ make ubifs
  • If building for SD create tar of filesystem (since built binaries will be copied to ) <path to ipnc-intstall-dir>/Source/ipnc_rdk/target/filesys
   $ cd <path to ipnc-intstall-dir>/Source/ipnc_rdk/target/
   $ tar -zcvf filesys.tar.gz -C filesys .


Incremental Build[edit]

In order to incrementally or individually build different packages, following make target's can be used

Make Command
Description
make sys Incrementally build all IPNC RDK system and all dependant packages
make sysclean Clean IPNC RDK and all dependent packages
make sysall Clean and rebuild IPNC RDK and all dependent packages
make ipncapp Incrementally build IPNC application. This includes hdvpss, iss, mcfw and ipnc_app folder
make ipncappclean Clean IPNC application build
make ipncappall Clean and rebuild IPNC application
make mcfw Incrementally build mcfw folder for both linux and bios side SW
make mcfwclean Clean McFW builds
make mcfwall Clean and rebuild McFW SW on both linux and bios side
make mcfw_bios6 Incrementally build IPNC RDK on BIOS6 side only
make mcfw_bios6_clean Clean IPNC RDK on BIOS6 side only
make mcfw_bios6_all Clean and rebuild IPNC RDK on BIOS6 side only
make mcfw_linux Incrementally build IPNC RDK on linux side only
make mcfw_linux_clean Clean IPNC RDK on linux side only
make mcfw_linux_all Clean and rebuild IPNC RDK on linux side only
make lsp Incrementally build LINUX PSP
make lspclean Clean all linux PSP
make lspall Clean and rebuild linux PSP
make uboot Incrementally build uboot
make ubootclean Clean uboot
make ubootall Clean and rebuild uboot
make syslink Incrementally build syslink (on both BIOS and Linux side, including .ko on Linux side)
make syslinkclean Clean syslink
make syslinkall Clean and rebuild syslink
make hdvpss Incrementally build HDVPSS driver(BIOS side only)
make hdvpssclean Clean HDVPSS
make hdvpssall Clean and rebuild HDVPSS
make iss Incrementally build iss driver
make issclean Clean iss driver
make issall Clean and rebuild iss driver
make cmem Incrementally build cmem kernel module
make cmemclean Clean cmem kernel module
make cmemall Clean and rebuild cmem
make ubifs Create ubifs filesystem and install it in respective TFTP directory


Boot from SD with custom built images[edit]

Default location of binaries[edit]

  • DM38x: MLO, u-boot.img, dm38x-csk.dtb and uImage are available in <ipnc-install-dir>/Source/ipnc_rdk/tftp/DM388/sd
  • DM8127: MLO, u-boot.img, dm8127-csk.dtb and uImage are available in <ipnc-install-dir>/Source/ipnc_rdk/tftp/DM8127/sd


1. Run the script mksd-ti81xx.sh script available inside <ipnc-intstall-dir>/Utils/sd-script as shown below

  sudo ./mksd-ti81xx.sh <device> <PATH_OF_MLO> <PATH_OF_u-boot.img> <PATH_OF_dtb> <PATH_OF_uImage> <PATH_OF_rootfs tar.gz>
  Example for DM38x: 
  $ sudo ./mksd-ti81xx.sh /dev/sdc <path to ipnc-install-dir>/Source/ipnc_rdk/tftp/DM388/sd/MLO <path to ipnc-install-dir>/Source/ipnc_rdk/tftp/DM388/sd/u-boot.img 
    <path to ipnc-install-dir>/Source/ipnc_rdk/tftp/DM388/sd/dm38x-csk.dtb <path to ipnc-install-dir>/Source/ipnc_rdk/tftp/DM388/sd/uImage 
    <path to ipnc-install-dir>/Source/ipnc_rdk/target/filesys.tar.gz
  Example for DM8127: 
  $ sudo ./mksd-ti81xx.sh /dev/sdc <path to ipnc-install-dir>/Source/ipnc_rdk/tftp/DM8127/sd/MLO <path to ipnc-install-dir>/Source/ipnc_rdk/tftp/DM8127/sd/u-boot.img 
    <path to ipnc-install-dir>/Source/ipnc_rdk/tftp/DM8127/sd/dm8127-csk.dtb <path to ipnc-install-dir>/Source/ipnc_rdk/tftp/DM8127/sd/uImage 
    <path to ipnc-install-dir>/Source/ipnc_rdk/target/filesys.tar.gz

NOTE If there are any error messages similar to "umount: /dev/sdc2: not found", the SD card must be unmounted manually before it can be re-created.

2. Refer to SECTION 3.1.1 for board boot mode and boot setup.


Boot from NAND with custom built images[edit]

Default location of binaries[edit]

  • DM38x: MLO, u-boot.img, dm38x-csk.dtb, uImage and ubifs_csk.bin is available in <path to ipnc-intstall-dir>/Source/ipnc_rdk/tftp/DM388/nand
  • DM8127: MLO, u-boot.img, dm8127-csk.dtb, uImage and ubifs_csk.bin is available in <path to ipnc-intstall-dir>/Source/ipnc_rdk/tftp/DM8127/nand

Note: We can use make ubifs to create ubi_csk.bin

1. Refer to SECTION 3.1.2 for board boot mode and boot setup.

Running Application[edit]

Running FULL FEATURE/LOW POWER use case[edit]

Running Full Feature Use Case[edit]

  • After power ON, default configuration of CSK is to run in full feature mode.

Running Low Power Use Case[edit]

To run use case in low power mode:

  • When you power ON CSK, you will see the boot sequence message. Immediately press a key to interrupt the boot sequence and get a u-boot command shell.
  • Enter the following command in U-boot command shell:
    # csk_ff_init 0
  • If using SD boot type:
    # run mmcboot
  • If using NAND boot type:
    # run nandboot

Capture Display from CSK board[edit]

  • By default, all the startup commands are part of /opt/ipnc/autorun-usecase.sh which start the camera automatically after board power ON.
  • If user wants to include audio capture in streaming usecase, Connect a Mic with TRS connector in MIC IN jack.

RTSP streaming demo on VLC[edit]

Make sure that DM38x/DM8127 is connected to a network using Ethernet and remote PC is also in same network.

  • After boot up, the board provides RTSP links for streaming on serial console connected to it.
power cable.
RTSP Links.
  • Feed any of the links provided to vlc media player to get streaming on VLC.

Streaming Demo on Web Browser(IE)[edit]

Streaming on Internet explorer

  • On PC, open serial terminal(like Minicom on Linux or Teraterm on Windows) connected on ttyUSBx through the board.
  • Get the ip-address of board using ifconfig.
   # ifconfig

NOTE: For login to user "root", use default password root.

  • Open Internet explorer in windows machine and enter IP address of machine in Internet explorer. This will open the login screen of WebUI.
power cable.
Enter Credentials.
  • After login with valid user name and password, user will be redirected to home page of WebUI.
power cable.
Home Page Of Web UI.


Get Streaming on TV[edit]

  • If using HDMI, Use HDMI cable and select HDMI input.
  • If using Composite video, Use composite video cable and select between NTSC/PAL.


Streaming over Wi-Fi[edit]

DM8127/DM388 CSK can work as both Wi-Fi Access point and Wi-Fi STA(station computer).

Using DM8127/DM388 CSK as STA for streaming over Wi-Fi[edit]

NOTE: Tested with Access point security set to NONE.

By default, for streaming over Wi-Fi, the board tries to connect to wlan network "ti81xx-AP". User can decide whether to use default wlan name or to use a custom wlan network name.

1. If using default WLAN network name:

  • Before powering on the board rename your wlan network as "ti81xx-AP".
  • Power on the board.
  • Upon booting, usecase is automatically executed and will provide RTSP links for streaming on serial console connected to it.
  • Now run "ifconfig -a" and note down the wlan ip-address.
    $ ifconfig -a
  • Use wlan ip-address on web-UI ( Refer to Streaming on Internet explorer ).

2. If it fails to connect to hotspot in STA mode , increase delay between iw wlan0 scan and insmod ./kermod/wlan/wl18xx.ko in autorun-usecase.sh , currently delay has been set to a second.

3. If using custom WLAN network name

  • Replace "ti81xx-AP" with <custom access point name> in "iw wlan0 connect ti81xx-AP" in file "autorun-usecase.sh" at "<path to ipnc-intstall-dir>/Source/ipnc_rdk/target/filesys/opt/ipnc".
  • If using SD boot, flash updated filesystem. Refer to section 3.1.1.3.
  • If using nand boot, use "make ubifs" to create "ubifs_csk.bin" and flash the newly created "ubifs_csk.bin" to NAND. Refer to Section 3.2.4 for flashing "ubifs_csk.bin" to NAND.
    $ cd <path to ipnc-intstall-dir>/Source/ipnc_rdk/
    $ make ubifs
  • Power on the board.
  • Upon booting, usecase is automatically executed and will provide RTSP links for streaming on serial console connected to it.
  • Now run "ifconfig -a" and note down the wlan0 ip-address.
    $ ifconfig -a
  • Use wlan ip-address on web-UI ( Refer to Streaming on Internet explorer ).


Using DM8127/DM388 CSK as access point and streaming over Wi-Fi[edit]

By default, DM8127/DM388 CSK tries to run in STA mode. To run it in access point mode user needs to do below changes.

  • By default, AP mode is disabled in file "autorun-usecase.sh" at "<path to ipnc-intstall-dir>/Source/ipnc_rdk/target/filesys/opt/ipnc".
  • In "autorun-usecase.sh" the AP mode is disabled because following line is commented("#" is used for commenting "WLAN_MODE=AP" )
     #WLAN_MODE=AP
  • To enable AP mode remove "#" from the beginning of "WLAN_MODE=AP", i.e. uncomment the "WLAN_MODE=AP" in file "autorun-usecase.sh". After uncommenting the above line should look like
     WLAN_MODE=AP
  • Disable STA mode by commenting "WLAN_MODE=STA" in file "autorun-usecase.sh".
     #WLAN_MODE=STA
  • Save changes in "autorun-usecase.sh".
  • If using SD boot, flash updated filesystem. Refer to section 3.1.1.3.
  • If using nand boot use "make ubifs" to create "ubifs_csk.bin" and flash the newly created "ubifs_csk.bin" to NAND. Refer to Section 3.2.4 for flashing "ubifs_csk.bin" to NAND.
    $ cd <path to ipnc-intstall-dir>/Source/ipnc_rdk/
    $ make ubifs
  • Power on the board.
  • Upon booting, usecase is automatically executed and will provide RTSP links for streaming on serial console connected to it.
  • Now run "ifconfig -a" and note down the wlan1 ip-address.
    $ ifconfig -a
  • Use wlan ip-address on web-UI ( Refer to Streaming on Internet explorer ).

NOTE: If u don't want to enable Wi-Fi then do the following in autorun-usecase.sh

     #WLAN_MODE=STA
     #WLAN_MODE=AP
      WLAN_MODE=NONE


Steps to build Yocto Filesystem[edit]

Before initiating a filesystem build using yocto, setup for yocto build is required. Follow the steps below for setup of yocto build

  • Install below packages on host machine
     $ sudo apt-get install git build-essential python diffstat texinfo 
       gawk chrpath dos2unix wget unzip socat doxygen libc6:i386 libncurses5:i386 libstdc++6:i386 libz1:i386
  • Run below commands to setup and build yocto filesystem
     $ cd <path to ipnc-intstall-dir>/yocto/
     $ ./setup-yacto-ipnc-rdk.sh
     $ cd tisdk/build
     $ .conf/setenv
     $ export PATH={path_to_toolchain}/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin:$PATH
     $ MACHINE=ti81xx bitbake -f ipnc-rdk-rootfs-image
  • Generated reference filesystem can be obtained from <path to ipnc-intstall-dir>/Utils/tisdk/build/arago-tmp-external-linaro-toolchain/deploy/images/ti81xx/ipnc-rdk-rootfs-image-ti81xx.tar.gz


Creating Bootable FAT partition using fdisk[edit]

NOTE: The below demonstration is tested with fdisk on ubuntu 14.04. The below steps will create a bootable FAT partition as first partition on micro-SD card. Any data contained in micro-SD card will be lost.

  • Plug a micro-SD card on Linux Host Machine
  • Run dmesg command to check the sd device name. Double check this to ensure you do not damage your Hard Disk Drive contents since SD cards and HDDs have similar names.

host $ dmesg

   [14365.272631] sd 6:0:0:1: [sdd] 3862528 512-byte logical blocks: (1.97 GB/1.84 GiB)
   [14365.310602] sd 6:0:0:1: [sdd] Assuming drive cache: write through
   [14365.325542] sd 6:0:0:1: [sdd] Assuming drive cache: write through

In this example, micro-SD card is detected on /dev/sdd. Replace /dev/<sdX> with device node name in the below used commands For e.x. : In this case when device is detected on /dev/sdd, /dev/<sdX> needs to be replaced with /dev/sdd in all the commands below.

  • Erase Master Boot Record table as well as the partition table using ‘dd’ command
    $ sudo dd if=/dev/zero of=/dev/<sdX> bs=1M count=1
  • Open SD device node with fdisk command
    $ sudo fdisk /dev/<sdX>
  • On executing above command user will get a fdisk command prompt as shown below
    Command (m for help): 

Note : Treat “–>” symbol as enter in the upcoming steps

  • Create a first partition of size <Size> : In the fdisk prompt follow this sequence, “n –> p –> 1 –> –> +<Size> –>”

NOTE: In above line remove <Size> by the size of partition to be created. For ex. if partition of size 1G has to be created then sequence will be “n –> p –> 1 –> –> +1G –>”

     Command (m for help): n
     Partition type:
     p   primary (0 primary, 0 extended, 4 free)
     e   extended
     Select (default p): p
     Partition number (1-4, default 1): 1
     First sector (2048-15529983, default 2048):<Press Enter> 
     Using default value 2048
     Last sector, +sectors or +size{K,M,G} (2048-15529983, default 15529983): +1G
  • Change the first partition created to FAT. In the fdisk command prompt : “t –> c –>”. Code ‘c’ is for FAT 32 (LBA)
     Command (m for help): t
     Selected partition 1
     Hex code (type L to list codes): c
     Changed system type of partition 1 to c (W95 FAT32 (LBA))
  • Make a partition active, or bootable: "a -> 1 ->"
     Command (m for help): a
     Partition number (1-4): 1
  • Write the new partition information: "w ->"
     Command (m for help): w
      The partition table has been altered!
      Calling ioctl() to re-read partition table.
      WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
      The kernel still uses the old table. The new table will be used at
      the next reboot or after you run partprobe(8) or kpartx(8)
      WARNING: If you have created or modified any DOS 6.x
      partitions, please see the fdisk manual page for additional
      information.
      Syncing disks.
  • Format the new partition with a DOS FAT32 filesystem.
     $ sudo mkfs.vfat -F32 /dev/<sdX>1

Suspend Resume[edit]

  • To enable suspend resume feature we need to enable suspend-resume related config flags in <board config file> at <path to ipnc-intstall-dir>/Source/ti_tools/ipnc_psp_arago/kernel/ti_config_fragments/<board config file>

NOTE: For dm8127 <board config file> is dm8127_csk.cfg and for dm38x it is dm38x_csk.cfg

  • To enable suspend-resume related config flags in <board config file> add below lines in the bottom of file.
    CONFIG_PM=y
    CONFIG_SUSPEND=y
    CONFIG_SUSPEND_FREEZER=y
    CONFIG_PM_OPP=y
    CONFIG_PM_CLK=y
    CONFIG_PM_DEBUG=y
    CONFIG_PM_SLEEP=y
  • Run defconfig builder script in kernel
   $ <path to ipnc-intstall-dir>/Source/ti_tools/ipnc_psp_arago/kernel/ti_config_fragments/defconfig_builder.sh -w .
  • Select option 2 i.e. Advanced Options
  • Select board name for which defconfig file has to be built. i.e. option 2 for DM38x & option 3 for DM8127
  • Select option 1 (board specific defconfig file).
  • Following above steps will generate a defconfig file which will be used by build system to create final defconfig file.
  • Before System suspend we need to activate the wake up source. There are two possible ways to wakeup after System suspend
  1. UART
  2. Timer

Wakeup using UART Setup[edit]

To wakeup using UART we need to set no_console_suspend in bootargs while booting. To add this in bootargs

  • Power ON the board and stop at u-boot prompt
  • Use pri to get the optargs from u-boot prompt
    $ pri
  • The optargs will be displayed something like
    optargs=cmemk.phys_start=0x85000000 cmemk.phys_end=0x89000000 cmemk.allowOverlap=1 notifyk.vpssm3_sva=0xBFD00000 earlyprintk
  • Add no_console_suspend to optargs and set env variable using
    $ setenv optargs cmemk.phys_start=0x85000000 cmemk.phys_end=0x89000000 cmemk.allowOverlap=1 notifyk.vpssm3_sva=0xBFD00000 earlyprintk no_console_suspend
  • If booting from NAND then use
    $ run nandboot
  • If booting from MMC use
    $ run mmcboot

Wakeup using Timer Setup[edit]

  • Boot the board till console appears
  • Mount debugfs using
    $ mount -t debugfs debugfs /sys/kernel/debug
  • To set timer for certain time use following debugfs entries
  1. timer_wakeup_seconds
  2. timer_wakeup_milliseconds

eg. To set the timer for 5 seconds and 100 milliseconds use

    $ echo 5 > /sys/kernel/debug/pm_debug/wakeup_timer_seconds
    $ echo 100 > /sys/kernel/debug/pm_debug/wakeup_timer_milliseconds

System Suspend[edit]

  • To suspend system to RAM execute following command:
    $ echo -n "mem" > /sys/power/state

NOTE: If using UART as wakeup source then to resume press any key of keyboard of PC connected, else if using timer for wakeup then System will automatically resume after timer timeout.

Linux Kernel[edit]

The git repository for the Linux kernel used for this release can be found here

https://git.ti.com/ipnc-rdk-/ipnc-ti-linux-kernel/commits/ipnc-lsk-linux-4.4-dm38x-pp

Trouble shoot[edit]

Reset all configuration set from activeX by removing /mnt/nand/sysenv.cfg . Above step is useful if you have done some invalid configuration, due to which there is trouble in running usecase.

  1. 3.1.1
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article IPNC RDK DM38x , DM8127 here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article IPNC RDK DM38x , DM8127 here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article IPNC RDK DM38x , DM8127 here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article IPNC RDK DM38x , DM8127 here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article IPNC RDK DM38x , DM8127 here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article IPNC RDK DM38x , DM8127 here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article IPNC RDK DM38x , DM8127 here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article IPNC RDK DM38x , DM8127 here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article IPNC RDK DM38x , DM8127 here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity