Symbian developer community

 
wiki

Kernel & Hardware Services Quick Start\Troubleshooting

From Symbian Developer Community

Jump to: navigation, search

If you have a problem working with the Kernel Taster Kit (or building the package and baseports with a PDK) that isn't listed here then please report it in the comments below. We'll try to reproduce it and help you fix it.

Contents

SBS complains if the RVCT22BIN environment variable is not defined

Workaround - define it as "ignored", see installation instructions.

Attempting to run arm-none-symbianelf-qemu-system.exe fails

If you get "The application failed to initialize properly (0xc0150002). Click on OK to terminate the application" then have you installed the PDT? The QEMU periperals for Symbian use Python, and the binary distribution supplied doesn't include the Visual C++ 2008 redistributable package which is present on most systems and many, many apps install it, including the PDT.

The other common cause for QEMU failing to start is incorrectly typing the command such that it can't find either the device tree specified, or the ROM image. Make sure the files are in fact present at the locations you specify with the '-M' and '-kernel' options.

Can't build ROM images

  • Error message "'cpp' is not recognized as an internal or external command"

The cpp.exe used by the ROM building script lives in \epoc32\gcc\bin - this directory needs to be on the path (as described in the installation instructions). You can check that it's on the path and working correctly by typing "cpp -v" - this should produce output beginning with "GNU CPP version 2.9-psion-98r2 (Symbian build 548) (ARM/EPOC/PE)"

  • Error message "To use new Symbian OS tools specify a default device using devices -setdefault"

This message implies that you have previously installed an SDK for S60 or UIQ and not followed the installation instructions exactly, so C:\Program Files\Common Files\Symbian\Tools is on your path before the \epoc32\gcc\bin path added in the installation instructions. The simplest workaround is to put \epoc32\gcc\bin first on the path, by typing "set path=\epoc32\gcc\bin;%path%".

Typing '\' into the eshell displays a '#'

This can happen if you are using a US Keyboard. To fix simply uncomment the US_KEYBOARD macro in keymap.cpp in the syborg baseport and rebuild.

Comments

Pjh said…

Both of the prebuilt binaries work in qemu and on beagleboard respectively. However, rebuilds fail. In the syborg case, there is just a hang. In the beagleboard case there is an exception during startup. Some digging in the source + tracing shows a prefetch abort occurring immediately following the completion of the Arm::TheAsic->Init1(); call in \sf\os\kernelhwsrv\kernel\eka\kernel\arm\cinit.cpp

The build environment is: - Windows Server 2008 - PDT 1.3.0 - RVCT 2.2

The build steps were exactly as on http://developer.symbian.org/wiki/index.php/BeagleBoard_Quick_Start


--Pjh 10:25, 27 October 2009 (UTC)

Pjh said…

