mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 12:29:55 +00:00
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:
committed by
Richard Purdie
parent
939fca9de2
commit
2dc30249ba
@@ -111,7 +111,7 @@ wic_create_usage = """
|
|||||||
[-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>]
|
[-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>]
|
||||||
[-e | --image-name] [-s, --skip-build-check] [-D, --debug]
|
[-e | --image-name] [-s, --skip-build-check] [-D, --debug]
|
||||||
[-r, --rootfs-dir] [-b, --bootimg-dir]
|
[-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
|
This command creates an OpenEmbedded image based on the 'OE kickstart
|
||||||
commands' found in the <wks file>.
|
commands' found in the <wks file>.
|
||||||
@@ -132,7 +132,7 @@ SYNOPSIS
|
|||||||
[-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>]
|
[-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>]
|
||||||
[-e | --image-name] [-s, --skip-build-check] [-D, --debug]
|
[-e | --image-name] [-s, --skip-build-check] [-D, --debug]
|
||||||
[-r, --rootfs-dir] [-b, --bootimg-dir]
|
[-r, --rootfs-dir] [-b, --bootimg-dir]
|
||||||
[-k, --kernel-dir] [-n, --native-sysroot]
|
[-k, --kernel-dir] [-n, --native-sysroot] [-f, --build-rootfs]
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
This command creates an OpenEmbedded image based on the 'OE
|
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
|
The -n option is used to specify the path to the native sysroot
|
||||||
containing the tools to use to build the image.
|
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
|
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
|
a simple sanity check used to determine whether the user has
|
||||||
sourced the build environment so that the -e option can operate
|
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> | ...]
|
usage: wic create <wks file or image name> [-o <DIRNAME> | ...]
|
||||||
[-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>]
|
[-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>]
|
||||||
[-e | --image-name] [-s, --skip-build-check] [-D, --debug]
|
[-e | --image-name] [-s, --skip-build-check] [-D, --debug]
|
||||||
[-r, --rootfs-dir] [-b, --bootimg-dir]
|
[-r, --rootfs-dir] [-b, --bootimg-dir] [-k, --kernel-dir]
|
||||||
[-k, --kernel-dir] [-n, --native-sysroot]
|
[-n, --native-sysroot] [-f, --build-rootfs]
|
||||||
|
|
||||||
This command creates an OpenEmbedded image based on the 'OE
|
This command creates an OpenEmbedded image based on the 'OE
|
||||||
kickstart commands' found in the <wks file>.
|
kickstart commands' found in the <wks file>.
|
||||||
|
|||||||
+22
-3
@@ -40,11 +40,15 @@ import logging
|
|||||||
# External modules
|
# External modules
|
||||||
scripts_path = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0])))
|
scripts_path = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0])))
|
||||||
lib_path = scripts_path + '/lib'
|
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.help import *
|
||||||
from image.engine import *
|
from image.engine import *
|
||||||
|
|
||||||
|
from bb import cookerdata
|
||||||
|
from bb.main import bitbake_main, BitBakeConfigParameters
|
||||||
|
|
||||||
def rootfs_dir_to_args(krootfs_dir):
|
def rootfs_dir_to_args(krootfs_dir):
|
||||||
"""
|
"""
|
||||||
Get a rootfs_dir dict and serialize to string
|
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")
|
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",
|
parser.add_option("-p", "--skip-build-check", dest = "build_check",
|
||||||
action = "store_false", default = True, help = "skip the 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",
|
parser.add_option("-D", "--debug", dest = "debug", action = "store_true",
|
||||||
default = False, help = "output debug information")
|
default = False, help = "output debug information")
|
||||||
|
|
||||||
@@ -123,8 +128,6 @@ def wic_create_subcommand(args, usage_str):
|
|||||||
else:
|
else:
|
||||||
print "Done.\n"
|
print "Done.\n"
|
||||||
|
|
||||||
print "Creating image(s)...\n"
|
|
||||||
|
|
||||||
bitbake_env_lines = find_bitbake_env_lines(options.image_name)
|
bitbake_env_lines = find_bitbake_env_lines(options.image_name)
|
||||||
if not bitbake_env_lines:
|
if not bitbake_env_lines:
|
||||||
print "Couldn't get bitbake environment, exiting."
|
print "Couldn't get bitbake environment, exiting."
|
||||||
@@ -134,9 +137,24 @@ def wic_create_subcommand(args, usage_str):
|
|||||||
bootimg_dir = ""
|
bootimg_dir = ""
|
||||||
|
|
||||||
if options.image_name:
|
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) \
|
(rootfs_dir, kernel_dir, bootimg_dir, native_sysroot) \
|
||||||
= find_artifacts(options.image_name)
|
= 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]
|
wks_file = args[0]
|
||||||
|
|
||||||
if not wks_file.endswith(".wks"):
|
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)
|
rootfs_dir = rootfs_dir_to_args(krootfs_dir)
|
||||||
|
|
||||||
|
print "Creating image(s)...\n"
|
||||||
wic_create(args, wks_file, rootfs_dir, bootimg_dir, kernel_dir,
|
wic_create(args, wks_file, rootfs_dir, bootimg_dir, kernel_dir,
|
||||||
native_sysroot, scripts_path, image_output_dir,
|
native_sysroot, scripts_path, image_output_dir,
|
||||||
options.debug, options.properties_file)
|
options.debug, options.properties_file)
|
||||||
|
|||||||
Reference in New Issue
Block a user