[HOWTO] ✏ Compiling Fairphone Open OS / Rooting

Hi @jftr,

on a freshly installed Ubuntu 14.04.3 apt refused to install the packages as they were listed in the first post, since gcc-multilib was not in the list of packages to be installed. After adding it, apt installed all the packages without error.

This package was already installed. Downloading the CA certificate manually worked for me.

I just retried to install all the dependencies listed in the first post.
They were all already installed. Seams like my try to follow this is the same… so i will try a clean new make.
Im working that out on a Macbookpro Retina with Ubuntu 14.4 Native.

I have a question to the certificate.
if i click to download the file i get a xxxxx.crt file. not a .pem
now, possibly you mean to copy the text in the PEM box. But with or without the:
-----BEGIN/END CERTIFICATE-----
Text in the first and last line?
Regards, Novski

I’d suggest trying to install the package ca-certificates, as @jftr pointed out.

If it is already installed, you can copy the PEM file with the -----BEGIN/END CERTIFICATE----- and follow the instructions above.

Maybe sudo apt-get upgrade also helps (in case an older version of ca-certificates is installed).

Earlier on, I’ve had this problem as well. Thanks to your instructions, it now works for me, too! :relaxed:

I can confirm the behaviour @jnsp experienced. When I encountered the same issue, I also had ca-certificates already installed and it didn’t work.

As I’ve just noticed your posts all at once, I went ahead and tested this: I executed sudo apt-get upgrade and the repo init ... command afterwards, but this didn’t solve the problem. The error message was still the same (the one described by @jnsp). Only after following his guide to add the missing certificate, the error disappeared.

1 Like

Well, I read that (apart from the google stuff) you can configure a Wifi connection and, if you don’t, you are asked to manually set the date and time. Edit: Ok, it just came to my mind: The main part of the setup is probably the google stuff and the Wifi step is just invoked, because you need an internet connection for the google setup to work. Hence, it’s not surprising that there was no Wifi setup in the self-compiled OS. eoEdit

@All: I’ve edited the Wiki post to include the lessons learned from my 3rd Try above. I hope, that’s fine - if not, feel free to improve, delete or discuss.

As I finally have a running build thanks to help of this forum :heart_eyes:, where do you discuss the builds or the problems you encounter when running the OS? Just in the threads of the usual OS?

(For me everything is fine right now, my FP2 OSOS has an uptime of 48 hrs and all my apps run smoothly - just asking!)

2 Likes

Following my efforts from last week I tried again to build the source and failed again. :frowning: I constantly get segfaults. I’m following the official build instructions plus the infos in the wiki article at the top. I’ve uploaded a complete build log.
Could someone more experienced with compiling (android source) please have a look and help me debugging the problem. Feel free to ask for additional information you need.
Thanks!

Hi, I had almost the same “problem”, and after several reboots with just fairphone logo I tried the following and it worked!

1.- Ensure your battery > 80%
2.- Unplug usb (unplug any charger, I thing that was the key part…)
3.- Boot in recovery mode
4.- Wipe cache
5.- Factory reset
6.- Reboot (from recovery menu)

It takes quite long to start the first time but it works!

Nice to hear! I remember that, in fact, I also tried to unplug and wipe cache and do a factory reset and it didn’t help. I don’t remember whether I did this in the exact same order as you said, though. However, that shouldn’t have that much influence, I guess. Anyway, cool that it worked for you!

I cannot see any segfaults or errors in there after taking a quick glimpse (only that the make somehow fails). Are you sure you logged everything? I would try using another gcc version.

[quote=“fp1_wo_sw_updates, post:378, topic:11600”]
I cannot see any segfaults or errors in there after taking a quick glimpse (only that the make somehow fails). Are you sure you logged everything?[/quote]
I probably didn’t log stderr, but only stdout. :-/ I’ll give it another try.

I used the default gcc of Ubuntu 14.04. So I believe other have successfully compiled using exactly that version, thus I was doubting that the gcc version is the fault. I can nevertheless try to downgrade the version, I would like to avoid compiling gcc myself…

1 Like

Somehow I messed up output/error redirect and the log file is empty :frowning: But here the segfault copied from the bash output (I tried make -j1):

target thumb C++: third_party_WebKit_Source_core_webcore_remaining_gyp <= external/chromium_org/third_party/WebKit/Source/core/css/parser/MediaQueryTokenizer.cpp
target thumb C++: third_party_WebKit_Source_core_webcore_remaining_gyp <= external/chromium_org/third_party/WebKit/Source/core/css/parser/SizesAttributeParser.cpp
target thumb C++: third_party_WebKit_Source_core_webcore_remaining_gyp <= external/chromium_org/third_party/WebKit/Source/core/css/resolver/AnimatedStyleBuilder.cpp
In file included from external/chromium_org/third_party/WebKit/Source/core/rendering/style/StyleInheritedData.h:29:0,
                 from external/chromium_org/third_party/WebKit/Source/core/rendering/style/RenderStyle.h:50,
                 from external/chromium_org/third_party/WebKit/Source/core/rendering/style/CachedUAStyle.h:25,
                 from external/chromium_org/third_party/WebKit/Source/core/css/resolver/StyleResolverState.h:35,
                 from external/chromium_org/third_party/WebKit/Source/core/css/resolver/AnimatedStyleBuilder.cpp:58:
