Device-Manager verschiedener Desktop-Environements unter FreeBSD

H

holgerw

Guest
Hallo,

aufgrund verschiedener Threads zu dem Thema und eigener bisher gemachter Erfahrungen (die leider kaum mit Erfolgen verbunden waren), möchte ich gerne dieses Thema etwas systematischer angehen, um da zu Lösungen zu kommen.

Ich hoffe, dass Leute, die Desktopenvironements wie kde4/plasma5, Gnome3 oder xfce4 benutzen, und auch gerne in den Genuss kommen möchten, dass USB-Devices per Mausklick einzubinden sind, Interesse haben, sich zu beteiligen.

Ein paar Bitten, was das "systematisch herangehen" betrifft:
- es geht um aktuelles FreeBSD 11
- Ausführliche Hinweise, wie es unter früheren FreeBSD-Versionen mal ging, sind nur dann hilfreich, wenn sie mit FreeBSD 11 noch gehen
- es geht hier nicht um Automount mit bestimmten Einträgen in die /etc/fstab, wie im Handbuch beschrieben, sondern um das Device-Management der Desktopenvironements kde, gnome und xfce, die per Popup und Mausklick ein einfaches Einbinden von Wechseldatenträgern erlauben

Folgende Voraussetzungen sollen erfüllt sein:
- Die Nutzer, die mounten dürfen, sollen in den Gruppen operator und wheel sein
- in /dev/devfs.conf sollen die Zugriffsrechte für die Devices korrekt gesetzt sein
- dbus / hal sollen installiert sein und in /etc/rc.conf aktiviert werden
- in /etc/sysctl.conf soll Nutzern das Mounten erlaubt sein
- in /boot/loader.conf soll fuse geladen werden
- ein händisches Mounten des externen Devices auf ~/nutzer/mnt soll durch den Nutzer funktionieren, wie etwa bei meiner USB-Platte, die mit MBR partitioniert und mit fat32 formatiert ist:
Code:
mount -t msdosfs -o large /dev/da0s1 /home/holger/mnt

Zunächst schlage ich eine Beschränkung auf fat und ntfs vor, damit es etwas übersichtlicher bleibt.

Bei den externen Devices spielt vielleicht auch noch eine Rolle, wie sie partitioniert sind (ob MBR, GPT oder gar keine Partitrionstabelle) und wie sie formatiert sind (fat16, fat32 oder ntfs).

Beiträge können vielleicht wie folgt aussehen:

System: FreeBSD-RELEASE 11p9 64bit
verwendetes DE: plasma5
verwendetes Device: USB-Stick mit fat32 formatiert
händisches Mounten im Homeverzeichnis: erfolgreich
... Erläuterungen ...

Das sollte doch zu lösen sein.

Ein eigener Beitrag folgt im Laufe des Tages, vielleicht mag auch jemand anderer anfangen.

Viele Grüße,
Holger
 
ich mounte nur manuell, möchte aber dies noch anmerken:

wie im Kapiel "17.4.1. Konfiguration von Geräten" des Handbuches beschrieben, habe ich nicht die /etc/devfs.conf verändert, sondern eine /etc/devfs.rules angelegt. Die zeige ich mal:
Code:
pit@senyo ~:- > cat /etc/devfs.rules
[pitrules=11]
add path 'speaker' mode 0660 group operator
add path 'acd*' mode 0660 group operator         # CD devices
add path 'cd*' mode 0660 group operator         # CD devices
add path 'xpt*' mode 0660 group operator        # required for CD access
add path 'pass*' mode 0660 group operator       #  ----"----
add path 'da*' mode 0660 group operator       # SCSI-Disks, e.g. USB-Sticks
add path 'md*' mode 0660 group operator         # virtual FSs, e.g. for .img, .iso

add path 'usb/2.3.0' mode 0666 group saned
add path 'ugen2.3' mode 0666 group saned

