/u-pine

Rescue ramdisk for Pinephone written on Go

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

U-Pine

U-Pine is a ramdisk image that provides direct access to eMMC/SDCard storage, USB network and SSH connection to Pinephone.

Just like Jumpdrive but on Golang!

Features

  • eMMC/SDCard access
  • Network-over-usb
  • SSH access
  • Bootloader
  • Netboot

User Guide

  1. To get a predictable name for Pinephones usb network inteface copy and init udev rules:
$ cp configs/99-pinephone.rules
$ udevadm control --reload-rules
$ udevadm trigger
  1. Setup pine0 network connection
$ nmcli con mod pine0 ipv4.addresses 10.0.0.1/24
$ nmcli con mod pine0 ipv4.gateway 10.0.0.1/24
$ nmcli con mod pine0 connection.autoconnect yes
  1. By default ~/.ssh/id_rsa.pub key will be embedded into the boot image. To connect over SSH run the following command:
$ ssh -o PubkeyAcceptedKeyTypes=+ssh-rsa -o HostkeyAlgorithms=+ssh-rsa -p 2022 root@10.0.0.100

Boot flow | Screenshot

Boot flow |

Building

  1. Install dependecies (Fedora)
$ dnf install git gcc-aarch64-linux-gnu openssl-devel golang mtools dosfstools parted
  1. Build image
make pinephone-uroot.img
  1. Flash image into SD Card
sudo dd if=pinephone-uroot.img of=/dev/<sdcard_device> bs=1M status=progress conv=fsync

Development

jumpdrive runs as part of init process of the ramdisk and located in /jumpdrive directory.

Ramdisk is build on top of u-root - busybox with a minimal set of commands written on Go.

To become more familiar with u-root, check out it's Github page and LinuxBoot chapter.

References

  • Jumpdrive - Flash/Rescue SD Card image for PinePhone and PineTab
  • xnux - Pinephone kernel development and optimization
  • u-root - A fully Go userland with Linux bootloaders

Logos

  • PINE64 and the PINE64 pinecone logo are trademarked by Pine Store Limited. The trademark extends to the PINE64 brand name in writing, the PINE64 pinecone logo (referred to as logo in the document) and in some instances also to logo derivatives.
  • The Go gopher was designed by Renee French.
  • The u-root logo design is licensed under the Creative Commons 3.0 Attributions license.