View source for Paroli-developer-setup
From Openmoko
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Return to Paroli-developer-setup.
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page:
Return to Paroli-developer-setup.
This section describes how to set things up to run the latest paroli on your phone, or to develop applications and/or settings modules for paroli.
The general process is to get the latest paroli sources onto your phone. If you are running OM2009, or another distro with paroli already included you can install paroli in a parallel directory.
The recommended approach is to share a filesystem between the FR and your PC. This allows you to run git and to edit files on your PC, rather than on the FR. You can do this in several ways - the two ways described here are:
Once you have a shared filesystem, you'll need to use git to get a copy of the latest paroli sources. If you are looking to develop applications or settings modules for Paroli, you can do them in that source. Once you are done you'll need to rebuild paroli by running build.sh on the FR.
Some simple projects to help learn about Paroli can be found at Paroli-issues#Low_hanging_fruits_to_start_developing_Paroli_with
mkdir ~/myFreerunner
sshfs root@192.168.0.202:/ ~/myFreerunner
sudo apt-get install nfs-kernel-server
The /etc/exports file:
/home/[username]/[path to paroli] 192.168.0.202(rw,sync,no_subtree_check,anonuid=0,anongid=0)
Restart the nfs server:
/etc/init.d/nfs-kernel-server restart
sudo ip address add 192.168.0.200/24 dev usb0
ssh root@192.168.0.202
mkdir /usr/share/nfs-paroli mount -t nfs 192.168.0.200:/home/[username]/[path to paroli] /usr/share/nfs-paroli
cd /usr/share/nfs-paroli/paroli-applications; ./build.sh
cd /usr/share/nfs-paroli/paroli-scripts
Uncomment the line 10 of paroli-scipts/paroli.cfg for testing mode (or comment it for real world mode if you want to call, sms)
Testing mode:
[services] defaults = SIM:Test, SMS:Test, GSM:Test, Audio:Test, Gprs:Test,
Real mode:
[services] #defaults = SIM:Test, SMS:Test, GSM:Test, Audio:Test, Gprs:Test,
./paroli-launcher.sh
Sadly NO. There were a map_static option, but it was removed in nfs-kernel-server. Here is a 5 year old bugreport about this issue: https://bugzilla.redhat.com/show_bug.cgi?id=130261
Certainly. It permits to anybody (on your local network) to be able create files with the remote uid. Root(uid=0) in our freerunner case.
Yepp, this is the alternative to using anongid/anonuid in /etc/exports.
Note: This guide is a bit ugly, and if you have better ideas and eg. document how to do everything non-root, feel free to fill in.
Enlightenment 17 (E17) used by Paroli is a big bunch of code which is not readily packaged to most distributions (largely because no release is declared stable so it's a moving target). One script to help installing E17 is available at omicron, Easy_e17.sh.
Easy_e17 checks out and installs most of E17 automatically, under /opt/e17. If you dislike running random scripts from the web, check the script first before running. You can rerun it with "-u" to update or "-i" to try installing again if for example some dependencies were missing during the first run. If some compilation fails, check out the error message and install needed dependencies. It may get a few iterations of "-i" before you get to the finish without errors, so prepare to spend some time.
Set up your environment to use the installed E17 with something like follows, putting the commands into eg. ~/paroli_environment.sh:
export PATH=${PATH}:/opt/e17/bin export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/e17/lib export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/opt/e17/lib/pkgconfig export PYTHONPATH=${PYTHONPATH}:/usr/local/lib/python2.6/site-packages
Easy_e17 does not seem to install Python bindings E17, but it does download them. By default you can find them in your home directory under ~/e17_src/BINDINGS/python. Those are required for Paroli. Install them with eg. sudo bash; . ~/paroli_environment.sh ; ./build-all.sh /usr/local.
Check out Paroli source code from the git repository as usual.
Paroli seems to require additional D-BUS rule. Type:
cat << EOF | sudo tee /etc/dbus-1/system.d/org.tichy.launcher.conf <?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- --> <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <!-- Only polkituser can own the service --> <policy user="root"> <allow own="org.tichy.launcher"/> </policy> <!-- any user can talk to the service --> <policy context="default"> <allow send_destination="org.tichy.launcher"/> </policy> </busconfig>
[End with Ctrl-D]
Restart D-Bus (or computer) with /etc/init.d/dbus restart. Run build.sh under paroli-applications and then paroli under paroli-scripts.
...XXX getting segmentation fault at the moment at this point, even though Paroli starts running, searching for contacts etc.
In this development phase its more error prone just reflash the phone as updating the paroli .opk package because maybe other bugs are fixed outside of Paroli.
First you need to boot into NAND (where you have already a working distribution and you can ssh into). To be able to manipulate the sd card (you cant manipulate the sd card, if you booted from it).
http://downloads.openmoko.org/distro/unstable/NeoFreerunner/fso-paroli-image-om-gta02.tar.gz http://downloads.openmoko.org/distro/unstable/NeoFreerunner/uImage-2.6.28-stable+gitr0+f19f259d3c1afde8eae53983fd19f61831927413-r2-om-gta02.bin
sudo ip address add 192.168.0.200/24 dev usb0
ssh root@192.168.0.202
umount /media/mmcblk0p2/
mkfs.ext2 /dev/mmcblk0p2
Note: It is better than erasing everything from the sd card. It does not stress your sd card unnecessary. The alternative method would be using rsync. Never figured it out myself the proper steps (using rsync and not formatting the partition)
mount /dev/mmcblk0p2 /media/mmcblk0p2/
cd /media/mmcblk0p2/ gunzip </home/root/fso-paroli-image-om-gta02.tar.gz |tar -xvf -
cd boot cp /home/root/uImage-2.6.28-stable\+gitr0\+f19f259d3c1afde8eae53983fd19f61831927413-r2-om-gta02.bin . ln -s uImage-2.6.28-stable\+gitr0\+f19f259d3c1afde8eae53983fd19f61831927413-r2-om-gta02.bin uImage-GTA02.bin