On Sat, 2021-03-27 at 09:50 +0800, Ed Greshko wrote:
On 27/03/2021 07:20, Patrick O'Callaghan wrote:
This never happens if I run the script directly from the command line (i.e. the drives power down and stay down).
Clearly the docking unit isn't just doing this flakily on its own. Something is making it happen, and I've no idea how to discover what it is except that it seems to be correlated with systemd in some way.
Just "thinking out loud" here.
When you run the script from the command line it is after you've determined the unmount has happened. How much time do you think elapsed between the actual unmount and running of the script? Do you have a delay between the time inotifywait detects unmount and powering down the drives? If so, does it help if you extend the delay?
The power-down script loops as long as it detects that the drives are spun up (using hdparm -C), since they take few seconds to actually spin down. I can physically see them being spun down, then a couple of seconds later they spin up again, which can only be because something is accessing them. If I then invoke the same power-down script manually, they power down and stay down.
I've now modified the script to run an outer loop three times over the power-down-and-check sequence, which so far seems to do the trick, but it's a real kludge.
I have never used it for this, but wireshark does have the ability to monitor USB. Don't know if that will reveal anything or be of any help.
Only as a last resort. I don't fancy having to learn USB command sequences.
poc