I imported the latest ATV image, the Modus12 still works here, so they didn't make the change like PLI.
Or deactivate support for mode 12 if you have the old boot device (= OE-A).
How do I do that?
Edited by mikel, 14 February 2020 - 12:34.
Posted 14 February 2020 - 13:43
Mode 12 was not deactivated...
It seems this time that (this time) OpenATV (OE-A) uses an ancient version of the STARTUP device... So they depend on hard coded STARTUP file creation in enigma2... while our code now fully depends on the STARTUP_(LINUX)x_(MODE_x) files being present in the boot device. Upgrading the boot device does solves the issue.
The big question here is... should we re-add some hardcoded stuff... as actually it is wrong to leave it...
I'm in big doubts... I'm even thinking of disable mode 12 completely when the STARTUP...MODE_x files are not there... this stops the GSOD... and to see Mode_12 in openpli just upgrade the boot device. But I did also not find any method yet that can update the boot device quick and easily.
Edited by littlesat, 14 February 2020 - 13:45.
WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W
Posted 14 February 2020 - 15:39
Hereby a suggestion that can make multiboot backwards compatible with the ancient boot devices...
Multiboot.py belongs to your box on /usr/lib/enigma2/python/Tools/Multiboot.py
SystemInfo.py belongs to your box on /usr/lib/enigma2/python/Components/SystemInfo.py
FlashImage.py belongs to your box on /usr/lib/enigma2/python/Screens/FlashImage.py
As I'm not near a box this change is not tested!!!
diff --git a/lib/python/Components/SystemInfo.py b/lib/python/Components/SystemInfo.py index 0ca917ba6..638e4e0cc 100644 --- a/lib/python/Components/SystemInfo.py +++ b/lib/python/Components/SystemInfo.py @@ -110,8 +110,8 @@ SystemInfo["Has3DSurroundSoftLimiter"] = fileExists("/proc/stb/audio/3dsurround_ SystemInfo["hasXcoreVFD"] = model in ('osmega','spycat4k','spycat4kmini','spycat4kcombo') and fileCheck("/sys/module/brcmstb_%s/parameters/pt6302_cgram" % model) SystemInfo["HasOfflineDecoding"] = model not in ('osmini', 'osminiplus', 'et7000mini', 'et11000', 'mbmicro', 'mbtwinplus', 'mbmicrov2', 'et7000', 'et8500') SystemInfo["MultibootStartupDevice"] = getMultibootStartupDevice() -SystemInfo["canMultiBoot"] = getMultibootslots() SystemInfo["canMode12"] = "%s_4.boxmode" % model in cmdline and cmdline["%s_4.boxmode" % model] in ("1","12") and "192M" +SystemInfo["canMultiBoot"] = getMultibootslots() SystemInfo["canFlashWithOfgwrite"] = not(model.startswith("dm")) SystemInfo["HDRSupport"] = fileExists("/proc/stb/hdmi/hlg_support_choices") and fileCheck("/proc/stb/hdmi/hlg_support") SystemInfo["CanDownmixAC3"] = fileHas("/proc/stb/audio/ac3_choices", "downmix") diff --git a/lib/python/Screens/FlashImage.py b/lib/python/Screens/FlashImage.py index 433d0272b..1938ce85b 100644 --- a/lib/python/Screens/FlashImage.py +++ b/lib/python/Screens/FlashImage.py @@ -481,7 +481,7 @@ class MultibootSelection(SelectImage): shutil.copyfile("/tmp/startupmount/STARTUP_RECOVERY", "/tmp/startupmount/STARTUP") elif self.slot == "Android": shutil.copyfile("/tmp/startupmount/STARTUP_ANDROID", "/tmp/startupmount/STARTUP") - else: + elif SystemInfo["canMultiBoot"][self.slot]['startupfile']: if SystemInfo["canMode12"]: if self.slot < 12: startupfile = "/tmp/startupmount/%s_BOXMODE_1" % SystemInfo["canMultiBoot"][self.slot]['startupfile'] @@ -490,6 +490,14 @@ class MultibootSelection(SelectImage): else: startupfile = "/tmp/startupmount/%s" % SystemInfo["canMultiBoot"][self.slot]['startupfile'] shutil.copyfile(startupfile, "/tmp/startupmount/STARTUP") + else: + model = HardwareInfo().get_machine_name() + if self.slot < 12: + startupFileContents = "boot emmcflash0.kernel%s 'root=/dev/mmcblk0p%s rw rootwait %s_4.boxmode=1'\n" % (self.slot, self.slot * 2 + 1, model) + else: + self.slot -= 12 + startupFileContents = "boot emmcflash0.kernel%s 'brcm_cma=520M@248M brcm_cma=%s@768M root=/dev/mmcblk0p%s rw rootwait %s_4.boxmode=12'\n" % (self.slot, SystemInfo["canMode12"], self.slot * 2 + 1, model) + open('/tmp/startupmount/STARTUP', 'w').write(startupFileContents) from Screens.Standby import TryQuitMainloop self.session.open(TryQuitMainloop, 2) diff --git a/lib/python/Tools/Multiboot.py b/lib/python/Tools/Multiboot.py index 3b9c425cf..f8b8ab6cc 100644 --- a/lib/python/Tools/Multiboot.py +++ b/lib/python/Tools/Multiboot.py @@ -22,9 +22,14 @@ def getparam(line, param): def getMultibootslots(): bootslots = {} + mode12found = False if SystemInfo["MultibootStartupDevice"]: for file in glob.glob(os.path.join(TMP_MOUNT, 'STARTUP_*')): - slotnumber = file.rsplit('_', 3 if 'BOXMODE' in file else 1)[1] + if 'BOXMODE' in file: + mode12found = True + slotnumber = file.rsplit('_', 3)[1] + else: + slotnumber = file.rsplit('_', 1)[1] if slotnumber.isdigit() and slotnumber not in bootslots: slot = {} for line in open(file).readlines(): @@ -41,6 +46,10 @@ def getMultibootslots(): Console().ePopen('umount %s' % TMP_MOUNT) if not os.path.ismount(TMP_MOUNT): os.rmdir(TMP_MOUNT) + if not mode12found and SystemInfo["canMode12"]: + #the boot device has ancient content and does not contain the correct STARTUP files + for slot in range(1,5): + bootslots[slot] = { 'device': '/dev/mmcblk0p%s' % slot * 2 + 1, 'startupfile': None} print '[Multiboot] Bootslots found:', bootslots return bootslots
Edited by littlesat, 14 February 2020 - 15:41.
WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W
Posted 14 February 2020 - 16:47
Did that, is that right?
/ Usr / lib / enigma2 / python / Screens /
rename the .pyo file to -org.pyo and bring the modified .py file here.
- Restart Enigma
With FlashImage.py your box at /usr/lib/enigma2/python/Screens/FlashImage.py does not work, there is no new file.pyo,
What am I doing wrong or is there something else that I haven't done since my ET9000?
Posted 15 February 2020 - 08:50
Edited by littlesat, 15 February 2020 - 08:51.
WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W
Posted 15 February 2020 - 08:56
Edited by littlesat, 15 February 2020 - 08:58.
WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W
0 members, 0 guests, 0 anonymous users