Bashmount-1.6.2 with udevil

Hello.
This is my first post in this forum. I use arch in one of my machines, though I am not an active member of the arch community (well, not until now, I guess ).
Following IgnorantGuru's advice, I am posting this here. He told me that there's a bashmount fan community around here, in arch, so I guess someone might be able to put this to some good use.
I had a hard time finding a frontend to manage udevil (other than spacefm and command line, that is). I was used to bashmount, so I took some minutes to kind of “port” (if I may use that word) it to udevil. Since I’ve spent many hours searching and found nothing, I figured I’d share this here in case it will be useful to anyone else. Direct link to the path in my server.
http://www.jesgue.es/files/bashmount-udevil-1.6.2.7z
This package is intended for Gentoo, but you can just pick the patch from files/ and apply it to bashmount 1.6.2. Only pendrive related stuff has been tested (my dvd drive doesn’t even work by now, so…).
Feel free to poke me if you need some bugfixing or help with the thing.
This is offered with the original bashmount license which happens to be gpl’ed.

David,
Thanks for your reply.
Well, we eventually went back to the 1.4.0 version we used with our previous EP 6.0 SP2 installation. Both portal and webdav access work well even with this older version in front of an Netweaver 04 EP 6.0 SPS11.
I also opened an OSS message and your words confirm what I read from an internal note within SAP, basically telling : due to a lot of changes in it's implementation and internal architecture, the 1.6.2 does pose problems for the WEBDAV servlet.

