Autoloader for extra exeDSP plugins (B65x)


From SamyGO
Revision as of 09:44, 4 May 2010 by Geo650 (talk | contribs)
Jump to: navigation, search

Plugin? What is this for ?

Extra exeDSP plugin is a dynamically-loaded library file (*.so) that may be executed using "Game" menu of the Content Library. Normally, such plugin is brought to you together with "clmeta.dat" XML file that points to the main library file to be started ("loader.so", for example). There are many plugins already made by SamyGO community. (Almost) all of them require to be run from Content Library "Game" submenu.

The problem is...

You cannot execute such plugins using starting script. You even cannot run them using telnet shell. So, they cannot be started automatically. Even if you make an application that run any plugin, then exeDSP functions (symbols) would be unknown. These functions are used by plugins for accessing of hardware layer easily.

Why to autostart ?

Some plugins are intended to be run in the background. Unfortunately, you have to enter Content Library to execute them. This is confusing in some situations. Autostarting is useful for staying resident applications that are waiting for a specified signal to execute a piece of its code. Starting plugins automatically will save your remote control, your fingers and... your nerves.

Then how to autostart my plugin ? What should I do ?

You have to load plugins using exeDSP in a way like Content Library does. Content Library is started by exeDSP application. The problem is that exeDSP is a closed-source binary and there is hard to modify its functions. So I decided to load our plugins (libraries) using another open-source library which is loaded by exeDSP. One of such libraries is libusb (libusb.so), normally loaded from /mtd_drv/Comp_LIB directory.

We have to force exeDSP to load our custom libusb library instead of original one. The directory with the original library file is read-only one, so we will modify LD_LIBRARY_PATH variable. The drawing below may be helpful to understand this method:

Libusb fig1.gif


Before you start...


WARNING!

Read the whole article first. Don't start if you doesn't understand anything. All problems can be solved on forum before bricking your TV. Please be careful. I am not responsible for your mistakes. You are doing it on your own risk.


What do I need?

  • Samsung LExxB65xT2W model with 2005.0 firmware (I don't know if it works on other models)
  • telnet access to your TV
  • very basic knowledge of Linux operating system
  • binary file editor (Hexedit, Flexhex or similar)

Optional things:

  • ex-link cable + terminal with RS232C port (for recovery purposes)
  • compilation toolchain environment
  • FTP server running on your TV (or you can copy binary files using pendrive)


To be continued soon...

Under construction.

Meanwhile, take a look at this discussion.

--Geo650 21:31, 3 May 2010 (UTC)