USB-Kartenleser (war: Canon EOS Kamera - wie bilder \u00fcbertragen?)

From: Greg 'groggy' Lehey <grog(at)freebsd.org>
Date: Sat, 31 Dec 2011 17:58:50 +1100

On Friday, 30 December 2011 at 9:44:28 +0100, Heino Tiedemann wrote:
> "Greg 'groggy' Lehey" <grog(at)freebsd.org> wrote:
>
>> On Friday, 30 December 2011 at 7:17:12 +0100, Polytropon wrote:
>>> Für solche Zwecke habe ich hier einen "35 in 1" Kartenleser von hama
>>> (anzuschließen per USB-Kabel), der auch CF-Karten verarbeiten kann.
>>
>> Habe ich auch. Läuft aber (noch) nicht mit FreeBSD :-(
>
> Weil?

Früher wurde das Teil schlichtweg nicht erkannt. Ich wollte es
demonstrieren, stellte aber fest, dass ich es mit FreeBSD 8.2 jetzt
doch ansprechen kann, allerdings nicht auf der richtigen Art. Als
Beispiel zuerst ein Adapter, der es doch schafft, doch keine
SDHC-Karten erkennen kann (nur SD):

  Dec 31 14:27:09 dereel root: Unknown USB device: vendor 0x058f product 0x9330 bus uhub7
  Dec 31 14:27:09 dereel kernel: ugen5.5: <Alcor Micro> at usbus5
  Dec 31 14:27:09 dereel kernel: umass1: <Alcor Micro Mass Storage Device, class 0/0, rev 1.10/1.00, addr 5> on usbus5
  Dec 31 14:27:09 dereel kernel: umass1: SCSI over Bulk-Only; quirks = 0x0000
  Dec 31 14:27:09 dereel kernel: umass1: Get Max Lun not supported (USB_ERR_STALLED)
  Dec 31 14:27:10 dereel kernel: umass1:6:1:-1: Attached to scbus6
  Dec 31 14:27:11 dereel kernel: (probe0:umass-sim1:1:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
  Dec 31 14:27:11 dereel kernel: (probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error
  Dec 31 14:27:11 dereel kernel: (probe0:umass-sim1:1:0:0): SCSI status: Check Condition
  Dec 31 14:27:11 dereel kernel: (probe0:umass-sim1:1:0:0): SCSI sense: UNIT ATTENTION asc:28,0 (Not ready to ready change, medium may have changed)
  Dec 31 14:27:11 dereel kernel: da1 at umass-sim1 bus 1 scbus6 target 0 lun 0
  Dec 31 14:27:11 dereel kernel: da1: <Generic USB SD Reader 2.00> Removable Direct Access SCSI-0 device
  Dec 31 14:27:11 dereel kernel: da1: 1.000MB/s transfers
  Dec 31 14:27:11 dereel kernel: da1: 1938MB (3970048 512 byte sectors: 255H 63S/T 247C)
  Dec 31 14:27:11 dereel kernel: GEOM: da1: partition 1 does not start on a track boundary.
  Dec 31 14:27:11 dereel kernel: GEOM: da1: partition 1 does not end on a track boundary.

Danach habe ich die Devices:

  crw-r----- 1 root operator 0, 160 Dec 31 14:27 /dev/da1
  crw-r----- 1 root operator 0, 162 Dec 31 14:27 /dev/da1s1

/dev/da1s1 ist das FAT32-Dateisystem. Deswegen da1, weil ich schon
ein da0 angeschlossen habe.

Wenn ich jetzt dieselbe (SD-)Karte in den anderen Leser tue und dann
einstecke, bekomme ich:

  Dec 31 14:18:00 dereel kernel: ugen5.5: <Myson Century, Inc.> at usbus5
  Dec 31 14:18:00 dereel kernel: umass1: <Mass Storage Class> on usbus5
  Dec 31 14:18:00 dereel kernel: umass1: SCSI over Bulk-Only; quirks = 0x4000
  Dec 31 14:18:00 dereel root: Unknown USB device: vendor 0x04cf product 0x9920 bus uhub7
  Dec 31 14:18:01 dereel kernel: umass1:6:1:-1: Attached to scbus6
  Dec 31 14:18:02 dereel kernel: (probe0:umass-sim1:1:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0
  Dec 31 14:18:02 dereel kernel: (probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error
  Dec 31 14:18:02 dereel kernel: (probe0:umass-sim1:1:0:0): SCSI status: Check Condition
  Dec 31 14:18:02 dereel kernel: (probe0:umass-sim1:1:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present)
  Dec 31 14:18:02 dereel kernel: da1 at umass-sim1 bus 1 scbus6 target 0 lun 0
  Dec 31 14:18:02 dereel kernel: da1: <Myson CS8819A3-116 0 1.01> Removable Direct Access SCSI-0 device
  Dec 31 14:18:02 dereel kernel: da1: 40.000MB/s transfers
  Dec 31 14:18:02 dereel kernel: da1: Attempt to query device size failed: NOT READY, Medium not present
  Dec 31 14:18:02 dereel kernel: (probe0:umass-sim1:1:0:1): TEST UNIT READY. CDB: 0 20 0 0 0 0
  Dec 31 14:18:02 dereel kernel: (probe0:umass-sim1:1:0:1): CAM status: SCSI Status Error
  Dec 31 14:18:02 dereel kernel: (probe0:umass-sim1:1:0:1): SCSI status: Check Condition
  Dec 31 14:18:02 dereel kernel: (probe0:umass-sim1:1:0:1): SCSI sense: NOT READY asc:3a,0 (Medium not present)
  Dec 31 14:18:02 dereel kernel: da2 at umass-sim1 bus 1 scbus6 target 0 lun 1
  Dec 31 14:18:02 dereel kernel: da2: <Myson CS8819A3-116 1 1.01> Removable Direct Access SCSI-0 device
  Dec 31 14:18:02 dereel kernel: da2: 40.000MB/s transfers
  Dec 31 14:18:02 dereel kernel: da2: Attempt to query device size failed: NOT READY, Medium not present
  Dec 31 14:18:02 dereel kernel: da3 at umass-sim1 bus 1 scbus6 target 0 lun 2
  Dec 31 14:18:02 dereel kernel: da3: <Myson CS8819A3-116 2 1.01> Removable Direct Access SCSI-0 device
  Dec 31 14:18:02 dereel kernel: da3: 40.000MB/s transfers
  Dec 31 14:18:02 dereel kernel: da3: 1938MB (3970048 512 byte sectors: 255H 63S/T 247C)
  Dec 31 14:18:03 dereel kernel: (probe0:umass-sim1:1:0:3): TEST UNIT READY. CDB: 0 60 0 0 0 0
  Dec 31 14:18:03 dereel kernel: (probe0:umass-sim1:1:0:3): CAM status: SCSI Status Error
  Dec 31 14:18:03 dereel kernel: (probe0:umass-sim1:1:0:3): SCSI status: Check Condition
  Dec 31 14:18:03 dereel kernel: (probe0:umass-sim1:1:0:3): SCSI sense: NOT READY asc:3a,0 (Medium not present)
  Dec 31 14:18:03 dereel kernel: da4 at umass-sim1 bus 1 scbus6 target 0 lun 3
  Dec 31 14:18:03 dereel kernel: da4: <Myson CS8819A3-116 3 1.01> Removable Direct Access SCSI-0 device
  Dec 31 14:18:03 dereel kernel: da4: 40.000MB/s transfers
  Dec 31 14:18:03 dereel kernel: da4: Attempt to query device size failed: NOT READY, Medium not present
  Dec 31 14:18:03 dereel kernel: GEOM: da3: partition 1 does not start on a track boundary.
  Dec 31 14:18:03 dereel kernel: GEOM: da3: partition 1 does not end on a track boundary.
  Dec 31 14:19:16 cvr2 logger: Set to wakeup at 1325314380

Jetzt habe ich die Devices:

  crw-r----- 1 root operator 0, 162 Dec 31 16:04 /dev/da1
  crw-r----- 1 root operator 0, 164 Dec 31 16:05 /dev/da2
  crw-r----- 1 root operator 0, 168 Dec 31 16:05 /dev/da3
  crw-r----- 1 root operator 0, 177 Dec 31 16:05 /dev/da3s1
  crw-r----- 1 root operator 0, 178 Dec 31 16:05 /dev/da4

Es stellt sich heraus, dass /dev/da3s1a das FAT32-Dateisystem ist.
Allerdings kann ich es mit mtools nicht ansprechen, weil meine
mtools-Konfiguration nur da0 und da1 berücksichtigt.

Ich gehe davon aus, dass das Teil intern mehrere Interfaces anbietet
und diese Zuteilung die Folge davon ist. Ich habe nicht geprüft, ob
mehr als ein Interface gleichzeitig anzusprechen ist. Eine
Mikro-SD-Karte erscheint ebenfalls als /dev/da3s1, eine CF-Karte als
/dev/da2s1. SIM- und MemorySticks passen hinein, werden jedoch nicht
erkannt. Andere Karten habe ich nicht.

>>> Einen solchen "Kombi-Leser" würde ich Dir hier empfehlen, damit
>>> wären alle Medienformatprobleme vom Tisch - so der Leser anständig
>>> unter FreeBSD arbeitet.
>>
>> Eben. Leider sieht man dem Leser nicht an, ob es kompatibel ist. Da
>> hatte der Heino weniger Probleme, die (Nicht)-Kompatibilität zu
>> bestätigen.
>
> Heißt das, das so ein Teil ben nicht einfac nur eun USB-Massenspeicher
> ist?

Ja. Das Teil hat Sockel für mehrere Kartenarten und möglicherweise
andere Besonderheiten, sogenannte Quirks. Das muss das System erst
erkennen, was es unter anderem über Vendor- und Produkt-ID macht:

  Dec 31 14:18:00 dereel root: Unknown USB device: vendor 0x04cf product 0x9920 bus uhub7

Wenn dann besondere Quirks bestehen (was hier anzunehmen ist), muss
der Kern davon informiert werden. Irgenwann mache ich mich an die
Arbeit. Vielleicht.

Was habt ihr dann für Leser?

Greg

--
When replying to this message, please copy the original recipients.
If you don't, I may ignore the reply or reply to the original recipients.
For more information, see http://www.lemis.com/questions.html
Sent from my desktop computer
Finger grog(at)FreeBSD.org for PGP public key.
See complete headers for address and phone numbers.
This message is digitally signed.  If your Microsoft MUA reports
problems, please read http://tinyurl.com/broken-mua

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 31 Dec 2011 - 07:59:03 CET

search this site