#add path 'usb*' mode 0777 group cups
#add path 'ugen*' mode 0777 group cups
#add path 'lpt*' mode 0660 group cups
#add path 'usb/6.2.0' mode 0660 group cups
#cups ist auch scanner
Damit diese Einträge wirksam werden, enthält meine rc.conf den Hinweis:
Code:
devfs_system_ruleset="pitrules"
Die rc.conf enthält auch einen Eintrag
Code:
fusefs_enable="YES"
zusätzlich zum Laden des Moduls in
Code:
kld_list="ext2fs nvidia fuse vboxdrv sem cd9660_iconv"
also nicht in der /boot/loader.conf (Für die Funktion aber nicht relevant).
Ich habe meine Standard-mountpoints in /mnt liegen:
Code:
pit@senyo ~:- > ll /mnt
total 19
drwxr-xr-x    2 pit   operator     2 10 Sep.  2016 cdrom
drwxr-xr-x   21 root  wheel      512 12 Jan. 14:16 files
drwxr-xr-x    2 pit   operator     2  2 Feb. 17:42 ipod
drwxr-xr-x   10 1000  100       4096  9 Okt.  2013 movie
drwxrwxrwx  106 root  wheel     8192 18 Jan.  2009 musik
drwxrwxrwx    2 pit   operator     2  8 Apr.  2016 nfs
drwxrwxrwx    2 pit   operator     2  8 Apr.  2016 nfs1
drwxrwxrwx    2 pit   operator     2  8 Apr.  2016 nfs2
drwxrwxrwx    2 pit   operator     2 18 Mai  11:41 smb
drwxrwxrwx    6 pit   operator     6  8 Juli  2016 thecus
drwxrwxrwx    2 pit   operator     2  8 Apr.  2016 usb
drwxrwxrwx    2 pit   operator     2 16 Apr.  2016 usb1
drwxrwxrwx    2 pit   pit          2  8 Feb. 10:45 usb2
Dorthin mounte ich für ich gewöhnlich, nicht in mein ~/, weil ich dieses regelmäßig rsynce und dann nicht externe Speicher mitnehmen möchte.
Ich kann fremde Dateisysteme mounten:
Code:
pit@senyo ~:- > mount -t msdosfs -o rw /dev/da1s1 /mnt/usb1
pit@senyo ~:- > ext4fuse /dev/da2s1 /mnt/usb2
pit@senyo ~:- > su
Password:
pit@senyo /home/pit:-# ntfs-3g -o noatime,uid=1001,gid=1001,rw /dev/da3s1 /mnt/usb
pit@senyo /home/pit:-# simple-mtpfs -o allow_other --device 1 /mnt/ipod
Code:
/dev/da1s1 on /mnt/usb1 (msdosfs, local, nosuid, mounted by pit)
/dev/fuse on /mnt/usb2 (fusefs, local, nosuid, synchronous, mounted by pit)
/dev/fuse on /mnt/usb (fusefs, local, noatime, synchronous)
/dev/fuse on /mnt/ipod (fusefs, local, synchronous)
ext-fuse geht nur ro, auch als root nichts zu machen. Aber:
Code:
pit@senyo ~:- > mount -t ext2fs -o rw /dev/da2s1 /mnt/usb2
Code:
/dev/da2s1 on /mnt/usb2 (ext2fs, local, nosuid, mounted by pit)
geht auch schreibend.
Wie oben gezeigt eingebunden, kann auch der User schreiben, sofern er die Rechte dazu hat (bei simple-mtpfs wird das komplette Mobiltelefon eingebunden, es kann nicht überall hin geschrieben werden). Also auch der Mount des ntfs-Dateisystems kann hernach vom User in einem Dateimanager bearbeitet werden, Dateien hinzugefügt oder gelöscht werden. Die Zuweisung von uid und gid ist dazu nicht zwingend, noatime hat damit auch nichts zu tun. Das sollte nur ein Beispiel für weitere mögliche Optionen sein.

