Modify

Ticket #10153 (closed Bug Report - General: fixed)

Opened 20 months ago

Last modified 16 months ago

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

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

Change History

Changed 20 months ago by Lawrence Rust <lvr@…>

comment:1 Changed 17 months 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 17 months ago by Lawrence Rust <lvr@…>

Changed 17 months ago by Lawrence Rust <lvr@…>

comment:2 Changed 17 months ago by danielk

  • Owner changed from janne to danielk
  • Status changed from new to assigned
  • Version changed from Unspecified to Master Head
  • Milestone changed from unknown to 0.25

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 17 months ago by Lawrence Rust <lvr@…>

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

Changed 17 months ago by Lawrence Rust <lvr@…>

Changed 17 months ago by Lawrence Rust <lvr@…>

Changed 17 months ago by danielk

Different implementation.

comment:4 Changed 16 months ago by Github

  • Status changed from assigned to closed
  • Resolution set to fixed

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

View

Add a comment

Modify Ticket

Action
as closed
The resolution will be deleted. Next status will be 'new'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.