Skip to main content

My setups of PineTab 2, an open-source Linux tablet and 2 in 1 laptop

Smartphone Linux phone Pine64 Arch Linux
Table of Contents

閱讀中文版

The PineTab 2, released by Pine64 in April 2023, is an open-source Linux device that combines features of both a laptop and a tablet. It has the ability to run Linux and Android containers concurrently.

Here are my setups and tweaks for Pine64 Pinetab 2 (ARM variant, 8GB/128GB). I hope these experiences can be used as a reference for users who want to use Linux tablet as a daily driver.

  • OS: Arch Linux ARM
  • Kernel: 6.6.13-danctnix
  • Desktop Envrionment: GNOME (Wayland) and Phosh (Wayland)

Why do I write this ? I had written two reviews of Pinetab 2, including unboxing and my thoughts of daily driving Pinetab for 3 months. However, the system of this tablet will be constantly updated, and I have to keep track of the latest development progress (even if the system software is difficult to be finished in a short period of time). Next, although the performance of RK3566 is terrible, I still daily drive this tablet in school. Therefore, I create this posts to keep track the development status of this tablet, and list all my setups here.

The Operating System
#

I use Arch Linux ARM. I had reinstalled the system to get rid of bloated KDE and installed GNOME desktop.

I reinstalled Arch Linux using the barebone image on Github. Firstly I flashed the OS image to sdcard (Mobian or postmarketOS, either will be OK), and booted the OS from sdcard. Then I downloaded the ISO in and dd the Arch Linux image to the internal eMMC of Pinetab 2.

I like Arch because of the unlimited resources of AUR, also I could receive the updates quicker. If you want stable release distros, you could try Mobian, postmarketOS or Ubuntu touch. Before erasing the internal emmc, you could boot new OS from SD card in the first place.

The Desktop Environment
#

In my opinon, there is no single desktop enviornment which could handle desktop mode and tablet mode (touch-only) well in the mean time. So, I installed two desktop environments: GNOME and Phosh.

Install GNOME and Phosh from the official repository of Arch Linux ARM.

sudo pacman -S gnome phosh

Use GDM as display manager so you can swtich DE easily

sudo systemctl enable gdm

For me, GNOME is used for “desktop mode”, for example, browsing the webs, remote developing and writing notes. The on-screen keyboard can be activated in GNOME settings.

Also, I install GJS OSK to get a floating keyboard. It is better than the built-in GNOME keyboard. Now I can type Chinese using this keyboard. Thanks to Github@proton-penguin ’s recommendation.

On the other hand, Phosh is used for “tablet mode”. When treating Pinetab 2 as a tablet, I will disconnect the keyboard case and held it on my hands to read academic papers or e-books. Phosh is more touch-friendly than GNOME.

Tip: After Phosh v0.35.0, you have to long-click the bar at the bottom to activate the squeekboard.

The minimize and maximize buttons of the window would be disabled by Phosh. When you go back to GNOME, use gsettings to re-enable them.

gsettings set "org.gnome.desktop.wm.preferences" button-layout "appmenu:minimize,maximize,close"

The internal Wifi driver
#

I was using a MT7601 wifi dongle before the release of bes2600 driver.

So far, bes2600 wifi driver is partially working on Arch Linux after enabling danctnix’s testing repo in /etc/pacman.conf

And you have to run this command on every boot:

sudo modprobe bes2600

The performace of driver is good. It runs at full speed! Nevertheless there is a suspending issue.

Rotating and suspending issues
#

To get auto screen rotation working, install iio-sensor-proxy:

sudo pacman -S iio-sensor-proxy
sudo systemctl enable --now iio-sensor-proxy

Install Screen roate extension to control the auto rotation of GNOME shell.

iio-sensor-proxy will also enable the feature of power button: Press to enter suspending mode.

Currently, the bes2600 wifi driver will prevent Pinetab from entering suspend mode and freeze the system.

Here are my workarounds.

Firstly, disable supending while idling in GNOME settings.

Then, disable suspend mode in /etc/systemd/logind.conf. Change the behavior of closing the lid from suspend to lock or ignore. Then reboot.

HandleLidSwitch=ignore

