summaryrefslogtreecommitdiffstats
path: root/scripts/lib/image
diff options
context:
space:
mode:
authorTom Zanussi <tom.zanussi@linux.intel.com>2013-09-19 04:32:19 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-10-01 22:56:03 +0100
commit75c143a7aef46ecea07cf33edd2b1a0192e10149 (patch)
treefe0eb61a0dfda72e52b01385129f6282814581b6 /scripts/lib/image
parent9fc88f96d40b17c90bac53b90045a87b2d2cff84 (diff)
downloadpoky-75c143a7aef46ecea07cf33edd2b1a0192e10149.tar.gz
wic: Add OpenEmbedded-specific implementation
Reuses the mic/livecd infrastructure but heavily subclasses and modifies it to adapt to the special needs of building images from existing OpenEmbedded build artifacts. In addition to the OE-specific mic objects and modifications to the underlying infrastructure, this adds a mechanism to allow OE kickstart files to be 'canned' and made available to users via the 'wic list images' command. Two initial OE kickstart files have been added as canned .wks files: directdisk, which implements the same thing as the images created by directdisk.bbclass, and mkefidisk, which can essentially be used as a replacement for mkefidisk.sh. Of course, since creation of these images are now driven by .wks files rather than being hard-coded into class files or scripts, they can be easily modified to generate different variations on those images. They also don't require root priveleges, since they don't use mount to create the images. They don't however write to media like mkefidisk.sh does, but rather create images that can be written onto media. (From OE-Core rev: f87acc5e59d3c2c39ff171b5557977dab4c8f4a6) Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/image')
-rw-r--r--scripts/lib/image/canned-wks/directdisk.wks10
-rw-r--r--scripts/lib/image/canned-wks/mkefidisk.wks11
-rw-r--r--scripts/lib/image/config/wic.conf7
-rw-r--r--scripts/lib/image/engine.py24
4 files changed, 52 insertions, 0 deletions
diff --git a/scripts/lib/image/canned-wks/directdisk.wks b/scripts/lib/image/canned-wks/directdisk.wks
new file mode 100644
index 0000000000..d54b382fd0
--- /dev/null
+++ b/scripts/lib/image/canned-wks/directdisk.wks
@@ -0,0 +1,10 @@
1# short-description: Create a 'pcbios' direct disk image
2# long-description: Creates a partitioned legacy BIOS disk image that the user
3# can directly dd to boot media.
4
5
6part /boot --source bootimg --ondisk sda --fstype=msdos --label boot --active --align 1024
7part / --source rootfs --ondisk sda --fstype=ext3 --label platform --align 1024
8
9bootloader --timeout=0 --append="rootwait rootfstype=ext3 video=vesafb vga=0x318 console=tty0"
10
diff --git a/scripts/lib/image/canned-wks/mkefidisk.wks b/scripts/lib/image/canned-wks/mkefidisk.wks
new file mode 100644
index 0000000000..8a3e1f6bc1
--- /dev/null
+++ b/scripts/lib/image/canned-wks/mkefidisk.wks
@@ -0,0 +1,11 @@
1# short-description: Create an EFI disk image
2# long-description: Creates a partitioned EFI disk image that the user
3# can directly dd to boot media.
4
5part /boot --source bootimg --ondisk sda --fstype=efi --label msdos --active --align 1024
6
7part / --source rootfs --ondisk sda --fstype=ext3 --label platform --align 1024
8
9part swap --ondisk sda --size 44 --label swap1 --fstype=swap
10
11bootloader --timeout=10 --append="rootwait rootfstype=ext3 console=ttyPCH0,115200 console=tty0 vmalloc=256MB snd-hda-intel.enable_msi=0"
diff --git a/scripts/lib/image/config/wic.conf b/scripts/lib/image/config/wic.conf
new file mode 100644
index 0000000000..e96d6aec45
--- /dev/null
+++ b/scripts/lib/image/config/wic.conf
@@ -0,0 +1,7 @@
1[common]
2; general settings
3distro_name = OpenEmbedded
4
5[create]
6; settings for create subcommand
7runtime=native
diff --git a/scripts/lib/image/engine.py b/scripts/lib/image/engine.py
index a9b530cc04..be29222df1 100644
--- a/scripts/lib/image/engine.py
+++ b/scripts/lib/image/engine.py
@@ -37,6 +37,12 @@ import subprocess
37import shutil 37import shutil
38 38
39import os, sys, errno 39import os, sys, errno
40from mic import msger, creator
41from mic.utils import cmdln, misc, errors
42from mic.conf import configmgr
43from mic.plugin import pluginmgr
44from mic.__version__ import VERSION
45from mic.utils.oe.misc import *
40 46
41 47
42def verify_build_env(): 48def verify_build_env():
@@ -216,6 +222,24 @@ def wic_create(args, wks_file, rootfs_dir, bootimg_dir, kernel_dir,
216 print "BUILDDIR not found, exiting. (Did you forget to source oe-init-build-env?)" 222 print "BUILDDIR not found, exiting. (Did you forget to source oe-init-build-env?)"
217 sys.exit(1) 223 sys.exit(1)
218 224
225 direct_args = list()
226 direct_args.insert(0, oe_builddir)
227 direct_args.insert(0, image_output_dir)
228 direct_args.insert(0, wks_file)
229 direct_args.insert(0, rootfs_dir)
230 direct_args.insert(0, bootimg_dir)
231 direct_args.insert(0, kernel_dir)
232 direct_args.insert(0, native_sysroot)
233 direct_args.insert(0, hdddir)
234 direct_args.insert(0, staging_data_dir)
235 direct_args.insert(0, "direct")
236
237 cr = creator.Creator()
238
239 cr.main(direct_args)
240
241 print "\nThe image(s) were created using OE kickstart file:\n %s" % wks_file
242
219 243
220def wic_list(args, scripts_path, properties_file): 244def wic_list(args, scripts_path, properties_file):
221 """ 245 """