Summary: | kaffeine does not tune into some dvb-s channels | ||
---|---|---|---|
Product: | [Applications] kaffeine | Reporter: | juliushar |
Component: | general | Assignee: | Mauro Carvalho Chehab <mchehab> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | juliushar |
Priority: | NOR | ||
Version: | 2.0.1 | ||
Target Milestone: | --- | ||
Platform: | Kubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Channel list: some channels are missing in there
complete channels list Channel Number setup B before workaround Channel Number setup B after workaround (new channel scan) w_scan result setup B before workaround w_scan result setup B after workaround Technisat Card Foto output from vlc Kaffeine log with workaround media: isl6421: add checks for current overflow The device seems to be present ...but the source (device) cannot be selected The Technisat SkyStar2 with opened lid of the HF cage near the connector. There are no chips on the backside. |
Description
juliushar
2017-01-07 13:56:18 UTC
Please retry with Kaffeine 2.0. The 1.2 version is no longer maintained. The bug still remains: kaffeine -v kaffeine 2.0.4 kaffeine 11-01-17 21:33:36.791 [Info ] Using built-in dvb device manager 11-01-17 21:33:39.950 [Info ] Found dvb device P13d0210313d02103: Conexant CX24120/CX24118 the screen remains black without any error message on the console. starting vlc and terminating it shortly after: vlc Astraplaylist_vlc.xspf VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80) [0000000001c41148] core libvlc: VLC wird mit dem Standard-Interface ausgeführt. Benutzen Sie 'cvlc', um VLC ohne Interface zu verwenden. [0000000001d29ea8] core playlist: stopping playback [00007f99600057a8] core input error: unsafe option "dvb-lnb-low" has been ignored for security reasons [00007f99600057a8] core input error: unsafe option "dvb-lnb-high" has been ignored for security reasons [00007f99600057a8] core input error: unsafe option "dvb-lnb-switch" has been ignored for security reasons [00007f9938c060b8] dtv access error: 10729000 Hz carrier frequency is too low. [00007f9938c060b8] dtv access: Assuming 10729000000 Hz frequency instead. [00007f9938c060b8] dtv access error: cannot dequeue events fast enough! QObject::~QObject: Timers cannot be stopped from another thread starting kaffeine again: now the reception works, and there is additional output on the console: kaffeine 11-01-17 21:42:45.442 [Info ] Using built-in dvb device manager 11-01-17 21:42:45.843 [Info ] Found dvb device P13d0210313d02103: Conexant CX24120/CX24118 11-01-17 21:42:49.236 [Warning ] Invalid entry: channel is valid, begin is valid, duration is invalid [00007f17680986f8] avcodec decoder: Using G3DVL VDPAU Driver Shared Library version 1.0 for hardware decoding. 11-01-17 21:42:57.553 [Warning ] Invalid entry: channel is valid, begin is valid, duration is invalid an additional test with kaffeine -d : [Debug ] tune to: S 11836500 H 27500000 3/4 [Debug ] tuning failed on 11836.50 MHz then, vlc, close vlc, start kaffeine -d again: [Debug ] tune to: S 11836500 H 27500000 3/4 [Debug ] tuning succeeded on 11836.50 MHz ..Some channels work out of the box with kaffeine, for instance BBC World or Kika HD. Those channels are detected with a normal scan, others not. If vlc has been used for Sat reception since last reboot (and then vlc closed), the channel scan detects more channels (for instance "das erste") and can also play them. on the vlc side, this seems to have to do with the function static int dvb_vset_props (dvb_device_t *d, size_t n, va_list ap) where if (ioctl (d->frontend, FE_SET_PROPERTY, &props) < 0) gets called (file vlc-2.2/modules/access/dtv/linux.c) (In reply to juliushar from comment #4) > ..Some channels work out of the box with kaffeine, for instance BBC World or > Kika HD. Those channels are detected with a normal scan, others not. If vlc > has been used for Sat reception since last reboot (and then vlc closed), the > channel scan detects more channels (for instance "das erste") and can also > play them. There were some changes since Kaffeine 2.0.4, including some fixes at libdvbv5. As the last fixes on lidvbv5 happened this week, probably it was not backported to the distributions yet. Those changes affect DVB-S/S2 reception. Could you please test it with the latest version of libdvbv5, compiled from its source, and with Kaffeine, also compiled from its source? You can get libdvbv5 source with: git clone git://linuxtv.org/v4l-utils.git And Kaffeine with: git clone git://anongit.kde.org/kaffeine Also, you may need to select: [ ] Search transponders for other Networks in order to get all DVB-S channels, when scanning channels at the "Channels" screen. This will make the scan operation slower, but, without such option, you may not get all channels on some satellites. (In reply to Mauro Carvalho Chehab from comment #6) > (In reply to juliushar from comment #4) > > ..Some channels work out of the box with kaffeine, for instance BBC World or > > Kika HD. Those channels are detected with a normal scan, others not. If vlc > > has been used for Sat reception since last reboot (and then vlc closed), the > > channel scan detects more channels (for instance "das erste") and can also > > play them. > > There were some changes since Kaffeine 2.0.4, including some fixes at > libdvbv5. > > As the last fixes on lidvbv5 happened this week, probably it was not > backported to the distributions yet. > > Those changes affect DVB-S/S2 reception. Could you please test it with the > latest version of libdvbv5, compiled from its source, and with Kaffeine, > also compiled from its source? > > You can get libdvbv5 source with: > > git clone git://linuxtv.org/v4l-utils.git > > And Kaffeine with: > > git clone git://anongit.kde.org/kaffeine > > Also, you may need to select: > [ ] Search transponders for other Networks > > in order to get all DVB-S channels, when scanning channels at the "Channels" > screen. This will make the scan operation slower, but, without such option, > you may not get all channels on some satellites. i compiled v4l-utils and vlc-2.2, but kaffeine compile (git pull from 27. Feb. 2017) quits with CMake Error at cmake/modules/FindVLC.cmake:104 (message): Could not find /usr/include/vlc/libvlc_version.h the required file is not part of the vlc sources. (In reply to juliushar from comment #7) > (In reply to Mauro Carvalho Chehab from comment #6) > > (In reply to juliushar from comment #4) > i compiled v4l-utils and vlc-2.2, but kaffeine compile (git pull from 27. > Feb. 2017) quits with > > CMake Error at cmake/modules/FindVLC.cmake:104 (message): > Could not find /usr/include/vlc/libvlc_version.h > > the required file is not part of the vlc sources. Both VLC versions 2.x and 3.x should have libvlc_version.h, but you may need to install an extra package with the VLC headers. This is what's shipped with Debian Stretch (with should be somewhat similar to Kubuntu): $ dpkg -l libvlc-dev ... ii libvlc-dev:amd64 2.2.4-13 amd64 development files for libvlc $ dpkg -L libvlc-dev ... /usr/include/vlc/libvlc_version.h When v4l-utils was made and installed*, the compile of kaffeine** did not fail anymore. Then, i started vlc, quit, started kaffeine, did a "working" scan of the programs and tuned into some for test. Then I restarted the computer and started kaffeine again. Now, many channels were not working. So the problem still remains unsolved. * git describe --tags v4l-utils-1.12.0-41-gca6a0c0 ** git describe --tags 2.0.6-5-gdbdd21a On the VLC side (version 2.2 stable), when exiting VLC before the line if (ioctl (d->frontend, FE_ENABLE_HIGH_LNB_VOLTAGE, &val) < 0 && val) in function int dvb_set_sec (dvb_device_t *d, uint64_t freq_Hz, char pol, uint32_t lowf, uint32_t highf, uint32_t switchf) in file modules/access/dtv/linux.c , kaffeine will fail with many channels as mentioned. But when exiting after that if block (its actually rather this line which is relevant), kaffeine will work nicely. (in which area of the kaffeine code source does such functionality belong to?) (In reply to juliushar from comment #10) > On the VLC side (version 2.2 stable), when exiting VLC before the line > > if (ioctl (d->frontend, FE_ENABLE_HIGH_LNB_VOLTAGE, &val) < 0 && val) > > in function > > int dvb_set_sec (dvb_device_t *d, uint64_t freq_Hz, char pol, > uint32_t lowf, uint32_t highf, uint32_t switchf) > > in file > > modules/access/dtv/linux.c > > , kaffeine will fail with many channels as mentioned. But when exiting after > that if block (its actually rather this line which is relevant), kaffeine > will work nicely. > > (in which area of the kaffeine code source does such functionality belong > to?) Let me try to understand it better. This ioctl sets the LNBf voltage to what's there at "val". If zero, it sets to 13V; otherwise to 18V: if (ioctl (d->frontend, FE_ENABLE_HIGH_LNB_VOLTAGE, &val) < 0 && val) You're saying that exiting just after setting the voltage and running Kaffeine will make it work? If so, it seems that either the LNBf settings are wrong in Kaffeine, or the channel settings are wrong. That could happen, for example, if the Kaffeine's scanfile.dvb definitions for a channel says that it is horizontal, but the channel is, in fact vertical. What channels are falling? What's your LNBf? Created attachment 104788 [details]
Channel list: some channels are missing in there
Created attachment 104789 [details]
complete channels list
> > Let me try to understand it better. This ioctl sets the LNBf voltage > > to what's there at "val". If zero, it sets to 13V; otherwise to 18V: > if (ioctl (d->frontend, FE_ENABLE_HIGH_LNB_VOLTAGE, &val) < 0 && val) > > You're saying that exiting just after setting the voltage and running > Kaffeine will make it work? > > If so, it seems that either the LNBf settings are wrong in Kaffeine, or the > channel settings are wrong. That could happen, for example, if the > Kaffeine's scanfile.dvb definitions for a channel says that it is > horizontal, but the channel is, in fact vertical. > > What channels are falling? What's your LNBf? Yes, exiting just after if (ioctl (d->frontend, FE_ENABLE_HIGH_LNB_VOLTAGE, &val) < 0 && val) makes it work. And not only the before missing channels, but all channels. (This also applies to a scan, which will complete with more channels when it "works"). My LNBf is a AP82-T2B ( http://www.dueemme.com/catalogo/10.40.html ) with two connectors. With more testing, it turns out this effect is also there with for instance w_scan. Attached are two files, both generated with w_scan -f s -c DE -s S19.2E2 -L > Astraplaylist_after_vlc.xspf , with vlc shortly running between the scans with a channels file as playlist. From those files, the "directly working" channels and those missing can be seen by comparison. (A few might be missing due to random effects). From this list: http://de.satexpat.com/sat/ost/19.2/ for instance, 11837 H 27500 3/4 DVB-S QPSK group, including "Das Erste", is always missing without the workaround. The comparison of the previously attached channelfile without workaround and that with workaround shows, that without the workaround, only channels with polarization=V appear; while after the workaround [running VLC at least until the line if (ioctl (d->frontend, FE_ENABLE_HIGH_LNB_VOLTAGE, &val) < 0 && val) ], channels with both polarization=V and polarization=H appear (and the latter file is larger). Since this problem does not only appear with kaffeine, but also with w_scan, could this have to to with the underlying system? (which is somehow initialized more comprehensively by vlc). (In reply to juliushar from comment #15) > The comparison of the previously attached channelfile without workaround and > that with workaround shows, that without the workaround, only channels with > polarization=V appear; while after the workaround [running VLC at least > until the line > > if (ioctl (d->frontend, FE_ENABLE_HIGH_LNB_VOLTAGE, &val) < 0 && val) > > ], channels with both polarization=V and polarization=H appear (and the > latter file is larger). Since this problem does not only appear with > kaffeine, but also with w_scan, could this have to to with the underlying > system? (which is somehow initialized more comprehensively by vlc). If you're having the same troubles on other tools, it is very likely that the problem is elsewhere. Perhaps a hardware malfunction or a Kernel driver issue. Can you test it with some other hardware? i only have one setup available. Since it is reproducible and starts working with the described workaround, it looks like a software (driver?) issue. The firmware file for the card is from https://github.com/OpenELEC/dvb-firmware/blob/master/firmware/dvb-fe-cx24120-1.20.58.2.fw . The Technisat SkyStar2 is a very widespread card. Who would be the developer to ask? Since there is a workaround with vlc, can there be one with kaffeine? ...tested with a different PC, running current Manjaro Linux (KDE) 64 Bit, a new Technisat SkyStar2 DVB card, same LNB. The same problem showed up, on the screenshots it can be seen that the number of channels in kaffeine differs greatly after the workaround. Also, w_scan results will be attached. Created attachment 106947 [details]
Channel Number setup B before workaround
Created attachment 106948 [details]
Channel Number setup B after workaround (new channel scan)
Created attachment 106949 [details]
w_scan result setup B before workaround
Created attachment 106950 [details]
w_scan result setup B after workaround
(In reply to juliushar from comment #18) > ...tested with a different PC, running current Manjaro Linux (KDE) 64 Bit, a > new Technisat SkyStar2 DVB card, same LNB. The same problem showed up, on > the screenshots it can be seen that the number of channels in kaffeine > differs greatly after the workaround. Also, w_scan results will be attached. That sounds a Kernel driver bug. Looking at the flexcop-fe-tuner.c, it looks that there are several different models of SkyStar2 supported by the driver, each with different tuners and different LNB supply chips. The models supported by the Kernel are: SkyStar2 rev 2.3: mt312 SkyStar2 rev 2.6: stv0299, tbmu24112 SkyStar2 rev 2.7: s5h1420, isl6421, itd1000 SkyStar2 rev 2.8: cx24123, isl6421 What's the exact model that you have? What Kernel version? I also need the Kernel logs with debug info, without the workarond and with the workaround, in order to try to identify what's missing there. sudo uname -a Linux .... 4.4.0-66-generic #87-Ubuntu SMP Fri Mar 3 15:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux lspci|grep -i dvb 03:05.0 Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02) directly after startup: journalctl -e -k ... DVB: registering new adapter (FlexCop Digital TV device) Aug 03 20:27:28 .... kernel: b2c2-flexcop: MAC address = 00:08:c9:e1:5f:99 Aug 03 20:27:28 .... kernel: CX24123: wrong demod revision: ee Aug 03 20:27:28 .... kernel: shpchp: Standard Hot Plug PCI Controller Driver version: 0.4 Aug 03 20:27:28 .... kernel: mt352_read_register: readreg error (reg=127, ret==-121) Aug 03 20:27:28 .... kernel: nxt200x: nxt200x_readbytes: i2c read error (addr 0x0a, err == -121) Aug 03 20:27:28 .... kernel: nxt200x: Unknown/Unsupported NXT chip: 00 00 00 00 00 Aug 03 20:27:28 .... kernel: lgdt330x: i2c_read_demod_bytes: addr 0x59 select 0x02 error (ret == -121) Aug 03 20:27:28 .... kernel: stv0297_readreg: readreg error (reg == 0x80, ret == -121) Aug 03 20:27:28 .... kernel: mt312_read: ret == -121 Aug 03 20:27:29 .... kernel: cx24120: Conexant cx24120/cx24118 - DVBS/S2 Satellite demod/tuner Aug 03 20:27:29 .... kernel: cx24120: Demod cx24120 rev. 0x07 detected. Aug 03 20:27:29 .... kernel: cx24120: Conexant cx24120/cx24118 attached. Aug 03 20:27:29 .... kernel: b2c2-flexcop: ISL6421 successfully attached. Aug 03 20:27:29 .... kernel: b2c2-flexcop: found 'Conexant CX24120/CX24118' . Aug 03 20:27:29 .... kernel: b2c2_flexcop_pci 0000:03:05.0: DVB: registering adapter 0 frontend 0 (Conexant CX24120/CX24118)... Aug 03 20:27:29 .... kernel: b2c2-flexcop: initialization of 'Sky2PC/SkyStar S2 DVB-S/S2 rev 3.3' at the 'PCI' bus controlled by a 'FlexCopIIb' complete ... ---------- journalctl -k -f start kaffeine (not working) ./kaffeine 03-08-17 21:19:33.210 [Debug ] src/backend-vlc/vlcmediawidget.cpp#75: bool VlcMediaWidget::init(): Using libVLC with args: --no-video-title-show 03-08-17 21:19:33.475 [Info ] kaffeine.dvb: src/dvb/dvbmanager.cpp#596: void DvbManager::loadDeviceManager(): Using built-in dvb device manager 03-08-17 21:19:33.949 [Debug ] src/dvb/dvbdevice_linux.cpp#1889: void DvbLinuxDeviceManager::componentAdded(const QString&): New device detected: /org/kde/solid/udev/sys/devices/pci0000:00/0000:00:14.4/0000:03:05.0/dvb/dvb0.demux0 03-08-17 21:19:33.950 [Debug ] src/dvb/dvbdevice_linux.cpp#1889: void DvbLinuxDeviceManager::componentAdded(const QString&): New device detected: /org/kde/solid/udev/sys/devices/pci0000:00/0000:00:14.4/0000:03:05.0/dvb/dvb0.dvr0 03-08-17 21:19:33.950 [Debug ] src/dvb/dvbdevice_linux.cpp#1889: void DvbLinuxDeviceManager::componentAdded(const QString&): New device detected: /org/kde/solid/udev/sys/devices/pci0000:00/0000:00:14.4/0000:03:05.0/dvb/dvb0.frontend0 03-08-17 21:19:33.952 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): Device Conexant CX24120/CX24118 (/dev/dvb/adapter0/frontend0) capabilities: 03-08-17 21:19:33.952 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_2G_MODULATION 03-08-17 21:19:33.952 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_1_2 03-08-17 21:19:33.952 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_2_3 03-08-17 21:19:33.952 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_3_4 03-08-17 21:19:33.952 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_4_5 03-08-17 21:19:33.953 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_5_6 03-08-17 21:19:33.953 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_6_7 03-08-17 21:19:33.953 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_7_8 03-08-17 21:19:33.953 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_AUTO 03-08-17 21:19:33.953 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_INVERSION_AUTO 03-08-17 21:19:33.953 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_QPSK 03-08-17 21:19:33.953 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_RECOVER 03-08-17 21:19:33.953 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): DVB API Version 5.10, Current v5 delivery system: DVBS 03-08-17 21:19:33.953 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): Supported delivery systems: 03-08-17 21:19:33.954 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): [DVBS] 03-08-17 21:19:33.954 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): DVBS2 03-08-17 21:19:33.954 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb UNIVERSAL 03-08-17 21:19:33.954 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb DBS 03-08-17 21:19:33.954 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb EXTENDED 03-08-17 21:19:33.954 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb STANDARD 03-08-17 21:19:33.954 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb L10700 03-08-17 21:19:33.954 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb L10750 03-08-17 21:19:33.954 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb L11300 03-08-17 21:19:33.954 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb ENHANCED 03-08-17 21:19:33.955 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb QPH031 03-08-17 21:19:33.955 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb C-BAND 03-08-17 21:19:33.955 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb C-MULT 03-08-17 21:19:33.955 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb DISHPRO 03-08-17 21:19:33.955 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb 110BS 03-08-17 21:19:33.955 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb STACKED-BRASILSAT 03-08-17 21:19:33.955 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb OI-BRASILSAT 03-08-17 21:19:33.955 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb AMAZONAS 03-08-17 21:19:33.955 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb AMAZONAS 03-08-17 21:19:33.955 [Debug ] src/dvb/dvbdevice_linux.cpp#188: void DvbLinuxDevice::startDevice(const QString&): supports lnb GVT-BRASILSAT 03-08-17 21:19:33.956 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): SEC: set voltage to OFF 03-08-17 21:19:33.956 [Info ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#198: void DvbLinuxDevice::startDevice(const QString&): Found dvb device P13d0210313d02103: Conexant CX24120/CX24118 03-08-17 21:19:33.956 [Debug ] src/dvb/dvbdevice_linux.cpp#1889: void DvbLinuxDeviceManager::componentAdded(const QString&): New device detected: /org/kde/solid/udev/sys/devices/pci0000:00/0000:00:14.4/0000:03:05.0/dvb/dvb0.net0 03-08-17 21:19:36.736 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): Device Conexant CX24120/CX24118 (/dev/dvb/adapter0/frontend0) capabilities: 03-08-17 21:19:36.737 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_2G_MODULATION 03-08-17 21:19:36.737 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_1_2 03-08-17 21:19:36.737 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_2_3 03-08-17 21:19:36.737 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_3_4 03-08-17 21:19:36.737 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_4_5 03-08-17 21:19:36.738 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_5_6 03-08-17 21:19:36.738 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_6_7 03-08-17 21:19:36.738 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_7_8 03-08-17 21:19:36.738 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_FEC_AUTO 03-08-17 21:19:36.738 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_INVERSION_AUTO 03-08-17 21:19:36.739 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_QPSK 03-08-17 21:19:36.739 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): CAN_RECOVER 03-08-17 21:19:36.739 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): DVB API Version 5.10, Current v5 delivery system: DVBS 03-08-17 21:19:36.739 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): Supported delivery systems: 03-08-17 21:19:36.739 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): [DVBS] 03-08-17 21:19:36.740 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): DVBS2 03-08-17 21:19:36.740 [Debug ] src/dvb/dvbdevice_linux.cpp#915: virtual bool DvbLinuxDevice::satSetup(QString, int, int): Using LNBf type UNIVERSAL 03-08-17 21:19:36.740 [Debug ] src/dvb/dvbdevice_linux.cpp#929: virtual bool DvbLinuxDevice::tune(const DvbTransponder&): tune to: S 11836500 H 27500000 3/4 03-08-17 21:19:36.741 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): frequency: 11836,50 MHz, high_band: 1 03-08-17 21:19:36.741 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): SEC: set voltage to 18V 03-08-17 21:19:36.741 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): DiSEqC TONE: OFF 03-08-17 21:19:36.757 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): DiSEqC command: e0 10 38 f3 03-08-17 21:19:36.820 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): DiSEqC BURST: SEC_MINI_A 03-08-17 21:19:36.859 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): DiSEqC TONE: ON 03-08-17 21:19:36.884 [Debug ] kaffeine.dev: src/dvb/dvbdevice_linux.cpp#81: void dvbv5_log(int, const char*, ...): L-Band frequency: 1236,50 MHz (offset = 10600,00 MHz) 03-08-17 21:19:41.905 [Debug ] src/dvb/dvbdevice.cpp#689: void DvbDevice::frontendEvent(): tuning failed on 11836.50 MHz ---------- ..meanwhile in journalctl: Aug 03 21:18:47 .... kernel: cx24120: FW version 1.20.58.2 ---------- start vlc / interrupted after workaround line of code (makes an error message appear in the log) ./vlc-2.2_modified/bin/vlc-static -vvv Astraplaylist_vlc.xspf journal: Aug 03 21:23:50 .... kernel: traps: vlc-static[2132] general protection ip:7f30d8b27478 sp:7f30bcf0f970 error:0 in libc-2.23.so[7f30d8aa9000+1c0000] (vlc logs did not fit into terminal, so once more:) ./vlc-2.2_modified/bin/vlc-static -vvv Astraplaylist_vlc.xspf > vlc-messages_7.txt 2>&1 Speicherzugriffsfehler (Speicherabzug geschrieben) journal: Aug 03 21:25:21 .... kernel: vlc-static[2159]: segfault at 18 ip 00007f79ea4f551f sp 00007f79e1fe63f0 error 4 in libQt5Gui.so.5.5.1[7f79ea426000+527000] ------------- ------------- kaffeine again: ./kaffeine > kaffein_log_working.txt 2>&1 (movies are playing now....) journal: no additional messages appeared (some files will be attached) Created attachment 107058 [details]
Technisat Card Foto
Created attachment 107059 [details]
output from vlc
Created attachment 107060 [details]
Kaffeine log with workaround
imprint on the Sat card: TechniSat DIGITAL 6411-0500-V3.0 SCH-V2.0 (see attached photo) The second system with the same workaround has the following properties: lspci|grep -i dvb 01:06.0 Network controller: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card (rev 02) sudo uname -a Linux ... 4.9.39-1-MANJARO #1 SMP PREEMPT Fri Jul 21 08:25:24 UTC 2017 x86_64 GNU/Linux (In reply to Mauro Carvalho Chehab from comment #23) > (In reply to juliushar from comment #18) > > ...tested with a different PC, running current Manjaro Linux (KDE) 64 Bit, a > > new Technisat SkyStar2 DVB card, same LNB. The same problem showed up, on > > the screenshots it can be seen that the number of channels in kaffeine > > differs greatly after the workaround. Also, w_scan results will be attached. > > That sounds a Kernel driver bug. Looking at the flexcop-fe-tuner.c, it looks > that there are several different models of SkyStar2 supported by the driver, > each with different tuners and different LNB supply chips. The models > supported by the Kernel are: > > SkyStar2 rev 2.3: mt312 > SkyStar2 rev 2.6: stv0299, tbmu24112 > SkyStar2 rev 2.7: s5h1420, isl6421, itd1000 > SkyStar2 rev 2.8: cx24123, isl6421 > > What's the exact model that you have? What Kernel version? I also need the > Kernel logs with debug info, without the workarond and with the workaround, > in order to try to identify what's missing there. Ok, your board is using the entry meant for SkyStar S2 PCI DVB-S/S2 rev 3.3: static int skystarS2_rev33_attach(struct flexcop_device *fc, struct i2c_adapter *i2c) { fc->fe = dvb_attach(cx24120_attach, &skystar2_rev3_3_cx24120_config, i2c); if (!fc->fe) return 0; fc->dev_type = FC_SKYS2_REV33; fc->fc_i2c_adap[2].no_base_addr = 1; if (!dvb_attach(isl6421_attach, fc->fe, &fc->fc_i2c_adap[2].i2c_adap, 0x08, 0, 0, false)) { err("ISL6421 could NOT be attached!"); fc->fc_i2c_adap[2].no_base_addr = 0; return 0; } info("ISL6421 successfully attached."); if (fc->has_32_hw_pid_filter) fc->skip_6_hw_pid_filter = 1; return 1; } It uses a cx24120 frontend, with an ISIL 6421 to power up the LNBf. The volrage control (with switches from V/H polarization) seems to be implemented by the isl6421 driver. The datasheet for this device is at: http://www.intersil.com/content/dam/Intersil/documents/isl6/isl6421a.pdf One thing this chip provides is that it can add an extra 1V to be used when the antenna cable it too long, in order to compensate for eventual loss. Apparently, something is not right there, at least for your device. I'll take a look at the Kernel driver. After looking at isl6421 datasheet, I think I know what may be happening. The driver is programmed to use the dynamic current overflow protection. Such circuit is meant to protect the device from troubles when it sends a current to the LNBf. As stated there: (In reply to Mauro Carvalho Chehab from comment #31) > After looking at isl6421 datasheet, I think I know what may be happening. > The driver is programmed to use the dynamic current overflow protection. > Such circuit is meant to protect the device from troubles when it sends a > current to the LNBf. As stated there: "as soon as an overload is detected, the output is shut down for a time T OFF, typically 900ms ... However, there could be some cases in which a highly capacitive load on the output may cause a difficult start-up, when the dynamic protection is chosen. This can be solved by initiating a power start-up in static mode (DCL = HIGH) and then switching to the dynamic mode (DCL = LOW) after a chosen amount of time." The driver currently doesn't implement it, but something occurred to me: do you have any other device connected to the satellite antenna? When you have multiple devices connected to the antenna, you need a DiSEqC switch. Additinally, only one should be powering up the antenna on a given time. If more then one device is connected, and another device is already powering the antenna, trying to change the voltage (in order to switch the polarization) will fail. There is only one PC connected to the LNB at a given time. (The AP82-T2B LNB provides two independent outputs, but only one is used). When i plug the cable out of the PC and test the signal with a WS-6933 *, everything looks good. And with Kaffeine, all the channels that appear also look good. So there is no problem with the signal strength for the working channels. *( https://www.amazon.de/Satlink-WS-6933-Camping-Satfinder-Messger%C3%A4t/dp/B00KXKFKRA/ref=sr_1_1?ie=UTF8&qid=1502564154&sr=8-1&keywords=ws6933 ) Created attachment 107254 [details]
media: isl6421: add checks for current overflow
The enclosed Kernel patch adds an additional logic for Isil 6421 to improve the power on logic. I suspect that it could fix the issue you're getting, but I can't test the patch myself.
You'll need to apply the patch to your Kernel and see if it would fix the issue.
(In reply to Mauro Carvalho Chehab from comment #11) > (In reply to juliushar from comment #10) > > On the VLC side (version 2.2 stable), when exiting VLC before the line > > > > if (ioctl (d->frontend, FE_ENABLE_HIGH_LNB_VOLTAGE, &val) < 0 && val) > > > > in function > > > > int dvb_set_sec (dvb_device_t *d, uint64_t freq_Hz, char pol, > > uint32_t lowf, uint32_t highf, uint32_t switchf) > > > > in file > > > > modules/access/dtv/linux.c > > > > , kaffeine will fail with many channels as mentioned. But when exiting after > > that if block (its actually rather this line which is relevant), kaffeine > > will work nicely. > > > > (in which area of the kaffeine code source does such functionality belong > > to?) > > Let me try to understand it better. This ioctl sets the LNBf voltage Actually, no. This ioctl is defined only for a few devices. It switches from "normal" voltage mode (13V/18V) to a "higher" voltage mode, that adds 1V, in order to compensate for cable loss (e. g. 14V/19V). Very few DVB devices implements it. That's why I missed on the first time I looked into it. I just added a new configuration option to DVB-S/S2 that will allow enabling this ioctl at Kaffeine. On tri-state mode, it won't use the ioctl at all, just like before. That prevents a lot at libdvbv5 that would otherwise happen if called and the device doesn't support it: 13-08-17 18:07:58.265 [Critical] kaffeine.dev: FE_ENABLE_HIGH_LNB_VOLTAGE: Operation not supported Checking the box will enable the higher voltage mode; unchecking the normal mode. In any case, the previous Kernel patch that detects current overflow sounds a good idea, so I'm pushing it to the Kernel tree. Git commit d076c5b64a1d2949d1bc3938e58c7d3fda0f6d64 by Mauro Carvalho Chehab. Committed on 13/08/2017 at 20:50. Pushed by mauroc into branch 'master'. dvb: add a tristate to allow set higher/normal LNBf voltage Some DVB devices have an optional ioctl that allows changing between normal voltage for LNBf (13V/18V) to a higher voltage mode (usually, 14V/19V), meant to compensate for voltage loss on long cabling. Without that, it is not possible to properly switch the polarization. Add a tristate check box to allow enabling/disabling this via ioctl. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> M +1 -0 src/dvb/dvbbackenddevice.h M +4 -0 src/dvb/dvbconfig.h M +32 -14 src/dvb/dvbconfigdialog.cpp M +4 -1 src/dvb/dvbconfigdialog.h M +2 -0 src/dvb/dvbdevice.cpp M +14 -0 src/dvb/dvbdevice_linux.cpp M +1 -0 src/dvb/dvbdevice_linux.h M +2 -0 src/dvb/dvbmanager.cpp https://commits.kde.org/kaffeine/d076c5b64a1d2949d1bc3938e58c7d3fda0f6d64 Created attachment 107276 [details]
The device seems to be present
Side problem during test with latest kaffeine from git (2017-08-14)
Created attachment 107277 [details]
...but the source (device) cannot be selected
Side problem during test with latest kaffeine from git (2017-08-14)
Thanks for looking in to this! i tried to test, but the device cannot be selected for scan, although it is plugged in (attached two screenshots). This seems to be a different problem, but i cannot test the new version of kaffeine. Created attachment 107278 [details]
The Technisat SkyStar2 with opened lid of the HF cage near the connector. There are no chips on the backside.
It could be interesting to place the photo you took at: https://linuxtv.org/wiki/index.php/TechniSat_SkyStar_S2 The IS61V256 is an EEPROM memory (32 KB). The 24118A is part of the Conexant DVB-S2 chipset: cx24118/cx24120. Both are controlled by the same frontend driver. With regards to the problems you're reporting, based on those "cannot open" log messages, it seems that either you're lacking permissions to access a subdir on your home directory (chown -R your_user:your_group /home/your_user would fix), or your home partition is full. Kaffeine uses a file pipe to communicate with libVLC. If it can't create such pipe, it won't work. i tested with the latest kaffeine and can confirm that this bug is solved. Since this is a general feature, it also affects other programs. Does it make sense to mention this at other places? for instance, the same thing affects w_scan, where i could not find the higher voltage option yet. |