Troubleshooting & How-Tos 📡 🔍 Linux

PineTab2 Notes: Getting Things Working

Things I’ve had to do on my PineTab2 to get various features working and/or usable.

Charging

It won’t charge from zero while off. I have to I plug it in, then turn it on, then let it charge.

Automatic Screen Rotation (Overall and Plasma)

I had to install the package to detect the rotation sensors:

sudo pacman -S iio-sensor-proxy

And uncheck the “tablet mode only” box in KDE Plasma

Via frtodd

Note that if you switch to another login manager, you’ll need to use a different method to rotate the screen. (See SDDM below).

Performance: LXQt

KDE Plasma is really nice! It’s also really slow on this hardware. I switched to LXQt to speed things up.

sudo pacman -S lxqt

Via IPXFong

LXQt Network Manager

To be able to connect and disconnect to networks under LXQt, I installed nm-tray from AUR. TODO: add notes on building AUR packages.

XOrg and LXQt: Rotate Touchscreen Inputs

The touchscreen input doesn’t automatically rotate along with the display under all desktop environments. Plasma seems to be fine, but LXQt needs help.

I got the touchscreen rotated in LXQt (on X11), based on cgbarros’ posts on fixing it in Sway. I just had to locate the X11 way of doing it and figure out which package xinput and xrandr were in!

This installs xinput:

sudo pacman -Sy xorg-xinput

Now put this in a file, say rotate-touchscreen.sh and make it executable. It can be in your own directory if you’re the only user, since it’s going to be run under your login.

#!/bin/sh
xinput map-to-output 'pointer:Goodix Capacitive TouchScreen' DSI-1

Go to LXQt Settings>Session Settings>Autostart and add a new entry to the global list called “Rotate Touchscreen” pointing to the script.

Check the box for “Wait for system tray.”

Alternate Login: SDDM Screen Rotation

I eventually uninstalled Plasma entirely, which left me with SDDM as the main login manager…but without KDE Settings to manage rotation, I had to do it manually. Fortunately the tools are installed now, after adding them for LXQt.

Edit /usr/share/sddm/scripts/Xsetup to include:

xrandr --output DSI-1 --rotate right --auto
xinput map-to-output "pointer:Goodix Capacitive TouchScreen" "DSI-1"

The first line (based on this post by knwt) rotates the login screen to match the keyboard. The second is the same one that rotates the touchscreen inputs to match the display.

WiFi Network

At the time the PineTab2 shipped, the network driver for the built-in WiFi chip was not complete. I used a USB WiFi dongle for a few months.

Steps to get it working:

Update the system using a network adapater:

sudo pacman -Syu

Reboot to the new kernel.

Test the network access:

sudo modprobe bes2600

Enable it on boot:

sudo -i
echo bes2600 | sudo tee /etc/modules-load.d/bes2600.conf
exit

via moobythegoldensock

Bluetooth

Same chip as the WiFi. According to the same post, enabling Bluetooth support:

sudo pacman -S bluez-deprecated-tools
sudo -i
echo ifname:bt cmd:BT_ON > /dev/bes2600
rfkill unblock bluetooth
hciattach -s 1500000 /dev/ttyS1 any 1500000 flow nosleep
hciconfig hci0 up
exit
sudo systemctl enable bluetooth

again, via moobythegoldensock, cross-posted on Reddit

I haven’t been able to get Bluetooth to work, though. Running the hciattach command always results in this error:

Can’t get port settings: Input/output error
Can’t initialize device: Input/output error

I’m not the only one running into this issue, and there’s some followup by cringeops in the same thread, but it’s not clear yet why it works for some people and not others, even using the same distribution.

Suspend/Resume Hanging

I was having issues under LXQt where the screen would turn off for inactivity and then not turn back on until I rebooted. This may be fixed.

Simpler Lock Screen on LXQt

After I completely uninstalled KDE Plasma, I needed something to handle screen locking for LXQt. Based on wxl’s answer I ended up installing xautolock to handle the signals, and xtrlock to handle the actual lock screen.

sudo pacman -Syu xautolock xtrlock

And then I added an autostart item in the LXQt settings containing the following command:

xautolock -locker "xtrlock -b"

Note that xtrlock does not echo keyboard input! You unlock it by just typing your password on a mostly blank screen with a lock icon for a mouse cursor and hitting ENTER.

AUR Packages Without ARM Support

Upstream Arch Linux is all about x86_64. The Danctnix project is a port to aarch64. Packages in the Arch User Repository (AUR) don’t always support building for ARM…but the upstream projects often do. At the time I installed nm-tray, I had to change the arch= line in the PKGBUILD file to read:

arch=('x86_64' 'aarch64')

After I reported to the package owner that it works, they updated the config so it’ll be simpler next time.

This won’t always work! Not every upstream package will support ARM64 and some that do will require different configuration options. And then there are binary-only packages.

Though I did manage to get Vivaldi installed! There’s an AUR package that downloads the official x86_64 RPM, extracts the contents and repackages it for Arch. And Vivaldi does provide an RPM for ARM64 as well. So I used the same trick with the PKGBUILD file, swaping in aarch64 for the architecture and then changing the download URL to point to the other RPM.

Web Browsing

Firefox and Vivaldi work well on the Pinetab2, but slowly. I tried several lighter web browsers and settled on Falkon (from KDE/Plasma) as a good balance between fast enough to use and capable enough to be useful. (Web/Epiphany would be comparable under GNOME or a GTK-based environment.)

Of course, Dillo is even faster, and now that the project is up and running again, it’s great for reading web pages…but doesn’t support JavaScript, so it can’t run web apps.

A few warnings with Falkon:

  • I had to find and set a preference to allow bookmarklets to open windows.
  • It doesn’t directly connect to KeePassXC, but it does work with KeePassXC’s auto-type.
  • Some web apps that work in Firefox or Chromium don’t work quite right in Falkon.
  • As with any alternative web browser, some web apps think they won’t work right and refuse to run.

File Management and Cloud Syncing

Nextcloud clients and GUI integration run on ARM and are available through Arch, so they can be installed natively.

sudo pacman -Sy nextcloud-client

To log in automatically every time, it does require a keyring manager like kwallet or gnome-keyring to already be running. That’s fine under Plasma or GNOME, but I had to add /usr/lib/pam_kwallet_init to my autostart config to get it to stay logged in under LXQt. (Note: After the Plasma 6 upgrade, I was unable to get this to work again, and eventually removed Plasma entirely. It’s now working correctly with gnome-keyring.)

Nextcloud can also be accessed via WebDAV.

Syncthing is also available on ARM and through pacman, though I haven’t tried it.

Dropbox doesn’t support sync on ARM Linux at all.

Web access to both Nextcloud and Dropbox are really slow on this hardware when run on something like Firefox. And both complain about “non-supported” browsers like Falkon and Angelfish (which are a lot faster!)

At some point I’ll give Rclone a try. It’s not a sync service, but it can upload and download to a lot of different storage providers, including Dropbox, OneDrive, Google Drive, and so on, and it has both ARM support and an official Arch package.

USB Ports

The port closest to the power button is for data, but doesn’t provide a lot of power. So some devices work fine, but others won’t turn on. (Unfortunately this includes all my USB-C hubs) The other port is only for charging. It’s not clear whether this is a hardware limitation or software.

Update History