Einbinden eines MP3-Players schlägt fehl

H

holgerw

Guest
Hallo,

ich habe unter FreeBSD Schwierigkeiten, einen MP3-Player von Transcend einzubinden. Der Player hat einen internen Speicher und eine microSD.

Unter einem Antergos Linux wird mir auf dem Player beim Einstöpseln in einen USB-Port eine USB-Datenverbindung angezeigt, wähle ich die, habe ich als Nutzer die Möglichkeit, unter KDE sowohl den internen Speicher als auch die microSD einzubinden.

Unter FreeBSD klappt es selbst als Root nicht, ein dmesg wirft nach dem Einstöpseln und Bestätigen der Datenverbindung folgendes aus:
Code:
ugen3.3: <Transcend MP870> at usbus3
umass0 on uhub3
umass0: <Mass Storage> on usbus3
umass0:  8070i (ATAPI) over Bulk-Only; quirks = 0x0000
umass0:2:0: Attached to scbus2
da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
da0: <MP 870 0100> Removable Direct Access SCSI device
da0: Serial Number K
da0: 40.000MB/s transfers
da0: 3680MB (7538573 512 byte sectors)
da0: quirks=0x2<NO_6_BYTE>
da1 at umass-sim0 bus 0 scbus2 target 0 lun 1
da1: <MP 870 0100> Removable Direct Access SCSI device
da1: Serial Number K
da1: 40.000MB/s transfers
da1: 15189MB (31108082 512 byte sectors)
da1: quirks=0x2<NO_6_BYTE>
da1 at umass-sim0 bus 0 scbus2 target 0 lun 1
da1: <MP 870 0100> s/n K detached
g_access(918): provider da1 has error
g_access(918): provider da1 has error
g_access(918): provider da1 has error
g_access(918): provider da1 has error
g_access(918): provider da1 has error
(da1:umass-sim0:0:0:1): Periph destroyed

Wie kann ich FreeBSD 11.1 dazu bringen, dieses externe Device ordentlich einzubinden?

Viele Grüße
Holger
 
Hallo Robert,

manuelles Einbinden über Root von /dev/da0 geht immerhin, danke für den Hinweis. Bei der Error-Meldung am Ende habe ich wohl übersehen, dass sie sich nur auf da1 bezieht und nicht auf da0.

Komisch ist aber schon, dass mir über dsbmc - worüber ich bisher als Nutzer jedes USB-Device in fat und ntfs per Mausklick einbinden konnte - hier da0 noch nicht einmal angeboten wird.

Aber so kann ich immerhin das interne Device mit Audios befüllen.

Viele Grüße
Holger
 
Hmm,
ich würde annehmen, dass es an der fehlenden Partitionstabelle liegt. Immerhin ist da0 ja nur ein Devicename, normalerweise müsste da ja noch mindestens eine Partition untergliedert sein (da0p1), bei USB-Sticks fehlt das manchmal.

Rob
 
Hallo Rob,

ich werde mal probieren, ob fat32 formatierte microSD Karten mit MBR überhaupt vom MP3-Player angenommen werden.

Melde mich später nochmal dazu, danke für Deine Hinweise.
 
Ich meinte damit eher, warum dsbmc das nicht anerkennt.
Achso, klar, das durch Root einbindbare da0 - Du hast ja auch da0 oben geschrieben (brauche wohl mal einen Kaffee)

Mal schauen, ob ich die microSD da1 auch irgendwie über FreeBSD befüllen kann, falls nicht, nehme ich ein Antergos (aber mich reizt es, das unter FreeBSD hinzubekommen).
 
Es gibt schon Partitionen, die nicht so gerne genommen werden.
Neulich spielte ich mal wieder ein wenig mit Knoppix und die haben eine neue Methode für ihre Live-DVD und dabei wird eine Partition mit Kennung 0x00 verwendet (was etwas mit Boot und EFI zu tun hat) und diese Partition erzeugte in FreeBSD gar keinen Eintrag in /dev, war demzufolge also auch nicht zu mounten. Die Partition war vorhanden und als ich nachher (bei dem auf Stick überspielten Image) die Kennung mal in 0x83 änderte, da wurde ein Gerät angelegt und ich konnte die Partition mounten (sogar mittels Mausklick im dsbmc).

Dieses Gespräch nützt dir nicht viel.
Du bekommst aber eine veritable Fehlermeldung, dass da1 einen Fehler hätte und da kann vielleicht schon die Art der Partitionierung eine Rolle spielen.
Bleibt dein Eintrag in /dev erhalten?
Was sagt denn dann gpart show (oder mein Liebling mmls aus dem sleuthkit) und file -s?