external/chromium_org/third_party/WebKit/Source/platform/fonts/Font.h:163:103: internal compiler error: Segmentation fault
     FloatRect selectionRectForComplexText(const TextRun&, const FloatPoint&, int h, int from, int to) const;
                                                                                                       ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://source.android.com/source/report-bugs.html> for instructions.
make: *** [out/target/product/FP2/obj/STATIC_LIBRARIES/third_party_WebKit_Source_core_webcore_remaining_gyp_intermediates/third_party/WebKit/Source/core/css/resolver/AnimatedStyleBuilder.o] Fehler 1

#### make failed to build some targets (03:39:23 (hh:mm:ss)) ####

I still used gcc 4.8.4, but can try with another version next weekend.

The last lines of dmesg within the vm don’t show anything interesting as far as I can tell:

[    3.255941] init: failsafe main process (578) killed by TERM signal
[    3.305337] sound hdaudioC0D0: autoconfig: line_outs=1 (0x3/0x0/0x0/0x0/0x0) type:line
[    3.305340] sound hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    3.305342] sound hdaudioC0D0:    hp_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    3.305343] sound hdaudioC0D0:    mono: mono_out=0x0
[    3.305344] sound hdaudioC0D0:    inputs:
[    3.305346] sound hdaudioC0D0:      Line=0x5
[    4.288898] init: plymouth-upstart-bridge main process ended, respawning
[    4.300936] init: plymouth-upstart-bridge main process ended, respawning
[   11.406803] input: spice vdagent tablet as /devices/virtual/input/input4
[  367.851814] systemd-hostnamed[2100]: Warning: nss-myhostname is not installed. Changing the local hostname might make it unresolveable. Please install nss-myhostname!

And on the host something is jamming dmesg, I only see plenty of following lines:

[15687.562449] ACPI: \_SB_.PCI0.LPCB.EC0_.ECRD: 1 arguments were passed to a non-method ACPI object (RegionField) (20150619/nsarguments-230)
[15687.562468] ACPI: \_SB_.PCI0.LPCB.EC0_.ECRD: 1 arguments were passed to a non-method ACPI object (RegionField) (20150619/nsarguments-230)
[15689.567889] ACPI: \_SB_.PCI0.LPCB.EC0_.ECRD: 1 arguments were passed to a non-method ACPI object (RegionField) (20150619/nsarguments-230)
[15689.567912] ACPI: \_SB_.PCI0.LPCB.EC0_.ECRD: 1 arguments were passed to a non-method ACPI object (RegionField) (20150619/nsarguments-230)

As far as I followed sensors the temperature has always not been higher than 88°C, with 105°C being the limit for high and critical.

Your compiler is dying while trying to compile webkit I think, not sure if due to memory or code, but I would recommend trying gcc 4.8.5. A bit never … but not too new :wink:

vm: 6GB of mem, 8GB swap
host: 8GB mem, 8.5GB swap
(I hope that is enough)

I’ll try updating my gcc next weekend.

When I try to sync the repo, it only fetches 3 or 4 of the 515 projects… happens both on ssh and html connection.
Does anyone have any idea why that would be?

Nevermind, now it seems like it is downloading properly. I only had to wait much longer than I expected…


make completed successfully (03:14:09 (hh:mm:ss))

Hurray! For those of you who have problems, here is what I did:

  1. Took an old harddrive, wiped it and installed Ubuntu 14.04 LTS.
  2. Accepted automated updates that Ubuntu wanted to do
  3. Followed the official guide step by step.

Here is the output of gcc --version, in case it helps anyone:
gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4


I will not try flashing my phone until there is a way to install openGAPPS. I’m afraid I just cannot live without the Play Store. If anyone can help, please check out this thread:

As @teh_flame just wrote that he successfully compiled using gcc 4.8.4 I gave it another try. Unfortunately it failed again (building chromium it seems), see build log (only 1.4MB of text compared to 2.3MB of log last try).

After a hint in the IRC channel that memory might be a problem I first of all increased swap of the vm (now: 6.5GB memory + 12GB swap) and tried again. Unfortunately still failing (build log).

You can install openGAPPS, just try it :slightly_smiling:

Hi @sjjh,

that’s weird. I’m compiling with Ubuntu 14.04 Server (default gcc) in a KVM-VM which works perfectly, altough I dedicated 10GB of RAM to the VM.

Have you tried starting over? Installing a new VM with Ubuntu 14.04 Server, updating the machine, installing the packages, redownload (or copy) the repository. If that doesn’t help, maybe reduce the number of parallel tasks (make -j2 instead of make -j8).