lkml.org 
[lkml]   [2004]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: vid&pid problems in usb_probe()
    Sorry, I forgot to tell you, I have copied all the header files in 
    "linux2.4.18/include/linux" to "/usr/include/linux". I am sure that
    there is no difference between "linux2.4.18/include/linux" and "/usr/include/linux"

    I build this driver like this:

    #gcc -c usb.c
    #insmod -f usb.o //due to version dismatch, i should use -f

    then plug a usb device.


    Could you help me test this program? Do you have an usb device? You can write a program
    like this, and test if it can report the right vid & pid.
    I downloaded a new kernel 2.6.5, after i started with the new kernel, lots of modules
    can not be loaded, so i changed back to 2.4.18, then I found my X-windows can not
    start. Did this error have something to do with this unstablity?


    ----- Original Message -----
    From: Randy.Dunlap
    To: dongzai007@sohu.com
    Cc: linux-kernel@vger.kernel.org
    Subject: Re: vid&pid problems in usb_probe()
    Sent: Sun May 09 01:25:34 CST 2004

    > On Sat, 8 May 2004 17:05:24 +0800 (CST) <dongzai007@sohu.com> wrote:
    >
    > | Thank you for replying,but I don't know what you mean,
    > | USB descriptor data structure is defined in
    > | "/usr/include/linux/usb.h"
    > |
    > | my kernel version is 2.4.18.
    >
    > Are you saying that your driver uses /usr/include/linux/usb.h ?
    > If so, that's wrong. It should use linux-2.4.18/include/linux/usb.h
    > instead, and it will if you build/make the driver correctly.
    >
    > So, how do you build this driver? Show the Makefile or command
    > line that you use.
    >
    > Regarding the data structure, I don't know what /usr/include/linux/usb.h
    > on your system contains since that is not a kernel header file (and
    > drivers shouldn't use those). I do recall, however, that many moons
    > ago, there were some usb structs in usb.h that were not defined
    > with __attribute__((packed)), and that could cause field offsets
    > to be off a bit, er, byte (or more).
    >
    > And what processor arch. are you doing this on?
    >
    > Driver source code?
    >
    > ~Randy
    >
    >
    > | ----- Original Message -----
    > | From: Randy.Dunlap
    > | To: dongzai007@sohu.com
    > | Cc: linux-kernel@vger.kernel.org
    > | Subject: Re: vid&pid problems in usb_probe()
    > | Sent: Sat May 08 12:45:54 CST 2004
    > |
    > | > On Sat, 8 May 2004 11:48:44 +0800 (CST) <dongzai007@sohu.com> wrote:
    > | >
    > | > |
    > | > |
    > | > | I am writting an usb driver.You know function usb_probe(...) is used to determine whether the usbdevices just pluged in is what the driver is for.
    > | >
    > | > a. Please learn to use the Enter/Return key around character position
    > | > 70 (or before) on each line.
    > | >
    > | > b. what kernel version? (*always*)
    > | >
    > | > c. You should ask this on the linux-usb-development mailing list:
    > | > linux-usb-devel@lists.sf.net
    > | >
    > | >
    > | > | The Vid and Pid of my usb device are 0x1111 and 0x0000 respectively.
    > | > |
    > | > | the program is :
    > | > |
    > | > | static void* usb_probe(struct usb_device *udev, unsigned int ifnum, const struct usb_device_id *id)
    > | > | {
    > | > | ..............
    > | > | ..............
    > | > |
    > | > | printk("<1>Vid:%x
    > | Pid:%x
    > | ",udev->descriptor.idVendor,udev->descriptor.idProduct);
    > | > |
    > | > | if ((udev->descriptor.idVendor!=0x1111)
    > | > | ||(udev->descriptor.idProduct!=0x0000)) return NULL;
    > | > |
    > | > | ..............
    > | > | }
    > | > |
    > | > | when I plug the device whose vid & pid is 0x1111 & 0x0000 respectively.
    > | > | this Module displayed
    > | > |
    > | > |
    > | > | Vid:0
    > | > | Pid:201
    > | > |
    > | > | usb.c ........ no active driver for this device;
    > | > |
    > | > | and when I plug another device , I also got wrong vid & pid.
    > | > |
    > | > | But when I wrote program as below:
    > | > |
    > | > | __u16 tmp=0x1111;
    > | > | printk("<1>%x",tmp);
    > | > |
    > | > | it can print "1111" on the screen. That means my syntax is correct.
    > | > | I mean, the problem may be at the data transfered into function usb_probe()
    > | > | Maybe data transfered into function usb_probe() is wrong.
    > | > |
    > | > | I wonder where is the problem, how can i solve.
    > | >
    > | > Seeing more (or all) of your source code could help.
    > | > I'm especially curious (suspicious) about your USB descriptor data
    > | > structures.
    > -
    > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at http://vger.kernel.org/majordomo-info.html
    > Please read the FAQ at http://www.tux.org/lkml/

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:03    [W:0.026 / U:119.496 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site