Because partitioned image creation is
driven by the kickstart file, it is easy to affect
image creation by changing the parameters in the file.
This next example demonstrates that through modification
of the directdisk
kickstart file.
As mentioned earlier, you can use the command
wic list images
to show the list
of existing kickstart files.
The directory in which these files reside is
scripts/lib/image/canned-wks/
located in the
Source Directory.
Because the available files reside in this directory,
you can create and add your own custom files to the
directory.
Subsequent use of the
wic list images
command would then
include your kickstart files.
In this example, the existing
directdisk
file already does most
of what is needed.
However, for the hardware in this example, the image
will need to boot from sdb
instead
of sda
, which is what the
directdisk
kickstart file uses.
The example begins by making a copy of the
directdisk.wks
file in the
scripts/lib/image/canned-wks
directory and then by changing the lines that specify
the target disk from which to boot.
$ 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
Next, the example modifies the
directdisksdb.wks
file and changes
all instances of "--ondisk sda
"
to "--ondisk sdb
".
The example changes the following two lines and leaves
the remaining lines untouched:
part /boot --source bootimg-pcbios --ondisk sdb --label boot --active --align 1024 part / --source rootfs --ondisk sdb --fstype=ext3 --label platform --align 1024
Once the lines are changed, the example generates the
directdisksdb
image.
The command points the process at the
core-image-minimal
artifacts for
the Next Unit of Computing (nuc)
MACHINE
the local.conf
.
$ wic create directdisksdb -e core-image-minimal Checking basic build environment... Done. Creating image(s)... Info: The new image(s) can be found here: /var/tmp/wic/build/directdisksdb-201310231131-sdb.direct The following build artifacts were used to create the image(s): ROOTFS_DIR: /home/trz/yocto/yocto-image/build/tmp/work/nuc-poky-linux/core-image-minimal/1.0-r0/rootfs BOOTIMG_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/nuc/usr/share KERNEL_DIR: /home/trz/yocto/yocto-image/build/tmp/sysroots/nuc/usr/src/kernel NATIVE_SYSROOT: /home/trz/yocto/yocto-image/build/tmp/sysroots/x86_64-linux The image(s) were created using OE kickstart file: /home/trz/yocto/yocto-image/scripts/lib/image/canned-wks/directdisksdb.wks
Continuing with the example, you can now directly
dd
the image to a USB stick, or
whatever media for which you built your image,
and boot the resulting media:
$ sudo dd if=/var/tmp/wic/build/directdisksdb-201310231131-sdb.direct of=/dev/sdb 86018+0 records in 86018+0 records out 44041216 bytes (44 MB) copied, 13.0734 s, 3.4 MB/s [trz at empanada tmp]$ sudo eject /dev/sdb