✏ B2G beta (formerly Firefox OS)

Ok, now I have understood. I would like to modify the script
./device/fairphone_devices/FP2/download-blobs.sh
in order to download the latest modified file from http://code.fairphone.com/downloads/FP2/blobs/. However, it seems that the web server does not allow access to curl command with listing and timing parameter as -l or -R in order to obtain the latest modified files.
I do not know of other solutions to get latest modified files from a webserver.

I know that are the same files, but in such a way you can make a blob free build since the binary files are taken directly from the device.

1 Like

Wouldn’t work, they change the file name with each release and as you said, it’s not ftp. Ugly, but fastest way for now would be to just search & replace the file-name for now, I guess. A bit better solution would be to put the URL somewhere and just extract all the rest from there, so only one thing needs to be updated each time.

curl http://code.fairphone.com/downloads/FP2/blobs/fp2-sibon-2.0.1-blobs.tgz -o download-$1/fp2-sibon-2.0.1-blobs.tgz || exit -1 &&
    tar xvfz download-$1/fp2-sibon-2.0.1-blobs.tgz -C download-$1 || exit -1 &&
    BASH_ENV="$EXTRACT_RC" bash download-$1/fp2-sibon-2.0.1-blobs.sh || exit -1

There is a better way to do this with variable. Now in order to automate completely the script we need curl access to webserver in order to retrieve latest modified file and to extract version number.

version=2.0.1
install_blobs() {     mkdir -p download-$1 &&
    (cd download-$1 && shasum -p -c $2) ||
    rm -rf download-$1/fp2-sibon-$version-blobs.* &&
    curl http://code.fairphone.com/downloads/FP2/blobs/fp2-sibon-$version-blobs.tgz -o download-$1/fp2-sibon-$version-blobs.tgz || exit -1 &&
    tar xvfz download-$1/fp2-sibon-$version-blobs.tgz -C download-$1 || exit -1 &&
    BASH_ENV="$EXTRACT_RC" bash download-$1/fp2-sibon-$version-blobs.sh || exit -1
    # Execute the contents of any vendorsetup.sh files we can find in the vendor blobs
    for f in `test -d vendor && find -L vendor -maxdepth 4 -name 'vendorsetup.sh' 2> /dev/null`
    do
         echo "including $f"
         . $f
    done
    unset f
}
1 Like

Good, no difference for me if version or url is used. Is the rm in there still safe if the path fails? So if there is not a proper checksum in the dir, it will delete and try to download again. I prefer to combine a “cd” && “rm” just to make sure the rm fails if needed … too many variables in a rm path make me nervous. But I do not use bash.

Hi,
I have just opened a bug https://bugzilla.mozilla.org/show_bug.cgi?id=1245880 and made a pull request to change the download-blobs.sh. Unfortunately, at the moment the webserver of Fairphone 2 with proprietary blob does not allow automatic retrieving of latest blobs.
@tphysm
@novski
Can you try the latest build in order to check any improvement?

3 posts were merged into an existing topic: No more FirefoxOS?

Despite the bad news, I’ve built and flashed again, just because I’m still curious. :wink: But I still have the same problems as before. Though, I did notice that rushing through the setup by clicking “Next” all the time is possible. That way, I was able to get to the start screen before the crash happened. After the crash, I had to reboot. But as the setup had been finished this time, the phone booted directly to the start screen. So, at least, the OS is working for some seconds. :wink: Anyway, another remark: I have the feeling that it always takes the exact same amount of time for the crash to happen.

Is it possible to get some logs about the crash? I thought adb logcat is the approach for this, but as far as I understand it, adb needs to recognize the device as “online”/“active” for this. However, with the phone plugged in and in recovery mode, I get this:

$ adb devices
List of devices attached
ed44b624	offline

and then I get nothing with adb logcat after a reboot. Any hints how to obtain a log? Otherwise, I’ve no idea what else to do and I’m also a bit tired of building and flashing anymore (unless there is new progress indicating a possibly successful new attempt).

1 Like

Great, thank you! I think the easiest way to get full automation would be a symbolic link on the FP server to “fp2-sibon-latest-blobs.tgz” that always points to the latest version that matches the files needed for the current source.

@jftr: I think moving this to docker would also work. On a system that can build the FP source only ccache and autoconfig2.13 needs to be added.

