On-call with the Asus Transformer T100 & Ubuntu Sway
Installing and running Ubuntu Sway on the Asus Transformer T100 for under £100
I've always been interested in, and on the lookout for unique hardware, especially when it comes to portable devices like laptops and tablets.
This post looks at the Asus Transformer T100 as well as how to install Ubuntu Sway on it.
Background
At times this interested has been driven by lots travelling and also over the years I've been working in roles where to some degree I am on-call, either directly and responding to service issues, or indirectly being ultimately being responsible for the availability of services, systems and products.
When things go wrong, getting online is pretty crucial and practical, especially these days with cloud hosting being pervasive, most issues can be dealt with through portals (eg the AWS Console) and/or SSH.
However when travelling or out-and-about while also being on call, it's not always practical to carry around a full sized laptop. A phone is helpful, but when it comes to using SSH and running commands, the small form factor combined with lack of physical keyboard can be limiting, especially when there is the need to work swiftly.
There are numerous apps for phones and tablets to provide SSH and often a basic shell, which makes an iPad and keyboard more useful - but it's still not quite the same as having a full Linux operating system to work with, especially as the shells are limited and their ability to actually interact with the device operating system is nearly non-existent, so you're still reliant on other apps for things like VPN, and there are many things that are not possible.
As such I've always had a practical interest in portable devices that are fully fledged computers and that retain the flexibility to install (within reason) an operating system of your choice.
Previous Devices
The Asus Transformer is certainly not the first small form factor device I tried, here are a few others from years gone by, which now are museum pieces.
Toshiba Libretto U100
This "laptop" was very small, especially without the detachable DVD drive.
Using the screen required incredible eyesight.
It had a fairly good feature set when it came to hardware and connectivity, such as a fingerprint reader, wireless, bluetooth, etc. Naturally the size limited it's overall computing power.
Sony VAIO UX1XN
Many years ago I owned a series of Sony VAIO UX1XN devices (I'm not sure you could call them laptops):
They were interesting little devices and were a bold choice to design and build, but ultimately they were expensive at full retail price and highly impractical for most day-to-day use cases.
The Transformer T100
The ASUS Transformer Book T100 is a "Windows Tablet" with a detachable keyboard.
It features a 10.1-inch capacitive multi-touch display, with a 16:9 ratio, 1366 x 768-pixel HD resolution and in-plane switching (IPS) technology.
It's also got a webcam, mini HDMI port, micro USB (for charging and OTG/gadget mode devices), micro SD and USB port on the keyboard.
The keyboard is smaller than standard for obvious reasons and it has a touchpad to control the mouse.
The model I have has 2GB RAM and a 32GB "SSD" and was bought from eBay for £99.99.
I believe storage is actually an eMMC - the performance would certainly agree with that...
Ubuntu Sway Remix
What is Ubuntu Sway Remix..?
Ubuntu with Sway Wayland compositor
And Sway...?
Sway is a tiling Wayland compositor and a drop-in replacement for the i3 window manager for X11. It works with your existing i3 configuration and supports most of i3's features, plus a few extras.
Sway allows you to arrange your application windows logically, rather than spatially. Windows are arranged into a grid by default which maximizes the efficiency of your screen and can be quickly manipulated using only the keyboard.
In practical terms, Sway is quite a light-weight keyboard-centric window manager.
There's many things I find it difficult for, but to have a glorified, portable terminal and browser for dealing with issues that mostly require remote access it is ideal (providing you learn some key shortcuts).
Installation
Installing Ubuntu on the T100 doesn't seem to be as hard as it used to be, I took inspiration from this guide along with a few other internet resources. These steps work with Sway and may well work with other variants of the same Ubuntu release.
Preparation
First we need a bootable installer USB stick
Download 23.04 LTS amd64 release from: https://ubuntusway.com/downloads.php
Flash to USB memory stick (using the Raspberry Pi Imager or Balena Etcher).
Attach that memory stick to the USB port on the T100 Keyboard or a USB socket on an OTG cable or hub.
USB Boot
Power on the T100. Good luck - it can be quirky - press and hold the power button until the camera light comes on, then release as soon as it is. If you hold it too long it will just show the battery status.
Enter the BIOS by pressing F2.
Ensure Secure boot turned off in the "Boot" section.
Then go to the "Save & Exit" tab, select the option to boot from the USB device under
Install Sway
Let Sway boot to the live desktop:
Once booted the desktop will present with some options:
I would first recommend using GParted to remove any existing [Windows] partitions from the /dev/mmcblk2 device. Select, each, delete then apply:
Afterwards, run the Installer.
If using the older 22.04 install the calamares config first needs modifying to remove the 2Gb ram limit (impacted by shared graphics ram), edit /etc/calamares/modules/welcome.json
Run through the installer setting your preferred options.
When it comes to disk partitioning select the Erase disk option:
The installation itself will take a while (30-40 minutes) to complete, most of the time is spent unpacking the image and copying files...
At the end of the setup you will get an error saying "Bootloader installation error", this is normal.
Close the error dialog and the installer and move on to the next section.
Fixing the bootloader
Open a terminal and run df -h
so to check the various mounts:
We can see the emmc at /dev/mmcblk2
has two partitions mounted under /tmp/calamares-root-y6uvb1by
. This path suffix is likely to be a random string and vary by installation attempt.
Run sudo chroot /tmp/calamares-root-y6uvb1by
to change the shell root to be in the newly installed operating system.
Then run apt update
(ensure you are online first).
Once that has completed successfully run apt install grub-efi-ia32-bin
.
And once that has completed run grub install --efi-directory /boot/efi
:
The error above can be ignored.
Then run update-grub
:
Again, the error above is safe to ignore.
Optionally, run efibootmgr
to see if ubuntu
is in BootCurrent and if it is first in BootOrder, as shown below:
$ efibootmgr
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0001,0002
Boot0001* ubuntu
Boot0002* UEFI: USB stick
Exit the shell and reboot, removing the USB installer stick.
First Boot
If everything has worked as expected, the laptop will boot in a similar way to when then USB stick was plugged in and will stop at a primative login screen (this is normal):
Log in with the credentials specified during the installation and the desktop will load:
All done!
Conclusion
There are lots of small laptops out there but few are a comparable size to a tablet, with a keyboard and standard x64-based hardware.
The T100 becomes very practical with Linux installed and Ubuntu Sway works well given the limited CPU and Memory resources it has.
The ability to charge it via micro-USB means that it can charge from any 5 volt battery pack - effectively and cheaply extending the battery life, which in itself seems to be pretty decent.
For the price, it's worth a go if the needs are right.
Recent Attemps / Updated Instructions
From Kir Sonoma
This is what I did as of 9/23/2024 with Ubuntu Sway 24.04.1
The laptop was connected to wireless at the beginning of the Ubuntu Sway installation process. I followed all the instructions without issue up until the "Fix Bootloader" portion.
I had the same issue with 'apt update' being unable to resolve the name because of the empty /etc/resolv.conf However, once I mounted the rest of the virtual filesystems, being chrooted into the new install was able to use the existing connection to perform the 'apt update'
Follow the instructions up to the 'df -h' command to check your various mounts.
I had two mount points that were not obvious from the 'df -h' command which only showed the root partition (/dev/mmcblk2p2), but not the boot (/dev/mmcblk2p1). However, by tabbing to autocomplete with the mount command I found the boot partition and then confirmed with gparted.
So I then adapted the commands used here: https://ubuntuforums.org/showthread.php?t=2036730
To finish fixing the bootloader.
# mount root partition
sudo mount /dev/mmcblk2p2 /mnt
# mount boot partition
sudo mount /dev/mmcblk2p1 /mnt/boot/efi
# Mount your virtual filesystems
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
apt update
apt install grub-efi-ia32-bin
grub-install --target=i386-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --force
update-grub /dev/mmcblk2p2
From this point I was able to cleanly shutdown, remove the installation USB, and boot into Ubuntu without issues.