Die Einschränkungen, dass ein User manche Mounts nicht ausführen kann, liegen hier nicht innerhalb von FreeBSD und dass ext4fuse nur ro geht, hat nichts mit mangelnden Rechten oder falschen Optionen zu tun.
 
Hallo Pit,

ja, die /etc/devfs.rules und ihre Aktivierung in der /etc/rc.conf ist eine Alternative (als Rundum-Sorglos-Datei für Device-Zugriffe kenne ich die auch aus Nicols Howto zu FreeBSD auf cooltrainer).

Der Rest gibt sicherlich gute Ergänzungen zum Thema "händisches Mounten" ab, auch was unterschiedliche Dateisysteme betrifft.

Aber mir geht es ja primär
um das Device-Management der Desktopenvironements kde, gnome und xfce, die per Popup und Mausklick ein einfaches Einbinden von Wechseldatenträgern erlauben
Das händische Mounten als Nutzer ist nur als Randnotiz zu verstehen und zum Überprüfen, ob der Mount überhaupt geht, bevor man sich an die Device-Manager-Thematik macht.

Edit: /dev/devfs.rules korrigiert zu /etc/devfs.rules
 
Zuletzt bearbeitet von einem Moderator:
/etc/...

Das händische Mounten als Nutzer ist nur als Randnotiz zu verstehen und zum Überprüfen, ob der Mount überhaupt geht, bevor man sich an die Device-Manager-Thematik macht.
genau.
Die Thematik ist aber deutlich größer, als sich an einen einzigen Device-Manager zu halten. Es greifen mehrere Dienste ineinander und arbeiten zusammen. Ich weiß nicht, ob das überhaupt einfach DE-übergreifend behandelt werden kann. Nutzen alle DEs die gleichen Mechanismen? Ich weiß das nicht.
Für mich sind deshalb die Grundlagen unbedingt entscheidend. Das muss, der Rest kann funktionieren.
 
Die Thematik ist aber deutlich größer, als sich an einen einzigen Device-Manager zu halten. Es greifen mehrere Dienste ineinander und arbeiten zusammen. Ich weiß nicht, ob das überhaupt einfach DE-übergreifend behandelt werden kann. Nutzen alle DEs die gleichen Mechanismen? Ich weiß das nicht.
Für mich sind deshalb die Grundlagen unbedingt entscheidend. Das muss, der Rest kann funktionieren.

Nun, ich möchte in diesem Thread ja zu verschiedenen DEs und deren Device-Manager zu Resultaten kommen und, dass hoffentlich einige zu dem etwas beitragen, was sie jeweils nutzen (zu Gnome3 werde ich mich wohl eher zurück halten, mehr als eine Testinstallation und wenige Erfahrungen damit, kann ich da nicht bieten).

Mag sein, dass es unter KDE genauso läuft, wie unter Gnome3, vielleicht gibt es da auch unterschiedliche Ansätze.

Davon abgesehen: Diese ganzen Sachen laufen unter diversen GNU/Linux Systemen seit Jahren mehr oder weniger schmerzfrei vorkonfiguriert per Mausklick.
Der Unterschied zu FreeBSD ist eben der, dass da nichts vorkonfiguriert ist und es einige Abweichungen bezogen zum Basis-System gibt.

Aber Hexerei wird das ja wohl nicht sein, und vielleicht wird - auch wenn es nicht ganz trivial scheint - hier komplizierter gedacht, als es eigentlich umzusetzen ist.
 
Dann fange ich mal an.

Erstes Szenario
System:
FreeBSD 11.0-RELEASE-p9
verwendetes DE: plasma5
verwendetes Device: USB-Stick ohne Partitionstabelle, formatiert mit
Code:
newfs_msdos /dev/da0
--------------------------------------
händisches Mounten als Nutzer: erfolgreich
Code:
mount -t msdosfs /dev/da0 /home/holger/mnt
--------------------------------------
Mounten über plasma5-Device-Manager als Nutzer: erfolgreich
Eine Überprüfung mit dem Komando mount gibt folgendes zum Stick aus:
Code:
/dev/da0 on /media/disk (msdosfs, local, nosuid)
--------------------------------------
Lesen / Schreiben als Nutzer: erfolgreich / erfolgreich
Unmounten über plasma5-Device-Manager als Nutzer: erfolgreich
 
