Meego Wiki
Views

SDK/Tutorials/Image Creation

From MeeGo wiki
< SDK | Tutorials(Difference between revisions)
Jump to: navigation, search
(Create QEMU images (QEMU NAND and rootfs))
(Create the QEMU NAND image using qflasher tool)
 
(13 intermediate revisions not shown)
Line 3: Line 3:
== Create sysroot image(s) ==
== Create sysroot image(s) ==
-
Create the sysroot image(s) using mic2 tool:
+
=== Download/Create the .ks files ===
-
* download core-${arch}-madde-sysroot.ks files from http://meego.gitorious.org/meego-os-base/image-configurations/trees/master/core
+
-
* use the following command line
+
-
  sudo mic-image-creator --run-mode=0 --cache=mycachedir --format=fs --arch='''${arch}''' --config='''core-${arch}-madde-sysroot.ks''' --package=tar.bz2 --release
+
First you need to install kickstarter
 +
git clone git://gitorious.org/meego-developer-tools/kickstarter.git
 +
cd kickstarter
 +
make
 +
sudo python ./setup.py install
 +
cd ..
 +
 
 +
Then we get the image configurations:
 +
 
 +
git clone git://gitorious.org/meego-os-base/image-configurations.git
 +
cd image-configurations
 +
kickstarter -c configurations.yaml -r repos.yaml
 +
 
 +
After this you will have kickstart files created to a subdirectory called 1.1.99, 1.2.80 or something similar.
 +
 
 +
cd <X.X.XX>
 +
 
 +
=== Create the MADDE SYSROOT image ===
 +
 
 +
Select one of the kickstart files ending with '''*-madde-sysroot.ks''' and call following command for it to create the image.
 +
 
 +
  sudo mic-image-creator --run-mode=1 --cache=mycachedir --config='''${vertical}-${arch}-madde-sysroot.ks''' --release='''${release_id}'''
 +
 
 +
* '''${vertical}''': Is the vertical of the image, e.g., core/handset/netbook/ivi
 +
* '''${release_id}''': Check repo lines from kickstart and find one that has --name=oss from that take the start of the baseurl until the @BUILD_ID@ string and put it to your browser. Now you can see all the available release_id's for your kickstart file.
== Create QEMU images (QEMU NAND and rootfs) ==
== Create QEMU images (QEMU NAND and rootfs) ==
-
Create the QEMU NAND image using qflasher tool:
+
=== Create the QEMU NAND image using qflasher tool ===
 +
 
 +
'''NOTE:''' This guide is based on an old version and there might be newer versions of the files available.
 +
 
 +
3 components are needed: '''a kernel file''', '''nolo-qemu package''' (provides xloader/secondary binaries) and '''qflasher package'''.
 +
 
 +
Lets first make a dir for us for this all:
 +
mkdir qemu-nand
 +
cd qemu-nand
 +
 
 +
First get the QEMU image e.g. from http://repo.meego.com/MeeGo/builds/1.1.90/1.1.99.4.20110426.4/images/meego-handset-armv7hl-qemu/
 +
wget http://repo.meego.com/MeeGo/builds/1.1.90/1.1.99.4.20110426.4/images/meego-handset-armv7hl-qemu/meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-raw.tar.bz2
 +
 
 +
Then extract the kernel package from the tarball
 +