Similar Messages

  • Failed boot after enabling devmon service with systemctl

    I've recently reinstalled Arch and in trying to get a proper automount solution working I was playing with udevil and devmon. First I disabled and uninstalled ldm, which wasn't working as I wanted. Then installed udevil via pacman. I couldn't find proper instructions at first so I ran:
    # systemctl enable [email protected]
    and then rebooted. But that didn't work. Then I found something saying to run:
    # systemctl enable [email protected]
    So I disabled devmon@ and enabled devmon@MYUSERNAME then rebooted.
    As the system was shutting down it seemed to get stuck at a part about trying to save a random seed. I walked away for 10 minutes but when I came back nothing had changed so I hit the hard reset button. As it rebooted I could just barely see a whole lot of red [FAILED] signs flashing past my screen. When the screen comes to rest I am greeted by this. Once it gets to this point it doesn't accept any input from the keyboard except for Ctrl-Alt-Del which seems to cleanly reboot.
    So far I've booted my arch install cd and run the following on all my partitions along with trying the -p, -r and -a options.
    # fsck /dev/sda2
    Nothing I ran seemed to produce any output that would suggest there are any problems or anything like an error code 8, which I've read elsewhere is an operational error, whatever that means.
    Next I read up about chroot and gave that a go. I chrooted into my arch install and decided to disable the devmon@MYUSERNAME service and uninstall udevil incase that was interfering somehow. I also checked out the journalctl per the screenshots instructions but didn't really understand it. Also not sure on where that log information is stored so I can upload it here.
    Any help would be appreciated.
    Last edited by greatant (2013-06-11 11:02:07)

    I've not made any progress with this issue. I've decided it has to do with the random seed, but I can't find any information on it via ArchWiki, searching the forum or google.

  • Udevil/devmon won't unmount.

    Hey guys, I've finally gotten around to setting up automount on my Arch system, and I've installed udevil-git from the aur.
    I'm running devmon in the background from my openbox autostart file. Mounting works perfectly but it seems that I don't have permissions to unmount. I'm lgging in using LXDM and my file manager is marlin, I can unmount running marlin as root but not as a user.
    I've checked the udevil suid and I'm pretty sure I have kernel polling enabled:
    $ ls -l /usr/bin/udevil
    -rwsr-xr-x 1 root root 181930 Aug 19 20:12 /usr/bin/udevil
    $ cat /sys/module/block/parameters/events_dfl_poll_msecs
    2000
    $ cat /sys/block/sr0/events_poll_msecs
    cat: /sys/block/sr0/events_poll_msecs: No such file or directory
    I got those last two commands from the udevil homepage, I'm a little concerned about the output of the last one, is that where my problem lies? As you can probably tell, I don't really know what these commands are returning.
    What am I missing here? Any pointers would be greatly appreciated.
    Cheers,
    Toby.
    ##UPDATE##
    I never found out how to graphically unmount in pcmanfm via udevil but swicthed to udiskie and everything works...
    Last edited by TobyJamesJoy (2012-09-14 13:01:32)

    Last night I installed Arch on my other machine (full time archer now) along with udevil, I'm starting devmon and openbox in the same way as my other machine (except with pcmanfm instead of marlin) but I'm still experiencing the same problems: Operation not permitted. I must be overlooking something, does anyone have an idea?
    Thanks,
    Toby.
    Last edited by TobyJamesJoy (2012-09-12 07:12:04)

  • NTFS-3G automount with big_writes

    Hi!
    I've got a problem in locating place where I can set default options for mounting NTFS partitions (mostly - USB drives). I've been researching through the internet and found that NTFS-3G supports `big_writes` mount option which implies writing in larger parts instead of default 4kB. As I'm using my drives to carry large files without this option means really high cpu usage causing desktop to become unresponsive.
    How can I overcome this situation? I was thinking about udev rule, but honestly - I don't know how I can specify that I want to handle only NTFS partitions. Maybe it is wise to use it by default in Arch?
    Thanks!

    @anonymous_user - yes it is. Currently I have to umount and mount again ntfs partition with -o big_writes (as remount is not supported). I'll try it, thanks a lot!
    BTW. This option really decreases CPU usage when writing to ntfs filesystem. On my system (C2D T8300) it dropped from around 15% to ~1%!
    EDIT: I'm not sure how I should replace udisks2 with udevil - I've installed the latter, but Gnome still seems to be automounting via udisks2. When I wanted to remove udisks2 - pacman warned me that dependencies will not be satisfied, so the package cannot be removed. Any ideas?
    Last edited by megawebmaster (2013-02-01 10:11:58)

  • [SOLVED] udev rule no longer working

    I have a udev rule set up to automatically mount an ext4 filesystem when I plug a certain thumb drive in.  It was working fine until yesterday (probably due to updates).  Here is the rule, in file /etc/udev/rules.d/99-gfk.rules:
    KERNEL=="sd?2", SUBSYSTEM=="block", ATTRS{idVendor}=="0930", ATTRS{idProduct}=="6545", ATTRS{serial}=="1C6F654E4041ED601910053F", SYMLINK+="gfshare"
    ACTION=="add", KERNEL=="sd?2", SUBSYSTEM=="block", ATTRS{idVendor}=="0930", ATTRS{idProduct}=="6545", ATTRS{serial}=="1C6F654E4041ED601910053F", RUN+="/bin/mkdir /media/gfshare"
    ACTION=="add", KERNEL=="sd?2", SUBSYSTEM=="block", ATTRS{idVendor}=="0930", ATTRS{idProduct}=="6545", ATTRS{serial}=="1C6F654E4041ED601910053F", RUN+="/bin/mount -t ext4 -o ro,nosuid,nodev,noexec,noatime /dev/gfshare /media/gfshare"
    The symlink and the mkdir command are both working fine, but the mount command is not being run for some reason.  If I manually run the mount command it works fine.  Some possibly helpful output:
    # pacman -Qo $(which udevadm)
    /usr/bin/udevadm is owned by systemd 212-1
    # dmesg |tail -16
    [26458.120628] usb 7-1.3: new high-speed USB device number 7 using ehci-pci
    [26458.223059] usb-storage 7-1.3:1.0: USB Mass Storage device detected
    [26458.223825] scsi10 : usb-storage 7-1.3:1.0
    [26459.311607] scsi 10:0:0:0: Direct-Access Kingston DataTraveler 2.0 PMAP PQ: 0 ANSI: 4
    [26460.834081] sd 10:0:0:0: [sdd] 15240576 512-byte logical blocks: (7.80 GB/7.26 GiB)
    [26460.834931] sd 10:0:0:0: [sdd] Write Protect is off
    [26460.834935] sd 10:0:0:0: [sdd] Mode Sense: 23 00 00 00
    [26460.835617] sd 10:0:0:0: [sdd] No Caching mode page found
    [26460.835621] sd 10:0:0:0: [sdd] Assuming drive cache: write through
    [26460.839455] sd 10:0:0:0: [sdd] No Caching mode page found
    [26460.839460] sd 10:0:0:0: [sdd] Assuming drive cache: write through
    [26460.860579] sdd: sdd1 sdd2
    [26460.867111] sd 10:0:0:0: [sdd] No Caching mode page found
    [26460.867115] sd 10:0:0:0: [sdd] Assuming drive cache: write through
    [26460.867118] sd 10:0:0:0: [sdd] Attached SCSI removable disk
    [26461.041982] EXT4-fs (sdd2): mounted filesystem with ordered data mode. Opts: (null)
    # udevadm test /sys/bus/usb/devices/7-1.3
    calling: test
    version 212
    This program is for debugging only, it does not run any program
    specified by a RUN key. It may show incorrect results, because
    some values may be different, or not available at a simulation run.
    load module index
    timestamp of '/etc/systemd/network' changed
    timestamp of '/usr/lib/systemd/network' changed
    Parsed configuration file /usr/lib/systemd/network/99-default.link
    Created link configuration context
    timestamp of '/etc/udev/rules.d' changed
    Skipping overridden file: /usr/lib/udev/rules.d/80-net-setup-link.rules.
    read rules file: /usr/lib/udev/rules.d/10-dm.rules
    read rules file: /usr/lib/udev/rules.d/11-dm-lvm.rules
    read rules file: /etc/udev/rules.d/12-android.rules
    read rules file: /usr/lib/udev/rules.d/13-dm-disk.rules
    read rules file: /usr/lib/udev/rules.d/40-hpet-permissions.rules
    read rules file: /usr/lib/udev/rules.d/40-usb-media-players.rules
    read rules file: /usr/lib/udev/rules.d/42-usb-hid-pm.rules
    read rules file: /usr/lib/udev/rules.d/50-firmware.rules
    read rules file: /usr/lib/udev/rules.d/50-udev-default.rules
    read rules file: /usr/lib/udev/rules.d/51-android.rules
    read rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
    read rules file: /usr/lib/udev/rules.d/60-drm.rules
    read rules file: /usr/lib/udev/rules.d/60-keyboard.rules
    read rules file: /usr/lib/udev/rules.d/60-pcmcia.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-serial.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
    read rules file: /usr/lib/udev/rules.d/60-vboxdrv.rules
    read rules file: /usr/lib/udev/rules.d/61-accelerometer.rules
    read rules file: /usr/lib/udev/rules.d/63-md-raid-arrays.rules
    read rules file: /usr/lib/udev/rules.d/64-btrfs.rules
    read rules file: /usr/lib/udev/rules.d/64-md-raid-assembly.rules
    read rules file: /usr/lib/udev/rules.d/69-cd-sensors.rules
    read rules file: /usr/lib/udev/rules.d/69-dm-lvm-metad.rules
    read rules file: /usr/lib/udev/rules.d/69-libmtp.rules
    read rules file: /usr/lib/udev/rules.d/70-infrared.rules
    read rules file: /usr/lib/udev/rules.d/70-power-switch.rules
    read rules file: /usr/lib/udev/rules.d/70-uaccess.rules
    read rules file: /usr/lib/udev/rules.d/71-seat.rules
    read rules file: /usr/lib/udev/rules.d/73-seat-late.rules
    read rules file: /usr/lib/udev/rules.d/75-net-description.rules
    read rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
    read rules file: /usr/lib/udev/rules.d/75-tty-description.rules
    read rules file: /usr/lib/udev/rules.d/78-sound-card.rules
    read rules file: /usr/lib/udev/rules.d/80-drivers.rules
    read rules file: /etc/udev/rules.d/80-net-setup-link.rules
    read rules file: /usr/lib/udev/rules.d/80-udisks.rules
    read rules file: /usr/lib/udev/rules.d/80-udisks2.rules
    read rules file: /usr/lib/udev/rules.d/85-usbmuxd.rules
    read rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules
    read rules file: /usr/lib/udev/rules.d/95-cd-devices.rules
    read rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
    read rules file: /usr/lib/udev/rules.d/95-udev-late.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-dell.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-fujitsu.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-gateway.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-ibm.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-lenovo.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-toshiba.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-csr.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-hid.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-wup.rules
    read rules file: /etc/udev/rules.d/99-gfk.rules
    read rules file: /usr/lib/udev/rules.d/99-systemd.rules
    read rules file: /usr/lib/udev/rules.d/kino.rules
    rules contain 98304 bytes tokens (8192 * 12 bytes), 22360 bytes strings
    10092 strings (88570 bytes), 8317 de-duplicated (67986 bytes), 1776 trie nodes used
    IMPORT builtin 'usb_id' /usr/lib/udev/rules.d/50-udev-default.rules:9
    IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/50-udev-default.rules:9
    MODE 0664 /usr/lib/udev/rules.d/50-udev-default.rules:37
    GROUP 1002 /usr/lib/udev/rules.d/51-android.rules:387
    MODE 0660 /usr/lib/udev/rules.d/51-android.rules:387
    RUN '/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers' /usr/lib/udev/rules.d/60-vboxdrv.rules:6
    PROGRAM '/usr/lib/udev/mtp-probe /sys/devices/pci0000:00/0000:00:1a.7/usb7/7-1/7-1.3 7 7' /usr/lib/udev/rules.d/69-libmtp.rules:1204
    starting '/usr/lib/udev/mtp-probe /sys/devices/pci0000:00/0000:00:1a.7/usb7/7-1/7-1.3 7 7'
    '/usr/lib/udev/mtp-probe /sys/devices/pci0000:00/0000:00:1a.7/usb7/7-1/7-1.3 7 7'(out) '0'
    '/usr/lib/udev/mtp-probe /sys/devices/pci0000:00/0000:00:1a.7/usb7/7-1/7-1.3 7 7' [24644] exit with return code 0
    IMPORT builtin 'path_id' /usr/lib/udev/rules.d/71-seat.rules:43
    RUN 'uaccess' /usr/lib/udev/rules.d/73-seat-late.rules:15
    handling device node '/dev/bus/usb/007/007', devnum=c189:774, mode=0660, uid=0, gid=1002
    preserve permissions /dev/bus/usb/007/007, 020660, uid=0, gid=1002
    preserve already existing symlink '/dev/char/189:774' to '../bus/usb/007/007'
    ACTION=add
    BUSNUM=007
    DEVNAME=/dev/bus/usb/007/007
    DEVNUM=007
    DEVPATH=/devices/pci0000:00/0000:00:1a.7/usb7/7-1/7-1.3
    DEVTYPE=usb_device
    DRIVER=usb
    ID_BUS=usb
    ID_DRIVE_THUMB=1
    ID_FOR_SEAT=usb-pci-0000_00_1a_7-usb-0_1_3
    ID_MODEL=DataTraveler_2.0
    ID_MODEL_ENC=DataTraveler\x202.0
    ID_MODEL_FROM_DATABASE=Kingston DataTraveler 102 Flash Drive / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick
    ID_MODEL_ID=6545
    ID_PATH=pci-0000:00:1a.7-usb-0:1.3
    ID_PATH_TAG=pci-0000_00_1a_7-usb-0_1_3
    ID_REVISION=0100
    ID_SERIAL=Kingston_DataTraveler_2.0_1C6F654E4041ED601910053F
    ID_SERIAL_SHORT=1C6F654E4041ED601910053F
    ID_USB_INTERFACES=:080650:
    ID_VENDOR=Kingston
    ID_VENDOR_ENC=Kingston
    ID_VENDOR_FROM_DATABASE=Toshiba Corp.
    ID_VENDOR_ID=0930
    MAJOR=189
    MINOR=774
    PRODUCT=930/6545/100
    SUBSYSTEM=usb
    TAGS=:seat:uaccess:
    TYPE=0/0/0
    USEC_INITIALIZED=26452326568
    adb_user=yes
    run: '/usr/share/virtualbox/VBoxCreateUSBNode.sh 189 774 00 vboxusers'
    run: 'uaccess'
    unload module index
    Unloaded link configuration context
    # udevadm test /sys/bus/usb/devices/7-1.3:1.0
    calling: test
    version 212
    This program is for debugging only, it does not run any program
    specified by a RUN key. It may show incorrect results, because
    some values may be different, or not available at a simulation run.
    load module index
    timestamp of '/etc/systemd/network' changed
    timestamp of '/usr/lib/systemd/network' changed
    Parsed configuration file /usr/lib/systemd/network/99-default.link
    Created link configuration context
    timestamp of '/etc/udev/rules.d' changed
    Skipping overridden file: /usr/lib/udev/rules.d/80-net-setup-link.rules.
    read rules file: /usr/lib/udev/rules.d/10-dm.rules
    read rules file: /usr/lib/udev/rules.d/11-dm-lvm.rules
    read rules file: /etc/udev/rules.d/12-android.rules
    read rules file: /usr/lib/udev/rules.d/13-dm-disk.rules
    read rules file: /usr/lib/udev/rules.d/40-hpet-permissions.rules
    read rules file: /usr/lib/udev/rules.d/40-usb-media-players.rules
    read rules file: /usr/lib/udev/rules.d/42-usb-hid-pm.rules
    read rules file: /usr/lib/udev/rules.d/50-firmware.rules
    read rules file: /usr/lib/udev/rules.d/50-udev-default.rules
    read rules file: /usr/lib/udev/rules.d/51-android.rules
    read rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
    read rules file: /usr/lib/udev/rules.d/60-drm.rules
    read rules file: /usr/lib/udev/rules.d/60-keyboard.rules
    read rules file: /usr/lib/udev/rules.d/60-pcmcia.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-serial.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
    read rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
    read rules file: /usr/lib/udev/rules.d/60-vboxdrv.rules
    read rules file: /usr/lib/udev/rules.d/61-accelerometer.rules
    read rules file: /usr/lib/udev/rules.d/63-md-raid-arrays.rules
    read rules file: /usr/lib/udev/rules.d/64-btrfs.rules
    read rules file: /usr/lib/udev/rules.d/64-md-raid-assembly.rules
    read rules file: /usr/lib/udev/rules.d/69-cd-sensors.rules
    read rules file: /usr/lib/udev/rules.d/69-dm-lvm-metad.rules
    read rules file: /usr/lib/udev/rules.d/69-libmtp.rules
    read rules file: /usr/lib/udev/rules.d/70-infrared.rules
    read rules file: /usr/lib/udev/rules.d/70-power-switch.rules
    read rules file: /usr/lib/udev/rules.d/70-uaccess.rules
    read rules file: /usr/lib/udev/rules.d/71-seat.rules
    read rules file: /usr/lib/udev/rules.d/73-seat-late.rules
    read rules file: /usr/lib/udev/rules.d/75-net-description.rules
    read rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
    read rules file: /usr/lib/udev/rules.d/75-tty-description.rules
    read rules file: /usr/lib/udev/rules.d/78-sound-card.rules
    read rules file: /usr/lib/udev/rules.d/80-drivers.rules
    read rules file: /etc/udev/rules.d/80-net-setup-link.rules
    read rules file: /usr/lib/udev/rules.d/80-udisks.rules
    read rules file: /usr/lib/udev/rules.d/80-udisks2.rules
    read rules file: /usr/lib/udev/rules.d/85-usbmuxd.rules
    read rules file: /usr/lib/udev/rules.d/90-alsa-restore.rules
    read rules file: /usr/lib/udev/rules.d/95-cd-devices.rules
    read rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
    read rules file: /usr/lib/udev/rules.d/95-udev-late.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-dell.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-fujitsu.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-gateway.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-ibm.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-lenovo.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-battery-recall-toshiba.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-csr.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-hid.rules
    read rules file: /usr/lib/udev/rules.d/95-upower-wup.rules
    read rules file: /etc/udev/rules.d/99-gfk.rules
    read rules file: /usr/lib/udev/rules.d/99-systemd.rules
    read rules file: /usr/lib/udev/rules.d/kino.rules
    rules contain 98304 bytes tokens (8192 * 12 bytes), 22360 bytes strings
    10092 strings (88570 bytes), 8317 de-duplicated (67986 bytes), 1776 trie nodes used
    IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/50-udev-default.rules:11
    RUN 'kmod load $env{MODALIAS}' /usr/lib/udev/rules.d/80-drivers.rules:5
    ACTION=add
    DEVPATH=/devices/pci0000:00/0000:00:1a.7/usb7/7-1/7-1.3/7-1.3:1.0
    DEVTYPE=usb_interface
    DRIVER=usb-storage
    ID_MODEL_FROM_DATABASE=Kingston DataTraveler 102 Flash Drive / HEMA Flash Drive 2 GB / PNY Attache 4GB Stick
    ID_VENDOR_FROM_DATABASE=Toshiba Corp.
    INTERFACE=8/6/80
    MODALIAS=usb:v0930p6545d0100dc00dsc00dp00ic08isc06ip50in00
    PRODUCT=930/6545/100
    SUBSYSTEM=usb
    TYPE=0/0/0
    USEC_INITIALIZED=452326811
    run: 'kmod load usb:v0930p6545d0100dc00dsc00dp00ic08isc06ip50in00'
    unload module index
    Unloaded link configuration context
    Last edited by bentglasstube (2014-04-03 20:51:36)

    I see.  That is somewhat aggravating but I will find another way to achieve what I wanted I suppose.
    Thank you.  Should I mark this is solved or unsolvable or something?  Sorry, I'm new to posting on these forums.
    Edit:  I was able to achieve what I wanted with udevil as recommended by the wiki.
    Last edited by bentglasstube (2014-04-03 20:55:45)

  • Rule no longer working (MobileMe account)

    I create a rule to direct a specific domain to my junk box. This is for my MobileMe account. It worked for a while, both on my iMac and my iPhone (on the iPhone I would see the mail come in, then get moved out of my inbox after a few seconds)...
    However, in the last couple weeks it doesn't seem to be working anymore. The rule is very straight forward, just take anything with a certain domain and junk it!
    Any advice?

    I see.  That is somewhat aggravating but I will find another way to achieve what I wanted I suppose.
    Thank you.  Should I mark this is solved or unsolvable or something?  Sorry, I'm new to posting on these forums.
    Edit:  I was able to achieve what I wanted with udevil as recommended by the wiki.
    Last edited by bentglasstube (2014-04-03 20:55:45)

  • Why do i need udev+udisks+udisks2+gvfs installed to dynamic mount?

    hi there,
    yes, i have used the search function on that, but still have unanswered questions.
    1.
    why do i need udev+udisks+udisks2+gvfs installed to dynamically mount internal (ntfs, ext4) partitions ?
    If one these packages is missing, mounting an internal drive with "pcmanfm" is not possible.
    I know how to static mount these drives via "fstab", but i want to mount them when i need the access.
    2.
    why are my removable devices not automatically mounted in "pcmanfm" when plugged in?
    I have another OS (Lubuntu) running and this automatically recognizes when a cd is inserted or a usb stick is plugged in.
    I have tried to install the package "gvfs-afc" and rebooted, still no usb stick to see. But when i enter:
    sudo blkid -c /dev/null
    The usb stick is listed as "sdb1"
    I am using 64bit arch linux 3.9.3-1 with openbox+lxde.

    jasonwryan wrote:
    You don't. You need udev for a whole lot of other stuff, so leave that aside. To automount removable media, you can just use udisks and a helper like ud{iskie,evil}.
    For an ntfs partition, you will also need that driver.
    Comparing it with the Lubuntu; I am sure there is a lot more cruft preinstalled that makes this happen. In Arch, you just install what you need.
    The udev page has the details.
    so i have uninstalled the gvfs+udisks2 packages, rebooted and installed udevil-git and rebooted again.
    No partition is shown in the filemanager now. I really dont get it. The udev wiki says udev needs rules but my "/etc/udev/rules.d" folder is empty.
    The udisks wiki says that udisks and udisks2 are incompatible and that only one is needed and that udisks2 should be installed for gnome systems and udisks for xfce, but i have lxde installed. So it is not working with udisks and lxde (pcmanfm), when i try to install udisks2 additionally, it also does not work. Uninstalling udisks is also not possible because of the dependancy to libfm and so on...
    Here is my /etc/udevil/udevil-user-harry.conf:
    # udevil configuration file /etc/udevil/udevil.conf
    # This file controls what devices, networks, and files users may mount and
    # unmount via udevil (set suid).
    # IMPORTANT: IT IS POSSIBLE TO CREATE SERIOUS SECURITY PROBLEMS IF THIS FILE
    # IS MISCONFIGURED - EDIT WITH CARE
    # Note: For greater control for specific users, including root, copy this
    # file to /etc/udevil/udevil-user-USERNAME.conf replacing USERNAME with the
    # desired username (eg /etc/udevil/udevil-user-jim.conf).
    # Format:
    # OPTION = VALUE[, VALUE, ...]
    # DO NOT USE QUOTES except literally
    # Lines beginning with # are ignored
    # To log all uses of udevil, set log_file to a file path:
    #log_file = /var/log/udevil.log
    # Approximate number of days to retain log entries (0=forever, max=60):
    log_keep_days = 10
    # allowed_types determines what fstypes can be passed by a user to the u/mount
    # program, what device filesystems may be un/mounted implicitly, and what
    # network filesystems may be un/mounted.
    # It may also include the 'file' keyword, indicating that the user is allowed
    # to mount files (eg an ISO file). The $KNOWN_FILESYSTEMS variable may
    # be included to include common local filesystems as well as those listed in
    # /etc/filesystems and /proc/filesystems.
    # allowed_types_USERNAME, if present, is used to override allowed_types for
    # the specific user 'USERNAME'. For example, to allow user 'jim' to mount
    # only vfat filesystems, add:
    # allowed_types_jim = vfat
    # Setting allowed_types = * does NOT allow all types, as this is a security
    # risk, but does allow all recognized types.
    # allowed_types = $KNOWN_FILESYSTEMS, file, cifs, smbfs, nfs, curlftpfs, ftpfs, sshfs, davfs, tmpfs, ramfs
    allowed_types = $KNOWN_FILESYSTEMS, file, ntfs, vfat
    # allowed_users is a list of users permitted to mount and unmount with udevil.
    # Wildcards (* or ?) may be used in the usernames. To allow all users,
    # specify "allowed_users=*". UIDs may be included using the form UID=1000.
    # For example: allowed_users = carl, UID=1000, pre*
    # Also note that permission to execute udevil may be limited to users belonging
    # to the group that owns /usr/bin/udevil, such as 'plugdev' or 'storage',
    # depending on installation.
    # allowed_users_FSTYPE, if present, is used to override allowed_users when
    # mounting or unmounting a specific fstype (eg nfs, ext3, file).
    # Note that when mounting a file, fstype will always be 'file' regardless of
    # the internal fstype of the file.
    # For example, to allow only user 'bob' to mount nfs shares, add:
    # allowed_users_nfs = bob
    # The root user is NOT automatically allowed to use udevil in some cases unless
    # listed here (except for unmounting anything or mounting fstab devices).
    allowed_users = harry, root
    # allowed_groups is a list of groups permitted to mount and unmount with
    # udevil. The user MUST belong to at least one of these groups. Wildcards
    # or GIDs may NOT be used in group names, but a single * may be used to allow
    # all groups.
    # Also note that permission to execute udevil may be limited to users belonging
    # to the group that owns /usr/bin/udevil, such as 'plugdev' or 'storage',
    # depending on installation.
    # allowed_groups_FSTYPE, if present, is used to override allowed_groups when
    # mounting or unmounting a specific fstype (eg nfs, ext3, file). For example,
    # to allow only members of the 'network' group to mount smb and nfs shares,
    # use both of these lines:
    # allowed_groups_smbfs = network
    # allowed_groups_nfs = network
    # The root user is NOT automatically allowed to use udevil in some cases unless
    # listed here (except for unmounting anything or mounting fstab devices).
    allowed_groups = storage
    # allowed_media_dirs specifies the media directories in which user mount points
    # may be located. The first directory which exists and does not contain a
    # wildcard will be used as the default media directory (normally /media or
    # /run/media/$USER).
    # The $USER variable, if included, will be replaced with the username of the
    # user running udevil. Wildcards may also be used in any directory EXCEPT the
    # default. Wildcards will not match a /
    # allowed_media_dirs_FSTYPE, if present, is used to override allowed_media_dirs
    # when mounting or unmounting a specific fstype (eg ext2, nfs). For example,
    # to cause /media/network to be used as the default media directory for
    # nfs and ftpfs mounts, use these two lines:
    # allowed_media_dirs_nfs = /media/network, /media, /run/media/$USER
    # allowed_media_dirs_ftpfs = /media/network, /media, /run/media/$USER
    # NOTE: If you want only the user who mounted a device to have access to it
    # and be allowed to unmount it, specify /run/media/$USER as the first
    # allowed media directory.
    # IMPORTANT: If an allowed file is mounted to a media directory, the user may
    # be permitted to unmount its associated loop device even though internal.
    # INCLUDING /MNT HERE IS NOT RECOMMENDED. ALL ALLOWED MEDIA DIRECTORIES
    # SHOULD BE OWNED AND WRITABLE ONLY BY ROOT.
    allowed_media_dirs = /media, /run/media/$USER
    # allowed_devices is the first criteria for what block devices users may mount
    # or unmount. If a device is not listed in allowed_devices, it cannot be
    # un/mounted (unless in fstab). However, even if a device is listed, other
    # factors may prevent its use. For example, access to system internal devices
    # will be denied to normal users even if they are included in allowed_devices.
    # allowed_devices_FSTYPE, if present, is used to override allowed_devices when
    # mounting or unmounting a specific fstype (eg ext3, ntfs). For example, to
    # prevent all block devices containing an ext4 filesystem from being
    # un/mounted use:
    # allowed_devices_ext4 =
    # Note: Wildcards may be used, but a wildcard will never match a /, except
    # for "allowed_devices=*" which allows any device. The recommended setting is
    # allowed_devices = /dev/*
    # WARNING: ALLOWING USERS TO MOUNT DEVICES OUTSIDE OF /dev CAN CAUSE SERIOUS
    # SECURITY PROBLEMS. DO NOT ALLOW DEVICES IN /dev/shm
    allowed_devices = /dev/*
    # allowed_internal_devices causes udevil to treat any listed block devices as
    # removable, thus allowing normal users to un/mount them (providing they are
    # also listed in allowed_devices).
    # allowed_internal_devices_FSTYPE, if present, is used to override
    # allowed_internal_devices when mounting or unmounting a specific fstype
    # (eg ext3, ntfs). For example, to allow block devices containing a vfat
    # filesystem to be un/mounted even if they are system internal devices, use:
    # allowed_internal_devices_vfat = /dev/sdb*
    # Some removable esata drives look like internal drives to udevil. To avoid
    # this problem, they can be treated as removable with this setting.
    # WARNING: SETTING A SYSTEM DEVICE HERE CAN CAUSE SERIOUS SECURITY PROBLEMS.
    # allowed_internal_devices =
    # allowed_internal_uuids and allowed_internal_uuids_FSTYPE work similarly to
    # allowed_internal_devices, except that UUIDs are specified instead of devices.
    # For example, to allow un/mounting of an internal filesystem based on UUID:
    # allowed_internal_uuids = cc0c4489-8def-1e5b-a304-ab87c3cb626c0
    # WARNING: SETTING A SYSTEM DEVICE HERE CAN CAUSE SERIOUS SECURITY PROBLEMS.
    # allowed_internal_uuids =
    # forbidden_devices is used to prevent block devices from being un/mounted
    # even if other settings would allow them (except devices in fstab).
    # forbidden_devices_FSTYPE, if present, is used to override
    # forbidden_devices when mounting or unmounting a specific fstype
    # (eg ext3, ntfs). For example, to prevent device /dev/sdd1 from being
    # mounted when it contains an ntfs filesystem, use:
    # forbidden_devices_ntfs = /dev/sdd1
    # NOTE: device node paths are canonicalized before being tested, so forbidding
    # a link to a device will have no effect.
    forbidden_devices =
    # allowed_networks determines what hosts may be un/mounted by udevil users when
    # using nfs, cifs, smbfs, curlftpfs, ftpfs, or sshfs. Hosts may be specified
    # using a hostname (eg myserver.com) or IP address (192.168.1.100).
    # Wildcards may be used in hostnames and IP addresses, but CIDR notation
    # (192.168.1.0/16) is NOT supported. IP v6 is supported. For example:
    # allowed_networks = 127.0.0.1, 192.168.1.*, 10.0.0.*, localmachine, *.okay.com
    # Or, to prevent un/mounting of any network shares, set:
    # allowed_networks =
    # allowed_networks_FSTYPE, if present, is used to override allowed_networks
    # when mounting or unmounting a specific network fstype (eg nfs, cifs, sshfs,
    # curlftpfs). For example, to limit nfs and samba shares to only local
    # networks, use these two lines:
    # allowed_networks_nfs = 192.168.1.*, 10.0.0.*
    # allowed_networks_cifs = 192.168.1.*, 10.0.0.*
    allowed_networks = *
    # forbidden_networks and forbidden_networks_FSTYPE are used to specify networks
    # that are never allowed, even if other settings allow them (except fstab).
    # NO REVERSE LOOKUP IS PERFORMED, so including bad.com will only have an effect
    # if the user uses that hostname. IP lookup is always performed, so forbidding
    # an IP address will also forbid all corresponding hostnames.
    forbidden_networks =
    # allowed_files is used to determine what files in what directories may be
    # un/mounted. A user must also have read permission on a file to mount it.
    # Note: Wildcards may be used, but a wildcard will never match a /, except
    # for "allowed_files=*" which allows any file. For example, to allow only
    # files in the /share directory to be mounted, use:
    # allowed_files = /share/*
    # NOTE: Specifying allowed_files_FSTYPE will NOT work because the fstype of
    # files is always 'file'.
    allowed_files = *
    # forbidden_files is used to specify files that are never allowed, even if
    # other settings allow them (except fstab). Specify a full path.
    # Note: Wildcards may be used, but a wildcard will never match a /, except
    # for "forbidden_files = *".
    # NOTE: file paths are canonicalized before being tested, so forbidding
    # a link to a file will have no effect.
    forbidden_files =
    # default_options specifies what options are always included when performing
    # a mount, in addition to any options the user may specify.
    # Note: When a device is present in /etc/fstab, and the user does not specify
    # a mount point, the device is mounted with normal user permissions using
    # the fstab entry, without these options.
    # default_options_FSTYPE, if present, is used to override default_options
    # when mounting a specific fstype (eg ext2, nfs).
    # The variables $USER, $UID, and $GID are changed to the user's username, UID,
    # and GID.
    # FOR GOOD SECURITY, default_options SHOULD ALWAYS INCLUDE: nosuid,noexec,nodev
    # WARNING: OPTIONS PRESENT OR MISSING CAN CAUSE SERIOUS SECURITY PROBLEMS.
    default_options = nosuid, noexec, nodev, noatime
    default_options_file = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID, ro
    # mount iso9660 with 'ro' to prevent mount read-only warning
    default_options_iso9660 = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID, ro, utf8
    default_options_udf = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID
    default_options_vfat = nosuid, noexec, nodev, noatime, fmask=0022, dmask=0022, uid=$UID, gid=$GID, utf8
    default_options_msdos = nosuid, noexec, nodev, noatime, fmask=0022, dmask=0022, uid=$UID, gid=$GID
    default_options_umsdos = nosuid, noexec, nodev, noatime, fmask=0022, dmask=0022, uid=$UID, gid=$GID
    default_options_ntfs = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID, utf8
    default_options_cifs = nosuid, noexec, nodev, uid=$UID, gid=$GID
    default_options_smbfs = nosuid, noexec, nodev, uid=$UID, gid=$GID
    default_options_sshfs = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID, nonempty, allow_other
    default_options_curlftpfs = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID, nonempty, allow_other
    default_options_ftpfs = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID
    default_options_davfs = nosuid, noexec, nodev, uid=$UID, gid=$GID
    default_options_tmpfs = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID
    default_options_ramfs = nosuid, noexec, nodev, noatime, uid=$UID, gid=$GID
    # allowed_options determines all options that a user may specify when mounting.
    # All the options used in default_options above must be included here too, or
    # they will be rejected. If the user attempts to use an option not included
    # here, an error will result. Wildcards may be used.
    # allowed_options_FSTYPE, if present, is used to override allowed_options
    # when mounting a specific fstype (eg ext2, nfs).
    # The variables $USER, $UID, and $GID are changed to the user's username, UID,
    # and GID.
    # If you want to forbid remounts, remove 'remount' from here.
    # WARNING: OPTIONS HERE CAN CAUSE SERIOUS SECURITY PROBLEMS - CHOOSE CAREFULLY
    allowed_options = nosuid, noexec, nodev, noatime, fmask=0022, dmask=0022, uid=$UID, gid=$GID, ro, rw, sync, flush, iocharset=*, utf8, remount
    allowed_options_nfs = nosuid, noexec, nodev, noatime, ro, rw, sync, remount, port=*, rsize=*, wsize=*, hard, proto=*, timeo=*, retrans=*
    allowed_options_cifs = nosuid, noexec, nodev, ro, rw, remount, port=*, user=*, username=*, pass=*, password=*, guest, domain=*, uid=$UID, gid=$GID, credentials=*
    allowed_options_smbfs = nosuid, noexec, nodev, ro, rw, remount, port=*, user=*, username=*, pass=*, password=*, guest, domain=*, uid=$UID, gid=$GID, credentials=*
    allowed_options_sshfs = nosuid, noexec, nodev, noatime, ro, rw, uid=$UID, gid=$GID, nonempty, allow_other, idmap=user, BatchMode=yes, port=*
    allowed_options_curlftpfs = nosuid, noexec, nodev, noatime, ro, rw, uid=$UID, gid=$GID, nonempty, allow_other, user=*
    allowed_options_ftpfs = nosuid, noexec, nodev, noatime, ro, rw, port=*, user=*, pass=*, ip=*, root=*, uid=$UID, gid=$GID
    # mount_point_mode, if present and set to a non-empty value, will cause udevil
    # to set the mode (permissions) on the moint point after mounting If not
    # specified or if left empty, the mode is not changed. Mode must be octal
    # starting with a zero (0755).
    # mount_point_mode_FSTYPE, if present, is used to override mount_point_mode
    # when mounting a specific fstype (eg ext2, nfs).
    # NOT SETTING A MODE CAN HAVE SECURITY IMPLICATIONS FOR SOME FSTYPES
    mount_point_mode = 0755
    # don't set a mode for some types:
    mount_point_mode_sshfs =
    mount_point_mode_curlftpfs =
    mount_point_mode_ftpfs =
    # Use the settings below to change the default locations of programs used by
    # udevil, or (advanced topic) to redirect commands to your scripts.
    # When substituting scripts, make sure they are root-owned and accept the
    # options used by udevil (for example, the mount_program must accept --fake,
    # -o, -v, and other options valid to mount.)
    # Be sure to specify the full path and include NO OPTIONS or other arguments.
    # These programs may also be specified as configure options when building
    # udevil.
    # THESE PROGRAMS ARE RUN AS ROOT
    # mount_program = /bin/mount
    # umount_program = /bin/umount
    # losetup_program = /sbin/losetup
    # setfacl_program = /usr/bin/setfacl
    # validate_exec specifies a program or script which provides additional
    # validation of a mount or unmount command, beyond the checks performed by
    # udevil. The program is run as a normal user (if root runs udevil,
    # validate_exec will NOT be run). The program is NOT run if the user is
    # mounting a device without root priviledges (a device in fstab).
    # The program is passed the username, a printable description of what is
    # happening, and the entire udevil command line as the first three arguments.
    # The program must return an exit status of 0 to allow the mount or unmount
    # to proceed. If it returns non-zero, the user will be denied permission.
    # For example, validate_exec might specify a script which notifies you
    # of the command being run, or performs additional steps to authenticate the
    # user.
    # Specify a full path to the program, with NO options or arguments.
    # validate_exec =
    # validate_rootexec works similarly to validate_exec, except that the program
    # is run as root. validate_rootexec will also be run if the root user runs
    # udevil. If both validate_exec and validate_rootexec are specified,
    # validate_rootexec will run first, followed by validate_exec.
    # The program must return an exit status of 0 to allow the mount or unmount
    # to proceed. If it returns non-zero, the user will be denied permission.
    # Unless you are familiar with writing root scripts, it is recommended that
    # rootexec settings NOT be used, as it is easy to inadvertently open exploits.
    # THIS PROGRAM IS ALWAYS RUN AS ROOT, even if the user running udevil is not.
    # validate_rootexec =
    # success_exec is run after a successful mount, remount, or unmount. The
    # program is run as a normal user (if root runs udevil, success_exec
    # will NOT be run).
    # The program is passed the username, a printable description of what action
    # was taken, and the entire udevil command line as the first three arguments.
    # The program's exit status is ignored.
    # For example, success_exec might run a script which informs you of what action
    # was taken, and might perform further actions.
    # Specify a full path to the program, with NO options or arguments.
    # success_exec =
    # success_rootexec works similarly to success_exec, except that the program is
    # run as root. success_rootexec will also be run if the root user runs udevil.
    # If both success_exec and success_rootexec are specified, success_rootexec
    # will run first, followed by success_exec.
    # Unless you are familiar with writing root scripts, it is recommended that
    # rootexec settings NOT be used, as it is easy to inadvertently open exploits.
    # THIS PROGRAM IS ALWAYS RUN AS ROOT, even if the user running udevil is not.
    # success_rootexec =
    I have no idea what to do next, the only way it works, is the combination i mentioned in the title of this post. Any suggestion to solve that problem?

  • Udisks and udisk-glue -- How to set up with awesome wm?

    Hi,
    I'm trying to get my optical drives and USB drives to automount (running awesome wm launched with SLiM).
    Based on this link:  http://awesome.naquadah.org/wiki/Automounting
    I've decided to try to do it with udisks and udisk-glue.
    1)  I have a relatively new arch install that has udisks2, do I need to do anything different because of that?
    2)  I understand that I need to make a udisk-glue.conf file (according to the link above)
        (a) Where do I put it?  (which directory)
        (b) Should I make any changes to this version?
    filter disks {
    optical = false
    partition_table = false
    usage = filesystem
    match disks {
    automount = true
    automount_options = sync
    post_mount_command = "echo \'naughty.notify({title = \"USB:\", text =\"mounted %device_file on %mount_point\", timeout = 10})\' | awesome-client"
    post_unmount_command = "echo \'naughty.notify({title = \"USB:\", text =\"unmounted %device_file on %mount_point\", timeout = 10})\' | awesome-client"
    filter optical {
    optical = true
    match optical {
    automount = true
    automount_options = ro
    post_mount_command = "echo \'naughty.notify({title = \"CD-Rom:\", text =\"mounted %device_file on %mount_point\", timeout = 10})\' | awesome-client"
    post_mount_command = "echo \'udisks_glue:mount_device(\"%device_file\",\"%mount_point\",\"Cdrom\")\' | awesome-client"
    post_unmount_command = "echo \'naughty.notify({title = \"CD-Rom:\", text =\"unmounted %device_file on %mount_point\", timeout = 10})\' | awesome-client"
    Thank you for your advice!

    I believe udisks-glue needs udisks not udisks2. As for the configuration, have you checked the manpage for udisks-glue?
    As an alternative, you could try devmon (part of the udevil package).

  • [Solved] Auto-open a file manager after mounting with udev rules

    Hellooooo,
    I followed the udev Wiki for auto mounting USBs and it now works great.
    The only problem is: how can I automatically open a file manager of the mounted directory? I tried putting this at the end of the "ACTION=="add"," section in "/etc/udev/rules.d/11-media-by-label-auto-mount.rules" but for some reason nothing happens:
    , RUN+="/usr/bin/dolphin /media/%E{dir_name}"
    Even if I just try to open dolphin with the "ACTION=="add"," section nothing happens either way.
    So what am I doing wrong?
    Last edited by algorythm (2011-05-05 12:35:56)

    In that case, the best choice in my opinion is to use Automounting UDisks Wrappers :
    devmon is a script developed by IgnorantGuru. He left Arch Linux, but the package in AUR is still there and is the last version. For a future new release, it should be available at his blog site. The script is distro independent.
    My udisksvm script, in its default state, doesn't launch a file manager after automounting, but it is not a big thing to let the automounting be done and then manually open a file manager (a new entry in the traydevice right-click menu can also be added for that).
    If you can do without automounting, there is also the bashmount script from jnguyen.
    All these scripts don't require writing any udev rules, they use udisks instead.
    I hope you could find something you like and which will suit your wishes.

  • Automount of SD card & USB external HDD with strange KDE pop up msg

    Today I reviewed lots of threads posted over the last year and some bug reports too about this issue, but it's happening for me too. Both SD card and USB external HDD have autodetectable filesystems on them because I can mount them by hand with "mount /dev/mmcblk0p1 /mnt" and "mount /dev/sdb1 /mnt". But it would be nice if I didn't have to do that.
    Although I didn't notice which explicit install that I did pulled them in as dependencies, I do have udisk2 and polkit installed. Also installed udiskie as a wrapper. I've been mounting these volumes by hand before now because I feel like I'm still learning the ropes of The Arch Way and guessed (apparently incorrectly) that mounting volumes by hand was just part of "The Arch Way". But based on some threads here and some bug reports, I guess this used to work in Arch but has been causing some problems for some people lately when they upgrade. I just installed Arch for the first time (using the 2015.02.01 iso image), so I don't have any background to go on.
    So what is The Arch Way for automounting external drives? I've skimmed the wiki article for this and because "Development of udisks has ceased in favor of udisks2." it seems that udisks2 is preferred. But it got installed and the daemon is running for me. The user is in the wheel group. dbus is running (though like one person who filed a bug, I too have several instances of dbus in my ps -aux output and I'm not sure if that is as it should be or not). I've done no special configuration ("not wittingly" anyway; I promise, my name is not James Clapper) that I think would have affected this.
    So for a newb with no special preference, how should automounting be configured in a new Arch system? In other words, what should be my first steps in trying to solve this problem for myself? I know there are lots of different ways to skin this cat, but I'd prefer the simplest and most elegant solution that does not depend on KDE or GNOME or other unnecessary tools. I've just (with this Arch system I just installed) begun using i3wm and I think I'll be sticking with it. That said, however, it's clear that I inadvertently/unwittingly managed to get some elements of KDE into memory as the following http://gamonics.org/img/2015-02-26-1731 … _scrot.png shows. This popped up both times, when I plugged in my SD card and when I plugged in my USB drive. Any thoughts on what's going on here? I did install okular explicitly because I think it's one of the best PDF viewers, but I don't understand why KDE is reporting anything to me when I'm running i3 and insert an SD card or a USB disk.
    And in the terminal, I get this output (apparently from udiskie):
    [root@archippocrates archie]# Failed to show notification: The connection is closed
    not adding /org/freedesktop/UDisks/devices/mmcblk0: unhandled device
    mounted /org/freedesktop/UDisks/devices/mmcblk0p1 on /media/3532-3338
    Failed to show notification: The connection is closed
    Although the volume does get mounted automatically.
    Thanks for any thoughts.
    -- mod edit: read the Forum Etiquette and only post thumbnails http://wiki.archlinux.org/index.php/For … s_and_Code [jwr] --
    Last edited by Gamonics (2015-02-27 00:25:01)

    I personally can't answer the question of "simplest and most elegant" way of mounting devices. It all depends on what you want. If you expect more exotic functionality, say correct unmounting of devices if they were disconnected during a sleep cycle, there's probably no way around udisks2. For that you get a complex piece of software prone to... unexpected behaviour. Mind you some of it is related to front-ends like GVFS.
    As to your KDE issues, last I checked mount handling was disabled by default there, but you can control it manually (see man kcmshell4). Though I haven't followed up on KDE 5 developments. If going with udisks2, I'd recommend using devmon from the udevil package as a front-end (more details on the wiki udisks page).
    PS: multiple dbus instances are expected, check the user names and specified arguments in the ps output.
    edit: grammar. :X
    Last edited by Alad (2015-02-27 17:03:31)

  • Systemd - help with creating a service file

    Hi, I am trying to make a service file to execute "devmon --no-mount --exec-on-audio abcde". Basicly I want abcde to run when an audio cd is inserted into a headless computer. I have tried some udev rules but had no luck with that.
    I then found udevil and devmon, and it seems to do exectly what I want.
    So Ive made a systemd service file and put it in to /usr/lib/systemd/system
    here is it:
    /usr/lib/systemd/system/abcde-auto.service
    [Unit]
    Description=Virtual Distributed Ethernet
    [Service]
    Type=simple
    ExecStart=/usr/bin/devmon --no-mount --exec-on-audio abcde
    [Install]
    WantedBy=multi-user.target
    I have started this with
    systemctl start abcde-auto.service
    and I see that a devmon process has started with the same arguments I gave in the service file, so all is good.
    But now, I am not too sure about the "Type" in the service file, devmon starts abcde, but:
    systemctl stop abcde-auto.service
    does not stop abcde, only devmon.
    Is there a way to setup the service file so that abcde will end as well as devmon?
    *Edit
    Ive read this http://www.freedesktop.org/software/sys … rvice.html but Im still not too sure. Dont really know what most of it means.
    Last edited by jrussell (2012-10-20 18:09:23)

    I use type 'oneshot' and add an ExecStop= to start and stop scripts.
    Like here is the unit file I use to start and stop arno-iptables-firewall
    [Unit]
    Description=Arno iptables firewall
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/usr/sbin/arno-iptables-firewall start
    ExecStop=/usr/sbin/arno-iptables-firewall stop
    [Install]
    WantedBy=multi-user.target

  • Problems with manual mounting

    I want to be able to mount devices (internal and external) as normal user. I do NOT want automount.
    I also want the mount-tool to automatically create mount points on demand, naming them from device-label or device-mapping.
    I read these pages:
    https://wiki.archlinux.org/index.php/Udisks
    https://wiki.archlinux.org/index.php/Devmon
    https://wiki.archlinux.org/index.php/Policykit
    https://wiki.archlinux.org/index.php/Groups
    Udisks wiki page suggests proposes a .rules with 'storage' group inside it: https://wiki.archlinux.org/index.php/Ud … figuration
    Wiki lists 'storage' as a pre-systemd group and suggest not to use it.
    What should I do?
    Policykit should work as intended and I have a valid local session:
    $ systemctl status polkit.service
    ● polkit.service - Authorization Manager
    Loaded: loaded (/usr/lib/systemd/system/polkit.service; static)
    Active: active (running) since sab 2014-08-30 11:09:50 CEST; 1h 3min ago
    Docs: man:polkit(8)
    Main PID: 396 (polkitd)
    CGroup: /system.slice/polkit.service
    └─396 /usr/lib/polkit-1/polkitd --no-debug
    ago 30 11:09:50 biscottyno polkitd[396]: Started polkitd version 0.112
    ago 30 11:09:50 biscottyno polkitd[396]: Loading rules from directory /etc/p...d
    ago 30 11:09:50 biscottyno polkitd[396]: Loading rules from directory /usr/s...d
    ago 30 11:09:50 biscottyno polkitd[396]: Finished loading, compiling and exe...s
    ago 30 11:09:50 biscottyno polkitd[396]: Acquired the name org.freedesktop.P...s
    ago 30 11:09:50 biscottyno systemd[1]: Started Authorization Manager.
    Hint: Some lines were ellipsized, use -l to show in full.
    $ loginctl show-session $XDG_SESSION_ID
    Id=c1
    Name=archio
    Timestamp=sab 2014-08-30 11:10:00 CEST
    TimestampMonotonic=13680457
    VTNr=1
    TTY=tty1
    Remote=no
    Service=login
    Scope=session-c1.scope
    Leader=377
    Audit=0
    Type=tty
    Class=user
    Active=yes
    State=active
    IdleHint=yes
    IdleSinceHint=1409389800186662
    IdleSinceHintMonotonic=13114369
    I do NOT want to install udevil and Devmon, which are external and redundant things, to do something I could do without. In the pre-systemd I managed to do it with the use of storage group and without udevil. I have been suggested to reactivate storage group, but I would like a more "systemd-philosophy" compatible way.
    Last edited by buntolo (2014-08-30 10:18:43)

    I'm near solving: replacing 'storage' with 'wheel' allow me to mount devices without asking permissions.
    The only "problem" left is that it mount devices under /run/media/$device_UUID while I would like them to be mounted $deivce_LABEL or, if unavailable, volume size or device mapping.
    Also: should devices be mounted under /run or under /media? If I remember correctly in my old archbox devices where mounted under /media. I know that /run is intended as a tmpfs to be available sooner than /var and the problem having lots of tmpfs around many places (like dev).

  • A problem with threads

    I am trying to implement some kind of a server listening for requests. The listener part of the app, is a daemon thread that listens for connections and instantiates a handling daemon thread once it gets some. However, my problem is that i must be able to kill the listening thread at the user's will (say via a sto button). I have done this via the Sun's proposed way, by testing a boolean flag in the loop, which is set to false when i wish to kill the thread. The problem with this thing is the following...
    Once the thread starts excecuting, it will test the flag, find it true and enter the loop. At some point it will LOCK on the server socket waiting for connection. Unless some client actually connects, it will keep on listening indefinatelly whithought ever bothering to check for the flag again (no matter how many times you set the damn thing to false).
    My question is this: Is there any real, non-theoretical, applied way to stop thread in java safely?
    Thank you in advance,
    Lefty

    This was one solution from the socket programming forum, have you tried this??
    public Thread MyThread extends Thread{
         boolean active = true;          
         public void run(){
              ss.setSoTimeout(90);               
              while (active){                   
                   try{                       
                        serverSocket = ss.accept();
                   catch (SocketTimeoutException ste){
                   // do nothing                   
         // interrupt thread           
         public void deactivate(){               
              active = false;
              // you gotta sleep for a time longer than the               
              // accept() timeout to make sure that timeout is finished.               
              try{
                   sleep(91);               
              }catch (InterruptedException ie){            
              interrupt();
    }

  • Understanding problem with threads

    Hi,
    yesterday (at least i think it was yesterday) I posted a question in this forum, I needed help with writing a multithreaded server. The answer was simple and I wrote my program. It kinda works, but there is one thing I don't understand:
    I have a class, which handles the clientconnections and one that listens for incoming conections. I pass the socket returned by ServerSocket.accept() to the clientconnection object.
    There is only ONE clientconnection-object. The listener just passes the socket and calls the start() method of the clientconnection object.
    The clientconnection just writes some text to the client. Connecting more than one client at the same time works too. Everything works fine. And that's what I don't get. If I have only O N E clientconnection the texttransfer shouldn't work after i connect the second client, right?
    But it does, is there a mistake in my logic or am I losing my sanity? :)

    Hi again Danbas,
    Maybe you are losing your sanity... but that's ok. :)
    public void startlistening(){
    while(true){
    try{
    clientconn cc = new clientconn(ssock.accept());
    }catch(IOException ie){}
    //The Constructor in clientconn would look like this:
    public clientconn(Socket sock){
    //No idea what to do here
    Every time you perform "new", you create a new object. And you are calling new every time you accept a new socket connection. So you are creating a new clientconn object each time.

  • J2ME problem with threads

    Hi all,
    I would like to ask you for a help. I need to write a small program at my university. I started to write a midlet which function would be to countdown time for sports activities. I woul like to start a new thread - the one that counts down - and at the same time make the main thread sleep. After the "countdown" thread finishes, the main thread wakes up and waits for user input. The problem is that when the "countdown" thread finishes his work, I've got Uncaught exception java/lang/NullPointerException. error and the midlet halts.
    Below you can find the code
    import java.lang.*;
    import java.util.*;
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.*;
    public class intervals extends MIDlet implements CommandListener
    public Display ekran;
    private SweepCanvas sweeper;
    private Form rundy;
    private TextField round0, round1, round2, round3, round4, round5, round6, round7, round8;
    private long czas,x;
    private Command exitCommand;
    private Command addRound;
    private Command delRound;
    private Command start;
    private TextField repeat;
    private Form odliczanie;
    private Alert ostrz;
    Licznik thread;
    String test;
    StringItem test1;
    int parz,i,j,k;
    static int l;
    int ilrund;
    int ilpowt;
    Item sec;
    long sec1;
    public intervals()
        rundy = new Form("Interwały sportowe");
        exitCommand = new Command("Wyjście", Command.EXIT, 2);
        addRound = new Command("Dodaj","Dodaj rundę", Command.ITEM,1);
        delRound = new Command("Usuń","Usuń ostatnią rundę", Command.ITEM,1);
        start = new Command("Start", Command.ITEM,1);
        odliczanie = new Form("Odliczanie");
        TextField dodaj(TextField kolej)
            kolej=new TextField("Podaj czas (s) rundy "+parz,null, 4, TextField.NUMERIC);//stworzenie nowej instancji do wybierania czasu trwania rundy
            if(rundy.size()==0)
                rundy.insert(rundy.size(),kolej);
                else
                    rundy.insert(rundy.size()-1, kolej);
            return kolej;
        void odliczanie(TextField round)
            monitor m=new monitor();
            k=Integer.parseInt(round.getString());
            ekran.setCurrent(odliczanie);
            thread=new Licznik(k,odliczanie);
            thread.start();
            ekran.setCurrent(rundy);
    public void startApp()// throws MIDletStateChangeException
        rundy.deleteAll();
        repeat = new TextField("Podaj ilość powtórzeń",null,1,TextField.NUMERIC);
        rundy.addCommand(addRound);
        rundy.addCommand(exitCommand);
        rundy.setCommandListener(this);
        Canvas obrazek = new MyCanvas();
        ekran = Display.getDisplay(this);
        ekran.setCurrent(obrazek);
        czas=System.currentTimeMillis();
        while (System.currentTimeMillis()<czas+1000)
            continue;
        ekran.setCurrent(rundy);
    public void pauseApp()
    public void destroyApp(boolean unconditional)
        notifyDestroyed();
    public void commandAction(Command c, Displayable s)
        if (c == exitCommand)
            destroyApp(false);
            notifyDestroyed();
        else if(c==addRound)
            if(rundy.size()==0)//Sprawdzenie ilo&#347;ci elementów w celu poprawnego wy&#347;wietlania liczby rund w formie
                parz=1;
                else
                parz=rundy.size();
            switch(parz)
                case 1:
                    round0=dodaj(round0);break;
                case 2:
                    round1=dodaj(round1);break;
                case 3:
                   round2= dodaj(round2);break;
                case 4:
                    round3=dodaj(round3);break;
                case 5:
                    round4=dodaj(round4);break;
                default:
                    ostrz=new Alert("Uwaga","Maksymalna liczba rund wynosi 9", null, AlertType.INFO);
                    ostrz.setTimeout(3000);
                    ekran.setCurrent(ostrz);
            if(rundy.size()==1)
                rundy.append(repeat);
                rundy.addCommand(start);
            rundy.addCommand(delRound);
        else if(c==delRound)
            if(rundy.size()!=0)
                rundy.delete(rundy.size()-2);
                if (rundy.size()==1)
                    rundy.deleteAll();
                if(rundy.size()==0)
                    rundy.removeCommand(delRound);
                    rundy.removeCommand(start);
        else if(c==start)
            ilrund=rundy.size()-1;
            if(this.repeat.size()>0)
                ilpowt=Integer.parseInt(this.repeat.getString());
            ekran = Display.getDisplay(this);
            for (i=1; i<=ilpowt;i++)
                odliczanie= new Form("Odliczanie");
                 for (j=0;j<ilrund;j++)
                    switch(j)
                         case 0:
                             odliczanie(round0);
                             break;
                         case 1:
                             odliczanie(round1);
                             break;
                         case 2:
                             odliczanie(round2);
                             break;
                         case 3:
                             odliczanie(round3);
                             break;
                         case 4:
                             odliczanie(round4);
                             break;
                         case 5:
                             odliczanie(round5);
                             break;
                         case 6:
                             odliczanie(round6);
                             break;
                         case 7:
                             odliczanie(round7);
                             break;
                         case 8:
                             odliczanie(round8);
                             break;
    class Licznik extends Thread
        int czas1,k;
        Form forma;
        monitor m;
        public Licznik(int k,Form formap)
            czas1=k;
            forma=formap;
        public synchronized void run()
            while(czas1>0)
                forma.deleteAll();
                forma.append("Czas pozosta&#322;y (s): "+czas1);
                try{Thread.sleep(1000);} catch(InterruptedException e){e.printStackTrace();}
                czas1--;
            if(czas1<=0)
                m.put();
        }and monitor class
    public class monitor
    boolean busy=false;
    synchronized void get()
        if(!busy)
            try
                wait();
            }catch(InterruptedException e){e.printStackTrace();}
        notify();
    synchronized void put()
        if(busy)
            try
            wait();
            }catch(InterruptedException e){e.printStackTrace();}
        busy=true;
        notify();
    }Can anybody help me with this?

    Groovemaker,
    Your Licznik class has a member m of type monitor, which has not been instantiated (in other words is null) hence, when calling m.put() you get NullPointerException. Please also mind, that using Thread.sleep(1000) is not an accurate way of measuring time.
    If I may, please use recommended for Java class naming conventions - some of your names use lower case, while other don't which is confusing to the reader.
    Daniel

Maybe you are looking for

  • ALV Report in background

    Hi All,          I have developed a zreport using reuse_alv_list_display. But due to performance reasons as it is fetching data from BSEG table, is very slow. So it is decided that this report will be executed in back ground. But after executing in b

  • Urgent Help templates

    hi i am having a problem with the template in dreamweaver. what is is happening is i have created a design in fireworks and put it into dreamweaver and put some text on it and saved it as a template. when i create a new document from this template i

  • Can't get web service to work

    I'm getting the following error when trying to invoke an ASP.NET web service on the same host... TypeError: Error #1034: Type Coercion failed: cannot convert Function-2010 to Namespace. at mx.rpc.wsdl::WSDL/::processNamespaces() at mx.rpc.wsdl::WSDL$

  • Parameter with xml format....

    I hav to send 3 parameters via HTTP. There r 1. cpid (datatype: string) 2. pwd (datatype: string) 3. msg in xml format : <mms> <subject>message subject</subject> <url_image>http://image_url</url_image> <url_sound>http://sound_url</url_sound> <url_vid

  • KXML parsing

    Hello, I'm having difficulty with trying to parse a XML document and none of the examples i could find have this specific querk here's the xml <?xml version="1.0" encoding="UTF-8" ?> <webraska> <status> <api-version>API 1.4-20021030</api-version> <me