Zuletzt bearbeitet von einem Moderator:
...
- es geht hier nicht um Automount mit bestimmten Einträgen in die /etc/fstab, wie im Handbuch beschrieben, sondern um das Device-Management der Desktopenvironements kde, gnome und xfce, die per Popup und Mausklick ein einfaches Einbinden von Wechseldatenträgern erlauben
...

da bin ich mal gespannt, wie das der hal - daemon ohne procfs setzen in /etc/fstab macht
 
Zweites Szenario

System: FreeBSD 11.0-RELEASE-p9
verwendetes DE: plasma5
verwendetes Device: USB-Stick mit GPT, formatiert mit fat32 und dem Label DOS

wie Szenario 1, erfolgreich
 
du hast also keinen polkitd_enable="YES" in der rc.conf?
Nein, ich werde diesen Eintrag aber mal hinzufügen und schauen, ob dann auch meine USB-Festplatte mit MBR und fat32 Partition über den Device-Manager zu mounten ist. Das klappt nämlich bisher noch nicht.

Aber vielleicht gibt es davon abgesehen ja für diese Sachen Desktop unabhängig eine ganz andere viel einfachere Lösung :)
 
Ich bin nie ein großer Freund von polkit und Kollegen gewesen und verstehe deine Hoffnung auf eine andere Lösung deshalb schon sehr gut.
Wenn man aber die die Sache mit dem Hal nutzen möchte, dann braucht man mehr, als nur eben einen laufenden Hald.
Du hast ja schon einige Dinge erwähnt, ich zeige nur mal einen kurzen Auszug aus einer Paketsuche, der vielleicht ahnen lässt, dass man da unter Umständen weit gehen muss:
Code:
pit@senyo ~:- > pkg search policykit
policykit-0.9_10               Framework for controlling access to system-wide components
policykit-gnome-0.9.2_8        GNOME frontend to the PolicyKit framework
policykit-qt-0.9.4_1           PolicyKit manager for Qt
pit@senyo ~:- > pkg search polkit
kcm-polkit-kde-0.0.20121008_4  Polkit-KDE configuration module
mate-polkit-1.12.0             MATE frontend to the PolicKit framework
polkit-0.113_5                 Framework for controlling access to system-wide components
polkit-gnome-0.105_1           GNOME frontend to the PolicyKit framework
polkit-kde-0.99.1_4            Polkit authentication UI for KDE Workspaces
polkit-qt-0.112.0              Qt4 wrapper around Polkit libraries
polkit-qt5-0.112.0             Qt5 wrapper around Polkit libraries
Ich könnte mir gut vorstellen, dass manche dieser Versionen sich ins Gehege kommen und es ist jedenfalls bezeichnend, dass manche DEs ihre eigenen Pakete brauchen. Ich gehe nicht davon aus, dass diese Dinger immer automatisch mit installiert werden. Und wenn, dann funktionieren sie unter Umständen noch lange nicht von selbst.
 
Hallo,

hier kommt eine ganz andere Lösung, die unter jeder Xserver-Sitzung funktioniert:
1. Installiert Euch sysutils/dsbmd und sysutils/dsbmc
2. Fügt in die /etc/rc.conf folgende Zeile:
Code:
dsbmd_enable="YES"
3. Fügt in die /boot/loader.conf
Code:
fuse_load="YES"
4. Unter "System" findet ihr das Programm DSBMC

5. Unter "Einstellungen" konfiguriert Ihr die Software nach Bedarf, für mich wichtig:
>>> Dateimanager: dolphin "%m"
>>> Spiele Audio-CDs mit: vlc cdda:///dev/cd0

