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

Aus wiki.archlinux.de
("UdevRegel erstellen" hinzugefügt)
Zeile 40: Zeile 40:
  /dev/sda1(oder ähnlich) /mnt/usb auto noauto,rw,users,umask=0000 0 0
  /dev/sda1(oder ähnlich) /mnt/usb auto noauto,rw,users,umask=0000 0 0


Durch den Schalter "users" kann jeder Nutzer den SticK ein- oder aushängen.
Durch den Schalter "users" kann jeder Nutzer den Stick ein- oder aushängen.


Wenn du nur vfat formatierte Sticks hast, schreibe "vfat" statt "auto" als Dateisystem, das funktioniert manchmal zuverlässiger.
Wenn du nur vfat formatierte Sticks hast, schreibe "vfat" statt "auto" als Dateisystem, das funktioniert manchmal zuverlässiger.
Zeile 46: Zeile 46:
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.
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.


Lege das Verzeichnis /mnt/usb an.
Wenn der USB-Stick jedoch automatisch mittels HAL gemountet werden soll,
entfällt der Eintrag in /etc/fstab komplett.
 
Ansonsten:
 
lege das Verzeichnis /mnt/usb an.


  root@myhost # mkdir /mnt/usb
  root@myhost # mkdir /mnt/usb
Zeile 58: Zeile 63:
  user@myhost # umount /mnt/usb
  user@myhost # umount /mnt/usb


==Udev Regel erstellen==
==Udev Regel erstellen==

Version vom 29. Oktober 2008, 12:26 Uhr

Arbeite als "root"!

Installiere (falls im System noch fehlend) "Hal" und "Dbus".

root@myhost # pacman -S hal dbus


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)

Starte Dein System neu. "Hal" und "Dbus" sollten jetzt beim Booten geladen werden.

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)

root@myhost # /etc/rc.d/hal start


Lass Dir die Gerätedateien in /dev anzeigen.

root@myhost # ls /dev/|less


Steck den USB-Stick ein.

Lass Dir wieder die Gerätedateien anzeigen.

root@myhost # ls /dev/|less


Such im Bereich der Geräte /dev/sd nach einem neu hinzugekommenen Eintrag.

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)

Alternativ kannst Du auch "Udevmonitor" starten und dann den Stick einstecken, um den Geräte Namen (sdxx) herauszufinden.

root@myhost # udevmonitor


Füge der Datei /etc/fstab folgende Zeile hinzu:

/dev/sda1(oder ähnlich) /mnt/usb auto noauto,rw,users,umask=0000 0 0

Durch den Schalter "users" kann jeder Nutzer den Stick ein- oder aushängen.

Wenn du nur vfat formatierte Sticks hast, schreibe "vfat" statt "auto" als Dateisystem, das funktioniert manchmal zuverlässiger.

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.

Wenn der USB-Stick jedoch automatisch mittels HAL gemountet werden soll, entfällt der Eintrag in /etc/fstab komplett.

Ansonsten:

lege das Verzeichnis /mnt/usb an.

root@myhost # mkdir /mnt/usb


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

user@myhost # mount /mnt/usb

bzw.

user@myhost # 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:

  1. udevmonitor starten
  2. den Stick einstöpseln, und sich das Device merken (z.B. /dev/sdc)


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}

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}.

udevinfo -a -p `udevinfo -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 noch die udev Regeln neu laden.

udevcontrol 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