public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Steven Toth <stoth@linuxtv.org>
To: Paul Chubb <paulc@singlespoon.org.au>
Cc: Joe Djemal <joe.djemal@btconnect.com>,
	"linux-dvb >> linux dvb" <linux-dvb@linuxtv.org>
Subject: Re: [linux-dvb] linux-dvb Digest, Vol 44, Issue 60
Date: Sat, 13 Sep 2008 20:08:37 -0400	[thread overview]
Message-ID: <48CC5605.7060505@linuxtv.org> (raw)
In-Reply-To: <48CC501F.20609@singlespoon.org.au>

Paul Chubb wrote:
> Hi,
>      there is a good book on kernel development by Robert Love - Linux 
> Kernel Development. I read about two thirds of it. Lots of useful 
> information but I found it difficult to get a wide viewpoint of the 
> process. It would be great to have beside you as a reference. Looking on 
> Amazon - I wanted to check the details - there are several other books 
> including linux device drivers by Rubini.
> 
> HTH
> 
> Cheers Paul
> 
> Joe Djemal wrote:
>> I concur with the below. I can code in quite a few languages including 
>> assembly languages and I asked for a pointer on where to get started with 
>> learning how to make a Linux driver and there was complete silence as there 
>> was with my previous inquiry.
>>
>> Come on guys, I've been Googling but where do I start?
>>
>> Joe

Hey Joe, I didn't see your first request, sorry.

The Linux Drivers Manual (oreilly) is a good place to start for a 
generic overview of the kernel driver features. It's also online 
downloadable for free in PDF form.

Jumping head first into linuxtv.org is a steep learning curve if you 
haven't done driver work before. Get comfortable building the source 
tree (see the wiki). I'd then suggest you look at the small drivers 
(common/tuners) would be a good place to start.

Look at the struct_ interfaces that each of the smaller drivers use and 
you'll start to see the major interfaces between different parts of the 
kernel (tuners and demodulators) ( files 
inlinux/drivers/media/dvb/frontends). In the demodulator drivers you'll 
see dvb_frontend_ops, it contains the callbacks allowing other parts of 
the kernel (dvb/dvb-core/*.[hc]) to call the demodulators for 
configuration and tuning purposes. When applications tune then call 
interfaces in dvb-core, this marshals the data and passes those calls 
onto the demodulator drivers.

Tuners and demodulators are a good place to start as the drivers are 
generally fairly small. Get to grips with this before you look at the 
physical pci/pcie/usb drivers, they get large quickly and can easily 
confuse. Limit you learning to a specific field (tuners and demods) and 
submit a few cleanup patches. This is how most people start.

No substitute for look at the source code and finding the common 
structures that all tuners and demodulators use.

No good book on linux-dvb exists, apart form the spec (see linuxtv.org) 
and the actual project source code.

This is where I'd suggest you begin your journey.

Welcome, and good luck!

- Steve


_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

  reply	other threads:[~2008-09-14  0:09 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.757.1221287462.834.linux-dvb@linuxtv.org>
2008-09-13  8:45 ` [linux-dvb] linux-dvb Digest, Vol 44, Issue 60 Joe Djemal
2008-09-13 23:43   ` Paul Chubb
2008-09-14  0:08     ` Steven Toth [this message]
2008-09-14  0:47       ` Andy Walls

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48CC5605.7060505@linuxtv.org \
    --to=stoth@linuxtv.org \
    --cc=joe.djemal@btconnect.com \
    --cc=linux-dvb@linuxtv.org \
    --cc=paulc@singlespoon.org.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox