Membawa ini kembali dari kematian untuk penyelesaian.
Detailnya tidak jelas, tetapi ternyata perangkat itu sendiri mogok saat boot. Saya percaya itu ada hubungannya dengan obrolan yang dihasilkan uBoot di jalur USB. Pada dasarnya, uBoot menyurvei semua lini perangkat keras (termasuk USB) untuk menemukan gambar yang dapat di-boot. Polling ini seharusnya tidak berbahaya, tetapi firmware pada perangkat USB kami tidak dapat menanganinya dan langsung mogok, membuatnya tidak dapat dioperasikan hingga hard reset (mencabut perangkat secara fisik dan menyambungkannya kembali).
Kami memang melaporkan bug ini ke produsen perangkat, tetapi kami tidak menerima indikasi bahwa perbaikan untuk masalah (yang tampaknya hanya memengaruhi kami) akan menjadi prioritas, jadi kami menggunakan perbaikan sebesar $,50.
Cara kami menyelesaikan ini cukup kreatif, tetapi bekerja dengan sempurna. Kami membuat relai sederhana yang dikontrol GPIO dan menyambungkan kabel daya USB melalui relai ini. Pada dasarnya, sistem melakukan boot dengan relai "mati", dan karenanya tidak ada daya ke perangkat USB. Sistem melakukan boot secara normal, dan dalam skrip startup kami, kami cukup mengaktifkan jalur GPIO untuk mengaktifkan relai. Perangkat USB bebas melakukan booting secara normal, tanpa gangguan dari uBoot.
Kedengarannya seolah-olah perangkat mencoba mengobrol dengan OS saat boot pertama dan karena tumpukan belum siap pada saat itu, ia "keluar" dari hub. Pertimbangkan untuk menambahkan bagian di akhir proses booting untuk melepaskan driver dan memaksa memuat ulang. (modprobe -vr ehci_hcd; modprobe -v ehci_hcd
jika USB2.0, uhci_hcd
jika USB1.x)
Kemungkinan lain adalah ketika Gumstix dimatikan, ia memberi tahu perangkat untuk masuk ke mode hemat daya yang mungkin tidak didukung dengan benar oleh perangkat. Windows mungkin melakukan hal-hal yang berbeda di sana daripada Windows yang mungkin diuji oleh vendor. Untuk menguji ini, Anda mungkin harus memberitahu pengandar perangkat untuk tidak menangguhkan atau mematikan perangkat selama restart sistem. Lihat Dokumentasi Kernel Linux tentang Penghematan Daya di bagian USB untuk memulai.