Skip to contentSkip to conversation

Vosonic's X-Drive 2030

DISCUSSION Alexander Kühn 4 participants 13 messages May 6, 2003 – May 8, 2003

lore
Share & tools
lore
#0 lore raw

Hi,
I'm having troubling getting my X-Drive to work, I tried the following:

scorpio:/etc/hotplug # uname -a
Linux scorpio 2.4.18 #12 Sun Dec 1 17:51:58 CET 2002 ppc unknown

scorpio:/etc/hotplug # rpm -qa|grep -i hotplug
hotplug-base-2003_05_01-1
hotplug-2003_05_01-1

scorpio:/etc/hotplug # cat usb.usermap

# usb module         match_flags idVendor idProduct bcdDevice_lo 
bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol 
bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
usb-storage          0x0000     0x0d7d   0x0240    0x0000       0x0000 
     0x00         0x00            0x00            0x00            0x00 
           0x00            0x00000000

scorpio:/etc/hotplug # lsusb
Unknown line at line 1809
Duplicate HUT Usage Spec at line 2650
Bus 002 Device 001: ID 0000:0000 Virtual Hub
Bus 002 Device 010: ID 7d0d:4002
Bus 001 Device 001: ID 0000:0000 Virtual Hub
Bus 001 Device 003: ID 6d04:0cc0
(the second one is the USB mouse)

usbview says:
Manufacturer:

Serial Number: 0A211B001053
Speed: 12Mb/s (full)
USB Version:  1.10
Device Class: 00(>ifc )
Device Subclass: 00
Device Protocol: 00
Maximum Default Endpoint Size: 8
Number of Configurations: 1
Vendor Id: 0d7d
Product Id: 0240
Revision Number:  1.00

Config Number: 1
Number of Interfaces: 1
Attributes: 80
MaxPower Needed: 100mA

Interface Number: 0
Name: (none)
Alternate Number: 0
Class: 08(stor.)
Sub Class: 6
Protocol: 50
Number of Endpoints: 3

Endpoint Address: 81
Direction: in
Attribute: 2
Type: Bulk
Max Packet Size: 64
Interval: 255ms

Endpoint Address: 02
Direction: out
Attribute: 2
Type: Bulk
Max Packet Size: 64
Interval: 255ms

Endpoint Address: 83
Direction: in
Attribute: 3
Type: Int.
Max Packet Size: 2
Interval: 1ms

but still hotplug says:

May  6 13:22:15 scorpio kernel: hub.c: USB new device connect on bus2/1, 
assigned device number 10
May  6 13:22:15 scorpio kernel: usb.c: USB device 10 (vend/prod 
0xd7d/0x240) is not claimed by any active driver.
May  6 13:22:19 scorpio usb.agent: ... no modules for USB product 

d7d/240/100

I tried different variations in the usb.usermap file without success, any ideas welcome.
Alexander.

-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#1 lore raw
Quoted 8 lines · Alexander Kühn

scorpio:/etc/hotplug # cat usb.usermap

# usb module         match_flags idVendor idProduct bcdDevice_lo
bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol
bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
usb-storage          0x0000     0x0d7d   0x0240    0x0000       0x0000
     0x00         0x00            0x00            0x00            0x00
           0x00            0x00000000

Can you try this?
usb-storage 0x0003 0x7d0d 0x4002 0x0000 0x0000

(match_flags) ^^^^^^
(idVendor) ^^^^^^
(idProduct) ^^^^^^

Regards,
Pedro

Signature · 14 lines
ALSA Library Bindings for Pascal
http://alsapas.alturl.com



-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara
The only event dedicated to issues related to Linux enterprise solutions
www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
#2 lore raw
In reply to Alexander Kühn
Quoted 9 lines · Pedro Lopez-Cabanillas
Quoted 7 lines · Alexander Kühn

scorpio:/etc/hotplug # cat usb.usermap

# usb module         match_flags idVendor idProduct bcdDevice_lo
bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol
bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
usb-storage          0x0000     0x0d7d   0x0240    0x0000       0x0000
     0x00         0x00            0x00            0x00            0x00
           0x00            0x00000000
