Changes

Jump to: navigation, search

Software Manual (Diva)

843 bytes removed, 16:59, 23 February 2021
Support service
{{Applies To Diva}}
{{InfoBoxBottom}}
 
{{WarningMessage|text=The following information are valid for <b>DIVELK</b> version up to release <b>2.2.0</b>}}
= Introduction =
== About this manual ==
This document describes how to run Linux on the DIVA/DIVAEVB-Lite/Carrier-board system and how to work with '''DIVELK version 2.0.0'''and above. For novice users who have no experience at all about embedded Linux systems, reading of [http://shop.oreilly.com/product/9780596002220.do Building Embedded Linux Systems By Karim Yaghmour] is strongly recommended. Practically speaking, the book covers all matters involved in developing software for such systems (from tool-chain organization to the most famous file systems running on top of MTD). It is not a reference guide, but it provides a complete and exhaustive overview that helps the developer save a lot of time in searching for such information on the Internet. For a brief but still exhaustive overview of the Linux and Embedded Linux world, please look at the Training and Docs sections of [http://free-electrons.com Free Electrons website].
== Support service ==
We are committed to making our products user-friendly and will help customers use our CPU modules in their systems. Technical support is delivered through email. Support requests can be sent to [mailto:support-divahelpdesk@dave.eu support-divahelpdesk@dave.eu]. Software upgrades are available in the restricted download area of '''DAVE Embedded Systems''' web sitegit server: http://www<code>git@git.dave.eu</reserved-area. code> An account is required to access this area (please contact [mailto:support-divahelpdesk@dave.eu support-divahelpdesk@dave.eu] for account requests). 
Please refer to our Web site at http://www.dave.eu/dave-cpu-module-am335x-diva.html for the latest product documents, utilities, drivers, Product Change Notices, Board Support Packages, Application Notes, mechanical drawings and additional tools and software.
[[File:Diva-400.png|300px]]
The heart of DIVA SOM is Texas Instruments "Sitara" [http://www.ti.com/lsds/ti/arm/sitara_arm_cortex_a_processor/sitara_arm_cortex_a8/am335x_arm_cortex_a8/products.page?paramCriteria=no AM335x microprocessors]. From a software point of view, Texas Instruments supports this processor family through so-called Linux EZ AM Software Development Kit (EZSDK AMSDK for short). EZSDK AMSDK releases are published on a regular basis. For more details please refer to:
* http://www.ti.com/tool/linuxezsdk-sitara
* http://processors.wiki.ti.com/index.php/Category:EZSDK
DIVA Embedded Linux Kit, in turn, is directly derived from EZSDKAMSDK. Hence DIVELK documentation often refers to EZSDK AMSDK resources.
=== Carrier boards ===
Please note that DIVELK u-boot and kernel source trees are derived from the official trees released by TI; these trees have been customized to add support for the DIVA SOM.
For further information on EZSDKAMSDK, please refer to [http://processors.wiki.ti.com/index.php/Sitara_SDK_5.06.00_Release_Notes Sitara SDK release notes].
==== DIVELK software components ====
'''DAVE Embedded Systems''' adds to the latest EZSDK AMSDK from Texas Instruments the customization required to support the DIVA platform. For this reason most of the documentation provided by TI remains valid for the DIVELK development kit. However, some customization is required, in particular at bootloader and linux kernel levels.
The following [[Diva_Embedded_Linux_Kit_(DIVELK)#DIVELK_software_components | Please refer to this table shows how DIVELK releases are related to EZSDK AMSDK releases.{| class="wikitable" !!colspan="2" | DIVELK version|-|Release number|1.0.0|2.0.0|-|Status|Released|Work in progress|-|Release date|June 2013|August 2014|-|'''Release notes'''|[[Software_Manual_(Diva)#DIVELK_1.0.0 | Ver 1.0.0]]| -|-|SOM PCB version|CS133012A|CS133012A|-|Supported carrier boards|[[DivaEVB-Lite]]<br>[[:Category:Dacu | Dacu]]|[[DivaEVB-Lite]]<br>[[:Category:Dacu | Dacu]]|-|U-Boot version|2012.10-divelk-1.0.0|2012.10-divelk-2.0.0|-|Linux version|3.2.0-divelk-1.0.0|3.12.10-divelk-2.0.0|- |Drivers|valign="top" | SPI NOR Flash (boot)<br>NAND 8 bit (boot)<br>UART0 (2-wire)<br>USB Host<br>SD/MMC1<br>GPIO<br>LCD<br>Touch screen controller<br>EMAC0 RMII (Fast Ethernet)<br>PMIC RTC (battery powered)<br>Audio (ALSA)|valign="top" | SPI NOR Flash (boot)<br>NAND 8 bit (boot)<br>UART0 (2-wire)<br>USB Host<br>SD/MMC1<br>GPIO<br>LCD<br>Touch screen controller<br>EMAC0 RMII (Fast Ethernet)<br>PMIC RTC (battery powered)<br>Audio (ALSA)<br>USB OTG<br>CAN<br>ADC|-|TI EZSDK|05.06.00.00|07.00.00.00|-|Build System| -|Yocto Dylan (1.4)|-|}
=== DIVELK Updates ===
* start a shell session
* enter the .ssh subdirectory into your home directory: <code>cd ~/.ssh/</code>
* launch the following command: <br><pre>ssh-keygen -t rsa -C "username@myhost.com"-f username@myhost.com</pre>
* this command creates the files <code>~/.ssh/username@myhost.com</code> ('''private key''') and <code>~/.ssh/username@myhost.com.pub</code> ('''public key''')
* edit your <code>~/.ssh/config</code> adding the following lines:
== Release notes ==
'''N.B.''' '''Customers who want to update from DIVELK 1.0.0 to DIVELK 2.0.0 can send an email Please refer to [mailtohttps:support-diva@dave//wiki.eu support-diva@dave.eu]'''/index=== php/Diva_Embedded_Linux_Kit_(DIVELK 2.0.0 === * Release date: October 2014* Status: Work in progress* EZSDK version: 07.00.00.00* Supported carrier boards: DIVAEVB-Lite, Dacu ==== Notes ==== * First major update* Added Yocto support* Updated kernel and u-boot versions* Bug fixes  === )#Release_notes this page] for DIVELK 1.0.0 === * Release date: June 2013* Status: released* EZSDK version: 05.06.00.00* Supported carrier boards: DIVAEVB-Lite, Dacu ==== Notes ==== * First official release
= Developing environment =
For further information on Linux for TI processors, please refer to http://processors.wiki.ti.com/index.php/Category:Linux
 
==== Linux Device Tree ====
The Flattened Device Tree (FDT) is a data structure for describing the hardware in a system (for further information, please refer to http://elinux.org/Device_Tree). Device tree source code is stored into the arch/arm/boot/dts/ directory.
=== Target root file system ===
* VirtualBox virtual machine (.OVA archive)
* Based on Ubuntu Lubuntu 12.04 LTS(64-bit version)
* Pre-installed VirtualBox Guest Additions
* Multiple LXDE desktop environment available:** Unity (Ubuntu)** LXDE (Lubuntu)* Boot disk with pre-installed Ubuntu/Lubuntu Linux 12.04.2 LTS the distro and pre-configured basic Linux services:** TFTP: with base directory /srv/tftp/(please refer to [[VirtualBox_Network_Configuration]])** NFS: configured through the /etc/exports file(please refer to [[VirtualBox_Network_Configuration]])
* Secondary disk containing source code and tools:
** Bootloader (u-boot) source tree cloned from DAVE Embedded Systems public git repository
** External pre-built toolchain
** Yocto bsp for DIVA
* Pre-installed Yocto-based root file system systems with setup scripts, makefiles, example applications, ...
* Administrator account (dvdk) with autologin. Please note that the user account credentials are provided with the development kit (you can find them into the README file contained in the sw/dvdk folder of the kit distribution)
* DIVELK root file system partition (mmcblk0p2, ext3)
DIVELK contains all the required software and documentation to start developing Linux application on the DIVA platform. In particular, DIVELK provides a Virtualbox virtual machine with two emulated disks: * Boot disk with pre-installed Ubuntu Linux 12.04.2 LTS and pre-configured basic Linux services (TFTP, NFS, ...) * Secondary disk containing source code and tools:** Bootloader (u-boot) source tree cloned from '''DAVE Embedded Systems''' public git repository ** Linux kernel source tree cloned from '''DAVE Embedded Systems''' public git repository** Toolchain
=== Importing the Virtual Machine ===
# When the boot process is completed, you can login into the Ubuntu system with the credentials provided with the development kit (you can find them into the '''README''' file contained in the '''dvdk''' folder of the kit distribution)
# Mount the sdk disk launching the sdk-mount.sh script contained into /home/dvdk directory as shown on the image below:<br><br>[[File:divelk-dvdk-sdk-mount.png|600px]]<br><br>
 
<pre>
dvdk@dvdk:~$ sh sdk-mount.sh divelk
[sudo] password for dvdk:
dvdk@dvdk:~$
</pre>
The divelk directory contains the following subdirectories:
* gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linuxyocto: the Yocto SDK installation directory (containing the cross-toolchain. GNU Compiler Collection (GCC) version is 4.7.3
* linux-am33x: the Linux source tree
* u-boot-am33x: the U-Boot source tree
<pre>
export PATH=source ~/divelk/gccyocto/sdk/diva-linaroqt5/environment-arm-linux-gnueabihfsetupexport LDFLAGS=-L${PKG_CONFIG_SYSROOT_DIR}/usr/lib/4.7-2013.03-20130313_linux/bin:$PATH3export CFLAGS=""export CPPFLAGS=""export CXXFLAGS=""export CPATH=""
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
==== NFS Server ====
One of the most useful features important components of a bootloader during development Linux system is the capability to download root file system. A good development root file system provides the Linux kernel from developer with all the networkuseful tools that can help developers on their work. This saves Such a lot of time because developer doesnroot file system can become very big in size, so it't have s hard to program store it in flash memory. User could split the image file system in different parts, mounting them from different media (flash every time he/she modifies it, network, usb...). U-Boot implements But the most convenient thing is to mount the TFTP protocol (see whole root file system from the tftp command)network, so allowing the host system must and the target to share the same files. In this way, developers can quickly modify the root file system, even “on the fly” (meaning that the file system can be configured modified while the system is running). The most common way to enable setup a system like the one described is through NFS (Network File System). As for TFTP service. Installation , installation and configuration of a TFTP server depends on the host Linux distribution. The default DVDK tftp NFS installation has is configured for sharing <code>/srvhome/dvdk/tftpdivelk</code> as work directoryand all the subdirectories. A subdirectory dedicated to  We recommend reading the [[VirtualBox_Network_Configuration]] page for additional details on the image files associated DVDK networking configuration and on how to the DIVELK (<code>/srv/tftp/divelk</code>) is available, but developers can add their custom subdirectories when requiredenable NFS.
==== Pre-built toolchain ====
These packages can be installed with the following command:
<pre>
sudo apt-get install git curl build-essential diffstat texinfo gawk chrpath ia32-libs python-m2crypto
</pre>
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > repo
$ chmod +x repo
$ ./repo init -u git@git.dave.eu:dave/diva/diva-bsp.git -b diva-dev-dylan
$ ./repo sync
</pre>
=== Building the Yocto image ===
 
Please note that even building the basic root file system requires a few hours to complete the process on a mid-hi range desktop PC (4-6 cores, 8-12 GiB RAM), also depending on the Internet connection speed (all source are fetched from the network). Nearly 20GiB of disk space is required for the build. Moreover, building inside the DVDK adds some overhead, since the performances of a virtual machine are reduced if compared to the physical hardware. Thus, it's recommended to check the hardware capabilities of the host system and, when building with Yocto is required, developers should consider the following options:
 
* migrating the build system to a physical machine
* assuming that the host system has the required resources, extending the hardware capabilities of the default DVDK (eg: adding more cores and disk space)
Once completed the initialization phase, developers can launch the Yocto image build process with the following commands:
 
<pre>
$ cd ~/divelk/diva-bsp
* qt5-rootfs-image (root file system with Qt 5.1.1 libraries and examples)
* base-rootfs-image (minimal root file system)
 
The resulting files (kernel, device tree and u-boot binaries, plus root file system in a .tar.gz archive) will then be available inside the build/tmp/deploy/images/diva directory.
== 4.4 Building the software components outside Yocto ==
Hello world
</pre>
 
=== Build the graphics components ===
 
<strike>AM335x processors provide a PowerVR SGX530 2D/3D graphics accelerator (SGX). This subsystem accelerates 2-dimensional (2D) and 3-dimensional (3D) graphics applications. The SGX subsystem is based on the POWERVR® SGX core from Imagination Technologies. SGX is a new generation of programmable POWERVR graphic cores. The POWERVR SGX530 v1.2.5 architecture is scalable and can target all market segments from mainstream mobile devices to high-end desktop graphics.
 
[http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/latest/index_FDS.html TI Linux Graphics SDK] is the development package that provides graphics drivers and OpenGLES1.1,2.0 and OpenVG libraries and demos running on all TI platforms.
 
Instruction on how to build the graphic components can be found here: http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide</strike>
== Boot configurations ==
8,186
edits

Navigation menu