canmove, Confirmed users
1,584
edits
No edit summary |
|||
(25 intermediate revisions by 12 users not shown) | |||
Line 1: | Line 1: | ||
== Introduction == | |||
These are instructions for building [[Fennec]] for Nokia Maemo using the Scratchbox cross-compilation environment on Linux. | |||
== Maemo 5 (Fremantle) == | |||
We currently use the Maemo 4 SDK for our official Firefox for Maemo 1.x builds, because Maemo 5 is not compatible with the Nokia N800/N810. If you want to build with the Maemo 5 SDK, see the instructions at [[/Fremantle]]. | |||
== Maemo 4 (Chinook) == | |||
<pre> | |||
sudo su | sudo su | ||
echo "deb http://scratchbox.org/debian/ stable main" >> /etc/apt/sources.list | echo "deb http://scratchbox.org/debian/ stable main" >> /etc/apt/sources.list | ||
Line 7: | Line 17: | ||
############## | ############## | ||
# do the section below if on ubuntu 8.04, skip for Ubuntu 7.1. Other OS may also have this problem. If you see a problem when running nsinstall that says something "mmap - permission denied", come back here an try this. | # do the section below if on ubuntu 8.04, skip for Ubuntu 7.1. Other OS may | ||
# also have this problem. If you see a problem when running nsinstall that | |||
# says something "mmap - permission denied", come back here an try this. | |||
# Ubuntu 8.10 sets vm.mmap_min_addr /etc/sysctl.d/10-process-security.conf | |||
# So it is probably better to set the following variables in | |||
# /etc/sysctl.d/40-scratchbox | |||
# and then run 'sudo invoke-rc.d procps restart' | |||
############## | ############## | ||
add the following to /etc/sysctl.conf | # add the following to /etc/sysctl.conf | ||
vm.vdso_enabled = 0 | vm.vdso_enabled = 0 | ||
Line 18: | Line 34: | ||
############## | ############## | ||
# | # Continue from here for all versions of Ubuntu, including 7.10 | ||
############## | ############## | ||
Line 39: | Line 55: | ||
-d cputransp:debian-etch:doctools:maemo3-tools:perl \ | -d cputransp:debian-etch:doctools:maemo3-tools:perl \ | ||
-t /scratchbox/devkits/cputransp/bin/qemu-arm-cvs-m | -t /scratchbox/devkits/cputransp/bin/qemu-arm-cvs-m | ||
sb-conf rootstrap CHINOOK-ARMEL-2007 http://repository.maemo.org/stable/4.0.1/armel/maemo-sdk-rootstrap_4.0.1_armel.tgz | sb-conf rootstrap CHINOOK-ARMEL-2007 \ | ||
http://repository.maemo.org/stable/4.0.1/armel/maemo-sdk-rootstrap_4.0.1_armel.tgz | |||
sb-conf install CHINOOK-ARMEL-2007 -cedFGS | sb-conf install CHINOOK-ARMEL-2007 -cedFGS | ||
sb-conf select CHINOOK-ARMEL-2007 | sb-conf select CHINOOK-ARMEL-2007 | ||
Line 50: | Line 67: | ||
fakeroot echo "deb http://repository.maemo.org/extras-devel chinook free non-free" >> /etc/apt/sources.list | fakeroot echo "deb http://repository.maemo.org/extras-devel chinook free non-free" >> /etc/apt/sources.list | ||
fakeroot echo "deb file:/home/$USER/maemo-sdk-nokia-binaries_4.0.1 chinook explicit" >> /etc/apt/sources.list | fakeroot echo "deb file:/home/$USER/maemo-sdk-nokia-binaries_4.0.1 chinook explicit" >> /etc/apt/sources.list | ||
yes | fakeroot apt-get update | |||
fakeroot apt-get install libgtk2.0-dev libxaw7-dev libfreetype6-dev libxi-dev libhildonmime-dev libosso-dev libidl-dev liblocation-dev libasound2-dev | yes | fakeroot apt-get install \ | ||
libgtk2.0-dev libxaw7-dev libfreetype6-dev libxi-dev \ | |||
libhildonmime-dev libosso-dev libidl-dev liblocation-dev \ | |||
libasound2-dev libhildon1-dev libiw-dev | |||
#these packages are needed as of March 3, 2009 for a plugins fix | |||
yes | fakeroot apt-get install libxdamage-dev libxcomposite-dev | |||
#this package is needed as of May, 2009 for an alerts service feature in toolkit | |||
yes | fakeroot apt-get install libnotify-dev | |||
#this package is needed as of Oct, 2009 for using native hildon file picker in toolkit | |||
yes | fakeroot apt-get install libhildonfm2-dev | |||
#this package is needed as of Nov, 2009 for using conic for auto network connections | |||
yes | fakeroot apt-get install libconic0-dev | |||
#you now need Python 2.4 to build also | |||
yes | fakeroot apt-get install python2.4 | |||
exit | |||
</pre> | |||
Now continue to [[Mobile/Build/Fennec]] to check out and build the Fennec source code. | |||
/ | |||
== Electrolysis == | |||
To build the [[Electrolysis]] branch, see [[Mobile/e10s]]. | |||
== Qt == | |||
Future versions of Maemo will be based primarily on Qt instead of GTK. To build with Qt see [[User:Pjohnsen/MozillaQtBuild]]. | |||
== Notes on 64 Bit Ubuntu Ibex == | |||
Scratchbox contains 32 bit binaries which must be accommodated on a 64 bit system. The easiest way to do this is with a 32 bit chroot. Scratchbox also uses a chroot - so they will be executing 2 deep when the build is done. | |||
Steps 1 through 4 in http://danielkitta.org/howto/maemo-amd64 provide a guide to setting up a 32 bit chroot under ubuntu. Use "hardy" or "intrepid" instead of "dapper" in the instructions in order to have a glibc current enough to run scratchbox. | |||
When that is complete, change to the chroot (linux32 dchroot -c hardy-i386 -d) and you can install scratchbox largely based on the instructions above, with a few modifications: | |||
* change `uname -m` in maemo-scratchbox-install to be `linux32 uname -m` | |||
* in sysctl.conf, instead of vm.vdso_enabled =0 , use abi.vsyscall32 = 0 (do this in the real root, not the chroot), Indeed this is needed for either 32 or 64 bit Ibex. | |||
* make certain binfmt_misc is loaded (modprobe -a binfmt_misc) | |||
* inside chroot make sure /proc is mounted (mount /proc) |