Jump to content


Member Since 13 Jan 2018
Offline Last Active 01 Dec 2021 08:45

Posts I've Made

In Topic: One proc file for detecting the MACHINE in all enigma2 images.

27 May 2021 - 16:35



Just an update to let everyone know that boxbranding and the old legacy /etc/openvision/ directory hierarchy is no longer used in OpenVision.  We have completely switched over to using BoxInfo class and the enigma kernel module.  We are also moving quickly to remove all usage of the global SystemInfo dictionary system variables.  These are being replaced with the BoxInfo.getItem() and BoxInfo.setItem() methods.  Immutable values can not be changed with the BoxInfo.setItem() method.  Any item created can be set to be immutable, that is BoxInfo variables can be made to be write once/read many.


The SystemInfo dictionary items themselves can't and won't be removed until all plugins are updated to use the new system.  As previously mentioned the BoxInfo call calls also manage and use the old SystemInfo dictionary.


The kernel module is now called enigma.ko and it creates /proc/enigma/xxx entries.  This has been done, as promised, to remove all hard coded references to OpenVision.  Please understand that some values stored and served by the module are OpenVision specific.  Other images are free to introduce and use them if they are helpful.


We have also started the documentation process of the values defined in the kernel module in https://github.com/O...oc/KERNELMODULE .  This is a work in progress.  As the facility is discussed and enhanced I expect that this documentation will grow and improve.


If OpenPLi is interested / ready to adopt this system please let us know and we would be pleased to help out.




In Topic: One proc file for detecting the MACHINE in all enigma2 images.

6 May 2021 - 03:39

Hi Zeros,


Thank you for the compliment but this was a joint effort, I wrote the Python code and Persian Prince wrote the C++ code.


I know that a few of the developers and probably others are running the code.  I believe that some boxes are having issues and we are awaiting logs and are actively investigating the problem.  We believe the core of this change is correct and solid and it is one of the converted Enigma2 modules that may have a typo.


I should also point out that our conversion efforts are not yet complete.  We are in the process of converting all direct references to the SystemInfo dictionary variable to use the BoxInfo methods.  When this task is complete the global SystemInfo variable will be no more.




In Topic: One proc file for detecting the MACHINE in all enigma2 images.

4 May 2021 - 07:05

Hi Betacentauri,


Sorry, I thought my description would be enough to help you locate the files.  Anyway here are some links for you:

This is the modified SystemInfo.py that implements the BoxInfo class:


This is an example screen that used a lot of boxbranding calls that now uses BoxInfo.  This screen is the new OpenVision version of the old About.py screen.  (Basically any OpenVision Enigma2 core code that used boxbranding now uses BoxInfo.)



This is the kernel module:


If there is anything else you would like to know then please ask.




In Topic: One proc file for detecting the MACHINE in all enigma2 images.

3 May 2021 - 19:32



I should add that the names in the current code refer to the OpenVision image.  For example, "/proc/openvision", "openvision.ko" etc.  These will all soon be changed to be a more universally acceptable "/proc/enigma", "enigma.ko" etc.




In Topic: One proc file for detecting the MACHINE in all enigma2 images.

3 May 2021 - 18:43

Hi All,


It has been a while since this thread had a post on the topic.  This post is to let you know what has been happening in the background.


The OpenVision developers have been working on the proposal for a boxbranding replacement.  We have now committed our efforts to the OpenVision repository.


The core of the new code is a new class in SystemInfo called BoxInfo.  Here are the commit notes introducing this new class:

BoxInfo is a new Python class in SystemInfo that is designed to replace the old boxbranding system. The class offers methods to list, get, set or delete system information variables. The code implements controls to protect variables/values defined to be immutable.

The code is designed to find and use an enigma kernel module to supply the system variables. If the kernel module is loaded the variables will be directly extracted from the kernel module. If the module is found but not loaded then the variables will be extracted from the module directly with modinfo. (This same concept can allow modules from non active slots or partitions to be accessed for purposes like MultiBoot.)

The BoxInfo system also defines and allows a file called "/etc/enigma.conf" to be created and supply replacement / override values for the kernel module. This feature is designed to allow developers to simulate other boxes or settings to facilitate firmware development and testing. The file is a simple text format with each line replacing or adding a new kernel module definition. Each line has the form "variable=value". Note that spaces *ARE* significant.

When a variable is initially loaded the code attempts to convert text string representations of Python objects into the real Python object. So, for example, if the string contains '("One", "Two", "Three")' then this will be converted to a tuple with the three string elements. A similar conversion is done for lists. The single word "None" in any case is converted to None. The single words "False", "No", "Off" and "Disabled" in any case are converted to False while "True", "Yes", "On" and "Enabled" in any case are converted to True. Binary, octal, decimal and hexadecimal numbers are converted to Python integers and floating point number strings are converted to type float. Please note that at this time only single conversions are performed. Thus a conversion of a string to a list will not process the elements of the list.

This is an initial presentation of a proposal I designed and presented many months ago. Given there has been no progress with the concept I am committing this code to further progress and discussion. This initial variable names have been taken from the OpenVision interpretation of the boxbranding code. The variable names should be better defined, as suggested / requested by WanWizard on OpenPLi, such changes can easily be made to this code infrastructure.




We have been going through all the OpenVision Enigma2 code removing all references to boxbranding.  I think those efforts are now complete / almost complete.  More in depth testing is now going to commence.


We invite other developers to review our work.  We welcome constructive questions, comments and suggestions.



Ian and the OpenVision team.