Jump to content


Photo

Multituner: First commits - but they need a lot of improvements


  • Please log in to reply
318 replies to this topic

Re: Multituner: First commits - but they need a lot of improvements #121 zeros

  • PLi® Contributor
  • 1,635 posts

+61
Good

Posted 12 March 2019 - 20:58

And you need add dual tuner check. (like my Triple is)

I can't do at the moment that, what I could on # 111


DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB

Vertex 4K60 4:4:4 600MHz


Re: Multituner: First commits - but they need a lot of improvements #122 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 12 March 2019 - 21:52

You cannot enable only DVB-T on tuner A and B?
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: Multituner: First commits - but they need a lot of improvements #123 littlesat

  • PLi® Core member
  • 56,123 posts

+685
Excellent

Posted 12 March 2019 - 22:11

This is dmm... it might be we need a lot of work a rounds to get this working on a box we don’t support and relies on closed source enigma2 binary...

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Multituner: First commits - but they need a lot of improvements #124 zeros

  • PLi® Contributor
  • 1,635 posts

+61
Good

Posted 13 March 2019 - 06:53

Sorry, my post # 121 was wrong. After the config, I have to do restart and it works! My point is the Configure I can do, but it’s getting on after restart. I add screenshots. I also added later the DVB-S and it also works.
That's a big progress, thanks for that.
However, more deep analysis and testing is still unfinished by me.

Attached Files


Edited by zeros, 13 March 2019 - 06:56.

DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB

Vertex 4K60 4:4:4 600MHz


Re: Multituner: First commits - but they need a lot of improvements #125 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 13 March 2019 - 07:09

You are not wrong, the tuner type change still pushes only one type.

https://github.com/O...anager.py#L1485

Can you confirm it, with an extra debug on this function?
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: Multituner: First commits - but they need a lot of improvements #126 ims

  • PLi® Core member
  • 13,608 posts

+211
Excellent

Posted 13 March 2019 - 07:54

@athoik - after this I have again all hotswitchable DVB-T/C tuners on Formuler1, e4hd and USB T230C2. This boxes have not "mode" in /proc/stb/frontend/0

 

And then is there again problem, that if is standard tuner detected as "hotswitchable", disable it is easy, but when I want workable tuner again, I must enable it and then restart gui.

 

And f.eg. Duo4k with 1x twin FBC and 1x usb-dvbt/c has 'mode' in: 0,1,2,3, 8, 9, from (0 -15,fbc)


Edited by ims, 13 March 2019 - 08:03.

Kdo nic nedělá, nic nezkazí!

Re: Multituner: First commits - but they need a lot of improvements #127 littlesat

  • PLi® Core member
  • 56,123 posts

+685
Excellent

Posted 13 March 2019 - 08:05

Then please revert.... I was already afraid of it. The avl check is right! and it does not push one type as it calls here the hotswitchable tuner change! For the restart GUI is then likely also solved.

Edited by littlesat, 13 March 2019 - 08:10.

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Multituner: First commits - but they need a lot of improvements #128 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 13 March 2019 - 14:09

You are not wrong, the tuner type change still pushes only one type.

https://github.com/O...anager.py#L1485

Can you confirm it, with an extra debug on this function?


Can you check above?

Do we pass a disabled type?
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: Multituner: First commits - but they need a lot of improvements #129 zeros

  • PLi® Contributor
  • 1,635 posts

+61
Good

Posted 13 March 2019 - 14:54

I let you know when I'm at home. My Triple seemed works nicely, only restart needed, what I first didn't realize.
With this OK:
self.hotswitchable = not os.path.exists("/proc/stb/frontend/%d/mode" % self.frontend_id)

 

I tried also:
self.hotswitchable = self.description.upper().startswith("Si2169")
But it didn't work somehow or didn't do this trick..

 

With

self.hotswitchable = self.description.upper().startswith("AVL")

it like in previous situation, not 'Hotswitchable', but as I see, it is 'Hotswitchable'.

