FirefoxOS/RPiB2: Difference between revisions
(Created page with "<div style="float: right; margin: 0px 0px 10px 25px;">link=</div> == Project Management Team == {| class="wikitable" ! style="text-align: cent...") |
(New documentation about RPiB2) |
||
Line 1: | Line 1: | ||
< | We are looking to demonstrate that Firefox OS can be a viable and valuable operating system for a range of development boards and hardware related to IoT | ||
This page describes how to install Firefox OS in a '''Raspberry Pi B+ 2''' running, without a Linux distribution installation previously. This is '''not''' Firefox OS running on top of Raspbian, this is a clean and full rom based on Android (as the ones running on phones). | |||
<font color="red">'''WARNING'''</font>: this guide is specific for the <font color="green">'''Raspberry PI B+ 2'''</font>, older models have a different chipset and newest model have not been tested. | |||
The initial goal is release a downloadable and flashable version of Firefox OS for Raspberry Pi B+ 2 board and a step by step guide to let everybody create their our roms using the B2G build system. | |||
== Project Management Team == | == Project Management Team == | ||
Line 17: | Line 23: | ||
|- | |- | ||
|} | |} | ||
== Development Sprints == | |||
This is a 6 months project, starting November 2015 and finishing April 2016. The project is divided in two Sprints each one of 3 months. | |||
=== Sprint A === | |||
In the first three months I will divide them in 3 phases. The main goal for this Q1 is have at the end a full build of Android Lollipop running in the Raspberry PI to continue with the port of Firefox OS components. | |||
==== Phase 1 ==== | |||
* '''Prepare for Android Lollipop''' | |||
** Identify the product name, code name, architecture, memory size, internal storage size, and platform architecture of the RPI 2. Collect any available existing source code to be used to make a build and add support for more hardware components. | |||
* '''Start AOSP tree for RPI 2''' | |||
** Generate the folders for RPI 2 device configuration | |||
* '''Android devices files for RP2''' | |||
** B2G build system uses AOSP that requires a repo with device configuration. Folder and files like AndroidBoard.mk, AndroidProducts.mk, BoardConfig.mk, device_rpi2.mk, recovery.fstab, and more will be created or adapted to RPI 2 architecture | |||
* '''Make RPI 2 kernel build from source''' | |||
** Create a sync configuration for BoardConfig.mk file to build the kernel and any required kernel modules automatically. | |||
* '''Create manifest file for RPI 2''' | |||
** Create the rpi2.xml in b2g-manifest with all the sources for the first build | |||
==== Phase 2 ==== | |||
* '''Add libraries''' | |||
** In the device specific files during compilation process there are necessary includes to specific libraries | |||
* '''Configure modules''' | |||
** In the device specific files is necessary to add external modules/files to be compiled and binary generated | |||
* '''Kernel configuration for RPI 2''' | |||
** Create a configuration specially for RPI 2 hardware components and ARM support | |||
==== Phase 3 ==== | |||
* '''Generate working build''' | |||
** Generate a first booting copy of Android Lollipop | |||
* '''Automated Android builds server''' | |||
** Jenkins or TaskCluster running to make automated builds of Android for the RPI 2. | |||
* '''Find issues''' | |||
** Debug the build to search for possible bugs and issues that could make a risk for stability in the next Quarter Phases. | |||
* '''Update documentation''' | |||
** Update building steps and requirements with new ones for Raspberry PI 2 | |||
=== Sprint B === | |||
The next three months will divided in 4 phases. The main goal for Q2 is have a stable Firefox OS build with most of the hardware in the Raspberry supported (not fully support expected) and some tweaks for the UI to make it desktop friendly. | |||
==== Phase 1 ==== | |||
* '''Gecko Port''' | |||
** Having a basic Android base system the next priority is get Gecko working. This will help to identify easily more problems in the final ROM | |||
* '''Graphics support''' | |||
** In this project there is a challenge, and that’s the correct graphics support. RPI 2 has a VideoCore with a Broadcom BCM2739 that changed a lot in this latest version of the RPI 2. Will be necessary take a look of Broadcom reference guides | |||
* '''Update documentation''' | |||
** Create page about Firefox OS architecture on the Raspberry PI 2 | |||
==== Phase 2 ==== | |||
* '''Input support''' | |||
** Keyboard and mouse support is one of the P1 for Raspberry PI port. The basic support for Keyboard would be on early stages of Android building. So, the work here would be add listeners for input fields. The mouse support work will consist in implement a pointer interface on Gaia and enable on-click listeners | |||
* '''Storage support''' | |||
** Add support to SD Card recognition and USB storage devices | |||
* '''Connection support''' | |||
** Work on WiFi and Ethernet support and add listeners for every time you plug or unplug it to the board. Usually it recognizes Ethernet connection if is connected before booting. | |||
==== Phase 3 ==== | |||
* '''Generate complete/stable/usable Firefox OS build''' | |||
** After all the base system is working and running, I will create builds to distribute and | |||
* '''Flashing files''' | |||
** The Raspberry PI could not be flashed correctly with common Fastboot method, is necessary to create a filesystem that will be copied to the SD card | |||
* '''Using U-Boot''' | |||
** U-Boot will help to make the booting process more easier with the filesystem and partitions we have mounted in the SD Card with Firefox OS | |||
* '''Update documentation''' | |||
** Update flashing guide with steps for Raspberry PI 2 | |||
==== Phase 4 ==== | |||
* '''Gaia Port''' | |||
** The Gaia port will be ready only when the graphics support is done, added to this, maybe will be some display/resolution limitations if the graphic support is not fully implemented or there are missing parts. | |||
* '''Remove unnecessary apps''' | |||
** Apps like Radio, Dialer, Messages and others are not necessary due Raspberry PI 2 itself doesn’t have hardware components to be used with those apps. | |||
* '''Update documentation''' | |||
** Create page with benchmarks of the port | |||
** Create page about Known Issues with Raspberry PI 2 builds and how to fix common problems | |||
* Video review (?=optional) | |||
** Produce a short video reviewing the state of Firefox OS on Raspberry PI 2 | |||
* Benchmark report (?=optional) | |||
** With a working/stable build would be great to create Benchmark reports to show improvements on performance and speed | |||
== What We'd Like To See Happen == | |||
TBD | |||
== Limitations == | |||
* VC4 driver is still on development | |||
* Sometimes slow and buggy | |||
== Getting Started == | |||
0. You need a Raspberry Pi B+ 2, of course. :) | |||
1. Check out this outstanding how-to video from our good friends at Bunny & Boar [http://youtu.be/U467HSjuFOs] | |||
2. To flash an early demo version of Firefox OS for your Raspberry Pi device, follow the [[Foxberry Pi Demo]] instructions. | |||
3. To stay informed of the project's progress, [https://lists.mozilla.org/listinfo/dev-raspberry-pi please join the mailing list]. Some developers hang out in the #raspberrypi channel on irc.mozilla.org and are happy to answer any questions you have. | |||
4. To get involved in the main bring-up project (it needs your participation!), see [[Hacking b2g on Raspberry Pi]]. | |||
== Build From Source == | |||
Install the [https://developer.mozilla.org/en-US/Firefox_OS/Firefox_OS_build_prerequisites b2g build prerequisites]. For the time being, only linux is officially supported as a build environment; you can use OS X but you'll have to manually partition your RPi's SD card for the first flash. Note that Ubuntu 12.04 is the best-supported development OS. If you're not running Ubuntu 12.04 on your development machine, you can install it as virtual machine and build in there. A b2g build environment consumes a fair amount of disk space, between 15-20 GB. Please make sure you have enough free space on your development machine (or VM). | |||
Be sure of have those libraries installed to avoid compiling problems. On Ubuntu would be: | |||
sudo apt-get install libfontconfig1 libXrender1 libXcomposite1 libXasound2 libgtk2.0 libxt6 unzip | |||
To build b2g for your Raspberry Pi B+ 2, first download the b2g helper scripts | |||
git clone https://github.com/mozilla-b2g/B2G.git | |||
Next configure b2g for your Raspberry Pi B+ 2 | |||
cd B2G | |||
./config.sh rpib2 | |||
The config.sh step can take quite a while, because it downloads a large amount of data. Finally, build b2g | |||
./build.sh | |||
This step also takes some time, because it's building an entire operating system. When your build finishes, it's time to flash it onto an SD card for your RPi. | |||
== Build Kernel == | |||
== Prepare to flash b2g onto your SD card == | |||
== Follow-up projects == | |||
TBD | |||
[[Category:Firefox OS]] | |||
[[Category:Raspberry Pi]] |
Revision as of 06:50, 2 December 2015
We are looking to demonstrate that Firefox OS can be a viable and valuable operating system for a range of development boards and hardware related to IoT
This page describes how to install Firefox OS in a Raspberry Pi B+ 2 running, without a Linux distribution installation previously. This is not Firefox OS running on top of Raspbian, this is a clean and full rom based on Android (as the ones running on phones).
WARNING: this guide is specific for the Raspberry PI B+ 2, older models have a different chipset and newest model have not been tested.
The initial goal is release a downloadable and flashable version of Firefox OS for Raspberry Pi B+ 2 board and a step by step guide to let everybody create their our roms using the B2G build system.
Project Management Team
Name | Role | Email address |
---|---|---|
Dietrich Ayala | Project Manager | dietrich@mozilla.com |
Giovanny Gongora | Porting Developer | gioyik@mozilla.com |
Development Sprints
This is a 6 months project, starting November 2015 and finishing April 2016. The project is divided in two Sprints each one of 3 months.
Sprint A
In the first three months I will divide them in 3 phases. The main goal for this Q1 is have at the end a full build of Android Lollipop running in the Raspberry PI to continue with the port of Firefox OS components.
Phase 1
- Prepare for Android Lollipop
- Identify the product name, code name, architecture, memory size, internal storage size, and platform architecture of the RPI 2. Collect any available existing source code to be used to make a build and add support for more hardware components.
- Start AOSP tree for RPI 2
- Generate the folders for RPI 2 device configuration
- Android devices files for RP2
- B2G build system uses AOSP that requires a repo with device configuration. Folder and files like AndroidBoard.mk, AndroidProducts.mk, BoardConfig.mk, device_rpi2.mk, recovery.fstab, and more will be created or adapted to RPI 2 architecture
- Make RPI 2 kernel build from source
- Create a sync configuration for BoardConfig.mk file to build the kernel and any required kernel modules automatically.
- Create manifest file for RPI 2
- Create the rpi2.xml in b2g-manifest with all the sources for the first build
Phase 2
- Add libraries
- In the device specific files during compilation process there are necessary includes to specific libraries
- Configure modules
- In the device specific files is necessary to add external modules/files to be compiled and binary generated
- Kernel configuration for RPI 2
- Create a configuration specially for RPI 2 hardware components and ARM support
Phase 3
- Generate working build
- Generate a first booting copy of Android Lollipop
- Automated Android builds server
- Jenkins or TaskCluster running to make automated builds of Android for the RPI 2.
- Find issues
- Debug the build to search for possible bugs and issues that could make a risk for stability in the next Quarter Phases.
- Update documentation
- Update building steps and requirements with new ones for Raspberry PI 2
Sprint B
The next three months will divided in 4 phases. The main goal for Q2 is have a stable Firefox OS build with most of the hardware in the Raspberry supported (not fully support expected) and some tweaks for the UI to make it desktop friendly.
Phase 1
- Gecko Port
- Having a basic Android base system the next priority is get Gecko working. This will help to identify easily more problems in the final ROM
- Graphics support
- In this project there is a challenge, and that’s the correct graphics support. RPI 2 has a VideoCore with a Broadcom BCM2739 that changed a lot in this latest version of the RPI 2. Will be necessary take a look of Broadcom reference guides
- Update documentation
- Create page about Firefox OS architecture on the Raspberry PI 2
Phase 2
- Input support
- Keyboard and mouse support is one of the P1 for Raspberry PI port. The basic support for Keyboard would be on early stages of Android building. So, the work here would be add listeners for input fields. The mouse support work will consist in implement a pointer interface on Gaia and enable on-click listeners
- Storage support
- Add support to SD Card recognition and USB storage devices
- Connection support
- Work on WiFi and Ethernet support and add listeners for every time you plug or unplug it to the board. Usually it recognizes Ethernet connection if is connected before booting.
Phase 3
- Generate complete/stable/usable Firefox OS build
- After all the base system is working and running, I will create builds to distribute and
- Flashing files
- The Raspberry PI could not be flashed correctly with common Fastboot method, is necessary to create a filesystem that will be copied to the SD card
- Using U-Boot
- U-Boot will help to make the booting process more easier with the filesystem and partitions we have mounted in the SD Card with Firefox OS
- Update documentation
- Update flashing guide with steps for Raspberry PI 2
Phase 4
- Gaia Port
- The Gaia port will be ready only when the graphics support is done, added to this, maybe will be some display/resolution limitations if the graphic support is not fully implemented or there are missing parts.
- Remove unnecessary apps
- Apps like Radio, Dialer, Messages and others are not necessary due Raspberry PI 2 itself doesn’t have hardware components to be used with those apps.
- Update documentation
- Create page with benchmarks of the port
- Create page about Known Issues with Raspberry PI 2 builds and how to fix common problems
- Video review (?=optional)
- Produce a short video reviewing the state of Firefox OS on Raspberry PI 2
- Benchmark report (?=optional)
- With a working/stable build would be great to create Benchmark reports to show improvements on performance and speed
What We'd Like To See Happen
TBD
Limitations
- VC4 driver is still on development
- Sometimes slow and buggy
Getting Started
0. You need a Raspberry Pi B+ 2, of course. :)
1. Check out this outstanding how-to video from our good friends at Bunny & Boar [1]
2. To flash an early demo version of Firefox OS for your Raspberry Pi device, follow the Foxberry Pi Demo instructions.
3. To stay informed of the project's progress, please join the mailing list. Some developers hang out in the #raspberrypi channel on irc.mozilla.org and are happy to answer any questions you have.
4. To get involved in the main bring-up project (it needs your participation!), see Hacking b2g on Raspberry Pi.
Build From Source
Install the b2g build prerequisites. For the time being, only linux is officially supported as a build environment; you can use OS X but you'll have to manually partition your RPi's SD card for the first flash. Note that Ubuntu 12.04 is the best-supported development OS. If you're not running Ubuntu 12.04 on your development machine, you can install it as virtual machine and build in there. A b2g build environment consumes a fair amount of disk space, between 15-20 GB. Please make sure you have enough free space on your development machine (or VM).
Be sure of have those libraries installed to avoid compiling problems. On Ubuntu would be:
sudo apt-get install libfontconfig1 libXrender1 libXcomposite1 libXasound2 libgtk2.0 libxt6 unzip
To build b2g for your Raspberry Pi B+ 2, first download the b2g helper scripts
git clone https://github.com/mozilla-b2g/B2G.git
Next configure b2g for your Raspberry Pi B+ 2
cd B2G ./config.sh rpib2
The config.sh step can take quite a while, because it downloads a large amount of data. Finally, build b2g
./build.sh
This step also takes some time, because it's building an entire operating system. When your build finishes, it's time to flash it onto an SD card for your RPi.
Build Kernel
Prepare to flash b2g onto your SD card
Follow-up projects
TBD