18.5. USB Speichermedien

Beigetragen von Marc Fonvieille.

Der Universal Serial Bus (USB) wird heutzutage von vielen externen Speichern benutzt: Festplatten, USB-Thumbdrives oder CD-Brennern, die alle von FreeBSD unterstützt werden.

18.5.1. USB-Konfiguration

USB-Massenspeicher werden vom Treiber umass(4) betrieben. Wenn Sie den GENERIC-Kernel benutzen, brauchen Sie keine Anpassungen vorzunehmen. Benutzen Sie einen angepassten Kernel, müssen die nachstehenden Zeilen in der Kernelkonfigurationsdatei enthalten sein:

device scbus
device da
device pass
device uhci
device ohci
device usb
device umass

Der Treiber umass(4) greift über das SCSI-Subsystem auf die USB-Geräte zu. Ihre USB-Geräte werden daher vom System als SCSI-Geräte erkannt. Abhängig vom Chipsatz Ihrer Systemplatine benötigen Sie in der Kernelkonfiguration entweder die Option device uhci oder die Option device ohci. Die Kernelkonfiguration kann allerdings auch beide Optionen enthalten. Vergessen Sie bitte nicht, einen neuen Kernel zu bauen und zu installieren, wenn Sie die Kernelkonfiguration verändert haben.

Anmerkung: Wenn es sich bei Ihrem USB-Gerät um einen CD-R- oder DVD-Brenner handelt, müssen Sie den Treiber cd(4) für SCSI-CD-ROMs in die Kernelkonfiguration aufnehmen:

device cd

Da der Brenner als SCSI-Laufwerk erkannt wird, sollten Sie den Treiber atapicam(4) nicht benutzen.

USB 2.0-Controller werden von FreeBSD unterstützt, wenn Sie die folgende Zeile in Ihre Kernelkonfigurationsdatei aufnehmen:

device ehci

Die Treiber uhci(4) und ohci(4) werden immer noch für USB 1.X benötigt.

18.5.2. Die USB-Konfiguration testen

Sie können das USB-Gerät nun testen. Schließen Sie das Gerät an und untersuchen Sie die Systemmeldungen (dmesg(8)), Sie sehen Ausgaben wie die folgende:

umass0: USB Solid state disk, rev 1.10/1.00, addr 2
GEOM: create disk da0 dp=0xc2d74850
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device
da0: 1.000MB/s transfers
da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)

Die Ausgaben, wie das erkannte Gerät oder der Gerätename (da0) hängen natürlich von Ihrer Konfiguration ab.

Da ein USB-Gerät als SCSI-Gerät erkannt wird, können Sie USB-Massenspeicher mit dem Befehl camcontrol anzeigen:

# camcontrol devlist
<Generic Traveling Disk 1.11>      at scbus0 target 0 lun 0 (da0,pass0)

Wenn auf dem Laufwerk ein Dateisystem eingerichtet ist, sollten Sie das Dateisystem einhängen können. Abschnitt 18.3 beschreibt, wie Sie USB-Laufwerke formatieren und Partitionen einrichten.

Damit auch normale Anwender (ohne root-Rechte) USB-Laufwerke einhängen können, müssen Sie Ihr System erst entsprechend konfigurieren. Als erstes müssen Sie sicherstellen, dass diese Anwender auf die beim Einhängen eines USB-Laufwerks dynamisch erzeugten Gerätedateien zugreifen dürfen. Dazu können Sie beispielsweise mit pw(8) alle potentiellen Benutzer dieser Gerätedateien in die Gruppe operator aufnehmen. Außerdem muss sichergestellt werden, dass Mitglieder der Gruppe operator Schreib- und Lesezugriff auf diese Gerätedateien haben. Dazu fügen Sie die folgenden Zeilen in die Konfigurationsdatei /etc/devfs.rules ein:

[localrules=1]
add path 'da*' mode 0660 group operator

Anmerkung: Verfügt Ihr System auch über SCSI-Laufwerke, gibt es eine Besonderheit. Haben Sie beispielsweise die SCSI-Laufwerke da0 bis da2 installiert, so sieht die zweite Zeile wie folgt aus:

add path 'da[3-9]*' mode 0660 group operator

Dadurch werden die bereits vorhandenen SCSI-Laufwerke nicht in die Gruppe operator aufgenommen.

Vergessen Sie nicht, die devfs.rules(5)-Regeln in der Datei /etc/rc.conf zu aktivieren:

devfs_system_ruleset="localrules"

Als nächstes müssen Sie Ihre Kernelkonfiguration anpassen, damit auch normale Benutzer Dateisysteme mounten dürfen. Dazu fügen Sie am besten folgende Zeile in die Konfigurationsdatei /etc/sysctl.conf ein:

vfs.usermount=1

Damit diese Einstellung wirksam wird, müssen Sie Ihr System neu starten. Alternativ können Sie diese Variable auch mit sysctl(8) setzen.

Zuletzt müssen Sie noch ein Verzeichnis anlegen, in das das USB-Laufwerk eingehängt werden soll. Dieses Verzeichnis muss dem Benutzer gehören, der das USB-Laufwerk in den Verzeichnisbaum einhängen will. Dazu legen Sie als root ein Unterverzeichnis /mnt/$USER an (wobei Sie $USER durch den Login des jeweiligen Benutzers ersetzen):

# mkdir /mnt/$USER
# chown $USER:$USER /mnt/$USER

Wenn Sie nun beispielsweise einen USB-Stick anschließen, wird automatisch die Gerätedatei /dev/da0s1 erzeugt. Da derartige Geräte in der Regel mit dem FAT-Dateisystem formatiert sind, können Sie sie beispielsweise mit dem folgenden Befehl in den Verzeichnisbaum einhängen:

% mount-t msdosfs -m 644 -M 755 /dev/da0s1 /mnt/$USER

Wenn Sie das Gerät entfernen (das Dateisystem müssen Sie vorher abhängen), sehen Sie in den Systemmeldungen Einträge wie die folgenden:

umass0: at uhub0 port 1 (addr 2) disconnected
(da0:umass-sim0:0:0:0): lost device
(da0:umass-sim0:0:0:0): removing device entry
GEOM: destroy disk da0 dp=0xc2d74850
umass0: detached

18.5.3. Weiteres zu USB

Neben den Abschnitten Hinzufügen von Laufwerken und Anhängen und Abhängen von Dateisystemen lesen Sie bitte die Hilfeseiten umass(4), camcontrol(8) und usbdevs(8).

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.