Embedding/IPCLiteAPI BeagleBoard: Difference between revisions

no edit summary
No edit summary
No edit summary
 
(15 intermediate revisions by the same user not shown)
Line 1: Line 1:
# Basic Setup and minimal dependencies for toolkit-X-less Gecko build
# based on instructions from https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/FirefoxCrossCompile
<pre>
<pre>
# based on instructions from https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/FirefoxCrossCompile
# Prepare multiarch chroot
# Prepare multiarch chroot


sudo debootstrap --variant=buildd oneiric /home/oneiric
export CHROOTPATH=/home/oneiric
sudo chroot /home/oneiric/
sudo debootstrap --variant=buildd oneiric $CHROOTPATH
sudo cp -f /etc/apt/apt.conf $CHROOTPATH/etc/apt/
sudo cp -f /etc/resolv.conf $CHROOTPATH/etc/
sudo chroot $CHROOTPATH
echo "mount -t proc proc /proc" >> /root/.bashrc
mount -t proc proc /proc
mount -t proc proc /proc
apt-get update
apt-get install vim bash-completion


#Set up the /etc/apt/sources.list inside the chroot :
#Set up the /etc/apt/sources.list inside the chroot :


echo "# use arch=amd64 if you have 32bit Linux install
echo "# use arch=amd64 if you have 32bit Linux install
deb [arch=i386] http://archive.ubuntu.com/ubuntu oneiric main universe
deb [arch=i386] http://archive.ubuntu.com/ubuntu oneiric main universe multiverse
deb [arch=armel] http://ports.ubuntu.com/ubuntu-ports oneiric main universe
deb [arch=armel] http://ports.ubuntu.com/ubuntu-ports oneiric main universe multiverse
#deb [arch=armel] http://ports.ubuntu.com/ubuntu-ports/ oneiric-updates main universe multiverse
#deb [arch=armel] http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu oneiric main
#deb [arch=armel] http://ppa.launchpad.net/linaro-maintainers/staging-overlay/ubuntu oneiric main
deb-src http://ppa.launchpad.net/linaro-maintainers/overlay/ubuntu oneiric main
deb-src http://ppa.launchpad.net/linaro-maintainers/staging-overlay/ubuntu oneiric main
deb-src http://archive.ubuntu.com/ubuntu oneiric main universe" > /etc/apt/sources.list
deb-src http://archive.ubuntu.com/ubuntu oneiric main universe" > /etc/apt/sources.list


Line 38: Line 44:


apt-get update
apt-get update
apt-get install g++-arm-linux-gnueabi build-essential pkg-config unzip zip autoconf2.13 libglib2.0-dev
apt-get install vim bash-completion
 
apt-get install g++-arm-linux-gnueabi build-essential pkg-config unzip zip autoconf2.13
# Install main Mozilla Qt port dependencies
apt-get install libqt4-dev:armel libqt4-opengl-dev:armel libpango1.0-dev:armel libdbus-glib-1-dev:armel libasound2-dev:armel libxt-dev:armel mesa-common-dev:armel


# Finally, we need to create a symlink for pkg-config:
# Finally, we need to create a symlink for pkg-config:
Line 47: Line 51:
cd /usr/bin
cd /usr/bin
ln -s /usr/share/pkg-config-crosswrapper arm-linux-gnueabi-pkg-config
ln -s /usr/share/pkg-config-crosswrapper arm-linux-gnueabi-pkg-config
</pre>
Prepare Mozilla source tree with Embedding IPC patches and HONK (plain linux port)
Clone mozilla repository + patch queue (for IPC Embedding), better to create some folder like /build
<pre>
mkdir /build
cd /build
hg clone http://hg.mozilla.org/mozilla-central
cd mozilla-central
hg clone http://hg.mozilla.org/users/romaxa_gmail.com/embedipc_queue .hg/patches
hg update `cat .hg/patches/changeset`
hg qpush -a
</pre>
Mozilla toolkit-Xlib-less HONK port, b2g, for rendering into Framebuffer
<pre>
# Install main Mozilla B2G Honk port base dependencies
apt-get install libfreetype6-dev:armel libfontconfig1-dev:armel libasound-dev:armel libudev-dev:armel
# X deps (only for X build)
apt-get install libasound2-dev:armel libxt-dev:armel libxext-dev:armel libxrender-dev:armel
# This part is basically enough to build honk (plain linux gecko port ab be able to run it on Framebuffer or SGX EGL fb context)
cd mozilla-central
MOZCONFIG=$(pwd)/.hg/patches/mozconfig.cross.oneiric-honk make -f client.mk build_all
To launch b2g clone and copy https://github.com/andreasgal/gaia to your local PC apache /var/www folder or put it into device /var/www folder
Copy b2g stub to device
cp -rfL obj-build-linaro-honk/dist/bin ./b2g-build
arm-linux-gnueabi-strip ./b2g-build/*
scp -r ./b2g-build/ root@device-ip:/opt
on device:
cd /opt/b2g-build
B2G_HOMESCREEN=http://server[local-server]/gaia/homescreen.html ./b2g
</pre>
Qt build with X
<pre>
# Install main Mozilla Qt port dependencies
apt-get install libqt4-dev:armel libqt4-opengl-dev:armel libpango1.0-dev:armel libdbus-glib-1-dev:armel libasound2-dev:armel libxt-dev:armel mesa-common-dev:armel
# make sure that required build libraries are still in the system
apt-get install pkg-config unzip zip autoconf2.13 libglib2.0-dev


# XXX Minor trick in order to get host version of qt moc/rcc
# XXX Minor trick in order to get host version of qt moc/rcc
Line 62: Line 115:
cp /tmp/rcc /usr/bin/rcc
cp /tmp/rcc /usr/bin/rcc
cp /tmp/uic-qt4 /usr/bin/uic-qt4
cp /tmp/uic-qt4 /usr/bin/uic-qt4
# Clone mozilla repository + patch queue (for IPC Embedding), better to create some folder like /build
mkdir /build
cd /build
hg clone http://hg.mozilla.org/users/romaxa_gmail.com/mozilla_ipcembed
cd mozilla_ipcembed
hg clone http://hg.mozilla.org/users/romaxa_gmail.com/embedipc_queue .hg/patches
hg update -C embedipc
hg qpush -a


# Create mozconfig
# Create mozconfig
Line 95: Line 138:
LDFLAGS="$FIX_LINK_LDFLAGS"
LDFLAGS="$FIX_LINK_LDFLAGS"


ac_add_options --build=i686-linux-gnu
ac_add_options --target=arm-linux-gnueabi
ac_add_options --host=arm-linux-gnueabi
ac_add_options --prefix=/usr
ac_add_options --prefix=/usr
ac_add_options --enable-application=mobile
ac_add_options --enable-application=mobile
Line 125: Line 167:
ac_add_options --with-system-zlib
ac_add_options --with-system-zlib
ac_add_options --enable-force-egl
ac_add_options --enable-force-egl
ac_add_options --with-gl-provider=EGL


#ac_add_options --enable-debug
#ac_add_options --enable-debug
Confirmed users
180

edits