DSBMC/DSBMD

marcel

Well-Known Member
Anlässlich des Erscheinens der neuen Versionen von DSBMC und DSBMD in den Ports, das Dank der schnellen Arbeit der Committer so zeitnah erfolgt ist, eröffne ich dieses Thema. Ich möchte mich auch hier nochmals bei den Mitgliedern der BSDForen bedanken, die durch ihre Anmerkungen und Fehlerberichte die Weiterentwicklung hin zu den neuen Versionen angestoßen haben.
 
Hallo Marcel !

Ich habe mal den DSB-Mixer angetestet !
Es funktioniert auch alles soweit , nur
lässt sich die Lautstärke im Tray nicht per Mausrad
verstellen !

Ist das so gewollt ?

Gruss
 
Hallo @marcel

ich baue gerade mein Repo neu, dabei wird auch die neue Version von dsbmd 0.4.1 gebaut (vielleicht sind damit auch Ungereimtheiten von mtp behoben, die ich mit Version 0.4 habe und die ich hier kurz schildern möchte):

- Beim Anstecken meines HTC Sensation wird mir über dsbmc ein Android Phone zum Mounten angeboten. Das kann ich auch per Mausklick über den Dolphin öffnen.
- Ich habe den Mountpunkt auf /usr/home/holger/mnt gelegt, das Android Phone wird auf /usr/home/holger/mnt/Android Phone/ gemountet.
- Ich kann auf den Ordner store_00010001/ klicken, und komme so an die Ordnerstruktur meines Smartphones
- In Music etwa kann ich einen Ordner anlegen.
- Möchte ich in den Ordner Music eine kleine flac Datei kopieren, kommt der Hinweis, dass die Datei wegen fehlendem Speicherplatz nicht geschrieben werden kann, was aber Unfug ist, weil noch ca. 10 GB Platz frei ist
- Komisch finde ich, dass die Dateien des Smartphones root gehören, die Gruppe wheel hat zwar Lese- und Ausführ-Rechte, aber keine Schreibrechte.

Leider brauchte ich vorhin dringend zwei Audios von meinem Rechner auf mein Smartphone, und musste daher mein Arch Linux starten. Dort wurde per mtp das Smartphone eingebunden und ich konnte als Nutzer holger ohne Schwierigkeiten die Audios in den Ordner Music kopieren.

Was stimmt da bei FreeBSD nicht?
libmtp ist installiert, fusefs-simple-mtpfs ist installiert, fuse wird per dsbmd geladen.

Was kann ich probieren, um dieses Fehlverhalten einzugrenzen? Es wäre schon schön, wenn das unter FreeBSD ähnlich gut klappt mit dem mtp-Device, wie unter Arch Linux.

Nun ja, ich warte erstnal den Bau meines Repos samt DSBMD 0.4.1 ab, das sind über 700 Pakete, die neu gebaut werden müssen, vielleicht klappt es dann auch mit dem mtp-Device.

Viele Grüße,
Holger

Nachtrag: Ein Aushängen über DSBMC und Abziehen des HTC führt dazu, dass DSBMC die Verbindung zum DSBMD verliert, ein erneuter Aufruf von DSBMC führt zu der Meldung "Connection Refused"
 