tar xvf meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-raw.tar.bz2
-
* 3 components are needed: a kernel file, nolo-qemu package (provides xloader/secondary binaries) and qflasher package.
+
Next get the qflasher and nolo-qemu packages and extract the binaries. (Latest: http://repo.meego.com/MeeGo/builds/trunk/latest/repos/non-oss/ia32/packages/i586/). '''Note''': qflasher/nolo-qemu packages can be used on all supported Linux hosts.
-
** the kernel file is available with the MeeGo images for QEMU (e.g. http://download.meego.com/trunk-daily/builds/1.1.80/trunk-daily-1.1.80.12.20101223.1/handset/images/meego-handset-armv7l-qemu/)
+
wget http://repo.meego.com/MeeGo/builds/1.1.90/1.1.99.4.20110426.4/repos/non-oss/ia32/packages/i586/qflasher-21-1.1.i586.rpm
-
** nolo-qemu and qflasher packages are available from non-oss repository (e.g. http://repo.meego.com/MeeGo/builds/trunk/daily/non-oss/repos/ia32/packages/i586/)
+
rpm2cpio qflasher-21-1.1.i586.rpm | cpio -idmv
-
* use the following command line to create the NAND image:
+
wget http://repo.meego.com/MeeGo/builds/1.1.90/1.1.99.4.20110426.4/repos/non-oss/ia32/packages/i586/nolo-qemu-0.20100910-1.1.i586.rpm
-
$ ./qflasher -m rx51 -x xloader-qemu.bin -s secondary-qemu.bin -k meego-handset-armv7l-qemu-daily-vmlinuz-2.6.35.3-10.3-n900 -o meego-handset-armv7l-qemu-daily-nand-n900.img
+
rpm2cpio nolo-qemu-0.20100910-1.1.i586.rpm | cpio -idmv
-
'''Note''': qflasher can be used on all supported Linux hosts. You can extract the rpm package using
+
Use the following command line to create the NAND image:
-
  $ rpm2cpio qflasher-21-1.1.i586.rpm | cpio -idmv
+
  KERNEL=meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-raw/meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-vmlinuz-2.6.37-10.1-adaptation-n900
 +
./usr/bin/qflasher -m rx51 -x ./boot/xloader-qemu.bin -s ./boot/secondary-qemu.bin -k ${KERNEL} -o meego-handset-armv7l-qemu-daily-nand-n900.img -p k=3072
-
* use the following command line to run QEMU:
+
Use the following command line to run QEMU:
-
  $ touch sd-empty
+
  touch sd-empty
-
  $ /opt/meego/qemu-arm/bin/qemu-system-arm -M n900 -mtdblock meego-handset-armv7l-qemu-daily-nand-n900.img -sd sd-empty -sd meego-handset-armv7l-qemu-daily-mmcblk0p.raw -serial stdio -clock unix -redir tcp:5555:10.0.2.15:22
+
  ROOTFS=meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-raw/meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-mmcblk0p.raw
 +
meego-sdk-qemu-system-arm -M n900 -mtdblock meego-handset-armv7l-qemu-daily-nand-n900.img -sd sd-empty -sd ${ROOTFS} -serial stdio -clock unix -redir tcp:5555:10.0.2.15:22
-
Create the QEMU rootfs image using mic2 tool:
+
=== Create the QEMU rootfs image using mic2 tool ===
* download handset-${arch}-qemu.ks files from http://meego.gitorious.org/meego-os-base/image-configurations/trees/master/SDK
* download handset-${arch}-qemu.ks files from http://meego.gitorious.org/meego-os-base/image-configurations/trees/master/SDK
* use the following command line
* use the following command line
  sudo mic-image-creator --run-mode=0 --cache=mycachedir --format=raw --arch=${arch} --save-kernel --config='''handset-${arch}-qemu.ks''' --package=tar.bz2 --release
  sudo mic-image-creator --run-mode=0 --cache=mycachedir --format=raw --arch=${arch} --save-kernel --config='''handset-${arch}-qemu.ks''' --package=tar.bz2 --release

Latest revision as of 13:11, 3 May 2011

Contents

Overview

Create sysroot image(s)

Download/Create the .ks files

First you need to install kickstarter

git clone git://gitorious.org/meego-developer-tools/kickstarter.git
cd kickstarter
make
sudo python ./setup.py install
cd ..

Then we get the image configurations:

git clone git://gitorious.org/meego-os-base/image-configurations.git
cd image-configurations
kickstarter -c configurations.yaml -r repos.yaml

After this you will have kickstart files created to a subdirectory called 1.1.99, 1.2.80 or something similar.

cd <X.X.XX>

Create the MADDE SYSROOT image

Select one of the kickstart files ending with *-madde-sysroot.ks and call following command for it to create the image.

sudo mic-image-creator --run-mode=1 --cache=mycachedir --config=${vertical}-${arch}-madde-sysroot.ks --release=${release_id}
  • ${vertical}: Is the vertical of the image, e.g., core/handset/netbook/ivi
  • ${release_id}: Check repo lines from kickstart and find one that has --name=oss from that take the start of the baseurl until the @BUILD_ID@ string and put it to your browser. Now you can see all the available release_id's for your kickstart file.

Create QEMU images (QEMU NAND and rootfs)

Create the QEMU NAND image using qflasher tool

NOTE: This guide is based on an old version and there might be newer versions of the files available.

3 components are needed: a kernel file, nolo-qemu package (provides xloader/secondary binaries) and qflasher package.

Lets first make a dir for us for this all:

mkdir qemu-nand
cd qemu-nand

First get the QEMU image e.g. from http://repo.meego.com/MeeGo/builds/1.1.90/1.1.99.4.20110426.4/images/meego-handset-armv7hl-qemu/

wget http://repo.meego.com/MeeGo/builds/1.1.90/1.1.99.4.20110426.4/images/meego-handset-armv7hl-qemu/meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-raw.tar.bz2

Then extract the kernel package from the tarball

tar xvf meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-raw.tar.bz2

Next get the qflasher and nolo-qemu packages and extract the binaries. (Latest: http://repo.meego.com/MeeGo/builds/trunk/latest/repos/non-oss/ia32/packages/i586/). Note: qflasher/nolo-qemu packages can be used on all supported Linux hosts.

wget http://repo.meego.com/MeeGo/builds/1.1.90/1.1.99.4.20110426.4/repos/non-oss/ia32/packages/i586/qflasher-21-1.1.i586.rpm
rpm2cpio qflasher-21-1.1.i586.rpm | cpio -idmv
wget http://repo.meego.com/MeeGo/builds/1.1.90/1.1.99.4.20110426.4/repos/non-oss/ia32/packages/i586/nolo-qemu-0.20100910-1.1.i586.rpm
rpm2cpio nolo-qemu-0.20100910-1.1.i586.rpm | cpio -idmv

Use the following command line to create the NAND image:

KERNEL=meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-raw/meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-vmlinuz-2.6.37-10.1-adaptation-n900
./usr/bin/qflasher -m rx51 -x ./boot/xloader-qemu.bin -s ./boot/secondary-qemu.bin -k ${KERNEL} -o meego-handset-armv7l-qemu-daily-nand-n900.img -p k=3072

Use the following command line to run QEMU:

touch sd-empty
ROOTFS=meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-raw/meego-handset-armv7hl-qemu-1.1.99.4.20110426.4-mmcblk0p.raw
meego-sdk-qemu-system-arm -M n900 -mtdblock meego-handset-armv7l-qemu-daily-nand-n900.img -sd sd-empty -sd ${ROOTFS} -serial stdio -clock unix -redir tcp:5555:10.0.2.15:22

Create the QEMU rootfs image using mic2 tool

sudo mic-image-creator --run-mode=0 --cache=mycachedir --format=raw --arch=${arch} --save-kernel --config=handset-${arch}-qemu.ks --package=tar.bz2 --release
Personal tools