To turn off the screen, click the lock button on the top-right corner of GNOME shell. The screen will be locked and turned off. DO NOT USE HARDWARE POWER BUTTON TO TURN OFF THE SCREEN OR THE OS WILL STILL ENTER SUSPENDING MODE AND BECOME FREEZED.

You may change the behavior of power button by running this command:

gsettings set org.gnome.settings-daemon.plugins.power button-power "suspend"

however the available options are “suspend”, “poweroff, “hibernate” and “ask before powering off”. So there is no much we can do here.

P.S. I had tried to remove bes2600 kernel module before entering suspending mode. Guess what, you will encounter segement fault error while re-probing the kernel module after unlocking.

Must-have apps
#

  • Firefox
  • Brave or Chromium. I need to use Chromium browsers, Google Chrome is not available on arm64 platform.
  • Flatpak. Easily installing software. Plus there is another advantage: Sometimes the native packages of Chromium browsers crash on Arch Linux due to the graphics drivers bugs, while flatpak versions still work because they bundle their own drivers, so the flatpak application won’t be affected by the system changes.
  • Fcitx5 for Chinese Pinyin input method.
  • Okular for reading PDFs. It is blazing fast and feature-riched.
  • Joplin Desktop for taking notes. You can also use text-based frontend joplin-cli.
  • xournal++ for hand-written notes. Remember to enale touch input in settings. Since Pinetab 2 does not support pressure-sensitive stylus, so you could only use generic stylus. Don’t forget to wear your glove.
  • Freeplane for drawing mind maps.
  • EasyEffects + Auto Gain Presets. Making speakers sounds a little bit better.
  • Valent. A KDE-Connect-compatible client.
  • LocalSend
  • Moonlight Game Streaming for remote desktop and gaming.
  • Visual Studio Code
  • VIM
  • Distrobox. Use Docker as backend.
  • ytfzf. Watching Youtube videos in the terminal.

Waydroid for running Android APPs
#

For Arch Linux ARM, please use the following commands to install Waydroid:

sudo pacman -Syu
sudo pacman -S python-pyclip xclip wl-clipboard mailcap
yay -S waydroid-image-gapps
sudo waydroid init -f
sudo systemctl enable --now waydroid-container

sudo ufw allow 53
sudo ufw allow 67
sudo ufw default allow FORWARD
sudo ufw reload

sudo systemctl restart waydroid-container

For detailed usage of Waydroid, please refer to: Waydroid - Arch Wiki

Install Orientation Faker to manually control the screen orientation of Android. Because if you rotate the GNOME screen, the Waydroid window will be cut in half. Therefore, you should turn off GNOME’s automatic rotation, and then manually rotate the screen oreintation through the app in Waydroid.

If you want to run Android APP in GNOME full screen, please install the Auto hide top bar extension.

Box64 + Wine for running Windows exe
#

Most of the Windows programs supported by Wine are of x86 architecture. ARM-based Linux systems must use Box64 to translatie instructions to execute x86 programs.

I haven’t figured out what dependencies Arch Linux ARM needs to run Wine, so I took the approach of running Box86 in a Debian chroot container. For detailed instructions, see Playing x86 Steam games on ARM Linux devices using Box86 + Wine

Things that yet to be completed
#

  • Bluetooth driver
  • Camera driver
  • The suspending issue of Wifi driver

Check out PineTab2 wiki for more details.

Related

After 3 months of daily-driving tPineTab 2, ARM Linux tablet, I love but also hate it
Smartphone Linux phone Pine64 Linux Waydroid
Pine64 PineTab 2 unboxing and review by Ivon Huang
Smartphone Linux phone Pine64 Android Linux
Install multiple desktop environments on postmarketOS
Smartphone Linux phone postmarketOS

Leave a comment

Choose the comment system you like. Giscus for codes, Disqus for anonymous comments.

Please login to your Github account to leave a comment. You can post codes here for discussion. For images, please upload to Imgur and copy links. Your comments would be visible to everyone on Github Discussions.

This comment system is provided by Disqus, you may see forcing Disqus ADs on this page. Sometimes your comment may need to be reviewed, resulting in delayed display. Thank you for your understanding.