ich habe eben mein Android (ältere Version, glaube 5...) probiert und da sieht das alles anders aus.
Die internen Dateien sind nach dem Mount so gelistet:
Code:
pit@senyo ~:- > ll "/media/Android/Interner Speicher/"
total 2
drwxrwxr-x  2 pit  pit     0  6 Feb. 13:35 .eCtcQjbu1dgnvtFnvnr6yepTp1M=
drwxrwxr-x  2 pit  pit     0 16 Aug.  2016 .HhTjqSRo6dybqDAV2ImUSREmnZU=
drwxrwxr-x  2 pit  pit     0  3 Jan.  1970 Alarms
drwxrwxr-x  2 pit  pit     0 29 Dez.  2014 Android
-rw-r--r--  1 pit  pit   145 20 Juli 23:11 customized-capability.xml
drwxrwxr-x  2 pit  pit     0 19 Juli  2016 DCIM
-rw-r--r--  1 pit  pit  1255 20 Juli 23:11 default-capability.xml
drwxrwxr-x  2 pit  pit     0  6 Feb. 17:58 DeviceConfig
drwxrwxr-x  2 pit  pit     0 21 Juli  2016 Digest
drwxrwxr-x  2 pit  pit     0  2 Aug.  2016 Download
drwxrwxr-x  2 pit  pit     0 13 Juli  2016 media
drwxrwxr-x  2 pit  pit     0 19 Juli  2016 Movies
drwxrwxr-x  2 pit  pit     0 19 Juli  2016 Music
drwxrwxr-x  2 pit  pit     0 26 Juli  2016 nitrodesk
drwxrwxr-x  2 pit  pit     0  3 Jan.  1970 Notifications
drwxrwxr-x  2 pit  pit     0 19 Juli  2016 Pictures
drwxrwxr-x  2 pit  pit     0  3 Jan.  1970 Podcasts
drwxrwxr-x  2 pit  pit     0  4 Okt.  1970 recovery
drwxrwxr-x  2 pit  pit     0  3 Sep.  2016 Ringtones
Kopieren eine .mp3 nach Music verlief problemlos. Allerdings nutze ich diese Internen Speicher nicht und habe auch keinen Dateimanager auf dem Handy installiert, so dass ich es nicht direkt vom Handy aus testen kann.
Der "normale" Datenaustausch erfolgt bei mir über eine eingelegte SD-Card, auf die ich auch alle Bilder lege und die ich dann gut über simple-mtpfs erreichen kann.
Mein manueller mount als root sah zuvor immer so aus:
Code:
simple-mtpfs -o allow_other --device 1 /mnt/usb1
Soweit ich mich erinnere, ist das in der Default-Konfig von dsbmc gleich umgesetzt.
 
Hallo Pit,

das sieht ja bei Dir in der Tat ganz anders aus.

Nun warte ich erst mal den Bau der Pakete ab

Morgen werde ich es auch noch mit einer frischen Mate Installation testen und dann berichten.
 
Hallo @holgerw ,

bei mir gibt es keine Probleme mit dem Schreiben auf mein Android. Auf die Schnelle kann ich Dir leider nicht weiterhelfen.

Nachtrag: Ein Aushängen über DSBMC und Abziehen des HTC führt dazu, dass DSBMC die Verbindung zum DSBMD verliert, ein erneuter Aufruf von DSBMC führt zu der Meldung "Connection Refused"

Das klingt nach Absturz von dsbmd. In dem Fall:

Code:
service dsbmd start

Ich werde morgen/später mal sehen, was man da machen kann.
 
Hallo Marcel,

danke für Deine Hilfe, da es mit Linux und mtp geht, und mtp auch unter FreeBSD läuft, vermute ich eine Kleinigkeit, die vielleicht noch nicht mal mit Deiner Software zu tun hat.

Ich bin gespannt, ob es morgen über die neue Version von DSBMD unter Mate mit dem Dateimanager caja gehen wird.
 
Ich habe mal den DSB-Mixer angetestet !
Es funktioniert auch alles soweit , nur
lässt sich die Lautstärke im Tray nicht per Mausrad
verstellen !

Hi @bluescreen ,

die Funktion wurde implementiert, noch ein Bug behoben, und eine kleine (optionale) optische Änderung vorgenommen.

Installation

Code:
# git clone https://github.com/mrclksr/DSBMixer.git
# git clone https://github.com/mrclksr/dsbcfg.git
# cd DSBMixer && qmake
# make && make install
 
danke für Deine Hilfe, da es mit Linux und mtp geht, und mtp auch unter FreeBSD läuft, vermute ich eine Kleinigkeit, die vielleicht noch nicht mal mit Deiner Software zu tun hat.

Hi @holgerw ,

ich denke, dass es an Deiner Installation von simple-mtpfs liegen könnte. Du könntest vielleicht mal den Befehl manuell ausführen:

Code:
% mkdir /usr/home/holger/mnt/android
% su
# simple-mtpfs -o allow_other,uid=1001,gid=1001 --device 1 /usr/home/holger/mnt/android

die UID und GID sind natürlich entsprechend anzupassen. Interessant wäre dann zu sehen, ob sich auf diese Weise ein ähnliches Verhalten zeigt.
 
die UID und GID sind natürlich entsprechend anzupassen. Interessant wäre dann zu sehen, ob sich auf diese Weise ein ähnliches Verhalten zeigt.
Hallo Marcel,

Code:
simple-mtpfs -o allow_other,uid=100,gid=5000 --device 1 /usr/home/holger/mnt/android
Das mountet das Device mit meinen User- und Gruppenrechten korrekt. Ich habe eine Gruppe users mit GID 5000.

