Talk:PinePhone

Overlay
I'm interested in contributing (I just got my pinephone, and I intend to put gentoo on it!). Should we create an overlay in order to centralize contributions? --fxc (talk) 23:48, 25 December 2020 (UTC)

That sounds like a good idea, I just wasn't sure how to put that sort of thing together because i do not really understand how to use git beyond "git clone". once i get my system figured out the first thing i will make is a p-boot-tools ebuild (which would basically be a binary, because you need a certain compiler to build it), and then maybe I could email it to you or make a submission through git? there is also this guy's overlay I found from the pine64 wiki: https://gitlab.com/bingch/gentoo-overlay/-/blob/master/README.md. it seems to have a couple ebuilds like phosh and stuff, so maybe we should just contact this guy. sorry for getting back to you so late, i hadn't seen this. anyways merry christmas --feeloada

Installation manual proposal for option 1
I started installing Gentoo on my pine phone after booting the PostmarketOS with Sxmo from the multiboot image from Megi.

For this guide, let's assume we have:
 * / (root) on emmc of 16Go
 * /var of 32Go (Firefox needs almost 16Go of tmp space in order to compile, and, if you use flatpak, you will need a lot of space too) on sdcard
 * /var/tmp on zram
 * /tmp on zram
 * /home on the remaining space (on sdcard)

I choose to install the root filesystem on the emmc and to have /home and /var on sdcard. Indeed, I think it can be a good practice to create partition for /var of /tmp in the SDCARD because they are likely to have a lot of read/write cycle, particularly on Gentoo since Gentoo use tmp dirs in /var during compiling process. So you will preserve your EMMC memory.

Moreover, I will use zram (for ram, /var/tmp - to handle small packages -, and /tmp).

A the moment, I use bingch overlay to install kernel sources and Phosh. For sway for exemple, you can have a look on this git repo : https://github.com/Dejvino/pinephone-sway-poc I use p-boot for the boot process.

Finally, depending on your needs, I can suggest to install tar (the Sxmo version is limited), screen and btrfs-progs

Here are my installation steps.

prepare disks
For this steps the amd64 handbook helps : https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Disks

Prepare Chroot
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Stage

https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#ARM-Options https://wiki.gentoo.org/wiki/Safe_CFLAGS#ARM

TODO : list make.conf flags

Without systemd
See https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/System#Networking_information for the network configuration

With Systemd
https://wiki.gentoo.org/wiki/Systemd

Prepare network for reboot on Gentoo
Create file /etc/systemd/network/50-dhcp.network :

Distcc setup
Since it can take a while to compile the entire system onboard, I should advice to use distcc.

The use of docker images makes it easy to configure on every systems.

As fas as I am concerned, I used the ksmanis Gentoo distcc image here: https://hub.docker.com/r/ksmanis/gentoo-distcc

Ksmanis provides a lot of different images that should suits your needs (for me: ksmanis/gentoo-distcc:arm64-tcp).

So once installed on every participating machines, you just have to follow theses simple steps:


 * configure distcc for participating hosts:

https://wiki.gentoo.org/wiki/Distcc#Specifying_participating_hosts


 * adapt the make.conf file to indicates that the emerge process now have to use distcc

https://wiki.gentoo.org/wiki/Distcc#Configure_portage

Please note that you should not use -march=native or -mtune=native in the CFLAGS or CXXFLAGS variables of make.conf when compiling with distcc.

If you are running your participating host inside your own network, I think there is no need to configure ssh connection or ever compression.

Compile and install kernel
https://github.com/umiddelb/armhf/wiki/How-To-compile-a-custom-Linux-kernel-for-your-ARM-device

Configure bootloader
TODO

Initial configuration for systemd
As a matter of fact, some steps can't be done on chrooted environment

At this point, I installed screen one again to gain confort for last steps

Enable zram
https://wiki.gentoo.org/wiki/Zram

and modify startup command as follows:

This will reserve a 1Go swap space. Please note that -d0 is unnecessary since by default the zram-init script will use slot #0.

And the same for zram_tmp

add

By this command you will mount a drive on /tmp of 124Mo in the ZRAM slot #1

add

This command mount a drive on /var/tmp of 1Go in the ZRAM slot #2. Then mask tmp.mount as it is replaced by zram_tmp

And finaly, enable the units

Emerge stuff
At this time, compilation process can be very long. A usefull tip, if the compilation process is halted, is to continue by submitting

Final configuration
Start Squeekboard at session startup

Enable screen keyboard (if necessary)

Add various services

Dr41nU (talk) 21:19, 4 January 2021 (UTC)