Found what the problem was (more info on the original error in http://developer.symbian.org/forum/showthread.php?p=10675 ) - RVCT 2.2 Building with RVCT4.0 produced a working image.

Maybe SF should double-check the statement about RVCT 2.2. being the officially supported compiler.

--Pjh 04:48, 28 October 2009 (UTC)

Vinod arm said…

The Beagle board baseport build works as described. But if I try to build the os source(kernel) included in the zip , I get the below errors while building usrt ( from compsupp ):

X:\sf\os\kernelhwsrv>sbs -v -s package_definition_2.0.1.xml -c armv5.rvct4_0 -j 4 sbs version 2.9.2 [2009-09-21 sf release]

X:\sf\os\kernelhwsrv>sbs -s package_definition_2.0.1.xml -c armv5.rvct4_0 -j 4 sbs: error: Can't find mmp file 'X:/sf/os/kernelhwsrv/kerneltest/e32utils/sdpartition/sdpartition.mmp' referred to by 'X:/sf/os/kernelhwsrv/kerneltest/e32utils/ group/bld.inf' sbs: warning: While Searching for a SPECIFIED DEFFILE: file not found: X:/sf/os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/eabi/sdcard3c/epbusmu.def

tem        :  genexec.mk_MAKMAKE       [armv5_urel.rvct4_0]
tem        :  config.mk_MAKMAKE        [armv5_urel.rvct4_0]
tem        :  config.mk_MAKMAKE        [armv5_udeb.rvct4_0]
tem        :  genexec.mk_MAKMAKE       [armv5_udeb.rvct4_0]
tem        :  bootstrap.mk_MAKMAKE     [armv5_urel.rvct4_0]
tem        :  bootstrap.mk_MAKMAKE     [armv5_udeb.rvct4_0]
tem        :  config.mk_RESOURCE       [armv5_urel.rvct4_0]
tem        :  genexec.mk_RESOURCE      [armv5_urel.rvct4_0]
tem        :  config.mk_RESOURCE       [armv5_udeb.rvct4_0]
tem        :  genexec.mk_RESOURCE      [armv5_udeb.rvct4_0]
tem        :  bootstrap.mk_RESOURCE    [armv5_urel.rvct4_0]
tem        :  bootstrap.mk_RESOURCE    [armv5_udeb.rvct4_0]
tem        :  config.mk_LIB    [armv5_urel.rvct4_0]
tem        :  genexec.mk_LIB   [armv5_urel.rvct4_0]
compile    :  kernel\eka\compsupp\symaehabi\callfirstprocessfn.cpp     [armv5_urel.rvct4_0]
FAILED compile for armv5_urel.rvct4_0:  kernel\eka\compsupp\symaehabi\callfirstprocessfn.cpp
 mmp: kernel\eka\compsupp\rvct\usrt.mmp
  Error: C3065E: type of input file 'Files/ARM/RVCT/Data/4.0/650/include/windows' unknown
  "X:/sf/os/kernelhwsrv/kernel/eka/compsupp/symaehabi/cxxabi.h", line 10: Error:  #5: cannot open source input file "stddef.h": No such file or directory
    #include <stddef.h>
                       ^
  X:/sf/os/kernelhwsrv/kernel/eka/compsupp/symaehabi/callfirstprocessfn.cpp: 0 warnings, 1 error
   make.exe: *** [X:/epoc32/build/compsupp/c_a08ef16c4e48f09d/usrt4_0_lib/armv5/urel/callfirstprocessfn.o] Error 1
   make.exe: *** Waiting for unfinished jobs....
tem        :  bootstrap.mk_LIB         [armv5_urel.rvct4_0]

sbs: error: The make-engine exited with errors.

sbs : warnings: 1 sbs : errors: 5

Run time 71 seconds


If I do the below set RVCT40INC="C:\Program Files\ARM\RVCT\Data\4.0\650\include\windows"

and try again it fails as below:

compile    :  kernel\eka\compsupp\symaehabi\callfirstprocessfn.cpp     [armv5_urel.rvct4_0]
FAILED compile for armv5_urel.rvct4_0:  kernel\eka\compsupp\symaehabi\callfirstprocessfn.cpp
 mmp: kernel\eka\compsupp\rvct\usrt.mmp
  "X:/sf/os/kernelhwsrv/kernel/eka/compsupp/symaehabi/cxxabi.h", line 10: Error:  #5: cannot open source input file "stddef.h": No such file or directory
    #include <stddef.h>
                       ^
  X:/sf/os/kernelhwsrv/kernel/eka/compsupp/symaehabi/callfirstprocessfn.cpp: 0 warnings, 1 error
   make.exe: *** [X:/epoc32/build/compsupp/c_a08ef16c4e48f09d/usrt4_0_lib/armv5/urel/callfirstprocessfn.o] Error 1
   make.exe: *** Waiting for unfinished jobs....

sbs: error: The make-engine exited with errors.

sbs : warnings: 1 sbs : errors: 5

Run time 63 seconds

Something's not right with finding the 4.0 inc headers but I am not sure where exactly...



--Vinod arm 16:55, 27 November 2009 (UTC)

William Roberts replies:

You should use the "-k" option to sbs. The -k option tells Raptor to keep going after errors, which should allow you to compile the rest of the package and see clearly all of the errors.

The kernelhwsrv package does compile with RVCT 2.2, because that's what we use for the platform builds.
I'll have another look at compiling compsupp with RVCT 4.0, but please could you raise this as a bug on https://developer.symbian.org/bugs

Sign in to comment…