Hi Abhishek, I fear I left this mail uncommented..
On 10/23/18 11:16 AM, Abhishek Kumar Rai wrote:
Hi Enrico, Thanks for your prompt reply. For us the 'realpath' command is working fine. The devices do exist at the respective location. Below are the logs from our end for the post-boot scenario and the bootargs. It seems RAUC is trying to look for device '00000000-01' whereas the actual device is '1b325bba-01'.__Is there a way we can configure RAUC in userspace to look for device 1b32bba-01 in place of 00000000-01?_ _*Kernel bootargs*_ _*MMC: *_ Kernel command line: console=ttymxc0,115200 root=PARTUUID=*1b325bba*-01 rootwait rw *rauc.slot=A* video=mxcfb0:dev=lcd,TRULY-WVGA,if=RGB24,rotate =3 consoleblank=0 vt.global_cursor_default=0 _*USB:*_ Kernel command line: console=ttymxc0,115200 root=PARTUUID=*00000000*-01 rootwait rw video=mxcfb0:dev=lcd,TRULY-WVGA,if=RGB24,rotate=3 consolebl ank=0 vt.global_cursor_default=0
In USB boot, PARTUUID is 00000000 and realpath won't work for this. You need to set a valid disk id in your USB MBR in order to make this work.
_*USB post-boot logs*_ *root@test:~# mount* /dev/sda1 on / type ext4 (rw,relatime,data=ordered) ... ... root@test:~# root@test:~# root@test:~# *root@test:~# ls /dev/disk/by-partuuid/** /dev/disk/by-partuuid/1b325bba-01 /dev/disk/by-partuuid/1b325bba-03 /dev/disk/by-partuuid/1b325bba-05 /dev/disk/by-partuuid/1b325bba-02 /dev/disk/by-partuuid/1b325bba-04 root@test:~# root@test:~# *root@test:~# realpath /dev/disk/by-partuuid/** /dev/mmcblk1p1 /dev/mmcblk1p2 /dev/mmcblk1p3 /dev/mmcblk1p4 /dev/mmcblk1p5
Your logs show that there are definitely no /dev/disk/by-partuuid-symlinks for the USB stick (and thus that realpath does not work for USB; as you can see there are only mmc-symlinks). Of course your eMMC is still fine, but you do not boot from it.
root@test:~# root@test:~# *root@test:~# rauc status* rauc-Message: Failed to resolve realpath for '/dev/disk/by-partuuid/*00000000*-01' Failed to determine slot states: Did not find booted slot
Yes, RAUC needs to detect where it is booted from to operate safely. One option is to obtain this info from the root= by finding the appropriate root device. Another (actually the preferred) option of identifying the booted device in RAUC is to pass this information explictily from the bootloader via kernel command line arg 'rauc.slot=<bootname>'.
_*MMC post-boot logs*_ *root@test:~# mount* /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered) ... ... root@test:~# ls /dev/disk/by-partuuid/* /dev/disk/by-partuuid/1b325bba-01 /dev/disk/by-partuuid/1b325bba-03 /dev/disk/by-partuuid/1b325bba-05 /dev/disk/by-partuuid/1b325bba-02 /dev/disk/by-partuuid/1b325bba-04 root@test:~# root@test:~# *root@test:~# realpath /dev/disk/by-partuuid/* *** /dev/mmcblk1p1 /dev/mmcblk1p2 /dev/mmcblk1p3 /dev/mmcblk1p4 /dev/mmcblk1p5 root@test:~# root@test:~# root@test:~# root@test:~# *root@test:~# rauc status* Compatible: klondike-test Variant: (null) Booted from: A Activated: rootfs.0 slot states: rootfs.0: class=rootfs, device=/dev/disk/by-path/platform-219c000.usdhc-part1, type=ext4, bootname=A state=booted, description=, parent=(none), mountpoint=(none) boot status=good rootfs.1: class=rootfs, device=/dev/disk/by-path/platform-219c000.usdhc-part2, type=ext4, bootname=B state=inactive, description=, parent=(none), mountpoint=(none) boot status=bad root@test:~#
Ok, this works fine as expected :) Best regards, Enrico -- Pengutronix e.K. | Enrico Jörns | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-5080 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ RAUC mailing list