Dear Thomas, Mikulas, Need your help in root causing my dm-verity issue with squashfs. Please see my comments inline. On Tue, 31 Aug 2021 at 18:49, Pintu Agarwal <pintu.ping@xxxxxxxxx> wrote: > > No, but you can backport it easily. Back at > > http://lists.infradead.org/pipermail/openwrt-devel/2019-November/025967.html > > I provided backports of this feature to OpenWrt, for the 4.14 and 4.19 > > kernels. > > > Yes, I can backport it to our 4.14 Kernel. > Can you share the list of patches to be backported to make it work on 4.14 ? > If it's backported also I need to report to our internal kernel, but > it might be slightly easier. > Please share the details. > I am interested to backport dm-mod.create related patches to our 4.14 kernel. Please let me know where can I find all the patches ? Is it already part of mainline 4.14 ? Please share the list of commits (from mainline) that we need to pull and backport. > > > Here is our kernel command line: > > > > > > [ 0.000000] Kernel command line: ro rootwait > > > console=ttyMSM0,115200,n8 .... verity="95384 11923 > > > 16da5e4bbc706e5d90511d2a3dae373b5d878f9aebd522cd614a4faaace6baa3 12026 > > > " rootfstype=squashfs ubi.mtd=40,0,30 ubi.block=0,0 root=/dev/dm-0 > > > .... init=/sbin/init root=/dev/dm-0 dm="rootfs none ro,0 95384 verity > > > 1 /dev/ubiblock0_0 /dev/mtdblock53 4096 4096 11923 8 sha256 > > > 16da5e4bbc706e5d90511d2a3dae373b5d878f9aebd522cd614a4faaace6baa3 > > > aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7 10 > > > restart_on_corruption ignore_zero_blocks use_fec_from_device > > > /dev/mtdblock53 fec_roots 2 fec_blocks 12026 fec_start 12026" ... > > > > I don't see how this can work without the dm-mod.create feature. Are > > you sure the verity= and dm= kernel arguments exist? > I checked a little further and yes there is "dm=" command line in kernel available. This is already working with ext4 glue, but was never tried with squashfs. I think it is mainline derived from Android. https://patchwork.kernel.org/project/dm-devel/patch/2c01b2a43a46fab760208d7af3a7af37eec8c41a.1537936397.git.helen.koike@xxxxxxxxxxxxx/ https://github.com/projectceladon/device-androidia-kernel/blob/master/init/do_mounts_dm.c Mostly, this is the main repo where our source might be derived: https://github.com/android-linux-stable/msm-4.14 Can we backport the patches here ? If I get the list I can try it. > > Also, you mentioned: > >>> Here, it definitely worked to append the hash tree to the squashfs > >>> image and store them in the same partition. > Can you share some details about it ? > How it can be done since squashfs is readonly. Can you share your reference, how are you appending the hash tree ? Let me try the same. But it seems like the underlying concept is the same for both "dm-mod.create" and "dm=". However, I am not sure if there are any changes required for squashfs as block device.. Errors: Currently, we are getting this in boot logs: [ 4.962188] device-mapper: init: attempting early device configuration. [ 4.969699] device-mapper: init: created device '253:0' [ 4.975503] device-mapper: init: adding target '0 95384 verity 1 /dev/ubiblock0_0 /dev/mtdblock53 4096 4096 11923 8 sha256 8fc2e4bb751f4b3145a486a0f4f1b58149ba3eedc2a67312f31fbee131380dab aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7 10 restart_on_corruption ignore_zero_blocks use_fec_from_device /dev/mtdblock53 fec_roots 2 fec_blocks 12026 fec_start 12026' [ 4.992323] device-mapper: verity: sha256 using implementation "sha256-generic" [ 5.015568] device-mapper: init: dm-0 is ready [ 10.080065] prepare_namespace: dm_run_setup - done [ 10.080093] prepare_namespace: saved_root_name: /dev/dm-0 [ 10.083903] prepare_namespace: Inside: name_to_dev_t [ 10.089605] prepare_namespace: Calling - mount_root() ... [ 10.094519] [PINTU]: mount_block_root: called with input name: /dev/root, fs_names: squashfs [ 10.263510] [PINTU]: do_mount_root: sys_mount failed: err: -22 [ 10.263544] [PINTU]: mount_block_root: do_mount_root: err: -22, p: squashfs, flags: 32769, root_mount_data: (null) [..] [ 10.745672] No filesystem could mount root, tried: [ 10.745676] squashfs [ 10.748015] [ 10.755232] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(253,0) It seems the rootfs could not mount due to invalid arguments. Not sure which arguments are invalid here... Thanks, Pintu