Quoted 6 lines

Can you try this?
usb-storage 0x0003 0x7d0d 0x4002 0x0000 0x0000

(match_flags) ^^^^^^
(idVendor) ^^^^^^
(idProduct) ^^^^^^

Sorry. Seems that lsusb is not very reliable on ppc architecture (bytesexual problem :-). Try this instead:
usb-storage 0x0003 0x0d7d 0x0240 0x0000 0x0000

Regards,
Pedro

Signature · 14 lines
ALSA Library Bindings for Pascal
http://alsapas.alturl.com



-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara
The only event dedicated to issues related to Linux enterprise solutions
www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
#3 lore raw
In reply to Alexander Kühn

Hi Pedro,
I see your idea and tried it, but it wont change something, I just played around with the usb.agend and modified a bit:

scorpio:/etc/hotplug # diff usb.agent.bak usb.agent 83c83
< # DEBUG=yes export DEBUG
---

Quoted 1 line

DEBUG=yes export DEBUG

373a374,385

Quoted 12 lines

if [ $DEBUG -eq "yes" ]; then
mesg "usb_idVendor=$usb_idVendor"
mesg "usb_idProduct=$usb_idProduct"
mesg "usb_bcdDevice=$usb_bcdDevice"
mesg "usb_bDeviceClass=$usb_bDeviceClass" mesg "usb_bDeviceSubClass=$usb_bDeviceSubClass" mesg "usb_bDeviceProtocol=$usb_bDeviceProtocol" mesg "usb_bInterfaceClass=$usb_bInterfaceClass" mesg "usb_bInterfaceSubClass=$usb_bInterfaceSubClass" mesg "usb_bInterfaceProtocol=$usb_bInterfaceProtocol"
fi

then I copied the values to usb.usermap (konfabulating the values for bcdDevice_lo and bcdDevice_hi) :

# usb module         match_flags idVendor idProduct bcdDevice_lo 
bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol 
bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
usb-storage          0x0003     0x0d7d   0x0240    0x0000       
0x0200       0x00         0x00            0x00            
0x08            0x06            0x50            0x00000000

now it looks like this:

May  6 20:39:49 scorpio kernel: hub.c: USB new device connect on bus2/1, 
assigned device number 19
May  6 20:39:49 scorpio kernel: usb.c: USB device 19 (vend/prod 
0xd7d/0x240) is not claimed by any active driver.
May  6 20:39:52 scorpio usb.agent: usb_idVendor453
May  6 20:39:52 scorpio usb.agent: usb_idProductW6
May  6 20:39:52 scorpio usb.agent: usb_bcdDevice%6
May  6 20:39:52 scorpio usb.agent: usb_bDeviceClass=0
May  6 20:39:52 scorpio usb.agent: usb_bDeviceSubClass=0
May  6 20:39:52 scorpio usb.agent: usb_bDeviceProtocol=0
May  6 20:39:52 scorpio usb.agent: usb_bInterfaceClass=8
May  6 20:39:52 scorpio usb.agent: usb_bInterfaceSubClass=6
May  6 20:39:52 scorpio usb.agent: usb_bInterfaceProtocol€
May  6 20:39:53 scorpio usb.agent: Setup usb-storage for USB product 

d7d/240/100

now I just have to find the devices..(hopefully)
Thanks for your help,
Alexander.

Quoted 17 lines · Pedro Lopez-Cabanillas
Quoted 10 lines · Alexander Kühn

scorpio:/etc/hotplug # cat usb.usermap

# usb module         match_flags idVendor idProduct bcdDevice_lo
bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol
bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info
usb-storage          0x0000     0x0d7d   0x0240    0x0000       0x0000
    0x00         0x00            0x00            0x00            0x00
          0x00            0x00000000

Can you try this?
usb-storage 0x0003 0x7d0d 0x4002 0x0000 0x0000

Quoted 9 lines

(match_flags) ^^^^^^
(idVendor) ^^^^^^
(idProduct) ^^^^^^

