Skip to contentSkip to conversation

linux-dvb Digest, Vol 44, Issue 60

linux-dvb Joe Djemal 4 participants 4 messages Sep 13, 2008 – Sep 14, 2008 1 message not in the archive Media (V4L/DVB)

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

Joe Djemal

author
#1 lore raw

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

Quoted 46 lines

Message: 5
Date: Sat, 13 Sep 2008 16:28:10 +1000
From: Paul Chubb <[email protected]>
Subject: [linux-dvb] why opensource will fail
To: linux dvb <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Hi,
now that I have your attention:-{)=

I believe that this community has a real problem. There appears to be little willingness to help and mentor newcomers. This will limit the effectiveness of the community because it will hinder expansion of people who are both willing and able to work on the code. Eventually this issue will lead to the community dying simply because you have people leaving but few joining.

The card I was working on has been around for a while now. There have been three attempts so far to get it working with Linux. Two in this community and one against the mcentral.de tree. Both attempts in this community have failed not because of a lack of willingness of the people involved to do the hard yards but because of the inability of the community to mentor and help newcomers.

The third attempt by a Czech programmer succeeded, however it is dependent on the mcentral.de tree and the author appears to have made no attempt to get the patch into the tree. The original instructions to produce a driver set are in Czech. However instructions in english for 2.6.22 are available - ubuntu gutsy. I will soon be putting up instructions for 2.6.24 - hardy. They may even work for later revisions since the big issue was incompatible versioning.

I understand from recent posts to this list that many in the community are disturbed by the existence of mcentral.de. Well every person from now on who wants to run the Leadtek Winfast DTV1800H will be using that tree. Since the card is excellent value for what it is, there should be lots of them. Not helping newcomers who are trying to add cards has led and will lead to increased fragmentation.

And before you say or think that we are all volunteers here, I am a volunteer also. I have spent close to 3 weeks on this code and it is very close to working. The biggest difference between working code in the mcentral.de tree and the patch I was working on is the firmware that is used.

Quoted 5 lines

Finally you might consider that if few developers are prepared to work on the v4l-dvb tree, then much of the fun will disappear because those few will have to do everything.

Cheers Paul

_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

#2 lore raw

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

Quoted 70 lines · Joe Djemal

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

Quoted 46 lines

Message: 5
Date: Sat, 13 Sep 2008 16:28:10 +1000
From: Paul Chubb <[email protected]>
Subject: [linux-dvb] why opensource will fail
To: linux dvb <[email protected]>
Message-ID: <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Hi,
now that I have your attention:-{)=

I believe that this community has a real problem. There appears to be little willingness to help and mentor newcomers. This will limit the effectiveness of the community because it will hinder expansion of people who are both willing and able to work on the code. Eventually this issue will lead to the community dying simply because you have people leaving but few joining.

The card I was working on has been around for a while now. There have been three attempts so far to get it working with Linux. Two in this community and one against the mcentral.de tree. Both attempts in this community have failed not because of a lack of willingness of the people involved to do the hard yards but because of the inability of the community to mentor and help newcomers.

The third attempt by a Czech programmer succeeded, however it is dependent on the mcentral.de tree and the author appears to have made no attempt to get the patch into the tree. The original instructions to produce a driver set are in Czech. However instructions in english for 2.6.22 are available - ubuntu gutsy. I will soon be putting up instructions for 2.6.24 - hardy. They may even work for later revisions since the big issue was incompatible versioning.

I understand from recent posts to this list that many in the community are disturbed by the existence of mcentral.de. Well every person from now on who wants to run the Leadtek Winfast DTV1800H will be using that tree. Since the card is excellent value for what it is, there should be lots of them. Not helping newcomers who are trying to add cards has led and will lead to increased fragmentation.

And before you say or think that we are all volunteers here, I am a volunteer also. I have spent close to 3 weeks on this code and it is very close to working. The biggest difference between working code in the mcentral.de tree and the patch I was working on is the firmware that is used.

Quoted 6 lines

Finally you might consider that if few developers are prepared to work on the v4l-dvb tree, then much of the fun will disappear because those few will have to do everything.

Cheers Paul

_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

Signature · 9 lines
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.


_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
#3 lore raw
Quoted 8 lines · Paul Chubb

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.

Quoted 13 lines

HTH

Cheers Paul

Quoted 8 lines · Joe Djemal

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
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

#4 lore raw
Quoted 21 lines · Steven Toth
Quoted 20 lines · Paul Chubb

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

Quoted 7 lines · Joe Djemal

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?

Quoted 7 lines
Quoted 1 line
Quoted 1 line

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.

I'd also recommend Bovet and Cesati _Understanding_the_Linux_Kernel_. It's a little dated in that it covers kernel 2.4.x, but it's got an emphasis of understanding what's going on in critical areas of the kernel. It is not a cookbook for writing drivers.

The Linux Device Drivers is quite a good cookbook/reference for how to write a driver. But IMO it doesn't have a strong emphasis on the why, but only the what and how.

Both books are valuable for learning and reference.

Quoted 15 lines

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.

Quoted 8 lines

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.

I'd also recommend you learn how to use "ctags" to make tag files of the v4l-dvb source and kernel source, and learn how to use tags files within your editor to navigate the source.

Tags make life so much easier: structure definitions, defined constants, and function bodies are a keystoke way from where they are used in the source you are reading.

Regards,
Andy

Quoted 8 lines

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
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb