= Pinephone = The pinephone is a cheap generic linux phone. == u-boot == See [[u-boot]] == Gentoo == === Filesystem layout === Iteration one, using the following layout * gpt disklabel * 2048 + 128M BIOS boot (ext4) * +4G Linux Swap * +-1 Linux filesystem (ext4) Choose to use the stage3-arm64-systemd === Chrooting === In order to chroot into the system, you may need to use qemu to emulate the system architecture. This can be done using `qemu-user-static` and `binfmt-qemu-static`. These allow you to chroot into an enviroment of a different architecture. To chroot into the enviroment, in the root of the to be chrooted filesystem, run {{{ #replace * with the architecture cp $(which qemu-*-static) usr/bin/ chroot . qemu-*-static /bin/bash }}} === Cross compiler === First, we will be compiling on a host gentoo system. To do this, first install crossdev and the needed toolchain (See [[cross_toolchain]]). If your host system is not gentoo, be sure to install a cross compiler for aarch64. *The pinephone triple is aarch64-unknown-linux-gnu* {{{ emerge -av git ninja crossdev crossdev --target arm-none-eabi }}} === GPU Support === The pinephone pro uses a Mali T860 quadcore CPU, and therefore is run using the lima drivers. In the phones make.conf, be sure to add {{{ #/etc/portage/make.conf (chroot in phone) VIDEO_CARDS="lima" }}} In your global use, be sure to add {{{ #/etc/portage/make.conf (chroot in phone) USE="gles gles2-only" }}} This ensures that we will only compile programs using OpenGL ES, or OpenGL for embedded systems. == Postmarket == See [[postmarketos]] == Troubleshooting == === Phone not booting due to fully drained battery === Battery voltage will be ~2.4V when dead in my experience. To get the phone to boot 1) Remove SDcard 2) Remove battery, serial, and usb cables 3) Reinstert the battery 4) Hold down the RESET button 5) While holding the button down, connect the USB port to a computer 6) let go of the button 7) in `lsusb` you should see `2207:330c Rockship electrions`