Symbian developer community

 
wiki

Kernel & Hardware Services package EPL Q&As

From Symbian Developer Community

Jump to: navigation, search
Under Community Construction
This page is Under Community Construction. Please help us to improve it. You may temporarily change the status to {{Under Construction}} if you wish to work on the document without anyone else editing it. If you think that the document is complete please change the status to {{For Technical Review}}. See Document Creation Workflow.




This article contains questions and answers that explain the benefits and opportunities to the developer community from providing the Kernel and Hardware Services package (KernelHwServices) under the Eclipse Public License (EPL).

Contents

What is being delivered?

Developers who want to experiment with the Symbian platform on different hardware can now do so using the publically available kernel source code and a free toolchain provided by both Symbian and ARM.

At time of writing, its possible to build Textshell ROMs for the new Beagleboard board and the QEMU Emulator, "out of the box". The Beagleboard and QEMU base ports can also be modified to run on other hardware, or developers can create new base ports and device drivers from the templates provided.

In overview:

  • The Kernel and Hardware Services Package and base ports for the Beagleboard reference hardware and QEMU Emulator are now available to all developers under EPL (and to Symbian Foundation members under either SFL or EPL).
  • Kernel and Base port code can be compiled using the RVCT 4 compiler, which ARM have made available under a license that is free for non-commercial use.
  • Text-shell ROMS can be built using the tools and binaries in the new [<link to new EULA PDK>]
  • Documentation on how to create base ports and device drivers is provided here: Base Porting Quick Start
  • Documentation on how to use QEMU is provided here: QEMU


Note
We are also expecting a baseport for the OMAPZOOM2 reference board to become available in the near future.


What's in the Kernel and Hardware Services package?

The Kernel and Hardware Services package provides the foundations of the operating system on which the rest of the Symbian platform is built. It includes the kernel and file server as well as the fundamental user libraries on which all other packages are based. Among other things, the kernel is responsible for scheduling, thread synchronization, memory and power management, and features like symmetric multiprocessing and demand paging. It is the fundamental software that differentiates the Symbian platform other mobile software platforms.

The package also contains the template base port, which forms the basis of new board support packages, and the device driver framework which is used to add support for new peripherals.

Further information:

What are QEMU and Syborg?

QEMU is an open source processor emulator. A processor emulator can run software designed for one type of machine (such ARM) on another type of machine (such as a PC). QEMU allows Symbian ROM images built for ARM to be run and debugged on a PC-based emulator. (This is significantly different from the the wins or wincw emulator, which does not run ARM images).
Syborg is the Symbian baseport required for building ROM images to run on QEMU.

Why deliver the Kernel under the EPL?

Note
The Symbian Foundation is committed to delivering the entire Symbian platform under open source licenses, thereby allowing any developer to innovate across the whole platform from the hardware interface to the applications layer. Publishing the Kernel and Hardware Services package under EPL is part of this process.


The specific benefit of migrating this package is that it enables any developer, from hobbyist or university researcher to fledgeling commercial enterprise, to experiment and innovate with the Symbian platform on reference hardware. This is a significant change from the past when the cost of software license, compiler toolchain and reference board meant that this area of development was only practicable for fairly large commercial enterprises.

With the supplied code, developers can:

  • Modify supplied baseports
  • Create ports to run on new hardware, using either the supplied templates or by modifying other EPL ports.
  • Develop device drivers and file system media drivers
  • Debug kernel-side code using GDB and the free QEMU emulator, without expensive hardware.

The Symbian Foundation hopes that developers will contribute their changes back into the foundation, thereby benefiting the whole community.

Further Information:

What is a Textshell ROM?

A textshell is a minimal ROM configuration that omits almost all middleware and UI layers. Interaction with the user is through a command line console.

Textshells are useful for testing new hardware configurations and file system media drivers (with the E32test and F32test test suites), and for creating and testing device drivers.

The Kernel & Hardware Services package contains the ROM configuration for a basic textshell in the \e32\rombuild\ directory.

How do I get started?

Contribution & Licensing

The Symbian platform is made available under a number of different licenses, as explained here: Source Code Licenses Used By the Symbian Foundation.

The two main licenses are the Symbian Foundation Licence (SFL), that is available to members only, and the open source Eclipse Public License. The licenses allow similar rights: Both are designed to allow developers not to have to distribute new code and to provide protection from litigation for contributed code, while encouraging contribution of fixes and derivative code. The main difference is that the SFL allows patent rights over software and hardware combinations, while EPL restricts patents to software combinations only.

An overview of what the EPL allows is provided in the EPL FAQ. The sections below also provide some guidance. These are provided for informational purposes only. They are not part of, nor do they modify, amend, or supplement the terms of the EPL.

Do I have to contribute back my changes?

