postmarketOS

Installation Guide

Important Note

This page is a work in progress, and is not complete enough at this point to be useful.

Introduction

If you own a device which has been ported to postmarketOS, then this page will help you to obtain, build, and install postmarketOS to this device.

Any commands that are expected to be entered into a terminal are prefixed with $. You should not enter the $ character, it is merely to designate that the following commands are intented to be input/executed within a termina. For example, the following command to list contents of the current working directory, ls, will be mentioned on this page as:

$ ls

Requirements

The following applications should be installed:

Obtaining postmarketOS

At this point in the project, it is recommended to build postmarketOS from the latest available source code. It can be obtained by running the following:

$ git pull https://github.com/postmarketOS/pmbootstrap.git

Building postmarketOS

First, initialize the work directory. Replace $WORKDIR with the desired location for placing the output from the build process. It is recommended to have at least 10GB of available space in this location.

When initializing pmbootstrap, you'll need to select the device you are building for, the location for the work directory, the number of parallel jobs to run when compiling, and whether or not file timestamps should be accounted for when determining if a rebuild is necessary. User input is bolded below, replace with your desired options.

$ cd pmbootstrap
$ ./pmbootstrap.py init
[20:20:33] Target device (either an existing one, or a new one for porting).
[20:20:33] Available (9): lg-d855, lg-hammerhead, lg-mako, motorola-titan, nokia-rx51, samsung-i9070, samsung-i9100, samsung-maguro, sony-amami
[20:20:33] Device []: nokia-rx51
[20:20:45] Location of the 'work' path. Multiple chroots (native, device arch, device rootfs) will be created in there.
[20:20:45] Work path []: ~/work
[20:20:47] How many jobs should run parallel on this machine, when compiling?
[20:20:47] Jobs []: 4
[20:20:48] Rebuild packages, when the last modified timestamp changed, even if the version did not change? This makes pmbootstrap behave more like 'make'.
[20:20:48] Timestamp based rebuilds (y/n) [y]: y
[20:20:49] WARNING: The applications in the chroots do not get updated automatically.
[20:20:49] Run 'pmbootstrap zap' to delete all chroots once a day before working with pmbootstrap!
[20:20:49] It only takes a few seconds, and all packages are cached.
[20:20:49] Done!