[UNOFFICIAL][I9500][UBUNTU TOUCH][CM 10.1][GT-I9500][Develop][20140315v1]

Search This thread

montolla

Senior Member
Feb 29, 2012
129
13
36
Medellin
[UNOFFICIAL][I9500][UBUNTU TOUCH][CM 10.1][GT-I9500][Develop][20140315v1]

Started at March 15th 2014
Last update April 4th 2014


** Ubuntu Touch **
** Based on CyanogenMod 10.1 **
** For Samsung Galaxy s4 **
** GT-I9500 **


url
ubuntu-lead-1.jpg


About Project

This project was created for build, develop and deploy Ubuntu Touch on Samsung Galaxy S4 GT-I9500.
Currently, there are other versions of S4 like quadcore based or specific region are officialy supported by CyanogenMod Team and some ones has Ubuntu Touch preview ready.
I used lubuntu 13.10 x64 to build the initial AOSP.

Objetives

Get source of Ubuntu Touch.
Get sources and documentation for I9500.
Get successful build of Ubuntu touch.
Get Ubuntu Touch running on I9500.
Get Ubuntu Touch successful working on I9500.
Make new applications for Ubuntu Touch.
Waiting for new release.

@TODO

To clone all git-hub repositories for i9500 device, hardware and kernel.
To create a new CM-10.2 Branch on all of them.
To Try again wiht the new cloned CM-10.2 Repositories.



@Observations

Into the device repository, There are some files about repository depends for i9500, How to compile for samsung specific "vendedor", and how to extract the property binaries and where they are.

Prepare the Build Environment

Package requirements
Code:
$ sudo add-apt-repository ppa:phablet-team/tools
Code:
$ sudo apt-get update && apt-get -y install bison build-essential curl flex git-core gnupg gperf libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-6-jdk openjdk-6-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev phablet-tools android-tools-adb android-tools-fastboot nano curl ubuntu-dev-tools

Editing .bashrc

Code:
$ nano ~/.bashrc
Adding global variables
HTML:
export PATH=${PATH}:~/
export USE_CCACHE=1
export CCACHE_DIR=~/ccache
export OUT_DIR_COMMON_BASE=~/out
export PATH=$PATH:~/bin

Save it

Code:
[Control][O] and press enter to confirm.
Apply them
Code:
$ mkdir ~/ccache
$ mkdir ~/out
$ mkdir ~/bin
$ sh ~/.bashrc

Getting the Repositories

Be sure to be on your home directory
Code:
$ cd ~
Initialize the repo and main git
Code:
$ repo init -u git://phablet.ubuntu.com/CyanogenMod/android.git -b phablet-10.1

On error use this and run las command egain
Code:
$ git config --global user.name "montolla"
$ git config --global user.email "montolla@montolla.tk"

Editing

Code:
$ nano .repo/manifests/default.xml

Edit the main repository
Find all entrys with Path="device andremove them
HTML:
<!--
  <project path="device/common" name="CyanogenMod/android_device_common" />
  <project path="device/generic/armv7-a-neon" name="CyanogenMod/android_device_generic_armv7-a-neon" />
  <project path="device/generic/armv7-a" name="CyanogenMod/android_device_generic_armv7-a" />
  <project path="device/generic/common" name="CyanogenMod/android_device_generic_common" />
  <project path="device/generic/goldfish" name="CyanogenMod/android_device_generic_goldfish" />
  <project path="device/generic/mips" name="CyanogenMod/android_device_generic_mips" />
  <project path="device/generic/x86" name="CyanogenMod/android_device_generic_x86" />
  <project path="device/sample" name="CyanogenMod/android_device_sample" groups="device" />
  <project path="device/ti/panda" name="CyanogenMod/android_device_ti_panda" groups="device" />
-->
In nano you can find with [control][w] type device and press enter, then egain
[control][w] enter and nano will find the next result.
Put between end of file and before </manifest> tag

HTML:
<!--
  i9500
