Hello,
I'm new in this list and in driver's world.
My sister have a Philips HDD 1620 device. Its a mp3 device
with 6GB of storage space and it's no a standard usb device because
it doesn't work with the linux/mac/windows standard usb drivers. To
comunicate with the device it's supplied a plugin for the WMedia
player 10. The device box is marked with the PlayForSure logo.
But at home my main systems are Linux and Mac. So I'm
trying to make it work in Linux.
I started plugin the device to my linux box and I obtained
this message:
[17193362.540000] usb 1-1: new full speed USB device using uhci_hcd
and address 2
Then looking in /proc/bus/usb/devices I saw:
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.15 uhci_hcd
S: Product=UHCI Host Controller
S: SerialNumber=0000:00:1d.0
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0471 ProdID=014c Rev= 0.01
S: Manufacturer=Philips
S: Product=Philips HDD14XX GoGear
S: SerialNumber= DNP630B4S9AVRA
C:* #Ifs= 1 Cfg#=128 Atr=c0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff
Driver=(none)
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=100ms
Ok, the device was detected but nothing happened.
Downloading the kernel sources 2.6.15 and reading some code
I found the file drivers/usb/storage/unusual_devs.h.
I tryed to add this:
UNUSUAL_DEV( 0x0471, 0x014c, 0x0000, 0x9999,
"Philips",
"Philips HDD14XX GoGear",
US_SC_RBC, US_PR_CBI, NULL, US_FL_BULK32),
and tryed to change various times the flags param and never
worked,
...
[17179766.096000] usb 1-1: new full speed USB device using uhci_hcd
and address 2
[17179766.604000] SCSI subsystem initialized
[17179766.696000] Initializing USB Mass Storage driver...
[17179766.700000] scsi0 : SCSI emulation for USB Mass Storage
devices
[17179766.700000] usbcore: registered new driver usb-storage
[17179766.700000] USB Mass Storage support registered.
[17179766.700000] usb-storage: device found at 2
[17179766.700000] usb-storage: waiting for device to settle before
scanning
[17179771.812000] usb 1-1: reset full speed USB device using
uhci_hcd and address 2
[17179772.064000] usb 1-1: reset full speed USB device using
uhci_hcd and address 2
[17179772.196000] usb 1-1: can't restore configuration #128
(error=-32)
[17179772.196000] usb 1-1: USB disconnect, address 2
[17179772.200000] usb-storage: device scan complete
[17179772.324000] usb 1-1: new full speed USB device using uhci_hcd
and address 3
[17179772.468000] usb 1-1: can't set config #128, error -32
[17179772.588000] usb 1-1: new full speed USB device using uhci_hcd
and address 4
[17179772.732000] usb 1-1: can't set config #128, error -32
[17179772.844000] usb 1-1: new full speed USB device using uhci_hcd
and address 5
[17179772.872000] usb 1-1: can't set config #128, error -32
[17179772.984000] usb 1-1: new full speed USB device using uhci_hcd
and address 6
[17179773.012000] usb 1-1: can't set config #128, error -32
...
but whatever the flag was I allways obained the same error
[17179772.468000] usb 1-1: can't set config #128, error -32
I've seen that this error is thrown in the hub.c file,
concretely in the usb_new_device(usb_device) function. It calls
usb_set_configuration(usb_device, configuration) at messages.c. I
think the first thing that this function does is check that the
configuration received is in the usb_device structure. This
configuration is not found in the structure so the error is thrown.
By the data in /proc the configuration trying to assign is
the correct one.
When choosing the configuration in hub.c we used the same
structure than when setting the configuration in messages.c so I
don't understand how it could'nt find the configuration selected
before. As is seen in proc the device is informing correctly the
number of configurations (one).
Can somebody give me some light please!
Do you think it's possible to make this device work?
Thanks in advance!!!
PD I'm working with KUbuntu and downloaded the kernel sources
2.6.15 and compiled them with
[EMAIL PROTECTED]:/home/kernel/linux-2.6.15/drivers/usb/core$ gcc
--version
gcc (GCC) 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)
Copyright (C) 2005 Free Software Foundation, Inc.
Això és programari lliure; vegi el codi font per a les condicions
de còpia.
No hi ha CAP garantia; ni tan sols de COMERCIABILITAT o
ADEQUACIÓ A UN PROPÒSIT PARTICULAR.
[EMAIL PROTECTED]:/home/kernel/linux-2.6.15/drivers/usb/core$
<table width=240 height=100 border=1 cellspacing=0
bgcolor=000000>
<tr><td>
<center><font face='BankGothic Md BT' color='#3366FF'>Oliver
Hernàndez Valls</font></center>
<tr><td><center><font
color='red'>Enginyeria Informàtica</font></center>
</table>