Am Fri, 16 Sep 2005 10:23:28 -0400 schrieb Mike Krufky <mkrufky@xxxxxxxxxxx>: > Ingo Schmiegel wrote: > >> Hi all, >> >> After some problems, I got the hybrid analog and dvb-t budget card >> working with a stock 2.6.13.1 kernel plus one patch with _older_ >> video4linux drivers. Besides that kernel I'm using a fairly updated >> debian/testing system. >> >> Kudos go to user "neweb" on the german gentoo forum for the idea and the >> pointer to the older drivers. You can find it all described (in german) >> here: >> http://www.gentooforum.de/thread.php?threadid=6579 >> http://de.gentoo-wiki.com/Pinnacle_300i >> >> Short summary in English: >> >> 2.6.13.1 ships with video4linux 0.2.14. These drivers introduce a >> problem with the 300i card. Symptom is that the "scan" utility (debian >> package dvb-utils) can not tune to any frequency: >> # scan /home/cfi/channels.conf -v >> [...] >> >>>>> tune to: >>>>> >> 198500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSI >> ON_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE >> >>>>> tuning status == 0x00 >>>>> >> [...] >> >>>>> tuning status == 0x00 >>>>> >> WARNING: >>> tuning failed!!! >> [...] >> >> To workaround >> # cd /usr/src >> # wget >> http://www.linuxtv.org/downloads/video4linux/video4linux-20050627.tar.gz >> # tar xzvf video4linux-20050627.tar.gz >> # cd video4linux >> >> In theory and with older kernels (~2.6.11 era, but not sure) you could >> now just proceed with >> >> # make >> # make install >> # modprobe -r saa7134_dvb video_buf_dvb saa7134 videodev video_buf mt352 >> dvb_core tda1004x i2c_nforce2 tuner tda9887 i2c_core v4l2_common >> v4l1_compat >> # modprobe saa7134_dvb >> >> Now you would see in /var/log/messages: >> Sep 15 20:21:01 localhost kernel: saa7130/34: v4l2 driver version 0.2.13 >> loaded >> instead of the 0.2.14 release coming with the kernel. >> >> Unfortunately the API changed a little, so the newer kernel headers are >> incompatible with the older v4l drivers. So the make step will yield >> compilation errors. But it's an easy change to remedy that (see patch >> below). Only three files need a small change each. Note that the change >> of Make.config will prevent CX88 based cards from working. If you have >> one of those in addition to the 300i, leave Make.config as it is and fix >> the remaining compilation errors yourself :-p >> >> Note that the "make install" will overwrite the installed dvb related >> modules in /lib/modules/<kernel-version>. If you later test a newer >> kernel, and the card can still not tune with that, rerun the "make >> install" step. >> >> Have fun! >> Ingo >> > What a sad story..... This is a v4l issue, cc added. > > I appreciate that you have gotten your card working, but this isn't > really a solution to the problem. In fact, seeing something like this > makes me want to fix the problem the right way, but my hands are tied on > this, as I do not know the cause of the problem, or exactly what patches > you had to revert in order to fix it, nor do I have the hardware to test > this on. > > I can take a closer look at this over the weekend, but it would be a > great service if you could actually go through the cvs and figure out > exactly what patch breaks support for your card. If you cannot do that, > then if you could at least try to get the absolute very latest cvs where > your card still works.... For example: > > You can do cvs checkout -D {date} to specify that cvs should checkout > all cvs code where commits are no later than {date} ... If you can > identify the FIRST date where cvs is broken for your card, that can help > us to identify exactly which patch is the culprit here. > > The RIGHT thing to do would be to use this information to apply a new > patch to cvs that will restore full functionality of your board, without > causing any other regressions. > >> *** /usr/src/video4linux_20050627/msp3400.c Thu Sep 15 20:16:33 2005 >> --- /usr/src/video4linux_20050627/msp3400.c.orig Thu Sep 15 >> 20:13:07 2005 >> *************** static int msp34xx_sleep(struct msp3400c >> *** 755,761 **** >> } >> } >> if (current->flags & PF_FREEZE) >> ! refrigerator(/*PF_FREEZE*/); >> remove_wait_queue(&msp->wq, &wait); >> return msp->restart; >> } >> --- 755,761 ---- >> } >> } >> if (current->flags & PF_FREEZE) >> ! refrigerator(PF_FREEZE); >> remove_wait_queue(&msp->wq, &wait); >> return msp->restart; >> } >> >> >> *** /usr/src/video4linux_20050627/video-buf-dvb.c Thu Sep 15 >> 20:17:44 2005 >> --- /usr/src/video4linux_20050627/video-buf-dvb.c.orig Thu Sep 15 >> 20:17:12 2005 >> *************** static int videobuf_dvb_thread(void *dat >> *** 63,69 **** >> if (kthread_should_stop()) >> break; >> if (current->flags & PF_FREEZE) >> ! refrigerator(/*PF_FREEZE*/); >> >> /* feed buffer data to demux */ >> if (buf->state == STATE_DONE) >> --- 63,69 ---- >> if (kthread_should_stop()) >> break; >> if (current->flags & PF_FREEZE) >> ! refrigerator(PF_FREEZE); >> >> /* feed buffer data to demux */ >> if (buf->state == STATE_DONE) >> >> *** /usr/src/video4linux_20050627/Make.config Thu Sep 15 20:19:08 2005 >> --- /usr/src/video4linux_20050627/Make.config.orig Thu Sep 15 >> 21:47:44 2005 >> *************** CONFIG_VIDEO_SAA7134 := m >> *** 6,17 **** >> CONFIG_VIDEO_IR := m >> CONFIG_VIDEO_TUNER := m >> CONFIG_VIDEO_TVAUDIO := m >> ! CONFIG_VIDEO_CX88 := n >> >> # doesn't build on kernels older than 2.6.10 >> CONFIG_VIDEO_CX88_DVB := n >> CONFIG_VIDEO_SAA7134_DVB := n >> if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)) >> ! CONFIG_VIDEO_CX88_DVB := n >> if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)) >> CONFIG_VIDEO_SAA7134_DVB := m >> --- 6,17 ---- >> CONFIG_VIDEO_IR := m >> CONFIG_VIDEO_TUNER := m >> CONFIG_VIDEO_TVAUDIO := m >> ! CONFIG_VIDEO_CX88 := m >> >> # doesn't build on kernels older than 2.6.10 >> CONFIG_VIDEO_CX88_DVB := n >> CONFIG_VIDEO_SAA7134_DVB := n >> if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)) >> ! CONFIG_VIDEO_CX88_DVB := m >> if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)) >> CONFIG_VIDEO_SAA7134_DVB := m >> >> >> >> >> _______________________________________________ >> >> linux-dvb@xxxxxxxxxxx >> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb >> > > I had the same Problem as Ingo, as I am the autor of the gentoo-wiki-entry. I worked over two weeks on getting my Pinnacle running on my system. Than I realized that Rainer who helped me a lot with my solution has been using the V4L version 0.2.13 whereas I was using the 0.2.12 verion of V4L. The main problem in the 0.2.12-Version was that after some minutes the channel-lock is lost. So I tried the latest CVS (0.2.14). Now it was not possible to tune any channel anymore. The problem should be due to some changings in the mt352-module, as this is the tuner module used by the Pinnacle 300i. As I describe in the gentoo-wiki-entry I am using the video4linux-20050627 snapshot. This version wokes fine.This is the only information I can give at the moment. I will test other versions this afternoon and will go through the changings. I hope I will find out which changings have caused the problem. Regards, Tim ("neweb")