วิธีการเพิ่มอุปกรณ์ที่ udev เพิ่มด้วยตนเองแล้วนำออกหลังจากเสียบเข้ากับพอร์ต USB แล้ว?


0

ฉันกำลังพยายามติดตั้ง smart watch ราคาถูกของฉันด้วยชิปเซ็ต MTK6260A กับพีซีของฉันเพื่ออ่านเนื้อหาของเฟิร์มแวร์ อย่างไรก็ตามในขณะที่ dmesg แสดงให้ฉันเห็นว่าอุปกรณ์ตรวจพบและสร้างอย่างถูกต้อง:

[107204.279493] sd 12:0:0:0: [sdf] Test WP failed, assume Write Enabled
[107204.280474] sd 12:0:0:0: [sdf] Asking for cache data failed
[107204.280486] sd 12:0:0:0: [sdf] Assuming drive cache: write through
[107204.281588] sd 12:0:0:0: [sdf] Attached SCSI removable disk

udev สร้างแล้วลบมัน (จากจอภาพ udevadm):

KERNEL[107206.407012] add      /devices/virtual/bdi/8:80 (bdi)
KERNEL[107206.407083] add      /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/block/sdf (block)
UDEV  [107206.407522] add      /devices/virtual/bdi/8:80 (bdi)
KERNEL[107206.408114] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/scsi_disk/12:0:0:0 (scsi_disk)
KERNEL[107206.408199] remove   /devices/virtual/bdi/8:80 (bdi)
KERNEL[107206.408241] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/block/sdf (block)
KERNEL[107206.408270] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0 (scsi)
UDEV  [107206.408524] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/scsi_disk/12:0:0:0 (scsi_disk)
UDEV  [107206.408806] remove   /devices/virtual/bdi/8:80 (bdi)
KERNEL[107206.420107] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0 (scsi)
KERNEL[107206.436186] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/scsi_host/host12 (scsi_host)
KERNEL[107206.436204] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12 (scsi)
UDEV  [107206.436828] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/scsi_host/host12 (scsi_host)
UDEV  [107206.470749] add      /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/block/sdf (block)
UDEV  [107206.473577] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0/block/sdf (block)
UDEV  [107206.474781] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0/12:0:0:0 (scsi)
UDEV  [107206.475165] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12/target12:0:0 (scsi)
UDEV  [107206.475565] remove   /devices/pci0000:00/0000:00:14.0/usb3/3-11/3-11:1.0/host12 (scsi)

มีวิธีการเพิ่มกลับอุปกรณ์ด้วยตนเองหรือไม่?


1
ขั้นตอนแรกคือการค้นหาสาเหตุที่ทำให้ไดรฟ์ถูกลบ: หากเคอร์เนลพบข้อผิดพลาดขณะพยายามเข้าถึงอุปกรณ์มันจะทำการลบออกซึ่งอาจเป็นสิ่งที่เกิดขึ้นตามบันทึก (ลบมาจาก KERNEL) หากเป็นเช่นนั้นคุณจะไม่สามารถสร้างได้ด้วยตนเอง คำถามคือทำไมไม่มีข้อความแสดงข้อผิดพลาดแสดงปัญหา
dirkt

@dirkt ขอบคุณสำหรับความเข้าใจ คุณรู้วิธีแก้ปัญหา udev หรือไม่? ฉันกำลังคิดที่จะแตะคำสั่ง USB ระดับต่ำเพื่อให้ได้ความคิดคุณรู้วิธีการทำอย่างไร
Gabriel Diego

คำตอบ:


1

(ฉันจะทำให้คำตอบนี้และเพิ่มไปถึงแม้ว่าฉันจะไม่มีวิธีแก้ปัญหาสำเร็จรูปมันเป็นเรื่องที่น่าอึดอัดใจในความคิดเห็น)

ปัญหาไม่ได้udevดังนั้น "การดีบัก udev" จะไม่ช่วย udevเพียงตอบสนองต่อสัญญาณที่มาที่. 408114 จากเคอร์เนล

สมมติว่าไม่มีข้อความอื่น ๆdmesgนอกเหนือจากที่คุณแสดง (ซึ่งหมายความว่า "ไม่มีเลย" ไม่ใช่ "ไม่มีคุณคิดว่าเกี่ยวข้อง" มิฉะนั้นโปรดแก้ไขคำถามด้วยส่วนก่อนและหลังตัวอย่างของคุณ) สิ่งที่เรารู้คือเคอร์เนล พยายามส่งคำสั่งไปที่ smart watch เพื่อค้นหาข้อมูลเพิ่มเติมเกี่ยวกับอุปกรณ์เก็บข้อมูลและทั้งสอง (การป้องกันการเขียนและแคช) ล้มเหลว หลังจากนั้นเคอร์เนลอาจโต้ตอบกันมากขึ้นและในที่สุดก็ตัดสินใจว่านี่ไม่ใช่อุปกรณ์จัดเก็บข้อมูล USB เพราะไม่ตอบรับหรือให้ข้อผิดพลาดกลับมา ดังนั้นเคอร์เนลจะลบออกจากเลเยอร์ที่เก็บส่งสัญญาณไปudevและudevทำในสิ่งที่ควรและลบโหนดอุปกรณ์ แม้ว่าคุณจะป้องกันไม่ให้udevลบโหนดอุปกรณ์พวกเขาจะไม่ปรากฏในระดับเคอร์เนลดังนั้นพวกเขาจะไร้ประโยชน์

สิ่งที่คุณสามารถทำได้คือการใช้usbmonสูดดมแพ็คเก็ต USB ระหว่างพีซีและสมาร์ตวอช wiresharkสามารถตีความสิ่งเหล่านั้น หากคุณต้องการแก้ไขข้อบกพร่องนี้คุณจะต้องอ่านวิธีการทำงานของ USB วิธีการทำงานของที่จัดเก็บข้อมูล USB และวิธีการที่คำสั่ง SCSI ที่ทำให้ชั้นจัดเก็บข้อมูล USB ทำงานได้ สิ่งนี้อาจหรือไม่อาจบอกเป็นนัยถึงสิ่งที่ผิด มาตรฐานหาได้ยากด้วย googling เล็กน้อย

อาจเป็นไปได้ว่านาฬิกาอัจฉริยะราคาถูกนั้นไม่ได้ใช้มาตรฐานการจัดเก็บ USB อย่างถูกต้องและมีไดรเวอร์ Windows พิเศษที่เขียนโดยผู้ผลิตซึ่งซ่อนความจริงนั้นไว้ ในกรณีนี้คุณยังสามารถสูดดมทราฟฟิก USB บน Windows เพื่อดูว่ามันทำงานอย่างไร แต่คุณจะต้องเขียนเคอร์เนล Linux หรือไดรเวอร์ของผู้ใช้งานสเปซของคุณเอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.