In a previous post I described how to compile enigma2 for the sh4 architecture. In this follow-up post I describe what you would need in order to run it properly since there has been some confusion on how to execute a software that was created and tested for another architecture (mips).
As before, the procedure I describe was done on a STb7109 cut 3.0 board, also called cocoref MB442 from ST.
Enigma2 is a nice piece of software that runs without problems in a MIPS-based decoder like the DM8000 that contains a specific filesystem configuration and drivers written for that hardware. Obviously, these drivers are dependent of the underneath architecture and you cannot expect them to work in another architecture like the sh4.
The ideal solution to this issue would be to have a porting of enigma2 to the sh4, specifically to the Kathrein UFS-910. In fact, some guys (the Duck Tales team) ported enigma2 to this decoder that mounts an STb710x processor. Therefore, you would only need to download the source code (that is GPL), compile it, create the filesystem structure that enigma2 expects like the default skins that are in /usr/share/enigma2, and run it.
Unfortunately, I haven’t been able to find that source code nor to contact that team (feel free to contact me if you have information about where to download it or how to contact them).
The consequence of this fact is that you would have to download a ‘vanilla’ enigma2 and modify it according to the drivers that you have in your decoder or modify the drivers so they send/receive the data that enigma2 expects.
I chose the first option that seemed better in my case. Therefore, I started to modify enigma2 in at least the following areas:
- Modify the framebuffer access for the On-Screen-Display (OSD)
- Modify the front-panel LCD access
- Modify the infrared port (remote control) access.
- Create several soft links and new directories that enigma2 expects. Eg. I installed enigma2 in /usr/local, whilst in the dm8000 is in /usr.
- Substitute the use of /proc filesystem. Enigma2 uses information given by the /proc filesystem, this information basically does not change over time, so it can be substituted by normal files (this is done in the UFS-910).
Notice that in my case I’m not porting enigma2 to the UFS-910, but to a completely new board. This means that even if the processor is the same (an STb710x) the devices like the front-panel LCD are different. But if I had the enigma2 sources for the UFS-910, it would have saved me a lot of time because some of the aforementioned modifications would not be necessary (they would have been already included in those sources).
Conclusion, I hope this post clarifies all the doubts that compiling a ‘vanilla’ enigma2 for another architecture may not be sufficient for running it due to the fact that enigma2 is quite dependent of the Dreambox hardware.