galaxysl

Revision 14 as of 2013-11-13 12:08:10

Clear message

This page documents the steps and current status of the porting effort of Ubuntu to the Samsung Galaxy SL (i9003) device.

Environment setup

  1. 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
  2. Install the Java 6 JDK to build Android itself (the Java 7 SDK will not work)

    sudo apt-get install openjdk-6-jdk
  3. Install the phablet tools, which include repo to sync Android git repositories

    sudo add-apt-repository ppa:phablet-team/tools

Building Android for Ubuntu

  1. Initialise the Ubuntu CyanogenMod 10.1 Android repository

    repo init -u git://phablet.ubuntu.com/CyanogenMod/android.git -b phablet-saucy
  2. Sync the repository. Note: this step will download several GBs worth of code and can take quite long

    repo sync -j 8
  3. Create a local manifest folder

    mkdir .repo/local_manifests
  4. 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 
  5. Sync the new repositories added to the local manifest

    repo sync -j 8
  6. 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.
  7. 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
  8. Set up the build environment

    . build/envsetup.sh
  9. 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).

  1. Initialise the CyanogenMod 10.1 Android repository

    repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1
  2. Sync the repository. Note: this step will download several GBs worth of code and can take quite long

    repo sync -j 8
  3. Create a local manifest folder

    mkdir .repo/local_manifests
  4. 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
  5. Sync the new repositories added to the local manifest

    repo sync -j 8
  6. Manually download some required pre-built packages

    sh vendor/cm/get-prebuilts
  7. Set up the build environment

    . build/envsetup.sh
  8. Build the image

    brunch galaxysl

Output