Symbian developer community

 
wiki

How to build the Syborg/QEMU baseport for Symbian^2.0.0 on Ubuntu Linux

From Symbian Developer Community

Jump to: navigation, search

These instructions have been verified on Ubuntu 9.04

N.B Some prerequisites of these instructions are not yet widely available:-

You will need the proprietary ARM RVCT 2.2 compiler to build the Symbian kernel. A free (GCC) compiler that can build the kernel is in the pipeline but not yet available

You will need Nokia's Linux installer for the sbsv2 build system. This is in the pipeline for contribution to Symbian (so I've got a binary preview) but has not been contributed yet.

For everything that follows, you need to stay in the same shell.

Contents

Install sbsv2

I am assuming you have got the sbsv2 linux installer, ./sbs-2.9.3-source.run, in your current directory.

Install basic buiild tools:

$ sudo apt-get install build-essential

Install bison:

$ sudo apt-get install bison

Install the ncurses development package:

$ sudo apt-get install ncurses-dev

Run the installer and answer the prompts, accepting defaults:

 $./sbs-2.9.3-source.run

All being well, you will now find sbsv2 installed in ~/raptor, which is a symlink to ~/raptor-293

Install RVCT 2.2

I am assuming you have a RVCT 2.2 installed in /opt/symbian/ARM

Install Mercurial

$ sudo apt-get install mercurial

On Ubuntu 9.04 or later you may also like to install the Mercurial TortoiseHG gui and nautilus integration:

 
$ sudo apt-get install mercurial-common
$ sudo apt-get install mercurial-tortoisehg
$ sudo apt-get install nautilus-mercurial-tortoisehg
 

Get PDK 2.0.0

Go to http://developer.symbian.org

If not already registered, then register.

Login

Navigate: Tools & Kits -> Download the Kits -> Symbian^2 Platform Release v2.0.0

Download:

  • binaries_armv5.zip
  • binaries_epoc.zip
  • binaries_epoc_additional.zip
  • tools_epoc.zip

Create a directory for the build. I assume ~/syborg:

$ mkdir ~/syborg

Copy all the downloaded zips into ~/syborg.

Extract all the downloaded zips:

$ cd ~/syborg
$ for file in *.zip; do unzip $file; done

Get the kernel sources from Mercurial

 
$ mkdir sf
$ mkdir sf/os
$ cd sf/os
$ hg clone -U https://developer.symbian.org/oss/MCL/sf/os/kernelhwsrv
$ cd kernelhwsrv
$ hg update -r PDK_2.0.0
 

(Login when prompted)

Get the QEMU sources from Mercurial

 
$ cd ~/syborg/sf
$ mkdir adaptation
$ cd adaptation
$ hg clone https://developer.symbian.org/oss/FCL/sf/adaptation/qemu
 

Fix case-sensitivity offender epoc32/include/ProductVariant.hrh

 
$ cd ~/syborg
$ mv epoc32/include/ProductVariant.hrh epoc32/include/productvariant.hrh
 

Fix case-sensitivity offender in sysborg's variant.mmh

 
$ sed -e 's|/sf/adaptation/qemu/baseport/syborg/specific|/sf/adaptation/QEMU/baseport/syborg/specific|g' -i sf/adaptation/qemu/baseport/syborg/variant.mmh
 

Setup environment for syborg build

 
$>export EPOCROOT=~/syborg/
$>export SBS_HOME=~/raptor
$>export RVCT22BIN=/opt/symbian/ARM/RVCT/Programs/2.2/308/linux-pentium
$>export RVCT22INC=/opt/symbian/ARM/RVCT/Data/2.2/308/include
$>export RVCT22LIB=/opt/symbian/ARM/RVCT/Data/2.2/308/lib
$>export RVCT22_ASMOPT=--licretry
$>export RVCT22_CCOPT=--licretry
$>export RVCT22_LINKOPT=--licretry
 

You need access to a license server for the RVCT compiler. Set ARMLMD_LICENSE_FILE to be a colon-punctuated list of those available:

 
$ export ARMLMD_LICENSE_FILE='8224@LON-ENGBUILD87.ad-sfpd.intra:8224@LON-ENGBUILD89.ad-sfpd.intra'
 

Somewhere down the tool stack, armasm gets invoked without reference to $RVCT22BIN, so we need it on the PATH

 
$ export PATH=$PATH:$RVCT22BIN
 

We need a Linux build of elf2e32 in our epoc32/tools directory. raptor supplies one in $SBS_HOME/test/epocroot/epoc32/tools/elf2e32. Symlink it from there to epoc32/tools.

 
$ if [ ! -e ${EPOCROOT}epoc32/tools/elf2e32 ]; then ln -s $SBS_HOME/test/epocroot/epoc32/tools/elf2e32 ${EPOCROOT}epoc32/tools/elf2e32; fi
 

Build the syborg baseport

 
$ cd ${EPOCROOT}sf/adaptation/qemu/baseport/syborg
$ $SBS_HOME/bin/sbs -c armv5
 

Sign in to comment…