Difference between revisions of "Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine"

From IGEP - ISEE Wiki

Jump to: navigation, search
m
 
(17 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine HOWTO  ==
+
__TOC__
 +
{{Message/Information Message|message= New [http://labs.isee.biz/index.php/IGEP_SDK_Virtual_Machine IGEP SDK Virtual Machine] is available}}
  
=== Overview of this HOWTO ===
+
==Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine HOWTO==
 +
===Overview of this HOWTO===
 +
This How-To is meant to be a starting point for people who use the Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine and wants to learn how to add some enhancements to the VM.
  
This How-To is meant to be a starting point for people who use the Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine and wants to learn how to add some enhancements to the VM.
+
{{Message/Broken Links}}
  
=== Requirements ===
+
===Requirements===
 +
* [https://www.isee.biz/support/downloads/item/igep-virtual-machine-sdk-2-0 Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine]
 +
** Try: http://www.isee.biz/component/zoo/item/igep-virtual-machine-sdk
 +
* [http://labs.isee.biz/index.php/IGEPv2 IGEPv2 board] with [[How to upgrade and recover the factory firmware|factory defaults]]
 +
* [https://www.isee.biz/support/downloads/item/igep Software User Manuals]
  
*[http://www.igep.es/index.php?option=com_content&view=article&id=99&Itemid=112&dir=%2Fvar%2Fwww%2Fvhosts%2Figep.es%2Fhttpdocs%2Fdownloads%2F01-ISEE_Products%2FIGEPv2%2FSW_Tools_SDK%2FSDK Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine]
+
===Feedback and Contributing===
*[http://labs.igep.es/index.php/Getting_started_with_IGEP_v2_board IGEPv2 board] with [[How to upgrade and recover the factory firmware|factory defaults]]
+
At any point, if you see a mistake you can contribute to this How-To.
*[http://www.igep.es/index.php?option=com_content&view=article&id=99&Itemid=112&dir=%2Fvar%2Fwww%2Fvhosts%2Figep.es%2Fhttpdocs%2Fdownloads%2F01-ISEE_Products%2FIGEPv2/SW_User_Manuals Software User Manuals]
 
  
=== Feedback and Contributing  ===
+
===Which IGEP SDK Virtual Machine do I have ?===
 +
At this moment (2010-December), your IGEP SDK Virtual Machine could be:
  
At any point, if you see a mistake you can contribute to this How-To.  
+
* [[Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine#Ubuntu_8.04_IGEP_v2.0_SDK_Virtual_Machine_.28version_20101124.29|20101124]] version ( based on: Ubuntu 8.04.4 + Poky 20101124 version + IGEP0020-RC board )
 +
* [[Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine#Ubuntu_8.04_IGEP_v2.0_SDK_Virtual_Machine_.28version_20091222.29|20091222]] version ( based on: Ubuntu 8.04.1 + Poky 20090721 version + IGEP0020-RB board )
  
=== Which IGEP SDK Virtual Machine do I have ? ===
+
===Which Poky SDK toolchain do I have ?===
 +
You could see "Poky SDK toolchain" version at '/usr/local/poky/eabi-glibc/version-arm-none-linux-gnueab' file:
  
At this moment (2010-December), your IGEP SDK Virtual Machine could be:
 
 
*[[Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine#Ubuntu_8.04_IGEP_v2.0_SDK_Virtual_Machine_.28version_20101124.29|20101124]] version ( based on: Ubuntu 8.04.4 + Poky 20101124 version + IGEP0020-RC board )
 
*[[Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine#Ubuntu_8.04_IGEP_v2.0_SDK_Virtual_Machine_.28version_20091222.29|20091222]] version ( based on: Ubuntu 8.04.1 + Poky 20090721 version + IGEP0020-RB board )
 
 
=== Which Poky SDK toolchain do I have ?  ===
 
 
You could see "Poky SDK toolchain" version at '/usr/local/poky/eabi-glibc/version-arm-none-linux-gnueab' file:
 
 
<pre>jdoe@ubuntu:~$ cat /usr/local/poky/eabi-glibc/version-arm-none-linux-gnueabi
 
<pre>jdoe@ubuntu:~$ cat /usr/local/poky/eabi-glibc/version-arm-none-linux-gnueabi
 
Distro: poky
 
Distro: poky
Line 30: Line 31:
 
Metadata Revision: 949b440e52d637ef52eadb50c87e615eebd64ed4
 
Metadata Revision: 949b440e52d637ef52eadb50c87e615eebd64ed4
 
Timestamp: 20100331130432
 
Timestamp: 20100331130432
</pre>  
+
</pre>
=== Which Poky SDK rootfs version do I have&nbsp;? ===
+
===Which Poky SDK rootfs version do I have&nbsp;?===
 +
You could see "Poky nfs exported rootfs demo" version at '/srv/nfs/poky/poky-image-sato/igep0020/etc/version' file:
  
You could see "Poky nfs exported rootfs demo" version at '/srv/nfs/poky/poky-image-sato/igep0020/etc/version' file:
 
 
<pre>jdoe@ubuntu:~$ cat /srv/nfs/poky/poky-image-sato/igep0020/etc/version  
 
<pre>jdoe@ubuntu:~$ cat /srv/nfs/poky/poky-image-sato/igep0020/etc/version  
 
201011231602
 
201011231602
</pre>  
+
</pre>
 +
 
 
----
 
----
  
<br> <br>
 
  
== Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine (version 20101124) ==
+
==Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine (version 20101124)==
 +
===Overview (version 20101124)===
 +
* This is the lastest available IGEP SDK Virtual Machine (2010-December)
  
=== Overview (version 20101124)  ===
+
* IGEPv2 boards could boot from TFTP+NFS exported installed demos
  
*This is the lastest available IGEP SDK Virtual Machine (2010-December)
+
* It provides installed demos at "/srv/" directory
 +
** TFTP exported Linux kernels at "/srv/tftp/poky/poky-image-XXXXX/igep0020/uImage" files
 +
** NFS exported rootfs at "/srv/nfs/poky/poky-image-XXXXX/igep0020/" directories
  
*IGEPv2 boards could boot from TFTP+NFS exported installed demos
+
* It provides a compiled toolchain demo at "/usr/local/poky/eabi-glibc" directory
 +
* There is a project source code example at "/home/jdoe/staging/x-loader/" directory, that is git cloned from http://git.isee.biz/ public source code repositories
 +
* It is based on Ubuntu 8.04.4 distribution
 +
* It provides quick links to ISEE IGEP boards ecosystem
 +
* What's New:
 +
** OMAP3730 processor support
 +
** Upgraded toolchain
  
*It provides installed demos at "/srv/" directory
+
===Virtual Machine Enhancements (version 20101124)===
**TFTP exported Linux kernels at "/srv/tftp/poky/poky-image-XXXXX/igep0020/uImage" files
+
====Software updates====
**NFS exported rootfs at "/srv/nfs/poky/poky-image-XXXXX/igep0020/" directories
+
* mkimage:
 +
** wget [http://es.archive.ubuntu.com/ubuntu/pool/main/u/uboot-mkimage/uboot-mkimage_0.4build1_i386.deb http://es.archive.ubuntu.com/ubuntu/pool/main/u/uboot-mkimage/uboot-mkimage_0.4build1_i386.deb]
 +
** dpkg -i uboot-mkimage_0.4build1_i386.deb
  
*It provides a compiled toolchain demo at "/usr/local/poky/eabi-glibc" directory
 
*There is a project source code example at "/home/jdoe/staging/x-loader/" directory, that is git cloned from http://git.igep.es public source code repositories
 
*It is based on Ubuntu 8.04.4 distribution
 
*It provides quick links to ISEE IGEP boards ecosystem
 
*What's New:
 
**OMAP3730 processor support
 
**Upgraded toolchain
 
 
=== Virtual Machine Enhancements (version 20101124)  ===
 
 
==== Software updates  ====
 
 
*mkimage:
 
**wget [http://es.archive.ubuntu.com/ubuntu/pool/main/u/uboot-mkimage/uboot-mkimage_0.4build1_i386.deb http://es.archive.ubuntu.com/ubuntu/pool/main/u/uboot-mkimage/uboot-mkimage_0.4build1_i386.deb]<br>
 
**dpkg -i uboot-mkimage_0.4build1_i386.deb
 
 
<pre>Selecting previously deselected package uboot-mkimage.
 
<pre>Selecting previously deselected package uboot-mkimage.
 
(Reading database ... 125211 files and directories currently installed.)
 
(Reading database ... 125211 files and directories currently installed.)
 
Unpacking uboot-mkimage (from uboot-mkimage_0.4build1_i386.deb) ...
 
Unpacking uboot-mkimage (from uboot-mkimage_0.4build1_i386.deb) ...
 
Setting up uboot-mkimage (0.4build1) ...
 
Setting up uboot-mkimage (0.4build1) ...
</pre>
+
</pre>
<br> <br>  
 
  
==== Upgrade the Poky's SDK ====
+
====Upgrade the Poky's SDK====
 +
* (Not available)
  
*(Not available)
+
===Getting Started===
 +
First at all, you should read [http://www.igep.es/index.php?option=com_content&view=article&id=99&Itemid=112&dir=%2Fvar%2Fwww%2Fvhosts%2Figep.es%2Fhttpdocs%2Fdownloads%2F01-ISEE_Products%2FIGEPv2/SW_User_Manuals IGEPv2 SDK User Manual] and follow its instructions.
  
=== Getting Started  ===
+
Below steps are a quick and partial summary of [http://www.igep.es/index.php?option=com_content&view=article&id=99&Itemid=112&dir=%2Fvar%2Fwww%2Fvhosts%2Figep.es%2Fhttpdocs%2Fdownloads%2F01-ISEE_Products%2FIGEPv2/SW_User_Manuals IGEPv2 SDK User Manual]:
  
First at all, you should read [http://www.igep.es/index.php?option=com_content&view=article&id=99&Itemid=112&dir=%2Fvar%2Fwww%2Fvhosts%2Figep.es%2Fhttpdocs%2Fdownloads%2F01-ISEE_Products%2FIGEPv2/SW_User_Manuals IGEPv2 SDK User Manual] and follow its instructions.  
+
* Download [http://www.igep.es/index.php?option=com_content&view=article&id=99&Itemid=112&dir=%2Fvar%2Fwww%2Fvhosts%2Figep.es%2Fhttpdocs%2Fdownloads%2F01-ISEE_Products%2FIGEPv2%2FSW_Tools_SDK%2FSDK Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine]
 +
* Uncompress Ubuntu-8.04-IGEP-v2.0-20101124.7z file (Windows users use [http://www.7-zip.org/ 7-zip] / Linux users use [http://p7zip.sourceforge.net/ p7zip])
 +
* Start up uncompressed virtual machine ( [http://www.vmware.com/products/player/ VMware Player], kvm, qemu, VirtualBox…).
 +
* Log on virtual machine login (Username: '''jdoe''' / Password: '''letmein''' / Default IP address: '''192.168.254.10''' )
  
Below steps are a quick and partial summary of [http://www.igep.es/index.php?option=com_content&view=article&id=99&Itemid=112&dir=%2Fvar%2Fwww%2Fvhosts%2Figep.es%2Fhttpdocs%2Fdownloads%2F01-ISEE_Products%2FIGEPv2/SW_User_Manuals IGEPv2 SDK User Manual]:<br>
+
===Examples===
 +
====Example 1: Hello world (built with cross toolchain)====
 +
* Power up your Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine
  
*Download [http://www.igep.es/index.php?option=com_content&view=article&id=99&Itemid=112&dir=%2Fvar%2Fwww%2Fvhosts%2Figep.es%2Fhttpdocs%2Fdownloads%2F01-ISEE_Products%2FIGEPv2%2FSW_Tools_SDK%2FSDK Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine]
+
Power up your development environment and login into bash shell
*Uncompress Ubuntu-8.04-IGEP-v2.0-20101124.7z file (Windows users use [http://www.7-zip.org/ 7-zip] / Linux users use [http://p7zip.sourceforge.net/ p7zip])
 
*Start up uncompressed virtual machine ( [http://www.vmware.com/products/player/ VMware Player], kvm, qemu, VirtualBox…).
 
*Log on virtual machine login (Username: '''jdoe''' / Password: '''letmein''' / Default IP address: '''192.168.254.10''' )
 
  
=== Examples  ===
+
* Create source code text file
  
==== Example 1: Hello world (built with cross toolchain)  ====
+
First of all you need to initialize a suitable environment in the bash shell console inside your virtual machine. <br /> You can do this sourcing once the environment-setup script.
  
*Power up your Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine
+
<pre>$ source /usr/local/poky/eabi-glibc/environment-setup-arm-none-linux-gnueabi
 
+
</pre>
Power up your development environment and login into bash shell
+
Create a single .c file (hello-world.c), using your preferred editor (vi, nano, gedit, ...) <br /> <br /> hello-world.c:
 
 
*Create source code text file
 
  
First of all you need to initialize a suitable environment in the bash shell console inside your virtual machine. <br> You can do this sourcing once the environment-setup script.
 
<pre>$ source /usr/local/poky/eabi-glibc/environment-setup-arm-none-linux-gnueabi
 
</pre>
 
Create a single .c file (hello-world.c), using your preferred editor (vi, nano, gedit, ...) <br> <br> hello-world.c:
 
 
<pre>#include &lt;stdio.h&gt;  
 
<pre>#include &lt;stdio.h&gt;  
 
int main (int argc, char **argv)
 
int main (int argc, char **argv)
Line 110: Line 105:
 
   return 0;
 
   return 0;
 
}
 
}
</pre>  
+
</pre>
*Build arm binary executable
+
* Build arm binary executable
 +
 
 +
Cross toolchain tools are available into the built-in virtual machine Poky SDK. You only need open bash terminal prompt and write commands:
  
Cross toolchain tools are available into the built-in virtual machine Poky SDK. You only need open bash terminal prompt and write commands:
 
 
<pre>$ arm-none-linux-gnueabi-gcc -o hello-world hello-world.c
 
<pre>$ arm-none-linux-gnueabi-gcc -o hello-world hello-world.c
 
$ file hello-world
 
$ file hello-world
 
hello-world: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, dynamically linked (uses shared libs), not stripped
 
hello-world: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, dynamically linked (uses shared libs), not stripped
</pre>  
+
</pre>
*Transfer arm executable file from virtual machine to IGEPv2 board
+
* Transfer arm executable file from virtual machine to IGEPv2 board
 +
 
 +
Copy the binary result to your NFS-mounted root filesystem on your local virtual machine path
  
Copy the binary result to your NFS-mounted root filesystem on your local virtual machine path
 
 
<pre>$ sudo cp hello-world /srv/nfs/poky/poky-image-sato/igep0020a/home/root
 
<pre>$ sudo cp hello-world /srv/nfs/poky/poky-image-sato/igep0020a/home/root
 
[sudo] password for jdoe: letmein
 
[sudo] password for jdoe: letmein
</pre>  
+
</pre>
*Execute arm executable file inside IGEPv2 board
+
* Execute arm executable file inside IGEPv2 board
 +
 
 +
And run the program in your target device (serial console or ssh network terminal)
  
And run the program in your target device (serial console or ssh network terminal)
 
 
<pre># cd /home/root
 
<pre># cd /home/root
 
# ./hello-world
 
# ./hello-world
 
Hello World&nbsp;!
 
Hello World&nbsp;!
</pre>  
+
</pre>
==== Example 2: Hello world (built with autotool+cross toolchain) ====
+
====Example 2: Hello world (built with autotool+cross toolchain)====
 +
Using the SDK with autotool enabled packages is straightforward; just pass the appropriate host option to configure
  
Using the SDK with autotool enabled packages is straightforward; just pass the appropriate host option to configure
 
 
<pre>$ ./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi
 
<pre>$ ./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi
</pre>  
+
</pre>
Now, it shows how you can download the GNU Hello program and build for your device <br> <br> See log example:  
+
Now, it shows how you can download the GNU Hello program and build for your device <br /> <br /> See log example:
 +
 
 
<pre>$ wget http://ftp.gnu.org/gnu/hello/hello-2.4.tar.gz
 
<pre>$ wget http://ftp.gnu.org/gnu/hello/hello-2.4.tar.gz
 
$ tar xzvf hello-2.4.tar.gz
 
$ tar xzvf hello-2.4.tar.gz
Line 146: Line 145:
 
src/hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.
 
src/hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.
 
$ scp src/hello root@192.168.254.254:/home/root
 
$ scp src/hello root@192.168.254.254:/home/root
</pre>  
+
</pre>
=== Demos (version 20101124) ===
+
===Demos (version 20101124)===
 
+
====Rootfs demos using an NFS-TFTP environment for IGEP v2====
==== Rootfs demos using an NFS-TFTP environment for IGEP v2 ====
+
IGEP SDK Virtual Machine comes with 2 installed demos:
  
IGEP SDK Virtual Machine comes with 2 installed demos:
+
* poky-image-sato (271M)
 +
* poky-image-minimal (137M)
  
*poky-image-sato (271M)
 
*poky-image-minimal (137M)
 
  
<br>
+
You could find these demo on TFTP (Linux kernel) and NFS (rootfs) exported directories.
  
You could find these demo on TFTP (Linux kernel) and NFS (rootfs) exported directories.
+
* TFTP exported Linux kernels at "/srv/tftp/poky/poky-image-XXXXX/igep0020/uImage" files
  
*TFTP exported Linux kernels at "/srv/tftp/poky/poky-image-XXXXX/igep0020/uImage" files
 
 
<pre>jdoe@ubuntu:~$ cat /etc/inetd.conf  
 
<pre>jdoe@ubuntu:~$ cat /etc/inetd.conf  
 
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
 
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
</pre>  
+
</pre>
<br>
+
 
 +
* NFS exported rootfs at "/srv/nfs/poky/poky-image-XXXXX/igep0020/" directories
  
*NFS exported rootfs at "/srv/nfs/poky/poky-image-XXXXX/igep0020/" directories
 
 
<pre>jdoe@ubuntu:~$ cat /etc/exports  
 
<pre>jdoe@ubuntu:~$ cat /etc/exports  
 
# /etc/exports: the access control list for filesystems which may be exported
 
# /etc/exports: the access control list for filesystems which may be exported
Line 175: Line 172:
 
/srv/nfs/poky/poky-image-sato/igep0020 *(rw,no_root_squash,no_subtree_check,sync)
 
/srv/nfs/poky/poky-image-sato/igep0020 *(rw,no_root_squash,no_subtree_check,sync)
 
/srv/nfs/poky/poky-image-minimal/igep0020 *(rw,no_root_squash,no_subtree_check,sync)
 
/srv/nfs/poky/poky-image-minimal/igep0020 *(rw,no_root_squash,no_subtree_check,sync)
</pre>  
+
</pre>
If you want use these demos, IGEPv2 should boot with network TFTP+NFS method. Let show it:  
+
If you want use these demos, IGEPv2 should boot with network TFTP+NFS method. Let show it:
 +
 
 +
* 1) Open [[Using serial debug port to communicate|debug serial port]] and configure U-Boot environment variables. Press any key when you see:
  
*1) Open [[Using serial debug port to communicate|debug serial port]] and configure U-Boot environment variables. Press any key when you see:
 
 
<pre>Hit any key to stop autoboot: 5  
 
<pre>Hit any key to stop autoboot: 5  
</pre>  
+
</pre>
Bootlog:  
+
Bootlog:
 +
 
 
<pre>60
 
<pre>60
  
Line 211: Line 210:
 
Net:  smc911x-0
 
Net:  smc911x-0
 
Hit any key to stop autoboot:  5
 
Hit any key to stop autoboot:  5
</pre>  
+
</pre>
*2) Now, you are inside U-Boot prompt. Configure U-Boot environment variables with:
+
* 2) Now, you are inside U-Boot prompt. Configure U-Boot environment variables with:
 +
 
 
<pre>U-Boot # setenv project poky-image-sato
 
<pre>U-Boot # setenv project poky-image-sato
 
U-Boot # setenv machine igep0020
 
U-Boot # setenv machine igep0020
Line 219: Line 219:
 
OneNAND: Saved environment to 0x00200000
 
OneNAND: Saved environment to 0x00200000
 
U-Boot #  
 
U-Boot #  
</pre>  
+
</pre>
All your environment variables should be similar to:  
+
All your environment variables should be similar to:
 +
 
 
<pre>U-Boot # printenv
 
<pre>U-Boot # printenv
 
bootdelay=5
 
bootdelay=5
Line 247: Line 248:
 
project=poky-image-sato
 
project=poky-image-sato
 
Environment size: 1248/524284 bytes
 
Environment size: 1248/524284 bytes
</pre>  
+
</pre>
Now, we can boot with TFTP+NFS method  
+
Now, we can boot with TFTP+NFS method
 +
 
 
<pre>U-Boot # run nfs-boot
 
<pre>U-Boot # run nfs-boot
 
smc911x: detected LAN9221 controller
 
smc911x: detected LAN9221 controller
Line 281: Line 283:
 
   Verifying Checksum ... OK
 
   Verifying Checksum ... OK
 
   Loading Kernel Image ...
 
   Loading Kernel Image ...
</pre>  
+
</pre>
<br>
+
 
 +
* 3) When you get system up, login and check your boot method
  
*3) When you get system up, login and check your boot method
+
See "root=/dev/nfs" and "nfsroot=192.168.254.10:/srv/nfs/poky/poky-image-sato/igep0020" in boot Linux cmdline string parameter:
  
See "root=/dev/nfs" and "nfsroot=192.168.254.10:/srv/nfs/poky/poky-image-sato/igep0020" in boot Linux cmdline string parameter:
+
<pre>OpenedHand Linux (Poky) 3.3.1 igep0020 ttyS2
<pre>
 
OpenedHand Linux (Poky) 3.3.1 igep0020 ttyS2
 
  
 
igep0020 login: root
 
igep0020 login: root
Line 294: Line 295:
 
console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@60 root=/dev/nfs nfsroot=192.168.254.10:/srv/nfs/poky/poky-image-sato/igep0020 ip=192.168.254.254:192.168.254.10:192.168.254.10:255.255.255.0::eth0:
 
console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@60 root=/dev/nfs nfsroot=192.168.254.10:/srv/nfs/poky/poky-image-sato/igep0020 ip=192.168.254.254:192.168.254.10:192.168.254.10:255.255.255.0::eth0:
 
root@igep0020:~#
 
root@igep0020:~#
</pre>  
+
</pre>
 +
 
 
----
 
----
  
=== HOWTOs ===
+
===HOWTOs===
 +
This section describes related manuals and HOWTOs.
  
This section describes related manuals and HOWTOs.  
+
====The bootloader X-loader====
 +
[[The bootloader X-loader|This HOWTO]] should be readed for advanced developers who wants hacking first stage bootloader.
  
==== The bootloader X-loader  ====
+
====The bootloader U-Boot====
 +
[[The bootloader U-Boot|This HOWTO]] should be readed for developers who wants hacking second stage bootloader and change some board features (GPIO MUX configuration, rootfs location,...)
  
[[The bootloader X-loader|This HOWTO]] should be readed for advanced developers who wants hacking first stage bootloader.  
+
====The Linux kernel====
 +
[[The Linux kernel|This HOWTO]] should be readed for developers who wants hacking IGEP Linux kernel and built-in drivers. People who knows hardware and ajusts Linux kernel feature. Also, developers who add more feature to Linux kernel like network protocol, new filesystems, patching buggy Linux kernel,...
  
==== The bootloader U-Boot  ====
+
====How to upgrade and recover the factory firmware====
 +
[[How to upgrade and recover the factory firmware|This HOWTO]] should be readed for USERS who wants change enviroment configuration and default boot sequence of IGEPv2. You need connect your workstation to IGEPv2 board with UART3 serial debug port (USB to serial converter + DB9-IDC cable to J960 IGEPv2 connector).
  
[[The bootloader U-Boot|This HOWTO]] should be readed for developers who wants hacking second stage bootloader and change some board features (GPIO MUX configuration, rootfs location,...)
 
 
==== The Linux kernel  ====
 
 
[[The Linux kernel|This HOWTO]] should be readed for developers who wants hacking IGEP Linux kernel and built-in drivers. People who knows hardware and ajusts Linux kernel feature. Also, developers who add more feature to Linux kernel like network protocol, new filesystems, patching buggy Linux kernel,...
 
 
==== How to upgrade and recover the factory firmware  ====
 
 
[[How to upgrade and recover the factory firmware|This HOWTO]] should be readed for USERS who wants change enviroment configuration and default boot sequence of IGEPv2. You need connect your workstation to IGEPv2 board with UART3 serial debug port (USB to serial converter + DB9-IDC cable to J960 IGEPv2 connector).
 
 
<br>
 
  
 
----
 
----
  
=== OTHER REFERENCES ===
+
===OTHER REFERENCES===
 
+
====Frequency Asked Questions (FAQ)====
==== Frequency Asked Questions (FAQ) ====
+
Useful webpage is "[[Frequently Asked Questions and Their Answers|Frequency Asked Questions]]" or [[Frequently Asked Questions and Their Answers|FAQ]] page. Users could find common questions about IGEPv2 board and very quick answers about IGEPv2 software and hardware issues.
 
 
Useful webpage is "[[Frequently Asked Questions and Their Answers|Frequency Asked Questions]]" or [[Frequently Asked Questions and Their Answers|FAQ]] page. Users could find common questions about IGEPv2 board and very quick answers about IGEPv2 software and hardware issues.  
 
 
 
==== FORUM  ====
 
  
Lots of knowledge can be found in the free [http://www.igep.es/forum/ IGEP Support Forum]. First, search to see if anyone else has had the same issue. Then, if you don't find anything about your issue, you should create a new post.  
+
====FORUM====
 +
Lots of knowledge can be found in the free [http://www.igep.es/forum/ IGEP Support Forum]. First, search to see if anyone else has had the same issue. Then, if you don't find anything about your issue, you should create a new post.
  
 
----
 
----
  
<br>
 
 
== Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine (version 20091222)  ==
 
 
=== Overview (version 20091222)  ===
 
 
*Older IGEP SDK Virtual Machine (2009-December)
 
  
=== Demos (version 20091222) ===
+
==Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine (version 20091222)==
 +
===Overview (version 20091222)===
 +
* Older IGEP SDK Virtual Machine (2009-December)
  
==== Rootfs demos using an NFS-TFTP environment for IGEP v2 ====
+
===Demos (version 20091222)===
 +
====Rootfs demos using an NFS-TFTP environment for IGEP v2====
 +
The simplest way to create a new NFS-TFTP environment for IGEP v2 is to use an already working filesystem and pre-built kernel image. Pre-built images are also available.
  
The simplest way to create a new NFS-TFTP environment for IGEP v2 is to use an already working filesystem and pre-built kernel image. Pre-built images are also available.  
+
=====poky-image-minimal-mtdutils - A small image, just enough to allow a device to boot=====
 +
Download and install the root filesystem image (poky-image-minimal-mtdutils-igep0020.cpio) as root on the NFS server,
  
===== poky-image-minimal-mtdutils - A small image, just enough to allow a device to boot  =====
 
 
Download and install the root filesystem image (poky-image-minimal-mtdutils-igep0020.cpio) as root on the NFS server,
 
 
<pre>$ sudo mkdir -p /srv/nfs/poky/poky-image-minimal-mtdutils/igep0020
 
<pre>$ sudo mkdir -p /srv/nfs/poky/poky-image-minimal-mtdutils/igep0020
 
$ cd /srv/nfs/poky/poky-image-minimal-mtdutils/igep0020
 
$ cd /srv/nfs/poky/poky-image-minimal-mtdutils/igep0020
 
$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-minimal-mtdutils-igep0020.rootfs.cpio
 
$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-minimal-mtdutils-igep0020.rootfs.cpio
 
$ sudo cpio -idm &lt; poky-image-minimal-mtdutils-igep0020.rootfs.cpio
 
$ sudo cpio -idm &lt; poky-image-minimal-mtdutils-igep0020.rootfs.cpio
</pre>  
+
</pre>
Download and copy a pre-built kernel image to poky-image-minimal project  
+
Download and copy a pre-built kernel image to poky-image-minimal project
 +
 
 
<pre>$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/kernel/uImage-2.6.28-r4-igep0020-20100331100327.bin
 
<pre>$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/kernel/uImage-2.6.28-r4-igep0020-20100331100327.bin
 
$ sudo mkdir -p /srv/tftp/poky/poky-image-minimal-mtdutils/igep0020
 
$ sudo mkdir -p /srv/tftp/poky/poky-image-minimal-mtdutils/igep0020
 
$ sudo mv uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-minimal-mtdutils/igep0020/
 
$ sudo mv uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-minimal-mtdutils/igep0020/
 
$ sudo ln -s uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-minimal-mtdutils/igep0020/uImage
 
$ sudo ln -s uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-minimal-mtdutils/igep0020/uImage
</pre>  
+
</pre>
Export the directory tree with an entry in /etc/exports file editing with your preferred editor, like  
+
Export the directory tree with an entry in /etc/exports file editing with your preferred editor, like
 +
 
 
<pre>/srv/nfs/poky/poky-image-minimal-mtdutils/igep0020  *(rw,no_root_squash,no_subtree_check,sync)
 
<pre>/srv/nfs/poky/poky-image-minimal-mtdutils/igep0020  *(rw,no_root_squash,no_subtree_check,sync)
</pre>  
+
</pre>
and restart the NFS server  
+
and restart the NFS server
 +
 
 
<pre>$ sudo /etc/init.d/nfs-kernel-server restart
 
<pre>$ sudo /etc/init.d/nfs-kernel-server restart
</pre>  
+
</pre>
Now, you can power up your board, stop at u-boot, set the project variable point to poky-image-minimal-mtdutils and boot via NFS  
+
Now, you can power up your board, stop at u-boot, set the project variable point to poky-image-minimal-mtdutils and boot via NFS
 +
 
 
<pre># setenv machine igep0020
 
<pre># setenv machine igep0020
 
# setenv project poky-image-minimal-mtdutils
 
# setenv project poky-image-minimal-mtdutils
 
# run nfs-boot
 
# run nfs-boot
</pre>  
+
</pre>
===== poky-image-sato - X11 image with Sato theme and Pimlico applications. =====
+
=====poky-image-sato - X11 image with Sato theme and Pimlico applications.=====
 +
Download and install the root filesystem image (poky-image-sato-igep0020.cpio) as root on the NFS server,
  
Download and install the root filesystem image (poky-image-sato-igep0020.cpio) as root on the NFS server,
 
 
<pre>$ sudo mkdir -p /srv/nfs/poky/poky-image-sato/igep0020
 
<pre>$ sudo mkdir -p /srv/nfs/poky/poky-image-sato/igep0020
 
$ cd /srv/nfs/poky/poky-image-sato/igep0020
 
$ cd /srv/nfs/poky/poky-image-sato/igep0020
 
$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sato-igep0020.rootfs.cpio
 
$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sato-igep0020.rootfs.cpio
 
$ sudo cpio -idm &lt; poky-image-sato-igep0020.rootfs.cpio
 
$ sudo cpio -idm &lt; poky-image-sato-igep0020.rootfs.cpio
</pre>  
+
</pre>
Download and copy a pre-built kernel image to poky-image-minimal project  
+
Download and copy a pre-built kernel image to poky-image-minimal project
 +
 
 
<pre>$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/kernel/uImage-2.6.28-r4-igep0020-20100331100327.bin
 
<pre>$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/kernel/uImage-2.6.28-r4-igep0020-20100331100327.bin
 
$ sudo mkdir -p /srv/tftp/poky/poky-image-sato/igep0020
 
$ sudo mkdir -p /srv/tftp/poky/poky-image-sato/igep0020
 
$ sudo mv uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-sato/igep0020/
 
$ sudo mv uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-sato/igep0020/
 
$ sudo ln -s uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-sato/igep0020/uImage
 
$ sudo ln -s uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-sato/igep0020/uImage
</pre>  
+
</pre>
Export the directory tree with an entry in /etc/exports file editing with your preferred editor, like  
+
Export the directory tree with an entry in /etc/exports file editing with your preferred editor, like
 +
 
 
<pre>/srv/nfs/poky/poky-image-sato/igep0020  *(rw,no_root_squash,no_subtree_check,sync)
 
<pre>/srv/nfs/poky/poky-image-sato/igep0020  *(rw,no_root_squash,no_subtree_check,sync)
</pre>  
+
</pre>
and restart the NFS server  
+
and restart the NFS server
 +
 
 
<pre>$ sudo /etc/init.d/nfs-kernel-server restart
 
<pre>$ sudo /etc/init.d/nfs-kernel-server restart
</pre>  
+
</pre>
Now, you can power up your board, stop at u-boot, set the project variable point to poky-image-sato and boot via NFS  
+
Now, you can power up your board, stop at u-boot, set the project variable point to poky-image-sato and boot via NFS
  
=== Virtual Machine Enhancements (version 20091222) ===
+
===Virtual Machine Enhancements (version 20091222)===
 +
====Software updates====
 +
* [http://git.isee.biz/?p=pub/scm/poky.git;a=commit;h=949b440e52d637ef52eadb50c87e615eebd64ed4 Poky v3.2.1-0 (Fri, 19 Mar 2010)]
 +
** SDK
 +
*** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/sdk/poky-eabi-glibc-i586-arm-toolchain-sdk-3.2.1.tar.bz2 poky-eabi-glibc-i586-arm-toolchain-sdk-3.2.1.tar.bz2]
 +
** Kernel
 +
*** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/kernel/uImage-2.6.28-r4-igep0020-20100331100327.bin uImage-2.6.28-r4-igep0020-20100331100327.bin]
 +
*** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/kernel/modules-2.6.28.10-r4-igep0020.tgz modules-2.6.28.10-r4-igep0020.tgz]
 +
** Rootfs
 +
*** poky-image-minimal-mtdutils
 +
**** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.cpio poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.cpio]
 +
**** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.jffs2 poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.jffs2]
 +
**** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.ext3 poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.ext3]
 +
*** poky-image-sato&nbsp;:
 +
**** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sato-igep0020-20100331110002.rootfs.cpio poky-image-sato-igep0020-20100331110002.rootfs.cpio]
 +
**** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sato-igep0020-20100331110002.rootfs.jffs2 poky-image-sato-igep0020-20100331110002.rootfs.jffs2]
 +
**** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sato-igep0020-20100331110002.rootfs.ext3 poky-image-sato-igep0020-20100331110002.rootfs.ext3]
 +
*** poky-image-sato-sdk&nbsp;:
 +
**** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sdk-igep0020-20100331124241.rootfs.cpio poky-image-sdk-igep0020-20100331124241.rootfs.cpio]
 +
**** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sdk-igep0020-20100331124241.rootfs.ext3 poky-image-sdk-igep0020-20100331124241.rootfs.ext3]
 +
*** poky-image-demo&nbsp;:
 +
**** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-demo-igep0020-20100331141303.rootfs.cpio poky-image-demo-igep0020-20100331141303.rootfs.cpio]
 +
**** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-demo-igep0020-20100331141303.rootfs.jffs2 poky-image-demo-igep0020-20100331141303.rootfs.jffs2]
 +
**** [http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-demo-igep0020-20100331141303.rootfs.ext3 poky-image-demo-igep0020-20100331141303.rootfs.ext3]
  
==== Software updates ====
+
====Upgrade the Poky's SDK (from 20090721 version to 20100331 version)====
 +
Backup current SDK (If you don't know Poky SDK version, you could see [[Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine#Which_Poky_SDK_toolchain_do_I_have_.3F|'Which Poky SDK toolchain do I have ?' ]] )
  
*[http://git.igep.es/?p=pub/scm/poky.git;a=commit;h=949b440e52d637ef52eadb50c87e615eebd64ed4 Poky v3.2.1-0 (Fri, 19 Mar 2010)]
+
<pre>$ mv /usr/local/poky/eabi-glibc /usr/local/poky/eabi-glibc.20090721
**SDK
+
</pre>
***[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/sdk/poky-eabi-glibc-i586-arm-toolchain-sdk-3.2.1.tar.bz2 poky-eabi-glibc-i586-arm-toolchain-sdk-3.2.1.tar.bz2]
+
and replace with the new SDK
**Kernel
 
***[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/kernel/uImage-2.6.28-r4-igep0020-20100331100327.bin uImage-2.6.28-r4-igep0020-20100331100327.bin]
 
***[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/kernel/modules-2.6.28.10-r4-igep0020.tgz modules-2.6.28.10-r4-igep0020.tgz]
 
**Rootfs
 
***poky-image-minimal-mtdutils
 
****[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.cpio poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.cpio]
 
****[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.jffs2 poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.jffs2]
 
****[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.ext3 poky-image-minimal-mtdutils-igep0020-20100331100327.rootfs.ext3]
 
***poky-image-sato&nbsp;:
 
****[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sato-igep0020-20100331110002.rootfs.cpio poky-image-sato-igep0020-20100331110002.rootfs.cpio]
 
****[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sato-igep0020-20100331110002.rootfs.jffs2 poky-image-sato-igep0020-20100331110002.rootfs.jffs2]
 
****[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sato-igep0020-20100331110002.rootfs.ext3 poky-image-sato-igep0020-20100331110002.rootfs.ext3]
 
***poky-image-sato-sdk&nbsp;:
 
****[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sdk-igep0020-20100331124241.rootfs.cpio poky-image-sdk-igep0020-20100331124241.rootfs.cpio]
 
****[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sdk-igep0020-20100331124241.rootfs.ext3 poky-image-sdk-igep0020-20100331124241.rootfs.ext3]
 
***poky-image-demo&nbsp;:
 
****[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-demo-igep0020-20100331141303.rootfs.cpio poky-image-demo-igep0020-20100331141303.rootfs.cpio]
 
****[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-demo-igep0020-20100331141303.rootfs.jffs2 poky-image-demo-igep0020-20100331141303.rootfs.jffs2]
 
****[http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-demo-igep0020-20100331141303.rootfs.ext3 poky-image-demo-igep0020-20100331141303.rootfs.ext3]
 
  
==== Upgrade the Poky's SDK (from 20090721 version to 20100331 version)  ====
 
 
Backup current SDK (If you don't know Poky SDK version, you could see [[Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine#Which_Poky_SDK_toolchain_do_I_have_.3F|'Which Poky SDK toolchain do I have ?' ]] )
 
<pre>$ mv /usr/local/poky/eabi-glibc /usr/local/poky/eabi-glibc.20090721
 
</pre>
 
and replace with the new SDK
 
 
<pre>$ mkdir tmpdir
 
<pre>$ mkdir tmpdir
 
$ cd tmpdir
 
$ cd tmpdir
Line 432: Line 426:
 
$ tar jxf poky-eabi-glibc-i586-arm-toolchain-sdk-3.2.1.tar.bz2
 
$ tar jxf poky-eabi-glibc-i586-arm-toolchain-sdk-3.2.1.tar.bz2
 
$ mv usr/local/poky/eabi-glibc /usr/local/poky/
 
$ mv usr/local/poky/eabi-glibc /usr/local/poky/
</pre>  
+
</pre>
Note that with the change in the poky SDK all the lines  
+
Note that with the change in the poky SDK all the lines
 +
 
 
<pre>$ source /usr/local/poky/eabi-glibc/arm/environment-setup
 
<pre>$ source /usr/local/poky/eabi-glibc/arm/environment-setup
</pre>  
+
</pre>
should become  
+
should become
 +
 
 
<pre>$ source /usr/local/poky/eabi-glibc/environment-setup-arm-none-linux-gnueabi
 
<pre>$ source /usr/local/poky/eabi-glibc/environment-setup-arm-none-linux-gnueabi
</pre>
+
</pre>
<br>  
 
  
 
----
 
----
 
<br>
 
  
 
[[Category:How_to_forge|Development virtual machine]]
 
[[Category:How_to_forge|Development virtual machine]]
[[Category:Sotware applications]]
+
[[Category:Development tools]]
 +
[[Category:Software applications]]
 +
[[Category:Ubuntu]]
 +
[[Category:Software distributions]]

Latest revision as of 10:26, 25 June 2018

Information.jpg New IGEP SDK Virtual Machine is available

Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine HOWTO

Overview of this HOWTO

This How-To is meant to be a starting point for people who use the Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine and wants to learn how to add some enhancements to the VM.

Warning icon.png A user reported that this page might contain some broken, wrong or missing links to external pages.

Thank you for your patience as it is being fixed.

Requirements

Feedback and Contributing

At any point, if you see a mistake you can contribute to this How-To.

Which IGEP SDK Virtual Machine do I have ?

At this moment (2010-December), your IGEP SDK Virtual Machine could be:

  • 20101124 version ( based on: Ubuntu 8.04.4 + Poky 20101124 version + IGEP0020-RC board )
  • 20091222 version ( based on: Ubuntu 8.04.1 + Poky 20090721 version + IGEP0020-RB board )

Which Poky SDK toolchain do I have ?

You could see "Poky SDK toolchain" version at '/usr/local/poky/eabi-glibc/version-arm-none-linux-gnueab' file:

jdoe@ubuntu:~$ cat /usr/local/poky/eabi-glibc/version-arm-none-linux-gnueabi
Distro: poky
Distro Version: 3.2.1
Metadata Revision: 949b440e52d637ef52eadb50c87e615eebd64ed4
Timestamp: 20100331130432

Which Poky SDK rootfs version do I have ?

You could see "Poky nfs exported rootfs demo" version at '/srv/nfs/poky/poky-image-sato/igep0020/etc/version' file:

jdoe@ubuntu:~$ cat /srv/nfs/poky/poky-image-sato/igep0020/etc/version 
201011231602


Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine (version 20101124)

Overview (version 20101124)

  • This is the lastest available IGEP SDK Virtual Machine (2010-December)
  • IGEPv2 boards could boot from TFTP+NFS exported installed demos
  • It provides installed demos at "/srv/" directory
    • TFTP exported Linux kernels at "/srv/tftp/poky/poky-image-XXXXX/igep0020/uImage" files
    • NFS exported rootfs at "/srv/nfs/poky/poky-image-XXXXX/igep0020/" directories
  • It provides a compiled toolchain demo at "/usr/local/poky/eabi-glibc" directory
  • There is a project source code example at "/home/jdoe/staging/x-loader/" directory, that is git cloned from http://git.isee.biz/ public source code repositories
  • It is based on Ubuntu 8.04.4 distribution
  • It provides quick links to ISEE IGEP boards ecosystem
  • What's New:
    • OMAP3730 processor support
    • Upgraded toolchain

Virtual Machine Enhancements (version 20101124)

Software updates

Selecting previously deselected package uboot-mkimage.
(Reading database ... 125211 files and directories currently installed.)
Unpacking uboot-mkimage (from uboot-mkimage_0.4build1_i386.deb) ...
Setting up uboot-mkimage (0.4build1) ...

Upgrade the Poky's SDK

  • (Not available)

Getting Started

First at all, you should read IGEPv2 SDK User Manual and follow its instructions.

Below steps are a quick and partial summary of IGEPv2 SDK User Manual:

  • Download Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine
  • Uncompress Ubuntu-8.04-IGEP-v2.0-20101124.7z file (Windows users use 7-zip / Linux users use p7zip)
  • Start up uncompressed virtual machine ( VMware Player, kvm, qemu, VirtualBox…).
  • Log on virtual machine login (Username: jdoe / Password: letmein / Default IP address: 192.168.254.10 )

Examples

Example 1: Hello world (built with cross toolchain)

  • Power up your Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine

Power up your development environment and login into bash shell

  • Create source code text file

First of all you need to initialize a suitable environment in the bash shell console inside your virtual machine.
You can do this sourcing once the environment-setup script.

$ source /usr/local/poky/eabi-glibc/environment-setup-arm-none-linux-gnueabi

Create a single .c file (hello-world.c), using your preferred editor (vi, nano, gedit, ...)

hello-world.c:

#include <stdio.h> 
int main (int argc, char **argv)
{
  printf("Hello world !\n");
  return 0;
}
  • Build arm binary executable

Cross toolchain tools are available into the built-in virtual machine Poky SDK. You only need open bash terminal prompt and write commands:

$ arm-none-linux-gnueabi-gcc -o hello-world hello-world.c
$ file hello-world
hello-world: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, dynamically linked (uses shared libs), not stripped
  • Transfer arm executable file from virtual machine to IGEPv2 board

Copy the binary result to your NFS-mounted root filesystem on your local virtual machine path

$ sudo cp hello-world /srv/nfs/poky/poky-image-sato/igep0020a/home/root
[sudo] password for jdoe: letmein
  • Execute arm executable file inside IGEPv2 board

And run the program in your target device (serial console or ssh network terminal)

# cd /home/root
# ./hello-world
Hello World !

Example 2: Hello world (built with autotool+cross toolchain)

Using the SDK with autotool enabled packages is straightforward; just pass the appropriate host option to configure

$ ./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi

Now, it shows how you can download the GNU Hello program and build for your device

See log example:

$ wget http://ftp.gnu.org/gnu/hello/hello-2.4.tar.gz
$ tar xzvf hello-2.4.tar.gz
$ cd hello-2.4
$ source /usr/local/poky/eabi-glibc/environment-setup-arm-none-linux-gnueabi
$ ./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi
$ make
$ file src/hello
src/hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.
$ scp src/hello root@192.168.254.254:/home/root

Demos (version 20101124)

Rootfs demos using an NFS-TFTP environment for IGEP v2

IGEP SDK Virtual Machine comes with 2 installed demos:

  • poky-image-sato (271M)
  • poky-image-minimal (137M)


You could find these demo on TFTP (Linux kernel) and NFS (rootfs) exported directories.

  • TFTP exported Linux kernels at "/srv/tftp/poky/poky-image-XXXXX/igep0020/uImage" files
jdoe@ubuntu:~$ cat /etc/inetd.conf 
tftp		dgram	udp	wait	nobody	/usr/sbin/tcpd	/usr/sbin/in.tftpd /srv/tftp
  • NFS exported rootfs at "/srv/nfs/poky/poky-image-XXXXX/igep0020/" directories
jdoe@ubuntu:~$ cat /etc/exports 
# /etc/exports: the access control list for filesystems which may be exported
#		to NFS clients.  See exports(5).
#

# Poky rootstraps
/srv/nfs/poky/poky-image-sato/igep0020		*(rw,no_root_squash,no_subtree_check,sync)
/srv/nfs/poky/poky-image-minimal/igep0020	*(rw,no_root_squash,no_subtree_check,sync)

If you want use these demos, IGEPv2 should boot with network TFTP+NFS method. Let show it:

  • 1) Open debug serial port and configure U-Boot environment variables. Press any key when you see:
Hit any key to stop autoboot: 5 

Bootlog:

60

Texas Instruments X-Loader 1.4.4-0 (Oct 21 2010 - 21:21:22)
Loading u-boot.bin from onenand


U-Boot 2010.06-0 (Nov 02 2010 - 10:07:55)

OMAP3630/3730-GP ES2.0, CPU-OPP2, L3-165MHz
IGEP v2 board + LPDDR/ONENAND
I2C:   ready
DRAM:  512 MiB
Muxed OneNAND(DDP) 512MB 1.8V 16-bit (0x58)
OneNAND version = 0x0031
Chip support all block unlock
Chip has 2 plane
block = 2048, wp status = 0x2
Scanning device for bad blocks
Bad eraseblock 176 at 0x01600000
Bad eraseblock 2648 at 0x14b00000
Bad eraseblock 2649 at 0x14b20000
OneNAND: 512 MiB
OneNAND: Read environment from 0x00200000
In:    serial
Out:   serial
Err:   serial
Die ID #4ee800011ff0000001592f350102302a
Net:   smc911x-0
Hit any key to stop autoboot:  5
  • 2) Now, you are inside U-Boot prompt. Configure U-Boot environment variables with:
U-Boot # setenv project poky-image-sato
U-Boot # setenv machine igep0020
U-Boot # saveenv
Saving Environment to OneNAND...
OneNAND: Saved environment to 0x00200000
U-Boot # 

All your environment variables should be similar to:

U-Boot # printenv
bootdelay=5
baudrate=115200
distro=poky
ethaddr=ac:de:48:00:02:54
ipaddr=192.168.254.254
netmask=255.255.255.0
gatewayip=192.168.254.10
serverip=192.168.254.10
addip=setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}::eth0:
bootargs-base=console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@60
mmc-bootargs=setenv bootargs ${bootargs-base} root=/dev/mmcblk0p2 rw rootwait
mmc-boot=mmc init 0; if fatload mmc 0 0x80000000 boot.ini; then source; else if fatload mmc 0 0x80000000 uImage; then run mmc-bootargs; bootm 0x80000000; fi; fi
onenand-bootargs=setenv bootargs ${bootargs-base} root=/dev/mtdblock4 rootfstype=jffs2 ; run addip
onenand-boot=run onenand-bootargs; onenand read 0x80000000 0x280000 0x300000 ; bootm 0x80000000
nfs-bootargs=setenv bootargs ${bootargs-base} root=/dev/nfs nfsroot=${serverip}:/srv/nfs/${distro}/${project}/${machine} ; run addip
nfs-boot=if ping ${serverip}; then run nfs-bootargs; tftp 0x80000000 ${distro}/${project}/${machine}/uImage; bootm 0x80000000; fi;
bootcmd=run mmc-boot; run nfs-boot; run onenand-boot
stdin=serial
stdout=serial
stderr=serial
dieid#=4ee800011ff0000001592f350102302a
ethact=smc911x-0
machine=igep0020
project=poky-image-sato
Environment size: 1248/524284 bytes

Now, we can boot with TFTP+NFS method

U-Boot # run nfs-boot
smc911x: detected LAN9221 controller
smc911x: phy initialized
smc911x: MAC ac:de:48:00:02:54
Using smc911x-0 device
host 192.168.254.10 is alive
smc911x: detected LAN9221 controller
smc911x: phy initialized
smc911x: MAC ac:de:48:00:02:54
Using smc911x-0 device
TFTP from server 192.168.254.10; our IP address is 192.168.254.254
Filename 'poky/poky-image-sato/igep0020/uImage'.
Load address: 0x80000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##############################################
done
Bytes transferred = 2894252 (2c29ac hex)
## Booting kernel from Legacy Image at 80000000 ...
   Image Name:   OpenedHand Linux (Poky)/2.6.35.9
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2894188 Bytes = 2.8 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ...
  • 3) When you get system up, login and check your boot method

See "root=/dev/nfs" and "nfsroot=192.168.254.10:/srv/nfs/poky/poky-image-sato/igep0020" in boot Linux cmdline string parameter:

OpenedHand Linux (Poky) 3.3.1 igep0020 ttyS2

igep0020 login: root
root@igep0020:~# cat /proc/cmdline
console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@60 root=/dev/nfs nfsroot=192.168.254.10:/srv/nfs/poky/poky-image-sato/igep0020 ip=192.168.254.254:192.168.254.10:192.168.254.10:255.255.255.0::eth0:
root@igep0020:~#

HOWTOs

This section describes related manuals and HOWTOs.

The bootloader X-loader

This HOWTO should be readed for advanced developers who wants hacking first stage bootloader.

The bootloader U-Boot

This HOWTO should be readed for developers who wants hacking second stage bootloader and change some board features (GPIO MUX configuration, rootfs location,...)

The Linux kernel

This HOWTO should be readed for developers who wants hacking IGEP Linux kernel and built-in drivers. People who knows hardware and ajusts Linux kernel feature. Also, developers who add more feature to Linux kernel like network protocol, new filesystems, patching buggy Linux kernel,...

How to upgrade and recover the factory firmware

This HOWTO should be readed for USERS who wants change enviroment configuration and default boot sequence of IGEPv2. You need connect your workstation to IGEPv2 board with UART3 serial debug port (USB to serial converter + DB9-IDC cable to J960 IGEPv2 connector).



OTHER REFERENCES

Frequency Asked Questions (FAQ)

Useful webpage is "Frequency Asked Questions" or FAQ page. Users could find common questions about IGEPv2 board and very quick answers about IGEPv2 software and hardware issues.

FORUM

Lots of knowledge can be found in the free IGEP Support Forum. First, search to see if anyone else has had the same issue. Then, if you don't find anything about your issue, you should create a new post.



Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine (version 20091222)

Overview (version 20091222)

  • Older IGEP SDK Virtual Machine (2009-December)

Demos (version 20091222)

Rootfs demos using an NFS-TFTP environment for IGEP v2

The simplest way to create a new NFS-TFTP environment for IGEP v2 is to use an already working filesystem and pre-built kernel image. Pre-built images are also available.

poky-image-minimal-mtdutils - A small image, just enough to allow a device to boot

Download and install the root filesystem image (poky-image-minimal-mtdutils-igep0020.cpio) as root on the NFS server,

$ sudo mkdir -p /srv/nfs/poky/poky-image-minimal-mtdutils/igep0020
$ cd /srv/nfs/poky/poky-image-minimal-mtdutils/igep0020
$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-minimal-mtdutils-igep0020.rootfs.cpio
$ sudo cpio -idm < poky-image-minimal-mtdutils-igep0020.rootfs.cpio

Download and copy a pre-built kernel image to poky-image-minimal project

$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/kernel/uImage-2.6.28-r4-igep0020-20100331100327.bin
$ sudo mkdir -p /srv/tftp/poky/poky-image-minimal-mtdutils/igep0020
$ sudo mv uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-minimal-mtdutils/igep0020/
$ sudo ln -s uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-minimal-mtdutils/igep0020/uImage

Export the directory tree with an entry in /etc/exports file editing with your preferred editor, like

/srv/nfs/poky/poky-image-minimal-mtdutils/igep0020   *(rw,no_root_squash,no_subtree_check,sync)

and restart the NFS server

$ sudo /etc/init.d/nfs-kernel-server restart

Now, you can power up your board, stop at u-boot, set the project variable point to poky-image-minimal-mtdutils and boot via NFS

# setenv machine igep0020
# setenv project poky-image-minimal-mtdutils
# run nfs-boot
poky-image-sato - X11 image with Sato theme and Pimlico applications.

Download and install the root filesystem image (poky-image-sato-igep0020.cpio) as root on the NFS server,

$ sudo mkdir -p /srv/nfs/poky/poky-image-sato/igep0020
$ cd /srv/nfs/poky/poky-image-sato/igep0020
$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/images/poky-image-sato-igep0020.rootfs.cpio
$ sudo cpio -idm < poky-image-sato-igep0020.rootfs.cpio

Download and copy a pre-built kernel image to poky-image-minimal project

$ sudo wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/kernel/uImage-2.6.28-r4-igep0020-20100331100327.bin
$ sudo mkdir -p /srv/tftp/poky/poky-image-sato/igep0020
$ sudo mv uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-sato/igep0020/
$ sudo ln -s uImage-2.6.28-r4-igep0020-20100331100327.bin /srv/tftp/poky/poky-image-sato/igep0020/uImage

Export the directory tree with an entry in /etc/exports file editing with your preferred editor, like

/srv/nfs/poky/poky-image-sato/igep0020   *(rw,no_root_squash,no_subtree_check,sync)

and restart the NFS server

$ sudo /etc/init.d/nfs-kernel-server restart

Now, you can power up your board, stop at u-boot, set the project variable point to poky-image-sato and boot via NFS

Virtual Machine Enhancements (version 20091222)

Software updates

Upgrade the Poky's SDK (from 20090721 version to 20100331 version)

Backup current SDK (If you don't know Poky SDK version, you could see 'Which Poky SDK toolchain do I have ?' )

$ mv /usr/local/poky/eabi-glibc /usr/local/poky/eabi-glibc.20090721

and replace with the new SDK

$ mkdir tmpdir
$ cd tmpdir
$ wget http://downloads.igep.es/poky/purple-3.2/v3.2.1-0/sdk/poky-eabi-glibc-i586-arm-toolchain-sdk-3.2.1.tar.bz2
$ tar jxf poky-eabi-glibc-i586-arm-toolchain-sdk-3.2.1.tar.bz2
$ mv usr/local/poky/eabi-glibc /usr/local/poky/

Note that with the change in the poky SDK all the lines

$ source /usr/local/poky/eabi-glibc/arm/environment-setup

should become

$ source /usr/local/poky/eabi-glibc/environment-setup-arm-none-linux-gnueabi