Re: [linux-minidisc] libusb1.USBError
Hello all,
I got around to it Airian, as you can see (I hope I put the right info
in the right area)... And I get that the vendoe ID is not known:
bredgeo@bredgeo-laptop:~$ lsusb
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 002: ID 054c:0186 Sony Corp. Net MD
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 05e3:0722 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 04f2:b070 Chicony Electronics Co., Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
bredgeo@bredgeo-laptop:~$ ATTRS{idVendor}==054c,
ATTRS{idProduct}==0186, MODE=-rw-rw-r--, GROUP=ls -l
ATTRS{idVendor}==054c,: command not found
bredgeo@bredgeo-laptop:~$
It might be in the "GROUP" entry that I messed up (or all)... As you
see this is what I entered in the Terminal......... I hope it is not to
funny:
ATTRS{idVendor}==054c, ATTRS{idProduct}==0186, MODE=-rw-rw-r--,
GROUP=ls -l
Thus, when (just for the fun of it) trying the "netmd_dump" entry, I
get the same message:
bredgeo@bredgeo-laptop:~$ netmd_dump
libusb couldn't open USB device /dev/bus/usb/005/003: Permission denied.
libusb requires write access to USB device nodes.
Traceback (most recent call last):
File "/usr/bin/netmd_dump", line 131, in <module>
track_range=track_range, title=options.title)
File "/usr/bin/netmd_dump", line 10, in main
device_address=device_address):
File "/usr/lib/python2.6/dist-packages/libnetmd.py", line 78, in
iterdevices
yield NetMD(device.open())
File "/usr/lib/python2.6/dist-packages/usb1.py", line 502, in open
raise libusb1.USBError, result
libusb1.USBError: LIBUSB_ERROR_ACCESS [-3]
I am not lost, just sad............. It is time for me to take a crash
course in IT!!!!! ;-)
Regards,
Brian E. GEORGE
-----Original Message-----
From: Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
To: bredgeo1@netscape.net
Cc: linux-minidisc@lists.fu-berlin.de
Sent: Thu, Sep 2, 2010 7:18 pm
Subject: Re: [linux-minidisc] libusb1.USBError
Hi Brian,
On Sep 2, 2010, at 7:40 PM, bredgeo1@netscape.net wrote:
Hey Adrian,
Went and followed the Wiki in German... But I still get the usb error.
Before I help you, would please mind two things before we continue?
First, you should take care to reply both to me (or anyone else whom
you're
replying to) _and_ the mailing list. This can be achieved by clicking
"Reply
All"
in your mail client when on the mailing list. This way, everyone will
be able to see your messages to the mailing list.
And, second, please set your mail client to use text only format on the
mailing list if possible. If you use HTML or any other RichText format,
other users might not be able to read your messages.
Thanks!
And now for your problem. I will explain it in detail so you can figure
out
how to fix it yourself.
On Linux (and most Unix-type operating systems), all devices are
represented
as files. That is, if your computer has a serial connector (RS-232),
for
example,
you could simply write data over that serial connector by copying the
data
to the corresponding device file.
For example:
echo "Hello World!" > /dev/ttyS0
Will write "Hello World!" to the device associated with the device file
/dev/ttyS0.
Likewise, other devices like your hard disks, mice, USB devices, SCSI
devices
and so on have their own device files. Like all files on a Linux
machine, device
files have permissions associated to them which control which user may
access
the respective device. Without any special configuration, these
permissions are
set that only root may fully access the devices. Thus, the permissions
are set
to:
crwx------
in this case of a character device (hence the "c" at the beginning).
You can see
these patterns when listings files in a terminal with "ls -l".
Since you are advised to work with normal user privileges instead with
"root"
privileges, you will have to adjust the permissions to be able to fully
access
your devices as a non-root user. One way to achieve this would be
manually
setting the permissions of the appropriate device file each time after
you have
connected a device to your computer.
Since this would be very tedious and annoying, any recent Linux
distributions
provide a system daemon running in background called "udev" (the process
name is actually "udevd"). This daemon is monitoring all device
activity and
takes care of adjusting the permissions of device files (among other
things,
udev can actually do more) when connecting a new device. For this, udev
uses pattern matching to classify a device according to it's PCI or USB
IDs
which are unique to any device model. Once a device has been classified,
the device file permissions for this device are set according to rules
which
have been previously defined. As a user, you usually don't have to care
about
these rules since your distribution vendor (e.g. Ubuntu) has taken care
of
that for you, so that most common devices like CD-ROM drives, scanners,
printers and so on are correctly classified and the permissions are set
properly.
Since NetMD and HiMD devices aren't that common nowadays anymore, there
are no distribution vendors I know of who have defined udev rules for
these
such that the permissions are set correctly upon connecting a MiniDisc
device to your Linux box. Thus, you will have to define these rules
yourself.
Don't worry, this just involves pasting one line into a special
configuration
file. As I posted earlier, some German Ubuntu user has described this
mechanism on the German Ubuntu wiki [1] and you should be able
to perform the required steps for your case. To conclude the steps
again:
1) Connect your NetMD device to your computer and make sure it's
powered on
2) Open a terminal console on your Linux machine and type:
lsusb
You will get something like:
glaubitz@burns:~> lsusb
Bus 002 Device 003: ID 046d:c03e Logitech, Inc. Premium Optical
Wheel Mouse
(M-BT58)
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate
Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate
Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
glaubitz@burns:~>
Look for a line which contains your NetMD device, usually it
contains the
words
"Sony" and "Walkman" in the case of a Sony Walkman. Then write
down the
4-digit hexadecimal numbers which are separated by a colon, e.g.:
046d:c03e
like in the above example for the Logitech mouse. The first hex
number
specifies the USB vendor ID (in this case 046d means Logitech) and
the
second hex number specifies the device ID (in this case c03e,
meaning
"Premium Optical Wheel Mouse (M-BT58)"). Sony devices usually have
a vendor ID starting with 054c, see also [2].
3) Then, as root user, create a file called
"/etc/udev/rules.d/netmd.rules"
and add the following line:
ATTRS{idVendor}=="ABCD", ATTRS{idProduct}=="EFGH", MODE="0664",
GROUP="plugdev"
Replace ABCD and EFGH with the appropriate IDs for vendor and
device
which you wrote down in 2) earlier. Then save the file. This will
set
the owning group of the device file for your NetMD to "plugdev"
(all
users logging in locally via gdm are usually in the group plugdev)
the permissions to "0664" which corresponds to "-rw-rw-r--" in
terms
of the scheme mentioned above from the "ls -l" command.
4) Unplug and re-plug your NetMD Walkman. The netmd_dump script should
work now.
If you are still having problems, please paste your error messages as
well
as the output of "lsusb".
Hope that helps,
Adrian
[1] http://wiki.ubuntuusers.de/Baustelle/NetMD
[2]
https://wiki.physik.fu-berlin.de/linux-minidisc/doku.php?id=mdusbids=