Hi
Ich habe ein Samsung GT-I9000 (auch als Samsung Galaxy SI Smartphone bezeichnet).
Ich moechte es gerne mit meinem Pinguy OS (basiert auf Ubuntu 12.04) verbinden, allerdings gibt's da ein paar Probleme (genauer gesagt: Nur eines ! )
Ich wollte es ueber eine udev-Regel einbinden um sowohl auf den internen Speicher als auch auf die SD-Karte zugreifen zu koennen, wenn ich es anstecke. Meine dazu erstellte udev-Regel sieht bis jetzt so aus:
"SUBSYSTEMS=="usb",KERNEL=="HierLwBezEinfuegen",SYSFS{serial}=="36349FA785F400EC",SYMLINK+="GT-I9000"
Die Seriennummer habe ich ueber "lsusb-v" bzw. eine udevadm-Abfrage gefunden.
Wie man sieht ist die einzige Luecke die noch auszufuellen ist der Teil "HierLwBezEinfuegen".
Aus der "/var/log/messages" habe ich die Laufwerks-Bezeichnungen "sdc" und sdd" fuer die beiden Speicher, die auch wirklich
nur existieren, wenn das Samsung ueber USB angebunden ist. Sieht dort so aus:
scsi5 : SCSI emulation for USB Mass Storage devices
scsi 5:0:0:0: Direct-Access Linux File-CD Gadget 0000 PQ: 0 ANSI: 2
scsi 5:0:0:1: Direct-Access Linux File-CD Gadget 0000 PQ: 0 ANSI: 2
sd 5:0:0:0: Attached scsi generic sg2 type 0
sd 5:0:0:1: Attached scsi generic sg3 type 0
sd 5:0:0:0: [sdc] Attached SCSI removable disk
sd 5:0:0:1: [sdd] Attached SCSI removable disk
Will man jedoch das "/dev/sdc" nach "/mnt" mounten erfolgt nach laengerer Wartezeit ein:
"umount: /dev/sdc: unbekanntes Gerät" (ja, in diesem Fall heisst es tatsaechlich "umount" !)
Fuege ich in die o.g. udev-Regel ein "sd?1" als Laufwerksbezeichnung ein und lasse den "udev" die Regeln neu einlesen, aendert sich gar nichts. Ein "GT-I9000"-device wird in /dev ebenfalls nicht angelegt, was natuerlich nichts anderes heisst als dass die Regel noch falsch ist. - Klar wenn die korrekte Laufwerksbezeichnung fehlt.
Ich habe schon im Ubuntu-Wiki unter http://wiki.ubuntuusers.de/udev nachgelesen, ebenso auf den am Fuße des Artikels angegebenen Seiten, aber da steht ueberall nur der Standardfall, der immer funktioniert.
Selbst im von mir so geschaetzten "Linux Intern Extra", Nr. 4, steht auf S.120 ein Artikel ueber "udev" allerdings ist der Abschnitt "Debuggen" auch hier nicht wirklich eine Hilfe.
Kennt sich jemand mit dem "udev" besser aus ?
Danke
Kuehlwalda
Linux 15.036 Themen, 107.107 Beiträge
Versuche es mal so:
KERNEL=="sd*", ATTRS{serial}=="deine Serial", SYMLINK+="GT-I9000%n", \ ENV{SPECIALMOUNTPOINT}="/mnt/GT-I9000"
und nun den Mountpoint noch anlegen:
mkdir /mnt/GT-I9000
Hallo Kuehlwalda,
da Dein Handy USB verwenden, sollte es eigentlich automatisch als temporäre externe Festplatte erkannt werden. Eine Konfiguration ist nicht erforderlich.
MfG.
violetta
Hi violetta,
klar, eigentlich sollte das USB-Device automatisch erkannt werden!
Aber mit udev ist es möglich bestimmten Geräten feste Devices zuzuweisen, um diese dann fest anzusprechen.
Bei USB-Festplatten und Sticks, etc. entscheidet zum Beispiel die Reihenfolge in der die Geräte eingesteckt werden, welches Device sie bekommen. So kann z. B. die USB-Platte /dev/sda, /dev/sdb etc. sein.
Um einen Vorgang zu automatisieren ist es aber notwendig ein festes Device zu kennen, das man ansprechen kann.
Soll zum Beispiel ein Script das Handy automatisch mounten, um ein Backup auszuführen, sollte man das Script nicht jedes mal umschreiben müssen, wenn sich das Device geändert hat.
Hallo sunraid,
losgelöst von Kuehlwalds Anfrage kann manuell alles festgelegt und umgeschrieben werden.
Ich bin froh, dass so elementare Dinge wie USB mittlerweile Bestandteil des Kernels sind und bestens automatisch funktionieren. Kann mich noch gut an andere Zeiten erinnern.
Auch wundere ich mich immer wieder über die selbsterzeugten Probleme. Ansichten, Meinungen, Arbeitsweisen etc. werden häufig versucht mit Windowskenntnissen auf Linux zu übertragen und das führt regelmäßig zu Problemen. Dabei wäre doch alles so einfach und bequem.
Deinen Ausführungen zu udev kann ich (insbes. im Serverbereich) zustimmen, der User muss aber ständig zur einer umfassenden Konfiguration seines BS bereit sein und wer will das schon?
MfG.
violetta
Naja. Ich sehe auch auf dem Desktop interessante Anwendungen für udev: So könnte man z.B. beim anschließen des Handys automatisch ein Backup-Script starten lassen ;-)
Nur um einen stabilen Gerätenamen zu bekommen würde ich mir diesen Aufwand auch nicht machen, da das wie schon von robinx99 angemerkt grundsätzlich auch mit UUIDs möglich ist. Dinge wie einen Austausch der Speicherkarte gegen ein größeres Modell würden durch UUIDs allerdings auch nicht abgedeckt…
Gruß
Borlander
Bei USB-Festplatten und Sticks, etc. entscheidet zum Beispiel die Reihenfolge in der die Geräte eingesteckt werden, welches Device sie bekommen. So kann z. B. die USB-Platte /dev/sda, /dev/sdb etc. sein. Um einen Vorgang zu automatisieren ist es aber notwendig ein festes Device zu kennen, das man ansprechen kann.Auch wenn ich zum eigentlichen Problem nichts sagen kann, aber sind die "festen" Devices nicht seit langem unter /dev/disk/by-uuid/ zu finden?
Hallo Kuehlwalda,
wenn das Handy mit USB ausgelegt ist, wird es auch automatisch erkannt.
da muß man überhaupt nichts mehr dazu tun.
Das sollte eigentlich auch unter Pinguy OS so sein.
Ansonsten mußt du noch mal die ganzen Anleitungen im Wiki durchgehen.
Kann auch sein das bei der Installation von Pinguy OS etwas falsch gelaufen ist.
Schau mal in deine log.
@sunraid
Wozu soll man einem Handy eigentlich ein festes Devices zuweisen ?
Ich sehe darin keinen Sinn.
MfG Acader
Wozu soll man einem Handy ein festes Devices zuzuweisen,Ich sehe darin keinen Sinn.
Spielerei! Automation!
Wenn mein Handy an den PC kommt, wird ein Script aufgerufen, das ein Backup durchführt sowie verschiedene Ordner (Musik, Bilder und andere Daten) abgleicht und aktualisiert. Und dafür ist es sinnvoll es aus dem Script heraus mit einem festen Devicenamen anzusprechen.
Klar, kann man auch alles manuell machen, aber wozu hat man denn einen Rechenknecht
Und dafür ist es sinnvoll es aus dem Script heraus mit einem festen Devicenamen anzusprechen |
Das liegt wie immer im Ermessen des Betrachters.
Ich aber möchte manuell schon selbst bestimmen was da rüber und nüber "fliegt" und dazu brauche ich keinen Automatismus.
MfG Acader
Hi,
Danke fuer eure Antworten / Diskussionen, jedoch bin ich noch nicht weitergekommen.
Aussagen wie "es sollte eigentlich automatisch erkannt werden" schießen leider am Ziel vorbei, denn
genau DAS passiert ja eben nicht (s.a. meine urspruengliche Problembeschreibung und den Ausschnitt
aus der /var/log/messages).
Gerade deshalb moechte ich doch die udev-Regel erstellen um das Smartphone ueberhaupt auslesen zu
koennen.
Am Windows7-PC eines Freundes klappte es durch simples anstoepseln an usb, die beiden Speicher
erhielten sofort je einen Lw-Buchstaben. So hatte ich mir das am Linux-PC auch vorgestellt, da es nun
aber nicht funktioniert muss man eben Hand anlegen.
@ sunraid:
Deine Regel hat leider nichts anderes bewirkt als meine: Nichts ist passiert.
Ich habe auch die Fehlerausgabe von "service udev reload" per 2>&1 umgeleitet, aber da kam nichts,
dazu passt auch, dass der Rueckgabewert "$?" 0 war.
Kurze Zusammenfassung: Eingebunden wird das Smartphone nicht automatisch, aber Fehler finde ich
auch keine.
Hat noch jemand eine Idee oder vielleicht einen Link zum "udev-Studium" ;-))
Danke
Kuehlwalda
Kurze Zusammenfassung: Eingebunden wird das Smartphone nicht automatisch, aber Fehler finde ichauch keine.Hat noch jemand eine Idee oder vielleicht einen Link zum "udev-Studium" ;-))
Vieleicht fehlt das Modul usb_storage.
- Gerät vom Computer entfernen.
- die benötigten Module per Hand laden:
$ sudo modprobe usb_storage - Gerät mit Computer verbinden. Nach kurzer Zeit sollte es als Speichermedium angezeigt werden.
- Wenn ja, dann sollte das Modul zu jedem Start automatisch geladen werden. Dazu die Datei /etc/modules bearbeiten:
$ sudo vim /etc/modules - Dort eine Zeile anfügen mit:
usb_storage - Speichern
Hi
Da Dein Gerät auch mit Android läuft, kommt bei Dir die Abfrage, wie das Teil verbunden werden soll? Dann müßte da auf Festplatte im Menü eingestellt werden.
Hast Du die Regel auch unter /etc/udev/rules.d gespeichert vor dem Neustart des udev-Systems?
Checke auch einmal, ob Du in der Gruppe plugdev bist (/etc/group im Editor Deiner Wahl ansehen), ansonsten mit useradd noch hinzufügen.
Die Mountpoints würde ich nach /media legen und dann mußt Du natürlich nach Funtionieren der Regel auch in der /etc/fstab noch die Einträge dafür erzeugen.
Abgeleitet vom Wiki kann das dann so aussehen:
Auf das Script kannst Du ja erstmal verzichten, entscheidend ist das Einbinden als Festplatte.
Das Einbinden als Brenner oder optisches Laufwerk (srx) macht mich da etwas stutzig.
fakiauso
Hallo Kuehlwalda,
es fehlen auf Deinem Rechner die entsprechenden Pakete und Module! Sie müssen nachinstalliert werden. Das Galaxy wird hier sofort erkannt.
MfG.
violetta
Nachtrag: Das Paket heisst: udev-notify.
MfG.
violetta
Hallo, Pross Neijohr !
Euch allen ein gutes neues Jahr und auf dass das Linuxbrett auf Nickles.de ewig weiter bestehe !
Vielen Dank an alle denn mit euren Tipps kommt man einfach immer voran:
@sunraid:
Nachdem ich die Fehler ausgelesen hatte war klar, dass in deiner Regel das "ATTRS{serial}" (was das Parent-Device bezeichnet) durch ein "ATTR{serial}" (was das eigentliche Device bezeichnet) ersetzt werden musste.
Sie sieht jetzt so aus:
KERNEL=="sd*",ATTR{serial}=="36349FA785F400EC",SYMLINK+="GT-I9000%n", ENV{SPECIALMOUNTPOINT}="/mnt/GT-I9000"
(Das Verzeichnis /mnt/GT-I9000 habe ich angelegt).
Daraufhin gab es keine Fehler mehr, nicht mittels 2>&1, nicht in /var/log/messages und ebenfalls nicht von "$?".
Mit "udevadm info --query=all --attribute-walk --name=/dev/sdb" (bzw. sdc) kann ich die beiden Speicher des Samsung (interner und die SD-Karte) die jetzt als /sdb und /sdc in /var/log/messages auftauchen, abfragen. (Vorher, s. mein urspruegliche Frage, wurden sie als /sdc und /sdd bezeichnet).
Eindeutig zu erkennen sind sie wiederum wenn ich nach der Seriennummer suche !
Die Ausgabe der "udevadm info" ist fuer sdb und sdc die gleiche und sieht so aus:
ATTRS{serial}=="36349FA785F400EC"
ATTRS{serial}=="0000:00:02.1
Hier faellt auf, dass die Seriennummer als "ATTRS" und nicht als "ATTR", wie ich sie in der Regel (s.o) bezeichnet habe, auftaucht.
Beim Laden von "sudo modprobe usb_storage" passierte nichts, offenbar war es schon geladen.
Beim Wiedereinstecken erhielt ich die uebliche Meldung wie immer "Linux File CD-Gaget 1 wurde verbunden". Die /var/log/messages zeigt trotzdem beide ("/sdb" und "/sdc") an.
"usbmount" fehlte bei mir, habe ich nachinstalliert, aber es wird nicht gefunden (?).
@fakiauso:
Danke fuer den Tipp die Regel nach /etc/udev/rules zu kopieren, ich hatte sie nur in /lib/udev/rules erstellt.
Beim Anstoepseln kommt uebrigens keine Abfrage WIE ich es verbinden moechte. In der Gruppe "plugdev" war ich eingetragen.
"lsusb -v" zeigt als idVendor sogar Google an. Das koennte eventuell vom erkannten Android stammen, nehme ich jetzt 'mal an.
idVendor 0x18d1 Google Inc.
idProduct 0x4e22 Nexus S (debug)
bcdDevice 2.31
iManufacturer 2 samsung
iProduct 3 GT-I9000
iSerial 4 36349FA785F400EC
udevadm info" hingegen zeigt nur allgemein ein "ATTRS{idVendor}=="18d1" an.
Bei deiner Regel
"SUBSYSTEMS=="usb" , KERNEL=="sd?1" , SYSFS{idVendor}=="Deine_ID" , SYMLINK+="GT_I9000"
bekomme ich, wie bei meiner eigenen ersten Version ein "unknown key 'SYSFS{idVendor}", weshalb ich es durch "ATTR{idVendor}" ersetzen musste.
Ergebnis: Keine Fehler mehr, wie zuvor gehabt, aber auch kein angelegtes Device GT-I9000.
@Violetta:
ein "sudo apt-get install udev-notify" bringt leider nur das:
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
E: Paket udev-notify kann nicht gefunden werden
Habe ich es richtig verstanden, dass dein Samsung problemlos eingebunden wird ?
Falls ja, taucht hierbei der Speicher als Festplatte (z.B. sdb) oder als Partition (Bsp.: sdb1) auf ?
Nun habt ihr mir netter Weise schon 2 Regeln geliefert und bei beiden konnte ich die Fehler beseitigen. Jedoch kann man nach wie vor nur ueber "lsusb -v", in der "/var/log/messages" und auch am Bildschirm (wegen "Linux File CD-Gaget 1 wurde verbunden") sehen, dass das Smartphone erkannt wurde.
Ein Einbinden erfolgt leider noch immer nicht.
Hat noch jemand einen Tipp woran es liegen koennte ?
Danke
Kuehlwalda
Hallo Kuehlwalda,
meine Handies werden als Wechselmedium eingebunden und unter /media erkannt
Verwende aktuell allerdings opensuse!
Schaue in den nächsten Tagen aber noch einmal auf einen anderen Rechner. Dort laufen Debian und Mint.
Augenscheinlich hast Du auch versucht, dass Paket "udev-notify" von der Installations-CD (E:.....) zu laden. Da liegt es aber vermutlich aus welchen Gründen auch immer nicht vor. Versuch es aus den Ubuntu-Repositories nachzuinstallieren.
Probiere es auch einmal als root! Möglicherweise hast Du als User keine ausreichenden Rechte.
Auch einen alten Linuxtrick solltest Du probieren. Alle Geräte anschließen und einschalten und ein Systemupdate oder -.upgrade (je nach BS) machen. Über die Hardwarerkennung müssten nun die für das smartphone fehlenden Pakete automatisch nachinstalliert werden. Anschließend Neustart nicht vergessen.
MfG.
violetta
Hi
Beim Wiedereinstecken erhielt ich die uebliche Meldung wie immer "Linux File CD-Gaget 1 wurde verbunden". Die /var/log/messages zeigt trotzdem beide ("/sdb" und "/sdc") an.
Das ist es ja, wo ich etwas in´s Knabbern komme.
M.E. gibt es zwei Wege, das Gerät hinzubiegen:
Entweder als optisches Wechselmedium (das wäre die variante mit dem externen Brenner bei Ubuntu):
#Samsung GT-I9000
SUBSYSTEMS=="scsi", KERNEL=="sr?", ATTRS{serial}=="36349FA785F400EC", NAME="samsung"
Oder eben als USB-Stick
#Samsung GT-I9000
SUBSYSTEMS=="usb", KERNEL=="sd?1", SYSFS{serial}=="36349FA785F400EC", SYMLINK+="samsung"
Falls es ein Rechteproblem ist, dann träfe die letzte Zeile des Wiki zu:
#Samsung GT-I9000
SUBSYSTEMS=="usb", SYSFS{serial}=="36349FA785F400EC", OWNER="dein_name"
Unabhängig davon würde ich den Mountpoint trotzdem nach /media setzen, hat zwar mit der eigentlichen Problematik nichts zu tun, aber das hat sich halt inzwischen so eingebürgert, Wechselmedien nach /media einzubinden.
Bei mir spuckt dmesg übrigens das aus, wenn ich mein HTC anstecke (da kommt allerdings die Abfrage und ich bestätige dann auf dem gerät den Festplattenmodus), aber das passiert ja bei Dir automatisch:
[ 8278.235960] usb 2-2: new high-speed USB device number 2 using ehci_hcd
[ 8278.369067] usb 2-2: New USB device found, idVendor=0bb4, idProduct=0cec
[ 8278.369072] usb 2-2: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[ 8278.369075] usb 2-2: Product: Android Phone
[ 8278.369077] usb 2-2: Manufacturer: HTC
[ 8278.369079] usb 2-2: SerialNumber: FA29AW400952
[ 8278.370151] scsi7 : usb-storage 2-2:1.0
[ 8279.367614] scsi 7:0:0:0: Direct-Access HTC Android Phone 0000 PQ: 0 ANSI: 2
[ 8279.368315] sd 7:0:0:0: Attached scsi generic sg8 type 0
[ 8279.370931] scsi 7:0:0:1: CD-ROM HTC Android Phone 0000 PQ: 0 ANSI: 2
[ 8279.371084] sd 7:0:0:0: [sdg] Attached SCSI removable disk
[ 8279.374462] sr2: scsi-1 drive
[ 8279.374583] sr 7:0:0:1: Attached scsi CD-ROM sr2
[ 8279.374664] sr 7:0:0:1: Attached scsi generic sg9 type 5
[ 8287.794097] sd 7:0:0:0: [sdg] 20836352 512-byte logical blocks: (10.6 GB/9.93 GiB)
[ 8287.798776] sdg:
Allerdings wird bei mir unter Opensuse 12.2 und KDE das Teil auch gleich über die Wechselmedienverwaltung erkannt und eingebunden.
fakiauso
Hallo zusammen,
Danke fuer die neuen Tipps:
@fakiauso:
Die Regel
"SUBSYSTEMS=="scsi", KERNEL=="sr?", ATTRS{serial}=="36349FA785F400EC", NAME="samsung" lieferte keine Fehler
SUBSYSTEMS=="usb", KERNEL=="sd?1", SYSFS{serial}=="36349FA785F400EC", SYMLINK+="samsung"
SUBSYSTEMS=="usb", SYSFS{serial}=="36349FA785F400EC", OWNER="dein_name"
In den beiden letzten musste ich "SYSFS{serial}" wieder durch "ATTR{serial}"ersetzen, wegen dem schon oben gennanten Fehler, "unknown key 'SYSFS{serial}' in /etc/udev/rules.d/86-usb-GT-I9000.rules" - Aber dann liefen auch diese beiden ohne Fehler durch.
. . . und ohne einen Link in "/dev" anzulegen oder den Speicher gar zu mounten.
Den Mountpoint habe ich nun auch nach "/media" gelegt. Stimmt schon, dass sich das so eingebuergert hat.
@Violetta:
Ich hatte das Pinguy OS Iso heruntergeladen und als Live-CD gebrannt von der ich dann installiert habe.
Ich weiss zwar nicht was das "E:" bedeuten soll, aber glaubst du wirklich dass sei das CD-Laufwerk unter Linux ?
Ich war bei dem "apt-get"-Befehl mit dem Internet verbunden, also haette es doch in den Ubuntu-Repositories gefunden werden muessen, oder nicht ?
Ich habe mal ein Bild hochgeladen, (http://250kb.de/Z9zBnB8) damit ihr seht wie meine beiden Speicher vom Samsung Smartphone erkannt werden, auch wenn man den Namen (Linux File-CD Gadget) nicht ganz lesen kann.
Da habe ich heute morgen nicht ganz korrekt die Erkenung beschrieben, denn der 1. Speicher wird als "Linux File CD-Gaget" (das ist der linke) verbunden der zweite als "Linux File CD-Gaget 1" (rechts)!
Klicke ich auf einen der beiden heisst es aber bei beiden nur "failed to mount Linux Gadget" bzw. "Gadget-1".
Aber ich glaube allmaehlich, es haengt ganz woanders, denn die Regeln sind soweit in Ordnung wie ich das inzwischen auf anderen Internetseiten gesehen habe. Also die Regel ist nicht mehr das Problem. Aber was ?
Ich hoffe, es kommt noch jemand drauf, denn ich bin ratlos. Ueberall steht es so wie ich es mache, nur: Bei mir klappt's aber nicht.
Kuehlwalda
Hallo Kuehlwalda,
ja, ich glaube fest, daß nur das CD-Laufwerk durchsucht wurde. Alles deutet darauf hin.
Auch dürfte Dir sicher klar sein, dass Du mit der Live-CD nur eine abgespeckte Linuxversion von PinguyOS vorliegen hast.
Ferner werden fehlende udev-Module nach dem Kernelstart nicht nachgeladen, folglich wird Dein smartphone auch nicht angesprochen.
Ich würde an diesem Punkt nicht weiter suchen und stattdessen komplett neu installieren (alle Geräte einstecken und anschalten). Es deckt zwar nicht den Fehler auf, auch bleibt Deine Frage in Teilen weiter unbeantwortet, aber es kostet keine Zeit mehr und bringt auch keinen erneuten Verdruss!
Schreibe bitte einmal mit welchem Kernel zu arbeitest? Konsole -> uname -a . (ohne Punkt)
MfG.
violetta
PS.: Beide /dev auf Deinem Foto sind nicht eingebunden und können daher auch nicht gemounted werden. Ergo: Kein Zugriff!
Hallo Kuehlwalda,
hast du auch mal eine andere Distri ausprobiert (Ubuntu 12.04, Linux Mint 13)?
Bei "Exoten-Distris", die von 1 oder 2 Personen betreut werden, wäre ich immer sehr vorsichtig.
Die Formulierung "basiert auf" sagt nicht immer alles aus.
Übrigens: Warum benutzt du nicht die Bildhochladefunktion von nickles.de? Im Editor die Kamera anklicken, den Speicherort aussuchen und hochladen:
Ich habe mal ein Bild hochgeladen, (http://250kb.de/Z9zBnB8)
Dann sieht es so aus:
MfG
schoppes
Hi
Anhand des Bildes ist es wohl so, daß dieses Handy durchaus eingebunden wird, für das Linux File-CD Gadget habe ich mal noch etwas gefunden, woraus ich annehme, es sind möglicherweise noch weitere Treiber erforderlich:
http://www.armadeus.com/wiki/index.php?title=USB_Gadget
https://www.ridgerun.com/developer/wiki/index.php/How_to_use_USB_CDC_ACM_and_MS_composite_Linux_gadget_driver
http://how-to.wikia.com/wiki/How_to_configure_the_Linux_kernel/drivers/usb/gadget
Und für die Änderung der Verbindungseinstellungen unter Andriod 2.2 für Dein Gerät habe ich noch das hier, vielleicht ist das schon die Lösung:
http://onsoftware.softonic.de/verbindungsprobleme-mit-samsung-kies-losungen-und-tipps
fakiauso