Difference between revisions of "User:Pau pajuelo"

From IGEP - ISEE Wiki

Jump to: navigation, search
m (DM3730: Decode an AAC audio file (OK))
 
Line 1: Line 1:
= How to develop with Qt under IGEP =
+
= TODO: =
  
== Overview  ==
+
Categorize new tutorials
  
This guide can be helpful to learnt to develop Qt applications under IGEP Boards. Qt is a cross-platform application framework that is widely used for developing application software with a graphical user interface, and also used for developing non-GUI programs such as command-line tools and consoles for servers. You can get more information [http://qt.nokia.com/ here].
+
How to manage the kernel modules on Linux
  
== Requirements<br>  ==
+
How do I edit my kernel command line
  
There are some requisites to follow this guide:
+
== AUDIO DSP-ARM==
  
*[http://isee.biz/component/zoo/item/igep-virtual-machine-sdk-yocto IGEP SDK VM]: follow the IGEP&nbsp;SDK&nbsp;SOFTWARE&nbsp;USER&nbsp;MANUAL (chapter 2.3 "Setting up and running the VM")<br>
+
===Included (IGEP GST DSP):===
*[http://downloads.isee.biz/denzil/binary/qt4e-demo-image-igep00x0.tar.bz2 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.
+
'''AACHEDEC -> DEC AACHE (OK)'''
*[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>
 
  
== Download and install Qt demo image to a SD<br>  ==
+
http://download.wavetlan.com/SVV/Media/HTTP/FAAC-HE-AAC.aac
  
Once you have open IGEP SDK VM, launch a terminal and type:
+
gst-launch --gst-debug-level=2 filesrc location=sampleaache.m4a ! TIAuddec1 codecName=aachedec engineName=codecServer ! volume volume=0.25 ! alsasink  sync=false
<pre>cd Desktop/
 
wget http://downloads.isee.biz/denzil/binary/qt4e-demo-image-igep00x0.tar.bz2
 
git clone git://git.isee.biz/pub/scm/igep-tools.git
 
cd 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:
 
  
*--mmc &lt;/dev/sdX&gt;
+
outofthebox->ok
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unformated MMC Card
+
----
  
*--image &lt;filename&gt;
+
'''MP3DEC -> DEC MP3 (AUDIO ERRORS)'''
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specify file used to create the bootable SD card.  
+
- Followed README file from ISEE - IGEP DSP - GST + DMAI Support Package 3.40.00
  
*--machine &lt;machine&gt;
+
http://www.stephaniequinn.com/Music/Canon.mp3
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specify the machine. Options are igep0020, igep0030 or igep0032<br>
+
gst-launch --gst-debug-level=2 filesrc location=Canon.mp3 ! TIAuddec1 codecName=mp3dec engineName=codecServer ! volume volume=0.25 ! alsasink  sync=false
  
For example, assuming the SD card device takes "/dev/sdf" and you have and IGEPv2 board (igep0020), type:
+
'''Random fatal bit error'''
<pre>./igep-media-create --mmc /dev/sdf --machine igep0020 --image /home/jdoe/Desktop/qt4e-demo-image-igep00x0.tar.bz2</pre>
 
This should give you a bootable SD-card<br>
 
  
== Prepare Qt demo image  ==
+
'''mp3-plugin doesn't resolve the error'''
  
Qt demo image is a root filesystem build by Yocto that contains Qt embedded libraries, also this image has some Qt examples for testing purposes.
+
----
  
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:
+
'''G711DEC -> DEC PCM uLAW (speech) (NOT TESTED)'''
<pre>zypper ref
 
zypper in openssh
 
zypper 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  ==
 
  
=== First Steeps<br> ===
+
'''G711ENC -> ENC PCM uLAW (speech) (NOT TESTED)'''
  
==== Open Program:<br>  ====
+
===Not included  (IGEP GST DSP):===
 +
'''ACCLCDEC -> DEC AACLE (NOT TESTED)'''
  
Go to Applications -&gt; IGEP development -&gt; Qt Creator<br>  
+
'''AACLDDEC -> DEC AACLD (NOT TESTED)'''
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
'''WMA9 -> DEC WMA9 (COMPILING ISSUES)'''
|-
+
 
| [[Image:Openqtv2.png|331x249px]]<br>
+
'''ACCLCENC -> ENC AACLE (NOT TESTED)'''
| [[Image:Qtopenedv2.png|331x249px]]<br>
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''  
+
'''ACCHEENC -> ENC AACHE (NOT TESTED)'''
  
==== Open an example:<br> ====
+
'''AACLDENC -> ENC AACLD (NOT TESTED)'''
  
Copy your desired example from: /opt/QtSDK/Examples/4.7 to your desktop.<br>  
+
'''WMA8 -> ENC WMA8 (NOT TESTED)'''
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
'''Problems adding codecs into igep-gst-dsp'''
|-
 
| [[Image:Qtcopyanexamplev2.png|496x373px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
== DM3730==
  
'''NOTE:''' some examples (like hellogl) cannot be compiled to ARM, for this How-to is used calculator example.
+
=== DM3730: Decode a MP3 file (OK) (ADDED TO REPOSISTORIES)===
  
Open this example with Qt Creator, set Desktop target and use for each Qt Version one debug and one release
+
'''under contruction'''
  
{| border="1" width="757" cellspacing="1" cellpadding="1"
+
'''does not have an accelerated audio decoder element'''
|-
 
| [[Image:Qtopenanexamplev2.png|250x188px]]
 
| [[Image:Qtopenanexample2v2.png|250x188px]]
 
| [[Image:Qtopenanexample3v2.png|250x188px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
- Compiled gst-plugins-ugly using yocto tools
  
=== ARM Platform<br>  ===
+
- rpm -igst-plugins-ugly-0.*.rpm
  
==== Build Programs <br>  ====
+
- rpm -i libmad0-0.*.rpm
  
To compile to ARM for IGEP go to Project use the following configuration at Projects field -&gt; Build:
+
- rpm -i gst-plugins-ugly-mad-0.*.rpm
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
- gst-launch filesrc location=sample.mp3 ! mad ! volume volume=0.25 ! alsasink
|-
 
| [[Image:Qtarmconfigv2.png|496px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
=== DM3730: Decode a RA or RM audio file (ERRORS)===
  
'''NOTE:''' Use Debug build if you want to debug later
+
gst-launch --gst-debug-level=3 filesrc location=sample.ra ! rmdemux ! volume volume=0.25 ! alsasink
  
Compile with: Build-&gt;Clean All and Build-&gt;Build All (Ctrl+Shift+B).  
+
http://www.superluminal.com/andalib/ra/listen.ra
  
==== Run Programs  ====
+
gst-plugins-ugly-rmdemux-0.10.19-r1.armv7a.rpm
  
Once you compiled the program pass it from VM to IGEP&nbsp;via SSH, launch a terminal and type:
+
libgstsdp-0.10-0-0.10.36-r3.armv7a.rpm:
<pre>scp "pathtobinary" root@"IGEP IP for example: 192.168.5.1":/home/root</pre>
+
libgstsdp-0.10-0
Get a remote shell prompt and run your program: <br>
+
libgstsdp-0.10.so.0
<pre>ssh root@"IGEP IP for example: 192.168.5.1"
 
./"binary"  "optional:arguments"</pre>
 
{| border="1" width="200" cellspacing="1" cellpadding="1"
 
|-
 
| [[Image:Qtrunarmv2.jpg|496x373px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
libgstrtsp-0.10-0-0.10.36-r3.armv7a.rpm:
 +
libgstrtsp-0.10-0
 +
libgstrtsp-0.10.so.0
  
'''NOTE:''' You cannot use igep-remote-x program because Qt-demo image doesn't have X installed.<br>
+
'''Error:'''  
  
==== Debug Programs ====
+
0:00:00.084839071 1550  0xa137b0 WARN                rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC
  
'''NOTE''': When you debug programs using Qt Creator "Step in" and "Step Out" are not supported, because dinamic libraries symbols are not loaded by gdb.
+
0:00:00.085052695  1550  0xa137b0 WARN                rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC
  
Once you compiled the program pass it from VM to IGEP&nbsp;via SSH, launch a terminal and type:  
+
0:00:00.085540976  1550  0xa137b0 WARN                rmdemux rmdemux.c:1057:gst_rmdemux_chain:<rmdemux0> Unknown object_id .ra4
<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 "VM IP for example: 192.168.5.10":1000 "pathtobinary" "optional:armguments"
 
</pre>
 
Now use the followings steps to debug program:<br>
 
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
0:00:00.085693564  1550  0xa137b0 WARN                rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC
|-
 
| [[Image:Qtdebugx861v2.png|331x249px]]
 
| [[Image:Qtarmdebug1v2.png|331x249px]]
 
|-
 
| [[Image:Qtarmdebug2v2.png|331x249px]]
 
| [[Image:Qtarmdebug3v2.png|331x249px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
0:00:00.085815634  1550  0xa137b0 WARN                rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC
  
Image 1: set breakpoints in your source code
+
0:00:00.085907187  1550  0xa137b0 WARN                rmdemux rmdemux.c:1057:gst_rmdemux_chain:<rmdemux0> Unknown object_id RaTC
  
Image 3: use the following configuration:  
+
=== DM3730: Decode an AAC audio file (OK)===
  
*Debugger: /opt/poky/1.2/sysroots/i686-pokysdk-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb
+
EXTRA_OECONF += "--disable-examples --disable-experimental --disable-sdl --disable-cdaudio --disable-directfb \
*Local executable: "pathtohostbinary"
+
                --with-plugins=musicbrainz,wavpack,ivorbis,mpegvideoparse,'''faad2''' --disable-vdpau --disable-apexsink \
*Host and port: "IGEP IP for example: 192.168.5.1":1000
+
                --disable-orc"
*Architecture: arm
+
Install:
*GNU target: arm-none-linux-gnueabi
 
*Sysroot: (empty)<br>
 
*Location of debugging information: (empty)
 
*Override host GDB start script: download [http://labs.isee.biz/images/a/a1/Gdbinit_for_qt.tar.bz2 gdbinit] file, uncompress to home folder and select it (/home/jdoe/gdbinit)<br>
 
  
'''NOTE:''' You cannot use igep-remote-x program because Qt-demo image doesn't have X installed.<br>
 
  
=== x86 Platform<br>  ===
+
faad2-2.7-r2.armv7a.rpm
 +
libfaad2-2.7-r2.armv7a.rpm
 +
gst-plugins-bad-faad-0.10.23-r2.armv7a.rpm
  
==== Build Programs ====
+
'''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>
 +
<pre> rpm -i faad2-2.7-r2.armv7a.rpm
 +
rpm -i libfaad2-2.7-r2.armv7a.rpm
 +
rpm -i gst-plugins-bad-faad-0.10.23-r2.1.armv7a.rpm
 +
  </pre>
  
To compile to x86 go to Project use the following configuration at Projects field -&gt; Build:
+
gst-launch --gst-debug-level=3 filesrc location=sample.aac ! faad ! volume volume=0.10 ! alsasink
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
==== DM3730: Decode an WMA audio file (OK)====
|-
 
| [[Image:Qtx86configv2.png|496px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
<pre>bitbake gst-ffmpeg</pre>
  
'''NOTE:''' Use Debug build if you want to debug later
+
<pre>gst-launch -v filesrc location=sample.wma ! asfdemux ! decodebin ! audioconvert ! volume volume=0.25 ! alsasink  </pre>
  
<br>
+
=== DM3730: Decode an OGG audio file (OK)===
  
Compile with: Build-&gt;Clean All and Build-&gt;Build All (Ctrl+Shift+B).
+
'''Into repositories (base plugins):'''
  
==== Run Programs  ====
+
http://upload.wikimedia.org/wikipedia/en/0/04/Rayman_2_music_sample.ogg
  
Use run button (Ctrl+R).  
+
gst-launch -v filesrc location=sample.ogg ! oggdemux ! vorbisdec ! audioconvert ! volume volume=0.25 ! alsasink
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
== BASE0033 CONNECTOR SUMMARY TABLE==
|-
 
| [[Image:Qtrunx86v2.png|496x373px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
== Configure a static IP using the same private network range ==
  
==== Debug Programs  ====
+
'''under construction'''
  
Set breakpoints in your source code and press debug button (F5)  
+
IGEP Firmware Yocto uses the following Ethernet network configuration (IP addresses)
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
*eth0 − 192.168.5.1
|-
+
*eth0:0 − assigned via dhcp.  
| [[Image:Qtdebugx861v2.png|331x249px]]
 
| [[Image:Qtdebugx862v2.png|331x249px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
This Ethernet network configuration is really useful when you work using a Linux operating system like IGEP SDK Virtual Machine. Because you use eth0 device to communicate easily with your board and eth0:0 device to get Internet acces using dhcp protocol.
  
= Set up a NFS between IGEP Board and IGEP VM  =
+
But some scenarios this network configuration is not useful, for example: if you use a non-Linux operating system, connect to two IP private range interfaces is not simple. This How-to can be useful to
  
== Overview  ==
+
(Make diagram one: IGEP and Linux defualt communication. Diagram 2 IGEP and other SO alternative configuration)
  
Network File System (NFS) is a Distributed file system protocol originally developed by Sun Microsystems in 1984, allowing a user on a client Computer to access files over a network in a manner similar to how local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system. The Network File System is an open standard defined in RFCs, allowing anyone to implement the protocol. More information [http://en.wikipedia.org/wiki/Network_File_System here].<br>
+
= igep.ini parameters  =
  
In IGEP Boards, NFS protocol can be used to mount a whole rootfs partition located in a remote disk like Virtual Machine, this method can be useful for:<br>
+
The kernel command line syntax is name=value1. These next parameters are supported in igep.ini since IGEP-X_Loader 2.4.0-2:  
  
*Your remote rootfs will not be limited by flash or MicroSD storage.
+
=== [kernel]  ===
*You can transfer binaries without using remote connections.
 
*You can test other rootfs only editing igep.ini configuration file.
 
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
{| align="JUSTIFY" cellpadding="1" border="1" style="width: 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
 
|-
 
|-
| [[Image:Nfs1 filesystem.png|331px]]
+
| Mode
| [[Image:Nfs2 filesystem.png|331px]]
+
| Boot Mode
 +
| ;Linux kernel<br>=kernel
 +
| ;Other image (like uboot)<br>[binary image]
 
|}
 
|}
  
'''<sup>Click to enlarge image</sup>'''
+
=== [kparams]  ===
  
== Requirements  ==
+
{| align="JUSTIFY" cellpadding="1" border="1" style="width: 900px; height: 1095px;"
 
+
|-
There are some requisites to follow this guide:
+
| '''Parameter Name'''
 
+
| '''Description'''
*[http://isee.biz/component/zoo/item/igep-virtual-machine-sdk-yocto IGEP SDK VM]: follow the IGEP&nbsp;SDK&nbsp;SOFTWARE&nbsp;USER&nbsp;MANUAL (chapter 2.3 "Setting up and running the VM")<br>  
+
| '''Default value'''
*[http://downloads.isee.biz/denzil/binary/qt4e-demo-image-igep00x0.tar.bz2 IGEP Qt Demo] or [http://isee.biz/component/zoo/item/igep-firmware-yocto-1-2 IGEP Firmware]: follow the IGEP&nbsp;SDK SOFTWARE&nbsp;USER&nbsp;MANUAL (chapter 6.1 "Create IGEP firmware bootable micro-sd card") <br>  
+
| '''Comments'''
*IGEP Board with Ethernet or Wifi connection<br>  
+
|-
*MicroSD Card (at least 2Gbytes)
+
| buddy
 
+
| Enable/disable expansion board support
== Set up NFS at VM  ==
+
| &nbsp;;IGEPv2 Expansion Board support<br>=igep0022
 
+
| &nbsp;;Berlin and Paris Expansion Board support<br>=base0010<br>New York Expansion<br>=ilms0015
=== Download and extract IGEP root filesystem  ===
+
|-
 
+
| console
ISEE mantains two rootfs builded with Yocto tools:
+
| Setup the kernel console parameters
 
+
| =ttyO2,115200n8
*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
+
| earlyprintk
cd igep_firmware-yocto-*
+
| Enable early printk
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
+
| mem
sudo mkdir /srv/{your_rootfs_dir}
+
| Setup the Board Memory Configuration
sudo tar jxf qt4e-demo-image-igep00x0.tar.bz2 -C /srv/{your_rootfs_dir}</pre>
+
| =430M
=== Configure NFS Server  ===
+
| -
 
+
|-
*Install nfs-kernel-server:
+
| boot_delay
<pre>sudo apt-get install nfs-kernel-server </pre>
+
| Setup the boot delay
*Make directory exports.d:<br>
+
| =0
<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>
+
| mpurate
Export NFS file system:
+
| Setup ARM Processor Speed
<pre>sudo exportfs -a</pre>
+
| -  
'''NOTE: '''You can have as many rootfs as you want
+
| -
 
+
|-
== Set up NFS at IGEP Board  ==
+
| loglevel
 
+
| Setup the loglevel
=== MicroSD boot  ===
+
| -
 
+
| -
Configure igep.ini file located at boot partition:<br>
+
|-
 
+
| debug
*Comment MMC boot:
+
| Enable kernel debug output
<pre>;  --- Configure MMC boot ---
+
| -
;root=/dev/mmcblk0p2 rw rootwait</pre>
+
| -
*Add NFS configuration:
+
|-
<pre>;  --- Configure NFS boot ---
+
| fixrtc
ip=192.168.5.1:192.168.5.10::255.255.255.0::eth0
+
| Fix RTC variable
root=/dev/nfs
+
| -
nfsroot=192.168.5.10:/srv/{your_rootfs_dir}</pre>
+
| -
Save changes, plug MicroSD card and power up your IGEP.<br>  
+
|-
 
+
| nocompcache
=== Flash boot<br>  ===
+
| Configure nocompcache variable
 
+
| =1
Boot IGEP with a MicroSD card without NFS support.
+
| -
<pre>mkdir /tmp/temp
+
|-
mount -t jffs2 /dev/mtdblock1 /tmp/temp </pre>
+
| omapfb.mode
Now, mtdblock1 partition is mounted at /tmp/temp directory. Modify igep.ini located in: /tmp/temp/igep.ini
+
| Configure frame bugger configuration
 
+
| =dvi:hd720-16@50
*Comment JFFS2 FS boot:
+
| &nbsp;;Other configuration<br>=dvi:1280x720MR-16@60
<pre>;  --- Configure JFFS2 FS boot ---
+
|-
;root=/dev/mtdblock2
+
| vram
;rootfstype=jffs2</pre>
+
| Configure Video RAM assigned to every frame buffer
*Add NFS configuration:
+
| -
<pre>;  --- Configure NFS boot ---
+
| -
ip=192.168.5.1:192.168.5.10::255.255.255.0::eth0
+
|-
root=/dev/nfs
+
| omapfb.vram
nfsroot=192.168.5.10:/srv/{your_rootfs_dir}</pre>
+
| Configure Video RAM assigned to every frame buffer
Save changes, power down IGEP, unplug MicroSD card and power up your board.
+
| -
 
+
| -
= Install and configure Codeblocks for IGEP devices <br>  =
+
|-
 
+
| omapfb.debug
== Overview  ==
+
| Configure frame buffer debug output
 
+
| -  
Codeblocks is a free and open source, cross-platform IDE which supports multiple compilers including GCC and MSVC. It is developed in C++ using wxWidgets as the GUI toolkit. Using a plugin architecture, its capabilities and features are defined by the provided plugins. Currently, Codeblocks is oriented towards C and C++. It can also be used for creating ARM, AVR, D, DirectX, FLTK, Fortran, GLFW, GLUT, GTK+, Irrlicht, Lightfeather, MATLAB, OGRE, OpenGL, Qt, SDL, SFML, STL, SmartWin and wx programs and applications, although in some cases installing third-party SDKs or frameworks is necessary. More information [http://en.wikipedia.org/wiki/Codeblocks here].<br>
+
| -
 
+
|-
Codeblocks is not installed by default in IGEP&nbsp;SDK VM, because Eclipse IDE is full integrated with IGEP Firmware. If you don't like Eclipse IDE or you want to use Codeblocks anyway this How-to can be helpful to install, set up and use it.<br>
+
| omapdss.debug
 
+
| Configure DSS Video debug output
== Requirements  ==
+
| -
 
+
| -
There are some requisites to follow this guide:
+
|-
 
+
| smsc911x.mac0
*[http://isee.biz/component/zoo/item/igep-virtual-machine-sdk-yocto IGEP SDK VM]: follow the IGEP&nbsp;SDK&nbsp;SOFTWARE&nbsp;USER&nbsp;MANUAL (chapter 2.3 "Setting up and running the VM")<br>  
+
| Configure Board Ethernet Mac Address
*[http://isee.biz/component/zoo/item/igep-firmware-yocto-1-2 IGEP Firmware]: follow the IGEP&nbsp;SDK SOFTWARE&nbsp;USER&nbsp;MANUAL (chapter 6.1 "Create IGEP firmware bootable micro-sd card") <br>  
+
| =0xb2,0xb0,0x14,0xb5,0xcd,0xde
*IGEP Board
+
| For IGEP BERLIN
*[http://downloads.isee.biz/pub/files/CodeBlocks_examples.tar.bz2 Codeblocks examples]
+
|-
*MicroSD Card (optional)
+
| smsc911x.mac1
 
+
| Configure Board Ethernet Mac Address
== Install Codeblocks in VM  ==
+
| =0xb2,0xb0,0x14,0xb5,0xcd,0xdf
<pre>sudo apt-get install codeblocks codeblocks-contrib </pre>
+
| For IGEP BERLIN (only with IGEP PROTON)
== Configure Codeblocks  ==
+
|-
 
+
| smsc911x.mac
=== Startup script  ===
+
| Configure Board Ethernet Mac Address
 
+
| =0xb2,0xb0,0x14,0xb5,0xcd,0xde
Codeblocks startup script (Codeblocks.sh) will let you to load IGEP SDK YOCTO environtment variables to IDE. Don't execute this script if you want to compile with other environtment like x86.<br>
+
| For IGEPv2, IGEP PROTON, IGEP PARIS and IGEP BERLIN
<pre>cd Desktop/IGEP\ development/
+
|-
gedit Codeblocks.sh</pre>
+
| ubi.mtd
Copy this code to Codeblocks.sh
+
| Fot UBI FS boot
<pre>#! /bin/bash
+
| -  
source /opt/poky/1.2/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi
+
| -
exec codeblocks </pre>
+
|-
Give execute privileges to script:
+
| root
<pre>chmod a+x ~/Desktop/IGEP\ development/Codeblocks.sh
+
| Configure root directory for MMC, NFS or UBI
</pre>
+
| &nbsp;;For mmc memory<br>=/dev/mmcblk0p2 rw rootwait
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
| &nbsp;;For flash memory<br>=/dev/mtdblock2
 +
|-
 +
| nfsroot
 +
| For NFS boot
 +
| -  
 +
| -
 
|-
 
|-
| [[Image:Opencodeblocks1.png|331px]]<br>
+
| rootfstype
| [[Image:Opencodeblocks2.png|331px]]<br>
+
| For UBI FS boot
|}
+
| -
 
+
| -
<br>
 
 
 
=== Add IGEP SDK Compiler and Debugger  ===
 
 
 
Follow the next instructions to add IGEP SDK&nbsp;Yocto support:
 
 
 
{| border="1" width="200" cellspacing="1" cellpadding="1"
 
 
|-
 
|-
| [[Image:Addsdkcodeblocks1.png|250px]]
+
| ip
| [[Image:Addsdkcodeblocks2.png|250px]]
+
| For NFS boot
| [[Image:Addsdkcodeblocks3.png|250px]]
+
| -
 +
| -
 
|-
 
|-
| [[Image:Addsdkcodeblocks4.png|250px]]
+
| init
| [[Image:Addsdkcodeblocks5.png|250px]]
+
| Assign init program
| [[Image:Addsdkcodeblocks6.png|250px]]
+
| -
|}
+
| -
 
 
'''<sup>Click to enlarge image</sup>'''
 
 
 
Save all changes
 
 
 
== Using Codeblocks  ==
 
 
 
You can create two types of projects on Codeblocks: custom Makefile or managed by Codeblocks. These examples can be used as a template for your project. The examples are:<br>
 
 
 
*C_example, Codeblocks-based “Hello World” program written in C.
 
*Cairo_example, generates a png file named hello.png.
 
*Cpp_example, Codeblocks-based “Hello World” program written in C++
 
*Dbus_example, sends "Hello Wolrd!" using D-Bus message system.
 
*Glib_example, simple “Hello World" written using Glib library.
 
*Gstreamer_example, ogg audio player using Gstreamer.
 
*Gtk_example, Hello World in GTK.
 
*C_example_without_autotools, custom Makefile “Hello World” program written in C.
 
 
 
=== Build programs  ===
 
 
 
'''NOTE:''' Use Debug build if you want to debug later
 
 
 
Compile with: Build-&gt;Rebuild (Ctrl+F11).
 
 
 
=== Run programs  ===
 
 
 
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 your program: <br>
 
<pre>ssh root@"IGEP IP for example: 192.168.5.1"
 
./"binary"  "optional:arguments"</pre>
 
=== Debug programs  ===
 
 
 
'''NOTE''': When you debug programs using CodeBlocks "Step into" and "Step out" are not supported, because dinamic libraries symbols are not loaded by gdb.
 
 
 
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 "VM IP for example: 192.168.5.10":1000 "pathtobinary" "optional:armguments"
 
</pre>
 
Now use the followings steps to debug program:<br>
 
 
 
{| border="1" width="200" cellspacing="1" cellpadding="1"
 
 
|-
 
|-
| [[Image:Debugcodeblocks1.png|331px]]
+
| musb_hdrc.debug
| [[Image:Debugcodeblocks2.png|331px]]
+
| USB debug
 +
| -
 +
| -
 
|-
 
|-
| [[Image:Debugcodeblocks3.png|331px]]
+
| musb_hdrc.use_dma
| [[Image:Debugcodeblocks4.png|331px]]
+
| USB over network
|}
+
| -  
 
+
| -
Image 1: set breakpoints in your source code
 
 
 
'''NOTE:''' You cant use igep-remote-x program with IGEP firmware (chapter 3.3 "Remote X")<br>
 
= How to use SPI (prove with new firmware, under construction)  =
 
 
 
== Overview  ==
 
 
 
This How-To is meant to be a starting point for people to learn use SPI for IGEP devices as quickly and easily as possible. In this how-to, we run an example program that reads and writes registers from 3-axis accelerometer ([http://www.st.com/internet/analog/product/250725.jsp LIS3DH]) included on the board IGEP New York. This program was tested in Poky firmware with Kernel 2.6.37.y.
 
 
 
== Feedback and Contributing  ==
 
 
 
At any point, if you see a mistake you can contribute to this How-To.
 
 
 
== Requirements  ==
 
 
 
There are a few requisites to follow this tutorial:
 
 
 
*[http://isee.biz/component/zoo/item/igep-yocto-toolcahin-sdk IGEP YOCTO 1.2 Toolchain SDK]
 
*[http://isee.biz/component/zoo/item/igep-firmware-yocto-1-2 IGEP Firmware yocto 1.2]
 
*IGEP MODULE with IGEP New York
 
*SPI example Program '''''(link program)'''''
 
 
 
== How Works  ==
 
 
 
'''LIS3DH accelerometer'''''':''' It is the accelerometer mounted in IGEP New York.
 
 
 
'''Omap3 SPI Peripheral:''' It is the hardware used to communicated with accelerometer and other SPI devices.
 
 
 
'''Omap2_mcspi:''' It is a bus driver than controls Omap3 SPI Peripheral.
 
 
 
'''Spi:''' It is a protocol driver that defines functions and strucs used in SPI bus.
 
 
 
'''Spidev:''' It is a device driver that export spi driver functionalities to userspace.
 
 
 
'''Lis3lv02d_spi:''' SPI glue layer for lis3lv02d
 
 
 
'''Lis31v02d:''' Device driver for LIS3DH accelerometer.
 
 
 
'''Exp_ilms0015:''' It is a startup program for IGEP New York. It attach lis31v02d with Spi driver.
 
 
 
{| border="1" cellspacing="1" cellpadding="1" width="200"
 
 
|-
 
|-
| [[Image:Spi linux schematic.png|501x600px]]
+
| libertas.libertas_debug
|}
+
| Configure libertas debug
 
+
| -  
 
+
| -
More information about Linux Kernel SPI at:
 
 
 
*[http://git.isee.biz/?p=pub/scm/linux-omap-2.6.git;a=blob;f=Documentation/spi/spi-summary;h=4884cb33845d7629987f60610eeedb863561006e;hb=refs/heads/linux-2.6.37.y SPI Overview]
 
 
 
*[http://git.isee.biz/?p=pub/scm/linux-omap-2.6.git;a=blob;f=Documentation/spi/spidev;h=ed2da5e5b28a4490a3b03787b02df66d083692be;hb=refs/heads/linux-2.6.37.y SPIDEV]
 
 
 
== Attach Spidev to SPI driver  ==
 
 
 
=== Modify Linux Kernel Sources  ===
 
 
 
To read accelerometer registers from spidev, we need to attach spidev driver to spi driver at start up. So it is necessary to modify spi_board.
 
 
 
Go to $(Kernel path)/arch/arm/mach-omap2/exp-ilms0015.c and edit the next fields in bold words.
 
 
 
{| border="1" cellspacing="1" cellpadding="1" width="500"
 
 
|-
 
|-
|  
+
| board.ei485
static struct spi_board_info lis3lv02d_spi_board_info __initdata = {
+
| Enable/disable RS485
 
+
| &nbsp;;Enable RS485<br>=yes
&nbsp;&nbsp;&nbsp;&nbsp;'''.modalias = "spidev",'''
+
| &nbsp;;Disable RS485<br>=no
 
 
&nbsp;&nbsp;&nbsp; '''//.modalias&nbsp;&nbsp;&nbsp; = "lis3lv02d_spi",'''
 
 
 
&nbsp;&nbsp;&nbsp; .bus_num&nbsp;&nbsp;&nbsp; = -EINVAL,
 
 
 
&nbsp;&nbsp;&nbsp; .chip_select&nbsp;&nbsp;&nbsp; = -EINVAL,
 
 
 
&nbsp;&nbsp;&nbsp; .max_speed_hz&nbsp;&nbsp;&nbsp; = 1*1000*1000,
 
 
 
&nbsp;&nbsp;&nbsp; .irq&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; = -EINVAL,
 
 
 
&nbsp;&nbsp;&nbsp; .mode&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; = SPI_MODE_0,
 
 
 
&nbsp;&nbsp;&nbsp;'''//.platform_data&nbsp;&nbsp;&nbsp; = &amp;lis3lv02d_pdata,'''
 
 
 
};
 
 
 
inline void __init ilms0015_lis3lv02d_init(int bus_num, int cs, int irq)
 
 
 
{
 
 
 
&nbsp;&nbsp;&nbsp; struct spi_board_info *spi = &amp;lis3lv02d_spi_board_info;
 
 
 
&nbsp;&nbsp;&nbsp; if ((gpio_request(irq, "LIS3LV02D IRQ") == 0)
 
 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;&amp; (gpio_direction_input(irq) == 0))
 
 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gpio_export(irq, 0);
 
 
 
&nbsp;&nbsp;&nbsp; else {
 
 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pr_err("IGEP: Could not obtain gpio LIS3LV02D IRQ\n");
 
 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;
 
 
 
&nbsp;&nbsp;&nbsp; }
 
 
 
&nbsp;&nbsp;&nbsp; spi-&gt;bus_num = bus_num;
 
 
 
&nbsp;&nbsp;&nbsp; spi-&gt;chip_select = cs;
 
 
 
&nbsp;&nbsp;&nbsp; spi-&gt;irq = OMAP_GPIO_IRQ(irq),
 
 
 
&nbsp;&nbsp;&nbsp; spi_register_board_info(&amp;lis3lv02d_spi_board_info, 1);
 
 
 
}
 
 
 
...
 
 
 
void __init ilms0015_init(void)
 
 
 
{
 
 
 
&nbsp;&nbsp;&nbsp; mux_partition = omap_mux_get("core");
 
 
 
&nbsp;&nbsp;&nbsp; /* Mux initialitzation for ilms0015 */
 
 
 
&nbsp;&nbsp;&nbsp; omap_mux_write_array(mux_partition, ilms0015_mux);
 
 
 
&nbsp;&nbsp;&nbsp; /* 3-axis accelerometer */
 
 
 
&nbsp;&nbsp;&nbsp; ilms0015_lis3lv02d_init(1, 2, 174);
 
 
 
&nbsp;&nbsp;&nbsp; /* Export some GPIO */
 
 
 
&nbsp;&nbsp;&nbsp; ilms0015_gpio_init();
 
 
 
}
 
 
 
|}
 
 
 
Now spi_register_board_info has all information necessary to attach spidev driver instead lis3lv02d_spi.
 
 
 
Once we edit code, compile your modified Kernel, you can follow [http://labs.isee.biz/index.php/Linux_Kernel_2.6.37.y#Build_kernel_from_sources this tutorial] for this purpose.
 
 
 
=== Enable ilms0015 support  ===
 
 
 
“ilms0015” is the technical name of IGEP New York.
 
 
 
By default, poky-media-create (See: [http://labs.isee.biz/index.php/How_to_create_a_SD-card_with_the_latest_software_image Poky firmware with Kernel 2.6.37.y]) configured as igep0030, gives support only for IGEP Expansions Paris and Berlin. We need to configure igep.ini and gives support to IGEP New York:
 
 
 
{| border="1" cellspacing="1" cellpadding="1" width="500"
 
 
|-
 
|-
| &nbsp;; Machine configuration
+
| board.modem
'''&nbsp;&nbsp;&nbsp;&nbsp;;buddy=base0010 buddy.revision=B '''
+
| Enable/disable GPRS modem
 
+
| &nbsp;;Enable modem (IGEPv2 Expansion)<br>=no
'''&nbsp;&nbsp;&nbsp; buddy=ilms0015'''
+
| &nbsp;;Enable modem (IGEPv2 Expansion)<br>=yes
 
 
|}
 
 
 
=== Test changes  ===
 
 
 
Once you copy your new Kernel binaries and edit igep.ini. Power up your board, log in and check your changes:
 
 
 
{| border="1" cellspacing="1" cellpadding="1" width="500"
 
 
|-
 
|-
|  
+
| buddy.revision
root@igep00x0:/dev# lsmod
+
| Enable hardware buddy revision [A or B]
 
+
| Only for base0010<br>=A
Module&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Size&nbsp;&nbsp;&nbsp; Used by
+
| Only for base0010<br>=B
 
 
rfcomm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 48522&nbsp;&nbsp; 0
 
 
 
hidp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13311 &nbsp; 0
 
 
 
l2cap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; 49001&nbsp;&nbsp; 4 rfcomm,hidp
 
 
 
bluetooth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 67643&nbsp;&nbsp; 3 rfcomm,hidp,l2cap
 
 
 
libertas_sdio&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 13887 &nbsp; 0
 
 
 
libertas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 99318 &nbsp; 1 libertas_sdio
 
 
 
option&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 13044 &nbsp; 0
 
 
 
usb_wwan&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7196 &nbsp; 1 option
 
 
 
usbserial&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 23870 &nbsp; 2 option,usb_wwan
 
 
 
'''spidev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4898 &nbsp; 0&nbsp;'''
 
 
 
root@igep00x0:/dev# ls /dev/spidev1.2
 
 
 
/dev/spidev1.2
 
 
 
 
|}
 
|}
 
“spidev1.2”: refers at McSPI1 bus 2. Now we can communicate to accelerometer using spi driver functions.
 
 
== SPI Test program  ==
 
 
=== Overview  ===
 
 
This program is based in [http://git.isee.biz/?p=pub/scm/linux-omap-2.6.git;a=blob;f=Documentation/spi/spidev_test.c;h=16feda9014692a87a4996bf51d759ab9e7500ee5;hb=refs/heads/linux-2.6.37.y spidev_test] and it was edited to run with LIS3DH accelerometer, program can be explained in four parts:
 
 
'''Connection properties:''' program lets change via parameters SPI configurations like: device, max speed, delay, bits per word, clock phase, clock polarity, etc. If you don't use any of this parameters program will use default options for LIS3DH communication.
 
 
'''Read mode: '''Reads a word from a register.
 
 
'''Write mode: '''Writes a word in a register.
 
 
'''Test mode:''' Reads X, Y and Z axes from accelerometer.
 
 
We recommend to read peripheral datasheet before use or modify program.
 
 
=== Compile program  ===
 
 
The program source was compiled with Poky SDK but you can use other compilers like Linaro Toolchain:
 
<pre>arm-poky-linux-gnueabi-gcc spiexamplebeta2.c -o spiexampleb2  </pre>
 
Copy your final binary to rootfs.
 
 
== Test program<br>  ==
 
 
=== Read WHO_AM_I register(0Fh)  ===
 
 
LIS3DH has this dummy register (See 8.6 chapter) as a device identification. Its value is 0x33:
 
<pre>root@igep00x0:~# ./spiexampleb2 -R 0F
 
spi mode: 0
 
bits per word: 8
 
max speed: 1000000 Hz (1000 KHz)
 
Value from 0F is: 33
 
root@igep00x0:~#  </pre>
 
 
=== Read and Write CTRL_REG1 (20h)  ===
 
 
This register is used to enable/disable: accelerometer and XYZ axes (See 8.8 chapter). The default value at startup is:
 
<pre>root@igep00x0:~# ./spiexampleb2 -R 20
 
spi mode: 0
 
bits per word: 8
 
max speed: 1000000 Hz (1000 KHz)
 
Value from 20 is: 07
 
root@igep00x0:~#  </pre>
 
It means that accelerometer was disabled and X, Y and Z axes was enabled. For example we can disable X axe typing:
 
<pre>root@igep00x0:~# ./spiexampleb2 -W 20 -V 06
 
spi mode: 0
 
bits per word: 8
 
max speed: 1000000 Hz (1000 KHz)
 
Register to write 20 with value 06
 
root@igep00x0:~# ./spiexampleb2 -R 20     
 
spi mode: 0
 
bits per word: 8
 
max speed: 1000000 Hz (1000 KHz)
 
Value from 20 is: 06
 
root@igep00x0:~#
 
</pre>
 
 
=== Read accelerometer axes  ===
 
 
Finally we are going to read gravity force: LIS3DH has ±2g/±4g/±8g/±16g dynamically selectable full scale (See chapter 8.11). The axes values are expressed in two’s complement in 16 bits (See chapters 8.16, 8.17 and 8.18). [[Image:Lis3dhxyzaxes.png|150x159px]]
 
<pre>root@igep00x0:~# ./spiexampleb2 -T
 
spi mode: 0
 
bits per word: 8
 
max speed: 1000000 Hz (1000 KHz)
 
Accelerometer TEST
 
Values from X -64, Values from Y -15872 and Values from Z -256
 
root@igep00x0:~#
 
</pre>
 
 
= How to install IGEP SDK Virtual machine (under construction) =
 
 
= How to install Qt Creator (under construction) =
 
 
= How to install Eclipse (under construction) =
 

Latest revision as of 15:28, 5 September 2014

TODO:

Categorize new tutorials

How to manage the kernel modules on Linux

How do I edit my kernel command line

AUDIO DSP-ARM

Included (IGEP GST DSP):

AACHEDEC -> DEC AACHE (OK)

http://download.wavetlan.com/SVV/Media/HTTP/FAAC-HE-AAC.aac

gst-launch --gst-debug-level=2 filesrc location=sampleaache.m4a ! TIAuddec1 codecName=aachedec engineName=codecServer ! volume volume=0.25 ! alsasink sync=false

outofthebox->ok


MP3DEC -> DEC MP3 (AUDIO ERRORS)

- Followed README file from ISEE - IGEP DSP - GST + DMAI Support Package 3.40.00

http://www.stephaniequinn.com/Music/Canon.mp3

gst-launch --gst-debug-level=2 filesrc location=Canon.mp3 ! TIAuddec1 codecName=mp3dec engineName=codecServer ! volume volume=0.25 ! alsasink sync=false

Random fatal bit error

mp3-plugin doesn't resolve the error


G711DEC -> DEC PCM uLAW (speech) (NOT TESTED)

G711ENC -> ENC PCM uLAW (speech) (NOT TESTED)

Not included (IGEP GST DSP):

ACCLCDEC -> DEC AACLE (NOT TESTED)

AACLDDEC -> DEC AACLD (NOT TESTED)

WMA9 -> DEC WMA9 (COMPILING ISSUES)

ACCLCENC -> ENC AACLE (NOT TESTED)

ACCHEENC -> ENC AACHE (NOT TESTED)

AACLDENC -> ENC AACLD (NOT TESTED)

WMA8 -> ENC WMA8 (NOT TESTED)

Problems adding codecs into igep-gst-dsp

DM3730

DM3730: Decode a MP3 file (OK) (ADDED TO REPOSISTORIES)

under contruction

does not have an accelerated audio decoder element

- Compiled gst-plugins-ugly using yocto tools

- rpm -igst-plugins-ugly-0.*.rpm

- rpm -i libmad0-0.*.rpm

- rpm -i gst-plugins-ugly-mad-0.*.rpm

- gst-launch filesrc location=sample.mp3 ! mad ! volume volume=0.25 ! alsasink

DM3730: Decode a RA or RM audio file (ERRORS)

gst-launch --gst-debug-level=3 filesrc location=sample.ra ! rmdemux ! volume volume=0.25 ! alsasink

http://www.superluminal.com/andalib/ra/listen.ra

gst-plugins-ugly-rmdemux-0.10.19-r1.armv7a.rpm

libgstsdp-0.10-0-0.10.36-r3.armv7a.rpm: libgstsdp-0.10-0 libgstsdp-0.10.so.0

libgstrtsp-0.10-0-0.10.36-r3.armv7a.rpm: libgstrtsp-0.10-0 libgstrtsp-0.10.so.0

Error:

0:00:00.084839071 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC

0:00:00.085052695 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC

0:00:00.085540976 1550 0xa137b0 WARN rmdemux rmdemux.c:1057:gst_rmdemux_chain:<rmdemux0> Unknown object_id .ra4

0:00:00.085693564 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC

0:00:00.085815634 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC

0:00:00.085907187 1550 0xa137b0 WARN rmdemux rmdemux.c:1057:gst_rmdemux_chain:<rmdemux0> Unknown object_id RaTC

DM3730: Decode an AAC audio file (OK)

EXTRA_OECONF += "--disable-examples --disable-experimental --disable-sdl --disable-cdaudio --disable-directfb \

                --with-plugins=musicbrainz,wavpack,ivorbis,mpegvideoparse,faad2 --disable-vdpau --disable-apexsink \
                --disable-orc"

Install:


faad2-2.7-r2.armv7a.rpm libfaad2-2.7-r2.armv7a.rpm gst-plugins-bad-faad-0.10.23-r2.armv7a.rpm

maybe there are necessary more packages, compare actual gst-bad-recipe and add changes. Necessary add faad2 recipe

bitbake faad2 gst-plugins-bad
 rpm -i faad2-2.7-r2.armv7a.rpm
rpm -i libfaad2-2.7-r2.armv7a.rpm
rpm -i gst-plugins-bad-faad-0.10.23-r2.1.armv7a.rpm
 

gst-launch --gst-debug-level=3 filesrc location=sample.aac ! faad ! volume volume=0.10 ! alsasink

DM3730: Decode an WMA audio file (OK)

bitbake gst-ffmpeg
gst-launch -v filesrc location=sample.wma ! asfdemux ! decodebin ! audioconvert ! volume volume=0.25 ! alsasink  

DM3730: Decode an OGG audio file (OK)

Into repositories (base plugins):

http://upload.wikimedia.org/wikipedia/en/0/04/Rayman_2_music_sample.ogg

gst-launch -v filesrc location=sample.ogg ! oggdemux ! vorbisdec ! audioconvert ! volume volume=0.25 ! alsasink

BASE0033 CONNECTOR SUMMARY TABLE

Configure a static IP using the same private network range

under construction

IGEP Firmware Yocto uses the following Ethernet network configuration (IP addresses)

  • eth0 − 192.168.5.1
  • eth0:0 − assigned via dhcp.

This Ethernet network configuration is really useful when you work using a Linux operating system like IGEP SDK Virtual Machine. Because you use eth0 device to communicate easily with your board and eth0:0 device to get Internet acces using dhcp protocol.

But some scenarios this network configuration is not useful, for example: if you use a non-Linux operating system, connect to two IP private range interfaces is not simple. This How-to can be useful to

(Make diagram one: IGEP and Linux defualt communication. Diagram 2 IGEP and other SO alternative configuration)

igep.ini parameters

The kernel command line syntax is name=value1. These next parameters are supported in igep.ini since IGEP-X_Loader 2.4.0-2:

[kernel]

Parameter Name Description Default value Comments
kaddress Kernel copy address =0x80008000 Hex memory address
rdaddress Ram Disk location address =0x81600000 Hex memory address;
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
=2344
 ;Module
=2717
;Proton
=3203
Mode Boot Mode  ;Linux kernel
=kernel
 ;Other image (like uboot)
[binary image]

[kparams]

Parameter Name Description Default value Comments
buddy Enable/disable expansion board support  ;IGEPv2 Expansion Board support
=igep0022
 ;Berlin and Paris Expansion Board support
=base0010
New York Expansion
=ilms0015
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 =1 -
omapfb.mode Configure frame bugger configuration =dvi:hd720-16@50  ;Other configuration
=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 For IGEP BERLIN (only 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  ;For mmc memory
=/dev/mmcblk0p2 rw rootwait
 ;For flash memory
=/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  ;Enable RS485
=yes
 ;Disable RS485
=no
board.modem Enable/disable GPRS modem  ;Enable modem (IGEPv2 Expansion)
=no
 ;Enable modem (IGEPv2 Expansion)
=yes
buddy.revision Enable hardware buddy revision [A or B] Only for base0010
=A
Only for base0010
=B