Kernel & Hardware Services package build

Kernel & Hardware Services package build

根据symbian文档翻译+总结:

http://developer.symbian.org/wiki/index.php/Kernel_&_Hardware_Services_Quick_Start

Kernel&Hardware Service package为其他packages在操作系统中做build提供了基础,它提供了其他packages所需要的内核,文件服务器,设备驱动框架,以及用户库,其中内核主要负责进程时间片分配,同步,内存管理,还有一些软件基本规范(software fundamental)来区别于Linux,CEs40上不同的symbian os.

 

要运行Symbian Kernel ,需要一个baseport(syborg.img),它是一个接口,能让硬件在symbian平台上运行。目前在EPL(Eclipse Public License)下发布的kernel中广泛使用和实验的有两个baseport源码,一个是Syborg,能在QEMU的模拟器上运行Symbian平台的ARM二进制文件;还有一个Baseport为低成本BeagleBoard开发板设计的,该开发板使用OMAP3530处理器。

 

:

QEMU是一个开源的处理仿真器,能在PC上仿真出ARM机,意味着以目标硬件编译的Symbian ROM可以直接在PC机上运行。

Syborg:是和QEMU一起使用的Symbian Baseport,必须构建syborg boaseportROM映像里,才能启动QEMU进行运行和调试。

Symbian虚拟平台SVP=QEMU+Syborg

 

 

To get the Symbian kernel building and running on a supported platform, you must follow a common set of steps:

l  Get the tools.

l  Set up the environment.

l  Get the kernel source code.

l  Get the baseport source code.

l  Build the baseport.

l  Create a ROM image.

l  Load the ROM image on the target platform.

 

下面分别详细说明以上六个步骤:

1. Get the tools.

1.1 下载并安装ARM RVCT4.0

http://developer.symbian.org/wiki/index.php/Installing_ARM_RVCT_4.0

你需要登录http://silver.arm.com注册一个账号,提供网卡地址,根据此网卡地址生成一个license.dat进行安装。

1.2   安装PDT

在安装PDT之前还需要安装
ActivePerl 5.6.1 or later               

 ActivePython 2.5.1 or later                    

 JDK6.0                                    

 

参照http://developer.symbian.org/wiki/index.php/Product_Development_Toolkit_Quick_Start安装PDT,我使用的是PDT1.3版本 ,但是网页上已经更新至1.5版本

最后可查阅此链接的部分内容,看自己的环境是否搭建正确。

http://developer.symbian.org/wiki/index.php/How_do_I_test_that_my_development_environment_is_set_up_correctly

 

2. Installing the Kernel Taster kit

2.1 下载Kernel Taster Kit

 

它已经包含了上述步骤中的第二步到第六步,这个包里包括了一些源码,pre-built的二进制文件,QEMU/SyborgBeagleBoard baseportsROM image.

2.2   虚拟一个硬盘作为Kernel Taster Kit的根目录。

Kernel Taster Kit解压至硬盘某处,比如d:\see_kernel_kit

cmd中使用命令:

subst x: d:\see_kernel_kit

 

可以虚拟出一个x:,映射d:\see_kernel_kit个目录

(注:重启后x盘就没有了,如果想撤销,可使用命令:subst x: /d)

3. Set Up the Kernel Taster Environment

C:\>set EPOCROOT=\
C:\>set path=\epoc32\tools;\epoc32\gcc\bin;%path%

设置

EPOCROOT 根目录,是为了让系统能够找到 x:\epoc32 这个根目录,

 

 

set path=\epoc32\tools;是为了让系统能够找到如iMaker这类编译工具,否则会报错。

 

上面我们装的是RVCT4.0而不是RVCT2.2(包括在RVDS4.0中,已经不提供单独下载,),所以我们需要改一些环境变量让系统不要在build过程中找RVCT22变量:


C:\>set RVCT22BIN=ignored
C:\>set RVCT22INC=ignored
C:\>set RVCT22LIB=ignored

 

