In my previous post I wrote about SuSE Linux (SLES and openSuSE) on the Raspberry Pi 3. I had a variety of problems that caused me to end up rather disappointed and frustrated. So I'm hoping for much better results, and a better experience with Fedora 25, Ubuntu MATE, and Manjaro ARM on both the Raspberry Pi 2 and 3.
All three of these are 32-bit distributions which do not try to use the 64-bit architecture (aarm64) of the Pi 3, but at this point I am much more interested in successful installation and operation than I am in exploring the latest capabilities of the Pi 3 architecture.
The really good news here is that the Raspberry Pi distribution is a full-fledged member of the Fedora family. That means that the standard Fedora Workstation (Gnome 3) is not the only version available, most of the other Fedora Spins are available as well, including KDE, MATE, Xfce and LXDE. Oh, and the Server and Minimal distributions too! I think the spins are probably the best news of all, because I shudder to think what using Gnome 3 is going to be like on a Raspberry Pi 2...
Hmmm, I wonder if the i3wm packages will also be available after I install Fedora. I can't wait to find out, because I've been trying to find a way to get a current version of i3 running on a Pi for some time now. I'm keeping my fingers crossed on this one.
I started by downloading the standard Fedora Workstation (Gnome 3 desktop) image, and then copying it to a microSD card. I gave a simple example of this in the previous post, but here is a more complete and robust example:
xz -cd IMAGE.xz | dd of=/dev/sdX bs=4M iflag=fullblock oflag=direct status=progress
As usual, replace IMAGE with the specific file name that you just downloaded, and sdX with the device name for your SD card. The flags added to the end are just to add some insurance; they tell the dd command to make sure that it reads a full block on each input, to write the output directly from the input buffer, and to give you a nice status display as it works. This command can take quite a while to complete, so the status line can be a nice touch if you want to see that it is still alive and running.
I then inserted that card into a Raspberry Pi 3 and powered up... and it booted like a dream! Yes! The initial boot sequence walks through a setup/configure process which asks for the language, keyboard layout, timezone and user account creation. It then continues to boot up to a login screen - where I got my first unpleasant surprise.
Once again, my Logitech Unifying keyboard/mouse receiver didn't work. Well, sort of didn't work. I discovered that it kind of worked, the mouse was ok, but the keyboard didn't work.
So I plugged in the wired USB keyboard that I still had handy after the SuSE tests, and that worked. But then I stumbled across the really weird part - the Unifying keyboard now worked, as long as a wired keyboard was also plugged in. Figure that one out! I plugged things in and out several times just to be sure that it was really doing what I thought it was. Yup, it was. Very weird.
Anyway, once I got logged in, and the desktop came up (which took quite some time), it looked like this:
The wired network connection worked just fine, but the Raspberry Pi 3 built-in WiFi and Bluetooth adapters don't work. At this point I decided to go back and look more carefully at the Fedora Wiki page to see what it said about hardware support. Hmm. Under Supported Hardware it only says 'Raspberry Pi Model B versions 2 and 3'. No details about specific chips, adapters and peripherals. But in the Frequently Asked Questions it gives a lot more information:
- Pi 3 WiFi: Not yet. Soon, hopefully
- Pi 3 Bluetooth: Not yet. Soon, hopefully
- Sound: Not yet. Soon, hopefully.
- Camera: Not yet.
- Accelerated Media Decoding: Not yet.
- HDMI-CEC (Consumer Electronics Control): Yes!
- Touch Display: Not yet. Soon, hopefully.
- Composite Video Out: Not yet. Soon, hopefully.
- HATs: Not yet. Soon, maybe. It's complicated.
- GPIO: Not yet.
- SPI (Serial Peripheral Interface): Yes!
- I2C: Yes!
Whew, there are precious few Yes answers there, but a lot of hope for the future.
I then shut down the Pi 3, and tried a Pi 2 with the same card - and it booted! Hooray! Well, it booted, but it was slow, like I don't think I've ever seen anything so slow running Linux before. It was minutes before the login screen came up, and then several more minutes after I entered my login name and password before the Gnome desktop was up and seemed to be ready to use.
I say "seemed to be ready" because I am now convinced that this version is simply too slow to be usable on the Pi 2. Besides the obvious things like taking several minutes to do simple things like start a new application window, it is so slow that it actually misses things like mouse clicks and key presses. The mouse problem is irritating - you click something, and nothing happens, but you're used to it taking a minute or two so you wait until after several minutes you click the same thing again, and then finally something (slowly) starts to come to life.
But the keyboard problem is a lot more than just irritating. In case you don't know much about low-level input, a keystroke is actually made up of two separate events - a key press and a key release. One or both of these events is intermittently being missed on the Pi 2, so for example sometimes when I typed a single character it would simply repeat endlessly, as if I were holding the key down, because the key release event had been missed. Not good. Really, really not good.
As I said, this kind of problem makes Fedora 25 Workstation unusuable on the Pi 2 as far as I am concerned. I can't imagine that anyone would tolerate these problems for more than a minute a two before giving up. So the next logical step was to try one of the Spins, in hopes that a lighter weight desktop would not have some of these problems.
I decided to go to the other extreme, and installed Fedora 25 LXDE. Download, copy to SD and boot were the same. The initial boot/configuration sequence was slightly different, because it looked like it actually used Anaconda to get the timezone, user account and root password - but unfortunately it didn't give me the opportunity to select the keyboard layout.
Once it was up and I logged in, I once again hit a wall - and unfortunately an even worse one than with the Workstation (Gnome) version. Trying to launch any application simply hung the Pi, permanently. Ugh. Really not good.
OK, one more try - but only because I like Fedora a lot, and I really want it to work... I thought maybe the LXDE version wasn't getting as much attention as the more common Xfce version (see, I can rationalize anything!). So I downloaded and installed the Xfce spin. It booted, and I started an xterm. That worked, so I was encouraged... then I tried to start Firefox, and it hung again. Grrr. Reboot (read as: yank the power cord in disgust), login again, and this time even starting an xterm caused it to hang. Rats! Ok, I give up, at least for now.
It is clear, though, that work on Fedora for the Raspberry Pi is continuing, because after I completed this sequence of tests, I came back a day later just to check a couple more things, and it found 445 more updates to install! I let the Workstation (Gnome) version slog through downloading and installing those (which took the best part of an hour), then rebooted with high hopes once again. Only to have those hopes dashed on the cruel shoals of reality. It still had the same performance problem, still missed keystrokes and mouse clicks, and the Pi 3 built-in WiFi and Blutooth were still not recognized.
I am nothing if not determined, though. I thought, heck, that many updates, they must have at least found what was causing the Xfce and LXDE desktops to hang... so I let the whole update process slog through again on the Xfce version. Another hour. It's a good thing I was making chocolate chip cookies while all of this was going on, so I had something else to do.
Then came the final blow... after the updates finished I rebooted, and got nothing but kernel panics. I didn't even bother to try to figure out why. Enough is enough.
So at this point I am ready to say that Fedora 25 Workstation (Gnome 3 desktop) works, and could be used on the Pi 3 if you have sufficient patience, but on the Pi 2 it is so slow and error-prone that it is unusable. Time to move on to the next candidate.
I make no secret of my admiration for the Manjaro Linux distribution, and the Manjaro ARM version is one more reason for that admiration. A new release (16.12) was announced just before Christmas, so I have been really looking forward to trying that out. Unlike all of the other non-Raspbian distributions I have looked at so far, Manjaro ARM is not for the Pi 2 & 3 only, there is a version for the original Raspberry Pi (now known informally as the Pi 1) and the Pi Zero.
The installation images are available on the Manjaro-ARM Downloads page, in four variations:
- Minimal Edition: No GUI or desktop, gives you a simple text-mode login and CLI prompt. The full repos are available, so you can start from the Minimal Edition and create whatever you want, exactly the way you want it.
- Base Edition: Xfce desktop, very similar to the flagship Manjaro distribution.
- Server Edition: No GUI desktop, but preloaded and configured with a LAMP stack (Linux, Apache, MySQL and PHP/Python/Perl).
- Media Edition: Kodi preinstalled for media streaming
For the Raspberry Pi 2 and 3, there are also Community Editions with KDE, MATE and LXQt desktops available.
The distribution files are ZIP-compressed images, rather than xz-compressed like the others we have seen so far. The general procedure for copying the image to disk is similar to those above, just substitute unzip -p for xz -cd.
The first boot does not include any kind of setup or configuration sequence, so it comes up with a U.S. keyboard layout, and with the default user manjaro. The first thing to do is at least change the default password for that account, or even better create a new user account for yourself and then disable or delete the manjaro account.
As with the previous two distributions, I tried Manjaro ARM on the Raspberry Pi 3 first. My first impression was positive - it was noticeably faster than Fedora had been.
Hardware support is good, the Pi 3 WiFi and Bluetooth adapters came right up, and even my Unifying keyboard and mouse worked! Yay! My spirits were rising again now.
The first thing I did, again, was install the latest updates. The Octopi notifier in the panel announces that updates are available, so you can just right-click that and select Update Manager to get them going.
I spent a good bit of time trying things out on the Pi 3 with Manjaro (in fact, I am still writing this post on it right now), and it really does seem to work quite well. Admittedly it is slow - probably slower than most people would be willing to tolerate as an everyday work system. But as was the case with Ubuntu MATE, once you get an application loaded and running, it seems to chug along at a decent rate. It's just getting new things started that really takes a painful amount of time.
I've only run into one significant problem with it so far. The default browser is Chromium, which of course is not my favorite. But the real problem was that when I tried to use it, it didn't seem to be good for much other than saying "Well, snap, there was a problem displaying that page". After a couple of repetitions of that I gave up and installed Firefox, and that seems to work just dandy.
Now, remember at the beginning of this post I said that I was looking for a chance to try the i3 desktop on a Raspberry Pi? I decided this was the time. I have used Manjaro i3 on several of my laptops, and it works very well. So if the i3 packages are available in the Manjaro ARM repos, this could be a good opportunity.
A quick check in the Octopi package manager, and there they were! Hooray! Downloading and installing took just a minute or two, then I simply logged out, I didn't even reboot. The Session selection at the top right of the Manjaro login screen now included i3 as well as Xfce, and when I chose that and then logged in, I got a lovely i3 desktop. Best of all, login was noticeably quicker than it had been with Xfce, and the overall feel seemed better as well.
I started Firefox, Thunar and an xterm, just for demonstration purposes, and it all came up very nicely:
Wow, is this ever good. I was so pleased with it, and so absorbed in testing, adjusting, and generally marveling at it that I nearly burned a tray of cookies!
I wrote about Ubuntu MATE on the Pi 2 & 3 last May, and most of what I said then is still true so I won't repeat it all here. The Ubuntu MATE for the Raspberry Pi 2 and Raspberry Pi 3 web page still doesn't mention the fact that the installation image doesn't fit on some 8GB microSD cards, so watch out for that - the simple solution is to just use a 16GB card for this installation.
When I got to the Download page my hopes were briefly raised by the choice between 16.04 LTS and 16.10, but unfortunately the Raspberry Pi download is only available for 16.04 LTS. I was then concerned that the Raspberry Pi version might be getting left behind, but that seems not to be the case. For the main distribution they are going to stick to LTS versions, but if you want/need 16.10 and later non-LTS versions, you can upgrade after installation.
The download is a 1.1GB xz-compressed image, which then must be uncompressed and copied to an SD card. The commands to do this are the same as given above for Fedora.
I covered the rest of the installation and initial configuration in considerable detail in my previous post about this distribution, so please refer to that for instructions. Once you get through the first boot and initial configuration, you will get a desktop like this:
Because this is still the Ubuntu 16.04 LTS distribution, there are a LOT of updates available now, and it is important that you get them installed right away. Go to System/Administration/Software & Updates, and let them install. The update installation takes a very long time - don't just plan to get a cup of coffee while they download and install, it's more like go for lunch and a nap. When it has finally finished you have to reboot, and then you're ready to go.
The built-in WiFi and Bluetooth both worked with no problem. The controls to connect to a wireless network, and to pair with a Bluetooth mouse were familiar and easy to use. The MATE desktop actually performs pretty well on the Pi 3, and was pleasant to use.
Similarly on the Pi 2, every WiFi and Bluetooth dongle that I have worked without problem. Performance was obviously somewhat less than on the Pi 3, but nowhere near the extreme difference that I had seen with Fedora between the 2 and 3.
There's not much else I can add here that I didn't say already the last time I looked at Ubuntu MATE, so check there if you want more details.
I'm a bit surprised, disappointed and encouraged all at the same time. Surprised and disappointed by the number of problems that I had with Fedora 25, and the magnitude of some of those problems, particularly on the Pi 2 and with the Fedora spins. I was really hoping that I would be able to install Fedora and just use it reasonably happily, and it did not turn out that way. I will cling to the positive side, though, that this is now an official Fedora distribution, they are continuing to work and improve it, and that means it is very likely going to get steadily better. Perhaps by the time Fedora 26 comes along it will be a lot more like what I was hoping for right now.
But I am encouraged by both Manjaro ARM and Ubuntu MATE. Both of these installed easily and worked really well. Both recognized the Pi 3 built-in WiFi and Bluetooth adapters, and both performed reasonably well.
The best of all for me personally, though, was getting i3 installed on Manjaro ARM, and seeing how well it worked. Beyond the fact that I really like i3, I also think that it is a particularly good match for the Raspberry Pi. It is small, light and fast, and it stays completely out of your way.
What's next? For the final installment of this series I'm going to focus on the original Pi Model B and B+, and the Pi Zero. That means I will be trying the Manjaro Minimal distribution and PiCore Linux. If I am very ambitious, and very lucky, I also hope to try adding the i3 desktop to the Manjaro Minimal distribution.