In die dsbmd.conf habe ich mich unter den erlaubten Nutzern eingetragen, und die Gruppe "users" hinzugefügt.

Aber über dsbmc wird mein Android nach wie vor mit Rechten für root und wheel gemountet, wobei wheel noch nicht einmal Schreibrechte hat.

Muss ich denn in der dsbmd.conf noch etwas anpassen?

Wenn ich übrigens erst mein Android anstöpsele und dann versuche, dsbmc zu starten, wirdf dieser Start verweigert, starte ich dsbmc über Konsole, gibt es keine weitere (Fehler)-Ausgabe.
 
Hallo Holger,

In die dsbmd.conf habe ich mich unter den erlaubten Nutzern eingetragen, und die Gruppe "users" hinzugefügt.

Das ist nicht falsch, aber es reicht eines von beiden. Wenn Dein Benutzername aufgeführt ist, bist Du autorisiert, ebenso wenn derselbe nicht aufgelistet ist, aber dafür eine Gruppe angegeben ist, der Du angehörst.

Muss ich denn in der dsbmd.conf noch etwas anpassen?

Wie ist denn mtpfs_mount_cmd in /usr/local/etc/dsbmd.conf definiert?

Wenn ich übrigens erst mein Android anstöpsele und dann versuche, dsbmc zu starten, wirdf dieser Start verweigert, starte ich dsbmc über Konsole, gibt es keine weitere (Fehler)-Ausgabe.

Was "sagt" dsbmc denn?
 
und dann versuche, dsbmc zu starten, wirdf dieser Start verweigert
ich starte den einfach immer im autostart und als Tray-Icon.
Das ist keine korrekte Antwort auf das Problem, aber ein Hinweis auf eine andere Nutzung. Der Dämon läuft ja ohnehin, davon gehe ich aus. Der Client ist klein und belastet das System nicht. Also starte ich ihn halt sofort und lasse ihn laufen. Lege ich einen Datenträger ein, poppt das kleine Fenster auf und ich kann ihn anklicken und mounten oder einfach ignorieren, das Fenster unverrichteter Dinge wieder schließen.
 
Hallo Marcel,

Was "sagt" dsbmc denn?
Leider gar nichts, ich gebe es an der Konsole ein, bestätige mit Return und dann kommt nichts weiter. Nach sehr langer Zeit manchmal dann eine Box mit dem Hinweis, "Connection to DSBMD lost".

Ich poste hier mal meine /usr/local/etc/dsbmd.conf:
Code:
preload_kmods =  ufs, msdosfs, cd9660, ext2fs, fuse, geom_linux_lvm
poll_interval = 5
cdrspeed = 16
mount_dir = /usr/home/holger/mnt
max_clients = 10
usermount = false
msdosfs_opts = "large,rw,uid=%u,gid=%g,sync"
msdosfs_locale = de_DE.UTF-8
ufs_opts = "rw,noatime,nosuid"              
ntfs_mount_cmd = "/usr/local/bin/ntfs-3g -o \"uid=${DSBMD_UID},gid=${DSBMD_GID}\" ${DSBMD_DEVICE} \"${DSBMD_MNTPT}
mtpfs_mount_cmd = "/usr/local/bin/simple-mtpfs -o \"uid=${DSBMD_UID},gid=${DSBMD_GID},allow_other\" ${DSBMD_DEVICE
ptpfs_mount_cmd = "/usr/local/bin/gphotofs --port=${DSBMD_GPHOTO_USB_PORT} -o allow_other \"${DSBMD_MNTPT}\""
exfat_mount_cmd = "/usr/local/sbin/mount.exfat -o \"uid=${DSBMD_UID},gid=${DSBMD_GID}\" ${DSBMD_DEVICE} \"${DSBMD_
# allow_users = holger, diane
allow_groups = operator, wheel, users

msdosfs wird mit korrekter UID und GID gemountet, ntfs wird mit korrekter UID und GID gemountet, nur mtp wird mit UID root (rwx) und GID wheel (rx) gemountet, was mir als Nutzer dann natürlich nichts bringt.

Ein wenig irritierend finde ich die Zeile (die aber so standardmäßig gesetzt ist)
usermount = false
Ich vermute mal, wenn in /etc/sysctl.conf der Usermount nicht erlaubt ist, kann man hier den Wert true setzen, um den Usermount hierüber alternativ zu erlauben. Das hat aber wohl nichts mit meiner mtp-Sachte zu tun.

Was kann ich noch machen?

