summaryrefslogtreecommitdiffstats
path: root/scripts/lib/mic/utils/fs_related.py
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/mic/utils/fs_related.py
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/mic/utils/fs_related.py')
-rw-r--r--scripts/lib/mic/utils/fs_related.py30
1 files changed, 29 insertions, 1 deletions
diff --git a/scripts/lib/mic/utils/fs_related.py b/scripts/lib/mic/utils/fs_related.py
index b9b9a97175..61617353eb 100644
--- a/scripts/lib/mic/utils/fs_related.py
+++ b/scripts/lib/mic/utils/fs_related.py
@@ -29,7 +29,7 @@ import uuid
29from mic import msger 29from mic import msger
30from mic.utils import runner 30from mic.utils import runner
31from mic.utils.errors import * 31from mic.utils.errors import *
32 32from mic.utils.oe.misc import *
33 33
34def find_binary_inchroot(binary, chroot): 34def find_binary_inchroot(binary, chroot):
35 paths = ["/usr/sbin", 35 paths = ["/usr/sbin",
@@ -280,6 +280,34 @@ class RawDisk(Disk):
280 def exists(self): 280 def exists(self):
281 return True 281 return True
282 282
283
284class DiskImage(Disk):
285 """
286 A Disk backed by a file.
287 """
288 def __init__(self, image_file, size):
289 Disk.__init__(self, size)
290 self.image_file = image_file
291
292 def exists(self):
293 return os.path.exists(self.image_file)
294
295 def create(self):
296 if self.device is not None:
297 return
298
299 blocks = self.size / 1024
300 if self.size - blocks * 1024:
301 blocks += 1
302
303 # create disk image
304 dd_cmd = "dd if=/dev/zero of=%s bs=1024 seek=%d count=1" % \
305 (self.image_file, blocks)
306 rc, out = exec_cmd(dd_cmd)
307
308 self.device = self.image_file
309
310
283class LoopbackDisk(Disk): 311class LoopbackDisk(Disk):
284 """A Disk backed by a file via the loop module.""" 312 """A Disk backed by a file via the loop module."""
285 def __init__(self, lofile, size): 313 def __init__(self, lofile, size):