Trying to Install Debian with Lomiri/LxQt on a cheap, Surface-like pad

debug
linux
diary
Author

Guest_1013

Published

2026-09-01

I recently purchased a second-hand CUBE iwork 11 (handwriting edition). After ensuring that it runs well with pre-installed Windows 10, I decided to try to install Debian on it, just for fun.

Note

This article faithfully records the trial and errors during the process; you should probably see other people’s articles.

Preparing

Materials and Tools

I need:

  • Multi-port OTG USB adaptor; (already here, thanks to the seller)
  • USB Flash Disk; (8 GB)
  • Power adaptor;
  • Keyboard.

It would be better to have a mouse.

Preparing the USB Device

I personally use rufus. Choose the USB flash drive and the downloaded ISO file. For this device, which only has 4 GB of RAM, I have to choose the liveCD with lxqt so that it would run rather smoothly. Then, choose the MBR partitioning scheme and the BIOS or UEFI target system. Finally, press the start button and wait.

Booting

The firmware seems to be made by American Megatrends, and it said that we should press Esc or Del to enter the BIOS settings.

In bios settings, went to the last tab, and choose to boot in the EFI shell, because there seems to be no direct booting from USB option.

After entering the EFI shell, use map -r -b -t hd to see all the usable USB devices; choose the Removable Harddrive (or something like this), note down the name (something like fs3), and enter the name with a : (which would be fs3:).

After that, run the EFI file by using \EFI\BOOT\bootx64.efi.

Debian liveCD environment

After that, GRUB should pop up; select the option you want, and wait until the full environment is up (this could take a while).

I use the liveCD environment with LxQt purely for testing purposes. According to AI, it might have some issues using Xorg and Lomiri at the same time. Lomiri suggests that it should be installed from a minimal install of Debian.

The main issue are that: - the system hangs for no reason during the booting process; - using the shutdown option in LxQt will only result in returning to the login manager.

Then I freshly installed a minimal Debian, which had the problem below.

Minimal Install

Problem 0: No sudo

So I have to log onto root directly, or use su.

Problem 1: Blackscreen

The screen blanks after roughly 27 seconds. Keyboard input does not prevent it. The system must be woken with a keypress, after which the kernel prints:

[ xxx.xxxxxx] pmc_atom: PCIE_PORT0 is in D0 prior to s2idle

Root Cause

The iWork11 has no physical lid, but its firmware reports the ACPI lid switch as closed at all times:

$ cat /proc/acpi/button/lid/LID0/state
closed

systemd-logind ships with HandleLidSwitch=suspend as the default. Because the lid is always reported as closed, logind keeps putting the machine into s2idle suspend, and the screen powers down together with the suspend.

Why the 27-second delay happens

HoldoffTimeoutSec= (default 30s) makes logind ignore lid events for a grace period after system startup or resume. On boot, logind therefore reacts to the “closed” lid only after ~27–30 s — this is the exact blank-screen delay observed.

Why restart systemd-logind blanks the screen immediately

The hold-off window applies only to system startup / resume, not to a manual service restart. When logind restarts, it re-reads the lid state (still closed) and triggers suspend right away — matching the observed immediate blank on restart.

The fix that worked

Mask every suspend-related target so that no automatic suspend can succeed:

systemctl mask \
  sleep.target \
  suspend.target \
  hibernate.target \
  hybrid-sleep.target \
  suspend-then-hibernate.target \
  systemd-suspend.service \
  systemd-hibernate.service \
  systemd-hybrid-sleep.service \
  systemd-suspend-then-hibernate.service

After masking, systemctl suspend is rejected and the system never auto-suspends — the screen stays on.

Supporting diagnostics

# Prove the lid is misreported as closed
cat /proc/acpi/button/lid/LID0/state

# Show suspend/s2idle/pmc_atom activity in the journal
journalctl -b | grep -iE 'suspend|s2idle|freeze|pmc_atom' | tail -20

# Check logind power-management settings
grep -E 'IdleAction|HandleLidSwitch|HandleSuspendKey' /etc/systemd/logind.conf

