The Droidian Flop
For the last few days I’ve been playing around with running Linux on my Xiaomi Redmi Note 7. I spent most of my time using Droidian and, to be honest, had very little success.
Before diving in I want to say I think Droidian is a fantastic project. None of this is to say its not good, its just not for me.
Hardware
I want to preface any thing I say about performance. This is a fork of Mobian running on a midrange phone from 2019. It is a miracle they have been able to get things this far, especially with how impossible it is to work with arm SoC’s in these devices.
For the most part all the hardware worked. The only issue I had was connecting a USB-C dock. All my peripherals worked with no issues except wired internet. That never worked no matter what I did. I was able to connect 2 HDD’s from a powered dock and that worked just fine.
In general things were slow and not like old phone slow. Just, slow.
The power of convergence
Using this ROM/distro I can see that a phone that can connect to an external display is when it can be used to its full potential. With full Linux under the hood, any application will technically work (performance will vary).
Software
Flatpaks
The software center on Droidian is essentially just Gnome Software. With that, we can install Flathub to the software center and have access to all the flatpaks on the planet. Flatpak is enabled out of the box on Droidain, so all we have to do is install the flatpak plugin.
After installing, all flatpaks on Flathub are available for install. Inside the notes for each application it has badge that shows if the application is desktop only or adaptive. Adaptive is what we want when using an application on the phone. But, if we can connect the phone to a full display with keyboard and mouse, then we can install desktop only applications.
For example, you could have two apps for a Mastodon client. One is adaptive and primarily used for when in phone-mode. The other can be a full desktop client and used when the phone is docked.
Docker and Podman
First of all, Docker will not work. It is not available for this build-type and makes sense as I didn’t expect it to. I just wanted to try.
The system does come with rootless Podman configured. However, I couldn’t get anything to work, not even a hello-world. I spent some time troubleshooting and installing some missing packages, but I could never get it to work. This also meant Distrobox didn’t work either, since it relies on Docker or Podman.
Software round-up
Essentially I could install some flatpaks. No Docker. Podman is broken (along with associated options). No snaps or appimages either. This sucks, but not the end of the world. This may be how we do things in 2023, but the old way of installing from apt or running binaries should be fine.
That is to say when it works. About half of the default apps did work. Some would crash right away and others would just not function. For example, the camera app would open but would be a black screen. Many of the apps also wouldn’t size correctly with menus or text that would be off screen and I would have to rotate the phone to see them.
Alternatives
I had a few ideas for what I could do with this phone if I could get any type of Linux working.
- Remote desktop
- May not be the most performat, but could work for doing specific tasks. Being low powered, it could run forever I would never notice it.
- Jump host
- A secured point to jump off to other devices. I like having a jump host setup that I
sshto and then it cansshto other boxes. Then I can lock down security even more.
- A secured point to jump off to other devices. I like having a jump host setup that I
- Gemini or Hugo blog
- Ultra-low resources and doesn’t run in a container. I am very interested in Gemini and this would be an excuse to run it for a while.
- xmpp server
- Again, no containers and ultra-low resource requirement for like 4 users.
- Tailscale subnet router + exit node
- Similar to a jump host, this would just make my life easier and run on very low power.
Unfortunately I never got a chance. Droidan wasn’t working with wired internet, so I decided to try out PostmarketOS. The version for the Redmi Note 7 is a community project and most things don’t work. But, I only needed Linux and wired ethernet.
I could never get PostmarketOS to boot. Just stuck on loading.
Final thoughts
I think I can still pull off the items I have above with Droidian and just sacrifice only having wifi. The reason why I haven’t is because I thought, “Why bother?” There are tons of great ROMs available for this phone (although old) and I would rather play with those instead.
I can run Linux in a proot environment, get wired internet, more stability and probably more software options.
So that’s what I’m doing now. I just loaded DivestOS and will start testing out various proot setups. DivestOS is essentially a more private version of LineageOS with some tweaks, changes to defaults, and no GApps.
I’m also more excited for Linux on mobile than I was previously. I knew this was going to be rough and is still technically early days. The mobile ecosystem is so locked down that all of these projects are making magic happen. The number of different projects is exciting! The number of devices landing official support in the Linux kernel is awesome! We are getting close.
I’ve been daily-driving Linux since Ubuntu 10.04 and this feels very much like those days. The only downside is we can’t dual boot to fill in the gaps.
Setup
For those that want it, this is how to get it install. it is pretty straightforward.
These instructions assume you have unlocked the bootloader and have installed a custom recovery.
First, revert back to MIUI 11 (Android 9):
- Boot to recovery
adb reboot recovery - Advanced -> wipe cache
- Install -> adb sideload
adb sideload <name of file>.zip
Originally downloaded from here: MIUI firmware download - Redmi Note 7
Next, boot into MIUI and rush through the initial setup process, then unlock Developer Options. Enable adb and then reboot into fastboot.
Last, run the setup script for Droidian. Download the image here:
You can choose between Phosh and Cutie. These are essentially the DE for Droidian. AFAIK Cutie is abandoned, so I went with the Phosh download.
After downloading, boot to fastboot. Extract the archive and run the script. It will install everything on its own.
- - - - -
Did you like this post? Give it an upvote by clicking on the arrows below! Sending me an upvote is like you and I giving each other a high five.
🙏 😎
Thank you for reading! If you would like to comment on this post you can start a conversation on the Fediverse. Message me on Mastodon at @cinimodev@masto.ctms.me. Or, you may email me at blog.discourse904@8alias.com. This is an intentionally masked email address that will be forwarded to the correct inbox.If you enjoy the random stuff I write here, post to Mastodon, or watch on YouTube, and are feeling generous, I am open to tips of Ko-fi.