Trying to Install Debian with Lomiri/LxQt on a cheap, Surface-like pad
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.
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
closedsystemd-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.serviceAfter 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 grepRe-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.serviceProblem 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
lsblkThe 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 /mntInstall wpasupplicant from the package pool
sudo dpkg -i /mnt/pool/main/w/wpa/wpasupplicant_*.debThis 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_*.debNote: 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.listand 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-firmwareLomiri
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.