Der Universal Serial Bus (USB) wird von vielen externen Speichern benutzt: Festplatten, USB-Thumbdrives sowie von CD- und DVD-Brennern. FreeBSD bietet Unterstützung für Geräte mit USB 1.x, 2.0 und 3.0.
Die Unterstützung fürUSB 3.0 ist mit einiger Hardware, einschließlich Haswell (Lynx Point) Chipsätzen, nicht kompatibel. Wenn FreeBSD beim Booten mit dem Fehler failed with error 19 abbricht, müssen Sie xHCI/USB3 im BIOS deaktivieren.
Unterstützung für USB-Massenspeicher ist
im GENERIC
-Kernel enthalten. Für einen
angepassten Kernel müssen die nachstehenden Zeilen in der
Kernelkonfigurationsdatei enthalten sein:
device scbus # SCSI bus (required for ATA/SCSI) device da # Direct Access (disks) device pass # Passthrough device (direct ATA/SCSI access) device uhci # provides USB 1.x support device ohci # provides USB 1.x support device ehci # provides USB 2.0 support device xhci # provides USB 3.0 support device usb # USB Bus (required) device umass # Disks/Mass storage - Requires scbus and da device cd # needed for CD and DVD burners
FreeBSD benutzt den umass(4)-Treiber, der das
SCSI-Subsystem verwendet um auf
USB-Geräte zuzugreifen. Da alle
USB-Geräte vom System als
SCSI-Geräte erkannt werden, dürfen Sie
nicht device atapicam
in die Kernelkonfigurationsdatei aufnehmen, wenn es sich bei
dem Gerät um einen CD- oder
DVD-Brenner handelt.
Der übrige Abschnitt beschreibt, wie Sie überprüfen können ob ein USB-Gerät von FreeBSD erkannt wird und wie Sie das Gerät so konfigurieren, dass es verwendet werden kann.
Um die USB-Konfiguration zu testen,
schließen Sie das USB-Gerät an.
Verwenden Sie dmesg
um zu überprüfen, ob
das Gerät in den Systemmeldungen erscheint. Dies sollte in
etwa so aussehen:
umass0: <STECH Simple Drive, class 0/0, rev 2.00/1.04, addr 3> on usbus0 umass0: SCSI over Bulk-Only; quirks = 0x0100 umass0:4:0:-1: Attached to scbus4 da0 at umass-sim0 bus 0 scbus4 target 0 lun 0 da0: <STECH Simple Drive 1.04> Fixed Direct Access SCSI-4 device da0: Serial Number WD-WXE508CAN263 da0: 40.000MB/s transfers da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C) da0: quirks=0x2<NO_6_BYTE>
Fabrikat, Gerätedatei (da0
),
Geschwindigkeit und Kapazität werden je nach Gerät
unterschiedlich sein.
Da ein USB-Gerät als
SCSI-Gerät erkannt wird, kann
camcontrol
benutzt werden, um die mit dem
System verbundenen USB-Massenspeicher
anzuzeigen:
#
camcontrol devlist
<STECH Simple Drive 1.04> at scbus4 target 0 lun 0 (pass3,da0)
Alternativ kann usbconfig
benutzt
werden, um die Geräte aufzulisten. Weitere Informationen zu
diesem Kommando finden Sie in usbconfig(8).
#
usbconfig
ugen0.3: <Simple Drive STECH> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)
Wenn das Gerät noch nicht formatiert ist, finden Sie in
Abschnitt 18.2, „Hinzufügen von Laufwerken“ Informationen, wie Sie
USB-Laufwerke formatieren und Partitionen
einrichten. Wenn das Laufwerk bereits ein Dateisystem
enthält, kann es von root
nach den Anweisungen in
Abschnitt 4.7, „Anhängen und Abhängen von Dateisystemen“ eingehängt werden.
Aus Sicherheitsgründen sollten Sie Benutzern, denen Sie
nicht vertrauen, das Einhängen (z.B. durch die unten
beschriebene Aktivierung von
vfs.usermount
) beliebiger Medien
verbieten. Die meisten Dateisysteme wurden nicht
entwickelt, um sich vor böswilligen Geräten zu
schützen.
Um auch normalen Anwendern das Einhängen des Laufwerks zu
gestatten, könnten Sie beispielsweise mit pw(8) alle
potentiellen Benutzer dieser Gerätedateien in die Gruppe
operator
aufnehmen.
Außerdem muss sichergestellt werden, dass operator
Schreib- und Lesezugriff auf diese Gerätedateien haben.
Hierfür werden die folgenden Zeilen in
/etc/devfs.rules
hinzugefügt:
[localrules=5] add path 'da*' mode 0660 group operator
Verfügt das System über interne SCSI-Laufwerke, so verändern Sie die zweite Zeile wie folgt:
add path 'da[3
-9]*' mode 0660 group operator
Dies wird die ersten drei
SCSI-Laufwerke (da0
bis da2
) davon ausschließen, in die
Gruppe operator
aufgenommen zu werden. Ersetzen Sie 3
durch die Anzahl der SCSI-Laufwerke.
Weitere Informationen zu dieser Datei finden Sie in
devfs.rules(5).
Aktivieren Sie nun die Regeln
in /etc/rc.conf
:
devfs_system_ruleset="localrules"
Als nächstes müssen Sie das System anweisen, auch
normalen Benutzern das mounten von Dateisystemen zu erlauben,
indem Sie die folgende Zeile in
/etc/sysctl.conf
hinzufügen:
vfs.usermount=1
Da diese Einstellung erst nach einem Neustart wirksam
wird, können Sie diese Variable mit sysctl
auch direkt setzen:
#
sysctl vfs.usermount=1
vfs.usermount: 0 -> 1
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/
an, wobei Sie username
username
durch den Login des jeweiligen Benutzers sowie
usergroup
durch die primäre
Gruppe des Benutzers ersetzen:
#
mkdir /mnt/
username
#
chown
username
:usergroup
/mnt/username
Wenn Sie nun beispielsweise einen
USB-Stick
anschließen, wird automatisch die Gerätedatei
/dev/da0s1
erzeugt. Ist das Gerät mit
einem FAT-Dateisystem formatiert, kann es
der Benutzer mit dem folgenden Befehl in den Verzeichnisbaum
einhängen:
%
mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/
username
Bevor das Gerät entfernt werden kann, muss es abgehängt werden:
#
umount /mnt/
username
Nach Entfernen des Geräts stehen in den Systemmeldungen Einträge, ähnlich der folgenden:
umass0: at uhub3, port 2, addr 3 (disconnected) da0 at umass-sim0 bus 0 scbus4 target 0 lun 0 da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached (da0:umass-sim0:0:0:0): Periph destroyed
autofs(5) unterstützt das automatische Einhängen von Wechselmedien beginnend mit FreeBSD 10.2-RELEASE.
Damit USB-Geräte automatisch
eingehängt werden, muss der Kommentar für folgende Zeile in
/etc/auto_master
entfernt werden:
/media -media -nosuid
Anschließend fügen Sie folgende Zeilen in
/etc/devd.conf
hinzu:
notify 100 { match "system" "GEOM"; match "subsystem" "DEV"; action "/usr/sbin/automount -c"; };
Falls autofs(5) und devd(8) bereits ausgeführt werden, müssen Sie die Konfiguration neu einlesen:
#
service automount reload
#
service devd restart
autofs(5) wird beim Booten automatisch gestartet,
wenn Sie folgende Zeile in /etc/rc.conf
hinzufügen:
autofs_enable="YES"
Damit autofs(5) funktioniert, muss devd(8) aktiviert sein, was aber in der Voreinstellung der Fall ist.
Starten Sie jetzt die Dienste:
#
service automount start
#
service automountd start
#
service autounmountd start
#
service devd start
Jedes Dateisystem, das automatisch eingehängt werden kann,
erscheint als ein Verzeichnis unterhalb von
media
. Das Verzeichnis wird nach dem
Dateisystemlabel benannt, bzw. nach dem Gerätenamen, falls
kein Label existiert.
Das Dateisystem wird transparent beim ersten Zugriff in den Verzeichnisbaum eingehängt und auch nach gewisser Zeit der Inaktivität wieder ausgehängt. Laufwerke können auch manuell ausgehängt werden:
#
automount -fu
Diese Methode wird in der Regel bei Speicherkarten und USB-Sticks verwendet. Sie funktioniert aber mit allen Blockgeräten, einschließlich optischen Laufwerken und iSCSI-LUNs.
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>.