A few days ago I wrote about getting up and going with your PinePhone. Included in the post were a couple quick fixes for things, like the WiFi. The fix in that post involved a reboot, but today I found one that works without rebooting your phone!

The issue is that the WiFi driver doesn't reload correctly when the SoC is put into suspend mode. I discovered on the postmarketOS WiKi page for the PinePhone that the fix is actually rather simple: just unload and reload the driver manually.

sudo rmmod 8723cs
sudo modprobe 8723cs

The WiFi should the reconnect by itself. It's still rather annoying and the WiFi can die faily often, but this will at least keep you from having to reboot.

I got my PinePhone a few days ago and have been doing a lot of tinkering since then. I've primarily been running UBPorts, but briefly tried Manjaro as well.

UBPorts, to me, feels like the most polished UI and OS in general. However, the PinePhone is still super new and there are plenty of bugs to encounter and work around. I'm going to keep this post brief and just limit it to how you can get started with UBPorts on your PinePhone, and a couple scripts to help keep your software up to day and running as smooth as possible.

Download the Image and Flash an SD Card

  • Download the latest build
    • ubuntu-touch-pinephone.img.gz
  • Using whatever method you want (I reccoment etcher) flash your SD card with your freshly downloaded build. You're going to want to use at least an 8GB card.

Insert your SD Card and Boot your Phone

  • You're going to want to take the back cover off your phone, remove the battery, and insert your SD card. The SD card slot is right on top of the SIM card slot.
  • Put everything back together and hold the power button for a second or two, it should turn on and look like the picture below.

Boot Screen

Initial Setup

  • Select your language
  • (I don't have a SIM card in mine, but set that up)
  • Connect to WiFi (if it disconnects right away, don't worry I have a fix for that later)
  • Select your timezone (this won't work right, but again, fix down below)
  • Enter your preferred name (this does nothing as near as I can tell, but perhaps its supposed to?)

Default Credentials

  • Username: phablet
  • Password: phablet

Change your password

The first thing you should do is change your password. This is done simply with the passwd command. Just open the terminal app (swipe from the left side of the screen to open the app drawer) and run it.

SSH into your pinephone

If your WiFi died already skip to the WiFi section below and run the commands in that script to fix it. If it's still working, hooray!

First, run ifconfig on your PinePhone in the terminal to get your IP Address. Then push your SSH Key to your pinephone:

ssh-copy-id -i ~/.ssh/id_pub phablet@<IP_OF_PINEPHONE>

You should be promped for your password, and then your SSH key will be copied to your phone. Then, you can ssh into your pinephone without having to type in your password:

ssh phablet@<IP_OF_PINEPHONE>

Some commands / Scripts to fix things

The reason I wanted to get you SSH'd into your phone first, is because it's going to be easier to copy/paste this script / command from your computer than your PinePhone. In fact, I haven't been able to get copy/paste working at all on my PinePhone with UBPorts.

WiFi

The first issue I had was with the WiFi. I connected during the initial setup and it disconnected right away, leaving me wondering if I had broken something. Luckily that wasn't the case, and it's an issue documented in the PinePhone UBPorts Repo.

I have not found a permanant fix yet, but I do have a temporary one to get things working again.

#!/usr/bin/env bash

sudo nmcli radio wifi off && \
sudo nmcli radio wifi on && \
sudo reboot now

Setting the Date/Time

During initial setup you set your timezone, but you've probably noticed that the time isn't correct (unless you live at UTC +0). This issue is also documented. The fix is actually pretty easy. This command is another on that's easier to run from your computer while SSH'd into the PinePhone:

sudo dpkg-reconfigure tzdata

This will open a CLI wizard and take you through setting your timezone. Once you're done, reboot your phone and you should see the correct time displayed in the UI.

Conclusion

The PinePhone, with UBPorts is not ready to be your daily driver. It's getting close, but it's not quite there yet. That said, it's a great start and with your help it's going to get there more quickly. How can you help? I think the best thing you can do is be proactive about reporting bugs you find. You can do so in the PinePhone UBPorts Repo. If you feel comfortable, you can also dive in and help fix the bugs you find.

I've been thinking about this all day: if the Senate decides to acquit, are they saying the POTUS is really a king? Do they not understand the dangerous precedent they're setting? That if/when a Democrat is in oval office and is impeached by House a Democrat Senate can just say "fuck that noise"? Or are the Republicans just downright stupid? So many questions...

I've seen a lot of posts lately re: monoliths vs. microservices. I had an experience today along those same lines.

I was looking for the place in code where we sent a specific bit of data to CloudWatch. I had to look in THREE different microservices before I found it. If I had been able to search ONE codebase I would have spent myabe a third of the time looking.

This isn't to say microservices are bad. However, I have come to realize that my preffered approach is monolith first. When you find aspects of your code that need to scale independently from your monolith, it's time to break it off into it's own microservice.

If you start the other way around, you end up with a lot of cognitive load and context switching. Having to swtich between projects and languages constantly is a mental drag and increases what you need to know in order to add features to your application.

/rant.

There he--it--was. Big. Hairy. Larger than life. It looks *almost* human, but not quite. Head too big. Arms too long. Can it be? No, it can't, can it?

You reach for your phone instinctively. The screen doesn't come on. Shit, it's dead. No pictures then. Call someone maybe? No, dead phone, remember. "Idiot," you think to yourself. "How could you be so stupid, not charging your phone last night?"

It feels like it's been an eternity since you spotted him. No **it**. Eyes locked, like you're both the deer caught in the headlights of an oncoming car. Suddenly he--it--breaks your stare and starts to move away. You're only twenty or thirty yards off. Instinctively you start to follow.

His--fuck **it's**--legs are so big that you immediately have trouble keeping up. It's keeping a steady pace. For him--it--it's almost a leisurely stroll, but you have to break into a run to keep up.

Was it running away from you? No, it would be moving faster if it was. Perhaps it knows it doesn't need to? At this rate it's going to lose you before long anyway. Just as you're thinking you might not be able to keep going he--no it--looks back over it's shoulder. You hesitate for a moment, but it keeps moving and so do you.

Is it moving slower now? Did it realize you couldn't keep up? Is he--IT--intelligent? Well, only one way to find out. So you press on, following
as quickly and closely as you dare. Every now and then it looks back over it's impossibly broad shoulders to check that you're still there, slowing to match your pace. It definitely WANTS to be followed. Almost as if it realized you were no threat.

Before you realize it, you've been following it for over an hour and you're coming to the foothills of the mountains. The terrain is getting steep and you're starting to have to climb and clamber over rocks and boulders. It seemed to sense that you would be especially slow here and a couple of times even stopped to make sure it kept you within eyesight.

Eventually he--it--came to an outcropping of rocks that appeared to be the entrance to a cave. It stopped at the opening and you met it's eyes. It's gaze seemed to say "come no closer". So you dutifully stopped, half concealed behind a boulder.

As you stared at each other there seemed to be a silent conversation between you both. You can't quite translate it to words but you get the feeling that you are being trusted with a secret. A secret that his--it's--life depended on.

You are unsure of how much time had passed but the sun was now high in the sky. Seeming to take advantage of your momentary distraction it disappeared into it's cave. When you looked back at the outcropping it was gone. You shake your head, chuckling to yourself.

"Holy shit," you say aloud. "I just met bigfoot!"