]> code.ossystems Code Review - openembedded-core.git/commitdiff
runqemu: support rootfs mounted ro
authorAdrian Freihofer <adrian.freihofer@gmail.com>
Fri, 12 Nov 2021 22:29:18 +0000 (23:29 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 13 Nov 2021 16:09:53 +0000 (16:09 +0000)
Optionally allow to set QB_KERNEL_ROOT to e.g. "/dev/vda ro" to mount the
rootfs reay-only in Qemu.

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/qemuboot.bbclass
scripts/runqemu

index bf529e9aa4bf5970b978c83fc523e0fe08c8ad5a..8cdb544a94d460d99f693e20ba0a504717cf42ea 100644 (file)
@@ -36,6 +36,8 @@
 #         in system mode, where system is experiencing entropy starvation
 #
 # QB_KERNEL_ROOT: kernel's root, e.g., /dev/vda
+#                 By default "/dev/vda rw" gets passed to the kernel.
+#                 To mount the rootfs read-only QB_KERNEL_ROOT can be set to e.g. "/dev/vda ro".
 #
 # QB_NETWORK_DEVICE: network device, e.g., "-device virtio-net-pci,netdev=net0,mac=@MAC@",
 #                    it needs work with QB_TAP_OPT and QB_SLIRP_OPT.
index d4f0888f8da2092694eb0ba2a3948da72086bd93..efb98ab9e0f4360d512e2a48a008da147727f072 100755 (executable)
@@ -1266,7 +1266,13 @@ class BaseConfig(object):
                 self.rootfs_options = vm_drive
                 if not self.fstype in self.vmtypes:
                     self.rootfs_options += ' -no-reboot'
-            self.kernel_cmdline = 'root=%s rw' % (self.get('QB_KERNEL_ROOT'))
+
+            # By default, ' rw' is appended to QB_KERNEL_ROOT unless either ro or rw is explicitly passed.
+            qb_kernel_root = self.get('QB_KERNEL_ROOT')
+            qb_kernel_root_l = qb_kernel_root.split()
+            if not ('ro' in qb_kernel_root_l or 'rw' in qb_kernel_root_l):
+                qb_kernel_root += ' rw'
+            self.kernel_cmdline = 'root=%s' % qb_kernel_root
 
         if self.fstype == 'nfs':
             self.rootfs_options = ''