In the distant past before smart phones became identical black rectangles there
was a category of devices called palmtops. Palmtops were a class of PDA PC
thing that fit in the palm of your hand. Today the Psion 5 series of devices
most often capture peoples attention. Not only are they small and awesome, but
they have something like a real keyboard.
This form factor is so popular that there are projects trying to update Psion
5 devices with new internals. The Psion 5 is the sort of device I have
complained isn't made for a long time, at some point I picked one up on ebay
with the intention of running the NetBSD port on it.
Earlier this year the world caught up and two big crowd funding projects
appeared for modern Psion like palmtop devices. Neither the Gemini or the
GPD Pocket campaigns convinced me that real hardware would ever appear. In
May reviews of the GPD Pocket started to appear and I became aware of people
that had backed and received their earlier campaign for the GPD WIN.
With a quirk in indiegogo allowing me to still back the campaign I jumped on
board and ordered a tiny little laptop computer.
FreeBSD is the only choice of OS for a pc computer. Support is good enough
that I could boot and install without any real issues, but there was enough
hardware support missing that I wanted to fix things before writing a blog post
Somethings don't work out of the box others will need drivers before they will
- WiFi (broadcom 4356)
- Bluetooth (broadcom BCM2045A0)
- Audio (cherry trail audio chrt54...)
- USB C
Keyboard vanishes sometimes
- Touch Screen (goodix)
- fan (there is some pwm hardware)
The most obvious issue is the display panel, the panel it self reports as being
a high resolution portrait device. This problem exists in the bios menus and
the windows boot splash is rotated for most of the time.
Of course the FreeBSD bootsplash and framebuffer are also rotated, but a little
neck turning makes the installer usable. Once installed we can address the
rotated panel in X, accelerated graphics are probably in the future for this
device, but the X framebuffer drive is good enough for FreeBSD hacking.
With X we can sort of the rotation problem.
xf86-video-scfb is required to
use the framebuffer.
# pkg install xf86-video-scfb
And the following lines have to be added to
Identifier "Generic FB"
The screen resolution is still super high, there doesn't seem to be anyway to
do DPI hinting with the framebuffer driver (or in i3 at all), but I can make
terminals usable by cranking up the font size.
Keyboard and touchpoint
A Keyboard is vital for a usable computer, out of the box the keyboard works,
but the touch point does not. Worse, touching the touch point caused the
built in USB keyboard to die.
Some faffing trying to debug the problem with gavin@ at BSDCam and
we got both keyboard and mouse working. For some reason my planck keyboard
presents as a mouse among other things, pluggin in a mouse and power cycling
the USB device caused ums(4) to correctly probe and attach.
ums(4) at boot got the touch point working correctly. In
ig4(4) also attaches when manually loaded.
Add these lines to
The dmesg shows some problems with ACPI probing, this is probably the
source of some of the device problems.
Wifi, bluetooth and graphics are bigger problems that will hopefully be caught
up in others work and made to work soon. The touchscreen controller is adding a
driver and support for Cherry View GPIO, there are datasheets for these and I am
working on them.
No battery level indicator makes it annoying to use the GPD Pocket out and
about. Without a driver the charge controller is using a really low current to
recharge the battery. Datasheets are quite readily available for these devices
and I am writing drivers now.
The Pocket is a great little device, I think its 'cuteness' makes everyone fall
in love with it on first sight. I am really looking forward to getting the
final things working and using this as a daily device.