Embedding/IPCLiteAPI BeagleBoard: Difference between revisions

Jump to navigation Jump to search
no edit summary
(Linaro oneiric multiarch cross compile mozilla qt instructions)
No edit summary
 
(16 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
 
# Finally, we need to create a symlink for pkg-config:
 
cd /usr/bin
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
# 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
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 57: 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 90: 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 120: 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

Navigation menu