summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib
diff options
context:
space:
mode:
authorAndrew Jeffery <andrew@aj.id.au>2023-01-25 05:05:00 +0300
committerAndrew Jeffery <andrew@aj.id.au>2023-01-27 11:06:02 +0300
commita2e2aea3873c100a4dbf27100c8bc337fbffe75a (patch)
tree782d0ff409e9dba8cbf75e872e8cb75701006bb0 /meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib
parentc154438b0ac1b571e7d97ae00b66630ec97d577c (diff)
downloadopenbmc-a2e2aea3873c100a4dbf27100c8bc337fbffe75a.tar.xz
meta-phosphor: phosphor-mmc-init: Fix commandline parsing for root
From Joel in [1]: ``` It expects a command line string to be in the form: console=ttyS4,115200n8 rootwait root=PARTLABEL=rofs-a If booting with root=PARTLABEL=rofs-a at the start of the command line string (instead of the end), the parsing gets confused: [ 8.241229] /dev/disk/by-partlabel/root=PARTLABEL=rofs-a: Can't open blockdev mount: mounting /dev/disk/by-partlabel/root=PARTLABEL=rofs-a on /mnt/rofs failed: No such file or directory Similarly if the partition is not set, it gets confused: [ 1.919816] Run /init as init process Starting version 251.8+ [ 8.219396] /dev/disk/by-partlabel/rootwait: Can't open blockdev mount: mounting /dev/disk/by-partlabel/rootwait on /mnt/rofs failed: No such file or directory We should fix get_root so that it checks for the existance of root=PARTLABEL, and matches on it. We could fall back on rofs-a if it can't be found? ``` Based on Joel's example I tested the new implementation as follows: ``` $ declare -f old_get_root old_get_root () { local root="$@"; root="${root##* root=PARTLABEL=}"; root="${root%% *}"; [ "${root}" != "" ] && echo "${root}" } $ declare -f new_get_root new_get_root () { local cmdline="$@"; root=; for opt in $cmdline; do case $opt in root=PARTLABEL=*) root=${opt##root=PARTLABEL=} ;; *) ;; esac; done; [ -n "$root" ] && echo $root } ``` Comparing the two under various commandline orderings: ``` $ echo $working_cmdline console=ttyS4,115200n8 rootwait root=PARTLABEL=rofs-a $ old_get_root $working_cmdline rofs-a $ new_get_root $working_cmdline rofs-a $ ``` ``` $ echo $broken_cmdline root=PARTLABEL=rofs-a console=ttyS4,115200n8 rootwait $ old_get_root $broken_cmdline root=PARTLABEL=rofs-a $ new_get_root $broken_cmdline rofs-a $ ``` ``` $ echo $maybe_cmdline console=ttyS4,115200n8 root=PARTLABEL=rofs-a rootwait $ old_get_root $maybe_cmdline rofs-a $ new_get_root $maybe_cmdline rofs-a $ ``` ``` $ echo $dev_cmdline console=ttyS4,115200n8 root=/dev/sda1 rootwait $ old_get_root $dev_cmdline console=ttyS4,115200n8 $ new_get_root $dev_cmdline $ ``` In each case new_get_root() gives the expected output. [1]: https://github.com/openbmc/openbmc/issues/3898 Fixes: 0998d1e4fc58 ("initramfs: Add init script for eMMC") Change-Id: I68e95d74dd33c54d956d08ae3332ba7bdec9aeeb Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Diffstat (limited to 'meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib')
0 files changed, 0 insertions, 0 deletions