The functionnality (running autodiagnostic, switching leds on during boot up), is now implemented in C++ in naoqi-bin executable.
To have your module loaded at naoqi startup, the syntax of the autoload.ini has changed.
The file is still located in ~/naoqi/preferences/autoload.ini
Note
The systen ‘autoload.ini’ is now in /etc/naoqi/autoload.ini, but your are strongly advised to NOT changed it.
old:
[core]
....
[extra]
....
mymodule
new:
[user]
/full/path/to/libmymodule.so
This way you can put your module where you want, and you do not have to copy/paste the autoload.ini from the system anymore.
You can also start programs (or remote’s modules) using the [program] tag:
[program]
/full/path/to/mymodule
# or
/full/path/to/myfolder/whatever/mymodule
You have the same process to work with python script using [python] tag:
[python]
/full/path/to/mypythonscript.py
# or
/full/path/to/myfolder/whatever/mypythonscript.py
Note for C++ developpers: on linux, the module libraries used to be loaded with RTLD_LAZY, now the modules are loaded with RTLD_NOW.
Thus, if on 1.10 you had unresolved symbols in your module you could crash naoqi, and on 1.12 your module will simply not load, giving an error message looking like:
[ERROR] Could not load library: /home/nao/naoqi/lib/naoqi/libmymodule.so
[ERROR] Error was: Launcher::loadLibrary
Could not load library: "/home/nao/naoqi/lib/naoqi/libmymodule.so"
Error was: /home/nao/naoqi/lib/naoqi/libmymodule.so: undefined symbol:
...
If you don’t know what this means, don’t worry, most of the time you will not be impacted by this change.
Please put your modules in:
~/.local/lib/python2.6
This way there is no need to tweak PYTHONPATH or messing up with sys/.path anymore.
Previously, we had a very confusing situation:
Now: