Hi Saravana, On Tue, Oct 27, 2020 at 6:31 PM Saravana Kannan <sarava...@google.com> wrote: > On Tue, Oct 27, 2020 at 3:12 AM Geert Uytterhoeven <ge...@linux-m68k.org> > wrote: > > On Wed, Sep 2, 2020 at 12:51 AM Saravana Kannan <sarava...@google.com> > > wrote: > > > This script can be useful for: > > > - Figuring out the list of modules you need to pack in initrd > > > - Figuring out the list of drivers you need to modularize for a device > > > to be fully functional without building in any dependencies. > > > - Figuring out which drivers to enable first, when porting drivers > > > between kernels (say, to upstream). > > > - Plotting graphs of system dependencies, etc. > > > > > > Usage: dev-needs.sh [-c|-d|-m|-f] [filter options] <list of devices> > > > > > > This script needs to be run on the target device once it has booted to a > > > shell. > > > > > > The script takes as input a list of one or more device directories under > > > /sys/devices and then lists the probe dependency chain (suppliers and > > > parents) of these devices. It does a breadth first search of the > > > dependency > > > chain, so the last entry in the output is close to the root of the > > > dependency chain. > > > > Thanks for your patch! > > > > > --- /dev/null > > > +++ b/scripts/dev-needs.sh > > > @@ -0,0 +1,315 @@ > > > +#! /bin/sh > > > > On Debian, where /bin/sh -> dash: > > > > dev-needs.sh: 6: dev-needs.sh: Syntax error: "(" unexpected > > dash doesn't like () after the function name maybe? If so, we could > drop it. I think it'll still work with toybox and bash.
That's not sufficient: ./dev-needs.sh: 47: ./dev-needs.sh: Syntax error: "}" unexpected > > When using bash, I get: > > > > # ./dev-needs.sh /sys/devices/platform/soc/feb00000.display > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > > > # ./dev-needs.sh -c /sys/devices/platform/soc/feb00000.display > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > ./dev-needs.sh: line 255: detail: command not found > > This is odd. bash definitely works with this script on my Debian x86 machine. > > This error happens when the "detail" alias is not "seen" by the shell > when it interprets detail_chosen function. Sigh, every shell seems to > want a different order. Can you try to debug it on your end? The bash man page says: Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt And adding "shopt -s expand_aliases" at the top makes it work. Nevertheless, the bash man page says "... do not use alias in compound commands". > This is the version I have: > GNU bash, version 5.1.0(1)-rc1 # /bin/bash --version GNU bash, version 5.0.3(1)-release (aarch64-unknown-linux-gnu) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds