On Tue, Oct 21, 2008 at 3:53 PM, Mike Isely <[EMAIL PROTECTED]> wrote: > > > On Tue, 21 Oct 2008, Larry on the Dell wrote: > >> >> My happauge PVR-USB2 wants to default to television input rather than my >> preferred s-video. So I read cur_val could be written to control this. >> So working my in >> >> [EMAIL PROTECTED]:/sys/class/pvrusb2/sn-8504958/ctl_input$ cd >> /sys/class/pvrusb2/sn-8504958/ctl_input >> [EMAIL PROTECTED]:/sys/class/pvrusb2/sn-8504958/ctl_input$ ls -al >> total 0 >> drwxr-xr-x 2 root root 0 2008-10-21 12:35 . >> drwxr-xr-x 56 root root 0 2008-10-21 12:33 .. >> -rw-rw-r-- 1 root root 4096 2008-10-21 12:35 cur_val >> -r--r--r-- 1 root root 4096 2008-10-21 12:35 enum_val >> -r--r--r-- 1 root root 4096 2008-10-21 12:35 name >> -r--r--r-- 1 root root 4096 2008-10-21 12:35 type >> >> [EMAIL PROTECTED]:/sys/class/pvrusb2/sn-8504958/ctl_input$ cat cur_val >> television >> >> so I don't want the television input, I want the s-video input. So >> attempt to write that >> >> [EMAIL PROTECTED]:/sys/class/pvrusb2/sn-8504958/ctl_input$ echo s-video > >> cur_val >> >> which results in >> >> -bash: cur_val: Permission denied >> >> so I tried >> >> [EMAIL PROTECTED]:/sys/class/pvrusb2/sn-8504958/ctl_input$ sudo echo >> s-video > >> cur_val >> >> with the same result. >> >> -bash: cur_val: Permission denied >> >> This is with mythbuntu and >> MythTV Version : 18207 >> MythTV Branch : branches/release-0-21-fixes >> Library API : 0.21.20080304-1 >> >> >> From the command line, how do I set ctl_imput to s-video? >> > > You have to be root in order to do that. The sudo trick should have > worked, but maybe your distro is doing something strange with sudo? > Try using "sudo -s" to get a root shell. Then you can at least verify > that you really are root. (And also once you're in the shell you can > try to directly modify those sysfs nodes.) > > As for why you need to be root, there isn't much the driver can do about > that. From the viewpoint of inside the kernel there really isn't a way > to change the owner of those sysfs files. The permissions can be > adjusted, but it's unwise for those fields to be world-writeable - since > then anything can take over control of the device. With device control, > usually one changes the gid of the files to match a specific group (e.g. > "video") and then users with permission to operate the device need only > be associated with that group. But even there the driver can't do > anything even if it wanted to, since the actual integer gid value for, > say, "video" is distro-specific. One clean, theoretical, way to fix > this is for there to be a udev rule that executes a chgrp on all of > /sys/class/pvrusb2/sn-xxxxxx at the point when the device appears. > That has the additional advantage that udev can know the correct > distro-specific gid value to use. But I haven't implemented this (this > is a task really outside of the driver). But it would be a useful > exercrise for someone else to set up.
An explanation for why sudo does not work: The sysfs interface creates a filesystem that can only be touched by root. The "sudo" command elevates privileges for the "echo" command, but the redirection " > " is still being handled by the shell (bash) that the user is actually logged in to. If you do "sudo su" , that will start a new shell AS user root, and then redirection will work. Regards, Mike Krufky _______________________________________________ pvrusb2 mailing list [email protected] http://www.isely.net/cgi-bin/mailman/listinfo/pvrusb2
