This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Amarok ->Media -> iRiver works only on root :/

Tags: None
(comma "," separated)
danger_riff
Karma
0
Hi. I have strange problem. I have Amarok 1.4 beta2, kde 3.5.0 mandriva 2006.1 When i plug in my iriver ifp, and start amarok under normal user (not root) amarok can\'t connect to it :/ but when i start amarok under root, it connect my iriver with no problems. How can i fix it? i don\'t want to use amarok under root. Please help me

Ps. Sorry for my poor english :blush:
Borromini
Karma
0
Hi, I got exactly the same problem. I use the 1.4 beta2 on Zenwalk 2.2 (kernel 2.6.15.4, udev 088, loosely based on Slack 10.2). We no longer use hotplug (the latest udevs can handle everything hotplug did).

Just like the topic starter, I can only mount my device within amaroK as root. This is a known problem for the libifp package (I used a GUI frontend for it way back, I had to run that with sudo also). I have tried the following:

- set up a sudo rule for the ifpline executable (no results)
- set the suid on the ifpline executable (now I can run it directly as a regular user, but when invoked by amaroK there is no noticeable change)
- set up a udev rule for the iRiver, assigning it to group \'ifp\' (of which my user is a member) and setting permissions to 0660.

I have googled many hours on this one (I would like it straightened out, I\'ve been waiting for iRiver support for a long time :P). Yet no usable solutions have appeared (I don\'t want to run amaroK as root).

It\'s fairly clear this is a problem with the libifp package and not with amaroK. However, maybe it would be possible to change the way amaroK calls on the ifpline executable, so this is not an issue anymore? I don\'t know exactly how the interaction between amaroK and ifpline goes, but it\'s worth a thought I think.
User avatar
oggb4mp3
Registered Member
Posts
166
Karma
0
well, I solved it by adding a group parameter to my udev.rules and then adding my user to that group. iirc I used the group called storage. Actually, why don\'t I just post my udev.rules file

[code:1]
$ cat /etc/udev/rules.d/ifpdev.rules

# udev rules file for supported ifp devices
#
# To add an USB ifp device, add a rule to the list below between the SUBSYSTEM...
# and LABEL... lines.
#
# To run a script when your ifp is plugged in, add RUN=\"/path/to/script\"
# to the appropriate rule.
#

SUBSYSTEM!=\"usb_device\", ACTION!=\"add\", GOTO=\"libifp_rules_end\"

# ifp-1xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1001\", GROUP=\"storage\"
# ifp-3xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1003\", GROUP=\"storage\"
# ifp-5xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1005\", GROUP=\"storage\"
# ifp-7xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1007\", GROUP=\"storage\"
# ifp-8xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1008\", GROUP=\"storage\"
# ifp-9xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1009\", GROUP=\"storage\"
# ifpdev
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1010\", GROUP=\"storage\"
# The N10
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1011\", GROUP=\"storage\"

LABEL=\"libifp_rules_end\"
[/code:1]
Borromini
Karma
0
Thanks, I had something similar... but without the ADD parameters and stuff. What is the exclamation mark for?

I have tried the rule (restarted the udev daemon), but no results :(. Are you still using hotplug in some way?

I removed the suid on /usr/bin/ifpline, no results either. I also built the libifp kernel module - I read it would facilitate the access for regular users to the iRiver. Can it be amarok doesn\'t work with this module? I tried to build it with only the kernel module loaded, didn\'t work though.
User avatar
oggb4mp3
Registered Member
Posts
166
Karma
0
No, I am not using hotplug. These are rules for the new udev. If you are using hotplug still, this is the rules file I used to use under hotplug.

[code:1]
$ cat ifpdev.rules~

# udev rules file for supported ifp devices
#
# To add an USB ifp device, add a rule to the list below between the SUBSYSTEM...
# and LABEL... lines.
#
# To run a script when your ifp is plugged in, add RUN=\"/path/to/script\"
# to the appropriate rule.
#

SUBSYSTEM!=\"usb_device\", ACTION!=\"add\", GOTO=\"libifp_rules_end\"

# ifp-1xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1001\", RUN+=\"/lib/udev/libifpdev.sh\"
# ifp-3xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1003\", RUN+=\"/lib/udev/libifpdev.sh\"
# ifp-5xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1005\", RUN+=\"/lib/udev/libifpdev.sh\"
# ifp-7xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1007\", RUN+=\"/lib/udev/libifpdev.sh\"
# ifp-8xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1008\", RUN+=\"/lib/udev/libifpdev.sh\"
# ifp-9xx
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1009\", RUN+=\"/lib/udev/libifpdev.sh\"
# ifpdev
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1010\", RUN+=\"/lib/udev/libifpdev.sh\"
# The N10
SYSFS{idVendor}==\"4102\", SYSFS{idProduct}==\"1011\", RUN+=\"/lib/udev/libifpdev.sh\"

LABEL=\"libifp_rules_end\"[/code:1]

Then drop this libifpdev.sh script into /lib/udev/. It will accomplish the same result under hotplug.

[code:1]
#!/bin/sh

# This script changes the permissions and ownership of a USB device under
# /proc/bus/usb to grant access to this device to users in the storage group.
#
# Ownership is set to root:«»storage, permissions are set to 0660.
#
# Arguments :
# -----------
# ACTION=[add|remove]
# DEVICE=/proc/bus/usb/BBB/DDD
# TYPE=usb

# latest hotplug doesn\'t set DEVICE on 2.6.x kernels
if [ -z \"$DEVICE\" ] ; then
IF=`echo $DEVPATH | sed \'s/\\(bus\\/usb\\/devices\\/\\)\\(.*\\)-\\(.*\\)/\\2/\'`
DEV=$(cat /sys/${DEVPATH}/devnum)
DEVICE=`printf \'/proc/bus/usb/%.03d/%.03d\' $IF $DEV`
fi

#if [ \"$ACTION\" = \"add\" -a \"$SUBSYSTEM\" = \"usb\" ]; then
chown root:«»storage \"$DEVICE\"
chmod 0660 \"$DEVICE\"
#fi


# That\'s an insecure but simple alternative
# Everyone has access to the camera

# if [ \"$ACTION\" = \"add\" -a \"$TYPE\" = \"usb\" ]; then
# chmod 0666 \"$DEVICE\"
# fi
[/code:1]

Post edited by: oggb4mp3, at: 2006/04/02 23:29
Borromini
Karma
0
Thanks. I put the script in... But no results, again. As for the first rules set, is the ! doing something special? I didn\'t see it documented in the udev rule writing documentation I used.

I suppose you use the ifp-line (libifp) package, no? There seems more than one way to use the iFP series on Linux... (apart from flashing it to a UMS device of course).
User avatar
oggb4mp3
Registered Member
Posts
166
Karma
0
I put the script in... But no results, again.


Did you mark the script as executable (+x)? Is your user in the storage group?

As for the first rules set, is the ! doing something special? I didn\'t see it documented in the udev rule writing documentation I used.


Don\'t think so. I modified the ruleset based on the gphoto ruleset on Archlinux and I didn\'t pay much attention to it because it just worked.

I suppose you use the ifp-line (libifp) package, no? There seems more than one way to use the iFP series on Linux... (apart from flashing it to a UMS device of course).


yes, I use libifp. I do nothing special, it just works.
User avatar
oggb4mp3
Registered Member
Posts
166
Karma
0
oggb4mp3 wrote:
As for the first rules set, is the ! doing something special? I didn\'t see it documented in the udev rule writing documentation I used.


Don\'t think so. I modified the ruleset based on the gphoto ruleset on Archlinux and I didn\'t pay much attention to it because it just worked.


I take that back after taking a closer look at the ruleset. It means not, so

SUBSYSTEM!="usb_device", ACTION!="add", GOTO="libifp_rules_end"

means if Subsystem is not equal to usb_device and action is not equal to add, go to libifp_rules_end. Basically skipping the rules if there is no device to test.
Borromini
Karma
0
I did forget to chmod +x the /lib/udev script :blush:. I did that, restarted udev, still the same though :(. I get some error message when compiling amarok though: \'unable to configure libifp\' (or something like that).

Could you tell me if there are any special commands you put in the configure dialog box?

Also, if you got a package for libifp - could i try yours?

Thanks :)
Borromini
Karma
0
OK. Just to be sure, I checked: amarok is run as user \'stijn\' (i.e. me). So when it accesses ifpline, there shouldn\'t be a difference afaik - because I talk to the ifpline executable as \'stijn\' also, or am I wrong?
User avatar
oggb4mp3
Registered Member
Posts
166
Karma
0
user should be the same.

Here is my ./configure. Nothing special
./configure --prefix=/opt/kde --enable-mysql --with-helix --with-mp4v2 --enable-debug=full

if libifp is present, then the amaroK configure should pick it up, unless you are using 1.3.x, then I think there may have been a configure switch. ./configure --help will tell you what it is.
Borromini
Karma
0
Hi, I\'m back :). I just built the new beta, and I thought I\'d post this from my log, maybe it can provide any pointers?

[code:1]checking ifp.h usability... no
checking ifp.h presence... yes
configure: WARNING: ifp.h: present but cannot be compiled
configure: WARNING: ifp.h: check for missing prerequisite headers?
configure: WARNING: ifp.h: see the Autoconf documentation
configure: WARNING: ifp.h: section \"Present But Cannot Be Compiled\"
configure: WARNING: ifp.h: proceeding with the preprocessor\'s result
configure: WARNING: ifp.h: in the future, the compiler will take precedence
configure: WARNING: ## ------------------------------------------ ##
configure: WARNING: ## Report this to the AC_PACKAGE_NAME lists. ##
configure: WARNING: ## ------------------------------------------ ##
checking for ifp.h... yes[/code:1]
Borromini
Karma
0
Ok! I found another clue I hope. With the beta3c, I get this message:

[code:1]No new media devices were found. If you feel this is an error, make sure HAL or DBUS are running and KDE has been compiled with support for them.[/code:1]

Our KDE build has no HAL or DBUS AFAIK. I\'m gonna test with a full KDE... See what it does.
louis_nichols
Karma
0
Hi! I just want to report that I am having this exact problem under Ubuntu Dapper beta. I'm using amarok 1.4 beta3 directly form the repos and I also get the error
Code: Select all
No new media devices were found. If you feel this is an error, make sure HAL or DBUS are running and KDE has been compiled with support for them.


I tried all the previous solution proposed on this thread, paying attention to details (chmod +x and user as storage group member), but no luck.

I'm pretty much a beginner in the Linux world, but I would really like to see a solution to this. I flashed the UMS firmware with the regular one in the hope this will work. :(
User avatar
vetto
Registered Member
Posts
21
Karma
0
I have KDE 3.5.2 and Amarok 1.4.0 installed from ubuntu repo as described in installation wiki.

I get "could not connect" to ifp, I have a ifp 890 with UMS firmware.

I tried to start amarok as root and still no luck connecting.  Then I noticed that because I have the UMS installed in the ifp, KDE automounts the player (/dev/sda) as /media/sda.  I cannot add files to the player via that method either.  The permissions of /media/sda and of the directories under that are rwxr-xr-x root root, but even when I mount the device from a term as root I cannot write to it....now what?


Bookmarks



Who is online

Registered users: Bing [Bot], Google [Bot], Sogou [Bot]