Regards,
Pedro

-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara The only event dedicated to issues related to Linux enterprise solutions www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#4 lore raw
In reply to Alexander Kühn
Quoted 13 lines · Pedro Lopez-Cabanillas
Quoted 12 lines · Alexander Kühn
Quoted 2 lines

scorpio:/etc/hotplug # cat usb.usermap

# usb module         match_flags idVendor idProduct bcdDevice_lo

bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol

Quoted 1 line

bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info

usb-storage 0x0000 0x0d7d 0x0240 0x0000 0x0000

Quoted 2 lines
     0x00         0x00            0x00            0x00            0x00
           0x00            0x00000000

Can you try this?
usb-storage 0x0003 0x7d0d 0x4002 0x0000 0x0000

Quoted 7 lines
Quoted 3 lines

(match_flags) ^^^^^^
(idVendor) ^^^^^^
(idProduct) ^^^^^^

Sorry. Seems that lsusb is not very reliable on ppc architecture (bytesexual
problem :-). Try this instead:
usb-storage 0x0003 0x0d7d 0x0240 0x0000 0x0000

Yes, that's right. I made a patch for lsusb-endianness about 3 years ago, but I expect that it's lost by now...unless it's in one of the linux-usb email archives.

~Randy

-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara The only event dedicated to issues related to Linux enterprise solutions www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#5 lore raw
In reply to Alexander Kühn
Quoted 17 lines
Quoted 17 lines · Pedro Lopez-Cabanillas
Quoted 15 lines · Alexander Kühn
Quoted 2 lines

scorpio:/etc/hotplug # cat usb.usermap

# usb module         match_flags idVendor idProduct bcdDevice_lo

bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol

Quoted 1 line

bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info

usb-storage 0x0000 0x0d7d 0x0240 0x0000 0x0000

Quoted 2 lines
     0x00         0x00            0x00            0x00            0x00
           0x00            0x00000000

Can you try this?
usb-storage 0x0003 0x7d0d 0x4002 0x0000 0x0000

(match_flags) ^^^^^^
(idVendor) ^^^^^^
(idProduct) ^^^^^^

Quoted 8 lines
Quoted 4 lines

Sorry. Seems that lsusb is not very reliable on ppc architecture (bytesexual
problem :-). Try this instead:
usb-storage 0x0003 0x0d7d 0x0240 0x0000 0x0000

Yes, that's right. I made a patch for lsusb-endianness about 3 years ago, but I expect that it's lost by now...unless it's in one of the linux-usb email archives.

Hm, apparently I didn't make a patch, just raised the issue and got no resolution on it.

Here's the beginning of the mail thread:
http://marc.theaimsgroup.com/?l=linux-usb-devel&m˜056359905969&w=2

~Randy

-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara The only event dedicated to issues related to Linux enterprise solutions www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#6 lore raw
In reply to Alexander Kühn
Quoted 30 lines · Randy.Dunlap
Quoted 21 lines
Quoted 21 lines · Pedro Lopez-Cabanillas
Quoted 19 lines · Alexander Kühn
Quoted 2 lines

scorpio:/etc/hotplug # cat usb.usermap

# usb module         match_flags idVendor idProduct bcdDevice_lo

bcdDevice_hi bDeviceClass bDeviceSubClass bDeviceProtocol

Quoted 1 line

bInterfaceClass bInterfaceSubClass bInterfaceProtocol driver_info

usb-storage 0x0000 0x0d7d 0x0240 0x0000 0x0000

Quoted 2 lines
     0x00         0x00            0x00            0x00           

0x00 0x00 0x00000000

Can you try this?
usb-storage 0x0003 0x7d0d 0x4002 0x0000 0x0000

(match_flags) ^^^^^^
(idVendor) ^^^^^^
(idProduct) ^^^^^^

Quoted 8 lines
Quoted 4 lines

Sorry. Seems that lsusb is not very reliable on ppc architecture (bytesexual
problem :-). Try this instead:
usb-storage 0x0003 0x0d7d 0x0240 0x0000 0x0000

