← Back to team overview

ubuntu-phone team mailing list archive

Re: How to build Ubuntu Touch for Nexus 4

 

Hi David,

thanks, that's a lot better. I don't know where the difference comes from, but now I don't get the error about a missing spec file anymore.

I wonder about the extracting of the binary files.

The "building" wiki pages mentions that they should be taken from a CM image. I tried to run the script with an attached unlocked Nexus 4 with Android 4.3 installed (no CM). In that case I got some "...does not exit" error messages and the access to /data on the Nexus was completely impossible. So is it required to first install CM on the device so that porting Ubuntu Touch also requires an existing CM port?

Regards,
Mathias

Am 18.03.14 06:27, schrieb David Peter:
Hi

I just did it from scratch. You'll find all my commands preceded by the
link where I found the info (except maybe the croot command which I
found on the CM wiki, This command is in the package of envsetup.sh).

I did not do the extract-file.sh as I do not have a N4, and it will fail
the build otherwise.

Good point about the JDK, it's just due to the Android part. Hopefully
it won't last long.

Maybe my method is old school. Or you could remark that the manifest get
some prebuilt package, but where do they comefrom? I don't know... So I
found yesterday response from F69M to the post "Porting Guide" very
intereting and I should give attention to it.


Here is my method, and this is all I know on this subject, good luck:

https://wiki.ubuntu.com/Touch/Building

$ 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 tofrodos \

python-markdown libxml2-utils xsltproc zlib1g-dev:i386 schedtool

$ sudo apt-get install openjdk-6-jdk


https://wiki.ubuntu.com/Touch/Install#Step_1_-_Desktop_Setup

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

$ sudo apt-get update

$ sudo apt-get install ubuntu-device-flash


http://source.android.com/source/initializing.html#ccache

|$ ||export USE_CCACHE=1|


http://source.android.com/source/downloading.html#installing-repo

|$ ||mkdir ~/bin|

|$ ||PATH=~/bin:$PATH|

$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo >
~/bin/repo

$ chmod a+x ~/bin/repo

$ git config --global user.email "you@xxxxxxxxxxx <mailto:you@xxxxxxxxxxx>"

$ git config --global user.name <http://user.name> "Your Name"


https://wiki.ubuntu.com/Touch/AndroidDevel

$ mkdir -p /path/to/phablet; cd /path/to/phablet

$ repo init -u git://phablet.ubuntu.com/CyanogenMod/android.git
<http://phablet.ubuntu.com/CyanogenMod/android.git> -b phablet-trusty

$ repo sync -j 8


https://wiki.ubuntu.com/Touch/Porting &
https://wiki.ubuntu.com/Touch/Building

$ . build/envsetup.sh

$ breakfast [codename]

$ repo sync

*$ adb devices*

/*<your device appears here>*/

*$ cd device/[manufacturer]/[codename]*

*$ ./extract-files.sh*

$ croot

$ brunch [codename]





