Anzeige:
Ergebnis 1 bis 6 von 6

Thema: USB-Laufwerkszuordnung

  1. #1
    Ralf_
    Gast

    USB-Laufwerkszuordnung

    Hallo zusammen,

    Ich habe einen USB-Hub mit 7 USB-Anschlüssen und
    bin auf der Suche nach einer eindeutigen (konstanten) Zuordnung,
    und zwar vom Device zum vergebenen SCSI-Laufwerk.
    Mit 'cat /proc/partitions' sehe ich die vergebenen SCSI-Gerätenamen, 'lsusb' zeigt mir die Devices an, aber die Zuordnung finde ich nicht.
    Der verwendete Linux-Kernel ist 2.6.23.

    Danke
    Ralf

  2. #2
    Registrierter Benutzer Avatar von derRichard
    Registriert seit
    Nov 2001
    Beiträge
    5.069
    hi!

    udev legt in /dev/disks/ viele prkatische symlinks an.
    da findest du sicher etwas.

    hth,
    //richard
    There are two factions of CS, the ones that hate computers, and the ones that hate science.

  3. #3
    Sith Lord
    Registriert seit
    Apr 2009
    Beiträge
    1.438
    Ich mache das so und kann das empfehlen:
    Nach dem einstecken kurz warten und dann "dmesg" eingeben. Am Ende kommt etwa so ein Text:
    Code:
    [ 2827.487404] usb 2-1.3: new high speed USB device using ehci_hcd and address 12
    [ 2827.590786] usb 2-1.3: New USB device found, idVendor=058f, idProduct=6387
    [ 2827.590792] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 2827.590796] usb 2-1.3: Product: Mass Storage Device
    [ 2827.590799] usb 2-1.3: Manufacturer: JetFlash
    [ 2827.590802] usb 2-1.3: SerialNumber: GB3K5AP9
    [ 2827.590896] usb 2-1.3: configuration #1 chosen from 1 choice
    [ 2827.591240] scsi11 : SCSI emulation for USB Mass Storage devices
    [ 2827.591301] usb-storage: device found at 12
    [ 2827.591303] usb-storage: waiting for device to settle before scanning
    [ 2832.583722] usb-storage: device scan complete
    [ 2832.591848] scsi 11:0:0:0: Direct-Access     JetFlash TS2GJFT3         8.07 PQ: 0 ANSI: 2
    [ 2832.592133] sd 11:0:0:0: Attached scsi generic sg4 type 0
    [ 2832.593488] sd 11:0:0:0: [sdc] 4005886 512-byte logical blocks: (2.05 GB/1.90 GiB)
    [ 2832.593967] sd 11:0:0:0: [sdc] Write Protect is off
    [ 2832.593969] sd 11:0:0:0: [sdc] Mode Sense: 03 00 00 00
    [ 2832.593971] sd 11:0:0:0: [sdc] Assuming drive cache: write through
    [ 2832.595963] sd 11:0:0:0: [sdc] Assuming drive cache: write through
    [ 2832.595966]  sdc: sdc1
    [ 2832.597931] sd 11:0:0:0: [sdc] Assuming drive cache: write through
    [ 2832.597933] sd 11:0:0:0: [sdc] Attached SCSI removable disk
    In diesem fall ist es "sdc". Ich habe die Stellen Fett markiert, an denen man es erkennen kann.

    Steckt das Gerät schon länger und kann nicht entfernt werden (z.B. weil nicht klar ist, ob es gemountet ist oder weil es an einem Server im Rechenzentrum ganz weit weg steckt oder so), dann kann man oft ähnliche Meldungen in /var/log/syslog oder /var/log/messages finden, aber das könnte dann auch ein andres Gerät sein...

    Man kann auch folgendes machen:
    Code:
    su -c 'hddtemp /dev/sd?'
    #oder
    sudo hddtemp /dev/sd?
    Obwohl es eigentlich zur Überprüfung der Temperatur gedacht ist, wird auch die Hardwarebezeichnng angezeigt. hddtemp muss man aber evtl. erst noch installieren. Da käme z.B. sowas raus:
    Code:
    $ su -c 'hddtemp /dev/sd?'
    [...]
    /dev/sdc: JetFlashTS2GJFT3: S.M.A.R.T. not available

  4. #4
    Registrierter Benutzer
    Registriert seit
    Jun 2009
    Beiträge
    17
    hal ist schonmal ein guter Tip. udev wird wahrscheinlich hal verdrängen.
    Als Einstieg könntest Dir mal die Regeln in /etc/udev/rules.d/ ansehen.

  5. #5
    Ralf_
    Gast
    Danke für die bisherigen Antworten. Da wir die Lösung immer noch suchen, ist das Problem ausführlicher beschrieben:

    Wir sind auf der Suche nach einer Möglichkeit herauszufinden, ob ein USB-Stick direkt im Rechner oder indirekt über einen USB-Hub angeschlossen ist und auf welchen SCSI-Device-Node er abgebildet wird.
    Das ganze soll auf einem Embedded-Rechner mit Linux 2.6 (momentan 2.6.23, es könnte wahrscheinlich auch ein neuerer Kernel verwendet werden) laufen, der überwiegend mit BusyBox ausgestattet ist, d.h. kein udev oder sonstiger moderner Kram aus den allerneusten Linux-Distributionen.

    Ersteres (ob der USB-Stick über einen Hub angeschlossen ist), lässt sich ja recht einfach über /proc/bus/usb/devices feststellen.
    Allerdings ist es anscheinend nicht sonderlich einfach, von diesem Eintrag auf den SCSI-Device-Node zurückzuschließen.

    Bei Linux 2.4 gab es die Möglichkeit VendorID, ProductID und Seriennummer zu einer GUID zusammenzuhängen und diese in /proc/scsi/usb-storage-*/* zu suchen.
    Unter Linux 2.6 kann man diesen /proc-Zweig zwar noch optional aktivieren, allerdings ist dabei die GUID weggelassen worden.

    Theoretisch sollte alles, was unter /proc/scsi war, jetzt unter /sys liegen. Dort findet sich zwar einiges zum Thema SCSI (z.B. /sys/bus/scsi/devices, /sys/block/sda/device, /sys/class/scsi_disk, etc.), allerdings scheint darin die GUID nicht aufzutauchen, was eine Zuordnung zum USB-Stick schwierig macht.

    Gibt es unter Linux 2.6 irgendeine elegante Möglichkeit (ohne große Zusätze wie udev) die Zuordnung eines bestimmten USB-Sticks aus der Device-Liste zu einem bestimmten SCSI-Device-Node nachzuvollziehen oder sind wir gezwungen Linux 2.4 einzusetzen?

  6. #6
    Registrierter Benutzer Avatar von buzz768
    Registriert seit
    Apr 2005
    Ort
    Rostock
    Beiträge
    2.016
    Ich hatte mir mal ein Script geschrieben, um anhand von VendorID und ProductID den zugehörigen USB-Bus (?) zu finden, vielleicht kannst du das irgendwie verwursten
    Code:
    #!/bin/bash
    # find usb bus-device from idVendor and idProduct
    
    if [ $# -ne 2 ] 
    then
            echo "usage: usbfind idVendor idProduct" > /dev/stderr
            exit 1
    fi
    
    for l in /sys/bus/usb/devices/*
    do 
            if [ -e $l/idVendor ] && [ -e $l/idProduct ]
            then 
                    idV=$(cat $l/idVendor)
                    idP=$(cat $l/idProduct)
                    if [ $idV = $1 ] && [ $idP = $2 ]
                    then
                            basename $(readlink $l)
                            exit 0
                    fi
            fi
    done
    
    echo "No such device" > /dev/stderr
    exit 1
    Das zugehörige Blockdevice könnte man damit anscheinend so ermitteln
    Code:
    ls -l `find /sys/bus/usb/drivers/usb/$(./usbfind $idVendor $idProduct)/ -name block`
    Arch Linux / Intel Z77 / i5-3570K / 8GB PC3-1333 / SAMSUNG SSD 830 128GB

Ähnliche Themen

  1. Usb Wlan Adapter unter Suse 10.3
    Von Aldebaran im Forum Anbindung an die Aussenwelt
    Antworten: 23
    Letzter Beitrag: 14.02.08, 21:40
  2. Usb-Geraete Konflikt (Tastatur / externe HDD)
    Von quasseln im Forum stationäre Hardware
    Antworten: 2
    Letzter Beitrag: 19.04.07, 10:16
  3. suse 10.2 vs. USB HDD
    Von gabs im Forum System installieren und konfigurieren
    Antworten: 2
    Letzter Beitrag: 18.04.07, 12:53
  4. Der (nicht willige) USB-Hub
    Von netswipe im Forum stationäre Hardware
    Antworten: 2
    Letzter Beitrag: 06.04.05, 10:20
  5. Erkennung von USB
    Von gast44 im Forum System installieren und konfigurieren
    Antworten: 22
    Letzter Beitrag: 01.08.04, 15:08

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •