Porting Ubuntu Touch on Samsung Nexus 10 Tablet



  • Hi All,

    I wanted to install Ubuntu Touch on Nexus 10 device. Fortunately I found that there is no out of the box port available (I always wanted to build from source manually then install). So I started following the instructions given in https://docs.halium.org/en/latest/porting/first-steps.html

    I reached to a point where I am suppose to create new manifest file. I am facing issues in understanding how to create it for my device. I figured that the device repository which is https://github.com/LineageOS/android_device_samsung_manta and downloaded the lineage.dependencies file. In that file I was able to get the path and repository names for the dependencies. But I am not able to figure out what I should enter for variable "remote".

    Currently following is what I have in file halium/devices/manifests/samsung_manta.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <manifest>
    
    <project path="device/samsung/manta" name="android_device_samsung_manta" remote="[remote]" />
    <project path="kernel/samsung/manta" name="android_kernel_samsung_manta" remote="[remote]" />
    <project path="external/stlport" name="android_external_stlport" remote="[remote]" />
    <project path="hardware/samsung_slsi/exynos5" name="android_hardware_samsung_slsi_exynos5" remote="[remote]" />
    
    </manifest>
    

    I need help in putting together this file. Can someone help me with this please. I am using Ubuntu 18.04 OS.

    Thanks,
    Aravind



  • I feel like I should start by saying that there was support for 'manta' (your device) previously, but it became too much overhead and was dropped. The Tegra chipset's drivers just had too many issues. This isn't strictly to discourage you, just to let you know of the history.

    The remote tag specifies where a given repository should be fetched from. Its fetch URL is prepended to the name= attribute of a <project>. So, in this case, you're looking for the los remote, which has a fetch URL of https://github.com/LineageOS. This makes your final URL https://github.com/LineageOS/android_device_samsung_manta.



  • @UniSuperBox Thanks for replying. You mentioned that the support for manta is dropped. Does that mean I cannot download the code and compile and successfully install on Nexus 10. I may need to buy a supported tablet otherwise. I did see other posts here in the forum where some people did try installing on Nexus 10 but failed.



  • What I mean is that a port was done previously, I think using Android 4.2, but that has been dropped. You can still download the code and make a new port.



  • @UniSuperBox said in Porting Ubuntu Touch on Samsung Nexus 10 Tablet:

    The Tegra chipset's drivers just had too many issues. This isn't strictly to discourage you, just to let you know of the history.

    Isn't Nexus 10 Exynos though?

    2012 Nexus 7 (grouper) is Tegra, but there's only mention of Exynos on https://en.wikipedia.org/wiki/Nexus_10



  • @dobey Exynos 5250 dual, 2GB Ram, 5.1 Android



  • Oh. Whoops.

    Either way, everything I said stands but switch Tegra with Exynos. 😛



  • After a few days gap (busy with office work) I got back to the porting task. Finally after following the steps mentioned by UniSuperBox, I created a manifest file which looks as below

    <?xml version="1.0" encoding="UTF-8"?>
    <manifest>
    
    
    <project path="kernel/samsung/manta" name="android_kernel_samsung_manta" remote="los" />
    <project path="external/stlport" name="android_external_stlport" remote="los" />
    <project path="hardware/samsung_slsi/exynos5" name="android_hardware_samsung_slsi_exynos5" remote="los" />
    
    
    </manifest>
    

    Now when I initiate the command "./halium/devices/setup manta", I end up getting following errors.

    aravind@UbuntuTouch:~/halium$ ./halium/devices/setup manta
    *****************************************
    I: Configuring for device samsung_manta
    *****************************************
    
    ... A new repo command ( 1.25) is available.
    ... You should upgrade soon:
    
        cp /home/aravind/halium/.repo/repo/repo /usr/bin/repo
    
    fatal: duplicate path external/stlport in /home/aravind/halium/.repo/manifest.xml
    
    ... A new repo command ( 1.25) is available.
    ... You should upgrade soon:
    
        cp /home/aravind/halium/.repo/repo/repo /usr/bin/repo
    
    fatal: duplicate path external/stlport in /home/aravind/halium/.repo/manifest.xml
    *******************************************
    *******************************************
    aravind@UbuntuTouch:~/halium$
    

    Then I figured the error are because of similar entries existing for stlport in files
    halium/devices/manifests/samsung_manta.xml
    AND
    halium/.repo/manifest.xml

    Now I removed the entry for stlport in file halium/.repo/manifest.xml, then tried the command "./halium/devices/setup manta"... now I see following erros

    aravind@UbuntuTouch:~/halium$ ./halium/devices/setup manta
    *****************************************
    I: Configuring for device samsung_manta
    *****************************************
    
    ... A new repo command ( 1.25) is available.
    ... You should upgrade soon:
    
        cp /home/aravind/halium/.repo/repo/repo /usr/bin/repo
    
    Fetching projects:   8% (14/172)error: info is different in /home/aravind/halium/.repo/projects/external/stlport.git vs /home/aravind/halium/.repo/project-objects/android_external_stlport.git
    error: Cannot fetch android_external_stlport (GitError: --force-sync not enabled; cannot overwrite a local work tree. If you're comfortable with the possibility of losing the work tree's git metadata, use `repo sync --force-sync external/stlport` to proceed.)
    Exception in thread Thread-26:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
        self.run()
      File "/usr/lib/python2.7/threading.py", line 754, in run
        self.__target(*self.__args, **self.__kwargs)
      File "/home/aravind/halium/.repo/repo/subcmds/sync.py", line 282, in _FetchProjectList
        success = self._FetchHelper(opt, project, *args, **kwargs)
      File "/home/aravind/halium/.repo/repo/subcmds/sync.py", line 327, in _FetchHelper
        prune=opt.prune)
      File "/home/aravind/halium/.repo/repo/project.py", line 1261, in Sync_NetworkHalf
        self._InitGitDir(force_sync=force_sync)
      File "/home/aravind/halium/.repo/repo/project.py", line 2366, in _InitGitDir
        raise e
    GitError: --force-sync not enabled; cannot overwrite a local work tree. If you're comfortable with the possibility of losing the work tree's git metadata, use `repo sync --force-sync external/stlport` to proceed.
    
    Fetching projects:  15% (26/172)
    error: Exited sync due to fetch errors
    
    ... A new repo command ( 1.25) is available.
    ... You should upgrade soon:
    
        cp /home/aravind/halium/.repo/repo/repo /usr/bin/repo
    
    Syncing work tree:  44% (76/171)Traceback (most recent call last):
      File "/home/aravind/halium/.repo/repo/main.py", line 547, in <module>
        _Main(sys.argv[1:])
      File "/home/aravind/halium/.repo/repo/main.py", line 522, in _Main
        result = repo._Run(argv) or 0
      File "/home/aravind/halium/.repo/repo/main.py", line 184, in _Run
        result = cmd.Execute(copts, cargs)
      File "/home/aravind/halium/.repo/repo/subcmds/sync.py", line 855, in Execute
        project.Sync_LocalHalf(syncbuf, force_sync=opt.force_sync)
      File "/home/aravind/halium/.repo/repo/project.py", line 1383, in Sync_LocalHalf
        revid = self.GetRevisionId(all_refs)
      File "/home/aravind/halium/.repo/repo/project.py", line 1365, in GetRevisionId
        rev = rem.ToLocal(self.revisionExpr)
      File "/home/aravind/halium/.repo/repo/git_config.py", line 700, in ToLocal
        raise GitError('remote %s does not have %s' % (self.name, rev))
    error.GitError: remote los does not have refs/heads/cm-14.1
    *******************************************
    *******************************************
    aravind@UbuntuTouch:~/halium$ 
    

    Any suggestions?!



  • @aravind_kamble you probably need the --force-sync as the error message suggests


Log in to reply