-->
  <project name="CyanogenMod/android_kernel_samsung_jf" path="kernel/samsung/i9500" remote="github" revision="cm-10.1" />
  <project name="CyanogenMod/android_kernel_samsung_exynos5410" path="kernel/samsung/exynos5410" remote="github" revision="cm-11.0" />
  <project name="CyanogenMod/android_hardware_samsung_slsi_exynos5410" path="hardware/samsung_slsi/exynos5410" remote="github" revision="cm-11.0" />
  <project name="CyanogenMod/android_hardware_samsung_slsi_exynos" path="hardware/samsung_slsi/exynos" remote="github" revision="cm-11.0" />
  <project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github"  revision="cm-11.0" />
  <project name="CyanogenMod/android_hardware_samsung_slsi_exynos5-insignal" path="hardware/samsung_slsi/exynos5-insignal" remote="github"  revision="cm-11.0" />
  <project name="CyanogenMod/android_hardware_samsung_slsi_openmax" path="hardware/samsung_slsi/openmax" remote="github"  revision="cm-11.0" />
  <project name="CyanogenMod/android_device_samsung_i9500" path="device/samsung/i9500" remote="github"  revision="cm-11.0" />
  <project name="CyanogenMod/android_device_samsung_jfltetmo" path="device/samsung/jfltetmo" remote="github"   revision="cm-11.0" />
  <project name="CyanogenMod/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github"   revision="cm-11.0" />
  <project name="CyanogenMod/android_device_samsung_msm8960-common" path="device/samsung/msm8960-common" remote="github"   revision="cm-11.0" />
  <project name="CyanogenMod/android_device_samsung_jf-common" path="device/samsung/jf-common" remote="github"   revision="cm-11.0" />
  <project name="CyanogenMod/android_kernel_samsung_jf" path="kernel/samsung/jf" remote="github"   revision="cm-11.0" />
 <!--
  i9500
-->

Save it

Code:
[Control][O] and press enter to confirm.

Update the main repository with the new gits

Code:
$ repo init -m default.xml

Now lets start syncing all

Code:
$ repo sync
If you was done something wrong you can remove all entire repo folder and start again
Code:
$ rm -Rf .repo
But that just will delete the repo folder, not the source code, so if run repo sync again will be much more faster.
Code:
$ repo sync
Building

Applying patches
Code:
$ repo start ubuntu-touch device/samsung/i9500 ubuntu/uchroot
Check if device is connected and ready
Code:
$ adb devices
Getting some files from current devices (3 files for me)
Code:
$ cd ~/vendor/cm
$ ./get-prebuilts
$ cd ~
Start the process
Code:
$ chmod 777 ~
$ repo selfupdate
$ source build/envsetup.sh
$ breakfast i9500
$ cd device/samsung/i9500
$ ./extract-files.sh
$ croot
$ brunch i9500
Wait while build finish
There could be errors about low memory or no left space on disk.
You can fix/prevent that increasing your swap area, running a low graphics desktop enviroment (lxde) and use ccache component activated (I think it is already activated and setting up).



Documentation


http://wiki.cyanogenmod.org/w/I9500_Info
https://github.com/f69m/ubuntu-touch-tf300t/wiki/Build-Ubuntu-Touch-for-ASUS-Transformer-TF300T
http://wiki.cyanogenmod.org/w/Build_for_i9500


ubuntu_phone_ad_by_ubumachine-d5sg1xa-300x156.png
 
Last edited:

AmmVid

Senior Member
Jul 8, 2013
167
16
Just wanna say thanks for doing this!

Sent from my GT-I9500 using XDA Premium 4 mobile app
 

montolla

Senior Member
Feb 29, 2012
129
13
36
Medellin
Just wanna say thanks for doing this!

Sent from my GT-I9500 using XDA Premium 4 mobile app

Hello

You welcome.


So lets start.

I have a question about.


I found that ubuntu touch is for CM 10.1 but I just found an old git for cm 10.2 and advance work git for 11.0.

So there are problem using ptablet_10.1 with cm11.0 tree?


And I was searching on internet about fastboot mode for i9500 and found nothing about.


The bootloader mode says "odin mode" at top of the screen and adb or fastboot are able to detect it.

I used lscpi and no device listed, but on android booting and working, adb detect perfectly the device.


So am I need a driver for "odin mode" to be able to flash it?


I will in touch at working week, because I just can work on it at night.


