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

Reply via email to