diff options
-rw-r--r-- | scripts/lib/image/help.py | 10 | ||||
-rwxr-xr-x | scripts/wic | 25 |
2 files changed, 28 insertions, 7 deletions
diff --git a/scripts/lib/image/help.py b/scripts/lib/image/help.py index e1eb265979..e365a07803 100644 --- a/scripts/lib/image/help.py +++ b/scripts/lib/image/help.py | |||
@@ -111,7 +111,7 @@ wic_create_usage = """ | |||
111 | [-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>] | 111 | [-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>] |
112 | [-e | --image-name] [-s, --skip-build-check] [-D, --debug] | 112 | [-e | --image-name] [-s, --skip-build-check] [-D, --debug] |
113 | [-r, --rootfs-dir] [-b, --bootimg-dir] | 113 | [-r, --rootfs-dir] [-b, --bootimg-dir] |
114 | [-k, --kernel-dir] [-n, --native-sysroot] | 114 | [-k, --kernel-dir] [-n, --native-sysroot] [-f, --build-rootfs] |
115 | 115 | ||
116 | This command creates an OpenEmbedded image based on the 'OE kickstart | 116 | This command creates an OpenEmbedded image based on the 'OE kickstart |
117 | commands' found in the <wks file>. | 117 | commands' found in the <wks file>. |
@@ -132,7 +132,7 @@ SYNOPSIS | |||
132 | [-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>] | 132 | [-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>] |
133 | [-e | --image-name] [-s, --skip-build-check] [-D, --debug] | 133 | [-e | --image-name] [-s, --skip-build-check] [-D, --debug] |
134 | [-r, --rootfs-dir] [-b, --bootimg-dir] | 134 | [-r, --rootfs-dir] [-b, --bootimg-dir] |
135 | [-k, --kernel-dir] [-n, --native-sysroot] | 135 | [-k, --kernel-dir] [-n, --native-sysroot] [-f, --build-rootfs] |
136 | 136 | ||
137 | DESCRIPTION | 137 | DESCRIPTION |
138 | This command creates an OpenEmbedded image based on the 'OE | 138 | This command creates an OpenEmbedded image based on the 'OE |
@@ -167,6 +167,8 @@ DESCRIPTION | |||
167 | The -n option is used to specify the path to the native sysroot | 167 | The -n option is used to specify the path to the native sysroot |
168 | containing the tools to use to build the image. | 168 | containing the tools to use to build the image. |
169 | 169 | ||
170 | The -f option is used to build rootfs by running "bitbake <image>" | ||
171 | |||
170 | The -s option is used to skip the build check. The build check is | 172 | The -s option is used to skip the build check. The build check is |
171 | a simple sanity check used to determine whether the user has | 173 | a simple sanity check used to determine whether the user has |
172 | sourced the build environment so that the -e option can operate | 174 | sourced the build environment so that the -e option can operate |
@@ -528,8 +530,8 @@ DESCRIPTION | |||
528 | usage: wic create <wks file or image name> [-o <DIRNAME> | ...] | 530 | usage: wic create <wks file or image name> [-o <DIRNAME> | ...] |
529 | [-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>] | 531 | [-i <JSON PROPERTY FILE> | --infile <JSON PROPERTY_FILE>] |
530 | [-e | --image-name] [-s, --skip-build-check] [-D, --debug] | 532 | [-e | --image-name] [-s, --skip-build-check] [-D, --debug] |
531 | [-r, --rootfs-dir] [-b, --bootimg-dir] | 533 | [-r, --rootfs-dir] [-b, --bootimg-dir] [-k, --kernel-dir] |
532 | [-k, --kernel-dir] [-n, --native-sysroot] | 534 | [-n, --native-sysroot] [-f, --build-rootfs] |
533 | 535 | ||
534 | This command creates an OpenEmbedded image based on the 'OE | 536 | This command creates an OpenEmbedded image based on the 'OE |
535 | kickstart commands' found in the <wks file>. | 537 | kickstart commands' found in the <wks file>. |
diff --git a/scripts/wic b/scripts/wic index ce78254d67..524156ddc5 100755 --- a/scripts/wic +++ b/scripts/wic | |||
@@ -40,11 +40,15 @@ import logging | |||
40 | # External modules | 40 | # External modules |
41 | scripts_path = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0]))) | 41 | scripts_path = os.path.abspath(os.path.dirname(os.path.abspath(sys.argv[0]))) |
42 | lib_path = scripts_path + '/lib' | 42 | lib_path = scripts_path + '/lib' |
43 | sys.path = sys.path + [lib_path] | 43 | bitbake_path = os.path.join(scripts_path, '../bitbake/lib') |
44 | sys.path = sys.path + [lib_path, bitbake_path] | ||
44 | 45 | ||
45 | from image.help import * | 46 | from image.help import * |
46 | from image.engine import * | 47 | from image.engine import * |
47 | 48 | ||
49 | from bb import cookerdata | ||
50 | from bb.main import bitbake_main, BitBakeConfigParameters | ||
51 | |||
48 | def rootfs_dir_to_args(krootfs_dir): | 52 | def rootfs_dir_to_args(krootfs_dir): |
49 | """ | 53 | """ |
50 | Get a rootfs_dir dict and serialize to string | 54 | Get a rootfs_dir dict and serialize to string |
@@ -94,6 +98,7 @@ def wic_create_subcommand(args, usage_str): | |||
94 | action = "store", help = "path to the native sysroot containing the tools to use to build the image") | 98 | action = "store", help = "path to the native sysroot containing the tools to use to build the image") |
95 | parser.add_option("-p", "--skip-build-check", dest = "build_check", | 99 | parser.add_option("-p", "--skip-build-check", dest = "build_check", |
96 | action = "store_false", default = True, help = "skip the build check") | 100 | action = "store_false", default = True, help = "skip the build check") |
101 | parser.add_option("-f", "--build-rootfs", action="store_true", help = "build rootfs") | ||
97 | parser.add_option("-D", "--debug", dest = "debug", action = "store_true", | 102 | parser.add_option("-D", "--debug", dest = "debug", action = "store_true", |
98 | default = False, help = "output debug information") | 103 | default = False, help = "output debug information") |
99 | 104 | ||
@@ -123,8 +128,6 @@ def wic_create_subcommand(args, usage_str): | |||
123 | else: | 128 | else: |
124 | print "Done.\n" | 129 | print "Done.\n" |
125 | 130 | ||
126 | print "Creating image(s)...\n" | ||
127 | |||
128 | bitbake_env_lines = find_bitbake_env_lines(options.image_name) | 131 | bitbake_env_lines = find_bitbake_env_lines(options.image_name) |
129 | if not bitbake_env_lines: | 132 | if not bitbake_env_lines: |
130 | print "Couldn't get bitbake environment, exiting." | 133 | print "Couldn't get bitbake environment, exiting." |
@@ -134,9 +137,24 @@ def wic_create_subcommand(args, usage_str): | |||
134 | bootimg_dir = "" | 137 | bootimg_dir = "" |
135 | 138 | ||
136 | if options.image_name: | 139 | if options.image_name: |
140 | if options.build_rootfs: | ||
141 | argv = ["bitbake", options.image_name] | ||
142 | if options.debug: | ||
143 | argv.append("--debug") | ||
144 | |||
145 | print "Building rootfs...\n" | ||
146 | if bitbake_main(BitBakeConfigParameters(argv), | ||
147 | cookerdata.CookerConfiguration()): | ||
148 | sys.exit(1) | ||
149 | |||
137 | (rootfs_dir, kernel_dir, bootimg_dir, native_sysroot) \ | 150 | (rootfs_dir, kernel_dir, bootimg_dir, native_sysroot) \ |
138 | = find_artifacts(options.image_name) | 151 | = find_artifacts(options.image_name) |
139 | 152 | ||
153 | else: | ||
154 | if options.build_rootfs: | ||
155 | print "Image name is not specified, exiting. (Use -e/--image-name to specify it)\n" | ||
156 | sys.exit(1) | ||
157 | |||
140 | wks_file = args[0] | 158 | wks_file = args[0] |
141 | 159 | ||
142 | if not wks_file.endswith(".wks"): | 160 | if not wks_file.endswith(".wks"): |
@@ -194,6 +212,7 @@ def wic_create_subcommand(args, usage_str): | |||
194 | 212 | ||
195 | rootfs_dir = rootfs_dir_to_args(krootfs_dir) | 213 | rootfs_dir = rootfs_dir_to_args(krootfs_dir) |
196 | 214 | ||
215 | print "Creating image(s)...\n" | ||
197 | wic_create(args, wks_file, rootfs_dir, bootimg_dir, kernel_dir, | 216 | wic_create(args, wks_file, rootfs_dir, bootimg_dir, kernel_dir, |
198 | native_sysroot, scripts_path, image_output_dir, | 217 | native_sysroot, scripts_path, image_output_dir, |
199 | options.debug, options.properties_file) | 218 | options.debug, options.properties_file) |