Externally accessible serial console for Pinebook Pro

How to create external serial console on Pinebook Pro

Posted by Luke on 23rd Oct 2020

I got tired of dismantling my Pinebook Pro everytime I wanted to have access to serial and switching sound output to console. So I went and found a really small micro usb/uart adapter and made a decision to mount it inside the case.

The adapter itself is based on FT232RL chip and has pins to choose between 3.3V and 5V. Before, I bought adapter based on CP2102 chip and it was advertised as 3.3V but in fact it wasn't. So when you buy an adapter - always look for the one that has pins to choose between 3.3V/5V.

Tools and parts needed

Except of soldering iron you will need and adapter itself. Mine looks like this and has following dimensions: 15.6mm / 20mm.

I bought it on polish allegro.pl.

And the rest of tools is just micro dremel :

Installation

First you need to unscrew and get out mainboard. And then solder three goldpins to GND,TX,RX connectors.

Then go to the opposite side of Pinebook Pro and take a good measures of your adapter and a space you have there.

As you can see it looks a bit too big. Don't worry. The wall of the case is really thick :) Now you need to make a place for micro usb port in the wall of the case of your Pinebook Pro and the bottom cover. I couldn't take a good picture of it but it's not so difficult. Just take a dremel and measures and take some material from both - the wall and bottom cover. After connecting everything it should look like on these pictures:

Software

It's very plausible that, after you connect your new serial console, to the other computer, you will see u-boot messages and then just:

Starting Linux Kernel

There are two things to remember:

  1. Serial console must be first in order of console kernel arguments since the last console becomes /dev/console. And if ttyS2 is the last one in order then, if you have luks volume, you will be asked for password on serial console only. Not on screen. So the kernel arguments should look like:

    APPEND console=ttyS2,1500000 console=tty1 ...

  2. If you have "loglevel=1" in your kernel arguments you will also not see any kernel boot messages. Always put "loglevel=7" in kernel arguments just to make sure.

  3. If your kernel was compiled with "loglevel=1" and you have no loglevel statement in kernel arguments --> see point number 2 :)