当然以上命令只是对当前的命令行窗口有效,如果你需要长期有效需要在“我的电脑属性高级环境变量”中设置。

并且在后面的build中使用sbs命令式要用:

sbs -s package_definition_2.0.1.xml -c armv5.rvct4_0 -k -j 4

告诉sbs命令这里使用rvct4.0编译器。

4. Loading a ROM Image on a Target Platform

启动QEMU模拟器:

C:\>X:
X:\>cd \symbian-qemu-0.9.1\bin
x:\symbian-qemu-0.9.1\bin>arm-none-symbianelf-qemu-system -M \sf\adaptation\qemu\baseport\syborg\syborg.dtb -kernel \epoc32\rom\SYBORGARMV5D.IMG

-M参数:      select  emulated machine (-M ? for list)

-kernel参数  bzImage  use 'bzImage' as kernel image

 

如果之前的步骤都正确,QEMU命令行模式窗口就会启动J

 

 

以上的所有步骤我们完成了绿色标注的步骤

l  Get the tools.

l  Set up the environment.

l  Get the kernel source code. (\see_kernel_kit\sf\os\kernelhwsrv)

l  Get the baseport source code. (\see_kernel_kit\sf\adaptation\qemu)

l  Build the baseport.

l  Create a ROM image.

l  Load the ROM image on the target platform.

我们刚才用see_kernel_kit中已经包含的Syborg ROM Image来启动QEMU,现实中我们是要根据实际需求来修改\sf\adaptation\qemu中的源码,rebuild the baseport and re-create the ROM image ,下面就介绍上述红色标注的步骤。

 

5. Building the Baseport----Syborg

SBSv2(Symbian Build System version2)+RVCT4.0build.

X:\symbian-qemu-0.9.1\bin>cd \sf\adaptation\qemu
X:\sf\adaptation\qemu>sbs -s package_definition_2.0.1.xml -c armv5.rvct4_0 -k -j 4

-s参数:SYS_DEF_FILE, --sysdef=SYS_DEF_FILE

                            System Definition XML filename.

-c 参数:CONFIG_NAME, --config=CONFIG_NAME

                   Configuration name to build. Multiple -c options can

                   be given. The standard configs are all, armv5, armv7,

                   default, tools, tools2 and winscw.

-k参数 --keepgoing       Continue building, even if some build commands fail.

-j参数  NUMBER_OF_JOBS, --jobs=NUMBER_OF_JOBS 并发执行的最大任务数

 

6. Create ROM image

X:\sf\adaptation\qemu>cd \sf\os\kernelhwsrv\kernel\eka\rombuild
X:\sf\os\kernelhwsrv\kernel\eka\rombuild>rom --variant=syborg --inst=armv5 --build=udeb --type=tshell --name=\epoc32\rom\SYBORGARMV5D.IMG

--variant参数: 指定在\epoc32\rom 中包含 IBY files的文件夹,这里指向\epoc32\rom\syborg

--inst 参数:identifies the target architecture

--build 参数:determines whether debug or release binaries are to be used

--type=tshell: selects the tshell.oby file from the current directory which then specifies the names of the IBY files to get from the variant directory and the remaining IBY files required to define a standard text shell ROM

--name specifies the output image file name

如果没有错误,在\epoc32\rom\下就重新生成了SYBORGARMV5D.IMG

 

7. Building the Baseport and Create ROM image----BeagleBoard

X:\>cd \sf\adaptation\beagleboard
X:\sf\adaptation\beagleboard>sbs -s package_definition_2.0.1.xml -c armv5.rvct4_0 -j 4
X:\sf\adaptation\beagleboard>cd \sf\os\kernelhwsrv\kernel\eka\rombuild
X:\sf\os\kernelhwsrv\kernel\eka\rombuild>rom --variant=beagle --inst=armv5 --build=udeb --name=\epoc32\rom\BEAGLEARMV5D.IMG

生成的BEAGLEARMV5D.IMG只能在Beagelboard开发板上运行。

 

 

 

你可能感兴趣的:(c,PHP,OS,C#,Symbian)