# Confirm no acpid process competes for lid events
systemctl is-active acpid; ps -ef | grep -i acpid | grep -v grep

Re-enable suspend later

To undo the mask:

systemctl unmask \
  sleep.target \
  suspend.target \
  hibernate.target \
  hybrid-sleep.target \
  suspend-then-hibernate.target \
  systemd-suspend.service \
  systemd-hibernate.service \
  systemd-hybrid-sleep.service \
  systemd-suspend-then-hibernate.service

Problem 2: Wi-Fi Connection

Initial Diagnosis

Check Result
ip link lo + wlan0 present; wlan0 state DOWN (normal before configuration)
ip addr No IP assigned
dhclient Not installed
command -v wpa_supplicant MISSING
command -v iw Present (/usr/sbin/iw)
systemd-networkd Present (/usr/lib/systemd/systemd-networkd)

Connecting to any Wi-Fi network — including a phone hotspot — requires wpa_supplicant to perform the 802.11 association/authentication. But wpa_supplicant was not installed, and installing it normally requires a network. This is a chicken-and-egg problem.

Options considered

Option Why it was not the chosen path
USB tethering (phone → usb0, RNDIS) Phone doesn’t support USB tethering
Open (password-less) hotspot + iw connect Password required
Local apt source from the install media (file:/mnt) Would auto-resolve dependencies, but the USB stick was instead used directly for dpkg
Offline dpkg -i install, resolving dependencies one by one ← Chosen path

The wpasupplicant package and its dependencies were taken from the Debian install USB stick and installed manually with dpkg -i.

Identify the USB stick device

lsblk

The tablet’s internal eMMC appeared as mmcblk0 (mounted at /). The USB stick appeared as an additional sda device (RM column = 1, i.e. removable), with its partition sda1.

Mount the USB stick

mkdir -p /mnt
mount /dev/sda1 /mnt
ls /mnt

Install wpasupplicant from the package pool

sudo dpkg -i /mnt/pool/main/w/wpa/wpasupplicant_*.deb

This failed immediately: dpkg reported unmet dependencies.

Resolve missing dependencies one by one

wpasupplicant depends on the libnl family and libpcsclite1, which were not present on this minimal install. The missing packages were located in the same pool/ tree and installed alongside wpasupplicant:

sudo dpkg -i \
  /mnt/pool/main/libn/libnl3/libnl-3-200_*.deb \
  /mnt/pool/main/libn/libnl3/libnl-genl-3-200_*.deb \
  /mnt/pool/main/libn/libnl3/libnl-route-3-200_*.deb \
  /mnt/pool/main/p/pcsc-lite/libpcsclite1_*.deb \
  /mnt/pool/main/w/wpa/wpasupplicant_*.deb

Note: the libnl dependency is actually three packages — libnl-3-200, libnl-genl-3-200, and libnl-route-3-200 — not a single libnl. Additional dependencies (e.g. libssl3, libdbus-1-3, libreadline8) may also surface and were resolved the same way as needed.

sudo apt install ...

First, install sudo like we did above; then, use usermod -aG sudo username to add myself to sudoers; finally, use su - username to log onto my own account. finally…

However, apt is not usable yet, because we haven’t configured the mirrors. To add mirrors, use

sudo nano /etc/apt/sources.list.d/cn-mirrors.list

and input:

deb https://cernet.mirrors.ustc.edu.cn/debian/ trixie main contrib non-free non-free-firmware
deb https://cernet.mirrors.ustc.edu.cn/debian/ trixie-updates main contrib non-free non-free-firmware
deb https://cernet.mirrors.ustc.edu.cn/debian-security/ trixie-security main contrib non-free non-free-firmware

Lomiri

For me it consumes too much resources… making it not very smooth.

LxQt

Surprisingly supports touchscreen natively, without multi-level writing pen though.

Known issues:

  • periodic blackscreen;
  • sometimes blackscreen even after waking up, and switching to other ttys didn’t solve it;
  • the afforementioned blackscreen/suspend problem revised.

So…

I just flashed back the official dual-boot bios, and installed the Android 5 and Windows 10.