基于指定的快照创建Tizen IVI镜像的完全指南

简介

本文介绍基于指定快照手动创建Tizen IVI镜像的方法,包括以下内容:

  • 克隆Tizen源码
  • 备预编译二进制文件和编译配置
  • 使用GBS编译所有包
  • 使用MIC创建镜像

本文使用以下快照地址作为例子:

http://download.tizen.org/snapshots/tizen/ivi/ivi/tizen_20140703.2/builddata/manifest/tizen_20140703.2_atom.xml

克隆Tizen源代码

确保以下准备工作已经做好:

  • Gerrit账号有效可用。
  • ~/.ssh/config已经正确配置,如下:
Host review.tizen.org
Hostname review.tizen.org
Port 29418
User <INPUT_YOUR_USER>
# ProxyCommand connect -S <proxy:port> %h %p
 
Host tizen
Hostname review.tizen.org
Port 29418
User <INPUT_YOUR_USER>
# ProxyCommand connect -S <proxy:port> %h %p

更多关于账户注册和配置信息,请参考以下链接:

https://source.tizen.org/documentation/developer-guide/environment-setup

假设Tizen IVI源代码目录是~/tizen_ivi_src,执行以下命令将Tizen源码从快照中克隆下来:

http://download.tizen.org/snapshots/tizen/ivi/ivi/tizen_20140703.2/builddata/manifest/tizen_20140703.2_atom.xml

$ mkdir ~/tizen_ivi_src & cd ~/tizen_ivi_src
$ repo init -u tizen:scm/manifest -b tizen -m ivi.xml
$ wget http://download.tizen.org/snapshots/tizen/ivi/ivi/tizen_20140703.2/builddata/manifest/tizen_20140703.2_atom.xml -O .repo/manifests/ivi/projects.xml
$ sed -i '3,4d' .repo/manifests/ivi/projects.xml # remove duplicated <remote> and <default> lines
$ repo sync -j 32 # sync code

备预编译二进制文件和编译配置

执行以下命令准备预编译二进制文件:

$ cd ~/tizen_ivi_src/pre-built/toolchain-x86
$ ./tools/update_prebuilt.py -L . -R http://download.tizen.org/snapshots/tizen/ivi/ivi/tizen_20140703.2/repos/atom/packages/

执行以下命令准备编译配置文件:

$ curl http://download.tizen.org/snapshots/tizen/ivi/ivi/tizen_20140703.2/repos/atom/packages/repodata/8c262bdf6b0207657429addd83717bd99a8a25b978d4a3810abe8fe89a41a25a-build.conf.gz|gunzip >~/tizen_ivi_src/scm/meta/build-config/build.conf

使用GBS编译所有包

检查GBS配置

成功同步仓库以后,一个用于GBS本地编译缺省的.gbs.conf文件被拷贝到~/tizen_ivi_src/目录。

编译所有包

只要所有的Tizen源代码都下载,并且gbs.conf文件也正确配置,下一步就可以使用GBS编译所有源码:

$ nohup gbs build -A i586 --threads=4 --baselibs >build.log 2>&1 &
$ tail -f build.log

成功进行本地编译后,编译报保存在build.log文件中。

使用MIC创建镜像

本节介绍如何下载和配置使用MIC创建镜像需要的安装文件。

更多信息请参考:
https://source.tizen.org/documentation/developer-guide/getting-started-guide/creating-tizen-images-mic

下载安装文件

从以下路径下载指定的安装文件:
http://download.tizen.org/snapshots/tizen/ivi/ivi/tizen_20140703.2/images/atom
$ cd ~/tizen_ivi_src/
$ wget http://download.tizen.org/snapshots/tizen/ivi/ivi/tizen_20140703.2/images/atom/ivi-mbr-i586/tizen_20140703.2_ivi-mbr-i586.ks

更新安装文件

参考以下内容删除远程仓库,添加由GBS创建的本地仓库和预编译仓库:

-repo --name=ivi --baseurl=https://download.tizen.org/snapshots/tizen/ivi/ivi/tizen_20140703.2/repos/atom/packages/
+repo --name=local --baseurl=file:///$HOME/GBS-ROOT/local/repos/tizen3.0_ivi/i586 --priority=1
+repo --name=pre-built --baseurl=file:///$HOME/tizen_ivi_src/pre-built/toolchain-x86 --priority=2

创建Tizen镜像

执行以下命令创建Tizen镜像:

$ cd ~/tizen_ivi_src/
$ time sudo mic cr auto tizen_20140703.2_ivi-mbr-i586.ks --tmpfs
...
INFO: Running command: bzip2 -f /var/tmp/mic/build/imgcreate-gHJ3Dt/tmp-2jcC9E/tizen_20140703.2_ivi-mbr-i586-201407020958-sdb.raw
INFO: Creating manifest file...
INFO: The new image can be found here:
/var/lib/jenkins/tizen/mic-output/tizen_20140703.2_ivi-mbr-i586-201407020958-sdb.bmap
/var/lib/jenkins/tizen/mic-output/tizen_20140703.2_ivi-mbr-i586-201407020958-sdb.raw.bz2
/var/lib/jenkins/tizen/mic-output/tizen_20140703.2_ivi-mbr-i586-201407020958.xml
/var/lib/jenkins/tizen/mic-output/manifest.json
/var/lib/jenkins/tizen/mic-output/tizen_20140703.2_ivi-mbr-i586-201407020958-vmlinuz-3.14.2-1-x86-ivi
 
INFO: Finished.
 
real 4m5.028s
user 3m28.720s
sys 0m18.140s

至此,基于指定快照的镜像已经创建成功并可以使用了。