Viele Grüße,
Holger
 
Hallo Holger,

könntest Du mir bitte die installierte Version von dsbmd, dsbmc und simple-mtpfs nennen? Um zu sehen, was genau dsbmd bei Deinem Android ausführt, würde ich Dich bitten, mal die Definition von mtpfs_mount_cmd wie folgt zu ändern:

Code:
mtpfs_mount_cmd = "echo /usr/local/bin/simple-mtpfs -o \"uid=${DSBMD_UID},gid=${DSBMD_GID},allow_other\" ${DSBMD_DEVICE} \"${DSBMD_MNTPT}\" > /tmp/cmd"
Anschließend dsbmd (neu) starten, und per dsbmc das Gerät einhängen (hier wird natürlich ein Fehler zurückgeben, was aber nicht wichtig ist). In der Datei /tmp/cmd befindet sich dann der Befehl, den dsbmd ausgeführt hätte. Diesen bitte hier posten und ihn manuell auf der Konsole ausführen, um zu sehen, ob er sich so verhält, wie er soll. Die eben gemacht Änderung in /usr/local/etc/dsbmd.conf rückgängig machen.

Ist etwas über dsbmd in der /var/log/messages zu finden?
Code:
grep dsbmd /var/log/messages
 
Ein wenig irritierend finde ich die Zeile (die aber so standardmäßig gesetzt ist)
usermount = false
Ich vermute mal, wenn in /etc/sysctl.conf der Usermount nicht erlaubt ist, kann man hier den Wert true setzen, um den Usermount hierüber alternativ zu erlauben. Das hat aber wohl nichts mit meiner mtp-Sachte zu tun

Wenn usermount = true und auch vfs.usermount=1 ist, werden die Geräte direkt als der Benutzer eingehängt, der den Befehl initiiert. Hier gibt es allerdings ein Problem in FreeBSD. Es funktioniert nur, wenn dsbmd manuell nach dem Bootvorgang (neu) gestartet wird, etwa per service dsbmd restart. Das Problem liegt irgendwo tief im VFS verborgen. Habe mich schon durch den Code gekämpft und meinen Kernel um einige Debug-Meldungen bereichert, um der Sache auf den Grund zu gehen.

Lange Rede, kurzer Sinn: Du kannst diese Option ignorieren.
 
Ich möchte nur ungern zwischen diese interessante Analyse funken, aber mal was anderes vermelden:
Eben wollte ich ein .iso mounten und nachdem ich das benötigte md-Gerät angelegt hatte, poppte es sofort im laufenden dsbmc auf, ließ also das Fenster genauso öffnen, als wenn ich ein neues Medium eingelegt hätte. Und genauso einfach konnte ich es mit Anklicken mounten und meinen Dateimanager starten und ebenso einfach hernach wieder umounten. Nur löschen musste ich dann das md natürlich wieder von Hand.
Sehr schön!
 
Hallo @marcel

vielen Dank für Deine Hilfe.

Ich werde morgen Abend die gewünschte Ausgabe liefern.
 
Hallo @marcel

mit meinem HTC stimmt etwas nicht, es wird mittlerweile gar nicht mehr angezeigt beim Einstecken, ein dmesg zeigt auch kein HTC Android mehr an, sondern bloß ein USB-Device.

Da steht wohl ein neues Smartphone an, ich werde mir eines holen, bei welchem ich die Art der Datenübertragung wählen kann (USB oder mtp).

Sobald ich das neue Gerät habe, werde ich es mit Deiner Software in beiden Modi testen.

Danke für Deine bisherige Hilfe.

Viele Grüße
Holger
 
Hallo Holger,
danke für die Rückmeldung.
Bin gespannt auf Deinen Bericht.
Beste Grüße
Marcel

Hallo Marcel,

und hier die Rückmeldung:

Seit heute habe ich ein Huawei P9. Ich stöpsel das Gerät in den PC, auf dem Smartphone habe ich die Wahl, "nur Laden" oder "Datenaustausch", ich wähle den Datenaustasusch, dann erscheint im DSBMC das Gerät, ich gehe auf öffnen, und der interne Speicher wird mit meinen Nutzerrechten korrekt über den dolphin geöffnet.

Es lag am HTC, nicht an Deiner Software. Zwischenzeitlich wird das HTC noch nicht einmal mehr als HTC One im Windows Explorer unter Win7 auf Arbeit angezeigt.

Viele Grüße
Holger
 
Zurück
Oben