Under the EPL you are not obligated to contribute your changes back to the Foundation. Although if they are useful to the wider community we encourage you to do so.

Further Information:

Is a base port that I create a derivative product?

As in #Do I Need To Contribute Back My Changes?, whether a base port is a derivative product depends on the circumstances:

  • If you start your base port from an existing base port you are probably creating a derivative work, since you're re-using the existing code and modifying only what is necessary.
Note
The empty base port templates in the Kernel & Hardware Services package are currently licensed under EPL. Under a strict interpretation of the license if you start a base port from these templates it might be considered a derivative work. We are working to get the templates changed to a more permissive license; in the meantime please consult your own legal team for advice.


Further Information:

May I use the source code for a university project

Yes.

The EPL (&SFL) allow researchers based in universities (and elsewhere) the same rights as any other developer.

Further Information:

May I use the source code for my new business

Yes.

The only caveat is that RVCT 4.0 licensing may affect your ability to build the code. You need to check ARM's licensing conditions

Compilers

Which compiler do I need to build the kernel and base ports?

You can build the kernel and base ports with RVCT 2.2 or RVCT 4.0.

Here is a summary of which compilers can be used to build different parts of the Symbian platform:

  • RVCT 2.2 is the supported platform compiler. It can used to build the whole Symbian platform and is available only under commercial license.
  • GCCE 3.4.3 is the current compiler supported for (free) application development. This is suitable for building applications but is not able to build kernel code.
  • RVCT 4.0 can be used to build the kernel and base ports. There are some parts of the operating system it cannot yet build. This compiler is available under commercial and free (not for commercial use) licensing terms.
  • GCCE 4.3.3 is not yet supported for use with the Symbian platform. There are some known bugs with the integration with the Symbian platform and its build system.

Further Information:


My company is a new startup. Can we use the RVCT 4.0 compiler?

Possibly. Please check [ARM's licensing terms].

Where do I get RVCT 4.0?

RVCT 4.0 is supplied by ARM here.

You must register and create a user account, after which you can download the software from here.

Production Devices & Reference Hardware

What reference hardware can I use?

A base port is available for the low cost Beagleboard reference board.

The Beagleboard port is available under EPL so you can also modify the code to run on any other hardware you please, or you can start from scratch using the base port templates in the Kernel & Hardware Services package.


Note
We are expecting a base port to become available for the OMAPZOOM reference hardware in the near future.


Further Information:

Can I create a ROMs that contains the whole Symbian platform?

No. At time of writing you can only build a textshell ROM using the free toolchain.

The current limitation is due to mixed-licence code in the Product Development Kits which means that a full kit cannot be delivered to non-members.

In the near future we hope to provide the ability to build full ROMs. This will enable developers to test use cases like replacing the default applications, and indeed use the free toolchain to create their own devices.

Can I build my own devices?

See #Can I create a ROMs that contains the whole Symbian platform?

Can I use Symbian Platform ROMS on my production phone?

No. In most cases mobile device manufacturers modify their production phones to prevent the underlying software from being changed by unauthorised parties. Even if you could do so, obtaining the necessary base port would be difficult.

Further information:

Can I use a device driver I developed on my production phone?

Possibly. In order to install a device driver on a production phone you need to obtain Symbian Signed "manufacturer capabilities".

You should approach the manufacturer before starting development if there is a requirement to install the device driver on a production phone.

Further information:

How Do I Test A Base Port?

<Link to Jo's documents Should cover F32test and E32test as a minimum> Base Porting Quick Start

Comments

Contents

Stichbury said…

This is one for revision now, I think. There are some useful questions here, but others are probably redundant given that the entire platform is open (licensing). If we fix this up, we can probably signpost it from platform opening material. Ideally I'd like that material to start linking to other, existing wiki articles like this one, so it blends in rather than sits as a kind of "microsite". If that makes sense...

--Stichbury 16:54, 5 February 2010 (UTC)

Hamishwillee said…

It does make sense. Who were you hoping would revise :-)

--Hamishwillee 23:16, 7 February 2010 (UTC)

Stichbury said…

Up to you! It's either you or Tim...

--Stichbury 13:36, 8 February 2010 (UTC)

Xiongguoan said…

It's nice! Waiting for free complier which could build the whole platform...

--Xiongguoan 08:47, 21 February 2010 (UTC)

Hamishwillee said…

Hi @Xiongguoan

Thanks. We're waiting on one too. Much of the work that needs to be done is bug fixes that were fine for RVCT 2.2. but which aren't for GCCE4. Anyone can fix these and submit - see Compiler Compatibility. So you can help bring this day closer if you want :-)

Regards Hamish

--Hamishwillee 23:48, 21 February 2010 (UTC)

Sign in to comment…