summaryrefslogtreecommitdiffstats
path: root/documentation/dev-manual
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2013-11-12 17:00:11 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-12-03 12:53:56 +0000
commitfa191d48825d97e324e57e628a0ce2d720c2e06d (patch)
tree993234182f82a249290a5e5056f975ae7126d797 /documentation/dev-manual
parent184166fa7a5e1beb51660258b1d19dd4daa85996 (diff)
downloadpoky-fa191d48825d97e324e57e628a0ce2d720c2e06d.tar.gz
dev-manual: Rough draft of wic section.
(From yocto-docs rev: a628ab0034c66f0c62ffd7e9b6010c5afbecee82) Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/dev-manual')
-rw-r--r--documentation/dev-manual/dev-manual-common-tasks.xml719
1 files changed, 719 insertions, 0 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index e2df99e491..1d2d74927c 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -1917,6 +1917,725 @@
1917 </section> 1917 </section>
1918 </section> 1918 </section>
1919 1919
1920 <section id='creating-partitioned-images'>
1921 <title>Creating Partitioned Images</title>
1922
1923 <para>
1924 Creating an image for a particular hardware target using the
1925 OpenEmbedded build system does not necessarily mean you can boot
1926 that image as is on your device.
1927 Physical devices accept and boot images in various ways depending
1928 on the specifics of the device.
1929 Usually information about the hardware can tell you what image
1930 format the device requires.
1931 Should your device require multiple partitions on an SD card, flash,
1932 or an HDD, you can use the OpenEmbedded Image Creator
1933 (<filename>wic</filename>) to create the properly partitioned image.
1934 </para>
1935
1936 <para>
1937 Using the <filename>wic</filename> command, you can also describe
1938 your desired final image and have BitBake assemble the image.
1939 The 'wic' command generates partitioned images from existing
1940 OpenEmbedded build artifacts.
1941 Image generation is driven by partitioning commands contained
1942 in an Openembedded kickstart file (<filename>.wks</filename>)
1943 specified either directly on the command-line or as one of a
1944 selection of canned <filename>.wks</filename> files
1945 (see 'wic list images').
1946 When applied to a given set of build artifacts, the result is an
1947 image or set of images that can be directly written onto media and
1948 used on a particular system.
1949 </para>
1950
1951 <para>
1952 'wic' is based loosely on the 'mic' (Meego Image Creator) framework,
1953but heavily modified to make direct use of OpenEmbedded build
1954artifacts instead of package installation and configuration, things
1955already incorporated in the OE artifacts.
1956 </para>
1957
1958 <note>
1959The name 'wic' comes from 'oeic', which stands for 'OpenEmbedded
1960Image Creator'. The 'oe' diphthong in 'oeic' has been promoted to the
1961letter 'w', because 'oeic' is impossible to remember or pronounce.
1962 </note>
1963
1964 <note>
1965This is a completely independent standalone utility that
1966initially provides easier-to-use and more flexible replacements for a
1967couple bits of existing functionality in oe-core: directdisk.bbclass
1968and mkefidisk.sh. The replaced scripts are implemented by a
1969general-purpose partitioning 'language' based on Red Hat kickstart
1970syntax (with the underlying code borrowed from Tizen mic, which in
1971turn was borrowed from Meego mic, in turn borrowed from Fedora livecd,
1972etc.).
1973 </note>
1974
1975 <para>
1976 This section covers the mechanics of invoking and providing help for
1977the command and sub-commands; it contains hooks for future commits to
1978connect with the actual functionality, once implemented.
1979 </para>
1980
1981 <para>
1982 Help is integrated into the 'wic' command itself - you can also see
1983that for details and reminders on usage (simply invoke 'wic' without
1984any arguments to get started).
1985 </para>
1986
1987 <note>
1988 Just because 'wic' can generate an image doesn't mean that it
1989will boot on a given machine. 'wic' tries to spot the most obvious
1990usages that are likely to cause problems but, as a relatively
1991low-level tool, it can't in general figure out whether a generated
1992image is appropriate for a given piece of hardware - it's really up to
1993you to provide intelligent inputs to the image creation process. If
1994you suspect that your image isn't working as expected due to some bug
1995or missing feature of the tool, please file a bug report describing
1996the details.
1997 </note>
1998
1999 <section id='requirements'>
2000 <title>Requirements</title>
2001
2002 <para>
2003 wic has only been tested on and is only designed to work on the
2004distros officially supported by Yocto.
2005 </para>
2006
2007 <para>
2008 Aside from the standard system utilities, such as 'cp', wic expects the
2009following utilities to be installed on the host machine:
2010 <itemizedlist>
2011 <listitem><para><emphasis>parted:</emphasis>
2012 GNU Parted - a partition manipulation program
2013 </para></listitem>
2014 </itemizedlist>
2015 </para>
2016 </section>
2017
2018 <section id='raw-vs-cooked-mode'>
2019 <title>Raw Vs. Cooked Mode</title>
2020
2021 <para>
2022 'wic' can be used in 'raw' mode, where artifacts are explicitly
2023specified via command-line arguments (see the command documentation
2024and examples below), or it can be used in a more easily usable
2025'cooked' mode which uses the current MACHINE setting and a specified
2026image name to automatically locate the artifacts used to create the
2027image.
2028 </para>
2029
2030 <note>
2031 The prerequisite for generating any image is to have the build
2032artifacts already available. For example, to create a 'wic' image
2033using the build artifacts from a core-image-minimal build, you must
2034already have created a core-image-minimal OpenembeddedCore image. It
2035may seem redundant to generate an OpenEmbedded image in order to
2036create a 'wic' image, and in fact to some degree it is. At the
2037moment, however, that's typically how build artifacts are generated,
2038and future versions will likely be more integrated into the build
2039system and will be able to skip that step. There is a benefit
2040however, in that 'wic' images are created more quickly and without the
2041need for root access.
2042 </note>
2043 </section>
2044
2045 <section id='command-summary'>
2046 <title>Command Summary</title>
2047
2048 <para>
2049 The general form of the 'wic' command in raw mode is:
2050 <literallayout class='monospaced'>
2051 $ wic create myimage.wks -r &lt;rootfs-dir&gt; -b &lt;bootimg-dir&gt;
2052 -k &lt;kernel-dir&gt; -n &lt;native-sysroot&gt;
2053 </literallayout>
2054 <note>
2055 The 'wic' does NOT require root privileges, and in fact should
2056not be run as root.
2057 </note>
2058 </para>
2059
2060 <para>
2061 The .wks file specified in the command is an OE kickstart file (see
2062the OE kickstart syntax section below) and can of course be specified
2063directly on the command-line, but the user can also choose from a set
2064of 'canned' .wks files available via the 'wic list images' command
2065(example below).
2066 </para>
2067
2068 <para>
2069 The -r, -b, -k, and -n options refer to the corresponding OpenEmbedded
2070build artifacts. Using OpenEmbedded terminology:
2071 <itemizedlist>
2072 <listitem><para><emphasis>-r option:</emphasis>
2073 Used to specify the path to the /rootfs dir to
2074 use as the .wks rootfs source.</para></listitem>
2075 <listitem><para><emphasis>-b option:</emphasis>
2076 Used to specify the path to the dir containing
2077 the boot artifacts (e.g. /EFI or /syslinux dirs) to use as the
2078 .wks bootimg source.</para></listitem>
2079 <listitem><para><emphasis>-k option:</emphasis>
2080 Used to specify the path to the dir containing
2081 the kernel to use in the .wks bootimg.
2082 </para></listitem>
2083 <listitem><para><emphasis>-n option:</emphasis>
2084 Used to specify the path to the native sysroot
2085 containing the tools to use to build the image.
2086 </para></listitem>
2087 </itemizedlist>
2088 </para>
2089
2090 <para>
2091 For more technical detail on the origin and meanings of those
2092artifacts, see the Yocto documentation corresponding to those topics
2093elsewhere. In most cases, it's not important to know that, because
2094'cooked' mode provides a convenient shortcut allowing the user to
2095forget about the raw details and simply specify artifacts via a
2096high-level OpenEmbedded image name.
2097 </para>
2098
2099 <para>
2100 If instead of specifying a user-defined .wks file, you prefer to use
2101one of the 'canned' wic images, you can simply specify a canned image
2102name (without the .wks extension) in place of a .wks file. Use 'wic
2103list images' to get a list of 'canned' images:
2104 <literallayout class='monospaced'>
2105 $ wic list images
2106 mkefidisk Create an EFI disk image
2107 directdisk Create a 'pcbios' direct disk image
2108 </literallayout>
2109 To use one of the canned images, simply specify it in the raw command.
2110For example:
2111 <literallayout class='monospaced'>
2112 $ wic create directdisk -r &lt;rootfs-dir&gt; -b &lt;bootimg-dir&gt;
2113 -k &lt;kernel-dir&gt; -n &lt;native-sysroot&gt;
2114 </literallayout>
2115 Finally, the general form of the 'wic' command in cooked mode is:
2116 <literallayout class='monospaced'>
2117 $ wic create directdisk -e &lt;image-name&gt;
2118 </literallayout>
2119 This form is the simplest and most user-friendly, as it allows you to
2120skip the need for specifying all the parameters individually.
2121 </para>
2122
2123 <para>
2124 <filename>&lt;image-name&gt;</filename> refers to the Openembedded image name that you've already
2125build the artifacts for, for example, 'core-image-minimal'.
2126 <note>
2127 In order to use cooked mode, you must have the machine that you
2128built the artifacts with selected in local.conf.
2129 </note>
2130 </para>
2131 </section>
2132
2133 <section id='wic-usage-examples'>
2134 <title>'wic' Usage Examples</title>
2135
2136 <para>
2137 As mentioned, the main prerequisite for generating any image is to
2138have the build artifacts already available. The below examples assume
2139the user has already built a 'core-image-minimal' for a specific
2140machine (future versions won't require this redundant step, but for
2141now that's typically how build artifacts get generated).
2142 </para>
2143
2144 <para>
2145 The other prerequisite is to source the build environment:
2146 <literallayout class='monospaced'>
2147 $ source oe-init-build-env
2148 </literallayout>
2149 To start out with, we'll generate an image from one of the canned .wks
2150files. The following generates a list of available images:
2151 <literallayout class='monospaced'>
2152 $ wic list images
2153 mkefidisk Create an EFI disk image
2154 directdisk Create a 'pcbios' direct disk image
2155 </literallayout>
2156 You can get more information about any of the available images by typing
2157'wic list xxx help', where 'xxx' is one of the image names.
2158 </para>
2159
2160 <para>
2161 For example:
2162 <literallayout class='monospaced'>
2163 $ wic list mkefidisk help
2164 </literallayout>
2165 Creates a partitioned EFI disk image that the user
2166can directly dd to boot media.
2167 </para>
2168
2169 <para>
2170 At any time, you can get help on the 'wic' command or any subcommand
2171(currently 'list' and 'create'). For instance, to get the description
2172of 'wic create' command and its parameters:
2173 <literallayout class='monospaced'>
2174 $ wic create
2175
2176 Usage:
2177
2178 Create a new OpenEmbedded image
2179
2180 usage: wic create &lt;wks file or image name&gt; [-o &lt;DIRNAME&gt; | --outdir &lt;DIRNAME&gt;]
2181 [-i &lt;JSON PROPERTY FILE&gt; | --infile &lt;JSON PROPERTY FILE&gt;]
2182 [-e | --image-name] [-r, --rootfs-dir] [-b, --bootimg-dir]
2183 [-k, --kernel-dir] [-n, --native-sysroot] [-s, --skip-build-check]
2184
2185 This command creates an OpenEmbedded image based on the 'OE kickstart
2186 commands' found in the &lt;wks file&gt;.
2187
2188 The -o option can be used to place the image in a directory with a
2189 different name and location.
2190
2191 See 'wic help create' for more detailed instructions.
2192
2193 [...]
2194 </literallayout>
2195 </para>
2196
2197 <para>
2198 Continuing further, as mentioned in the command, you can get even more
2199detailed information by adding 'help' to the above:
2200 <literallayout class='monospaced'>
2201 $ wic help create
2202
2203 NAME
2204 wic create - Create a new OpenEmbedded image
2205
2206 SYNOPSIS
2207 wic create &lt;wks file or image name&gt; [-o &lt;DIRNAME&gt; | --outdir &lt;DIRNAME&gt;]
2208 [-i &lt;JSON PROPERTY FILE&gt; | --infile &lt;JSON PROPERTY FILE&gt;]
2209 [-e | --image-name] [-r, --rootfs-dir] [-b, --bootimg-dir]
2210 [-k, --kernel-dir] [-n, --native-sysroot] [-s,
2211 --skip-build-check]
2212
2213 DESCRIPTION
2214 This command creates an OpenEmbedded image based on the 'OE
2215 kickstart commands' found in the &lt;wks file&gt;.
2216
2217 In order to do this, wic needs to know the locations of the
2218 various build artifacts required to build the image.
2219
2220 Users can explicitly specify the build artifact locations using
2221 the -r, -b, -k, and -n options. See below for details on where
2222 the corresponding artifacts are typically found in a normal
2223 OpenEmbedded build.
2224
2225 Alternatively, users can use the -e option to have 'mic' determine
2226 those locations for a given image. If the -e option is used, the
2227 user needs to have set the appropriate MACHINE variable in
2228 local.conf, and have sourced the build environment.
2229
2230 The -e option is used to specify the name of the image to use the
2231 artifacts from e.g. core-image-sato.
2232
2233 The -r option is used to specify the path to the /rootfs dir to
2234 use as the .wks rootfs source.
2235
2236 The -b option is used to specify the path to the dir containing
2237 the boot artifacts (e.g. /EFI or /syslinux dirs) to use as the
2238 .wks bootimg source.
2239
2240 The -k option is used to specify the path to the dir containing
2241 the kernel to use in the .wks bootimg.
2242
2243 The -n option is used to specify the path to the native sysroot
2244 containing the tools to use to build the image.
2245
2246 The -s option is used to skip the build check. The build check is
2247 a simple sanity check used to determine whether the user has
2248 sourced the build environment so that the -e option can operate
2249 correctly. If the user has specified the build artifact locations
2250 explicitly, 'wic' assumes the user knows what he or she is doing
2251 and skips the build check.
2252
2253 When 'wic -e' is used, the locations for the build artifacts
2254 values are determined by 'wic -e' from the output of the 'bitbake
2255 -e' command given an image name e.g. 'core-image-minimal' and a
2256 given machine set in local.conf. In that case, the image is
2257 created as if the following 'bitbake -e' variables were used:
2258
2259 -r: IMAGE_ROOTFS
2260 -k: STAGING_KERNEL_DIR
2261 -n: STAGING_DIR_NATIVE
2262 -b: HDDDIR and STAGING_DATA_DIR (handlers decide which to use)
2263
2264 If 'wic -e' is not used, the user needs to select the appropriate
2265 value for -b (as well as -r, -k, and -n).
2266
2267 The -o option can be used to place the image in a directory with a
2268 different name and location.
2269
2270 As an alternative to the wks file, the image-specific properties
2271 that define the values that will be used to generate a particular
2272 image can be specified on the command-line using the -i option and
2273 supplying a JSON object consisting of the set of name:value pairs
2274 needed by image creation.
2275
2276 The set of properties available for a given image type can be
2277 listed using the 'wic list' command.
2278 </literallayout>
2279 So, the easiest way to create an image is to use the -e option with a
2280canned .wks file. To use the -e option, you need to specify the image
2281used to generate the artifacts and you actually need to have the
2282MACHINE used to build them specified in your local.conf (these
2283requirements aren't necessary if you aren't using the -e options.
2284 </para>
2285
2286 <para>
2287 Below, we generate a mkefidisk image, pointing the process at the
2288core-image-minimal artifacts for the minnow, selected as our current
2289MACHINE in local.conf.
2290 </para>
2291
2292 <para>
2293 First, once we've set the build up, we run a core-image-minimal minnow
2294build:
2295 <literallayout class='monospaced'>
2296 $ bitbake core-image-minimal
2297 </literallayout>
2298 Once the build is finished, we can then use wic to create an EFI image
2299for the minnow to boot. In this case, we'll use the '-e' option to
2300have wic discover the appropriate build artifacts and generate the
2301image:
2302 <literallayout class='monospaced'>
2303 $ wic create mkefidisk -e core-image-minimal
2304 Checking basic build environment...
2305 Done.
2306
2307 Creating image(s)...
2308
2309 Info: The new image(s) can be found here:
2310 /var/tmp/wic/build/mkefidisk-201310230946-sda.direct
2311
2312 The following build artifacts were used to create the image(s):
2313 ROOTFS_DIR: /home/trz/yocto/yocto-image/build/tmp/work/minnow-poky-linux/core-image-minimal/1.0-r0/rootfs
2314 BOOTIMG_DIR: /home/trz/yocto/yocto-image/build/tmp/work/minnow-poky-linux/core-image-minimal/1.0-r0/core-image-minimal-1.0/hddimg
2315 KERNEL_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/minnow/usr/src/kernel
2316 NATIVE_SYSROOT: /home/trz/yocto/yocto-image/build/tmp/sysroots/x86_64-linux
2317
2318
2319 The image(s) were created using OE kickstart file:
2320 /home/trz/yocto/yocto-image/scripts/lib/image/canned-wks/mkefidisk.wks
2321 </literallayout>
2322 The output specifies exactly which image was created and where it was
2323created. It also names the artifacts that were used and the exact
2324.wks script that was used to generate the image. You should always
2325verify the details provided in the output to make sure that the image
2326was indeed created exactly as expected.
2327 </para>
2328
2329 <para>
2330 Using the path specified in the output for the image name and
2331location, you can now directly dd the image to a USB stick or whatever
2332media you built the image for, and boot the resulting media:
2333 <literallayout class='monospaced'>
2334 $ sudo dd if=/var/tmp/wic/build/mkefidisk-201310230946-sda.direct of=/dev/sdb
2335 [sudo] password for trz:
2336 182274+0 records in
2337 182274+0 records out
2338 93324288 bytes (93 MB) copied, 14.4777 s, 6.4 MB/s
2339 [trz@empanada ~]$ sudo eject /dev/sdb
2340 </literallayout>
2341 The next example uses a modified 'directdisk' script as an example.
2342 </para>
2343
2344 <para>
2345 Because wic image creation is driven by .wks files, it's easy to
2346change the parameters that drive image creation: simply modify the
2347.wks file.
2348 </para>
2349
2350 <para>
2351 As illustrated previously, 'wic list images' provides a list of
2352available images. The images displayed are simply the list of .wks
2353files in the scripts/lib/image/canned-wks/ directory, minus the .wks
2354extension.
2355 </para>
2356
2357 <para>
2358 To add a new image to that list, simply add a new .wks file.
2359 </para>
2360
2361 <para>
2362 For this example, we already have a .wks file that already does pretty
2363much what we want, but for our particular hardware, we know we'll be
2364booting from sdb instead of sda, which is what the directdisk script uses.
2365 </para>
2366
2367 <para>
2368 What we can do is simply create a copy of the directdisk.wks file in
2369the scripts/lib/image/canned-wks/ directory and change the lines that
2370specify the target disk to boot from.
2371 </para>
2372
2373 <para>
2374 First, we copy the directdisk.wks file to directdisksdb.wks:
2375 <literallayout class='monospaced'>
2376 $ cp /home/trz/yocto/yocto-image/scripts/lib/image/canned-wks/directdisk.wks /home/trz/yocto/yocto-image/scripts/lib/image/canned-wks/directdisksdb.wks
2377 </literallayout>
2378 Then we modify the directdisksdb.wks file and change all instances of
2379'--ondisk sda' to '--ondisk sdb'. The following two lines are the
2380lines we end up changing (leaving the rest alone):
2381 <literallayout class='monospaced'>
2382 part /boot --source bootimg --ondisk sdb --fstype=msdos --label boot --active --align 1024
2383 part / --source rootfs --ondisk sdb --fstype=ext3 --label platform --align 1024
2384 </literallayout>
2385 Once we've made that change, we generate a directdisksdb image,
2386pointing the process at the core-image-minimal artifacts for the nuc
2387(Next Unit of Computing), selected as our current MACHINE in
2388local.conf.
2389 </para>
2390
2391 <para>
2392 Once we've set the build up, we run a core-image-minimal nuc build:
2393 <literallayout class='monospaced'>
2394 $ bitbake core-image-minimal
2395 </literallayout>
2396 Once the build is finished, we can then use nuc to create our
2397directdisk image for the nuc to boot. In this case, we'll use the
2398'-e' option to have wic discover the appropriate build artifacts and
2399generate the image:
2400 <literallayout class='monospaced'>
2401 $ wic create directdisksdb -e core-image-minimal
2402 Checking basic build environment...
2403 Done.
2404
2405 Creating image(s)...
2406
2407 Info: The new image(s) can be found here:
2408 /var/tmp/wic/build/directdisksdb-201310231131-sdb.direct
2409
2410 The following build artifacts were used to create the image(s):
2411 ROOTFS_DIR: /home/trz/yocto/yocto-image/build/tmp/work/nuc-poky-linux/core-image-minimal/1.0-r0/rootfs
2412 BOOTIMG_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/nuc/usr/share
2413 KERNEL_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/nuc/usr/src/kernel
2414 NATIVE_SYSROOT: /home/trz/yocto/yocto-image/build/tmp/sysroots/x86_64-linux
2415
2416
2417 The image(s) were created using OE kickstart file:
2418 /home/trz/yocto/yocto-image/scripts/lib/image/canned-wks/directdisksdb.wks
2419 </literallayout>
2420 Using the path specified in the output for the image name and
2421location, you can now directly dd the image to a USB stick or whatever
2422media you built the image for, and boot the resulting media:
2423 <literallayout class='monospaced'>
2424 $ sudo dd if=/var/tmp/wic/build/directdisksdb-201310231131-sdb.direct of=/dev/sdb
2425 86018+0 records in
2426 86018+0 records out
2427 44041216 bytes (44 MB) copied, 13.0734 s, 3.4 MB/s
2428 [trz@empanada tmp]$ sudo eject /dev/sdb
2429 </literallayout>
2430 Of course, you can just use the directdisk image directly if you don't
2431have any special needs.
2432 </para>
2433
2434 <para>
2435 Here'we're creating a wic image based on core-image-minimal and
2436crownbay-noemgd, which works right out of the box.
2437 <literallayout class='monospaced'>
2438 $ wic create directdisk -e core-image-minimal
2439
2440 Checking basic build environment...
2441 Done.
2442
2443 Creating image(s)...
2444
2445 Info: The new image(s) can be found here:
2446 /var/tmp/wic/build/directdisk-201309252350-sda.direct
2447
2448 The following build artifacts were used to create the image(s):
2449
2450 ROOTFS_DIR: /home/trz/yocto/yocto-image/build/tmp/work/crownbay_noemgd-poky-linux/core-image-minimal/1.0-r0/rootfs
2451 BOOTIMG_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/share
2452 KERNEL_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/src/kernel
2453 NATIVE_SYSROOT: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/src/kernel
2454
2455 The image(s) were created using OE kickstart file:
2456 /home/trz/yocto/yocto-image/scripts/lib/image/canned-wks/directdisk.wks
2457 </literallayout>
2458 Finally, here's an example that doesn't take the easy way out and
2459manually specifies each build artifact, along with a non-canned .wks
2460file, and also uses the -o option to have wic create the output
2461somewhere other than the default /var/tmp/wic:
2462 <literallayout class='monospaced'>
2463 $ wic create ~/test.wks -o /home/trz/testwic --rootfs-dir /home/trz/yocto/yocto-image/build/tmp/work/crownbay_noemgd-poky-linux/core-image-minimal/1.0-r0/rootfs --bootimg-dir /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/share --kernel-dir /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/src/kernel --native-sysroot /home/trz/yocto/yocto-image/build/tmp/sysroots/x86_64-linux
2464
2465 Creating image(s)...
2466
2467 Info: The new image(s) can be found here:
2468 /home/trz/testwic/build/test-201309260032-sda.direct
2469
2470 The following build artifacts were used to create the image(s):
2471
2472 ROOTFS_DIR: /home/trz/yocto/yocto-image/build/tmp/work/crownbay_noemgd-poky-linux/core-image-minimal/1.0-r0/rootfs
2473 BOOTIMG_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/share
2474 KERNEL_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/src/kernel
2475 NATIVE_SYSROOT: /home/trz/yocto/yocto-image/build/tmp/sysroots/crownbay-noemgd/usr/src/kernel
2476
2477 The image(s) were created using OE kickstart file:
2478 /home/trz/test.wks
2479 </literallayout>
2480 In this case, we didn't need to have the proper machine selected in
2481local.conf - we manually specified each artifact and therefore wic
2482doesn't need further information from the build system.
2483 </para>
2484
2485 <para>
2486 Finally, here's an example of the actual partition language commands
2487used to generate the mkefidisk image i.e. these are the contents of the
2488mkefidisk.wks OE kickstart file:
2489 <literallayout class='monospaced'>
2490 # short-description: Create an EFI disk image
2491 # long-description: Creates a partitioned EFI disk image that the user
2492 # can directly dd to boot media.
2493
2494 part /boot --source bootimg --ondisk sda --fstype=efi --label msdos --active --align 1024
2495
2496 part / --source rootfs --ondisk sda --fstype=ext3 --label platform --align 1024
2497
2498 part swap --ondisk sda --size 44 --label swap1 --fstype=swap
2499
2500 bootloader --timeout=10 --append="rootwait rootfstype=ext3 console=ttyPCH0,115200 console=tty0 vmalloc=256MB snd-hda- intel.enable_msi=0"
2501 </literallayout>
2502 </para>
2503 </section>
2504 </section>
2505
2506 <section id='openembedded-kickstart-wks-reference'>
2507 <title>OpenEmbedded Kickstart (.wks) Reference</title>
2508
2509 <para>
2510 The current 'wic' implementation supports only the basic kickstart
2511partitioning commands: 'partition' (or 'part' for short) and
2512'bootloader'.
2513 </para>
2514
2515 <para>
2516 They are listed below and mostly follow the syntax and meaning of the
2517standard kickstart options for those commands. The documentation below
2518is based on the Fedora kickstart documentation of the same commands,
2519but modified to reflect wic capabilities. For reference:
2520 <literallayout class='monospaced'>
2521 http://fedoraproject.org/wiki/Anaconda/Kickstart#part_or_partition
2522 http://fedoraproject.org/wiki/Anaconda/Kickstart#bootloader
2523 </literallayout>
2524 </para>
2525
2526 <section id='command-part-or-partition'>
2527 <title>Command: part or partition</title>
2528
2529 <para>
2530 Creates a partition on the system.
2531 Use the following syntax:
2532 <literallayout class='monospaced'>
2533 part &lt;mntpoint&gt;
2534 </literallayout>
2535 The &lt;mntpoint&gt; is where the partition will be mounted and must be of
2536one of the following forms:
2537 <itemizedlist>
2538 <listitem><para><filename>/&lt;path&gt;</filename>:
2539 For example, <filename>/</filename>,
2540 <filename>/usr</filename>, and
2541 <filename>/home</filename></para></listitem>
2542 <listitem><para><filename>swap</filename>:
2543 The partition will be used as swap space.
2544 </para></listitem>
2545 </itemizedlist>
2546 </para>
2547
2548 <para>
2549 Following are the supported options:
2550 <literallayout class='monospaced'>
2551 --size
2552 The minimum partition size in megabytes. Specify an integer value
2553 here such as 500. Do not append the number with MB. Not needed if
2554 --source is used.
2555
2556 --source
2557 bootimg
2558 rootfs
2559
2560 The --source option is a wic-specific option that can currently
2561 have one of two values, 'bootimg' or 'rootfs'.
2562
2563 If '--source rootfs' is used, it tells the wic command to create a
2564 partition as large as needed to fill with the contents of /rootfs
2565 (specified by the -r 'wic' option) and to fill it with the
2566 contents of /rootfs.
2567
2568 If '--source bootimg' is used, it tells the wic command to create
2569 a partition as large as needed to fill with the contents of the
2570 boot partition (specified by the -b 'wic' option). Exactly what
2571 those contents are depend on the value of the --fstype option for
2572 that partition. If '--fstype=efi' is specified, the boot
2573 artifacts contained in HDDDIR are used, and if '--fstype=msdos' is
2574 specified, the boot artifacts found in STAGING_DATADIR are used.
2575
2576 --ondisk or --ondrive
2577 Forces the partition to be created on a particular disk.
2578
2579 --fstype
2580 Sets the file system type for the partition. Valid values are:
2581 msdos
2582 efi
2583 ext4
2584 ext3
2585 ext2
2586 btrfs
2587 swap
2588
2589 --label label
2590 Specify the label to give to the filesystem to be made on the
2591 partition. If the given label is already in use by another
2592 filesystem, a new label will be created for this partition.
2593
2594 --active
2595 Mark the partition as active.
2596
2597 --align (in kB)
2598 The '--align' option is a mic-specific option that says to start a
2599 partition on an x kB boundary.
2600 </literallayout>
2601 </para>
2602 </section>
2603
2604 <section id='command-bootloader'>
2605 <title>Command: bootloader</title>
2606
2607 <para>
2608 This command specifies how the boot loader should be installed.
2609 </para>
2610
2611 <para>
2612 Following are the supported options:
2613 <literallayout class='monospaced'>
2614 --timeout
2615 Specify the number of seconds before the bootloader times out and
2616 boots the default option.
2617
2618 --append
2619 Specifies kernel parameters. These will be added to the syslinux
2620 APPEND or grub kernel command line.
2621
2622 The boot type is determined by the fstype of the /boot mountpoint. If
2623 the fstype is 'msdos' the boot type is 'pcbios', otherwise it's the
2624 fstype, which currently be: 'efi' (more to be added later).
2625
2626 If the boot type is 'efi', the image will use grub and has one
2627 menuentry: 'boot'.
2628
2629 If the boot type is 'pcbios', the image will use syslinux and has one
2630 menu label: 'boot'.
2631
2632 Future updates will implement more options - using anything not
2633 explicitly supported can result in unpredictable results.
2634 </literallayout>
2635 </para>
2636 </section>
2637 </section>
2638
1920 <section id='configuring-the-kernel'> 2639 <section id='configuring-the-kernel'>
1921 <title>Configuring the Kernel</title> 2640 <title>Configuring the Kernel</title>
1922 2641