Sam Thursfield<p><strong>Media playback tablet running GNOME and postmarketOS</strong></p><p>A couple of years ago I set up a simple and independent <a href="https://samthursfield.wordpress.com/2023/09/06/quickball-media-server-v2/" rel="nofollow noopener noreferrer" target="_blank">media streaming server</a> for my <a href="https://bandcamp.com/ssssam" rel="nofollow noopener noreferrer" target="_blank">Bandcamp music collection</a> using a Raspberry Pi 4, Fedora IoT and Jellyfin. It works nicely and I don’t have to play any cloud rent to Spotify to listen to music at home.</p><p>But it’s annoying having the music playback controls buried in my phone or laptop. How many times do you go to play a song and get distracted by a WhatsApp message instead?</p><p>So I started thinking about a tablet that would just control media playback. A tablet running a non-corporate operating system, because music is too important to allow Google to stick AI and adverts in the middle of it. Last month Pablo told me that postmarketOS had pretty decent support for <a href="https://wiki.postmarketos.org/wiki/Xiaomi_Mi_Pad_5_Pro_(xiaomi-elish)" rel="nofollow noopener noreferrer" target="_blank">a specific mainstream tablet</a> and so I couldn’t reset buying one second-hand and trying to set up GNOME there for media playback.</p><p>Read on and I will tell you how the setup procedure went, what is working nicely and what we could still improve.</p><p><strong>What is the Xiaomi Pad 5 Pro tablet like?</strong></p><p>I’ve never owned a tablet so all I can tell you is this: it looks like a shiny black mirror. I couldn’t find the power button at first, but it turns out to be on the top. </p><p>The device specs claim that it has an analog headphone output, which is not true. It does come with a USB-C to headphone adapter in the box, though.</p><p>It comes with an antagonistic Android-based OS that seems to constantly prompt you to sign in to things and accept various terms and conditions. I guess they <a href="https://www.penny-arcade.com/comic/2002/07/19/with-friends-like-these" rel="nofollow noopener noreferrer" target="_blank">really want to get to know you</a>.</p><p>I paid 240€ for it second hand. The seller didn’t do a factory reset before posting it to me, but I’m a good citizen so I wiped it for them, before anyone could try to commit online fraud using their digital identity. </p><p><strong>How easy is it to install postmarketOS + GNOME on the Xiaomi Pad 5 Pro?</strong></p><p>I work on systems software but I prefer to stay away from the hardware side of things. Give me a computer that at least can boot to a shell, please. I am not an expert in this stuff. So how did I do at installing a custom OS on an Android tablet?</p><p><strong>Figuring out the display model</strong></p><p>The hardest part of the process was actually the first step: getting root access on the device so that I could see what type of display panel it has.</p><p>Xiaomi tablets have some sort of “bootloader lock”, but thankfully this device was already unlocked. If you ever look at purchasing a Xiaomi device, be <strong>very</strong> wary that Xiaomi might have locked the bootloader such that you can’t run custom software on your device. Unlocking a locked bootloader seems to require their permission. This kind of thing is a big red flag when buying computers.</p><p>One popular tool to root an Android device is Team Win’s <a href="https://twrp.me/about/" rel="nofollow noopener noreferrer" target="_blank">TWRP</a>. However it didn’t have support for the Pad 5 Pro, so instead I used <a href="https://github.com/topjohnwu/Magisk" rel="nofollow noopener noreferrer" target="_blank">Magisck</a>.</p><p>I found rooting process with Magisck complicated. The only instructions I could find were in this video named “<a href="https://www.youtube.com/watch?v=zHdD53ghM-4" rel="nofollow noopener noreferrer" target="_blank">Xiaomi Pad 5 Rooting without the Use of TWRP | Magisk Manager</a>” from <em>Simply Tech-Key (Cris Apolinar)</em>. This gives you a two step process, which requires a PC with the Android debugging tools ‘adb’ and ‘fastboot’ installed and set up.</p><p><strong>Step 1: Download and patch the boot.img file</strong></p><p></p><ol><li>On the PC, download the boot.img file from the stock firmware. (See below).</li><li>Copy it onto the tablet.</li><li>On the tablet, download and install the Magisck Manager app from the <a href="https://github.com/topjohnwu/Magisk/releases" rel="nofollow noopener noreferrer" target="_blank">Magisck Github Releases page</a>.</li><li>Open the Magisck app and select “Install” to patch the boot.img file.</li><li>Copy the patched boot.img off the tablet back to your PC and rename it to <code>patched_boot.img</code>.</li></ol><p>The <code>boot.img </code>linked from the video didn’t work for me. Instead I searched online for <em><span>“xiaomi pad 5 pro stock firmware rom”</span></em> and found one that worked that way.</p><p>It’s important to remember that downloading and running random binaries off the internet is <em>very</em> dangerous. It’s possible that someone pretends the file is one thing, when it’s actually malware that will help them steal your digital identity. The best defence is to factory reset the tablet before you start, so that there’s nothing on there to steal in the first place.</p><p><strong>Step 2: Boot the patched boot.img on the tablet</strong></p><ol><li>Ensure developer mode is enabled on the tablet: go to “About this Device” and tap the box that shows the OS version 7 times.</li><li>Ensure USB debugging is enabled: find the “Developer settings” dialog in the settings window and enable if needed.</li><li>On the PC, run <code>adb reboot fastboot</code> to reboot the tablet and reach the bootloader menu.</li><li>Run <code>fastboot flash boot patched_boot.img</code> to boot the patched boot image.</li></ol><p>At this point, if the <code>boot.img</code> file was good, you should see the device boot back to Android and it’ll now be “rooted”. So you can follow the instructions in the <a href="https://wiki.postmarketos.org/wiki/Xiaomi_Mi_Pad_5_Pro_(xiaomi-elish)" rel="nofollow noopener noreferrer" target="_blank">postmarketOS wiki page</a> to figure out if your device has the <em>BOE</em> or the <em>CSOT</em> display. What a ride!</p><p><strong>Install postmarketOS</strong></p><p>If we can find a way to figure out the display without needing root access, it’ll make the process substantially easier, because the remaining steps worked like a charm.</p><p>Following the wiki page, you first install <a href="https://gitlab.postmarketos.org/postmarketOS/pmbootstrap" rel="nofollow noopener noreferrer" target="_blank">pmbootstrap</a> and run <code>pmbootstrap init</code> to configure the OS image. </p><a href="https://samthursfield.wordpress.com/wp-content/uploads/2025/03/image.png" rel="nofollow noopener noreferrer" target="_blank"></a><p><em>A note for Fedora Silverblue users: the bootstrap process doesn’t work inside a Toolbx container. At some point it tries to create <code>/dev</code> in the rootfs using <code>mknod</code> and fails. You’ll have to install pmbootstrap on the host and run it there.</em></p><p>Next you use <code>pmbootstrap flasher</code> to install the OS image to the correct partition.</p><p>I wanted to install to the <code>system_b</code> partition but I seemed to get an ‘out of disk space’ error. The partition is 3.14 GiB in size. So I flashed the OS to the <code>userdata</code> partition. </p><p>The build and flashing process worked really well and I was surprised to see the postmarketOS boot screen so quickly.</p> <a href="https://samthursfield.wordpress.com/wp-content/uploads/2025/03/image-3.png" rel="nofollow noopener noreferrer" target="_blank"></a> <p><strong>How well does GNOME work as a tablet interface?</strong></p><p>The design side of GNOME have thought carefully about making GNOME work well on touch-screen devices. This doesn’t mean specifically optimising it for touch-screen use, it’s more about avoiding a hard requirement on you having a two-button mouse available.</p><p>To my knowledge, nobody is paying to optimise the “GNOME on tablets” experience right now. So it’s certainly lacking in polish. In case it wasn’t clear, <em>this one is</em> <em>for the real headz.</em></p><p>Login to the machine was tricky because there’s no on-screen keyboard on the GDM screen. You can work around that by SSH’ing to the machine directly and creating a GDM config file to automatically log in:</p><pre><code>$ cat /etc/gdm/custom.conf # GDM configuration storage[daemon]AutomaticLogin=mediaAutomaticLoginEnable=True</code></pre><p>It wasn’t possible to push the “Skip” button in initial setup, for whatever reason. But I just rebooted the system to get round that.</p><a href="https://samthursfield.wordpress.com/wp-content/uploads/2025/03/image-4.png" rel="nofollow noopener noreferrer" target="_blank"></a><p>Enough things work that I can already use the tablet for my purposes of playing back music from Jellyfin, from Bandcamp and from elsewhere on the web.</p><p>The built-in speakers audio output doesn’t work, and connecting a USB-to-headphone adapter doesn’t work either. What does work is Bluetooth audio, so I can play music that way already.</p><p>I disabled the automatic screen lock, as this device is never leaving my house anyway. The screen seems to stay on and burn power quickly, which isn’t great. I set the screen blank interval to 1 minute, which should save power, but I haven’t found a nice way to “un-blank” the screen again. Touch events don’t seem to do anything. At present I work around by pressing the power button (which suspends the device and stops audio), then pressing it again to resume, at which point the display comes back.</p><p>Apart from this, everything works surprisingly great. Wi-fi and Bluetooth are reliable. The display sometimes glitches when resuming from suspend but mostly works fine. Multitouch gestures work perfectly — this is first time I’ve ever used GNOME with a touch screen and it’s clear that there’s a lot of polish. The system is fast. The Alpine + postmarketOS teams have done a great job packaging GNOME, which is commendable given that they had to literally <a href="https://postmarketos.org/blog/2024/03/05/adding-systemd/" rel="nofollow noopener noreferrer" target="_blank">port systemd</a>.</p><p><strong>What’s next?</strong></p><p>I’d like to figure out how un-blank the screen without suspending and resuming the device. </p><p>It might be nice to fix audio output via the USB-C port. But more likely I might set up a DIY “smart speaker” network around the house, using single-board computers with decent DAC chips connected to real amplifiers. Then the tablet would become more of a remote control.</p><p>I already <a href="https://opencollective.com/postmarketos" rel="nofollow noopener noreferrer" target="_blank">donate to postmarketOS on Opencollective.com</a>, and I might increase the amount as I am really impressed by how well all of this has come together.</p><p>Maenwhile I’m finally able to hang out with my cat listening to <a href="https://vladimirchicken.bandcamp.com/album/maharajah-single" rel="nofollow noopener noreferrer" target="_blank">my favourite Vladimir Chicken songs</a>.</p><p></p><a href="https://samthursfield.wordpress.com/wp-content/uploads/2025/03/image-5.png" rel="nofollow noopener noreferrer" target="_blank"></a><p><a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://samthursfield.wordpress.com/tag/gnome/" target="_blank">#gnome</a> <a rel="nofollow noopener noreferrer" class="hashtag u-tag u-category" href="https://samthursfield.wordpress.com/tag/postmarketos/" target="_blank">#postmarketos</a></p>