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:
= "CHECK ALL IN A NEW VIRTUAL MACHINE" =
+
= TODO: =
  
TODO: Note that you cannot use stepin only stepover (all debug chapters)
+
Categorize new tutorials
  
TODO: Explain that Eclipse only can build ARM projects
+
How to manage the kernel modules on Linux
  
= How to develop with Qt under IGEP  =
+
How do I edit my kernel command line
  
== Overview  ==
+
== AUDIO DSP-ARM==
  
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].
+
===Included (IGEP GST DSP):===
 +
'''AACHEDEC -> DEC AACHE (OK)'''
  
== Requirements<br>  ==
+
http://download.wavetlan.com/SVV/Media/HTTP/FAAC-HE-AAC.aac
  
There are some requisites to follow this guide:
+
gst-launch --gst-debug-level=2 filesrc location=sampleaache.m4a ! TIAuddec1 codecName=aachedec engineName=codecServer ! volume volume=0.25 ! alsasink  sync=false
  
*[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>
+
outofthebox->ok
*[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.
 
*[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>  ==
+
----
  
Once you have open IGEP SDK VM, launch a terminal and type:
+
'''MP3DEC -> DEC MP3 (AUDIO ERRORS)'''
<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;
+
- Followed README file from ISEE - IGEP DSP - GST + DMAI Support Package 3.40.00
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unformated MMC Card
+
http://www.stephaniequinn.com/Music/Canon.mp3
  
*--image &lt;filename&gt;
+
gst-launch --gst-debug-level=2 filesrc location=Canon.mp3 ! TIAuddec1 codecName=mp3dec engineName=codecServer ! volume volume=0.25 ! alsasink  sync=false
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specify file used to create the bootable SD card.
+
'''Random fatal bit error'''
  
*--machine &lt;machine&gt;
+
'''mp3-plugin doesn't resolve the error'''
  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specify the machine. Options are igep0020, igep0030 or igep0032<br>
+
----
  
For example, assuming the SD card device takes "/dev/sdf" and you have and IGEPv2 board (igep0020), type:
+
'''G711DEC -> DEC PCM uLAW (speech) (NOT TESTED)'''
<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  ==
+
'''G711ENC -> ENC PCM uLAW (speech) (NOT TESTED)'''
  
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.
+
===Not included  (IGEP GST DSP):===
 +
'''ACCLCDEC -> DEC AACLE (NOT TESTED)'''
  
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:
+
'''AACLDDEC -> DEC AACLD (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> ===
+
'''WMA9 -> DEC WMA9 (COMPILING ISSUES)'''
  
==== Open Program:<br> ====
+
'''ACCLCENC -> ENC AACLE (NOT TESTED)'''
  
Go to Applications -&gt; IGEP development -&gt; Qt Creator<br>  
+
'''ACCHEENC -> ENC AACHE (NOT TESTED)'''
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
'''AACLDENC -> ENC AACLD (NOT TESTED)'''
|-
 
| [[Image:Openqtv2.png|331x249px]]<br>  
 
| [[Image:Qtopenedv2.png|331x249px]]<br>
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''  
+
'''WMA8 -> ENC WMA8 (NOT TESTED)'''
  
==== Open an example:<br>  ====
+
'''Problems adding codecs into igep-gst-dsp'''
  
Copy your desired example from: /opt/QtSDK/Examples/4.7 to your desktop.<br>
+
== DM3730==
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
=== DM3730: Decode a MP3 file (OK) (ADDED TO REPOSISTORIES)===
|-
 
| [[Image:Qtcopyanexamplev2.png|496x373px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''  
+
'''under contruction'''
  
'''NOTE:''' some examples (like hellogl) cannot be compiled to ARM, for this How-to is used calculator example.
+
'''does not have an accelerated audio decoder element'''
  
Open this example with Qt Creator, set Desktop target and use for each Qt Version one debug and one release
+
- Compiled gst-plugins-ugly using yocto tools
  
{| border="1" width="757" cellspacing="1" cellpadding="1"
+
- rpm -igst-plugins-ugly-0.*.rpm
|-
 
| [[Image:Qtopenanexamplev2.png|250x188px]]
 
| [[Image:Qtopenanexample2v2.png|250x188px]]
 
| [[Image:Qtopenanexample3v2.png|250x188px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
- rpm -i libmad0-0.*.rpm
  
=== ARM Platform<br>  ===
+
- rpm -i gst-plugins-ugly-mad-0.*.rpm
  
=== Build Programs <br>  ===
+
- gst-launch filesrc location=sample.mp3 ! mad ! volume volume=0.25 ! alsasink
  
To compile to ARM for IGEP go to Project use the following configuration at Projects field -&gt; Build:  
+
=== DM3730: Decode a RA or RM audio file (ERRORS)===
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
gst-launch --gst-debug-level=3 filesrc location=sample.ra ! rmdemux ! volume volume=0.25 ! alsasink
|-
 
| [[Image:Qtarmconfigv2.png|496px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
http://www.superluminal.com/andalib/ra/listen.ra
  
'''NOTE:''' Use Debug Release if you want to debug later
+
gst-plugins-ugly-rmdemux-0.10.19-r1.armv7a.rpm
  
Compile with: Build-&gt;Clean All and Build-&gt;Build All (Ctrl+Shift+B).  
+
libgstsdp-0.10-0-0.10.36-r3.armv7a.rpm:
 +
libgstsdp-0.10-0
 +
libgstsdp-0.10.so.0
  
==== Run Programs  ====
+
libgstrtsp-0.10-0-0.10.36-r3.armv7a.rpm:
 +
libgstrtsp-0.10-0
 +
libgstrtsp-0.10.so.0
  
Once you compiled the program pass it from VM to IGEP&nbsp;via SSH, launch a terminal and type:  
+
'''Error:'''
<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>
 
{| border="1" width="200" cellspacing="1" cellpadding="1"
 
|-
 
| [[Image:Qtrunarmv2.jpg|496x373px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
0:00:00.084839071  1550  0xa137b0 WARN                rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC
  
'''NOTE:''' You cannot use igep-remote-x program because Qt-demo image doesn't have X installed.<br>  
+
0:00:00.085052695  1550  0xa137b0 WARN                rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC
  
==== Debug Programs ====
+
0:00:00.085540976 1550  0xa137b0 WARN                rmdemux rmdemux.c:1057:gst_rmdemux_chain:<rmdemux0> Unknown object_id .ra4
  
Once you compiled the program pass it from VM to IGEP&nbsp;via SSH, launch a terminal and type:  
+
0:00:00.085693564  1550  0xa137b0 WARN                rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC
<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.085815634  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.085907187  1550  0xa137b0 WARN                rmdemux rmdemux.c:1057:gst_rmdemux_chain:<rmdemux0> Unknown object_id RaTC
  
Image 1: set breakpoints in your source code
+
=== DM3730: Decode an AAC audio file (OK)===
  
Image 3: use the following configuration:  
+
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:
  
*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 for example: 192.168.5.1":1000
 
*Architecture: arm
 
*GNU target: arm-none-linux-gnueabi
 
*Sysroot: /opt/poky/1.2/sysroots/armv7a-vfp-neon-poky-linux-gnueabi
 
*Location of debugging information: (empty)
 
*Override host GDB start script: (empty)<br>
 
  
'''NOTE:''' You cannot use igep-remote-x program because Qt-demo image doesn't have X installed.<br>
+
faad2-2.7-r2.armv7a.rpm
 +
libfaad2-2.7-r2.armv7a.rpm
 +
gst-plugins-bad-faad-0.10.23-r2.armv7a.rpm
  
=== x86 Platform<br===
+
'''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>
  
==== Build Programs  ====
+
gst-launch --gst-debug-level=3 filesrc location=sample.aac ! faad ! volume volume=0.10 ! alsasink
  
To compile to x86 go to Project use the following configuration at Projects field -&gt; Build:  
+
==== DM3730: Decode an WMA audio file (OK)====
  
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
<pre>bitbake gst-ffmpeg</pre>
|-
 
| [[Image:Qtx86configv2.png|496px]]
 
|}
 
  
'''<sup>Click to enlarge image</sup>'''
+
<pre>gst-launch -v filesrc location=sample.wma ! asfdemux ! decodebin ! audioconvert ! volume volume=0.25 ! alsasink  </pre>
  
'''NOTE:''' Use Debug Release if you want to debug later<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 (check at prove it)  =
+
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 memory 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
 
|-
 
|-
| [[Image:Nfs1 filesystem.png|331px]]
+
| serial.low
| [[Image:Nfs2 filesystem.png|331px]]
+
| 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>[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'''
*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'''  
*IGEP Qt Demo or 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
+
|-
*MicroSD Card (at least 2Gbytes)<br>
+
| buddy
 
+
| Enable/disable expansion board support
'''''"Link software "'''''  
+
| &nbsp;;IGEPv2 Expansion Board support<br>=igep0022
 
+
| &nbsp;;Berlin and Paris Expansion Board support<br>=base0010<br>New York Expansion<br>=ilms0015
== Set up NFS at VM  ==
+
|-
 
+
| console
=== Download and extract IGEP root filesystem  ===
+
| Setup the kernel console parameters
 
+
| =ttyO2,115200n8
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
+
| earlyprintk
<pre>wget http://downloads.isee.biz/denzil/binary/igep_firmware-yocto-1.2.1-1.tar.bz2
+
| Enable early printk
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>
+
| mem
*Qt demo: demo filesystem with Qt libraries and examples
+
| Setup the Board Memory Configuration
<pre>wget http://downloads.isee.biz/denzil/binary/qt4e-demo-image-igep00x0.tar.bz2
+
| =430M
sudo mkdir /srv/{your_rootfs_dir}
+
| -
sudo tar jxf qt4e-demo-image-igep00x0.tar.bz2 -C /srv/{your_rootfs_dir}</pre>
+
|-
=== Configure NFS Server  ===
+
| boot_delay
 
+
| Setup the boot delay
*Install nfs-kernel-server:
+
| =0
<pre>sudo apt-get install nfs-kernel-server </pre>
+
| -
*Make directory exports.d:<br>
+
|-
<pre>sudo mkdir /etc/exports.d </pre>
+
| mpurate
Edit /etc/exports file, add the following line and save the changes:
+
| Setup ARM Processor Speed
<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  ==
+
| 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 and restart IGEP Board
+
|-
 
+
| 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 flash memory:
+
| 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 Board, unplug MicroSD card and power up your board.  
+
| -  
 
+
| -
= Install and configure codeblocks for IGEP devices (under construction) =
+
|-
 
+
| omapfb.debug
== Overview  ==
+
| Configure frame buffer debug output
 
+
| -
Code::Blocks 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, Code::Blocks 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>
+
| -
 
+
|-
Code::Blocks 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 Code::blocks anyway this How-to can be helpful to install and set up it.
+
| omapdss.debug
 
+
| Configure DSS Video debug output
== Requirements  ==
+
| -  
 
+
| -
There are some requisites to follow this guide:
+
|-
 
+
| smsc911x.mac0
*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
*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
*MicroSD Card (optional)<br>
+
|-
 
+
| smsc911x.mac1
'''''"Link software "'''''
+
| Configure Board Ethernet Mac Address
 
+
| =0xb2,0xb0,0x14,0xb5,0xcd,0xdf
== Install Code::Blocks in VM  ==
+
| For IGEP BERLIN (only with IGEP PROTON)
<pre>sudo apt-get install codeblocks codeblocks-contrib </pre>
+
|-
== Configure Code::Blocks  ==
+
| smsc911x.mac
 
+
| Configure Board Ethernet Mac Address
=== Startup script  ===
+
| =0xb2,0xb0,0x14,0xb5,0xcd,0xde
<pre>cd Desktop/IGEP\ development/
+
| For IGEPv2, IGEP PROTON, IGEP PARIS and IGEP BERLIN
gedit Codeblocks.sh</pre>
+
|-
Copy this code to Codeblocks.sh
+
| ubi.mtd
<pre>#! /bin/bash
+
| Fot UBI FS boot
source /opt/poky/1.2/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi
+
| -  
exec codeblocks </pre>
+
| -
Give execute privileges to script:
+
|-
<pre>chmod a+x ~/Desktop/IGEP\ development/Codeblocks.sh </pre>
+
| root
Codeblocks now will use IGEP SDK environtment variables every time you run this script.
+
| Configure root directory for MMC, NFS or UBI
 
+
| &nbsp;;For mmc memory<br>=/dev/mmcblk0p2 rw rootwait
=== Add IGEP SDK Compiler and Debugger  ===
+
| &nbsp;;For flash memory<br>=/dev/mtdblock2
 
+
|-
Follow the next instructions:
+
| nfsroot
 
+
| For NFS boot
{| border="1" width="200" cellspacing="1" cellpadding="1"
+
| -
 +
| -
 +
|-
 +
| 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>=yes
 +
| &nbsp;;Disable RS485<br>=no
 
|-
 
|-
| [[Image:Addsdkcodeblocks1.png|250px]]
+
| board.modem
| [[Image:Addsdkcodeblocks2.png|250px]]
+
| Enable/disable GPRS modem
| [[Image:Addsdkcodeblocks3.png|250px]]
+
| &nbsp;;Enable modem (IGEPv2 Expansion)<br>=no
 +
| &nbsp;;Enable modem (IGEPv2 Expansion)<br>=yes
 
|-
 
|-
| [[Image:Addsdkcodeblocks4.png|250px]]
+
| buddy.revision
| [[Image:Addsdkcodeblocks5.png|250px]]  
+
| Enable hardware buddy revision [A or B]  
| [[Image:Addsdkcodeblocks6.png|250px]]
+
| Only for base0010<br>=A
 +
| Only for base0010<br>=B
 
|}
 
|}
 
'''<sup>Click to enlarge image</sup>'''
 
 
== Using Code::Blocks  ==
 
 
s
 
 
=== Build programs  ===
 
 
s
 
 
=== Run programs  ===
 
 
d
 
 
=== Debug programs  ===
 
 
g
 

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