# SoftBank Robotics documentation What's new in NAOqi 2.8?

# NAOqi Changes

## autolaunch.py is no longer used

The functionnality (running autodiagnostic, switching leds on during boot up), is now implemented in C++ in naoqi-bin executable.

## Loading modules

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.

## Using custom Python libraries in your behaviors

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.

## ALPreferences module

Previously, we had a very confusing situation:

- `writePrefFile("foo")` would write in `.config/naoqi/foo.xml`, but
- `writePrefFile("foo.xml")` would write in `/full/path/to/foo.xnml`

Now:

- `writePrefFile("foo")` will create a file in `~/.config/naoqi/foo.xml`

Glossary Site map Index Support Contact Legal Notices