I also add the picture how it feels to me.

What you specially mean with "Can you confirm it, with an extra debug on this function?"

Attached Files


Edited by zeros, 13 March 2019 - 14:55.

DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB

Vertex 4K60 4:4:4 600MHz


Re: Multituner: First commits - but they need a lot of improvements #130 littlesat

  • PLi® Core member
  • 56,123 posts

+685
Excellent

Posted 13 March 2019 - 15:22

self.hotswitchable = self.description.upper().startswith("Si2169")

 

This is due to the i.....

 

We need to find a different way for this... but it sounds DMM made a tricky-trick in their drivers to make this Si tuner hotswitchable..

 

But we do not support this DMM box ;)... so we cant take this box in account...

 

Maybe someone needs to change it to..

 

self.hotswitchable = self.description.upper().startswith("AVL") or self.description == "Si2169":

 

(when other boxes use the same tuner it might also not work for this tuner in case DMM made a tricky-trick)


Edited by littlesat, 13 March 2019 - 15:25.

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Multituner: First commits - but they need a lot of improvements #131 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 13 March 2019 - 18:19

Here is AVL6762 a DVB-T2/T/C tuner.
 
root@osmio4k:~# dvb-fe-tool -f 1
Device Availink AVL6762 (/dev/dvb/adapter0/frontend1) capabilities:
     CAN_2G_MODULATION
     CAN_FEC_1_2
     CAN_FEC_2_3
     CAN_FEC_3_4
     CAN_FEC_4_5
     CAN_FEC_5_6
     CAN_FEC_6_7
     CAN_FEC_7_8
     CAN_FEC_8_9
     CAN_FEC_AUTO
     CAN_GUARD_INTERVAL_AUTO
     CAN_HIERARCHY_AUTO
     CAN_INVERSION_AUTO
     CAN_MULTISTREAM
     CAN_QAM_16
     CAN_QAM_32
     CAN_QAM_64
     CAN_QAM_128
     CAN_QAM_256
     CAN_QAM_AUTO
     CAN_RECOVER
     CAN_TRANSMISSION_MODE_AUTO
DVB API Version 5.11, Current v5 delivery system: DVBT
Supported delivery systems:
    [DVBT]
     DVBT2
     DVBC/ANNEX_A
By default there is no "type enabled", so I enabled the DVB-T. Returning back to tuner list, the Disabled doesn't switch to Enabled.

Attached File  screenshot_20190313175921.jpg   108.83KB   3 downloads

Attached File  screenshot_20190313180121.jpg   104.85KB   2 downloads

You have to restart enigma2. I think that's wrong.

Attached File  screenshot_20190313180500.jpg   104.59KB   2 downloads

After restart, tuner changes to Enabled.


@ims, I think FBC tuners should be excluded from "hotswitchable", don't have such tuner so I cannot test it. You need to provide more info.


Regarding the other tuners, again I cannot understand the problem. They are indeed "hotswichable", why you think they are not switching mode using delsys?

Also once you enable the proper type (eg only T or C) what is going wrong?