I try once on my brother windows pc with odin and that app was able to detect the device on bootloader mode but I need to install some drivers from sdk folder.


Regards

Thanks
 

Arch9

Senior Member
Dec 26, 2012
421
195
Jakarta
Hello

You welcome.


So lets start.

I have a question about.


I found that ubuntu touch is for CM 10.1 but I just found an old git for cm 10.2 and advance work git for 11.0.

So there are problem using ptablet_10.1 with cm11.0 tree?


And I was searching on internet about fastboot mode for i9500 and found nothing about.


The bootloader mode says "odin mode" at top of the screen and adb or fastboot are able to detect it.

I used lscpi and no device listed, but on android booting and working, adb detect perfectly the device.


So am I need a driver for "odin mode" to be able to flash it?


I will in touch at working week, because I just can work on it at night.


I try once on my brother windows pc with odin and that app was able to detect the device on bootloader mode but I need to install some drivers from sdk folder.


Regards

Thanks

You should ask it to i9500 dev @Alberto96 or @Grarak , and btw maybe this will help http://xdaforums.com/showthread.php?t=2402631

Hello


I was found this:

http://www.ubuntu-mobile.de/topic/124-ubuntu-touch-für-galaxy-s4/

On the title tags says "i9500/i9505".
So may that "von.zip" could work or give us an idea of the final product.


Regards

Thanks

I think thats not for i9500



Sent from my GT-P3100 using Tapatalk
 
Last edited:

tembares

Senior Member
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Devices
S/\MSUNG Galaxy S4 (GT-I9505)
S/\MSUNG Note 8.0 (GT-N5110)
_________________________________________________
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

In your sign you refer you have an i9505. This is for the i9500! The difference is the processor. Make sure you use the right one.
AFAIK there is already a build for the i9505.
 

montolla

Senior Member
Feb 29, 2012
129
13
36
Medellin
Yeah, I know. Thanks, but no thanks. I need this since I'm also working on Ubuntu Touch. Please don't interact if you have no relevant thing to say. Getting pissed of this.

Hello

I'm sorry.

I now understand that I need to learn very well how to build CM for I9500 ferst to try to do this.

I will start today.

thanks
 

