<html><body><div style="color:#000; background-color:#fff; font-family:bookman old style, new york, times, serif;font-size:10pt"><span><div id="yiv3221065530yui_3_13_0_9_1384358794811_5"><span>Hi All,</span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_26624"><span><br clear="none"></span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_26623"><span id="yiv3221065530yui_3_13_0_1_1384358794811_56936">It's good to start with LDD3 for beginner, But we end up just compiling the modules from the examples.</span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_36437"><span id="yiv3221065530yui_3_13_0_1_1384358794811_98967">Most of us don't now how to test these modules. But we can get learn the basic of module programming.</span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_39330"><span><br clear="none"></span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_32714"><span
 id="yiv3221065530yui_3_13_0_1_1384358794811_45882">Real challenge are in the kernel source tree.</span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_32713"><span id="yiv3221065530yui_3_13_0_1_1384358794811_37286">For example if we have a wireless/Ethernet&nbsp;card&nbsp;in laptop, </span></div><div><span>you can go thought the changes that are happing with your driver with respect to old kernel.</span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_37287"><span id="yiv3221065530yui_3_13_0_1_1384358794811_45881">Also try to understand the patches that are been currently discuss in the mailing list.</span></div><div><span>Understand the discussion that take&nbsp;place in mail chains, these will help clearing you concepts.&nbsp;</span></div><div><span id="yiv3221065530yui_3_13_0_1_1384358794811_90177">Understand the protocol used by the driver and how new support can be added to it.</span></div><div
 id="yiv3221065530yui_3_13_0_1_1384358794811_87983"><span id="yiv3221065530yui_3_13_0_1_1384358794811_85789"><span id="yiv3221065530yui_3_13_0_1_1384358794811_87982">Integrating with the original developer will give you new thought.</span></span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_58999"><span id="yiv3221065530yui_3_13_0_1_1384358794811_78714"><br></span></div><div><span id="yiv3221065530yui_3_13_0_1_1384358794811_50250">Also user space is very good area to explore and very important one.</span></div><div><span>If you just load the driver but don't configure it correctly It will not work to it's potential.</span></div><div><span>How we configure&nbsp;you driver, where are the configuration files.</span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_58179"><span id="yiv3221065530yui_3_13_0_1_1384358794811_78716">Try to so all the configuration chances manually, this&nbsp;will help a lot.</span></div><div><span><span>Try to trace
 the functionality from the user space IOCtl call to driver, modparams etc.</span></span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_74329"><span id="yiv3221065530yui_3_13_0_1_1384358794811_74328">We always try to use&nbsp;the configuration that's available in the internet.</span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_76519"><span id="yiv3221065530yui_3_13_0_1_1384358794811_78715">We do not go beyond that configuration and try to experiment on new values,</span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_76522"><span id="yiv3221065530yui_3_13_0_1_1384358794811_76521">May be we should do that and see how it works or behaves.</span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_56937"><span><br clear="none"></span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_61187"><span id="yiv3221065530yui_3_13_0_1_1384358794811_76520">One more thing getting to compile a custom configured&nbsp;kernel for you PC is
 important step.</span></div><div><span>Having knowledge of GIT is must now a days.</span></div><div><span><br></span></div><div><span><span>And&nbsp;you will become you own mentor for that driver.</span></span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_61189"><span><br clear="none"></span></div><div id="yiv3221065530yui_3_13_0_1_1384358794811_61188"><span>-Anand Moon</span></div></span><div></div><div class="yahoo_quoted" style="display: block;"> <br> <br> <div style="font-family: bookman old style, new york, times, serif; font-size: 10pt;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 12pt;"> <div dir="ltr"> <font face="Arial" size="2"> On Monday, October 28, 2013 4:11 PM, Matthias Brugger &lt;matthias.bgg@gmail.com&gt; wrote:<br> </font> </div>  <div class="y_msg_container">2013/9/3 Robert P. J. Day &lt;<a href="mailto:rpjday@crashcourse.ca" shape="rect"
 ymailto="mailto:rpjday@crashcourse.ca">rpjday@crashcourse.ca</a>&gt;:<br clear="none">&gt; On Tue, 3 Sep 2013, <a href="mailto:Valdis.Kletnieks@vt.edu" shape="rect" ymailto="mailto:Valdis.Kletnieks@vt.edu">Valdis.Kletnieks@vt.edu</a> wrote:<br clear="none">&gt;<br clear="none">&gt;&gt; On Wed, 04 Sep 2013 02:05:42 +0530, Varad Gautam said:<br clear="none">&gt;&gt; &gt; Hi Vladis! Thanks for replying. I think I would be fine with<br clear="none">&gt;&gt; &gt; writing real code once I figure out what goes where.<br clear="none">&gt;&gt;<br clear="none">&gt;&gt; Well, assuming you have a background as a professional or very<br clear="none">&gt;&gt; serious amateur programmer, *and* you have a *particular* drive to<br clear="none">&gt;&gt; do something specific.&nbsp; There's still a lot of code being added by<br clear="none">&gt;&gt; amateurs who have some weird USB device that doesn't have a driver<br clear="none">&gt;&gt; and so on - but there's less and
 less room for beginners that just<br clear="none">&gt;&gt; want to hack code and don't care where.&nbsp; Data structures and<br clear="none">&gt;&gt; algorithms have gotten more complex, the locking is more<br clear="none">&gt;&gt; fine-grained and subtle - gone are the days you could just take the<br clear="none">&gt;&gt; Big Kernel Lock and not worry, now you ofteh have to understand<br clear="none">&gt;&gt; stuff like RCU locking.<br clear="none">&gt;&gt;<br clear="none">&gt;&gt; So you might want to stop and ask yourself *why* you want to write<br clear="none">&gt;&gt; code for the kernel. :)<br clear="none">&gt;<br clear="none">&gt;&nbsp; i'm going to jump in here since i see this question annoyingly<br clear="none">&gt; frequently -- "i'm new to the kernel and i want to get involved and<br clear="none">&gt; write code; how do i start?"&nbsp; to be blunt, if that's your starting<br clear="none">&gt; point, you're not ready to write code for the
 kernel. period.<br clear="none">&gt;<br clear="none">&gt;&nbsp; as vladis quite correctly points out, gone are the days when there<br clear="none">&gt; was piles of simple coding to be done. most of the kernel is well<br clear="none">&gt; established, solid and stable, and ongoing development is *very*<br clear="none">&gt; advanced. in other words, there's less and less room for enthusiastic<br clear="none">&gt; beginners. but there's more.<br clear="none">&gt;<br clear="none">&gt;&nbsp; at the very least, you should have an idea of what part of the kernel<br clear="none">&gt; interests you most. if you can't even identify which major subsystem<br clear="none">&gt; -- networking, USB, video, etc. -- you want to work on, you aren't<br clear="none">&gt; even *remotely* ready to start writing code.<br clear="none">&gt;<br clear="none">&gt;&nbsp; it's somewhat absurd to say you want to get involved in kernel<br clear="none">&gt; development, then ask
 *others* where you should start. it's like<br clear="none">&gt; saying, "i really want to write a book, but i have no idea what i<br clear="none">&gt; should write about. can you give me some ideas for a plot? and<br clear="none">&gt; characters? and possibly an ending?" yes, it's that silly.<br clear="none">&gt;<br clear="none">&gt;&nbsp; if you're a beginner, then the obvious starting point is to start<br clear="none">&gt; reading. and read. and read. and when you're done reading, read some<br clear="none">&gt; more. and slowly, you'll figure out what interests you most. and<br clear="none">&gt; that's where you then spend your time.<br clear="none"><br clear="none">Basically my answer to this kind of questions is, to start reading<br clear="none">LDD3 [1] try to figure out what have changed and try to get the source<br clear="none">code examples work with a newer kernel [2].<br clear="none"><br clear="none">[1] <a href="http://lwn.net/Kernel/LDD3/"
 target="_blank" shape="rect">http://lwn.net/Kernel/LDD3/</a><br clear="none">[2] <a href="https://github.com/martinezjavier/ldd3" target="_blank" shape="rect">https://github.com/martinezjavier/ldd3</a><br clear="none"><br clear="none">Cheers,<br clear="none">Matthias<br clear="none"><br clear="none">&gt;<br clear="none">&gt; rday<br clear="none">&gt;<br clear="none">&gt; --<br clear="none">&gt;<br clear="none">&gt; ========================================================================<br clear="none">&gt; Robert P. J. Day&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  Ottawa, Ontario, CANADA<br clear="none">&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <a href="http://crashcourse.ca/" target="_blank" shape="rect">http://crashcourse.ca/</a><br clear="none">&gt;<br clear="none">&gt; Twitter:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <a href="http://twitter.com/rpjday" target="_blank" shape="rect">http://twitter.com/rpjday</a><br clear="none">&gt; LinkedIn:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  <a href="http://ca.linkedin.com/in/rpjday" target="_blank" shape="rect">http://ca.linkedin.com/in/rpjday</a><br clear="none">&gt; ========================================================================<br clear="none">&gt;<br clear="none">&gt;<br clear="none">&gt; _______________________________________________<br clear="none">&gt; Kernelnewbies mailing list<br clear="none">&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org" shape="rect" ymailto="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br clear="none">&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank"
 shape="rect">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br clear="none"><br clear="none"><br clear="none"><br clear="none">-- <br clear="none">motzblog.wordpress.com<div class="yqt7363709267" id="yqtfd91286"><br clear="none"><br clear="none">_______________________________________________<br clear="none">Kernelnewbies mailing list<br clear="none"><a href="mailto:Kernelnewbies@kernelnewbies.org" shape="rect" ymailto="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br clear="none"><a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank" shape="rect">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br clear="none"></div><br><br></div>  </div> </div>  </div> </div></body></html>