Sie finden die Fehlercodes in errno.h, wozu errno-base.h gehört . Zurückgegebene Fehlercodes sind per Konvention negativ, daher ist -32 "Pipe gebrochen", was höchstwahrscheinlich nur eine Folge eines USB-Lese- oder Schreibfehlers ist.
2184800.usbmisc supply vbus-wakeup not found, using dummy regulator
Sieht verdächtig aus, besonders wenn es nicht erscheint, wenn Sie warten, bevor Sie es wieder einschalten.
Die erste Vermutung ist, dass ein zu schneller Wechsel des Stroms die internen Kapazitäten in einigen USB-Chips nicht vollständig entlädt. Wenn Sie ihn wieder einschalten, befindet er sich in einem schlechten Zustand, und der Geräteinitialisierungscode behandelt diesen Zustand entweder nicht. oder kann nicht damit umgehen, weil dieser Zustand niemals geschehen sollte.
Es ist möglicherweise möglich, das Problem in der Software zu beheben, indem Sie das Datenblatt mit einem feinen Kamm durchgehen und paranoid alles auf einen ordnungsgemäßen Zustand initialisieren, wobei Zeitüberschreitungen erforderlich sind. Das macht aber keinen Spaß, es dauert lange und Sie benötigen die Fähigkeiten, um Treibercode zu schreiben. Und dann könnte der schlechte Zustand so verrückt sein, dass dies nicht funktioniert.
Daher ist die einfachste Problemumgehung "Nicht zu schnell einschalten".