Guide to Suitable Phone State
#1
Hey all. The PinePhone Pro was released in what I see as a fully-disclosed early adopter state.



In spite of that openness, I see posts here which claim that it's not possible to make the device work correctly. I, at least, have everything I need working fine, so I figured I'd share how you too can get to that state. By posting this I hope to accomplish three things:



1. Making users who claim it's impossible to make such-and-such feature work or "the device isn't ready for daily driving!!!" go away

2. Help very technically proficient users get their own devices into a better state

3. Show maintainers what they should make happen out-of-the-box to provide a superior user experience for the PPP



That said, there is a major caveat here: I don't present these steps as "easy" or "simple". This is just a summary of exactly what you have to do to go from a fresh PPP to a working daily driver, right now.



Inventory of what works after following this guide:

- Arch Linux ARM base (community support), with several patches to important components like the kernel

- Encrypted root (for me, this is a requirement for a daily driver) with graphical unlock working with both touchscreen and hardware keyboard

- SXMO desktop environment

- Phone calls

- SMS

- Suspend/Crust, reliably, including receiving calls while suspended

- PinePhone hardware keyboard case, inc. charging

- Bluetooth, inc. audio

- fwupdmgr and pacman updates like a normal computer



What does not work even if you follow all these steps:

- Either camera (kernel support exists, but userland isn't finished yet)

- After resume from Crust, on some but not all occasions non-call audio is sped up by a factor of exactly 3x, with the corresponding increase in pitch. I have seen developers comment on this before so I believe it's a known issue. You can see that's what's happening because using mpv to play the audio at 0.33 speed (disabling auto pitch correction) results in normal audio. I have not yet devised a reliable way to poke the phone out of this state.

- Booting the phone if you entirely deplete the battery. Don't entirely deplete the battery. If someone tells you there's something that doesn't work right, please stop posting thread after thread pointing out that the thing they said doesn't work... doesn't work.

- SXMO doesn't have a proper lock screen. Very disappointing. The hardware keyboard keys will still work through "lock" and also there is no PIN screen. I'm exploring putting swaylock or similar on the phone, which should work fine.

- SXMO doesn't let you use the phone normally while in a call. Also just a software problem.

- You need to disable charging the phone with the hardware keyboard to be able to use the phone USB port for ANYTHING, including something basic like a Yubikey. Not just charging! If the keyboard is powering the phone, you can't use USB. This is a hardware problem.

- uBlock origin in Firefox has a rather broken UI



What is untested by me but might be important:

- Android app support w/Waydroid (reported to work...)



Credits: a huge number of talented developers wrote the parts I'm stitching together here. You should thank them for their work. All I've written is packaging scripts and configuration...



Revision Notes:

1.1 Removed step compiling a new kernel, as the kernel in danctnix's repo is now sufficiently up to date to work and can just be installed.

1.2 Removed custom build of Arch base, as Dreemurs distribution is now sufficiently up to date
1.3 Removed keyboard and SXMO customization, as Dreemurs distribution has those



All right, let's get into making our phone work!






Step 1: Install tow-boot

Follow the directions at https://tow-boot.org/devices/pine64-pinephonePro.html to install https://github.com/Tow-Boot/Tow-Boot/rel...004.tar.xz to SPI Flash .

Why? This bootloader/early firmware has enough platform support to make suspend work. It's also, unfortunately, the source of the can't-boot-when-battery-low bug: a dev should change tow-boot to read battery status and go to sleep immediately (NOT SHUTTING DOWN, JUST SLEEPING) if it's low. Recent versions of Dreemurs for PPP also require tow-boot.






Step 2: Get an encrypted root install image

Check out https://github.com/simon2github/PinePhon...-Installer (I used rev 18ea16c ). Choose SXMO.



This step will image your SD card.



Why? If you install straight from Dreemurs, you will end up with an unencrypted root filesystem. This way you'll get an encrypted one.






Step 3: Boot your new system

Insert the SD card and hold the volume down button while powering up the phone. You should see a blue LED and an absurdly long vibration. Seriously, the phone will vibrate full strength for like 15 seconds. I can't find the code that's making it do that (tow-boot says 200ms!) but it's ludicrous and should be changed. After the vibration you'll be prompted for the disk unlock and you now have a working Linux microcomputer.



That was easy, right? We're not nearly done yet though because the state you'll end up in will be only 95% functional. Still, it's a working Arch with an encrypted rootfs and a nice sxmo for us!

Why? Booting the OS checks we did the earlier steps correctly, and lets us use the phone to build further software instead of cross-compiling.






Step 4: OSS the modem and its firmware



Important note: it's up to you to ensure this step is legal where you reside. I'm not your supervisor.



Visit https://github.com/Biktorgj/pinephone_mo...k/releases and download modem 0.6.3 . Follow the given steps (flashall) on the device to image the modem to 0.6.3 . After doing that, visit https://github.com/Biktorgj/pinephone_mo...1097540652 and follow the directions from that comment too.

Why? The stock modem doesn't perform well in calls and also contributes to poor battery life. I have had much better performance with this combination. If you like, you can also update the firmware to *.003.* following the steps on the modem SDK page, but you don't 100% need to.







Step 5: Fix keyboard charging

Set up and enable a systemd unit file to allow the keyboard to charge the phone while it's on:

Code:
# cat /etc/systemd/system/kbcharge.service
[Install]
WantedBy=graphical.target

[Service]
ExecStart=/root/bin/kbcharge.sh
Type=oneshot
RemainAfterExit=yes

# cat /root/bin/kbcharge.sh
#!/usr/bin/bash
echo 1500000 > /sys/class/power_supply/rk818-usb/input_current_limit


Why? The default values will result in the phone battery depleting even when the keyboard battery is enabled.





Step 6: Enjoy

Bask in your working system. Refrain from saying the software is in an entirely unusable state, and instead focus on complaining about how you had to follow ten steps taking approximately a day to go from zero to a working phone. Help with upstreaming these changes and contribute back further improvements.



Enjoy your device, and feel good about helping to bring control back to the person who OWNS the hardware.
  Reply


Messages In This Thread
Guide to Suitable Phone State - by Borealid - 04-16-2022, 10:02 PM
RE: Guide to Suitable Phone State - by lat - 04-27-2022, 07:38 AM
RE: Guide to Suitable Phone State - by Borealid - 04-27-2022, 02:53 PM
RE: Guide to Suitable Phone State - by tckosvic - 04-28-2022, 11:01 AM
RE: Guide to Suitable Phone State - by Borealid - 04-28-2022, 04:10 PM
RE: Guide to Suitable Phone State - by tckosvic - 04-29-2022, 10:23 AM
RE: Guide to Suitable Phone State - by Borealid - 04-29-2022, 10:34 AM
RE: Guide to Suitable Phone State - by tckosvic - 04-29-2022, 12:17 PM
RE: Guide to Suitable Phone State - by fxc - 04-30-2022, 08:02 AM
RE: Guide to Suitable Phone State - by Borealid - 04-29-2022, 06:57 PM
RE: Guide to Suitable Phone State - by tckosvic - 04-30-2022, 11:46 AM
RE: Guide to Suitable Phone State - by jakfish - 05-04-2022, 08:25 PM
RE: Guide to Suitable Phone State - by cj-mcquack - 05-05-2022, 01:30 PM
RE: Guide to Suitable Phone State - by Dragonborn - 05-05-2022, 04:03 PM
RE: Guide to Suitable Phone State - by wibble - 05-06-2022, 04:42 AM
RE: Guide to Suitable Phone State - by Dragonborn - 05-06-2022, 03:17 PM
RE: Guide to Suitable Phone State - by wibble - 05-07-2022, 05:26 AM
RE: Guide to Suitable Phone State - by mburns - 05-08-2022, 08:46 AM
RE: Guide to Suitable Phone State - by robocone - 09-18-2023, 07:00 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Pine Phone Pro audio on phone calls: discussion, support and tips apink 42 11,427 12-26-2023, 02:14 PM
Last Post: apink
  Phone Attitude(Device orientation) lurkadillian 2 991 06-22-2023, 08:12 PM
Last Post: lurkadillian
  Pine Phone won't boot into recovery mode ninjapig26@gmail.com 3 1,674 02-18-2023, 06:14 PM
Last Post: fxc
  [Mobian] No return from locked phone arno_nuehm 1 975 02-06-2023, 07:57 AM
Last Post: arno_nuehm
  Phone shuts down unexpectedly Hobgoblin 3 1,520 12-20-2022, 01:11 PM
Last Post: Fish
  Sound completely gone with Mobian in Phone Call configuration EwigeBlumenkraft 2 1,689 11-11-2022, 09:18 PM
Last Post: apink
  PinePhone Pro Manjaro Plasma Mobile Beta 13 & No Audio with Phone Calls X0X0X0X0X0 0 1,050 11-02-2022, 02:09 PM
Last Post: X0X0X0X0X0
  Outgoing audio in phone calls gone linuxfreedom 6 3,164 10-25-2022, 08:40 PM
Last Post: apink
  Phone wont turn on with any SD Card inserted Ausfaller 3 2,304 07-21-2022, 10:20 AM
Last Post: Ausfaller
  PPP Phone rings with constant vibrate - turn off vibrate henrythemouse 0 801 05-16-2022, 03:59 PM
Last Post: henrythemouse

Forum Jump:


Users browsing this thread: 1 Guest(s)