| Hacking on phonesim |
| ******************* |
| |
| phonesim is a soft modem that eliminates the need to have an actual AT |
| modem connected to the system for testing and developing Ofono. |
| |
| |
| Build tools requirements |
| ======================== |
| |
| When building and testing directly from the repository it is important to |
| have at least automake version 1.10 or later installed. All modern |
| distributions should default to the latest version, but it seems that |
| Debian's default is still an earlier version: |
| |
| Check version |
| # dpkg -l '*automake*' |
| |
| Install new version |
| # apt-get install automake1.10 |
| # update-alternatives --config automake |
| |
| QT development libraries (libqt4-dev) are also required for building |
| phonesim. It is recommended to install the QT 4 development tools package |
| (qt4-dev-tools) as an alternative if available with your distribution. |
| |
| |
| Working with the source code repository |
| ======================================= |
| |
| The repository contains two extra scripts that accomplish the bootstrap |
| process. One is called "bootstrap" which is the basic scripts that uses the |
| autotools scripts to create the needed files for building and installing. |
| It makes sure to call the right programs depending on the usage of shared or |
| static libraries or translations etc. |
| |
| The second program is called "bootstrap-configure". This program will make |
| sure to properly clean the repository, call the "bootstrap" script and then |
| call configure with proper settings for development. It will use the best |
| options and pass them over to configure. These options normally include |
| the enabling the maintainer mode and the debugging features. |
| |
| So while in a normal source project the call "./configure ..." is used to |
| configure the project with its settings like prefix and extra options. In |
| case of bare repositories call "./bootstrap-configure" and it will bootstrap |
| the repository and calls configure with all the correct options to make |
| development easier. |
| |
| In case of preparing for a release with "make distcheck", don't use |
| bootstrap-configure since it could export development specific settings. |
| |
| So the normal steps to checkout, build and install such a repository is |
| like this: |
| |
| Checkout repository |
| # git clone git://git.kernel.org/pub/scm/network/ofono/phonesim.git |
| # cd phonesim |
| |
| Configure and build |
| # ./bootstrap-configure |
| # make |
| |
| Check installation |
| # make install DESTDIR=$PWD/x |
| # find x |
| # rm -rf x |
| |
| Check distribution |
| # make distcheck |
| |
| Final installation |
| # sudo make install |
| |
| Remove autogenerated files |
| # make maintainer-clean |
| |
| |
| Running from within the source code repository |
| ============================================== |
| |
| When using "./configure --enable-maintainer-mode" the automake scripts will |
| use the plugins directly from within the repository. This removes the need |
| to use "make install" when testing "phonesim". The "bootstrap-configure" |
| automatically includes this option. |
| |
| Run phonesim in foreground using the following options |
| # ./src/phonesim -p 12345 -gui src/default.xml |
| |
| Check your modem.conf file and enable the phonesim configuration before |
| executing the above command. Argument -p should be followed by the proper |
| port number, in case you have changed the default "12345". Argument -gui |
| will launch the gui once the modem is enabled. |
| |
| To enable the modem, make sure the ofono daemon is running and execute the |
| enable-modem script with /phonesim argument (default defined in modem.conf, |
| change if changes to that section has been made). The AT chat can then |
| be seen in the GUI window. Running the script disable-modem with /phonesim |
| argument will turn off the soft modem. |
| |
| The default.xml can be tweaked further to include additional AT-Commands and |
| supposed responses from the soft modem. |
| |
| For production installations or distribution packaging it is important that |
| the "--enable-maintainer-mode" option is NOT used. |