USB - FAQ openSUSE: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Einige Elemente Wikikonformer gestaltet)
Zeile 1: Zeile 1:
 
Autor: [http://www.linux-club.de/profile.php?mode=viewprofile&u=2013 misiu]
 
Autor: [http://www.linux-club.de/profile.php?mode=viewprofile&u=2013 misiu]
  
'''Allgemein:'''
+
 
 +
== Allgemein ==
 +
 
 
Viele USB-Geräte haben Anlaufprobleme. Bitte prüfen Sie in solchen Fällen folgendes:
 
Viele USB-Geräte haben Anlaufprobleme. Bitte prüfen Sie in solchen Fällen folgendes:
  
Zeile 32: Zeile 34:
 
"ACPI Disabled"
 
"ACPI Disabled"
 
und dann in Grub als Boot - Option
 
und dann in Grub als Boot - Option
Code:
+
 
"acpi=off noapic"
+
"acpi=off noapic"
  
 
einstellen (geht bei SuSE mit Yast)
 
einstellen (geht bei SuSE mit Yast)
Zeile 44: Zeile 46:
  
  
'''Hier erfolgt die Zusammenfassung, bei Problemen mit USB-Speichermedien die SuSE 10.0 und 9.3 betreffen.'''
+
 
 +
== Hier erfolgt die Zusammenfassung, bei Problemen mit USB-Speichermedien die SuSE 10.0 und 9.3 betreffen ==
 +
 
  
  
Zeile 57: Zeile 61:
 
* Linux-Magazin und anderen.
 
* Linux-Magazin und anderen.
  
'''Wie kann ich USB-Massenspeicher entfernen?'''
+
 
 +
== USB-Massenspeicher entfernen ==
 +
 
  
 
Im Normalfall kann das Speichergerät (Speicherstick, USB-Festplatte etc.)
 
Im Normalfall kann das Speichergerät (Speicherstick, USB-Festplatte etc.)
Zeile 67: Zeile 73:
 
eingesetzt werden um das USB-Medium zu entfernen. Der Befehl lautet:
 
eingesetzt werden um das USB-Medium zu entfernen. Der Befehl lautet:
  
'''Code:'''
 
 
  eject /media/usbdisk
 
  eject /media/usbdisk
  
Zeile 91: Zeile 96:
 
* 2. Den Befehl reinschreiben :
 
* 2. Den Befehl reinschreiben :
  
'''Code:'''
 
 
  eject /media/usbstick
 
  eject /media/usbstick
  
 
oder
 
oder
  
'''Code:'''
 
 
  eject /media/usbdisk
 
  eject /media/usbdisk
  
Zeile 105: Zeile 108:
 
Dazu die Shell / Textkonsole starten und ausführen:
 
Dazu die Shell / Textkonsole starten und ausführen:
  
'''Code:'''
 
 
  misiu@linux:~> sudo umount /dev/sdx1
 
  misiu@linux:~> sudo umount /dev/sdx1
  
Zeile 117: Zeile 119:
 
Sonst zum sicherem entfernen den Befehl:
 
Sonst zum sicherem entfernen den Befehl:
  
'''Code:'''
 
 
  sudo umount /media/usbstick
 
  sudo umount /media/usbstick
  
Zeile 125: Zeile 126:
 
(Textkonsole / Shell)
 
(Textkonsole / Shell)
  
'''Code:'''
 
 
  misiu@linux:~> man mount
 
  misiu@linux:~> man mount
 
  misiu@linux:~> man umount
 
  misiu@linux:~> man umount
Zeile 132: Zeile 132:
 
Optionen zu diesen Befehlen:
 
Optionen zu diesen Befehlen:
  
'''Code:'''
 
 
  mount --help
 
  mount --help
 
  umount --help
 
  umount --help
  
  
'''Bei Problemen mit USB-Stick( USB 2.0 ):'''
+
 
 +
== Bei Problemen mit USB-Stick( USB 2.0 ) ==
 +
 
  
 
Booten mit der Option:
 
Booten mit der Option:
  
'''Code:'''
 
 
  insmod=usb-storage
 
  insmod=usb-storage
  
 
danach :
 
danach :
  
'''Code:'''
 
 
  modprobe -r ehci-hcd
 
  modprobe -r ehci-hcd
 
( entfernen des USB 2.0 - Moduls )
 
( entfernen des USB 2.0 - Moduls )
  
'''Code:'''
 
 
  modprobe ehci-hcd
 
  modprobe ehci-hcd
 
( laden des USB 2.0 - Moduls )
 
( laden des USB 2.0 - Moduls )
Zeile 157: Zeile 155:
  
  
'''Wie finde ich die UUID/volume.uuid raus?'''
+
 
 +
== Wie finde ich die UUID/volume.uuid raus? ==
  
 
Da gibts folgende Möglichkeiten:
 
Da gibts folgende Möglichkeiten:
Zeile 184: Zeile 183:
 
Devices ID können mit:
 
Devices ID können mit:
  
'''Code:'''
 
 
  su
 
  su
 
  + Passwort
 
  + Passwort
Zeile 190: Zeile 188:
 
und
 
und
  
'''Code:'''
 
 
  lsusb
 
  lsusb
  
Zeile 197: Zeile 194:
 
Als welches Device USB-Geräte angesprochen werden kann mit dem Befehl:
 
Als welches Device USB-Geräte angesprochen werden kann mit dem Befehl:
  
'''Code:'''
 
 
  su
 
  su
 
  + Passwort
 
  + Passwort
 
und
 
und
  
'''Code:'''
 
 
  lsscsi
 
  lsscsi
  
Zeile 209: Zeile 204:
 
Hilfreich kann auch der Befehl:
 
Hilfreich kann auch der Befehl:
  
'''Code:'''
 
 
  dmesg | tail -n 10
 
  dmesg | tail -n 10
  
Zeile 221: Zeile 215:
 
Mit Befehl:
 
Mit Befehl:
  
'''Code:'''
 
 
  udevmonitor --env
 
  udevmonitor --env
  
Zeile 228: Zeile 221:
  
  
'''Was ist HAL (Hardware Abstraction Layer)?
+
 
'''
+
== Was ist HAL (Hardware Abstraction Layer)? ==
  
 
Ist eine Zwischenschicht im Betriebsystem, die die Zugriffe auf
 
Ist eine Zwischenschicht im Betriebsystem, die die Zugriffe auf
Zeile 240: Zeile 233:
  
  
'''Betrifft SuSE 9.3 und 10.0 mit HAL (Hardware Abstraction Layer)'''
+
 
 +
== Betrifft SuSE 9.3 und 10.0 mit HAL (Hardware Abstraction Layer) ==
  
 
Problem:
 
Problem:
Zeile 295: Zeile 289:
  
  
 +
== ab/bei(?) openSUSE 10.0 ==
  
'''SuSE 10:'''
+
Siehe Bugtracker: https://bugzilla.novell.com/show_bug.cgi?id=105871
 
 
Sehe Bugtracker: https://bugzilla.novell.com/show_bug.cgi?id=105871
 
 
(Als root ausführen!)
 
(Als root ausführen!)
 
Kopiere diese Zeilen in ein Texteditor und speichere , als "nosync.fdi" in Verzeichnis:
 
Kopiere diese Zeilen in ein Texteditor und speichere , als "nosync.fdi" in Verzeichnis:
Zeile 341: Zeile 334:
  
  
'''Rechteverwaltung / Zugriffsprobleme bei SuSE 10'''
+
 
 +
== Rechteverwaltung / Zugriffsprobleme bei/ab openSuSE 10.0 ==
  
 
Auszug aus SuSE-Portal:
 
Auszug aus SuSE-Portal:
Zeile 358: Zeile 352:
  
  
 
+
== klassisch mounten bei/ab (?) openSUSE 10.0 ==
'''KLASSICH MOUNTEN BEI SUSE 10:'''
 
  
 
  /TIPP VON ABGDF/
 
  /TIPP VON ABGDF/

Version vom 23. Januar 2007, 22:18 Uhr

Autor: misiu


Allgemein

Viele USB-Geräte haben Anlaufprobleme. Bitte prüfen Sie in solchen Fällen folgendes:

  • ohne USB-Verlängerungskabel anschliessen
  • an anderen USB-Büchsen anschliessen
  • USB-Hub mit eigener Stromversorgung verwenden, am besten über PS/2 Anschluss.
  • BIOS: USB-Einstellungen prüfen (alle USB-Anschlüsse an?, IRQ zugewiesen?)


Somit verbessert sich oft die gelieferte Strommenge und die Signalqualität des USB-Anschlusses. In seltenen Fällen kann es auch an zu schwach ausgelegten Netzteilen liegen, was sich auch an die gelieferte Strommenge für die Mutterplatine (Motherboard) auswirkt. In solchen Fällen treten oft auch Schwierigkeiten, wie Startprobleme des Rechners (geht erst nach mehrmaligen betätigen der "Power" (Einschalttaste) an ).

Legacy USB Support

( Bei Problemen mit USB - Tastatur/Maus ein/ausschalten ) Wenn auf Ihrem Board USB vorhanden ist, sollten Sie diese Option auf Enabled stehen haben. Hier wird dem USB-Anschluss ein IRQ zugewiesen. Falls sie keine USB-Geräte verwenden, dann sollten Sie diese Option auf Disabled stellen. Sie bekommen dadurch für andere Zwecke Ressourcen frei.

Falls mehrere Geräte um die Mutterplatinen-Resourcen (IRQ´s, Adressenbereiche etc.) kämpfen, sollte probeweise ACPI ausschaltet werden. also im BIOS unter PowerManagement: "ACPI Disabled" und dann in Grub als Boot - Option

"acpi=off noapic"

einstellen (geht bei SuSE mit Yast)

Andere Bootstartparameter zum nachlesen hier:

KERNELPARAMETER (Bootparameter die beim Start des Rechners in der Optionszeile des Bootmanagers eingegeben werden):

/usr/src/linux/Documentation/kernel-parameters.txt
(Kernelquellen müssen installiert sein).


Hier erfolgt die Zusammenfassung, bei Problemen mit USB-Speichermedien die SuSE 10.0 und 9.3 betreffen

Vor allem an regelmässige Updates denken, da ständig Nachbesserungen im Linux-Kernel, im USB-Hotplug und HAL-System gemacht werden. Dabei hilft bei SuSE-Linux, YaST und YOU-Onlineupdate. Falls kein schneller Internetzugang vorhanden sei, auf Zugaben bei Linux-Zeitschriften achten:

  • Easy Linux
  • Linux-User
  • Linux-Magazin und anderen.


USB-Massenspeicher entfernen

Im Normalfall kann das Speichergerät (Speicherstick, USB-Festplatte etc.) problemlos entfernt werden, ohne zusätzliche Kommandos auszuführen. Dabei ist es gut darauf zu achten, dass eine LED (Leuchtdiode) die die Daten- übertragung meistens durch schnelles blinken anzeigt, auch damit aufhört.

Falls es Probleme bereitet, solches Medium abzuhängen, sollte ein Befehl eingesetzt werden um das USB-Medium zu entfernen. Der Befehl lautet:

eject /media/usbdisk


Ausführen in der Textkonsole, bzw. ein Desktop-Ikon erstellen (KDE):

  • 1. Rechtes Mausklick auf dem Desktop
  • 2. "Neu erstellen"
  • 3. "Verknüpfung zu Programm..."
  • 3. Einen Namen reinsetzen z.B. "USB-Raus"
  • 4. Kartei "Programme" -> "Befehl" -> den Befehl

"eject /media/usbstick"

reinschreiben. Falls es so nicht klappt, den Befehl ändern in:

kdesu "umount /media/usbstick"

  • 5. mit "OK" bestätigen .

( Es kann auch "/media/usbdisk" heissen! )

Auf die schnelle Art:

  • 1. Alt + F2 drücken
  • 2. Den Befehl reinschreiben :
eject /media/usbstick

oder

eject /media/usbdisk

3. "Ausführen" drücken

Weitere Möglichkeit die "störrischen" USB-Speichermedien abzuhängen ist diese mit dem Befehl "umount" abzuhängen. Dazu die Shell / Textkonsole starten und ausführen:

misiu@linux:~> sudo umount /dev/sdx1


"sudo" bedeutet Administrationsrechte ( root ) erlangen. "x" soll ersetzt werden durch den entsprechenden Partitionsbuchstaben (a,b,c,d,e usw.). Die Partitionkennung (Buchstabe) kann mit dem Befehl: mount herausgefunden werden.

Sonst zum sicherem entfernen den Befehl:

sudo umount /media/usbstick

in der Textkonsole / Shell verwenden.

Hilfe zu Befehlen mount und umount: (Textkonsole / Shell)

misiu@linux:~> man mount
misiu@linux:~> man umount


Optionen zu diesen Befehlen:

mount --help
umount --help


Bei Problemen mit USB-Stick( USB 2.0 )

Booten mit der Option:

insmod=usb-storage

danach :

modprobe -r ehci-hcd

( entfernen des USB 2.0 - Moduls )

modprobe ehci-hcd

( laden des USB 2.0 - Moduls ) Danach evtl.:

rchal restart


Wie finde ich die UUID/volume.uuid raus?

Da gibts folgende Möglichkeiten:

  • 1.Grafisch:

Der "hal-device-manager" zeigt es unter Gnome an (evtl. Paket "hal-gnome" nachinstallieren),ist aber nicht für Gerätekonfigurationen gedacht.

  • 2.Listen der USB-Geräte, die HAL erkannt mit dem Befehl:

Code:

lshal

in der Kommandozeile , dabei kann die Ausgabe in eine Textdatei umgelenkt werden:

Code:

lshal > /home/benutzer/lshal.txt

2.Befehl hwinfo (als root) nutzen:

Ausgabe umlenken:

Code:

hwinfo > /root/hwinfo.txt

(landet im Verzeichnis /root)

Devices ID können mit:

su
+ Passwort

und

lsusb

ermittelt werden.

Als welches Device USB-Geräte angesprochen werden kann mit dem Befehl:

su
+ Passwort

und

lsscsi

ermittelt werden.

Hilfreich kann auch der Befehl:

dmesg | tail -n 10

(funktioniert auch mit anderen Befehlen -> Befehl | tail -n 10 zeigt letzte 10 Zeilen eines Befehls.)

sein.

( Pipe-Zeichen "|" wird mit AltGr + < erzeugt )


Mit Befehl:

udevmonitor --env

können die USB-Ereignisse beobachtet werden (Zuerst Befehl ausführen, dann USB-Gerät anstöpseln, bzw. Stick/Speicherkarte reinstecken)


Was ist HAL (Hardware Abstraction Layer)?

Ist eine Zwischenschicht im Betriebsystem, die die Zugriffe auf die Hardware regeln soll: http://de.wikipedia.org/wiki/Hardware-Abstraktions-Schicht

Ein Gerät wird angeschlossen -> HAL erkennt es -> HAL veranlasst weitere Aktionen (Treiber laden, entsprechende Scripte starten, eintragungen vornehmen).


Betrifft SuSE 9.3 und 10.0 mit HAL (Hardware Abstraction Layer)

Problem: Zu geringe Übertragungsgeschwindigkeiten bei USB.

Lösung (Auszug aus SuSE-Portal) : http://portal.suse.com/sdb/de/2005/06/dkukawka_halnosync_html.html


Automatisches Mounten ohne sync-Option

Bezieht sich auf: SUSE LINUX 9.3 - 9.3 Anliegen Sie nehmen eine zu geringe Schreibgeschwindigkeit auf Medien wie USB-Sticks oder externen USB-Festplatten wahr. Aus diesem Grund oder da für Sie synchrones Schreiben auf ausgewählten Medien (z.B. USB-Sticks oder Flash-Medien) unerwünscht ist, wollen Sie die Option sync beim automatischen Mounten durch submount/HAL nicht verwenden.

Vorgehen:

Legen Sie als root in /usr/share/hal/fdi/95userpolicy/ eine Datei mit einem beliebigen Dateinamen und der Endung .fdi an, zum Beispiel nosync.fdi. Nun editieren Sie die Datei mit einem Editor ihrer Wahl:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<deviceinfo version="0.2">
<device>
<match key="block.is_volume" bool="true">
<match key="volume.fsusage" string="filesystem">
<match key="volume.uuid" string="UUID">
<merge key="volume.policy.mount_option.sync" type="bool">false</merge>
</match>
</match>
</match>
</device>
</deviceinfo>

Sie müssen nur die folgende Zeile anpassen. Die nötigen Informationen können Sie der Ausgabe von 'lshal' auf der Konsole oder dem 'hal-device-manager' unter KDE/GNOME (ggf. installieren Sie hal-gnome.rpm nach) entnehmen.

<match key="volume.uuid" string="==UUID==">

Tragen Sie den unter volume.uuid eingetragenen Wert für "==UUID==" ein. Nachdem Sie die Datei angepasst haben, führen Sie folgenden Befehl als root aus:

rchal restart

submount sollte nun das betreffende Gerät ohne die Option sync mounten. Bitte beachten Sie, das Sie nun das betreffende Gerät vor dem Entfernen explizit unmounten müssen, da nicht mehr sichergestellt ist, dass die übertragenen Daten bereits geschrieben wurden. Andernfalls kann es zu Datenverlust kommen.


ab/bei(?) openSUSE 10.0

Siehe Bugtracker: https://bugzilla.novell.com/show_bug.cgi?id=105871 (Als root ausführen!) Kopiere diese Zeilen in ein Texteditor und speichere , als "nosync.fdi" in Verzeichnis: /usr/share/hal/fdi/policy/95userpolicy (falls der Verzeichnis nicht vorhanden, erstellen) :


<?xml version="1.0" encoding="ISO-8859-1"?> 
<deviceinfo version="0.2">
<device>
<match key="block.is_volume" bool="true">
<match key="volume.fsusage" string="filesystem">
<match key="@info.parent:storage.bus" string="usb">
<merge key="volume.policy.mount_option.sync" type="bool">false</merge>
</match>
</match>
</match>
</device>
</deviceinfo> 


Und nicht vergessen:

  • 1 - Ist die Datei im richtigem Verzeichnis gelandet ?
  • 2 - Das USB-Gerät (Stick/Festplatte) abgehängt/abgestöpselt (unmount) bevor HAL neu gestartet wurde?
  • 3 - HAL nach der änderung neu gestartet? (rchal restart) ,als root ?

Diese Zeilen haben Einfluss auf alle USB-Speichergeräte, sonst muss in die fdi-Datei mit der UUID/volume.uuid versorgt werden, die das Gerät beschreibt:

<match key="volume.uuid" string="==UUID==">
<match key="hier wird ersetzt" string="hier wird ersetzt">

Die Zeile:

<match key="@info.parent:storage.bus" string="usb">

veranlast das System, alle USB-Geräte ohne die "sync"-Option zu mounten:

<merge key="volume.policy.mount_option.sync" type="bool">false</merge>

Weitere Key-Beschreibungen befinden sich in:

/usr/share/doc/packages/hal
( SuSE 9.3 HAL 0.4.7 Specification: /usr/share/doc/packages/hal/spec/hal-spec.html )


Rechteverwaltung / Zugriffsprobleme bei/ab openSuSE 10.0

Auszug aus SuSE-Portal: Ab SUSE Linux 10.0 erfolgt die Zugriffskontolle mit "Whitelist"-Semantik. Das bedeutet, dass es eine Liste der USB Scanner geben muss, für die der Zugriff explizit erlaubt ist. So eine Liste wird von der YaST Scannerkonfiguration automatisch für den resmgr eingerichtet:

/etc/resmgr.conf.d/50-scanner.conf

Das Format der Einträge ist beispielsweise

add usb:vendor=0x1a2b,product=0x3c4d scanner

Es betrifft auch andere USB-Geräte!


klassisch mounten bei/ab (?) openSUSE 10.0

/TIPP VON ABGDF/

Zuerst macht man als root eine Sicherungskopie des Verzeichnisses

/usr/share/hal/fdi/policy

mit allen Unterverzeichnissen.

Im Verzeichnis

/usr/share/hal/fdi/policy/10osvendor

gibt es mehrere Konfigurationsdateien für hal.

In jeder davon sucht man alle Zeilen, die "should_mount" enthalten, z.B. die Zeile

<merge key="storage.policy.should_mount" type="bool">true</merge>

In allen diesen Zeilen (einige) setzt man den Wert von >true< auf >false<.

Wenn man das in allen Zeilen in allen Dateien getan hat, werden die Geräte (nach einem Neustart von hal) nicht mehr automatisch gemountet.

Allerdings wird zum Beispiel das Floppy-Laufwerk (amigaähnlich) trotzdem noch angesprochen, wenn eine neue Diskette eingelegt wird. Dies vermeidet man, indem man zusätzlich in der Datei

/usr/share/hal/fdi/policy/10osvendor/90-block-subfs.fdi


aus den Zeilen

<append key="info.callouts.add" type="strlist">hald-subfs-mount</append>
<append key="info.callouts.remove" type="strlist">hald-subfs-mount</append>

das "hald-subfs-mount" entfernt.

Diese beiden Zeilen kommen zweimal vor, beide Varianten sollten geändert werden. Nun startet man hal mit dem Befehl

rchal restart

neu und ändert gegebenenfalls noch die Einträge in der Datei "/etc/fstab".

Auf diese Weise kann man unter SuSE 10.0 wieder traditionell mounten.

oder so: ( Dank an Eberhard Niendorf )

  • 1. in Verzeichnis wechseln (ggf. anlegen)
# cd /usr/share/hal/fdi/policy/20thirdparty
  • 2. Erstellen eines fdi-Files mit folgendem Ergebnis:
# cat nomount_usb_disk.fdi
<?xml version"1.0" encoding"ISO-8859-1"?> 
<deviceinfo version"0.2">
<device>
<match key"storage.bus" string"usb">
<match key"storage.drive_type" string"disk">
<match key"storage.policy.should_mount" bool"true">
<merge key"storage.policy.should_mount" type"bool">false</merge>
</match>
</match>
</match>
</device>
</deviceinfo>
#
  • 3. HAL neu starten
# rchal restart

Hinweis! Das Kommando lshal gibt eine vollständige Liste der devices mit gesetzten Parametern aus. Innerhalb eines Gerätes erfolgt der Match von unten nach oben (storage.bus steht weiter unten als storage.drive_type; --> umgekehrte Matchreihenfolge im XML-File.

Eingefügt von --Yehudi 12:05, 26. Aug 2006 (CEST)