<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 card 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 place in mail chains, these will help clearing you concepts. </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 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 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 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 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 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 <matthias.bgg@gmail.com> wrote:<br> </font> </div> <div class="y_msg_container">2013/9/3 Robert P. J. Day <<a href="mailto:rpjday@crashcourse.ca" shape="rect"
ymailto="mailto:rpjday@crashcourse.ca">rpjday@crashcourse.ca</a>>:<br clear="none">> 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">><br clear="none">>> On Wed, 04 Sep 2013 02:05:42 +0530, Varad Gautam said:<br clear="none">>> > Hi Vladis! Thanks for replying. I think I would be fine with<br clear="none">>> > writing real code once I figure out what goes where.<br clear="none">>><br clear="none">>> Well, assuming you have a background as a professional or very<br clear="none">>> serious amateur programmer, *and* you have a *particular* drive to<br clear="none">>> do something specific. There's still a lot of code being added by<br clear="none">>> amateurs who have some weird USB device that doesn't have a driver<br clear="none">>> and so on - but there's less and
less room for beginners that just<br clear="none">>> want to hack code and don't care where. Data structures and<br clear="none">>> algorithms have gotten more complex, the locking is more<br clear="none">>> fine-grained and subtle - gone are the days you could just take the<br clear="none">>> Big Kernel Lock and not worry, now you ofteh have to understand<br clear="none">>> stuff like RCU locking.<br clear="none">>><br clear="none">>> So you might want to stop and ask yourself *why* you want to write<br clear="none">>> code for the kernel. :)<br clear="none">><br clear="none">> i'm going to jump in here since i see this question annoyingly<br clear="none">> frequently -- "i'm new to the kernel and i want to get involved and<br clear="none">> write code; how do i start?" to be blunt, if that's your starting<br clear="none">> point, you're not ready to write code for the
kernel. period.<br clear="none">><br clear="none">> as vladis quite correctly points out, gone are the days when there<br clear="none">> was piles of simple coding to be done. most of the kernel is well<br clear="none">> established, solid and stable, and ongoing development is *very*<br clear="none">> advanced. in other words, there's less and less room for enthusiastic<br clear="none">> beginners. but there's more.<br clear="none">><br clear="none">> at the very least, you should have an idea of what part of the kernel<br clear="none">> interests you most. if you can't even identify which major subsystem<br clear="none">> -- networking, USB, video, etc. -- you want to work on, you aren't<br clear="none">> even *remotely* ready to start writing code.<br clear="none">><br clear="none">> it's somewhat absurd to say you want to get involved in kernel<br clear="none">> development, then ask
*others* where you should start. it's like<br clear="none">> saying, "i really want to write a book, but i have no idea what i<br clear="none">> should write about. can you give me some ideas for a plot? and<br clear="none">> characters? and possibly an ending?" yes, it's that silly.<br clear="none">><br clear="none">> if you're a beginner, then the obvious starting point is to start<br clear="none">> reading. and read. and read. and when you're done reading, read some<br clear="none">> more. and slowly, you'll figure out what interests you most. and<br clear="none">> 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">><br clear="none">> rday<br clear="none">><br clear="none">> --<br clear="none">><br clear="none">> ========================================================================<br clear="none">> Robert P. J. Day Ottawa, Ontario, CANADA<br clear="none">> <a href="http://crashcourse.ca/" target="_blank" shape="rect">http://crashcourse.ca/</a><br clear="none">><br clear="none">> Twitter:
<a href="http://twitter.com/rpjday" target="_blank" shape="rect">http://twitter.com/rpjday</a><br clear="none">> LinkedIn: <a href="http://ca.linkedin.com/in/rpjday" target="_blank" shape="rect">http://ca.linkedin.com/in/rpjday</a><br clear="none">> ========================================================================<br clear="none">><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"><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>