On Mon, Mar 17, 2014 at 10:53 AM, Mathias Bauer <mathias_bauer@xxxxxxx
<mailto:mathias_bauer@xxxxxxx>> wrote:

    Hi David,

    After getting the repositories as described in
    https://wiki.ubuntu.com/Touch/__AndroidDevel
    <https://wiki.ubuntu.com/Touch/AndroidDevel> (saucy replaced by
    trusty) I still have no folder called devices/lge/mako. Basically it
    looks the same as after calling "phable-dev-bootstrap".

    Calling "breakfast mako" then complains that it can't find device
    mako and fetches a device repository from phablet.ubuntu.com
    <http://phablet.ubuntu.com>. After that I have a folder
    device/lge/mako. But breakfast at the end still is complaining that
    it does not have a product spec "cm_mako."

    Calling "breakfast mako" again yields the same error "device mako
    not found", it again tries to fetch the device repository, but
    detects that it already has one. Nevertheless, is still misses the
    spec "cm_mako".

    "breakfast" also complains about missing jdk6. I thought that no
    Java bits are needed to build Ubuntu Touch (as the build
    instructions tell), so I'm again a bit confused - now I don't know
    if "breakfast" did all what it needed to do before the next can be
    started.

    At least cm_mako obviously is needed for the build, so it can't go
    on here.

    Any help would be very welcome.

    Regards,
    Mathias

    Am 13.03.14 23:24, schrieb David Peter:

        You're right, I had couple of trouble here too.
        In fact there is a clue in the Ubuntu porting guide:
        " You can check out the source code using the repo and git tools
        already
        familiar to Android ROM developers, as described here

        https <https://wiki.ubuntu.com/__Touch/AndroidDevel
        <https://wiki.ubuntu.com/Touch/AndroidDevel>>://
        <https://wiki.ubuntu.com/__Touch/AndroidDevel
        <https://wiki.ubuntu.com/Touch/AndroidDevel>>wiki.__ubuntu.com
        <http://wiki.ubuntu.com>
        <https://wiki.ubuntu.com/__Touch/AndroidDevel
        <https://wiki.ubuntu.com/Touch/AndroidDevel>>/Touch/
        <https://wiki.ubuntu.com/__Touch/AndroidDevel
        <https://wiki.ubuntu.com/Touch/AndroidDevel>>__AndroidDevel

        <https://wiki.ubuntu.com/__Touch/AndroidDevel
        <https://wiki.ubuntu.com/Touch/AndroidDevel>>
        "
        Go to this link and follow the direct checkout section. Replace
        saucy
        repo with trusty.

        Once done proceed like the CM guide, it should be steps like (I
        don't
        remember exactly):
        source ./build/setenv...
        breakfast mako
        extract binaries
        brunch mako

        Good luck

        On Mar 13, 2014 8:22 AM, "Mathias Bauer" <mathias_bauer@xxxxxxx
        <mailto:mathias_bauer@xxxxxxx>
        <mailto:mathias_bauer@xxxxxxx <mailto:mathias_bauer@xxxxxxx>>__>
        wrote:

             Hi David,

             please correct me if I'm wrong, this surely helps to
        understand the
             build process better, but it does not give me the sources
        to build
             Ubuntu Touch. As I understood, the phablet-dev-bootstrap
        tool is
             meant to provide a source tree that is based on the CyanogenMod
             sources, but reduced by everything not needed for Ubuntu Touch
             (Dalvik etc.), extended by stuff that OTOH Ubuntu Touch needs.

             So if I follow the CM instructions, I need a further step
        that turns
             the CM source tree into an Ubuntu Touch source tree.

             Regards,
             Mathias

             Am 12.03.14 21:24, schrieb David Peter:

                 Sergio is right follow the CyanogenMod's way, here it is:
        http://wiki.cyanogenmod.org/w/____Build_for_mako
        <http://wiki.cyanogenmod.org/w/__Build_for_mako>

                 <http://wiki.cyanogenmod.org/__w/Build_for_mako
        <http://wiki.cyanogenmod.org/w/Build_for_mako>>

                 Read it, do it, everything will become very clear


                 On Wed, Mar 12, 2014 at 12:17 PM, Sergio Schvezov
                 <sergio.schvezov@xxxxxxxxxxxxx
        <mailto:sergio.schvezov@xxxxxxxxxxxxx>
                 <mailto:sergio.schvezov@__canonical.com
        <mailto:sergio.schvezov@xxxxxxxxxxxxx>>
                 <mailto:sergio.schvezov@
        <mailto:sergio.schvezov@>__cano__nical.com <http://canonical.com>

                 <mailto:sergio.schvezov@__canonical.com
        <mailto:sergio.schvezov@xxxxxxxxxxxxx>>>>
                 wrote:

                      On Wed, Mar 12, 2014 at 12:30 PM, Mathias Bauer
                      <mathias_bauer@xxxxxxx
        <mailto:mathias_bauer@xxxxxxx> <mailto:mathias_bauer@xxxxxxx
        <mailto:mathias_bauer@xxxxxxx>>
                 <mailto:mathias_bauer@xxxxxxx
        <mailto:mathias_bauer@xxxxxxx> <mailto:mathias_bauer@xxxxxxx
        <mailto:mathias_bauer@xxxxxxx>>__>__>

                 wrote:
                       > Hi,
                       >
                       > I want to build a Ubuntu Touch for Nexus 4 by
        myself as an
                      exercise to start
                       > into the world of Ubuntu Touch porting.
                       >
                       > I tried to follow the instructions found here:
                       >
                       > https://wiki.ubuntu.com/Touch/____Building
        <https://wiki.ubuntu.com/Touch/__Building>

                 <https://wiki.ubuntu.com/__Touch/Building
        <https://wiki.ubuntu.com/Touch/Building>>
                       >
                       > So I got the code by calling
                       >
                       > phablet-dev-bootstrap [target_directory]

                      Can you add '--sources aosp' to that?

                       > After that step the instructions let me think
        that there
                 should
                      be a file
                       >
                       >
        [target_directory]/device/lge/____mako/extract_files.sh

                       >
                       > But there isn't even a "mako" under device/lge
        directory.
                       >
                       > Maybe I misunderstood the instructions, so I
        would be
                 glad to get an
                       > expanation.

                      No misunderstanding; it just hasn't been updated;
        That part
                 of the
                      instructions is outdated (follos CyanogenMod's way
        of doing
                 things).

                      You basically need to follow
        http://source.android.com/____source/building-devices.html#____obtaining-proprietary-__binaries
        <http://source.android.com/__source/building-devices.html#__obtaining-proprietary-binaries>


        <http://source.android.com/__source/building-devices.html#__obtaining-proprietary-binaries
        <http://source.android.com/source/building-devices.html#obtaining-proprietary-binaries>__>

                      Thanks for the hint; I'll update the wiki.

                      --
                      Mailing list:
        https://launchpad.net/~ubuntu-____phone
        <https://launchpad.net/~ubuntu-__phone>
                 <https://launchpad.net/~__ubuntu-phone
        <https://launchpad.net/~ubuntu-phone>>
                      Post to     : ubuntu-phone@lists.launchpad.____net
                 <mailto:ubuntu-phone@lists.__launchpad.net
        <mailto:ubuntu-phone@xxxxxxxxxxxxxxxxxxx>>
                      <mailto:ubuntu-phone@lists.
        <mailto:ubuntu-phone@lists.>__l__aunchpad.net <http://launchpad.net>
                 <mailto:ubuntu-phone@lists.__launchpad.net
        <mailto:ubuntu-phone@xxxxxxxxxxxxxxxxxxx>>>
                      Unsubscribe :
        https://launchpad.net/~ubuntu-____phone
        <https://launchpad.net/~ubuntu-__phone>
                 <https://launchpad.net/~__ubuntu-phone
        <https://launchpad.net/~ubuntu-phone>>
                      More help   :
        https://help.launchpad.net/____ListHelp
        <https://help.launchpad.net/__ListHelp>
                 <https://help.launchpad.net/__ListHelp
        <https://help.launchpad.net/ListHelp>>





             --
             Mailing list: https://launchpad.net/~ubuntu-____phone
        <https://launchpad.net/~ubuntu-__phone>
             <https://launchpad.net/~__ubuntu-phone
        <https://launchpad.net/~ubuntu-phone>>
             Post to     : ubuntu-phone@lists.launchpad.____net
             <mailto:ubuntu-phone@lists.__launchpad.net
        <mailto:ubuntu-phone@xxxxxxxxxxxxxxxxxxx>>
             Unsubscribe : https://launchpad.net/~ubuntu-____phone
        <https://launchpad.net/~ubuntu-__phone>
             <https://launchpad.net/~__ubuntu-phone
        <https://launchpad.net/~ubuntu-phone>>
             More help   : https://help.launchpad.net/____ListHelp
        <https://help.launchpad.net/__ListHelp>
             <https://help.launchpad.net/__ListHelp
        <https://help.launchpad.net/ListHelp>>






Follow ups

References