Un problème avec le stockage USB dans Linux m'a coûté plus d'un jour: dmesg
indique que l'USB est détecté, mais fdisk -l
ne peut pas trouver le stockage USB.
Mon noyau est 2.4.32.
L'information sur ce stockage USB peut également être trouvée via proc
:
# cat /proc/scsi/usb-storage-0/0 Host scsi0: usb-storage Vendor: USB 2.0 Product: USB Flash Drive Serial Number: 00000000001485 Protocol: Transparent SCSI Transport: Bulk GUID: 048d11670000000000001485 Attached: Yes
lsmod
montre:
# lsmod | grep usb usb-storage 27800 0 usbcore 56864 0 [ehci-hcd uhci usb-storage] scsi_mod 108120 1 [usb-storage]
Scsi
# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: USB 2.0 Model: USB Flash Drive Rev: 0.00 Type: Direct-Access ANSI SCSI revision: 02
"Fdisk -l / dev / sda" ne me donne rien, et "strace fdisk -l / dev / sda" me montre:
open("/dev/sda", O_RDONLY|O_LARGEFILE) = -1 ENXIO (No such device or address)
Queue de dmesg
hub.c: new USB device 00:1d.7-2, assigned address 2 usb.c: kmalloc IF af910660, numif 1 usb.c: new device strings: Mfr=1, Product=2, SerialNumber=3 usb.c: USB device number 2 default language ID 0x409 Manufacturer: USB 2.0 Product: USB Flash Drive SerialNumber: 00000000001485 scsi0 : SCSI emulation for USB Mass Storage devices Vendor: USB 2.0 Model: USB Flash Drive Rev: 0.00 Type: Direct-Access ANSI SCSI revision: 02 WARNING: USB Mass Storage data integrity not assured USB Mass Storage device found at 2 usb.c: usb-storage driver claimed interface af910660 usb.c: kusbd: /sbin/hotplug add 2 hub.c: port 3, portstatus 100, change 0, 12 Mb/s hub.c: port 4, portstatus 100, change 0, 12 Mb/s hub.c: port 5, portstatus 100, change 0, 12 Mb/s hub.c: port 6, portstatus 100, change 0, 12 Mb/s hub.c: port 7, portstatus 100, change 0, 12 Mb/s hub.c: port 8, portstatus 100, change 0, 12 Mb/s
Enfin, j'ai résolu ce problème! 😛
Il s'est avéré que je insmod scsi_mod.o
et sd_mod.o
, mais le noyau avait déjà pris en charge SCSI.
Soupir ~
J'ai également trouvé que scsi_mod devrait être insmod
'ed avant sd_mod, et ehci_hcd.o avant usb-storage.o. Sinon, dmesg dira usb.c: USB device not accepting new address=2 (error=-71)
.
"Noyau est 2.4.32" – vraiment? Ne peux-tu pas utiliser quelque chose d'un peu plus moderne?
Avez-vous essayé de regarder "cat / proc / scsi / scsi"? Que diriez-vous de "fdisk -l / dev / sda"?
"Fdisk -l" seul ne tente pas toujours tous les périphériques de type disque dans le système. En lui donnant un périphérique spécifique, il sera forcé à regarder cela et à vous dire sa table de partition.
Regardez de plus près à dmesg lorsque vous insérez le usbstick – ma supposition est que t ne se débrouille pas sur / dev / sda.