Vielleicht sieht man mehr, wenn du mal nach der Ausgabe von cat /var/run/devd.pipe siehst oder, wenn du den Hal benutzt, mit lshal -m (wenn ich die Option noch richtig im Kopf habe), während du das Gerät ansteckst.
 
Hi @holgerw ,

es könnte sein, dass DSBMD das Dateisystem nicht erkennt. Könntest Du bitte mal folgendes tun?:

Code:
% fetch http://freeshell.de/~mk/download/testfs.c
% cc -o testfs testfs.c
% ./testfs -f /dev/da0

Die Ausgabe würde mich interessieren.
 
Hallo @marcel

danke für Dein Interesse, ich hatte zwischendurch das interne Device mithilfe des Players formatiert, und nun taucht es auch in Deinem DSBMC auf.

Das Ergebnis des Testes, an meinem großen PC ist das interne Device da4:
Code:
./testfs -f /dev/da4
222: sector[0x11] == 0
236: Magic value 'RRaA' found
FAT successfully identified

Aber immernoch habe ich auf die microSD trotz Formatierung ebenfalls durch den Player unter FreeBSD keinen Zugriff, und Dein ./test kann da auch kein /dev/da5 finden, weil sich das nach dem Einstöpseln gleich wieder mit einem Error verabschiedet:
Code:
da5 at umass-sim1 bus 1 scbus8 target 0 lun 1
da5: <MP 870 0100> Removable Direct Access SCSI device
da5: Serial Number K
da5: 40.000MB/s transfers
da5: 15189MB (31108082 512 byte sectors)
da5: quirks=0x2<NO_6_BYTE>
da5 at umass-sim1 bus 1 scbus8 target 0 lun 1
da5: <MP 870 0100> s/n K detached
g_access(918): provider da5 has error
g_access(918): provider da5 has error
g_access(918): provider da5 has error
g_access(918): provider da5 has error
g_access(918): provider da5 has error
(da5:umass-sim1:1:0:1): Periph destroyed

Viele Grüße
Holger
 
die einzig zuverlässige Art, die ich kenne, um FreeBSD beim Anlegen von Geräten zuzuschauen, ist das Betrachten von cat /var/run/devd.pipe. Damit ist nicht gesagt, dass dir das etwas nützen wird, denn du siehst unter Umständen ebenfalls nur Fehlermeldungen, die für unser-einen eher kryptisch sind.
Immerhin kann man da was sehen, denn, wenn das gerät gleich wieder zerstört wird, kannst du ja keine weiteren Informationen auslesen und auf einen Fehler schließen.

Nun habe ich gut reden, denn ich habe einen micro-SD-Card-Reader und da würde ich diese Micro-Card mal rein legen und sehen, ob man sie damit denn besser bekommt. Es geht darum, herauszufinden, ob die HW deines Gerätes zu FreeBSD unverträglich ist oder ob es die (mangelnde, mangelhafte) Partitionierung des SD-Speichers ist.
Das kann mit solch einem Card-Reader am einfachsten gelingen.
Ansonsten müsste man einen anderen, anders partitionierten und formatierten micro-SD Speicher in deinem Gerät testen, am Besten einen solchen, der unter FreeBSD ansonsten funktioniert.
Wenn beides nicht geht, könntest du vielleicht mal versuchen, ob du aus GNU/Linux heraus über das Gerät den micro-SD-Speicher partitionieren und dann formatieren kannst. Dabei solltest du eine DOS-Partitionstabelle nehmen, weil wir von der ganz sicher wissen, dass sie in FreeBSD keine Probleme macht.
 
Danke Dir, Holger.
ich hatte zwischendurch das interne Device mithilfe des Players formatiert, und nun taucht es auch in Deinem DSBMC auf.

Mich hätte interessiert, inwiefern sich das ursprüngliche Dateisystem von anderen FATs unterschied, sodass DSBMD es nicht als solches erkannte.
Das Verhalten des Kartenslots weist auf ein FreeBSD internes Problem hin. Da weiss ich leider auch nicht weiter.

Beste Grüße
Marcel
 
Vielleicht könntest Du auch mal ein
Code:
# camcontrol rescan all
versuchen. Ich konnte damit mal einen fehlerhaften USB-Stick dazu bewegen, wieder im System zu erscheinen.
 
Hallo pit234a

danke auch für Deine Hinweise, die ich ebenfalls mal durchgehen werde.

Viele Grüße
Holger
 