Verschiedene externe Devices, Audio-CD, USB-Stick ohne Partitionstabelle mit vfat32, USB-Festplatte mit MBR und fat32, lassen sich per Mausklick einfach einbinden, öffnen, ausbinden, auswerfen.

Noch nicht probiert habe ich externe Devices mit ntfs und ext2.

Ich finde diese Software klasse, vielen Dank an den Entwickler und Maintainer @marcel

Viele Grüße,
Holger
 
Nachtrag zu DSBMC und NTFS

Gerade habe ich eine USB-Festplatte unter Win7 mit NTFS formatiert.

Die Platte lässt sich mit DSBMC genauso les- und schreibbar einbinden, wie fat32 auch, und das ohne weitere Basteleien mit ntfs-3g.
 
Nachtrag zu DSBMC und NTFS

Gerade habe ich eine USB-Festplatte unter Win7 mit NTFS formatiert.

Die Platte lässt sich mit DSBMC genauso les- und schreibbar einbinden, wie fat32 auch, und das ohne weitere Basteleien mit ntfs-3g.
das hört sich ja super an, danke für deine Erfahrungsberichte.
 
DSBMC

Ich habe die beiden Pakete auch mal installiert und noch nicht den automatischen Start umgesetzt, teste das Tool aber gerade mal und kann die positiven Erfahrungen von holgerw bestätigen. Den automount habe ich nicht gewollt, nur den Dämon und die GUI.

ein ext2 Medium wurde ebenso leicht rw eingebunden, wie diverse msosfs. Dabei wurde jeweils NICHT fuse benutzt.
Mein derzeit einziger NTFS Stick wird leider nicht erkannt, wie ein weiterer msdosfs ebenfalls nicht. Beide erzeugen einen Eintrag in /dev und ich habe beide schon zahlreiche Male manuell gemountet, was ich nun aber nicht zur Kontrolle probiert hatte. Die betroffenen Sticks "erscheinen" nicht in der GUI.
Nachgeholt: also ich konnte den Stick mit ntfs-3g manuell mounten, der mir in der DSBMC GUI nicht angezeigt wurde. Nach erfolgtreichem mount, erschien der Mountpoint in der GUI, nach doppelklick öffnete sich der Browser wie gewünscht an der passenden Stelle. Beim Versuch, das von root eingebundene Medium nun durch die GUI auswerfen zu lassen, brach der Dämon zusammen und die GUI verlor die Verbindung.
Voll toll: mein Handy wurde erkannt und war einfach und korrekt eingebunden.

Zu pcmanfm: der Aufruf pcmanfm "%m" öffnet nicht ein neues Fenster, weil ich für gewöhnlich immer schon welche offen habe. Es wird ein neuer Tab in einem offenen Fenster hinzugefügt, was man zunächst vielleicht übersieht. pcmanfm -n "%m" ändert das.

Es sollte vielleicht sogar ein eigener Thread geöffnet werden, aber ich halte diese Tests nun doch auch noch durchaus im Rahmen des Threads. Persönlich würde ich mich tatsächlich darüber freuen, wenn jemand sich die Mühe macht und die Fehler im "alten Verfahren" aufdeckt. Ich sehe aber die Chancen schwinden, wenn es eine so einfache und gute Alternative gibt.
 
Hallo @pit234a,

auch Dir besten Dank für's Testen!

Was mir natürlich nicht gefällt, ist der Absturz von dsbmd. Ich konnte ihn nicht reproduzieren, daher würde ich Dich gerne per PM um ein Paar Informationen bitten, wenn es Dir recht ist.
 
Ok, jetzt nochmal für doofe wie mich, ich brauche also für dsbmc und die zwei weiteren Pakete dazu weder FUSE und logischerweise noch den Eintrag
Code:
fuse_load="YES"

Richtig?

LG Lance


