Hello, I see many people in the list asking where do I start? In my opinion the best way to learn kernel development is first learning some basic concepts and start coding to get your hands dirty. The Linux Device Drivers 3 book is a good start. Both the book and source code examples are freely available. The problem is that the book is a few years old and the example drivers do not compile in recent kernels. I started a project to keep the LDD3 examples up-to-date with recent kernels. The git tree can be cloned from git://github.com/martinezjavier/ldd3.git I will try to keep the code always in sync with linux-next but there will be tags to stable versions. Now there are tags that compile with kernel versions 2.6.32, 2.6.35 and 2.6.37. I didn't try all the drivers with the three kernel versions, just compile tested. So any bug, comment or patch is always welcome -- Best regards, ----------------------------------------- Javier Martínez Canillas (+34) 682 39 81 69
On Thu, Jan 6, 2011 at 7:45 AM, Javier Martinez Canillas < martinez.javier@gmail.com> wrote:
Hello,
I see many people in the list asking where do I start? In my opinion the best way to learn kernel development is first learning some basic concepts and start coding to get your hands dirty.
The Linux Device Drivers 3 book is a good start. Both the book and source code examples are freely available.
The problem is that the book is a few years old and the example drivers do not compile in recent kernels.
I started a project to keep the LDD3 examples up-to-date with recent kernels.
The git tree can be cloned from git://github.com/martinezjavier/ldd3.git
I will try to keep the code always in sync with linux-next but there will be tags to stable versions. Now there are tags that compile with kernel versions 2.6.32, 2.6.35 and 2.6.37.
I didn't try all the drivers with the three kernel versions, just compile tested. So any bug, comment or patch is always welcome
Thanks Javier, This was much needed. Regards anuz
Hi Javier, On Thu, Jan 6, 2011 at 1:15 PM, Javier Martinez Canillas <martinez.javier@gmail.com> wrote:
Hello,
I see many people in the list asking where do I start? In my opinion the best way to learn kernel development is first learning some basic concepts and start coding to get your hands dirty.
The Linux Device Drivers 3 book is a good start. Both the book and source code examples are freely available.
The problem is that the book is a few years old and the example drivers do not compile in recent kernels.
I started a project to keep the LDD3 examples up-to-date with recent kernels.
The git tree can be cloned from git://github.com/martinezjavier/ldd3.git
This is indeed a commendable effort. Great work!! Thanks.
I will try to keep the code always in sync with linux-next but there will be tags to stable versions. Now there are tags that compile with kernel versions 2.6.32, 2.6.35 and 2.6.37.
Do you need help in making the ldd3 files compliant for any other kernels? Do you have any plans for others kernels (besides the linux-next) in your mind which might need porting work - probably some people on the list (including me) might be interested.
I didn't try all the drivers with the three kernel versions, just compile tested. So any bug, comment or patch is always welcome
-- Best regards,
----------------------------------------- Javier Martínez Canillas (+34) 682 39 81 69
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
- Shrey
On Thu, Jan 6, 2011 at 12:08 PM, Shreyansh Jain <shrey.linux@gmail.com> wrote:
Hi Javier,
I will try to keep the code always in sync with linux-next but there will be tags to stable versions. Now there are tags that compile with kernel versions 2.6.32, 2.6.35 and 2.6.37.
Do you need help in making the ldd3 files compliant for any other kernels? Do you have any plans for others kernels (besides the linux-next) in your mind which might need porting work - probably some people on the list (including me) might be interested.
Note that 2.6.32 has been designated a LTS (Long Term Support) kernel by the powers that be. So that kernel would be good one to focus training resources on. It will likely be supported for several years by Redhat, Suse, Canonical, etc. Thus testing all the LDD3 examples with it would be very beneficial. ie. It is the basis of SLES 11.1 SP1, etc. so these firms are contractually obligated to support a LTS kernel for years. To lighten the load, they got together and chose the 2.6.32 kernel as one they would support together. I think this is the first time they have tried this approach. I suspect they will do it again a couple years from now. Greg
Note that 2.6.32 has been designated a LTS (Long Term Support) kernel by the powers that be.
So that kernel would be good one to focus training resources on. It will likely be supported for several years by Redhat, Suse, Canonical, etc. Thus testing all the LDD3 examples with it would be very beneficial.
ie. It is the basis of SLES 11.1 SP1, etc. so these firms are contractually obligated to support a LTS kernel for years. To lighten the load, they got together and chose the 2.6.32 kernel as one they would support together. I think this is the first time they have tried this approach. I suspect they will do it again a couple years from now.
Greg
I totally agree with Greg. 2.6.35 could also be a good version to focus because people in the embedded world agreed that to reduce fragmentation they will define kernels "Embedded Flag Versions". A flag version will be a specific kernel version that vendors will based their products on. Many big players (Sony, Google, Meego, and Linaro) will be using 2.6.35 in its upcoming products so it seems that this version will be declare as a "flag version" for embedded use. We can for example have three branches: 2.6.32, 2.6.35 and linux-next. -- Best regards, ----------------------------------------- Javier Martínez Canillas (+34) 682 39 81 69
We can for example have three branches: 2.6.32, 2.6.35 and linux-next.
--
Hello, I created two branches: v2.6.32 that will be in sync with git://git.kernel.org/pub/scm/linux/kernel/git/longterm/linux-2.6.32.y.git v2.6.35 that will be in sync with git://git.kernel.org/pub/scm/linux/kernel/git/longterm/linux-2.6.35.y.git the branch master will be in sync with linux-next tree. Also made some re-basing to keep the history coherent. you can see how everything is now here: https://github.com/martinezjavier/ldd3 This way we can have the LDD3 examples working with some popular long-term kernel versions and keeping up-to-date with the last kernel release. -- Best regards ----------------------------------------- Javier Martínez Canillas (+34) 682 39 81 69
On Fri, Jan 7, 2011 at 5:40 PM, Javier Martinez Canillas < martinez.javier@gmail.com> wrote:
We can for example have three branches: 2.6.32, 2.6.35 and linux-next.
--
Hello,
I created two branches:
v2.6.32 that will be in sync with git://git.kernel.org/pub/scm/linux/kernel/git/longterm/linux-2.6.32.y.git v2.6.35 that will be in sync with git://git.kernel.org/pub/scm/linux/kernel/git/longterm/linux-2.6.35.y.git
the branch master will be in sync with linux-next tree.
Also made some re-basing to keep the history coherent.
you can see how everything is now here: https://github.com/martinezjavier/ldd3
This way we can have the LDD3 examples working with some popular long-term kernel versions and keeping up-to-date with the last kernel release.
-- Best regards
----------------------------------------- Javier Martínez Canillas (+34) 682 39 81 69
Thanks a lot guys. I am able to compile & install kernel from source on my linux machine. Finished with the book as well. So this seems like a very good starting point, trying these examples against different kernel releases and fixing them. --Hanumant
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
Shrey
I will try to keep the code always in sync with linux-next but there will be tags to stable versions. Now there are tags that compile with kernel versions 2.6.32, 2.6.35 and 2.6.37.
Do you need help in making the ldd3 files compliant for any other kernels? Do you have any plans for others kernels (besides the linux-next) in your mind which might need porting work - probably some people on the list (including me) might be interested.
Any help will be appreciate thank you very much! There are other projects that updated the LDD3 examples but the person who was doing that lost interest and the project was abandoned. Before creating my repo I send a few patches to some of them but none updated their project. I think that the LDD3 examples are a valuable resource and keeping an up-to-date version is very important to kernel developer newbies. My idea is to have a community maintained project so If I don't have more time to maintain others will do. Also probably I introduced bugs while changing the code so bug-fixing its the best help now. Thank you -- Best regards ----------------------------------------- Javier Martínez Canillas (+34) 682 39 81 69
participants (5)
-
Anuz Pratap Singh Tomar -
Greg Freemyer -
Hanumant Singh -
Javier Martinez Canillas -
Shreyansh Jain