[linux-dvb] More on the cx24123

Yeasah Pell yeasah at schwide.com
Wed Apr 5 18:03:14 CEST 2006

 From what I've seen, some DiSEqC switches can be *really* picky, and 
I've seen lots of reports of switches working fine on one card but not 
working at all on another (or working unreliably) I can't offer any more 
detail or explanation than that though -- just my observation of reports 

My understanding is that the main difference between DiSEqC 1.x and 2.0 
is that 2.0 is bidirectional, which this card does seem to support, but 
this driver doesn't. But that should just mean you won't get status back 
from the devices -- the control aspect ought to still work fine. You 
wouldn't get status back unless the disqec commands were set to request 
it anyway, which the software you are using probably isn't doing.

I can confirm that on my DVB-S 100, with either my patch or vadim's 
original diseqc patch, I am able to control a 4 port generic diseqc 
switch which claims to be "1.0/2.0" compliant, as well as a dish positioner.

One thing you might try is enabling debug messages in the cx24123 module 
(i.e. by putting a line saying "options cx24123 debug=1" in 
/etc/modprobe.conf and reloading the modules or rebooting), that way you 
should see confirmation messages in dmesg of the diseqc messages being 
sent. That will at least confirm that 1) you are definitely loading the 
patched driver and 2) diseqc commands are in fact being issued to the 
card. You should see some lines including the text 
"cx24123_send_diseqc_msg", and hopefully no error indications.

The only other thing I would note is that in order to get my positioner 
to accept disqec commands reliably I had to increase the delay between 
the tone shutoff/voltage change and the diseqc command being sent in the 
software I use. I didn't have that problem with the switch, but I 
certainly would put that sort of timing issue high up on the list of 
suspected causes -- this card might take longer than normal for its LNB 
voltage to stabilize, or to actually stop sending the tone.

The popular timing seems to be to wait 15 msec, I upped that to 100 msec 
to get it to work with my positioner. It probably doesn't need that much 
of an increase, that's just what I tried first, and it doesn't really 
add a significant amount of time to the total command sequence from a 
user perspective. I was using other software, but if you want to try the 
change in dvbscan, change the first msleep(15) in the diseqc_send_msg 
function in diseqc.c to msleep(100), and recompile -- in fact you could 
try lengthening all the delays in that function, it certainly can't hurt 
to wait longer on any of those steps (apart from making the command 
sequence take longer)

If you find that adding delays helps, please let us know, as it means we 
should probably put some delays into the driver ioctls.

Todd wrote:

> I applied the your attached "cx24123.patch" to the Kernel (it 
> "took" just fine).  I still can't get the DiSEqC  functionality to 
> work.  I am using dvbscan from here:
> http://www.phobos.ca/dvb/
> ...on some DishPro switches (supposedly DiSEqC  2.0 switches).  It 
> works fine with my "Sky2PC/SkyStar 2 DVB-S" card, but not this kworld 
> card. (Same tools, same commands; literally cut and pasted between SSH 
> windows...even switch cabling into switch)
> Is this patch dated?...is there a new one?  Does the kworld card 
> support DiSEqC  2.0?  (the marketing hype claims 2.x compatibility: 
> http://www.kworld.com.tw/en/product/dvb-s/001/dvb-s100.htm )
> Thanks in advance,
> Todd

More information about the linux-dvb mailing list