Yes, that's right. I made a patch for lsusb-endianness about 3 years ago, but I expect that it's lost by now...unless it's in one of the linux-usb email archives.

Quoted 6 lines

Hm, apparently I didn't make a patch, just raised the issue and got no resolution on it.

Here's the beginning of the mail thread:
http://marc.theaimsgroup.com/?l=linux-usb-devel&m˜056359905969&w=2

I'm not sure about this (from usbutils-0.11)

lsusb.c:270

	vid = buf[8] | (buf[9] << 8);
	pid = buf[10] | (buf[11] << 8);

usbmodules.c:413

       idVendor = buf[8] | (buf[9] << 8);
       idProduct = buf[10] | (buf[11] << 8);

Both programs seem to be affected, if the above is wrong. It seems to say: get the first byte and store it on the lower half of the 16 bits word, then get the next byte and store it in the high bits, but what is doing is to store the second byte followed by the first byte on the word. This is correct in little-endian machines, but not in big-endian. If i'm right, then the following should work on both sexes:

       idVendor = buf[8] + (buf[9] * 256);
       idProduct = buf[10] + (buf[11] * 256);

What do you think?

But anyway, (sorry if my suspicions are wrong) the fact is that lsusb does not work in ppc, and usbmodules also can be wrong. This is more serious, because usbmodules is used in hotplug scripts to find what modules to load for USB devices if it is installed.

Regards,
Pedro

Signature · 14 lines
ALSA Library Bindings for Pascal
http://alsapas.alturl.com



-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara
The only event dedicated to issues related to Linux enterprise solutions
www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
#7 lore raw
In reply to Alexander Kühn

On Thu, 8 May 2003 00:18:33 +0200 Pedro Lopez-Cabanillas <[email protected]> wrote:

| On Thursday 08 May 2003 00:24, David Brownell wrote:
| > >>>>>usb-storage          0x0000     0x0d7d   0x0240    0x0000       0x0000
| > >>>>>
| > >>>>>usb-storage          0x0003      0x7d0d  0x4002    0x0000       0x0000
| >
| > IF the byte order is wrong in "modules.usbmap",
| > that'd be some kind of modutils bug...
| 
| Sorry, but the bug was mine. We were talking about how to setup the 
| "usb.usermap" file, and my mistake was to use vendor and product ids from 
| lsusb directly. Later, i've checked the output from usbview, what is right 
| AFAIK.

So there is no problem AFA you know? with lsusb or modutils or usbview?

If so, that's good news.

--
~Randy

-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara The only event dedicated to issues related to Linux enterprise solutions www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#8 lore raw
In reply to Alexander Kühn
Quoted 6 lines · David Brownell
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

usb-storage 0x0000 0x0d7d 0x0240 0x0000 0x0000

usb-storage 0x0003 0x7d0d 0x4002 0x0000 0x0000

IF the byte order is wrong in "modules.usbmap",
that'd be some kind of modutils bug...

Sorry, but the bug was mine. We were talking about how to setup the "usb.usermap" file, and my mistake was to use vendor and product ids from lsusb directly. Later, i've checked the output from usbview, what is right AFAIK.

Regards,
Pedro

Signature · 14 lines
ALSA Library Bindings for Pascal
http://alsapas.alturl.com



-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara
The only event dedicated to issues related to Linux enterprise solutions
www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
#9 lore raw
In reply to Alexander Kühn
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

usb-storage 0x0000 0x0d7d 0x0240 0x0000 0x0000

usb-storage 0x0003 0x7d0d 0x4002 0x0000 0x0000

IF the byte order is wrong in "modules.usbmap",
that'd be some kind of modutils bug...

- Dave

-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara The only event dedicated to issues related to Linux enterprise solutions www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#10 lore raw
In reply to Alexander Kühn
Quoted 1 line · Randy.Dunlap

On Thu, 8 May 2003 00:18:33 +0200 Pedro Lopez-Cabanillas