lass mich an der Stelle mal noch eine Fahne schwingen für mmls aus dem sleuthkit.
Den gesamten Kit mit seinen Daten-forensischen Möglichkeiten braucht heute kaum noch jemand (privat), er ist mir aber im Laufe der Zeit ein sehr liebes Kit geworden und wie rsync gehört es zu einem der ersten Dinge, die ich auf allen PCs haben möchte.
Es gibt das für GNU/Linux und eben auch für FreeBSD und damit ein kleines Tool, dass Partitionen auslesen kann und auf unterschiedlichen Plattformen anwendbar ist. Es bietet auch einige Optionen, aber ich zeige mal eine einfache Ausgabe, die ich schon sehr schön finde:
Code:
pit@senyo ~:- > mmls -B /dev/da1
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

      Slot      Start        End          Length       Size    Description
000:  Meta      0000000000   0000000000   0000000001   0512B   Primary Table (#0)
001:  -------   0000000000   0000000063   0000000064   0032K   Unallocated
002:  000:000   0000000064   0008855279   0008855216   0004G   Linux (0x83)
003:  000:001   0008855280   0008885999   0000030720   0015M   EFI File System (0xef)
004:  000:002   0008886000   0031266543   0022380544   0010G   Linux (0x83)
005:  -------   0031266544   0031266815   0000000272   0136K   Unallocated
Dies ist übrigens ein etwas spezieller Knoppix-Stick und die erste Partition nicht wirklich Linux (0x83), sondern, das war die Partition mit Kennung 0x00, die gar nicht erkannt worden war. Demzufolge gab es dafür auch gar keinen Eintrag in /dev. Mit dieser Änderung erhalte ich erst ein /dev/da1s1, nach dem ich weiter sehen kann:
Code:
pit@senyo ~:- > file -s /dev/da1s1
/dev/da1s1: ISO 9660 CD-ROM filesystem data 'KNOPPIX_8'
Und auch erst durch die Änderung zu 0x83 und durch den damit verbundenen Eintrag in /dev stellt dsbmc mir das Gerät dar und mounted es auf Klick:
Code:
pit@senyo ~:- > mount | grep da1s1
/dev/da1s1 on /media/da1s1 (cd9660, local, read-only)

Es ist klar, dass es unter GNU/Linux Tools gibt (parted zB) und unter FreeBSD gibt es ebenfalls Tools (gpart zB), mit denen man einfach die gleiche Information bekommt. Mir gefällt aber die Darstellung von mmls schon immer besser und besonders, weil ich es sowohl in Linux als auch in FreeBSD auf gleiche Weise nutzen kann, nehme ich es sehr gerne.
 
Hallo,

Kurzer Zwischenbericht:

Unter einem DragonFlyBSD 5 sind sowohl der interne Speicher als auch die microSD ordentlich mountbar.

Jetzt ist die für mich spannende Frage, was df anders macht als FreeBSD.
 
Komisch ist aber schon, dass mir über dsbmc - worüber ich bisher als Nutzer jedes USB-Device in fat und ntfs per Mausklick einbinden konnte - hier da0 noch nicht einmal angeboten wird.

DSBMC kannte ich gar nicht. Klingt sehr interessant! Reagiert denn Dolphin/KDE4 darauf, so dass alles direkt in KDE4 aufpoppt? Müsste doch eigentlich der Fall sein, wenn das Tool Verzeichnisse in /media erstellt, oder?
 
DSBMC kannte ich gar nicht. Klingt sehr interessant! Reagiert denn Dolphin/KDE4 darauf, so dass alles direkt in KDE4 aufpoppt? Müsste doch eigentlich der Fall sein, wenn das Tool Verzeichnisse in /media erstellt, oder?

Hallo @cabriofahrer

Du kannst dsbmc so konfigurieren, dass es mit dolphin das Device öffnet. Du kannst zum Abspielen einer Audio-CD den vlc als Player angeben, u.s.f.

Viele Grüße
Holger
 
Hi @cabriofahrer ,

Reagiert denn Dolphin/KDE4 darauf, so dass alles direkt in KDE4 aufpoppt? Müsste doch eigentlich der Fall sein, wenn das Tool Verzeichnisse in /media erstellt, oder?
Sofern Dolphin regelmäßig die Mount table abfragt, was anzunehmen ist (Thunar und PCManFM tun das), sollte jedes wie auch immer eingehängte Gerät als solches erscheinen. Das ist allerdings unabhängig von DSBMC. Wenn Du ein Speichermedium manuell am Terminal einhängst, und es in Dolphin erscheint, funktioniert es auch mit DSBMC.
 
Danke für die Hinweise ich probiere es gerade aus aber es passiert nicht viel:

Zuerst habe ich installiert: pkg install dsbmc
Dann Habe ich HAL gestoppt: service hald stop
Dann dsbmd gestartet: service dsbmd onestart (Weil man soll ja 'dsbmd_enable="YES"' in /etc/rc.conf eintragen)
Dann habe ich als user "dsbmc" gestartet. Es erscheint nur ein leeres Fenster. Wenn ich einen USB-Stick einstecke, passiert gar nichts.
 
Hi @cabriofahrer ,

Es erscheint nur ein leeres Fenster. Wenn ich einen USB-Stick einstecke, passiert gar nichts.

ich verweise Dich auch mal auf meinen Kommentar, der sich auf Holger bezog (Gerätename samt Partition/Slice ist natürlich entsprechend anzupassen):

es könnte sein, dass DSBMD das Dateisystem nicht erkennt. Könntest Du bitte mal folgendes tun?:

Code:
% fetch http://freeshell.de/~mk/download/testfs.c
% cc -o testfs testfs.c
% ./testfs -f /dev/da0
Die Ausgabe würde mich interessieren.

das würde mir sehr helfen.

Hast Du es auch mal mit anderen Medien (anderer Stick, CD, DVD, Smartphone, etc.) versucht?
 
OK, habe jetzt mal noch eine DVD eingeschoben und ein Smartphone eingestöpselt. In dem Fenster von dsbmc erscheint dann etwas, aber KDE4/Dolphin reagiert nicht darauf, obwohl ich in den Pferefences von dsmbc anstatt 'thunar "%m"' 'dolphin "/media" eigegeben habe. Wenn ich caja oder pcmanfm in KDE starte, dann erscheinen die Medien allerdings. Jedoch kann ich über pcmanfm nicht auswerfen, es kommt eine Meldung "Operation not permitted". über caja kann ich auswerfen, das Laufwerk öffnet sich, es kommt sogar eine Meldung, dass das Medium entfernt werden kann, jedoch verschwindet dann das Symbol von der gemounteten DVD nicht. Abgesehen davon, dass man als User vorerst dsbmc noch im Terminal starten muss, obwohl dsbmd vorher automatisch als root gestartet wurde. Alles insgesamt nicht zufriedenstellend, HAL bleibt wohl weiterhin die beste Lösung.

Wenn ich hier etwas übersehen habe und jemand dsbmc erfolgreich mit voller automatischer Einbindung und fehlerfreiem Funktionieren mit diversen Fenstermanagern am Laufen hat, dann bitte Lösung genauer schildern.
 
Wenn ich hier etwas übersehen habe und jemand dsbmc erfolgreich mit voller automatischer Einbindung und fehlerfreiem Funktionieren mit diversen Fenstermanagern am Laufen hat, dann bitte Lösung genauer schildern.

Vielleicht wäre das eher in einem anderen Thread besser untergebracht. Wir hatten uns ja schon mal über dsbmd/dsmbc an anderer Stelle unterhalten.
Und vielleicht hast du andere Erwartungen, denn bei mir funktioniert das super gut und ich nutze es nur noch, seit marcel es damals hier vorgestellt hatte. Dabei lasse ich nicht automatisch einbinden, denn das will ich ja nicht immer, nur, weil ich einen Stick einlege. der dsbmd startet über Eintrag in der rc.conf und dann starte ich dsbmc nach Einloggen in meiner Autostart, zusammen mit anderen Desktop-Geschichten und mit dem Aufruf /usr/local/bin/dsbmc -i & Die Option sorgt dafür, dass dsbmc als Icon in der Taskleiste läuft und ein Benachrichtungsfenster aufpoppt, wenn neue Medien erkannt werden. Durch anklicken kann ich diese dann mounten oder es eben sein lassen und durch Konfiguration des dsbmc starte ich dann einen Dateimanager am Einhängepunkt und durch Konfiguration des Dateimanagers (pcmanfm) schließe ich diesen, wenn ich über dsbmc wieder ausgehangen habe.
Das klappt super gut.
Dass Dateimanager selbst irgendwelche Geräte einbinden und aushängen können, ist oft in deren Menüs vorgesehen und zielt auf Mechanismen in GNU/Linux. Manchmal haben die Maintainer mehr davon in FreeBSD integriert, aber meist sind das einfach Überbleibsel aus dem GNU/Linux-Umfeld, die keine Funktion in FreeBSD haben. Zumindest ich persönlich finde das auch gut so, denn ich mounte entweder manuell oder nun über dsbmc dann, wenn ich das möchte und nicht, wenn irgendwer im System das so haben will.
Also, zu mir passt dsbmc super gut und es funktioniert auch sehr gut und zufriedenstellend.
 
Zurück
Oben