Newbie build question (pls don´t kill me ...)

I’ve been trying for a while to compile the A15 version for the Fairphone 6 because I need to apply a patch to the kernel, but I haven’t been able to get Docker to let me move forward. Running this command:



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=a15" \
  -e "DEVICE_LIST=FP6" \
  -e "REPO=https://gitlab.e.foundation/e/os/releases.git" \
  -e "LOCAL_MANIFEST=true" \
  registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community

I get an error in the console and dozens in /log/, and I figure it might be because I haven’t hit the right command. Could someone share the exact Docker command to compile? Thank you very much.


It will be easier if you tell us the error message(s) you see

  1. in the console output
  2. in the logfile (presumably you mean the device-specific log file in /srv/e/logs/fp6/

Also, did the repo sync operation finish OK? Check `/srv/e/logs/repo-<yyyymmdd>.log

Hi,

I followed the guide README.md · main · steadfasterX / android vendor e · GitLab, but I ran into errors with RoomService.xml.

We are experiencing authentication failures when trying to sync essential repositories for the Fairphone FP6 (/e/OS v3.2-a15 build) using repo sync and the RoomService.xml configuration.

Affected repositories:

  • e/devices/android_kernel_fairphone_FP6 (kernel source)

  • e/devices/android_vendor_fairphone_FP6 (vendor blobs/drivers)

  • e/vendor/vendor_e (/e/OS vendor customizations)

Could you provide guidance on how to resolve these authentication issues?

Thanks in advance.

SfX does not use docker.

I’m using this roomservice.xml

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
    <!-- F-Droid -->
    <project name="suicide-squirrel/android_vendor_fdroid" path="vendor/fdroid" remote="github" revision="eos" />

    <!-- FP6 REPOS - v3.1.1 (PRIMERA RELEASE ESTABLE) -->
    <project name="e/devices/android_device_fairphone_FP6" path="device/fairphone/FP6" remote="e" revision="v3.1.1" />
    <project name="e/devices/android_kernel_fairphone_FP6" path="kernel/fairphone/FP6" remote="e" revision="v3.1.1" />
    <project name="e/devices/android_vendor_fairphone_FP6" path="vendor/fairphone/FP6" remote="e" revision="v3.1.1" />
    <project path="vendor/e" name="e/vendor/vendor_e" remote="e" revision="v3.1.1" />
</manifest>

But I got access errors with kernel and vendor repo (login required …)

  1. (you’ll abandon that xml anyway), I’d remove fixed revision attributes. Steer it via the upstream branch / revision you supply to the script
  2. android_vendor_fairphone_FP6.. where does that come from? I don’t think there is a separate vendor, it pulls that stuff from qcom repos (good? longevity?!) Use this this xml instead of your present xml
  3. change remote=“e-priv” in your parent xml to something where you’re not asked for credentials, it’s public.. or as you can’t influence this on docker building, change the roomservice xml from the local_manifests repo to remote="e" (this is merged now)

When building “unofficial” for an officially supported device, my personal /.repo/local_manifests/folder
only contains “TheMuppets github.xml”, “the-muppets gitlab.xml”, and “sfx vendor /e/.xml” (you can add “f-droid.xml”, " extendrom.xml).
then, the breakfast command will populate my roomservice.xml and my /kernel, /device, (from /e/ or from LOS) and /vendor (from TheMuppets)

Also important is your personalised
/device/vendor-name/device-codename/vendorsetup.sh

And if your plan is to build “custom”, and to easily modify installed apps, features and settings, your “extrendrom” config file.

as a reference :

Exemple of a build sucess following sfX method by @peteforth
.
steadfasterX / android_build · GitLab
.
steadfasterX / android vendor e · GitLab
.
Setup · sfX-android/android_vendor_extendrom Wiki · GitHub
.
GitHub - sfX-android/android_buildtools: My build tools for developing android

I only need to patch the default Android kernel — specifically, to build my own boot.img or vendor_boot.img with a modified kernel. However, I cannot find any repository that contains the actual kernel source required to build those images.

When I sync the -kernel repository, only prebuilt kernel binaries are provided, not the kernel source code.

Thank you.

yes, they use prebuilt kernels. If you want to build from source you need to turn to fairphone or use this repo here.

As to the vendor dir (where I thought it’s all coming from qcom, totally wrong) - you’ll need to create that from your own devices and the extract-files.py.

Fairphone offers a blob package too, but there’s only some overlap. Haven’t looked that deep as to why that is.

1 Like

Thank you very much, but Fairphone still isn’t providing the kernel source code for the Gen 6. They say they’re separating the open-source parts from the non-open-source ones, and until they finish that process, they won’t release the part needed for compiling. Everything they currently offer at the kernel level is code that can’t be compiled yet.

The FP6 kernel source

1 Like

Hi, I’m probably doing something wrong, but when I go to the repository you linked, I see “Prebuilt kernel files for the Fairphone (Gen. 6) codenamed FP6,” and after a quick look I can see the already-compiled .ko modules, but there’s no sign of the sources that would allow the kernel to be compiled.

1 Like

btw, which patch do you want to merge into your custom fp6 kernel? I’m curious

murena uses the prebuilt repo - but the independent work is something you could try to use though? you can fetch an 22.2 ota from here, extract the payload, take the boot.img, flash and try if it boots for you (unlock bootloader). If so, you have confirmation for the kernel repo to work and apply your patch.

as to fairphone, it isn’t nicely packaged for a lineageos build, but has anyone tried to assemble? gki kernel 6.1.x from aosp + their modules at these repos.

In the parallel thread a fp rep says there’s no complete public tree yet, but that imo refers to the whole device tree + kernel all nicely packaged

1 Like

It’s just a custom security patch that enforces some things in the kernel.

AFAIK, there is an unofficial LineageOS for the FP6 FP6 Unofficial LineageOS 23 - Development - Fairphone Community Forum

this is the dev I linked, imo it’s time to get to work eh? you could first try to just build from that xml (see dropdowns after “Build Instructions”) and when successful add your kernel patch

Yes… however, I’m going to wait for the response regarding the timing of releasing the official source by Fairphone.

one day before you posted rohit from the e team actually gave building with a gki kernel config a test - instead of using the prebuilt. I guess the only difference is building inhouse

2 Likes