summaryrefslogtreecommitdiffstats
path: root/meta-netboot/classes/netboot.bbclass
diff options
context:
space:
mode:
authorStephane Desneux <stephane.desneux@iot.bzh>2016-05-23 17:53:36 +0200
committerGerrit Code Review <gerrit@172.30.200.200>2016-05-29 10:21:30 +0000
commit56b1139ef2660535b112d0be4ddb2806f75298a8 (patch)
tree7e71661d2d9f9a407fe58da7e572f7cffa3f51f6 /meta-netboot/classes/netboot.bbclass
parent04dad68c951f206bd100e4dd82f9a77475e81f9d (diff)
add layer meta-netboot to enable network boot over NBD (Network Block Device)
To enable the build of network bootable images, the following line must be added to conf/local.conf: INHERIT += "netboot" This layer contains recipes for the following components: * busybox: activate the built-in NBD client * initramfs-netboot: contains the init script started by the kernel, responsible for mounting the remote root filesystem then pivoting and exec'ing systemd * initramfs-netboot-image: image to specify for building the initrd More details are available in meta-netboot/README. Bug-AGL: SPEC-175 Change-Id: Id2328dd9233d238cde77311e64e58344be244988 Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
Diffstat (limited to 'meta-netboot/classes/netboot.bbclass')
-rw-r--r--meta-netboot/classes/netboot.bbclass26
1 files changed, 26 insertions, 0 deletions
diff --git a/meta-netboot/classes/netboot.bbclass b/meta-netboot/classes/netboot.bbclass
new file mode 100644
index 000000000..0bb2452ad
--- /dev/null
+++ b/meta-netboot/classes/netboot.bbclass
@@ -0,0 +1,26 @@
+# Enable network bootable image and initrd/initramfs
+
+# add image classes for uboot
+IMAGE_CLASSES += "${@'image_types_uboot' if (d.getVar("KERNEL_IMAGETYPE", True) == "uImage") else ''}"
+
+python () {
+ d.appendVar("IMAGE_FSTYPES"," ext4")
+
+ if (bb.utils.contains("IMAGE_FSTYPES","live",True,False,d)):
+ # typical case for Minnowboard Max
+ d.setVar("INITRD_IMAGE","initramfs-netboot-image")
+ d.setVar("INITRD","%s/%s-%s.ext4.gz" % (
+ d.getVar("DEPLOY_DIR_IMAGE",True),
+ d.getVar("INITRD_IMAGE",True),
+ d.getVar("MACHINE",True)
+ ))
+ else:
+ d.appendVar("INITRAMFS_IMAGE"," initramfs-netboot-image")
+ if (d.getVar("KERNEL_IMAGETYPE",True) == "uImage"):
+ # case for "old" u-boot images, like Porter board
+ d.appendVar("INITRAMFS_FSTYPES"," ext4.gz.u-boot");
+ else:
+ # case for new u-boot images which don't require uImage format
+ d.appendVar("INITRAMFS_FSTYPES"," ext4.gz");
+}
+