You should try reading some documentation on building kernels. There is a pointed to one in the USB FAQ.
On Sat, 8 Mar 2003, raj rajesh kalagarla wrote: > Hi all, > > I am a new person particularly for developing drivers in > linux-usb. Previously I have done the same for windows. > > I wanted to write now a driver for my custom usb design. For that > can I use this skeleton code what are the changes I have to in > this so that I can know first loading the exe to kernel. How can I > link this inserted module into the kernel to my board connected. > > Pl give reply positively. > > When I compiled directly the usb-skeleton code obtained I got the > fallowing errors () the file is from linux kernel 2.4.18-14 redhat > 8.0) > > [EMAIL PROTECTED] root]# gcc -c -w Driver.c > -I/usr/src/linux-2.4.18-14/include > error.doc > In file included from > /usr/src/linux-2.4.18-14/include/linux/sched.h:14, > from Driver.c:3: > /usr/src/linux-2.4.18-14/include/linux/timex.h:173: field `time' > has incomplete type > In file included from > /usr/src/linux-2.4.18-14/include/linux/sched.h:86, > from Driver.c:3: > /usr/src/linux-2.4.18-14/include/linux/timer.h:17: field `list' > has incomplete type > In file included from Driver.c:14: > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h:289: > parse error before "devfs_alloc_devnum" > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h: In > function `devfs_alloc_devnum': > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h:291: > `NODEV' undeclared (first use in this function) > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h:291: > (Each undeclared identifier is reported only once > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h:291: for > each function it appears in.) > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h: At top > level: > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h:294: > parse error before "kdev_t" > Driver.c:43: elements of array `skel_table' have incomplete type > Driver.c:78: field `tqueue' has incomplete type > Driver.c:80: field `sem' has incomplete type > Driver.c:116: variable `skel_fops' has initializer but incomplete > type > Driver.c:136: unknown field `owner' specified in initializer > Driver.c:138: unknown field `read' specified in initializer > Driver.c:139: unknown field `write' specified in initializer > Driver.c:140: unknown field `ioctl' specified in initializer > Driver.c:141: unknown field `open' specified in initializer > Driver.c:142: unknown field `release' specified in initializer > Driver.c:147: variable `skel_driver' has initializer but > incomplete type > Driver.c:148: unknown field `name' specified in initializer > Driver.c:149: unknown field `probe' specified in initializer > Driver.c:150: unknown field `disconnect' specified in > initializer > Driver.c:151: unknown field `fops' specified in initializer > Driver.c:152: unknown field `minor' specified in initializer > Driver.c:153: unknown field `id_table' specified in initializer > Driver.c: In function `usb_skel_debug_data': > Driver.c:170: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:170: parse error before string constant > Driver.c: At top level: > Driver.c:199: conflicting types for `skel_open' > Driver.c:92: previous declaration of `skel_open' > Driver.c: In function `skel_open': > Driver.c:204: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:204: parse error before string constant > Driver.c:204: parse error before ')' token > Driver.c:206: dereferencing pointer to incomplete type > Driver.c:220: `minor_table_mutex' undeclared (first use in this > function) > Driver.c:238: dereferencing pointer to incomplete type > Driver.c: At top level: > Driver.c:251: conflicting types for `skel_release' > Driver.c:93: previous declaration of `skel_release' > Driver.c: In function `skel_release': > Driver.c:255: dereferencing pointer to incomplete type > Driver.c:257: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:257: parse error before string constant > Driver.c:257: parse error before ')' token > Driver.c:261: parse error before string constant > Driver.c:261: parse error before ')' token > Driver.c:264: `minor_table_mutex' undeclared (first use in this > function) > Driver.c:270: parse error before string constant > Driver.c:270: parse error before ')' token > Driver.c: At top level: > Driver.c:307: conflicting types for `skel_read' > Driver.c:89: previous declaration of `skel_read' > Driver.c: In function `skel_read': > Driver.c:311: dereferencing pointer to incomplete type > Driver.c:313: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:313: parse error before string constant > Driver.c:313: parse error before ')' token > Driver.c: At top level: > Driver.c:349: conflicting types for `skel_write' > Driver.c:90: previous declaration of `skel_write' > Driver.c: In function `skel_write': > Driver.c:354: dereferencing pointer to incomplete type > Driver.c:356: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:356: parse error before string constant > Driver.c:356: parse error before ')' token > Driver.c:369: parse error before string constant > Driver.c:369: parse error before ')' token > Driver.c:374: dereferencing pointer to incomplete type > Driver.c:375: parse error before string constant > Driver.c:375: parse error before ')' token > Driver.c:384: dereferencing pointer to incomplete type > Driver.c:391: dereferencing pointer to incomplete type > Driver.c:396: dereferencing pointer to incomplete type > Driver.c: At top level: > Driver.c:420: conflicting types for `skel_ioctl' > Driver.c:91: previous declaration of `skel_ioctl' > Driver.c: In function `skel_ioctl': > Driver.c:423: dereferencing pointer to incomplete type > Driver.c:435: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:435: parse error before string constant > Driver.c:435: parse error before ')' token > Driver.c: In function `skel_write_bulk_callback': > Driver.c:453: dereferencing pointer to incomplete type > Driver.c:455: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:455: parse error before string constant > Driver.c:455: parse error before ')' token > Driver.c:457: dereferencing pointer to incomplete type > Driver.c:458: dereferencing pointer to incomplete type > Driver.c:460: parse error before string constant > Driver.c:460: dereferencing pointer to incomplete type > Driver.c:460: parse error before ')' token > Driver.c: In function `skel_probe': > Driver.c:487: dereferencing pointer to incomplete type > [EMAIL PROTECTED] root]# gcc -c -w Driver.c > -I/usr/src/linux-2.4.18-14/include > In file included from > /usr/src/linux-2.4.18-14/include/linux/sched.h:14, > from Driver.c:3: > /usr/src/linux-2.4.18-14/include/linux/timex.h:173: field `time' > has incomplete type > In file included from > /usr/src/linux-2.4.18-14/include/linux/sched.h:86, > from Driver.c:3: > /usr/src/linux-2.4.18-14/include/linux/timer.h:17: field `list' > has incomplete type > In file included from Driver.c:14: > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h:289: > parse error before "devfs_alloc_devnum" > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h: In > function `devfs_alloc_devnum': > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h:291: > `NODEV' undeclared (first use in this function) > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h:291: > (Each undeclared identifier is reported only once > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h:291: for > each function it appears in.) > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h: At top > level: > /usr/src/linux-2.4.18-14/include/linux/devfs_fs_kernel.h:294: > parse error before "kdev_t" > Driver.c:43: elements of array `skel_table' have incomplete type > Driver.c:78: field `tqueue' has incomplete type > Driver.c:80: field `sem' has incomplete type > Driver.c:116: variable `skel_fops' has initializer but incomplete > type > Driver.c:136: unknown field `owner' specified in initializer > Driver.c:138: unknown field `read' specified in initializer > Driver.c:139: unknown field `write' specified in initializer > Driver.c:140: unknown field `ioctl' specified in initializer > Driver.c:141: unknown field `open' specified in initializer > Driver.c:142: unknown field `release' specified in initializer > Driver.c:147: variable `skel_driver' has initializer but > incomplete type > Driver.c:148: unknown field `name' specified in initializer > Driver.c:149: unknown field `probe' specified in initializer > Driver.c:150: unknown field `disconnect' specified in > initializer > Driver.c:151: unknown field `fops' specified in initializer > Driver.c:152: unknown field `minor' specified in initializer > Driver.c:153: unknown field `id_table' specified in initializer > Driver.c: In function `usb_skel_debug_data': > Driver.c:170: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:170: parse error before string constant > Driver.c: At top level: > Driver.c:199: conflicting types for `skel_open' > Driver.c:92: previous declaration of `skel_open' > Driver.c: In function `skel_open': > Driver.c:204: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:204: parse error before string constant > Driver.c:204: parse error before ')' token > Driver.c:206: dereferencing pointer to incomplete type > Driver.c:220: `minor_table_mutex' undeclared (first use in this > function) > Driver.c:238: dereferencing pointer to incomplete type > Driver.c: At top level: > Driver.c:251: conflicting types for `skel_release' > Driver.c:93: previous declaration of `skel_release' > Driver.c: In function `skel_release': > Driver.c:255: dereferencing pointer to incomplete type > Driver.c:257: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:257: parse error before string constant > Driver.c:257: parse error before ')' token > Driver.c:261: parse error before string constant > Driver.c:261: parse error before ')' token > Driver.c:264: `minor_table_mutex' undeclared (first use in this > function) > Driver.c:270: parse error before string constant > Driver.c:270: parse error before ')' token > Driver.c: At top level: > Driver.c:307: conflicting types for `skel_read' > Driver.c:89: previous declaration of `skel_read' > Driver.c: In function `skel_read': > Driver.c:311: dereferencing pointer to incomplete type > Driver.c:313: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:313: parse error before string constant > Driver.c:313: parse error before ')' token > Driver.c: At top level: > Driver.c:349: conflicting types for `skel_write' > Driver.c:90: previous declaration of `skel_write' > Driver.c: In function `skel_write': > Driver.c:354: dereferencing pointer to incomplete type > Driver.c:356: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:356: parse error before string constant > Driver.c:356: parse error before ')' token > Driver.c:369: parse error before string constant > Driver.c:369: parse error before ')' token > Driver.c:374: dereferencing pointer to incomplete type > Driver.c:375: parse error before string constant > Driver.c:375: parse error before ')' token > Driver.c:384: dereferencing pointer to incomplete type > Driver.c:391: dereferencing pointer to incomplete type > Driver.c:396: dereferencing pointer to incomplete type > Driver.c: At top level: > Driver.c:420: conflicting types for `skel_ioctl' > Driver.c:91: previous declaration of `skel_ioctl' > Driver.c: In function `skel_ioctl': > Driver.c:423: dereferencing pointer to incomplete type > Driver.c:435: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:435: parse error before string constant > Driver.c:435: parse error before ')' token > Driver.c: In function `skel_write_bulk_callback': > Driver.c:453: dereferencing pointer to incomplete type > Driver.c:455: `KERN_DEBUG' undeclared (first use in this > function) > Driver.c:455: parse error before string constant > Driver.c:455: parse error before ')' token > Driver.c:457: dereferencing pointer to incomplete type > Driver.c:458: dereferencing pointer to incomplete type > Driver.c:460: parse error before string constant > Driver.c:460: dereferencing pointer to incomplete type > Driver.c:460: parse error before ')' token > Driver.c: In function `skel_probe': > Driver.c:487: dereferencing pointer to incomplete type > Driver.c:488: dereferencing pointer to incomplete type > Driver.c:493: `minor_table_mutex' undeclared (first use in this > function) > Driver.c:504: `GFP_KERNEL' undeclared (first use in this > function) > Driver.c:512: dereferencing pointer to incomplete type > Driver.c:521: dereferencing pointer to incomplete type > Driver.c:522: dereferencing pointer to incomplete type > Driver.c:523: dereferencing pointer to incomplete type > Driver.c:525: dereferencing pointer to incomplete type > Driver.c:526: dereferencing pointer to incomplete type > Driver.c:528: dereferencing pointer to incomplete type > Driver.c:530: dereferencing pointer to incomplete type > Driver.c:538: dereferencing pointer to incomplete type > Driver.c:539: dereferencing pointer to incomplete type > Driver.c:546: dereferencing pointer to incomplete type > Driver.c:548: dereferencing pointer to incomplete type > Driver.c:556: dereferencing pointer to incomplete type > Driver.c:566: `USB_MAJOR' undeclared (first use in this > function) > Driver.c: In function `skel_disconnect': > Driver.c:598: `minor_table_mutex' undeclared (first use in this > function) > Driver.c: At top level: > Driver.c:116: storage size of `skel_fops' isn't known > Driver.c:147: storage size of `skel_driver' isn't known > [EMAIL PROTECTED] root]# > > Regards, > Rajesh.K > > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger > for complex code. Debugging C/C++ programs can leave you feeling lost and > disoriented. TotalView can help you find your way. Available on major UNIX > and Linux platforms. Try it free. www.etnus.com > _______________________________________________ > [EMAIL PROTECTED] > To unsubscribe, use the last form field at: > https://lists.sourceforge.net/lists/listinfo/linux-usb-users > -- /------------------------------------+-------------------------\ |Stephen J. Gowdy | SLAC, MailStop 34, | |http://www.slac.stanford.edu/~gowdy/ | 2575 Sand Hill Road, | |http://calendar.yahoo.com/gowdy | Menlo Park CA 94025, USA | |EMail: [EMAIL PROTECTED] | Tel: +1 650 926 3144 | \------------------------------------+-------------------------/ ------------------------------------------------------- This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger for complex code. Debugging C/C++ programs can leave you feeling lost and disoriented. TotalView can help you find your way. Available on major UNIX and Linux platforms. Try it free. www.etnus.com _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-users
