Replicant
Overview
Name: | Replicant |
---|---|
Picture: | ![]() |
Active | Yes |
Purpose | Desktop |
Ignition install | No |
Compatibility | All IMX6 MicroSoms |
More information | |
Maintained by | Members of LibrePlanet and Software Freedom Conservancy |
Forum | Replicant Forum |
Website | replicant.us |
Description
Replicant is a free and open source, mobile operating system based on Cyanogenmod, a fork of Android, and sponsored by the Free Software Foundation. It aims to create a distribution of Android without any proprietary software, drivers or firmware.
There are currently no known builds for the CuBox-i. However, building it is possible in the meantime.
Bluetooth and Wi-Fi for the Cubox-i will not work without proprietary firmware for the Broadcom chip. Besides, the Bluetooth 2.1 technology is a bit dated. You may want to use a Bluetooth 4.0 USB dongle anyway, and Ethernet if possible.
Why Replicant?
There are many reasons you may want to use Replicant instead of other operating systems, such as vanilla Android. It only runs 100% free software, and you can use F-Droid as an application repository instead of Google's Play store. Secondly, it is also a great alternative for other operating system environments that utilize 10-foot interfaces, such as XBMC. Replicant is a lot more feature packed, and it has a greater library of software than XBMC distros. However, most XBMC distributions usually have better performance and use less disk space. Another potential problem is many software applications for Android assume the user is using a touchscreen. This is not a problem in XBMC. But if you absolutely must have more features and you are concerned about your software freedom, Replicant is a good choice.
Building
Using the repository
You should already have a GNU/Linux operating system running to start the build process. A Debian-based distrubution such as Ubuntu or Linux Mint should work fine here. We will be following most of the instructions on their Wiki located here.
Follow the Wiki instructions exactly for installing build dependencies
I had to use lib32readline6-dev instead of version 5 on my Debian Sid system, so make sure you get them all installed! Don't bother with needing the 32-bit version of zlib1g-dev on a 64-bit system. Building should be possible without needing multiarch support.
You may also want to install this to prevent some warnings you may have when building:
apt-get install xsltproc
Then use the repo tool to clone the Git repo
You should choose the latest branch.
There are no detailed instructions on the Wiki for building for other systems besides the CuBox-i, but we want to build a working system for the CuBox-i, so let's get started.
First, you need to make sure you are in the directory where you cloned the repository. There should be a build directory, a tools directory, and a bunch of other files and folders.
Now set up your build environment:
source build/envsetup.sh
Then type in:
lunch
Select full-eng (the default), you may also try mini_armv7a-userdebug in case you want a smaller version of Replicant, some debug features, or are having problems otherwise.
This next command ensures that Replicant can find your Java/OpenJDK devel files:
export ANDROID_JAVA_HOME=$JAVA_HOME
Finally, go ahead and build!
make
If it's taking too long, you should use a -j parameter, where you can set the amount of CPUs. So cancel and try this instead if you have a quad-core system.
make -j4
Of course, your system has a higher chance of locking up using all four processors, so be careful!
You may get some errors and warning messages that you cannot understand, that's what the Replicant IRC chat and support forum is for
One error I got was an insufficient memory error when compiling. As I read the log file, it turns out that the -Xmx parameter for the Java VM was set to a whopping 2048M! So close any open applications that you may have open, and make sure that free -m shows a value greater than 2048. I am not sure how to change this paramater myself, yet. Please also note that you will need a huge about of disk space to do these operations, more than 32GB!
This whole process can take a very long time, even a day or longer on older hardware, so don't be suprised.
Now once everything compile, you should have multiple images at ./out/target/product/generic/*.img Mostly we are concerned about system.img.
Setting up U-Boot
Clone the repository and compile the source code.
git clone https://github.com/SolidRun/u-boot-imx6.git
cd u-boot-imx6
make mx6_cubox-i_config
make
Insert your SD card that you want to flash. It should be formatted and wiped clean of any data.
dd if=SPL of=/dev/mmcblk0 bs=1K seek=1
dd if=u-boot.img of=/dev/mmcblk0 bs=1K seek=42
Now create your first partition. You can use GParted. Just a FAT32 partition will do.
gparted
Please read: U-Boot
TODO
- Preparing the image