Einbindung von USB-Geräten: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K (dbus ist als Abhängigkeit von systemd installiert und gestartet (Kompletten Abschnitt entfernt))
 
(29 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Arbeite als "root"!
{{Artikelstil}}
{{veraltet}}


Installiere (falls im System noch fehlend) "Hal" und "Dbus".
Bei einem frisch aufgesetzten Arch-Linux-System kann es vorkommen, dass sich USB-Geräte nicht verwenden lassen. D-Bus ist ein System, mit dem verschiedene Prozesse untereinander kommunizieren können und kümmert sich um das Mounten von Geräten. So kann sich der Dateimanager beispielsweise mit der Hardwareverwaltung (in diesem Fall D-Bus selbst) austauschen, welche Datenträger aktuell verfügbar sind.


root@myhost # pacman -S hal dbus
== Einbinden eines USB-Sticks unter grafischen Benutzerumgebungen ==


Sollen USB-Sticks nur unter grafischen Benutzerumgebungen eingebunden werden, werden folgende Schritte/Pakete benötigt:


Trage beide mit einem Editor Deiner Wahl in die Liste der beim Booten startenden Dämonen in der Datei /etc/rc.conf ein. (Es reicht "Hal" einzutragen, da er von "Dbus" abhängt und ihn mitstartet)
=== Unter Xfce ===
Wenn der eingesteckte USB-Stick z.B. als Icon auf dem Desktop erscheinen soll, muss folgendes installiert sein:
gvfs (evtl. auch gvfs-afc), thunar-volman und udisks.


Starte Dein System neu. "Hal" und "Dbus" sollten jetzt beim Booten geladen werden.
pacman -S gvfs thunar-volman udisks


Willst Du nicht extra neu Booten, kannst Du die Dämonen auch manuell starten. (Es reicht "Hal" zu starten, da er von "Dbus" abhängt und ihn mitstartet) 
Nun werden externe Datenträger (USB-Sticks, Festplatten etc.) automatisch beim Einstecken gemountet und als Icon angezeigt.


root@myhost # /etc/rc.d/hal start
== Hinweis zu NTFS ==


Sollte man beim Einbinden von NTFS-Datenträgern kein Schreibrecht auf diesen haben, hilft möglicherweise eine Installation des Pakets "ntfs-3g", welches einen lese- & schreibfähigen Treiber für NTFS enthält.


Lass Dir die Gerätedateien in /dev anzeigen.


root@myhost # ls /dev/|less
== Einbinden von USB-Sticks unabhängig von einer grafischen Benutzeroberfläche - Manuelles Mounten ==
 
Steck den USB-Stick ein.
 
Lass Dir wieder die Gerätedateien anzeigen.


root@myhost # ls /dev/|less
Dies stellt eine Alternative ohne das D-Bus-System bereit. Bei der Verwendung grafischer Benutzerumgebungen ist die Variante oben mittels D-Bus vorzuziehen.


Such im Bereich der Geräte /dev/sd nach einem neu hinzugekommenen Eintrag.
Zunächst sollte man sich alle Gerätedateien mittels


Der Stick wird vielleicht als /dev/sda1 oder /dev/sdb1 oder ähnliches angezeigt. Damit ein bestimmter Stick immer den gleichen Device Namen erhält kann man eine udev Regel erstellen. (siehe unten)
ls /dev/


Alternativ kannst Du auch "Udevmonitor" starten und dann den Stick einstecken, um den Geräte Namen (sdxx) herauszufinden.
anzeigen lassen. Dies sind alle Geräte, die in irgendeiner Weise verfügbar sind. Man sollte hierbei insbesondere auf Geräte namens "sd**", z.B. "sda1", "sda2", sdb1" etc. achten. Ein USB-Stick wird meistens in diesem Namensmuster eingebunden werden.


root@myhost # udevmonitor
Nun steckt man den USB-Stick ein und lässt sich wiederum alle Gerätedateien anzeigen. Es sollte ein Eintrag hinzugekommen sein, hinter dem sich der USB-Stick verbirgt. Alternativ kann man auch mittels


udevadm monitor


Füge der Datei /etc/fstab folgende Zeile hinzu:
über Events wie das einstecken eines USB-Sticks informiert werden. Steckt man nach diesem Befehl einen USB-Stick an, sollte sich in der letzen Zeile der Ausgabe ein Hinweis darauf finden, unter welchem Namen der Stick eingebunden wurde.


/dev/sda1(oder ähnlich) /mnt/usb auto noauto,rw,users,umask=0000 0 0
Füge der Datei <code>/etc/[[fstab]]</code> folgende Zeile hinzu (ohne die Einträge in eckigen Klammern):


Durch den Schalter "users" kann jeder Nutzer den Stick ein- oder aushängen.
/dev/sda1[oder ähnlich, wie oben ermittelt] /mnt/usb[oder wo auch immer der Stick erscheinen soll] auto rw,users,umask=0000 0 0


Wenn du nur vfat formatierte Sticks hast, schreibe "vfat" statt "auto" als Dateisystem, das funktioniert manchmal zuverlässiger.
Durch den Schalter "users" kann z.B. jeder Nutzer den Stick ein- oder aushängen. Für Details bezüglich der fstab-Datei sei die entsprechende, verlinkte Wikiseite empfohlen.


Hast du Dateien oder Verzeichnisse mit Umlauten auf dem Stick und dein System ist auf utf8 eingestellt, füge zwischen "users," und "umask" noch "utf8," ein.
Bei im Format vfat formatierten Sticks funktioniert "vfat" statt "auto" als Dateisystem manchmal zuverlässiger. Dies ist allerdings nur anzuraten, wenn man nur Sticks im vfat-Format besitzt.


Wenn der USB-Stick jedoch automatisch mittels HAL gemountet werden soll,
Befinden sich auf dem Stick Dateien oder Verzeichnisse mit Umlauten und ist das einbindende System auf UTF8 eingestellt, sollte in den Block mit "users", "umask" etc. noch "utf8" kommagetrennt hinzugefügt werden.
entfällt der Eintrag in /etc/fstab komplett.


Ansonsten:


lege das Verzeichnis /mnt/usb an.
Nun muss das Verzeichnis, in dem der Stick erscheinen soll, wie in der fstab-Datei spezifiziert angelegt werden, bevor hier ein Gerät eingebunden werden kann. Dies geht am einfachsten mittels


  root@myhost # mkdir /mnt/usb
  sudo mkdir /mnt/usb


Der Stick sollte sich nun manuell ein- und aushängen lassen.
Der Stick sollte sich nun manuell ein- und aushängen lassen mittels


  user@myhost # mount /mnt/usb
  mount /mnt/usb
bzw.
bzw.
  user@myhost # umount /mnt/usb
  umount /mnt/usb
 
 
==Udev Regel erstellen==
Damit ein bestimmter USB-Stick (oder auch eine Festplatte) immer den gleichen Device Namen zugewiesen bekommt, kann man sich eine Udev Regel erstellen.
 
Zuerst muss man die Sereinnummer des Sticks herausfinden. Dazu geht man folgendermaßen vor:


# ''udevmonitor'' starten
==Udev-Regel erstellen==
# den Stick einstöpseln, und sich das Device merken (z.B. /dev/sdc)
Damit ein bestimmter USB-Stick (oder auch eine Festplatte) immer den gleichen Device-Namen zugewiesen bekommt, kann man sich eine Udev Regel erstellen.


Zuerst muss man die Sereinnummer des Sticks herausfinden. Dazu ermittelt man wie unter "Einbinden von USB-Sticks unabhängig von einer grafischen Benutzeroberfläche" ausgeführt, die Gerätedatei (z.B. <code>/dev/sdc</code>).


Jetzt kann man sich mit Hilfe von ''udevinfo'' und ''grep'' die Serienenummer anzeigenlassen.  
Jetzt kann man sich mit Hilfe von ''udevinfo'' und ''grep'' die Serienenummer anzeigenlassen.  
  udevinfo -a -p `udevinfo -q path -n /dev/sdc` | grep ATTRS{serial}
  udevadm info -a -p `udevadm info -q path -n /dev/sdc` | grep ATTRS{serial}


Die Ausgabe sollte etwa so aussehen:
Die Ausgabe sollte etwa so aussehen:
Zeile 82: Zeile 74:


Um herauszufinden welche Nummer die des Sticks ist führt man den Befehl nochmal aus, ersetzt aber ''ATTRS{serial}'' durch ''ATTRS{product}''.
Um herauszufinden welche Nummer die des Sticks ist führt man den Befehl nochmal aus, ersetzt aber ''ATTRS{serial}'' durch ''ATTRS{product}''.
  udevinfo -a -p `udevinfo -q path -n /dev/sdc` | grep ATTRS{product}
  udevadm info -a -p `udevadm info -q path -n /dev/sdc` | grep ATTRS{product}
Jetzt erhält man eine Ausgabe die in etwa so aussieht:
Jetzt erhält man eine Ausgabe die in etwa so aussieht:
  ATTRS{product}=="USB Mass Storage Device"
  ATTRS{product}=="USB Mass Storage Device"
Zeile 88: Zeile 80:
Die gesuchte Nummer des Sticks ist also die erste.
Die gesuchte Nummer des Sticks ist also die erste.


Jetzt kann man sich eine eigene udev Regel erstellen. Dazu legt man am besten eine neue Datei unter ''/etc/udev/rules.d/'' an.
Jetzt kann man sich eine eigene udev-Regel erstellen. Dazu legt man am besten eine neue Datei unter ''/etc/udev/rules.d/'' an.
(Hinweis: udev arbeitet die Dateien in alphabetischer Reihenfolge ab). Die Datei könnte man z.B. 50-myusb.rules nennen.
(Hinweis: udev arbeitet die Dateien in alphabetischer Reihenfolge ab). Die Datei könnte man z.B. 50-myusb.rules nennen.
In die Datei trägt man nun folgendes ein.
In die Datei trägt man nun folgendes ein:
  SUBSYSTEMS=="usb", ATTRS{serial}=="14AB0000000096", KERNEL=="sd*", SYMLINK+="usbstick%n"
  SUBSYSTEMS=="usb", ATTRS{serial}=="14AB0000000096", KERNEL=="sd*", SYMLINK+="usbstick%n"


Jetzt noch die udev Regeln neu laden.
Jetzt müssen die udev-Regeln neu geladen werden:
  udevcontrol reload_rules
  udevadm control --reload-rules
   
   
Udev sollte jetzt beim einstöpseln (vorausgesetzt der Stick enthält eine Partition) zwei Symlinks, die auf das "reale" Device zeigen, in /dev erstellen.
Udev sollte jetzt beim einstöpseln (vorausgesetzt der Stick enthält eine Partition) zwei [[ln|Symlinks]], die auf das "reale" Device zeigen, in /dev erstellen.
''usbstick'' für den Stick ansich und ''usbstick1'' für die (erste) Partition. Ab jetzt kann über diese Links auf den Stick zugegriffen werden.  
''usbstick'' für den Stick ansich und ''usbstick1'' für die (erste) Partition. Ab jetzt kann über diese Links auf den Stick zugegriffen werden.  
Enthält der Stick mehr als eine Partition wird für jede ein eigener Link mit der Partitionsnummer angelegt. Wie bei einer Festplatte auch.
Enthält der Stick mehr als eine Partition wird für jede ein eigener Link mit der Partitionsnummer angelegt. Wie bei einer Festplatte auch.
Zeile 104: Zeile 96:
  /dev/usbstick1
  /dev/usbstick1
  /dev/usbstick2
  /dev/usbstick2
==Weblinks==
* [https://de.wikipedia.org/wiki/D-Bus D-Bus in der Wikipedia]




[[Kategorie: Hardware]]
[[Kategorie: Hardware]]
[[Kategorie: Konfiguration]]

Aktuelle Version vom 1. Mai 2013, 08:46 Uhr

Überarbeitung.png Dieser Artikel oder Artikelabschnitt bedarf einer stilistischen Überarbeitung laut Empfehlungen in Artikelstil.


20040916-achtung.jpg Dieser Artikel wurde als veraltet markiert, und sollte kontrolliert, und gegebenfalls korrigiert bzw. aktualisiert werden.


Bei einem frisch aufgesetzten Arch-Linux-System kann es vorkommen, dass sich USB-Geräte nicht verwenden lassen. D-Bus ist ein System, mit dem verschiedene Prozesse untereinander kommunizieren können und kümmert sich um das Mounten von Geräten. So kann sich der Dateimanager beispielsweise mit der Hardwareverwaltung (in diesem Fall D-Bus selbst) austauschen, welche Datenträger aktuell verfügbar sind.

Einbinden eines USB-Sticks unter grafischen Benutzerumgebungen

Sollen USB-Sticks nur unter grafischen Benutzerumgebungen eingebunden werden, werden folgende Schritte/Pakete benötigt:

Unter Xfce

Wenn der eingesteckte USB-Stick z.B. als Icon auf dem Desktop erscheinen soll, muss folgendes installiert sein: gvfs (evtl. auch gvfs-afc), thunar-volman und udisks.

pacman -S gvfs thunar-volman udisks

Nun werden externe Datenträger (USB-Sticks, Festplatten etc.) automatisch beim Einstecken gemountet und als Icon angezeigt.

Hinweis zu NTFS

Sollte man beim Einbinden von NTFS-Datenträgern kein Schreibrecht auf diesen haben, hilft möglicherweise eine Installation des Pakets "ntfs-3g", welches einen lese- & schreibfähigen Treiber für NTFS enthält.


Einbinden von USB-Sticks unabhängig von einer grafischen Benutzeroberfläche - Manuelles Mounten

Dies stellt eine Alternative ohne das D-Bus-System bereit. Bei der Verwendung grafischer Benutzerumgebungen ist die Variante oben mittels D-Bus vorzuziehen.

Zunächst sollte man sich alle Gerätedateien mittels

ls /dev/

anzeigen lassen. Dies sind alle Geräte, die in irgendeiner Weise verfügbar sind. Man sollte hierbei insbesondere auf Geräte namens "sd**", z.B. "sda1", "sda2", sdb1" etc. achten. Ein USB-Stick wird meistens in diesem Namensmuster eingebunden werden.

Nun steckt man den USB-Stick ein und lässt sich wiederum alle Gerätedateien anzeigen. Es sollte ein Eintrag hinzugekommen sein, hinter dem sich der USB-Stick verbirgt. Alternativ kann man auch mittels

udevadm monitor

über Events wie das einstecken eines USB-Sticks informiert werden. Steckt man nach diesem Befehl einen USB-Stick an, sollte sich in der letzen Zeile der Ausgabe ein Hinweis darauf finden, unter welchem Namen der Stick eingebunden wurde.

Füge der Datei /etc/fstab folgende Zeile hinzu (ohne die Einträge in eckigen Klammern):

/dev/sda1[oder ähnlich, wie oben ermittelt] /mnt/usb[oder wo auch immer der Stick erscheinen soll] auto rw,users,umask=0000 0 0

Durch den Schalter "users" kann z.B. jeder Nutzer den Stick ein- oder aushängen. Für Details bezüglich der fstab-Datei sei die entsprechende, verlinkte Wikiseite empfohlen.

Bei im Format vfat formatierten Sticks funktioniert "vfat" statt "auto" als Dateisystem manchmal zuverlässiger. Dies ist allerdings nur anzuraten, wenn man nur Sticks im vfat-Format besitzt.

Befinden sich auf dem Stick Dateien oder Verzeichnisse mit Umlauten und ist das einbindende System auf UTF8 eingestellt, sollte in den Block mit "users", "umask" etc. noch "utf8" kommagetrennt hinzugefügt werden.


Nun muss das Verzeichnis, in dem der Stick erscheinen soll, wie in der fstab-Datei spezifiziert angelegt werden, bevor hier ein Gerät eingebunden werden kann. Dies geht am einfachsten mittels

sudo mkdir /mnt/usb


Der Stick sollte sich nun manuell ein- und aushängen lassen mittels

mount /mnt/usb

bzw.

umount /mnt/usb

Udev-Regel erstellen

Damit ein bestimmter USB-Stick (oder auch eine Festplatte) immer den gleichen Device-Namen zugewiesen bekommt, kann man sich eine Udev Regel erstellen.

Zuerst muss man die Sereinnummer des Sticks herausfinden. Dazu ermittelt man wie unter "Einbinden von USB-Sticks unabhängig von einer grafischen Benutzeroberfläche" ausgeführt, die Gerätedatei (z.B. /dev/sdc).

Jetzt kann man sich mit Hilfe von udevinfo und grep die Serienenummer anzeigenlassen.

udevadm info -a -p `udevadm info -q path -n /dev/sdc` | grep ATTRS{serial}

Die Ausgabe sollte etwa so aussehen:

ATTRS{serial}=="14AB0000000096"
ATTRS{serial}=="0000:00:02.2"

Um herauszufinden welche Nummer die des Sticks ist führt man den Befehl nochmal aus, ersetzt aber ATTRS{serial} durch ATTRS{product}.

udevadm info -a -p `udevadm info -q path -n /dev/sdc` | grep ATTRS{product}

Jetzt erhält man eine Ausgabe die in etwa so aussieht:

ATTRS{product}=="USB Mass Storage Device"
ATTRS{product}=="EHCI Host Controller"

Die gesuchte Nummer des Sticks ist also die erste.

Jetzt kann man sich eine eigene udev-Regel erstellen. Dazu legt man am besten eine neue Datei unter /etc/udev/rules.d/ an. (Hinweis: udev arbeitet die Dateien in alphabetischer Reihenfolge ab). Die Datei könnte man z.B. 50-myusb.rules nennen. In die Datei trägt man nun folgendes ein:

SUBSYSTEMS=="usb", ATTRS{serial}=="14AB0000000096", KERNEL=="sd*", SYMLINK+="usbstick%n"

Jetzt müssen die udev-Regeln neu geladen werden:

udevadm control --reload-rules

Udev sollte jetzt beim einstöpseln (vorausgesetzt der Stick enthält eine Partition) zwei Symlinks, die auf das "reale" Device zeigen, in /dev erstellen. usbstick für den Stick ansich und usbstick1 für die (erste) Partition. Ab jetzt kann über diese Links auf den Stick zugegriffen werden. Enthält der Stick mehr als eine Partition wird für jede ein eigener Link mit der Partitionsnummer angelegt. Wie bei einer Festplatte auch.

zum Beispiel

/dev/usbstick       
/dev/usbstick1
/dev/usbstick2

Weblinks