Opened 8 years ago

Closed 8 years ago

#10153 closed Bug Report - General (fixed)

Can't tune QPSK channels using a dvb-s2 card on Linux 3.0 or later

Reported by: Lawrence Rust <lvr@…> Owned by: danielk
Priority: minor Milestone: 0.25
Component: MythTV - DVB Version: Master Head
Severity: medium Keywords: dvb-s2 linux 3.0
Cc: Ticket locked: no

Description

I've been trying to get my tbs6981 dvb-s2 card to work with MythTV using a Linux 3.0.8 or 3.1 kernel. Turns out that there's been a change in the kernel that has implications for userland.

Prior to 3.0 if the DTV_DELIVERY_SYSTEM was set to 0 (SYS_UNDEFINED) for a QPSK (dvb-s) channel then the dvb kernel module changed this to SYS_DVBS to facilitate backward support for legacy api. From Linux 3.0 this has been removed. It's a bug I believe so I've submitted a bug report & patch here http://news.gmane.org/find-root.php?message_id=%3c1320506379.1731.12.camel%40gagarin%3e. However, the time frame to get this fixed is going to be extended so a workaround in Myth is needed. This bug affects both master and 0.24.1 fixes.

The fix is to always provide a valid delivery system for DTV_DELIVERY_SYSTEM. However, this may need a fix at the mysql level as currently all qpsk channels are recorded as having an undefined delivery system.

The attached kern.log fragment shows the ioctl transactions emitted after

sudo sh -c "echo 1 >/sys/module/dvb_core/parameters/frontend_debug"

Attachments (6)

cyclops-fe.log (19.8 KB) - added by Lawrence Rust <lvr@…> 8 years ago.
0041-libmythtv-Set-the-modulation-system-for-all-dvb-s2-c.patch (1.8 KB) - added by Lawrence Rust <lvr@…> 8 years ago.
0071-libmythtv-Set-the-modulation-system-for-all-dvb-s2-c.patch (1.8 KB) - added by Lawrence Rust <lvr@…> 8 years ago.
0041-libmythtv-Set-the-modulation-system-for-all-dvb-s2-c.2.patch (1.7 KB) - added by Lawrence Rust <lvr@…> 8 years ago.
0071-libmythtv-Set-the-modulation-system-for-all-dvb-s2-c.2.patch (1.7 KB) - added by Lawrence Rust <lvr@…> 8 years ago.
10153-v1.patch (1.0 KB) - added by danielk 8 years ago.
Different implementation.

Download all attachments as: .zip

Change History (10)

Changed 8 years ago by Lawrence Rust <lvr@…>

Attachment: cyclops-fe.log added

comment:1 Changed 8 years ago by Lawrence Rust <lvr@…>

This fix is becoming v. urgent as many Linux distros now ship Linux 3.x. Furthermore the Linux media group have rejected fixing it, FWIW I use the attached patches to fixes/0.24 and master.

Changed 8 years ago by Lawrence Rust <lvr@…>

Changed 8 years ago by Lawrence Rust <lvr@…>

comment:2 Changed 8 years ago by danielk

Milestone: unknown0.25
Owner: changed from Janne Grunau to danielk
Status: newassigned
Version: UnspecifiedMaster Head

Thanks. I'll take a look at this next week. If you can rewrite this without the casting I may be able to apply this without modification, but effort is appreciated either way.

comment:3 Changed 8 years ago by Lawrence Rust <lvr@…>

Attached patches without static_cast. NB this are not strictly C++ 0x compliant.

Changed 8 years ago by Lawrence Rust <lvr@…>

Changed 8 years ago by Lawrence Rust <lvr@…>

Changed 8 years ago by danielk

Attachment: 10153-v1.patch added

Different implementation.

comment:4 Changed 8 years ago by Github

Resolution: fixed
Status: assignedclosed

Fixes #10153. Guess at DVB-S vs DVB-S2 when not explicitly set.

The problem was discovered by Lawrence Rust. It has been decided not to fix the DVB API regression upstream, so this code attempts to guess which system is being used using the modulation scheme as a hint.

Branch: master Changeset: 18249695bed199c3003a945358e5f2564954b2dc

Note: See TracTickets for help on using tickets.