<p>On Aug 15, 2014 8:28 AM, &quot;Jaret Flores&quot; &lt;<a href="mailto:jarflores@gmail.com">jarflores@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; Well...I guess I&#39;ve learned my lesson.  I apologize for asking the<br>
&gt; previous question related to the Eudyptula Challenge.  I did not read<br>
&gt; the August 2014 status report well enough and did not realize it was<br>
&gt; against the rules to ask questions the community.  It was not my<br>
&gt; intention to start off my interactions with the community on the wrong<br>
&gt; foot.<br>
&gt;</p>
<p>Its part of the fun to find out yourself how to do this task. i have taken the longest time and maximum number of attempts for this task.but when finally little tells you  that task is complete , you will get a feeling of achievement and you will also say &quot;sh** .. it was this easy...&quot;. <br>

i hope i have not broken the rules by replying....<br><br><br></p>
<p>&gt; If it is any consolation, the main reason I asked is that I thought<br>
&gt; there might be an outside module, or something else, in the kernel<br>
&gt; affecting my particular usb driver module.  Since this (possible)<br>
&gt; &quot;outside interference&quot; wasn&#39;t directly related to the understanding of<br>
&gt; code within the module itself (which I wrote on my own), I thought it<br>
&gt; would OK to get some input on where to go.<br>
&gt;<br>
&gt; My apologies again for the question and I hope I can interact with you<br>
&gt; all in a more positive light in the future.<br>
&gt; -Jaret<br>
&gt;<br>
&gt; On Thu, Aug 14, 2014 at 3:21 PM, Jaret Flores &lt;<a href="mailto:jarflores@gmail.com">jarflores@gmail.com</a>&gt; wrote:<br>
&gt; &gt; I know I am not supposed to get too much help on the eudyptula<br>
&gt; &gt; challenges, but I can&#39;t seem to figure this last thing out.<br>
&gt; &gt;<br>
&gt; &gt; The goal is to write (the skeleton of) a usb driver module that loads<br>
&gt; &gt; and registers the driver when a usb keyboard is plugged in.  What I<br>
&gt; &gt; have so far does exactly that except that the struct usb_driver:<br>
&gt; &gt;<br>
&gt; &gt; 1) probe function is not called (neither via keyboard plugin nor when<br>
&gt; &gt; module is loaded manually with modprobe).<br>
&gt; &gt; 2) disconnect function is called only after the module is unloaded<br>
&gt; &gt; (with rmmod) AND THEN the keyboard is unplugged.<br>
&gt; &gt;<br>
&gt; &gt; From ldd3:<br>
&gt; &gt; for probe: &quot;This function is called by the USB core when it thinks it<br>
&gt; &gt; has a struct usb_interface that this driver can handle.&quot;<br>
&gt; &gt; for disconnect: &quot;This function is called by the USB core when the<br>
&gt; &gt; struct usb_interface has been removed from the system or when the<br>
&gt; &gt; driver is being unloaded from the USB core.&quot;<br>
&gt; &gt;<br>
&gt; &gt; From the quotes, it seems the kernel does not think my driver is valid<br>
&gt; &gt; to handle the keyboard (though 2 may not actually be abnormal<br>
&gt; &gt; behavior).  I am thinking, perhaps the struct usb_device_id table is<br>
&gt; &gt; wrong or incomplete:<br>
&gt; &gt;<br>
&gt; &gt; static struct usb_device_id hw_id_table[] = {<br>
&gt; &gt; {USB_INTERFACE_INFO(USB_INTERFACE_CLASS_HID,<br>
&gt; &gt;         USB_INTERFACE_SUBCLASS_BOOT, USB_INTERFACE_PROTOCOL_KEYBOARD)},<br>
&gt; &gt; {}<br>
&gt; &gt; };<br>
&gt; &gt;<br>
&gt; &gt; MODULE_DEVICE_TABLE(usb, hw_id_table);<br>
&gt; &gt;<br>
&gt; &gt; There is also a USB_DEVICE_INFO() macro, but I cannot seem to find a<br>
&gt; &gt; file analogous to include/uapi/linux/hid.h which (would) define the<br>
&gt; &gt; arguments to USB_DEVICE_INFO().  Is this the problem?  Or am I missing<br>
&gt; &gt; something else?<br>
&gt; &gt;<br>
&gt; &gt; Thanks for the info,<br>
&gt; &gt; Jaret<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Kernelnewbies mailing list<br>
&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</p>