@zeros, no need something from your side, just need to make sure that line 1487 is not used on hotswichable tuners ( https://github.com/O...anager.py#L1487 )
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: Multituner: First commits - but they need a lot of improvements #132 zeros

  • PLi® Contributor
  • 1,635 posts

+61
Good

Posted 13 March 2019 - 18:41

I just tested, that this also not doing that trick:

self.hotswitchable = self.description.upper().startswith("AVL") or self.description == "Si2169"

 

When I swap it to

self.hotswitchable = not os.path.exists("/proc/stb/frontend/%d/mode" % self.frontend_id)

 

Then my tuners are 'Hotswitchable'.


DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB

Vertex 4K60 4:4:4 600MHz


Re: Multituner: First commits - but they need a lot of improvements #133 WanWizard

  • PLi® Core member
  • 68,309 posts

+1,719
Excellent

Posted 13 March 2019 - 18:43

That is quite logical, as you enable it when something does not exist. So your code is useless, you can replace it by "self.hotswitchable = true".


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Pro (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: Multituner: First commits - but they need a lot of improvements #134 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 13 March 2019 - 19:23

Can you try this NimManager.py?
 
diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py
index fff8794..bcdc27c 100644
--- a/lib/python/Components/NimManager.py
+++ b/lib/python/Components/NimManager.py
@@ -1368,13 +1368,13 @@ def InitNimManager(nimmgr, update_slots = []):
                if os.path.exists("/proc/stb/frontend/%d/t2mirawmode" % slot):
                        open("/proc/stb/frontend/%d/t2mirawmode" % slot, "w").write(configElement.value)

-       def createSatConfig(nim, slot_id, empty_slots):
+       def createSatConfig(nim, slot_id):
                nim.toneAmplitude = ConfigSelection([("11", "340mV"), ("10", "360mV"), ("9", "600mV"), ("8", "700mV"), ("7", "800mV"), ("6", "900mV"), ("5", "1100mV")], "7")
-               nim.toneAmplitude.fe_id = slot_id - empty_slots
+               nim.toneAmplitude.fe_id = slot_id
                nim.toneAmplitude.slot_id = slot_id
                nim.toneAmplitude.addNotifier(toneAmplitudeChanged)
                nim.scpcSearchRange = ConfigSelection([("0", _("no")), ("1", _("yes"))], "0")
-               nim.scpcSearchRange.fe_id = slot_id - empty_slots
+               nim.scpcSearchRange.fe_id = slot_id
                nim.scpcSearchRange.slot_id = slot_id
                nim.scpcSearchRange.addNotifier(scpcSearchRangeChanged)
                nim.t2miRawMode = ConfigSelection([("disable", _("disabled")), ("enable", _("enabled"))], "disable")
@@ -1484,6 +1484,7 @@ def InitNimManager(nimmgr, update_slots = []):

        def tunerTypeChanged(nimmgr, configElement, initial=False):
                fe_id = configElement.fe_id
+               print "[InitNimManager] tunerTypeChanged: setFrontendType %s" % nimmgr.nim_slots[fe_id].getType()
                eDVBResourceManager.getInstance().setFrontendType(nimmgr.nim_slots[fe_id].frontend_id, nimmgr.nim_slots[fe_id].getType())
                try:
                        raw_channel = eDVBResourceManager.getInstance().allocateRawChannel(fe_id)
@@ -1545,22 +1546,13 @@ def InitNimManager(nimmgr, update_slots = []):
                        if tunerTypesEnabled:
                                print "[InitNimManager] enable hotswitchable tuner type(s) %s" %  ",".join(tunerTypesEnabled)
                                eDVBResourceManager.getInstance().setFrontendType(nimmgr.nim_slots[fe_id].frontend_id, ",".join(tunerTypesEnabled))
-                               if nim.configMode.value == "nothing":
-                                       nim.configMode.cancel()
-                                       if nim.configMode.value == "nothing":
-                                               nim.configMode.value = "simple"
+                               createConfig(nim, slot)
                        else:
                                print "[InitNimManager] disable hotswitchable tuner"
                                nim.configMode.value = nim.configMode.default = "nothing"

-       empty_slots = 0
-       for slot in nimmgr.nim_slots:
+       def createConfig(nim, slot):
                slot_id = slot.slot
-               if update_slots and (slot_id not in update_slots):
-                       continue
-               nim = config.Nims[slot_id]
-               nim.force_legacy_signal_stats = ConfigYesNo(default = False)
-
                if slot.isCompatible("DVB-S"):
                        config_mode_choices = {"nothing": _("Disabled"), "simple": _("Simple"), "advanced": _("Advanced")}
                        if len(nimmgr.getNimListOfType(slot.type, exception=slot_id)) > 0:
@@ -1575,13 +1567,22 @@ def InitNimManager(nimmgr, update_slots = []):
                else:
                        nim.configMode = ConfigSelection(choices = { "nothing": _("disabled") }, default="nothing")
                        if not slot.canBeCompatible("DVB-S"):
-                               empty_slots += 1
                                if slot.type is not None:
                                        print "[InitNimManager] pls add support for this frontend type!", slot.type
-               fe_id = slot_id - empty_slots
+
+       for slot in nimmgr.nim_slots:
+               slot_id = slot.slot
+               if update_slots and (slot_id not in update_slots):
+                       continue
+               nim = config.Nims[slot_id]
+               nim.force_legacy_signal_stats = ConfigYesNo(default = False)
+
+               createConfig(nim, slot)
+
+               fe_id = slot_id

                if slot.canBeCompatible("DVB-S"):
-                       createSatConfig(nim, slot_id, empty_slots)
+                       createSatConfig(nim, slot_id)
                if slot.canBeCompatible("DVB-C"):
                        createCableConfig(nim, slot_id)
                if slot.canBeCompatible("DVB-T"):

It should fix the issue with tuner mentioned as "Disabled".

Also it will log the type passed on "tunerTypeChanged", because it passes only one type, it should not used by hotswitchable tuners.

Attached Files


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: Multituner: First commits - but they need a lot of improvements #135 zeros

  • PLi® Contributor
  • 1,635 posts

+61
Good

Posted 13 March 2019 - 20:42

For me everything works, my tuners are ‘hotswithable’.
If I put two different Dvb-T MUX recording, then DVB-S is unavailable.
That was the last one, too, I think it's okay?

DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB

Vertex 4K60 4:4:4 600MHz


Re: Multituner: First commits - but they need a lot of improvements #136 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 13 March 2019 - 21:02

For me everything works, my tuners are ‘hotswithable’.
If I put two different Dvb-T MUX recording, then DVB-S is unavailable.
That was the last one, too, I think it's okay?


I guess working code on dreambox, is a desired side effect :P

Did you check with latest NimManager.py. Restart for e2 required now to get changes applied?
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: Multituner: First commits - but they need a lot of improvements #137 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 13 March 2019 - 21:04

That is quite logical, as you enable it when something does not exist. So your code is useless, you can replace it by "self.hotswitchable = true".


No, that check is to disable the "hot" on tuners that still use proc to change mode (something created before support delsys on linux DVB, before 3.3 kernels).
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: Multituner: First commits - but they need a lot of improvements #138 zeros

  • PLi® Contributor
  • 1,635 posts

+61
Good

Posted 13 March 2019 - 21:33

It seems restart is not necessary, but for something I have to be, that DVB-T worked without a restart promise to allow his DVB - S tuner also.
Tomorrow I do thoroughly testing.

DM920UHD DVB-S2X TRIPLE tuner + Triple M.S tuner DVB-S2X, DVB-T2/T, QboxHD, QboxHD Mini, Icecrypt T2300HD,
Qviart Lunix3 4K, Raspberry Pi 4 Model B 4GB & 8GB

Vertex 4K60 4:4:4 600MHz


Re: Multituner: First commits - but they need a lot of improvements #139 littlesat

  • PLi® Core member
  • 56,123 posts

+685
Excellent

Posted 13 March 2019 - 21:59

Are you sure empty slots is actually not required? Sounds also that after the change we need to tell something (the channel list ??) that it is changed...

Edited by littlesat, 13 March 2019 - 22:00.

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Multituner: First commits - but they need a lot of improvements #140 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 13 March 2019 - 22:23

If empty slots are required, then we already miss them on T/C tuners.

Channel list should be fine, it checks if there is a tuner capable to handle the channel.

Once you disable a type eg DVB-T, but keep another eg DVB-C all DVB-T should become unavailable.


Still didn't get a proper answer what is the overdetection on formuler. No logs, no screenshots, nothing.

For last time, any tuner DVB-C/T is hot if the proc misses. Unless it's a VU+. That's the general rule.
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users