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
Change History
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@…>
- Attachment 0041-libmythtv-Set-the-modulation-system-for-all-dvb-s2-c.patch added
Changed 17 months ago by Lawrence Rust <lvr@…>
- Attachment 0071-libmythtv-Set-the-modulation-system-for-all-dvb-s2-c.patch added
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@…>
- Attachment 0041-libmythtv-Set-the-modulation-system-for-all-dvb-s2-c.2.patch added
Changed 17 months ago by Lawrence Rust <lvr@…>
- Attachment 0071-libmythtv-Set-the-modulation-system-for-all-dvb-s2-c.2.patch added
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
