Looking for some BUILDERS to teach / guide me

Hi,

i recently aquired a 4x3.3Ghz PC with 8Gb now 16Gb of RAM and i have just received my modem, i am now connected to the internet through a fiber network,

so my main plan is to build /e/ for a dropped Samsung devices i own (s4mini)
for witch an old e-0.18-r-unofficial exist, (i use it for 2 years)
an historical about up to date lineageOS 18.1 unofficial exist,
and an up to date with OTA server lineageOS 18.1 with microG also exist. (edit : recently closed)

.

i know i have first to build with Docker for an officially /e/ supported device (my s4active) to check my build environnement.

.


here what i have in the terminal :

$ sudo docker run
-v “/srv/e/src:/srv/src”
-v “/srv/e/zips:/srv/zips”
-v “/srv/e/logs:/srv/logs”
-v “/srv/e/ccache:/srv/ccache”
-e “BRANCH_NAME=v1-r”
-e “DEVICE_LIST=jactivelte”
-e “REPO=https://gitlab.e.foundation/e/os/releases.git
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community
[sudo] Mot de passe de xxxxx :
Set cache size limit to 50.0 GB

[Sat Aug 26 21:10:55 UTC 2023] Branch: v1-r
[Sat Aug 26 21:10:55 UTC 2023] Devices: jactivelte,
[Sat Aug 26 21:11:02 UTC 2023] (Re)initializing branch repository
[Sat Aug 26 21:11:05 UTC 2023] Copying ‘/srv/local_manifests/*.xml’ to ‘.repo/local_manifests/’
[Sat Aug 26 21:11:06 UTC 2023] Syncing branch repository

… A new version of repo (2.35) is available.
… You should upgrade soon:
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

[Sat Aug 26 21:28:13 UTC 2023] Setting “UNOFFICIAL” as release type
[Sat Aug 26 21:28:13 UTC 2023] Adding OTA URL overlay (for custom URL )
[Sat Aug 26 21:28:13 UTC 2023] Preparing build environment
[Sat Aug 26 21:28:16 UTC 2023] Starting build for jactivelte, v1-r branch
[Sat Aug 26 21:28:16 UTC 2023] ANDROID_JACK_VM_ARGS=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G
[Sat Aug 26 21:28:16 UTC 2023] Switch to Python2
[Sat Aug 26 21:28:40 UTC 2023] Failed build for jactivelte
[Sat Aug 26 21:28:40 UTC 2023] Finishing build for jactivelte
[Sat Aug 26 21:28:40 UTC 2023] Cleaning source dir for device jactivelte
[Sat Aug 26 21:28:41 UTC 2023] Switch back to Python3

here what i have in /srv/e/logs/ :

[Sat Aug 26 21:11:02 UTC 2023] (Re)initializing branch repository

… A new version of repo (2.35) is available.
… You should upgrade soon:
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

repo: reusing existing repo client checkout in /srv/src/R

repo has been initialized in /srv/src/R

[Sat Aug 26 21:11:06 UTC 2023] Syncing branch repository

… A new version of repo (2.35) is available.
… You should upgrade soon:
cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

kernel/samsung/jf: Deleting obsolete checkout.
hardware/samsung: Deleting obsolete checkout.
device/samsung/qcom-common: Deleting obsolete checkout.
device/samsung/jf-common: Deleting obsolete checkout.
device/samsung/jactivelte: Deleting obsolete checkout.
Encountered 1 file(s) that should have been pointers, but weren’t:
AdvancedPrivacy/Advanced_Privacy-1.15.0-e-release.apk
repo sync has finished successfully.

Hi,
Don’t you have another log file for the build? Please use Pastebin-like for whole file.
As your build didn’t take long, my bet is on missing sources :wink:

1 Like

I did quite a few builds of Q manually with 8 GB RAM, but I am pretty sure that docker always failed to repo sync correctly (but in a complex way that defied explanation).

As the need to build R came along, 8 GB was just not sufficient 16 GB is fine (edit, or minimum, perhaps ? I was lucky to get a deal on 32GB, previously used).

It is easy to just

cp /srv/src/R/.repo/repo/repo /usr/local/bin/repo

in order to use latest version of repo (2.35) … I really doubt it will help.

For a pastebin https://paste.tchncs.de/ works nicely.

1 Like

You’re right, I missed this one!
https://doc.e.foundation/support-topics/build-e#how-to-build-the-rom

Currently running a v1.14-r test build for jactivelte, will post full logs if successful.

1 Like

This one has created a YT series on getting started, with building ROMs.
I’m by no means close to building and it’s been a while that I watched the videos on NewPipe, but found his contend helpful and easy to follow.
Maybe judge for yourself:
https://forum.xda-developers.com/t/guide-video-tutorial-how-to-build-custom-roms-and-kernels-10-p-o-n-m-l.3814251/

Newpipe, LibreTube…search for: alaskalinuxuser

Maybe others have recommendations, on content to follow.

I got a device – partly broken digitiser – but I happily test your build on it!

Build successful!

Sorry, VM had 20GB RAM, I failed to tune it down to 16GB :confused:
Also, forgot to remove the Xmx option.

But this may confirm the lack of RAM in your machine, @piero

Build command:

docker pull registry.gitlab.e.foundation/e/os/docker-lineage-cicd:community
docker run \
-v "/srv/src:/srv/src" \
-v "/srv/zips:/srv/zips" \
-v "/srv/logs:/srv/logs" \
-v "/srv/ccache:/srv/ccache" \
-e "BRANCH_NAME=v1.14-r" \
-e "DEVICE_LIST=jactivelte" \
-e "REPO=https://gitlab.e.foundation/e/os/releases.git" \
-e "ANDROID_JACK_VM_ARGS=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx16G" \
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community

All files including logs: https://www.androidfilehost.com/?w=files&flid=339301

Please note: these files are only intended to help @piero in his attempt for building, not for any other testing!

1 Like

thanks for responding
here are my logs : https://murena.io/s/QEKkmJiXtHoC6KX repo sync seems to be ok.
the yesterday attempt did not generate a log

Can you please retry with BRANCH_NAME=v1.14-r?
This doc: https://doc.e.foundation/support-topics/build-e#6-start-build instruct to use tags.

@smu44 Sorry… had to try
@piero You remember… this is my battery charger

Only need to find my OTG adapter and keyboard

Not super easy, just with a keyboard – hover and focus states in the UI lack clear contrasting colors, but yes got it installed

Well, I’m still happy if it works! :smiley_cat:
But I won’t provide any support for this build.

1 Like

@make-nz for sure it works, i am confident about smu44 docker build capacity for an officially supported device.

@smu44 i already have a process running the command you shared for 2 hours, network activity seems calm now, also CPU for the moment, all i can see is intensive disk activity.

comment : there is no live logs ? as when i build postmarketOS.

1 Like

I’m on my own with this, not expecting otherwise :grin:
Tank you, anyway

1 Like

You may tail/less the log file in another session.
After download, sync may be busy for a while, use htop to check.
I also use nmon with c, d, n, m options.

sorry, i don’t understand
please try in french…

less and tail are display file commands. Assuming a mylog.log file:

  • “less mylog.log” then use [End] key on keyboard to refresh the end of file
  • “tail -f mylog.log” will display the end, then follow (display) new lines

htop and nmon are monitoring tools, use "apt install " to get them.

For all of these, man pages are available (“man htop” for example).

1 Like

excuse me please for the late reply, I am a bit frustrated.
my screen became black when i was looking elsewhere and refuse to came back even if i move the mouth or tap on the space bar, but the computer was still on so i plug another screen, to discover that the system has rebooted. (the screen still works)

the log say that

the build has failed after 4 hours :
FAILED : out/soong/build.ninja

1h30 after complaining that :
Build sandboxing disabled due to nsjail error
and
dumpvars failed with: exit status 1
and
warning about the lack of memory

i have added the new log here
note that it was not founded at the same place (/srv/logs/devicename/ when the olders were in /srv/e/logs/devicename)

i was running the command shared by @smu44 in post #7
(but without adding “/refs/tag/” as the process was already launched when the advice comes)

hoping the memory issue is Docker dependant, i want to try the “android_vendor_e” method from @steadfasterX

.

i should be idiot !
even the first step lead me to an error :

repo init -u https://gitlab.e.foundation/e/os/releases.git -b refs/tags/v1.14-r

give me

repo: reusing existing repo client checkout in /home/antec
fatal: manifest ‘default.xml’ not available
fatal: error parsing manifest /home/antec/.repo/local_manifests/eos.xml: no element found: line 32, column 0

even if i accomplish the second step : (here for s4mini, not s4active)
/home/antec/.repo/local_manifests/eos.xml

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
    <remote name="fdroid" fetch="https://gitlab.com/fdroid/" />
    <remote name="sfX" fetch="https://github.com/sfX-Android/" />

    <!-- KERNEL
    #####################################################-->
    <project name="LineageOS/android_kernel_samsung_msm8930-common" path="kernel/samsung/msm8930-common" remote="github" revision="lineage18.1" />

    <!-- DEVICE TREES
    #####################################################-->
    <project name="LineageOS/android_device_samsung_msm8930-common" path="device/samsung/msm8930-common" remote="github" revision="lineage18.1" />
    <project name="LineageOS/android_device_samsung_serrano-common" path="device/samsung/serrano-common" remote="github" revision="lineage18.1" />
    <project name="LineageOS/android_device_samsung_serranoltexx" path="device/samsung/serranoltexx" remote="github" revision="lineage18.1" />
    <project name="arco/android_device_samsung_serranoltespr" path="device/samsung/serranoltespr" remote="github" revision="lineage17.1" />
    <project name="arco/android_device_samsung_serranolteusc" path="device/samsung/serranolteusc" remote="github" revision="lineage17.1" />

    <!-- /e/ vendor repo
    #####################################################-->
    <project name="steadfasterX/android_vendor_e" path="vendor/e" remote="e" revision="1.14-r" />

    <!-- /e/ vendor repo mods (OPTIONAL)
    #####################################################-->
    <!-- project name="android_vendor_e-mod" path="vendor/e-mod" remote="sfX" revision="REPLACE" /> -->

    <!-- F-Droid (OPTIONAL - see topic "F-Droid")
    #####################################################-->
    <!-- project name="android_vendor_fdroid" path="vendor/fdroid" remote="sfX" revision="main" /> -->
    <!-- project path="packages/apps/F-DroidPrivilegedExtension" name="privileged-extension.git" remote="fdroid" revision="master" /> -->

<manifest>

Edit for clarity: Line 32, column 0 follows <manifest> :bangbang:

failing to close with </manifest>


Note the use of the words
reusing existing repo client checkout

This refers to the content that has been checked out of .repo into the environment you created for docker. (I think / assume)

fatal: manifest ‘default.xml’ not available

I would associate with switching “two methods in 1 environment” or not cleaning the first environment before starting a new method.

I would experiment with running

repo init -u https://gitlab.e.foundation/e/os/releases.git -b refs/tags/v1.14-r

into a new directory. For example ~/e-build/SfX/

You can save doing a whole new download of sources by moving (or copy) the

.repo

directory only into the new environment.


Take the advice of your last log

try reducing your -j value.

by using

repo -j1 sync

Try to avoid the

The minimum required amount of free memory is around 16GB,

by building Q.

Good luck