SCIENTIFIC-LINUX-USERS Archives

July 2009

SCIENTIFIC-LINUX-USERS@LISTSERV.FNAL.GOV

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Nicola Maggi <[log in to unmask]>
Reply To:
Nicola Maggi <[log in to unmask]>
Date:
Tue, 14 Jul 2009 11:59:21 +0200
Content-Type:
text/plain
Parts/Attachments:
text/plain (240 lines)
Hi,
I used a single = and now i don't have parse error.
However my rule seems not to work properly, in fact it does not create
a device in /dev so I guess the rule in permissions.d is never
applied.

The rule I'm currently using is:
BUS="usb", SYSFS{idVendor}="151f", NAME="%k", SYMLINK="opalFPGA"

the rule in permissions.d folder is :
opal*:nick2k3:nick2k3:0666

Any idea?

On Mon, Jul 13, 2009 at 6:00 PM, Mark Stodola<[log in to unmask]> wrote:
> Nicola Maggi wrote:
>>
>> On Mon, Jul 13, 2009 at 3:10 PM, Mark Stodola<[log in to unmask]>
>> wrote:
>>
>>>
>>> Nicola Maggi wrote:
>>>
>>>>
>>>> On Wed, May 27, 2009 at 3:19 PM, Mark Stodola<[log in to unmask]>
>>>> wrote:
>>>>
>>>>
>>>>>
>>>>> Nicola Maggi wrote:
>>>>>
>>>>>
>>>>>>
>>>>>> Hello to everyone,
>>>>>> I have a Scientific Linux CERN 4 installation and I need to control an
>>>>>> usb device with it.
>>>>>> My device is an Opal Kelly FPGA with an usb interface.
>>>>>> I need to access it from some c++ code.
>>>>>> In the FPGA user manual they say:
>>>>>> __________
>>>>>> The Linux installation requires the addition of one file to the
>>>>>> directory:
>>>>>>
>>>>>>  60-opalkelly.rules ----->  /etc/udev/rules.d/
>>>>>>
>>>>>> This file includes a generic udev rule to set the permissions on all
>>>>>> attached Opal Kelly USB devices to allow user access.  Once this file
>>>>>> is
>>>>>> in place, you will need to reload the rules by either rebooting or
>>>>>> using
>>>>>> the following command:
>>>>>>
>>>>>>  /sbin/udevcontrol reload_rules
>>>>>> __________
>>>>>> I successfully copied the file into rules.d/ but I still have some
>>>>>> problem.
>>>>>> I don't have the /sbin/udevcontrol application:
>>>>>> all the application with udev in their  name are:
>>>>>> udevinfo
>>>>>> udevtest
>>>>>> start_udev
>>>>>> udev
>>>>>> udevd
>>>>>> udevstart
>>>>>> udevstart.static
>>>>>> udev.static
>>>>>> udev_colume_id
>>>>>>
>>>>>> the file 60-opalkelly.rules is pasted at the and of this mail.
>>>>>> How do I make the system load this rule manually?
>>>>>> If I reboot while the device is connected everything works fine,
>>>>>> except that I can only access the FPGA with root priviledges. Any way
>>>>>> to allow users to use it?
>>>>>> Thank you in advance,
>>>>>> Nicola Maggi
>>>>>>
>>>>>>
>>>>>> # udev rules file for all Opal Kelly VID matches.
>>>>>> # This file allows udev to change the mode to 666 (all read/write)
>>>>>> # for any Opal Kelly VID.
>>>>>> #
>>>>>>
>>>>>> # For FedoraCore 5 and similar:
>>>>>> SUBSYSTEM=="usb_device", SYSFS{idVendor}=="151f", MODE="0666"
>>>>>>
>>>>>> # For FedoraCore 7 and similar:
>>>>>> SUBSYSTEM=="usb", ATTRS{idVendor}=="151f", MODE="0666"
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> Nicola,
>>>>>
>>>>> Those rules look like they were written for a different version of udev
>>>>> than
>>>>> what SL 4 provides.
>>>>> In order to reload new rules in SL 4, simply executing 'udevstart'
>>>>> should
>>>>> do
>>>>> the trick.  It will cause a reload.
>>>>> As for the rules, you'll need to rewrite them, which isn't difficult.
>>>>> Newer udev (like the one in SL 5) have changed to allow everything in 1
>>>>> definition similar to what you have provided.
>>>>> The MODE entry isn't supported, you'll need an entry in
>>>>> /etc/udev/permissions.d/ to handle that.
>>>>> It will help if you know the device node name when writing the rules,
>>>>> or
>>>>> to
>>>>> define one that will be consistent.
>>>>>
>>>>> For example, here is what I use to make sure a serial adapter is always
>>>>> detected correctly with the permissions I want:
>>>>> # /etc/udev/rules.d/11-edgeport.rules
>>>>> BUS="usb" SYSFS{idVendor}="1608" SYSFS{idProduct}="0201"
>>>>> SYSFS{serial}="*-0"
>>>>> NAME="%k" SYMLINK="ttyEDGE0%e"
>>>>> BUS="usb" SYSFS{idVendor}="1608" SYSFS{idProduct}="0201"
>>>>> SYSFS{serial}="*-1"
>>>>> NAME="%k" SYMLINK="ttyEDGE1%e"
>>>>>
>>>>> This generates /dev/ttyEDGE0, /dev/ttyEDGE01, /dev/ttyEDGE1,
>>>>> /dev/ttyEDGE11
>>>>> aliased to the correct /dev/ttyUSB#.
>>>>>
>>>>> # /etc/udev/permissions.d/10-udev.permissions
>>>>> ttyS*:root:uucp:0666
>>>>> ttyUSB*:root:uucp:0666
>>>>>
>>>>> This gives any device node of /dev/ttyS# or /dev/tty/USB# permissions
>>>>> of
>>>>> 0666.
>>>>>
>>>>> I hope that helps.
>>>>>
>>>>> Cheers,
>>>>> Mark
>>>>>
>>>>> --
>>>>> Mr. Mark V. Stodola
>>>>> Digital Systems Engineer
>>>>>
>>>>> National Electrostatics Corp.
>>>>> P.O. Box 620310
>>>>> Middleton, WI 53562-0310 USA
>>>>> Phone: (608) 831-7600
>>>>> Fax: (608) 831-9591
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> Hi,
>>>> thanks for the useful help but I just managed to find some time to
>>>> work on this problem.
>>>>
>>>> I modified my 60-opalkelly.rules as follows:
>>>>
>>>> # udev rules file for all Opal Kelly VID matches.
>>>> # This file allows udev to change the mode to 666 (all read/write)
>>>> # for any Opal Kelly VID.
>>>> #
>>>>
>>>> # For FedoraCore 5 and similar:
>>>> SUBSYSTEM=="usb_device", SYSFS{idVendor}=="151f", NAME="%k",
>>>> SYMLINK="usbFP%n"
>>>>
>>>> # For FedoraCore 7 and similar:
>>>> SUBSYSTEM=="usb", ATTRS{idVendor}=="151f",NAME="%k", SYMLINK="usbFP%n"
>>>>
>>>> and added this lines in the 50-udev.permissions file:
>>>> #opalkelly devices
>>>> usbFP*:nick2k3:nick2k3:0666
>>>>
>>>> where nick2k3 is my non-root user.
>>>>
>>>> I notice no change after a reboot or running /sbin/udevstart
>>>> Furthermore there is no usbFP device in /dev/ directory.
>>>> any hints?
>>>>
>>>> (Anyway nothing I have done seems to prevent root access to the device
>>>> - which I think is a lucky thing-)
>>>>
>>>> Thank you in advance,
>>>> Nicola
>>>>
>>>>
>>>
>>> Nicola,
>>>
>>> Try changing SUBSYSTEM="usb_device" to BUS="usb".  I don't recall
>>> SUBSYSTEM
>>> being supported in SL4.
>>> You can also debug your rules using udevinfo and udevtest.  lsusb might
>>> help
>>> as well, to verify vendor ID and such.
>>>
>>> Cheers,
>>> Mark
>>>
>>> --
>>> Mr. Mark V. Stodola
>>> Digital Systems Engineer
>>>
>>> National Electrostatics Corp.
>>> P.O. Box 620310
>>> Middleton, WI 53562-0310 USA
>>> Phone: (608) 831-7600
>>> Fax: (608) 831-9591
>>>
>>>
>>>
>>
>> I tried using this:
>> BUS=="usb", SYSFS{idVendor}=="151f", NAME="%k"
>>
>> but I noticed this error:
>> Jul 13 17:53:03 localhost udev[6842]: parse error
>> /etc/udev/rules.d/60-opalkelly.rules, line 7:0, rule skipped
>>
>> Maybe there's something wrong with the way the rule is done.
>> any hint?
>>
>
> Try using a single '=', that's about all I can see that might cause
> problems.
>
> -Mark
>
> --
> Mr. Mark V. Stodola
> Digital Systems Engineer
>
> National Electrostatics Corp.
> P.O. Box 620310
> Middleton, WI 53562-0310 USA
> Phone: (608) 831-7600
> Fax: (608) 831-9591
>
>

ATOM RSS1 RSS2