galaxysl
Contents
|
This page documents the steps and current status of the porting effort of Ubuntu to the Samsung Galaxy SL (i9003) device.
Environment setup
Install the build tools:
sudo apt-get install git gnupg flex bison gperf build-essential \ zip bzr curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 ubuntu-dev-tools tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 schedtool bsdiff
Install the Java 6 JDK to build Android itself (the Java 7 SDK will not work)
sudo apt-get install openjdk-6-jdk
Install the phablet tools, which include repo to sync Android git repositories
sudo add-apt-repository ppa:phablet-team/tools
Alternatively, you can also install the repo tool manually
Building Android for Ubuntu
Initialise the Ubuntu CyanogenMod 10.1 Android repository
repo init -u git://phablet.ubuntu.com/CyanogenMod/android.git -b phablet-saucy
Sync the repository. Note: this step will download several GBs worth of code and can take quite long
repo sync -j 8
Create a local manifest folder
mkdir .repo/local_manifests
Create the local manifest for the galaxysl device
echo '<?xml version="1.0" encoding="UTF-8"?> <manifest> <project name="dplanella/android_device_samsung_galaxysl" path="device/samsung/galaxysl" remote="github" revision="cm-10.1-ubuntu" /> <project name="dhiru1602/android_vendor_samsung_galaxysl" path="vendor/samsung/galaxysl" remote="github" revision="cm-10.1" /> <project name="dplanella/android_kernel_samsung_latona" path="kernel/samsung/latona" remote="github" revision="cm-10.1-ubuntu" /> <project name="CyanogenMod/android_external_bluetooth_bluedroid" path="external/bluetooth" remote="github" revision="cm-10.1" /> </manifest>' > .repo/local_manifests/roomservice.xml
Sync the new repositories added to the local manifest
repo sync -j 8
- FIXME (needs to be done automatically) - copy the external/bluetooth directory from upstream. It can be added as a dependency from the device repository (at device/samsung/galaxysl, check for cm.dependencies). Alternatively, find out what depends on Bluetooth and remove the dependency if possible, as we're using bluez.
Add additional directories to build by including this snippet in build/core/main.mk, after the subdirs := lines
ifeq ($(TARGET_PRODUCT), cm_galaxysl) subdirs += \ external/wpa_supplicant_8_ti \ external/bluetooth \ libnativehelper endif
Set up the build environment
. build/envsetup.sh
Build the image
brunch galaxysl
Output
Currently the build fails with:
/home/dpm/dev/phablet/hardware/ti/wlan/mac80211/compat_wl12xx/drivers/net/wireless/wl12xx/debugfs.c:35:21: fatal error: version.h: No such file or directory
Building Android for CyanogenMod 10.1
This step is optional and only included here to test that the upstream build works. At the end of these steps, you'll end up with a CyanogenMod 10.1 image for the Samsung Galaxy SL (i9003).
Initialise the CyanogenMod 10.1 Android repository
repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
Sync the repository. Note: this step will download several GBs worth of code and can take quite long
repo sync -j 8
Create a local manifest folder
mkdir .repo/local_manifests
Create the local manifest for the galaxysl device
echo '<?xml version="1.0" encoding="UTF-8"?> <manifest> <project name="dhiru1602/android_device_samsung_galaxysl" path="device/samsung/galaxysl" remote="github" revision="cm-10.1" /> <project name="dhiru1602/android_vendor_samsung_galaxysl" path="vendor/samsung/galaxysl" remote="github" revision="cm-10.1" /> <project name="dhiru1602/android_kernel_samsung_latona" path="kernel/samsung/latona" remote="github" revision="cm-10.1" /> <project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-10.1" /> </manifest>' > .repo/local_manifests/roomservice.xml
Sync the new repositories added to the local manifest
repo sync -j 8
Manually download some required pre-built packages
sh vendor/cm/get-prebuilts
Set up the build environment
. build/envsetup.sh
Build the image
brunch galaxysl