Recently I acquired a KNC1 DVB-S card to use it with MythTV running on Fedora Core 4.<br>
<br>
Initially the card was not recognised at all by both
kernel-2.6.11-1.1369_FC4 and kernel-2.6.15-1.1831_FC4. The modules
wouldn't load automatically and loading the modules by hand didn't give
dmesg messages that the card was recognised. I found out that my card
has a different PCI id from the KNC1 DVB-S card on the linuxtv DVB
Wiki. On the Wiki the subsystem id is 1131:4f56 whereas my DVB-S card
has 1894:0010. lspci -nv shows:<br>
<br>
00:09.0 Class 0480: 1131:7146 (rev 01)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Subsystem: 1894:0010<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Flags: bus master, medium devsel, latency 32, IRQ 5<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Memory at e4000000 (32-bit, non-prefetchable) [size=512]<br>
<br>
The PCB of the card lists &quot;MULTINORM DVB TUNER Ver 2.0&quot;. So my guess is
from this and the different PCI subsystem id that this is a new release
of this card.<br>
<br>
I downloaded and installed the kernel source RPM for
kernel-2.6.15-1.1831_FC4 and modified budget-av.c. Here's the diff
output for the original and my edit:<br>
<br>
[root@localhost ~]# diff budget-av.c.orig budget-av.c<br>
1005c1005<br>
&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MAKE_EXTENSION_PCI(knc1s, 0x1131, 0x0010),<br>
---<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MAKE_EXTENSION_PCI(knc1s, 0x1894, 0x0010),<br>
<br>
After compiling and booting this kernel, the card was recognised and
udev created the /dev/dvb entries. With this kernel dmesg output shows:<br>
<br>
Linux video capture interface: v1.00<br>
saa7146: register extension 'budget_av'.<br>
PCI: Found IRQ 5 for device 0000:00:09.0<br>
PCI: Sharing IRQ 5 with 0000:00:04.2<br>
saa7146: found saa7146 @ mem f0ad2000 (revision 1, irq 5) (0x1894,0x0010).<br>
DVB: registering new adapter (KNC1 DVB-S).<br>
adapter failed MAC signature check<br>
encoded MAC from EEPROM was ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff<br>
budget-av: ci interface initialised.<br>
KNC1-0: MAC addr = 00:09:d6:6d:24:71<br>
DVB: registering frontend 0 (ST STV0299 DVB-S)...<br>
<br>
This seems fine to me as far as I can tell, however all tries of
scanning for channels or tuning (using a channels.conf provided by a
friend) fail. Could someone please help me diagnose the output?
Googling didn't help unfortunately.<br>
<br>
Here's what I see when trying to scan for channels:<br>
<br>
[root@localhost ~]# scandvb -vv /usr/share/dvb-apps/dvb-s/Astra-19.2E<br>
scanning /usr/share/dvb-apps/dvb-s/Astra-19.2E<br>
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br>
initial transponder 12551500 V 27000000 5<br>
&gt;&gt;&gt; tune to: 12551:v:0:27000<br>
DiSEqC: switch pos 0, 13V, hiband (index 2)<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x02<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x02<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x06<br>
WARNING: &gt;&gt;&gt; tuning failed!!!<br>
&gt;&gt;&gt; tune to: 12551:v:0:27000 (tuning failed)<br>
DiSEqC: switch pos 0, 13V, hiband (index 2)<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x02<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x06<br>
&gt;&gt;&gt; tuning status == 0x02<br>
&gt;&gt;&gt; tuning status == 0x06<br>
WARNING: &gt;&gt;&gt; tuning failed!!!<br>
ERROR: initial tuning failed<br>
dumping lists (0 services)<br>
Done.<br>
<br>
Trying to tune using an existing channels.conf:<br>
<br>
[root@localhost ~]# szap -c channels.conf Eurosport<br>
reading channels from file 'channels.conf'<br>
zapping to 155 'Eurosport':<br>
sat 0, frequency = 11953 MHz H, symbolrate 27500000, vpid = 0x019a, apid = 0x01a4<br>
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'<br>
status 06 | signal 0000 | snr 0000 | ber 0000ff08 | unc 00000000 |<br>
status 06 | signal 0000 | snr 0000 | ber 0000df00 | unc 00000000 |<br>
status 06 | signal 0000 | snr 0000 | ber 00009900 | unc 00000000 |<br>
status 06 | signal 0000 | snr 0000 | ber 00008f00 | unc 00000000 |<br>
status 02 | signal 0000 | snr 0000 | ber 00008200 | unc 00000000 |<br>
status 06 | signal 0000 | snr 0000 | ber 00008000 | unc 00000000 |<br>
status 06 | signal 0000 | snr 0000 | ber 00008300 | unc 00000000 |<br>
<br>
I have enabled debug messages for stv0299. When I try to tune I see this in dmesg:<br>
<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_set_voltage: ??<br>
stv0299: stv0299: init chip<br>
stv0299: stv0299_wait_diseqc_idle<br>
stv0299: stv0299_set_voltage: SEC_VOLTAGE_18<br>
stv0299: stv0299_send_diseqc_msg<br>
stv0299: stv0299_wait_diseqc_idle<br>
stv0299: stv0299_wait_diseqc_fifo<br>
stv0299: stv0299_wait_diseqc_fifo<br>
stv0299: stv0299_wait_diseqc_fifo<br>
stv0299: stv0299_wait_diseqc_fifo<br>
stv0299: stv0299_wait_diseqc_idle<br>
stv0299: stv0299_send_diseqc_burst<br>
stv0299: stv0299_wait_diseqc_idle<br>
stv0299: stv0299_wait_diseqc_idle<br>
stv0299: stv0299_wait_diseqc_idle<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x94<br>
stv0299: stv0299_read_signal_strength : FE_READ_SIGNAL_STRENGTH : AGC2I: 0xffff, signal=0x0000<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x90<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x92<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x90<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x93<br>
stv0299: stv0299_read_signal_strength : FE_READ_SIGNAL_STRENGTH : AGC2I: 0xffff, signal=0x0000<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x83<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x93<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x92<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x93<br>
stv0299: stv0299_read_signal_strength : FE_READ_SIGNAL_STRENGTH : AGC2I: 0xffff, signal=0x0000<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x91<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x90<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x90<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x90<br>
stv0299: stv0299_read_signal_strength : FE_READ_SIGNAL_STRENGTH : AGC2I: 0xffff, signal=0x0000<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x94<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x93<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x92<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x83<br>
stv0299: stv0299_read_signal_strength : FE_READ_SIGNAL_STRENGTH : AGC2I: 0xffff, signal=0x0000<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x94<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x94<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x94<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x91<br>
stv0299: stv0299_read_signal_strength : FE_READ_SIGNAL_STRENGTH : AGC2I: 0xffff, signal=0x0000<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x91<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x90<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x91<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x93<br>
stv0299: stv0299_read_signal_strength : FE_READ_SIGNAL_STRENGTH : AGC2I: 0xffff, signal=0x0000<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x91<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x90<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x93<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x94<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x94<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x92<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x93<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x94<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x83<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x93<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x90<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x92<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x92<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_read_status : FE_READ_STATUS : VSTATUS: 0x92<br>
stv0299: stv0299_set_frontend : FE_SET_FRONTEND<br>
stv0299: stv0299_set_FEC<br>
stv0299: stv0299_set_voltage: ??<br>
<br>
At first glance it seems that the tuner doesn't get a signal. Or
perhaps the frontend isn't initialised properly. I have used this same
card in the same system with Windows XP SP2 and that works fine. So a
hardware issue can be ruled out I guess.<br>
<br>
I have tried to compile the CVS checkout of kernel-dvb with the FC4
src.rpm. This didn't work. Perhaps I should try to use a <a href="http://kernel.org">kernel.org</a>
kernel source, but I'd like to stick to the FC4 kernel as I don't know
whether other things would break.<br>
<br>
I hope I provided enough information. Just let me know if more is needed.<br>
<br>
Thanks in advance for your time.<br>
<br>
Regards,<br>
<br>
<br>
Jelte<br>
<span style="font-family: monospace;"></span>