P.S. was mir hier noch auffällt dass immer wieder FAT32 erwähnt wird im Zusammenhang mit irgendwelchen Mount-Geschichten und ich jedoch schon immer (also seit FreeBSD 10) FAT32 ganz normal auto-mounten konnte unter KDE ohne irgendwelche extra-Tools oder Einstellungen.
 
Ok, jetzt nochmal für doofe wie mich, ich brauche also für dsbmc und die zwei weiteren Pakete dazu weder FUSE und logischerweise noch den Eintrag
Code:
fuse_load="YES"

Richtig?

LG Lance


P.S. was mir hier noch auffällt dass immer wieder FAT32 erwähnt wird im Zusammenhang mit irgendwelchen Mount-Geschichten und ich jedoch schon immer (also seit FreeBSD 10) FAT32 ganz normal auto-mounten konnte unter KDE ohne irgendwelche extra-Tools oder Einstellungen.

Hmmm, was fuse betrifft: Die Installation von DSBMD zieht fuse-Sachen nach, daher gehe ich davon aus, dass fuse sehr wohl benötigt wird, ohne den fuse-Eintrag habe ich es noch nicht probiert.

Was Mounten externer Devices angeht: USB-Stick ohne Partitionstabelle mit fat32 geht mit dem Device-Manager von KDE, aber große Devices mit Partitionstabelle und fat32 gehen bei mir nicht. Mit DSBMD hingegen gehen die auch.
 
Ok, jetzt nochmal für doofe wie mich, ich brauche also für dsbmc und die zwei weiteren Pakete dazu weder FUSE und logischerweise noch den Eintrag
Code:
fuse_load="YES"

Richtig?

Bei Version 0.4 sind die Laufzeit-Abhängigkeiten sysutils/fusefs-ntfs, sysutils/fusefs-simple-mtpfs, und graphics/fusefs-gphotofs standardmäßig ausgewählt, da sie von vielen gebraucht werden, und auch kaum ins Gewicht fallen. sysutils/fusefs-exfat muss, sofern man es benötigt, aus Lizenzgründen über die Ports installiert werden. Möchte man hingegen nur FAT, Ext2/3, CD9660 und UFS benutzen, die vom FreeBSD-Basissystem unterstützt werden, braucht man die FUSE-Pakete natürlich nicht.

Die benötigten Kernelmodule, darunter auch FUSE, werden von dsbmd selbst beim Start geladen. In der Datei /usr/local/etc/dsbmd.conf können dazu über die variable preload_kmods Module aufgelistet werden. Der Grund für die Entscheidung war, dass dem Benutzer unnötig Konfiguration abgenommen werden sollte, aber auch, dass damit keine unnötigen Veränderungen an der Systemkonfiguration vorgenommen werden muss.
 
Ok, jetzt nochmal für doofe wie mich, ich brauche also für dsbmc und die zwei weiteren Pakete dazu weder FUSE und logischerweise noch den Eintrag
Code:
fuse_load="YES"

Richtig?

.

Kann ich mir nicht vorstellen!
Wie soll sonst ein User ohne Root-Rechte ein fremdes filesystem mounten können? - denn fuse macht ja nichts anderes, als das Einbinden von Dateisystemen auf Benutzerebene zu ermöglichen.

Edit: sorry, da war jetzt parallel der "Chef" schneller - ich wollte da nicht reinquatschen
 
denn fuse macht ja nichts anderes, als das Einbinden von Dateisystemen auf Benutzerebene zu ermöglichen.
Userspace != mit Benutzerrechten :belehren:

FUSE (Filesystem in Userspace) meint Dateisystemtreiber außerhalb des Kernels (= Userspace). Es gibt einen generischen FUSE Treiber, der in den Kernel geladen wird und dann Userland Treiber die sich daran dranhängen. Ob ein normales Benutzer das darf, ist eine Berechtigungsfrage und darüber ob das okay ist oder nicht kann man länglich Diskutieren :)
 
Zurück
Oben