1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Device-Manager verschiedener Desktop-Environements unter FreeBSD

Dieses Thema im Forum "FreeBSD - Allgemein" wurde erstellt von holgerw, 11 Juli 2017.

  1. holgerw

    holgerw Active Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    975
    Ort:
    Simtshausen - Hessen
    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
     
  2. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.022
    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.
     
  3. holgerw

    holgerw Active Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    975
    Ort:
    Simtshausen - Hessen
    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
    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: 11 Juli 2017
  4. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.022
    /etc/...

    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.
     
  5. holgerw

    holgerw Active Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    975
    Ort:
    Simtshausen - Hessen
    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.
     
  6. holgerw

    holgerw Active Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    975
    Ort:
    Simtshausen - Hessen
    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: 11 Juli 2017
  7. Vril

    Vril Member

    Registriert seit:
    4 August 2016
    Beiträge:
    213
    da bin ich mal gespannt, wie das der hal - daemon ohne procfs setzen in /etc/fstab macht
     
    holgerw gefällt das.
  8. holgerw

    holgerw Active Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    975
    Ort:
    Simtshausen - Hessen
    Klar, in die /etc/fstab muss natürlich auch procfs, danke für den Hinweis.
     
  9. holgerw

    holgerw Active Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    975
    Ort:
    Simtshausen - Hessen
    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
     
  10. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.022
    du hast also keinen polkitd_enable="YES" in der rc.conf?
     
  11. holgerw

    holgerw Active Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    975
    Ort:
    Simtshausen - Hessen
    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 :)
     
  12. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.022
    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.
     
  13. holgerw

    holgerw Active Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    975
    Ort:
    Simtshausen - Hessen
    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
     
    marcel und pit234a gefällt das.
  14. holgerw

    holgerw Active Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    975
    Ort:
    Simtshausen - Hessen
    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.
     
    marcel und pit234a gefällt das.
  15. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.022
    das hört sich ja super an, danke für deine Erfahrungsberichte.
     
  16. marcel

    marcel New Member

    Registriert seit:
    9 Juli 2017
    Beiträge:
    26
  17. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.022
    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.
     
  18. marcel

    marcel New Member

    Registriert seit:
    9 Juli 2017
    Beiträge:
    26
    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.
     
  19. Lance

    Lance Member

    Registriert seit:
    26 Oktober 2015
    Beiträge:
    328
    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.
     
  20. holgerw

    holgerw Active Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    975
    Ort:
    Simtshausen - Hessen
    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.
     
    Lance gefällt das.
  21. marcel

    marcel New Member

    Registriert seit:
    9 Juli 2017
    Beiträge:
    26
    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.
     
    holgerw gefällt das.
  22. Vril

    Vril Member

    Registriert seit:
    4 August 2016
    Beiträge:
    213
    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
     
  23. derOliver

    derOliver Systemheld

    Registriert seit:
    31 Dezember 2014
    Beiträge:
    334
    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 :)