web-dev-qa-db-ja.com

カーネルはUSBデバイスを認識しますが、/ sysまたは/ devに見つかりません

Samsung 390G(安価な携帯電話!)をUbuntu 13.04に接続すると、dmesgはその上のストレージデバイスが認識可能であることを示しているようです。

[Sun Dec 29 01:26:10 2013] scsi16 : usb-storage 2-1.2:1.0
[Sun Dec 29 01:26:11 2013] scsi 16:0:0:0: Direct-Access     SAMSUNG  MMC Storage      2.31 PQ: 0 ANSI: 2
[Sun Dec 29 01:26:11 2013] sd 16:0:0:0: Attached scsi generic sg2 type 0
[Sun Dec 29 01:26:11 2013] sd 16:0:0:0: [sdb] 61497344 512-byte logical blocks: (31.4 GB/29.3 GiB)
[Sun Dec 29 01:26:11 2013] sd 16:0:0:0: [sdb] Write Protect is off
[Sun Dec 29 01:26:11 2013] sd 16:0:0:0: [sdb] Mode Sense: 0f 0e 00 00
[Sun Dec 29 01:26:11 2013] sd 16:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[Sun Dec 29 01:26:11 2013]  sdb: sdb1
[Sun Dec 29 01:26:11 2013] sd 16:0:0:0: [sdb] Attached SCSI removable disk
[Sun Dec 29 01:26:11 2013] sd 16:0:0:0: [sdb] Synchronizing SCSI cache

ただし、問題は、このためのデバイスが表示されないことです(つまり、/ dev/sdbまたは/ dev/sdb1がありません)。ここでudevルールを作成する必要があると推測していますが、そのために/ sysで親ノードを見つける必要はありませんか?そして、私は何も見つけることができません-どこを見ればよいか完全にはわかりませんが、これまでのところ、私の合理的な推測では何も得られていません。

参考までに、このデバイスはWindowsエクスプローラーのドライブとしてマウントされるため、電話は期待どおりに機能すると確信しています。

3
Stabledog

このデバイスの存在を検出するには、UDEVルールを追加する必要がある可能性があります。デバイスが検出されると、UDEVは対応する/dev/sdb1を作成してそれに対応できます。

OpenSUSEのこれらのドキュメントは、このルールの作成を開始するのに役立つはずです。

質問について:

「...しかし、そのために/ sysで親ノードを見つける必要はありませんか?そして何も見つかりません...」

カーネルが/dev/sdb1を正常に検出した場合、それらのメッセージがdmesgログに記録されてから、カーネルは/sysの下に対応するエントリがあると思います。

/sysをもっと徹底的に調査しますが、/dev/sdb1に対応するデバイスハンドルがそこに隠れている可能性があります。次のコマンドを使用してツリーを歩き回ることができます。udevadm info -a -p /sys/class/...ドット(...)の代わりに適切なデバイスを追加する必要があります。

$ udevadm info -a -p /sys/class/ata_device/dev1.0 

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1f.2/ata1/link1/dev1.0/ata_device/dev1.0':
    KERNEL=="dev1.0"
    SUBSYSTEM=="ata_device"
    DRIVER==""
    ATTR{gscr}==""
    ATTR{class}=="ata"
    ATTR{ering}=="[4294667.658000000]Unknown"
    ATTR{spdn_cnt}=="0"
    ATTR{pio_mode}=="XFER_UDMA_7, XFER_UDMA_6, XFER_UDMA_5, XFER_UDMA_4, XFER_MW_DMA_4, XFER_PIO_6, XFER_PIO_5, XFER_PIO_4, XFER_PIO_3, XFER_PIO_2, XFER_PIO_1, XFER_PIO_0"
    ATTR{dma_mode}=="XFER_UDMA_7, XFER_UDMA_6, XFER_UDMA_5, XFER_UDMA_4, XFER_UDMA_3, XFER_UDMA_2, XFER_UDMA_1, XFER_UDMA_0, XFER_MW_DMA_4, XFER_MW_DMA_3, XFER_MW_DMA_2, XFER_SW_DMA_2, XFER_PIO_6, XFER_PIO_5, XFER_PIO_4, XFER_PIO_3, XFER_PIO_2"
    ATTR{xfer_mode}=="XFER_UDMA_7, XFER_UDMA_6, XFER_UDMA_5, XFER_UDMA_4, XFER_UDMA_3, XFER_UDMA_2, XFER_UDMA_1, XFER_UDMA_0, XFER_MW_DMA_4, XFER_MW_DMA_3, XFER_MW_DMA_2, XFER_SW_DMA_2, XFER_PIO_6, XFER_PIO_5, XFER_PIO_4, XFER_PIO_3, XFER_PIO_2"

  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/link1/dev1.0':
    KERNELS=="dev1.0"
    SUBSYSTEMS==""
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1/link1':
    KERNELS=="link1"
    SUBSYSTEMS==""
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1f.2/ata1':
    KERNELS=="ata1"
    SUBSYSTEMS==""
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1f.2':
    KERNELS=="0000:00:1f.2"
    SUBSYSTEMS=="pci"
    DRIVERS=="ahci"
    ATTRS{irq}=="40"
    ATTRS{subsystem_vendor}=="0x17aa"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x010601"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{local_cpus}=="00000000,00000000,00000000,0000000f"
    ATTRS{device}=="0x3b2f"
    ATTRS{msi_bus}==""
    ATTRS{local_cpulist}=="0-3"
    ATTRS{vendor}=="0x8086"
    ATTRS{subsystem_device}=="0x2168"
    ATTRS{numa_node}=="-1"
    ATTRS{d3cold_allowed}=="1"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
0
slm