wic: Implement --build-rootfs command line option
-f/--build-rootfs option makes wic to run bitbake <image> to produce rootfs. This option requires image name to be specified with -e/--image-name. (From OE-Core rev: 75ae0b7cf3863eb2857a2b6a7073beea626f751d) Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
939fca9de2
commit
2dc30249ba
|
@ -111,7 +111,7 @@ wic_create_usage = """
|
|||
[-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>]
|
||||
[-e | --image-name] [-s, --skip-build-check] [-D, --debug]
|
||||
[-r, --rootfs-dir] [-b, --bootimg-dir]
|
||||
[-k, --kernel-dir] [-n, --native-sysroot]
|
||||
[-k, --kernel-dir] [-n, --native-sysroot] [-f, --build-rootfs]
|
||||
|
||||
This command creates an OpenEmbedded image based on the 'OE kickstart
|
||||
commands' found in the <wks file>.
|
||||
|
@ -132,7 +132,7 @@ SYNOPSIS
|
|||
[-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>]
|
||||
[-e | --image-name] [-s, --skip-build-check] [-D, --debug]
|
||||
[-r, --rootfs-dir] [-b, --bootimg-dir]
|
||||
[-k, --kernel-dir] [-n, --native-sysroot]
|
||||
[-k, --kernel-dir] [-n, --native-sysroot] [-f, --build-rootfs]
|
||||
|
||||
DESCRIPTION
|
||||
This command creates an OpenEmbedded image based on the 'OE
|
||||
|
@ -167,6 +167,8 @@ DESCRIPTION
|
|||
The -n option is used to specify the path to the native sysroot
|
||||
containing the tools to use to build the image.
|
||||
|
||||
The -f option is used to build rootfs by running "bitbake <image>"
|
||||
|
||||
The -s option is used to skip the build check. The build check is
|
||||
a simple sanity check used to determine whether the user has
|
||||
sourced the build environment so that the -e option can operate
|
||||
|
@ -528,8 +530,8 @@ DESCRIPTION
|
|||
usage: wic create <wks file or image name> [-o <DIRNAME> | ...]
|
||||
[-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>]
|
||||
[-e | --image-name] [-s, --skip-build-check] [-D, --debug]
|
||||
[-r, --rootfs-dir] [-b, --bootimg-dir]
|
||||
[-k, --kernel-dir] [-n, --native-sysroot]
|
||||
[-r, --rootfs-dir] [-b, --bootimg-dir] [-k, --kernel-dir]
|
||||
[-n, --native-sysroot] [-f, --build-rootfs]
|
||||
|
||||
This command creates an OpenEmbedded image based on the 'OE
|
||||
kickstart commands' found in the <wks file>.
|
||||
|
|
25
scripts/wic
25
scripts/wic
|
@ -40,11 +40,15 @@ import logging
|
|||
# External modules
|
||||
scripts_path = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0])))
|
||||
lib_path = scripts_path + '/lib'
|
||||
sys.path = sys.path + [lib_path]
|
||||
bitbake_path = os.path.join(scripts_path, '../bitbake/lib')
|
||||
sys.path = sys.path + [lib_path, bitbake_path]
|
||||
|
||||
from image.help import *
|
||||
from image.engine import *
|
||||
|
||||
from bb import cookerdata
|
||||
from bb.main import bitbake_main, BitBakeConfigParameters
|
||||
|
||||
def rootfs_dir_to_args(krootfs_dir):
|
||||
"""
|
||||
Get a rootfs_dir dict and serialize to string
|
||||
|
@ -94,6 +98,7 @@ def wic_create_subcommand(args, usage_str):
|
|||
action = "store", help = "path to the native sysroot containing the tools to use to build the image")
|
||||
parser.add_option("-p", "--skip-build-check", dest = "build_check",
|
||||
action = "store_false", default = True, help = "skip the build check")
|
||||
parser.add_option("-f", "--build-rootfs", action="store_true", help = "build rootfs")
|
||||
parser.add_option("-D", "--debug", dest = "debug", action = "store_true",
|
||||
default = False, help = "output debug information")
|
||||
|
||||
|
@ -123,8 +128,6 @@ def wic_create_subcommand(args, usage_str):
|
|||
else:
|
||||
print "Done.\n"
|
||||
|
||||
print "Creating image(s)...\n"
|
||||
|
||||
bitbake_env_lines = find_bitbake_env_lines(options.image_name)
|
||||
if not bitbake_env_lines:
|
||||
print "Couldn't get bitbake environment, exiting."
|
||||
|
@ -134,9 +137,24 @@ def wic_create_subcommand(args, usage_str):
|
|||
bootimg_dir = ""
|
||||
|
||||
if options.image_name:
|
||||
if options.build_rootfs:
|
||||
argv = ["bitbake", options.image_name]
|
||||
if options.debug:
|
||||
argv.append("--debug")
|
||||
|
||||
print "Building rootfs...\n"
|
||||
if bitbake_main(BitBakeConfigParameters(argv),
|
||||
cookerdata.CookerConfiguration()):
|
||||
sys.exit(1)
|
||||
|
||||
(rootfs_dir, kernel_dir, bootimg_dir, native_sysroot) \
|
||||
= find_artifacts(options.image_name)
|
||||
|
||||
else:
|
||||
if options.build_rootfs:
|
||||
print "Image name is not specified, exiting. (Use -e/--image-name to specify it)\n"
|
||||
sys.exit(1)
|
||||
|
||||
wks_file = args[0]
|
||||
|
||||
if not wks_file.endswith(".wks"):
|
||||
|
@ -194,6 +212,7 @@ def wic_create_subcommand(args, usage_str):
|
|||
|
||||
rootfs_dir = rootfs_dir_to_args(krootfs_dir)
|
||||
|
||||
print "Creating image(s)...\n"
|
||||
wic_create(args, wks_file, rootfs_dir, bootimg_dir, kernel_dir,
|
||||
native_sysroot, scripts_path, image_output_dir,
|
||||
options.debug, options.properties_file)
|
||||
|
|
Loading…
Reference in New Issue