76 lines
2.3 KiB
Markdown
76 lines
2.3 KiB
Markdown
# pmbootstrap
|
|
|
|
[**Introduction**](https://ollieparanoid.github.io/post/postmarketOS) | [**Security Warning**](https://ollieparanoid.github.io/post/security-warning/) | [**Supported Devices**](https://github.com/postmarketOS/pmbootstrap/wiki/Devices) | [![travis badge](https://api.travis-ci.org/postmarketOS/pmbootstrap.png?branch=master)](https://travis-ci.org/postmarketOS/pmbootstrap)
|
|
|
|
Sophisticated chroot/build/flash tool to develop and install postmarketOS.
|
|
|
|
For in-depth information please refer to the [postmarketOS wiki](https://github.com/postmarketOS/pmbootstrap/wiki).
|
|
|
|
## Requirements
|
|
* Linux distribution (`x86_64` or `aarch64`)
|
|
* 2 GB of RAM recommended for compiling
|
|
* Python 3.4+
|
|
* OpenSSL
|
|
|
|
## Usage
|
|
|
|
Assuming you have a supported device, you can build and flash a postmarketOS image by running through the following steps. For new devices check the [porting guide](https://github.com/postmarketOS/pmbootstrap/wiki/Porting-to-a-new-device).
|
|
|
|
First, clone the git repository and initialize your pmbootstrap environment:
|
|
|
|
```shell
|
|
$ git clone https://github.com/postmarketOS/pmbootstrap
|
|
$ cd pmbootstrap
|
|
$ ./pmbootstrap.py init
|
|
```
|
|
|
|
While running any pmbootstrap command, it's always useful to have a log open in a separate window where further details can be seen:
|
|
|
|
```shell
|
|
$ ./pmbootstrap.py log
|
|
```
|
|
|
|
It's now time to run a full build which will create the boot and system images:
|
|
|
|
```shell
|
|
$ ./pmbootstrap.py install
|
|
```
|
|
|
|
Once your device is connected and is ready to be flashed (e.g. via fastboot), you can run a flash of the kernel (boot) and system partitions:
|
|
|
|
```shell
|
|
$ ./pmbootstrap.py flasher flash_kernel
|
|
$ ./pmbootstrap.py flasher flash_system
|
|
```
|
|
|
|
After a reboot, the device will provide a USB network interface, which we request an IP from, and telnet into to open the full-disk encryption on the main system partition:
|
|
|
|
```shell
|
|
$ dhclient -v enp0s20f0u1
|
|
$ telnet 172.16.42.1
|
|
|
|
Trying 172.16.42.1...
|
|
Connected to 172.16.42.1.
|
|
Escape character is '^]'.
|
|
|
|
Enter passphrase for /dev/mapper/mmcblk0p25p2:
|
|
Connection closed by foreign host.
|
|
```
|
|
|
|
Once the partition has been unlocked it is possible to connect via SSH:
|
|
|
|
```shell
|
|
$ ssh user@172.16.42.1
|
|
```
|
|
|
|
## Development
|
|
|
|
### Testing
|
|
|
|
Install `pytest` (via your package manager or pip) and run it inside the pmbootstrap folder.
|
|
|
|
## License
|
|
|
|
[GPLv3](LICENSE)
|
|
|