Yes, but do know how do to this? I know a way, but it requires that web server show to you the list of available files and their timestamp. So you can sort them by date and retrieve the latest. I also asked on IRC in the fairphone channel on freenode and they said that the web server does not allow this.

1 Like

It’s a pretty normal Nginx server I’m not sure what kind of setup they use. I think it would be possible to do this, that’s all I can say about it. Symbolic links are even allowed in the standard setup, the easiest way would be to allow directory listing for the blob directory and the place a symlink to the latest file there.

server {
 (...)
    location /here/are/the/blobs {
                   autoindex on;
            }
}
1 Like

Good idea. It’s really easy to start from my Dockerfile and create an appropriate image. This would be the start:

FROM: jftr/fairphone2-build-env

MAINTAINER: <you>

RUN apt-get update && apt-get install -y autoconfig2.13

ENV USE_CCACHE=1

CMD <whatever-needs-to-be-done-to-download-configure-ccache-and-compile>

Just add “ccache” to your apt-get install list above and it’s pretty much done.

Main repo is here:
git clone git://github.com/mozilla-b2g/B2G.git && cd B2G

CMD ./config.sh fairphone2 && ./build.sh -j8

Currently there is a little glitch in the Bluetooth area of B2G (extern tHCI_IF hci_h4_func_table;). And the way I fixed it is brutal so I wait until someone fixes it and it compiles cleanly again.

./flash.sh will flash the device in the end.

Does anybody know how to calculate the blob-shasums code for the sibon-2.0.1 blob?
I found that file in the B2G/device/fairphone_devices/FP2 folder after changing the link in download-blobs.sh.
Im wondering if the repo wold already update to the latest blobs after that changes…
Regards, Novski

PS: @erotavlas, I didn’t hear from Fairphone support since 7 days now… They seam to be in troubles. :disappointed_relieved:
My Phone is still not booting… althroug i managed to get in to fastboot sometimes…

Yes, in order to compute the shasum under linux you have to type:
shasum file
Here two of the pull requests are for updated blob https://github.com/mozilla-b2g/device-fairphone2/pulls
I do not know about Fairphone support.

Hi
i loaded the newest repo and it seams to be in there already…
But after comming over my bricked phone i loades 2.6 again and now i had SIM ANT connection but no data and also no WIFI.
2.6 is still a prerelease and who knows if its ever gone be released… but i wold like to try the latest 2.5 version as well. Does anybody know how to change the repo to get the latest stable version?
I don’t understand those git commands…
Regards, Novski

Hi,
I believed that Firefox OS was also available in the version 2.5 for Fairphone 2 whereas I checked here https://github.com/mozilla-b2g/device-fairphone2 and it is available only the master version a.k.a. 2.6.

Makes sense. I think the config configures the git wrapper by pulling the manifest “fairphone2.xml”. This does not exists in the branch “v2.5”.

./repo init -u git://github.com/mozilla-b2g/b2g-manifest -b v2.5 -m fairphone2.xml

But maybe something ugly like (repo forall -c) (different tags are used?)
git checkout tags/B2G_2_5_20160125_MERGEDA
git checkout tags/B2G_2_5_20160125_MERGEDAY

will work for the other parts of the code and the stuff will still compile? No clue. Best is to ask mozilla and later to report here.

But remember: It just an older beta … maybe not really worth all the work.

1 Like

im looking for a programer who knows a litle about firefox os.

I don’t know anything, but for me it’s hard to understand your question. Maybe it’s best to collect more information first, people will need to know more details.

What do you want to do on what kind of system? What have you tried before? What kind of behavior do you expect? What does the phone do instead?

For me it sounds like you have issues connecting your phone to the Internet due to Wifi/LTE issues. But maybe I misunderstand you.

Can you check if the wlan framework is able to search for access points? Can you select them?

Something like:

$ adb logcat
$ adb logcat | grep -i Wifi

Should be enough to get some kind of info. Use the “pure” logcat to find out how Wifi debug messages are prefixed in Firefox OS and use grep to filter them.

https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Debugging/On-device_console_logging

Update: Also the bin blobs are stripped, as expected.

ok, i now tryed that. It seams that there are many errors but none coming from wifi.
Maybe its better to solve other errors first. Like the sdcard that seams to generate errors every third second…
but how can i no go on an try to take affect?
Regards, Novski