Changes

User:Pau pajuelo

3,366 bytes removed, 15:28, 5 September 2014
m
DM3730: Decode an AAC audio file (OK)
= Write your first C Program using Eclipse IDE TODO: =
== Overview ==Categorize new tutorials
Eclipse IDE is a software development environtment, this software package is very popular because you can extend its functionalities using pluggins. C applications can be compiled in Eclipse using Autoconf tools or Makefile. Autoconf tools can be useful if you want How to develop a huge application with a lot of software dependencies, but this method can be tedious if you want to develop a simple application. manage the kernel modules on Linux
At IGEP v3.0 VM, Eclipse includes Linux tools and Yocto plugin to develop C applications for IGEP firmware as quickly and easily as possible. How do I edit my kernel command line
== PreAUDIO DSP-requisites ARM==
To follow this How===Included (IGEP GST DSP):==='''AACHEDEC -to you need: > DEC AACHE (OK)'''
*VMware or VirtualBox virtualization software *IGEP SDK v3http://download.0 Virtual Machine RC2 with Eclipse IDE<br> *IGEP BOARD with Ethernet communication (for example IGEPv2)<br> *MANUAL IGEP SDK v3wavetlan.0 VM<br>com/SVV/Media/HTTP/FAAC-HE-AAC.aac
gst-launch --gst-debug-level=2 filesrc location= Getting started sampleaache.m4a ! TIAuddec1 codecName=aachedec engineName=codecServer ! volume volume=0.25 ! alsasink sync==false
First at all, you should read MANUAL IGEP SDK v3.0 VM and follow the next instructions: outofthebox->ok
*Install your Virtual Machine *Install your Virtual Machine Guest additions *Prepare your Rootfs in your Micro SD Card *Connect to your IGEP Board using Ethernet Commnication *Build programs using Eclipse IDE----
== Hello world compiled with Eclipse<br'''MP3DEC -> ==DEC MP3 (AUDIO ERRORS)'''
If you follow "Getting started" chapter you have compiled some source example programs for Eclipse, these programs use Autotools to generate binary code for - Followed README file from ISEE - IGEPDSP - GST + DMAI Support Package 3. Now is time to compile your Helloworld example program without using autotools40. 00
=== Create your new projecthttp: ===//www.stephaniequinn.com/Music/Canon.mp3
Open Eclipsegst-&gt;Filelaunch -&gt;New-&gt;C Project gst-debug-level=2 filesrc location=Canon.mp3 ! TIAuddec1 codecName=mp3dec engineName=codecServer ! volume volume=0.25 ! alsasink sync=false
At C Project Window: '''Random fatal bit error'''
Yocto Project ADT Project '''mp3-&gt;Empty Project plugin doesn't resolve the error'''
Insert your project name and finish. At Project explorer panel you will see your new project----
=== Create your source files: ==='''G711DEC -> DEC PCM uLAW (speech) (NOT TESTED)'''
Go to New C/C++ Source File button and write at "Source file:" field your source file name, for example main.c. Finish the assistant and copy the next code at this file: <pre'''G711ENC ->#include &lt;stdio.h&gt; int main(void){ printfENC PCM uLAW ("Hello world\n"speech); return 0;} </pre> Follow the instructions above and create a Source File named Makefile and copy the next code: <pre>all: main.c $(CCNOT TESTED) -g -O0 -o main main.c'''
clean===Not included (IGEP GST DSP):=== rm '''ACCLCDEC -f main main.o</pre> CC is an environment variable that links with arm-poky-linux-gnueabi-gcc binary DEC AACLE (IGEP SDK GCCNOT TESTED). Environment variables are a set of dynamic named values that can affect the way running processes will behave on a computer. It is very useful because you can generate a Makefile that can be compiled with multiple toolchains. '''
IGEP SDK Environtment variables are located at /opt/poky/1.2/environment'''AACLDDEC -setup-armv7a-vfp-neon-poky-linux-gnueabi. You can add this variables using "source" command or see your current environtment variables using "env" command. > DEC AACLD (NOT TESTED)'''
If you need to develop more complex programs, you should read this [http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/ Makefile tutorial].<br'''WMA9 ->DEC WMA9 (COMPILING ISSUES)'''
=== Compile your program: ==='''ACCLCENC -> ENC AACLE (NOT TESTED)'''
Now you can compile, run and debug your program using the MANUAL IGEP SDK v3.0 VM<br'''ACCHEENC ->ENC AACHE (NOT TESTED)'''
= How to develop with Qt under IGEP ='''AACLDENC -> ENC AACLD (NOT TESTED)'''
== Overview =='''WMA8 -> ENC WMA8 (NOT TESTED)'''
This guide can be helpful to learnt to develop Qt applications under IGEP Boards. Qt is a cross'''Problems adding codecs into igep-platform application framework that is widely used for developing application software with a graphical user interface, and also used for developing nongst-GUI programs such as command-line tools and consoles for servers. You can get more information [http://qt.nokia.com/ here]. dsp'''
== Requirements<br> DM3730==
There are some requisites to follow this guide=== DM3730: Decode a MP3 file (OK) (ADDED TO REPOSISTORIES)===
*IGEP SDK VM: follow the IGEP&nbsp;SDK&nbsp;SOFTWARE&nbsp;USER&nbsp;MANUAL (chapter 2.3 "Setting up and running the VM")<br> *IGEP Qt Demo: follow the IGEP&nbsp;SDK SOFTWARE&nbsp;USER&nbsp;MANUAL (chapter 6.1 "Create IGEP firmware bootable micro-sd card") and install&nbsp;qt4e-demo-image-igep00x0.tar.bz2 instead IGEP firmware. *[http://www.isee.biz/products/processor-boards/igepv2-board IGEPv2], [http://www.isee.biz/products/expansion-boards/product-igep-berlin IGEP BERLIN] or [http://www.isee.biz/products/expansion-boards/product-igep-paris IGEP PARIS] *MicroSD Card (at least 2Gbytes)<br>'''under contruction'''
'''''"Link software "''does not have an accelerated audio decoder element'''
== Download and install Qt demo image to a SD<br> ==- Compiled gst-plugins-ugly using yocto tools
Once you have open IGEP SDK VM, launch a terminal and type: <pre>cd Desktop/wget http://downloads.isee.biz/denzil/binary/qt4e-demorpm -igst-plugins-imageugly-igep00x00.tar*.bz2 git clone git://git.isee.biz/pub/scm/igep-tools.gitcd igep-tools/scripts</pre> Insert a SD-Card media and use the igep-media-create script to copy the firmware to SD-Card media, required options are: rpm
*-rpm -i libmad0-mmc &lt;/dev/sdX&gt;0.*.rpm
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unformated MMC Card - rpm -i gst-plugins-ugly-mad-0.*.rpm
*-gst-image &lt;filename&gt;launch filesrc location=sample.mp3 ! mad ! volume volume=0.25 ! alsasink
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specify === DM3730: Decode a RA or RM audio file used to create the bootable SD card. (ERRORS)===
*gst-launch -machine &lt;machine&gt;-gst-debug-level=3 filesrc location=sample.ra ! rmdemux ! volume volume=0.25 ! alsasink
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specify the machinehttp://www. Options are igep0020, igep0030 or igep0032<br> superluminal.com/andalib/ra/listen.ra
For example, assuming the SD card device takes "/dev/sdf" and you have and IGEPv2 board (igep0020), type: <pre>./igepgst-mediaplugins-create ugly-rmdemux-mmc /dev/sdf --machine igep0020 -0.10.19-image /home/jdoe/Desktop/qt4e-demo-image-igep00x0r1.tararmv7a.bz2</pre> This should give you a bootable SD-card<br>rpm
== Prepare Qt demo image ==libgstsdp-0.10-0-0.10.36-r3.armv7a.rpm:libgstsdp-0.10-0 libgstsdp-0.10.so.0
Qt demo image is a root filesystem build by Yocto that contains Qt embedded libraries, also this image has some Qt examples for testing purposeslibgstrtsp-0. 10-0-0.10.36-r3.armv7a.rpm:libgstrtsp-0.10-0 libgstrtsp-0.10.so.0
This image doesn't have openssh and gdbserver, so we should install these packages to develop Qt applications. Open a shell prompt using serial communication (IGEP&nbsp;SDK&nbsp;SOFTWARE&nbsp;MANUAL chapter 3.1 "Using serial mode") and type the following commands''Error: <pre>zypper refzypper in opensshzypper in gdbserver</pre> Now you can connect between IGEP and VM using SSH protocol:<br> <pre>ssh root@"IGEP IP for example: 192.168.5.1"</pre>'''
== Using Qt Creator 0:00:00.084839071 ==1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC
=== First Steeps0:00:00.085052695 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<brrmdemux0> ===Bogus looking header, unprintable FOURCC
==== Open Program0:00:00.085540976 1550 0xa137b0 WARN rmdemux rmdemux.c:1057:gst_rmdemux_chain:<brrmdemux0> ====Unknown object_id .ra4
Go to Applications -&gt; IGEP development -&gt; Qt Creator0:00:00.085693564 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<brrmdemux0> Bogus looking header, unprintable FOURCC
{| width="200" cellspacing="1" cellpadding="1" border="1"|-| [[Image0:Openqtv200:00.085815634 1550 0xa137b0 WARN rmdemux rmdemux.png|331x249px]]<br> | [[Imagec:1012:gst_rmdemux_chain:Qtopenedv2.png|331x249px]]<brrmdemux0>|}Bogus looking header, unprintable FOURCC
==== Open an example0:00:00.085907187 1550 0xa137b0 WARN rmdemux rmdemux.c:1057:gst_rmdemux_chain:<brrmdemux0> ====Unknown object_id RaTC
Copy your desired example from=== DM3730: /opt/QtSDK/Examples/4.7 to your desktop.<br>Decode an AAC audio file (OK)===
{| widthEXTRA_OECONF +="200" cellspacing--disable-examples --disable-experimental --disable-sdl --disable-cdaudio --disable-directfb \ --with-plugins="1" cellpadding="1" border="1"musicbrainz,wavpack,ivorbis,mpegvideoparse,'''faad2''' --disable-vdpau --disable-apexsink \| --disable-orc"| [[ImageInstall:Qtcopyanexamplev2.png|496x373px]]|}
'''NOTE:''' some examples (like hellogl) cannot be compiled to ARM
Open this example with Qt Creator, set Desktop target and use for each Qt Version one debug and one release faad2-2.7-r2.armv7a.rpmlibfaad2-2.7-r2.armv7a.rpmgst-plugins-bad-faad-0.10.23-r2.armv7a.rpm
{| cellspacing="1" cellpadding="1" border="1" style="width: 675px; height: 256px;"'''maybe there are necessary more packages, compare actual gst-bad-recipe and add changes. Necessary add faad2 recipe'''|<pre>bitbake faad2 gst-plugins-bad</pre>| [[Image:Qtopenanexamplev2<pre> rpm -i faad2-2.7-r2.png|331x249px]] armv7a.rpm| [[Image:Qtopenanexample2v2rpm -i libfaad2-2.7-r2.armv7a.png|331x249px]] rpm| [[Image:Qtopenanexample3v2rpm -i gst-plugins-bad-faad-0.10.23-r2.1.armv7a.png|331x249px]]rpm|} </pre>
gst-launch --gst-debug-level=3 filesrc location=sample.aac ! faad ! volume volume= ARM Platform<br> ===0.10 ! alsasink
=== Build Programs <br> = DM3730: Decode an WMA audio file (OK)====
To compile to ARM for IGEP go to Project use the following configuration at Projects field <pre>bitbake gst-&gt; Build: ffmpeg</pre>
{| width<pre>gst-launch -v filesrc location="200" cellspacing="1" cellpaddingsample.wma ! asfdemux ! decodebin ! audioconvert ! volume volume="1" border="1"|-| [[Image:Qtarmconfigv20.png|496px]]|}25 ! alsasink </pre>
'''NOTE=== DM3730:''' Use Debug Release if you want to debug later Decode an OGG audio file (OK)===
Compile with: Build-&gt;Clean All and Build-&gt;Build All '''Into repositories (Ctrl+Shift+Bbase plugins). :'''
==== Run Programs ====http://upload.wikimedia.org/wikipedia/en/0/04/Rayman_2_music_sample.ogg
Once you compiled the program pass it from VM to IGEP&nbsp;via SSH, gst-launch a terminal and type: <pre>scp "pathtobinary" root@"IGEP IP for example: 192-v filesrc location=sample.168.5.1":/home/root</pre> Get a remote shell prompt and run your program: <br> <pre>ssh root@"IGEP IP for example: 192.168.5.1"./"binary" "optional:arguments"</pre> {| width="200" cellspacing="1" cellpaddingogg ! oggdemux ! vorbisdec ! audioconvert ! volume volume="1" border="1"|-| [[Image:Qtrunarmv20.jpg|496x373px]]|}25 ! alsasink
'''NOTE:''' You cannot use igep-remote-x program because Qt-demo image doesn't have X installed.<br>== BASE0033 CONNECTOR SUMMARY TABLE==
==== Debug Programs ==Configure a static IP using the same private network range ==
Once you compiled the program pass it from VM to IGEP&nbsp;via SSH, launch a terminal and type: <pre>scp "pathtobinary" root@"IGEP IP for example: 192.168.5.1":/home/root</pre> Get a remote shell prompt and run gdbserver: <pre>ssh root@"IGEP IP for example: 192.168.5.1"gdbserver "hostip,for example "VM IP for example: 192.168.5.10":1000 "pathtobinary" "optional:armguments"</pre> Now use the followings steps to debug program:<br> '''under construction'''
{| cellspacing="1" cellpadding="1" border="1" width="200"|-| [[Image:Qtdebugx861v2.png|331x249px]] | [[Image:Qtarmdebug1v2.png|331x249px]]|-| [[Image:Qtarmdebug2v2.png|331x249px]] | [[Image:Qtarmdebug3v2.png|331x249px]]|}IGEP Firmware Yocto uses the following Ethernet network configuration (IP addresses)
Set breakpoints in your source code *eth0 − 192.168.5.1*eth0:0 − assigned via dhcp.
At Start Debugger window (image 3), This Ethernet network configuration is really useful when you work using a Linux operating system like IGEP SDK Virtual Machine. Because you use the following configurationeth0 device to communicate easily with your board and eth0: 0 device to get Internet acces using dhcp protocol.
*Debugger: /opt/poky/1.2/sysroots/i686-pokysdk-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb *Local executable: "pathtohostbinary" *Host and port: "IGEP IP But some scenarios this network configuration is not useful, for example: 192.168.5.1":1000 *Architecture: arm *GNU target: armif you use a non-none-linux-gnueabi *Sysroot: /opt/poky/1Linux operating system, connect to two IP private range interfaces is not simple.2/sysroots/armv7a-vfp-neon-poky-linuxThis How-gnueabi *Location of debugging information: (empty) *Override host GDB start script. (empty)to can be useful to
<br> (Make diagram one: IGEP and Linux defualt communication. Diagram 2 IGEP and other SO alternative configuration)
'''NOTE:''' You cannot use = igep-remote-x program because Qt-demo image doesn't have X installed.<br>ini parameters =
The kernel command line syntax is name=== x86 Platform<br> ===value1. These next parameters are supported in igep.ini since IGEP-X_Loader 2.4.0-2:
==== Build Programs [kernel] ====
To compile to x86 go to Project use the following configuration at Projects field -&gt; Build:  {| widthalign="200JUSTIFY" cellspacingcellpadding="1" cellpaddingborder="1" borderstyle="1width: 900px; height: 240px;"|-| '''Parameter Name''' | '''Description''' | '''Default value''' | '''Comments'''|-| kaddress | Kernel copy address | =0x80008000 | Hex memory address|-| rdaddress | Ram Disk location address | =0x81600000 | Hex memory address;<br>disabled by default|-| serial.low | Serial number (low part) | =00000001 | Numeric|-| serial.high | Serial number (high part) | =00000000 | Numeric|-| revision | Revision ID | =0003 | Numeric|-| kImageName | Kernel, binary image name | =zImage | Kernel or binary image name|-| kRdImageName | Kernel RAM Disk Image Name | - | Ram Disk image name|-| MachineID | Machine ID (kernel ID) | ;IGEPv2<br>=2344 | ;Module<br>=2717<br>;Proton<br>=3203
|-
| Mode | Boot Mode | ;Linux kernel<br>=kernel | ;Other image (like uboot)<br>[[Image:Qtx86configv2.png|496px]binary image]
|}
'''NOTE:''' Use Debug Release if you want to debug later<br> === [kparams] ===
Compile with{| align="JUSTIFY" cellpadding="1" border="1" style="width: 900px; height: Build1095px;"|-| '''Parameter Name''' | '''Description''' | '''Default value''' | '''Comments'''|-| buddy | Enable/disable expansion board support | &gtnbsp;Clean All ;IGEPv2 Expansion Board support<br>=igep0022 | &nbsp;;Berlin and BuildParis Expansion Board support<br>=base0010<br>New York Expansion<br>=ilms0015|-&gt;Build All (Ctrl+Shift+B). | console | Setup the kernel console parameters | =ttyO2,115200n8 | -|-| earlyprintk | Enable early printk | - | -|-| mem | Setup the Board Memory Configuration | =430M | -|-| boot_delay | Setup the boot delay | =0 | -|-| mpurate | Setup ARM Processor Speed | - | -|-| loglevel | Setup the loglevel | - | -|-| debug | Enable kernel debug output | - | -|-| fixrtc | Fix RTC variable | - | -|-| nocompcache | Configure nocompcache variable | = Run Programs 1 | -|-| omapfb.mode | Configure frame bugger configuration | =dvi:hd720-16@50 | &nbsp;;Other configuration<br>=dvi:1280x720MR-16@60|-| vram | Configure Video RAM assigned to every frame buffer | - | -|-| omapfb.vram | Configure Video RAM assigned to every frame buffer | - | -|-| omapfb.debug | Configure frame buffer debug output | - | -|-| omapdss.debug | Configure DSS Video debug output | - | -|-| smsc911x.mac0 | Configure Board Ethernet Mac Address | =0xb2,0xb0,0x14,0xb5,0xcd,0xde | For IGEP BERLIN|-| smsc911x.mac1 | Configure Board Ethernet Mac Address | =0xb2,0xb0,0x14,0xb5,0xcd,0xdf  Use run button | For IGEP BERLIN (Ctrl+Ronly with IGEP PROTON)|-| smsc911x. mac | Configure Board Ethernet Mac Address | =0xb2,0xb0,0x14,0xb5,0xcd,0xde | For IGEPv2, IGEP PROTON, IGEP PARIS and IGEP BERLIN|-| ubi.mtd | Fot UBI FS boot | - | -|-| root | Configure root directory for MMC, NFS or UBI {| width&nbsp;;For mmc memory<br>="200" cellspacing/dev/mmcblk0p2 rw rootwait | &nbsp;;For flash memory<br>="1" cellpadding/dev/mtdblock2|-| nfsroot | For NFS boot | - | -|-| rootfstype | For UBI FS boot | - | -|-| ip | For NFS boot | - | -|-| init | Assign init program | - | -|-| musb_hdrc.debug | USB debug | - | -|-| musb_hdrc.use_dma | USB over network | - | -|-| libertas.libertas_debug | Configure libertas debug | - | -|-| board.ei485 | Enable/disable RS485 | &nbsp;;Enable RS485<br>="1" borderyes | &nbsp;;Disable RS485<br>="1"no
|-
| [[Image:Qtrunx86v2board.pngmodem |496x373px]]Enable/disable GPRS modem |} ==== Debug Programs ===&nbsp;;Enable modem (IGEPv2 Expansion)<br>=no  Set breakpoints in your source code and press debug button | &nbsp;;Enable modem (F5IGEPv2 Expansion)  {| width="200" cellspacing="1" cellpadding="1" border<br>="1"yes
|-
| [[Image:Qtdebugx861v2buddy.pngrevision |331x249px]Enable hardware buddy revision [A or B] | [[Image:Qtdebugx862v2.pngOnly for base0010<br>=A |331x249px]]Only for base0010<br>=B
|}
 
= Set up a NFS between IGEP Board and IGEP VM =
 
'''Under construction'''
 
== Overview ==
 
'''Under construction'''
 
'''EXPLAIN NFS BOOT SEQUENCE'''
 
== Requirements ==
 
'''Under construction'''
 
== Set up NFS at VM ==
 
=== Download and extract IGEP root filesystem ===
 
ISEE mantains two rootfs builded with Yocto tools:
 
*IGEP firmware: default software shipped in all IGEP Boards. It comes with some documentation and tools, so you need to uncompress again to extract rootfs
<pre>wget http://downloads.isee.biz/denzil/binary/igep_firmware-yocto-1.2.1-1.tar.bz2
tar jxf igep_firmware-yocto-*.tar.bz2
cd igep_firmware-yocto-*
sudo mkdir /srv/{your_rootfs_dir}
sudo tar jxf demo-image-sato-igep00x0.tar.bz2 -C /srv/{your_rootfs_dir} </pre>
*Qt demo: demo filesystem with Qt libraries and examples
<pre>wget http://downloads.isee.biz/denzil/binary/qt4e-demo-image-igep00x0.tar.bz2
sudo mkdir /srv/{your_rootfs_dir}
sudo tar jxf qt4e-demo-image-igep00x0.tar.bz2 -C /srv/{your_rootfs_dir}</pre>
 
=== Configure NFS Server ===
 
*Install nfs-kernel-server:
<pre>sudo apt-get install nfs-kernel-server </pre>
*Make directory exports.d:<br>
<pre>sudo mkdir /etc/exports.d </pre>
Edit /etc/exports file, add the following line and save the changes:
<pre>/srv/{your_rootfs_dir} *(rw,sync,no_subtree_check,no_root_squash)</pre>
Export NFS file system:
<pre>sudo exportfs -a</pre>
 
== Set up NFS at IGEP Board ==
 
=== MicroSD boot ===
 
Configure igep.ini file located at boot partition:<br>
 
*Comment MMC boot:
<pre>; --- Configure MMC boot ---
;root=/dev/mmcblk0p2 rw rootwait</pre>
*Add NFS configuration:
<pre>; --- Configure NFS boot ---
ip=192.168.5.1:192.168.5.10::255.255.255.0::eth0
root=/dev/nfs
nfsroot=192.168.5.10:/srv/{your_rootfs_dir}</pre>
=== Flash boot<br> ===
 
Boot IGEP with a MicroSD card without NFS support. Modify igep.ini located in flash memory:
<pre>mkdir /tmp/temp
mount -t jffs2 /dev/mtdblock1 /tmp/temp </pre>
Now, mtdblock1 partition is mounted at /tmp/temp directory:<br>
 
*Comment JFFS2 FS boot:
<pre>; --- Configure JFFS2 FS boot ---
;root=/dev/mtdblock2
;rootfstype=jffs2</pre>
*Add NFS configuration:
<pre>; --- Configure NFS boot ---
ip=192.168.5.1:192.168.5.10::255.255.255.0::eth0
root=/dev/nfs
nfsroot=192.168.5.10:/srv/{your_rootfs_dir}</pre>
 
== Test NFS ==
 
'''Under construction'''
4,199
edits