Top Liked Posts

  • There are no posts matching your filters.
  • 8
    [UNOFFICIAL][I9500][UBUNTU TOUCH][CM 10.1][GT-I9500][Develop][20140315v1]

    Started at March 15th 2014
    Last update April 4th 2014


    ** Ubuntu Touch **
    ** Based on CyanogenMod 10.1 **
    ** For Samsung Galaxy s4 **
    ** GT-I9500 **


    url
    ubuntu-lead-1.jpg


    About Project

    This project was created for build, develop and deploy Ubuntu Touch on Samsung Galaxy S4 GT-I9500.
    Currently, there are other versions of S4 like quadcore based or specific region are officialy supported by CyanogenMod Team and some ones has Ubuntu Touch preview ready.
    I used lubuntu 13.10 x64 to build the initial AOSP.

    Objetives

    Get source of Ubuntu Touch.
    Get sources and documentation for I9500.
    Get successful build of Ubuntu touch.
    Get Ubuntu Touch running on I9500.
    Get Ubuntu Touch successful working on I9500.
    Make new applications for Ubuntu Touch.
    Waiting for new release.

    @TODO

    To clone all git-hub repositories for i9500 device, hardware and kernel.
    To create a new CM-10.2 Branch on all of them.
    To Try again wiht the new cloned CM-10.2 Repositories.



    @Observations

    Into the device repository, There are some files about repository depends for i9500, How to compile for samsung specific "vendedor", and how to extract the property binaries and where they are.

    Prepare the Build Environment

    Package requirements
    Code:
    $ sudo add-apt-repository ppa:phablet-team/tools
    Code:
    $ sudo apt-get update && apt-get -y install bison build-essential curl flex git-core gnupg gperf libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-6-jdk openjdk-6-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev phablet-tools android-tools-adb android-tools-fastboot nano curl ubuntu-dev-tools

    Editing .bashrc

    Code:
    $ nano ~/.bashrc
    Adding global variables
    HTML:
    export PATH=${PATH}:~/
    export USE_CCACHE=1
    export CCACHE_DIR=~/ccache
    export OUT_DIR_COMMON_BASE=~/out
    export PATH=$PATH:~/bin

    Save it

    Code:
    [Control][O] and press enter to confirm.
    Apply them
    Code:
    $ mkdir ~/ccache
    $ mkdir ~/out
    $ mkdir ~/bin
    $ sh ~/.bashrc

    Getting the Repositories

    Be sure to be on your home directory
    Code:
    $ cd ~
    Initialize the repo and main git
    Code:
    $ repo init -u git://phablet.ubuntu.com/CyanogenMod/android.git -b phablet-10.1

    On error use this and run las command egain
    Code:
    $ git config --global user.name "montolla"
    $ git config --global user.email "montolla@montolla.tk"

    Editing

    Code:
    $ nano .repo/manifests/default.xml

    Edit the main repository
    Find all entrys with Path="device andremove them
    HTML:
    <!--
      <project path="device/common" name="CyanogenMod/android_device_common" />
      <project path="device/generic/armv7-a-neon" name="CyanogenMod/android_device_generic_armv7-a-neon" />
      <project path="device/generic/armv7-a" name="CyanogenMod/android_device_generic_armv7-a" />
      <project path="device/generic/common" name="CyanogenMod/android_device_generic_common" />
      <project path="device/generic/goldfish" name="CyanogenMod/android_device_generic_goldfish" />
      <project path="device/generic/mips" name="CyanogenMod/android_device_generic_mips" />
      <project path="device/generic/x86" name="CyanogenMod/android_device_generic_x86" />
      <project path="device/sample" name="CyanogenMod/android_device_sample" groups="device" />
      <project path="device/ti/panda" name="CyanogenMod/android_device_ti_panda" groups="device" />
    -->
    In nano you can find with [control][w] type device and press enter, then egain
    [control][w] enter and nano will find the next result.
    Put between end of file and before </manifest> tag

    HTML:
    <!--
      i9500
    -->
      <project name="CyanogenMod/android_kernel_samsung_jf" path="kernel/samsung/i9500" remote="github" revision="cm-10.1" />
      <project name="CyanogenMod/android_kernel_samsung_exynos5410" path="kernel/samsung/exynos5410" remote="github" revision="cm-11.0" />
      <project name="CyanogenMod/android_hardware_samsung_slsi_exynos5410" path="hardware/samsung_slsi/exynos5410" remote="github" revision="cm-11.0" />
      <project name="CyanogenMod/android_hardware_samsung_slsi_exynos" path="hardware/samsung_slsi/exynos" remote="github" revision="cm-11.0" />
      <project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" remote="github"  revision="cm-11.0" />
      <project name="CyanogenMod/android_hardware_samsung_slsi_exynos5-insignal" path="hardware/samsung_slsi/exynos5-insignal" remote="github"  revision="cm-11.0" />
      <project name="CyanogenMod/android_hardware_samsung_slsi_openmax" path="hardware/samsung_slsi/openmax" remote="github"  revision="cm-11.0" />
      <project name="CyanogenMod/android_device_samsung_i9500" path="device/samsung/i9500" remote="github"  revision="cm-11.0" />
      <project name="CyanogenMod/android_device_samsung_jfltetmo" path="device/samsung/jfltetmo" remote="github"   revision="cm-11.0" />
      <project name="CyanogenMod/android_device_samsung_qcom-common" path="device/samsung/qcom-common" remote="github"   revision="cm-11.0" />
      <project name="CyanogenMod/android_device_samsung_msm8960-common" path="device/samsung/msm8960-common" remote="github"   revision="cm-11.0" />
      <project name="CyanogenMod/android_device_samsung_jf-common" path="device/samsung/jf-common" remote="github"   revision="cm-11.0" />
      <project name="CyanogenMod/android_kernel_samsung_jf" path="kernel/samsung/jf" remote="github"   revision="cm-11.0" />
     <!--
      i9500
    -->

    Save it

    Code:
    [Control][O] and press enter to confirm.

    Update the main repository with the new gits

    Code:
    $ repo init -m default.xml

    Now lets start syncing all

    Code:
    $ repo sync
    If you was done something wrong you can remove all entire repo folder and start again
    Code:
    $ rm -Rf .repo
    But that just will delete the repo folder, not the source code, so if run repo sync again will be much more faster.
    Code:
    $ repo sync
    Building

    Applying patches
    Code:
    $ repo start ubuntu-touch device/samsung/i9500 ubuntu/uchroot
    Check if device is connected and ready
    Code:
    $ adb devices
    Getting some files from current devices (3 files for me)
    Code:
    $ cd ~/vendor/cm
    $ ./get-prebuilts
    $ cd ~
    Start the process
    Code:
    $ chmod 777 ~
    $ repo selfupdate
    $ source build/envsetup.sh
    $ breakfast i9500
    $ cd device/samsung/i9500
    $ ./extract-files.sh
    $ croot
    $ brunch i9500
    Wait while build finish
    There could be errors about low memory or no left space on disk.
    You can fix/prevent that increasing your swap area, running a low graphics desktop enviroment (lxde) and use ccache component activated (I think it is already activated and setting up).



    Documentation


    http://wiki.cyanogenmod.org/w/I9500_Info
    https://github.com/f69m/ubuntu-touch-tf300t/wiki/Build-Ubuntu-Touch-for-ASUS-Transformer-TF300T
    http://wiki.cyanogenmod.org/w/Build_for_i9500


    ubuntu_phone_ad_by_ubumachine-d5sg1xa-300x156.png
    1
    here is the full error message
    any help on this is appreciated

    HTML:
        including vendor/cm/vendorsetup.sh
        vendor/cm/config/common_full.mk:4: ubuntu/assets/UbuntuAssets.mk: No such file or directory
        make: *** No rule to make target `ubuntu/assets/UbuntuAssets.mk'.  Stop.
        Device i9500 not found. Attempting to retrieve device repository from CyanogenMod Github
        Found repository: android_device_samsung_i9500
        Default revision: phablet-10.1
        Checking branch info
        Searching for repository on phablet.ubuntu.com
        Repository not found on phablet.ubuntu.com
        This may likely be an unsupported build target
        Default revision phablet-10.1 not found in android_device_samsung_i9500. Bailing.
        Branches found:
        cm-11.0
        stable/cm-11.0
        Use the ROOMSERVICE_BRANCHES environment variable to specify a list of fallback branches.
        vendor/cm/config/common_full.mk:4: ubuntu/assets/UbuntuAssets.mk: No such file or directory
        make: *** No rule to make target `ubuntu/assets/UbuntuAssets.mk'.  Stop.
         
        ** Don't have a product spec for: 'cm_i9500'
        ** Do you have the right repo manifest?

    Try changing the revision from phablet-10.1 to cm-11.0 in the manifest

    Sent from my GT-I9500 using XDA Premium 4 mobile app
    1
    Is there a working cm-10.1 tree? If so, I can compile it for you people. Hope you remember me from the S4 forum.

    sadly we only have cm10.2 device tree, i'm hoping meizu will release their source or etc for ubuntu os when they release ubuntu os for meizu mx 3 which have very similar hardware to i9500

    UT is using an Android 4.4 base anyway now. I would be very surprised if Cm11 weren't available for the S4.

    Some sources:
    http://news.softpedia.com/news/Cano...-Touch-Based-on-Ubuntu-14-04-LTS-438400.shtml
    https://www.mail-archive.com/ubuntu-phone@lists.launchpad.net/msg06401.html
    https://wiki.ubuntu.com/Touch/Porting (further down)

    EDIT: Oh, and the device in the video is still running a very old build based on Cm10.1. The launcher has heavily changed since then. ;)
    1
    UT is using an Android 4.4 base anyway now. I would be very surprised if Cm11 weren't available for the S4.

    Some sources:
    http://news.softpedia.com/news/Cano...-Touch-Based-on-Ubuntu-14-04-LTS-438400.shtml
    https://www.mail-archive.com/ubuntu-phone@lists.launchpad.net/msg06401.html
    https://wiki.ubuntu.com/Touch/Porting (further down)

    EDIT: Oh, and the device in the video is still running a very old build based on Cm10.1. The launcher has heavily changed since then. ;)
    @a2441918 good news for us :D

    Sent from my GT-I9500 using XDA Premium 4 mobile app