Quoted 15 lines · <[email protected]> wrote:
| On Thursday 08 May 2003 00:24, David Brownell wrote:
| > >>>>>usb-storage          0x0000     0x0d7d   0x0240    0x0000      
| > >>>>> 0x0000
| > >>>>>
| > >>>>>usb-storage          0x0003      0x7d0d  0x4002    0x0000      
| > >>>>> 0x0000
| >
| > IF the byte order is wrong in "modules.usbmap",
| > that'd be some kind of modutils bug...
|
| Sorry, but the bug was mine. We were talking about how to setup the
| "usb.usermap" file, and my mistake was to use vendor and product ids from
| lsusb directly. Later, i've checked the output from usbview, what is
| right AFAIK.
Quoted 3 lines

So there is no problem AFA you know? with lsusb or modutils or usbview?

If so, that's good news.

To clarify:
- usbview output is correct AFAIK. It parses "/proc/bus/usb/devices", then this file is also correct.
- lsusb output is wrong, as stated by the message from Alexander Kühn, and also from your ancient messages to the linux-usb-devel list. Maybe usbmodules (from usbutils package) is also wrong.
- I don't know about modutils, i don't have any data to think it can be wrong. The file "usb.usermap" is not generated by modutils at all. It's a hand-maintained file.

Regards,
Pedro

Signature · 14 lines
ALSA Library Bindings for Pascal
http://alsapas.alturl.com



-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara
The only event dedicated to issues related to Linux enterprise solutions
www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
#11 lore raw
In reply to Alexander Kühn

On Thu, 8 May 2003 00:36:02 +0200 Pedro Lopez-Cabanillas <[email protected]> wrote:

| On Thursday 08 May 2003 00:17, Randy.Dunlap wrote:
| > On Thu, 8 May 2003 00:18:33 +0200 Pedro Lopez-Cabanillas 
| <[email protected]> wrote:
| > | On Thursday 08 May 2003 00:24, David Brownell wrote:
| > | > >>>>>usb-storage          0x0000     0x0d7d   0x0240    0x0000      
| > | > >>>>> 0x0000
| > | > >>>>>
| > | > >>>>>usb-storage          0x0003      0x7d0d  0x4002    0x0000      
| > | > >>>>> 0x0000
| > | >
| > | > IF the byte order is wrong in "modules.usbmap",
| > | > that'd be some kind of modutils bug...
| > |
| > | Sorry, but the bug was mine. We were talking about how to setup the
| > | "usb.usermap" file, and my mistake was to use vendor and product ids from
| > | lsusb directly. Later, i've checked the output from usbview, what is
| > | right AFAIK.
| >
| > So there is no problem AFA you know?  with lsusb or modutils or usbview?
| >
| > If so, that's good news.
| 
| To clarify:
| - usbview output is correct AFAIK. It parses "/proc/bus/usb/devices", then 
| this file is also correct.
| - lsusb output is wrong, as stated by the message from Alexander Kühn, and 
| also from your ancient messages to the linux-usb-devel list. Maybe usbmodules 
| (from usbutils package) is also wrong.
| - I don't know about modutils, i don't have any data to think it can be wrong. 
| The file "usb.usermap" is not generated by modutils at all. It's a 
| hand-maintained file.

Pedro, do you have access to a PPC/big-endian system? Or does anyone else out there, who would be willing to debug this lsusb problem, or at least try some patches?

--
~Randy

-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara The only event dedicated to issues related to Linux enterprise solutions www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

#12 lore raw
In reply to Alexander Kühn
Quoted 3 lines · Randy.Dunlap

Pedro, do you have access to a PPC/big-endian system? Or does anyone else out there, who would be willing to debug this lsusb problem, or at least try some patches?

No, sorry. I don't have any at hand now. I'm asking to some friends for help in this matter. I will tell you if something changes in this situation.

Regards,
Pedro

Signature · 14 lines
ALSA Library Bindings for Pascal
http://alsapas.alturl.com



-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara
The only event dedicated to issues related to Linux enterprise solutions
www.enterpriselinuxforum.com

_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel