Fedora 28 on Raspberry Pi 3 B+

The Raspberry Pi model 3 B+ (RPi 3 B+) is the latest available in the Raspberry Pi series, released in mid-March 2018. RPi 3 B+ has some nice features and improvements over the previous RPi 3 B. They include faster 1.4 GHz processor clock speed, Gigabit Ethernet speed, dual-band 2.4GHz and 5GHz wifi support, and Bluetooth 4.2.

Fedora 28 was released soon after the RPi 3 B+. The good news is it supports the RPi 3 B+, as well as the RPi Model B versions 2 and 3. Images are available to download for both ARMv7 (32-bit) and aarch64(64-bit). This article will show you how to get wifi running on the RPi 3 B+.

Writing image to SD card

First, download a Fedora 28 image here. For this example, download the Fedora 28 aarch64 Workstation image and then write it to the SD card:

$ wget https://dl.fedoraproject.org/pub/fedora-secondary/releases/28/Workstation/aarch64/images/Fedora-Workstation-28-1.1.aarch64.raw.xz

Now, find out where the SD card has been mounted on the system by running dmesg:

$ dmesg
...
30046.093242] sd 4:0:0:0: [sdb] 62333952 512-byte logical blocks: (31.9 GB/29.7 GiB)
...

Here the card is mounted on /dev/sdb. This may be different on your system. Now, to write the image to the SD card, use the dd command:

$ xzcat Fedora-Workstation-28-1.1.aarch64.raw.xz | sudo dd status=progress bs=4M of=/dev/sdb

10737418240 bytes (11 GB, 10 GiB) copied, 1200.19 s, 8.9 MB/

Now you’ve successfully written the image to the SD card.

Next, in order to have the built-in wifi working you must download some missing firmware files and make them available in the directory /usr/lib/firmware/brcm/.

First, mount the root filesystem and add these files so that they will be available during boot. Use the lsblk command to find out where the root filesystem is available:

$ lsblk
...
sdb    8:16 1 29.7G 0 disk 
├─sdb1 8:17 1 200M  0 part 
├─sdb2 8:18 1 1G    0 part 
├─sdb3 8:19 1 1G    0 part 
├─sdb4 8:20 1 1K    0 part 
└─sdb5 8:21 1 7.8G  0 part

In this case the root filesystem is in sdb5, so mount it and add the missing firmware files:

$ sudo mkdir /mnt/foo && sudo mount /dev/sdb5 /mnt/foo/
$ sudo curl https://fedora.roving-it.com/brcmfmac43455-sdio.txt -o /mnt/foo/usr/lib/firmware/brcm/brcmfmac43455-sdio.txt
$ sudo curl https://fedora.roving-it.com/brcmfmac43455-sdio.clm_blob -o /mnt/foo/usr/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob
$ sudo umount /mnt/foo

It is also possible to add the firmware files after the first boot. That method requires the Raspberry Pi 3 B+ to connect to internet via Ethernet. After you download the firmware files, to load the firmware the Raspberry Pi 3 B+ needs a system reboot.

Booting and initial configuration

Insert the prepared SD card into the Raspberry Pi 3 B+ connected to a monitor. Boot starts as soon as the RPi 3 B+ has a 5-volt, 2.5-amp power supply. The monitor displays the boot process output.

During first boot, the system takes you to the initial UI setup page where you configure user details. It also lists available networks to get connected via wifi. After these steps, you’ll see the regular GNOME Desktop.

Connecting to wifi using CLI

This section is useful in case you boot the Server image where there’s no graphical interface.

$ nmcli device wifi list
IN-USE SSID         MODE   CHAN  RATE SIGNAL BARS SECURITY
       SSID_2.5_GHz  Infra  10   195   Mbit/s 100 ▂▄▆█ WPA2
       SSID_5_GHz I  nfra   149  405   Mbit/s 72  ▂▄▆_ WPA2
$ nmcli device wifi connect SSID_5_GHz password $PASSWORD

$ nmcli device wifi list
IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
       SSID_2.5_GHz Infra 10 195 Mbit/s 100 ▂▄▆█ WPA2
 *     SSID_5_GHz I nfra 149 405 Mbit/s 72 ▂▄▆_ WPA2

Notice that the Raspberry Pi 3 B+ connects to 5 GHz wifi.

Known Issues

Fedora 28 works perfectly fine on Raspberry Pi 3 B+, but there are some issues to keep in mind.

  • The aarch64 Server image doesn’t have the NetworkManager-wifi package pre-installed . Install this package first before trying to connect to the wifi network. Other images already have this package.
  • Sometimes having a keyboard and mouse connected to the Raspberry Pi 3 B+ can cause the boot process to get stuck. In that case, remove them and re-insert them after the boot process completes.

Getting help

Raspberry Pi 3 B+ is one of the coolest and most popular single board computer devices available with Fedora 28 support. Give it a try and use it to run your favorite IoT application!

There is a FAQ available at the Fedora ARM wiki page which may help answer some of your questions. If it doesn’t, reach out for help or suggestions in the following places:

Using Hardware

29 Comments

  1. wded

    what about orange and pine?
    i need fedora on clockworkpi

  2. wwed

    what happened when i boot raspberry without hdmi screen and after bot i plug in hdmi? screen will be working?

  3. Edgar Trujillo

    great, let’s try it, for when will the spins be?

    • Eduard Lucena

      Spins are ready too. Follow the link called “available for download” in the article and you will find them.

  4. Rene Reichenbach

    Great Tutorial. Wuould love to see more like this e.g. for other boards like Allnet H3 or Rockchip based ones. I love fedora and hate to use debian based images all the time for those gadgets.

    Keep doing that stuff !

  5. RedBren

    Is the GPIO interface fully supported now? Fedora is my preferred distribution on all my other computers; it would be good to be able to install it on the rPi.

  6. Bill Chatfield

    You’re using the Workstation image so you’re implying that Gnome 3 is going to work on a machine with 1 GB (or 0.5 GB for a RPi 2B) when it can’t even function on my 2 GB Intel-based machine? A machine with 8GB is required to run Gnome 3 along with any other applications like a web browser. You can get away with running Gnome 3 in 4GB if you don’t want to run any applications. I’m not being sarcastic. It’s the plain truth. The setup your proposing really seems useless as it is going to start swapping simply by running the desktop with no applications.

    • Big Husky

      Could’t agree more. 4GB is absolute minimum with Fedora 28 and even with that you will start swapping quickly by only using the browser and maybe some more simple programs. It would sure be great to know where this ‘bloat’ has come from and makes for very limited installation cases at this point. Just do a plain install and launch on a system with 2GB and you will see your swap being used pretty much instantly. I think this is actually the main ‘feature’ of the last 3 releases. Use more and more memory for the same functionality. I believe the latest Ubuntu is ‘suffering’ from the similar issue, so I am guessing this is directly related to Gnome 3. Can’t see this working on our pi’s with Gnome 3

      • madmax

        In my case (4GB laptop, not a Raspberry), the situation got much better after installing Avi Kivity’s gjs copr: https://copr.fedorainfracloud.org/coprs/avik/misc/package/gjs/

        You can see the details in https://bugzilla.redhat.com/show_bug.cgi?id=1539258 and upstream reports linked there. gjs added logging to help find accesses to deleted objects, GNOME-shell still have a lot of those, and there’s a constant stream going to the logs (and hitting the disk and making life miserable). Avi’s gjs doesn’t solve the root cause, of course. It just changes the level of those messages (or some of them) from critical to debug, so that they don’t go to the log unless you want them to.

        • Bill Chatfield

          Thanks madmax! That is great info. I have been trying to figure this out for a long time and very rarely see this problem acknowledged by the Fedora community. I guess they must all use 16 GB machines and don’t care. But I like to make use of older machines. Linux is very capable of running on older machines if you don’t have applications that waste memory.

    • Tim E

      Ditto to this. I have a Raspberry Pi 3 Model B.
      The armhf (32-bit) Fedora Worstation image while it does boot to login, is completely unusable…freezes almost immediately.
      One should also mention that class 6, or faster, SD card is needed for the image.

      Where is the AArch64 MATE or LXDE images for Raspberry Pi 3?

    • Avant

      Not sarcastic at all, that’s the brutal truth!!

      https://anholt.github.io/twivc4/2018/05/30/twiv/

      • Bill Chatfield

        Avant, I just read that article. Thanks for sharing that! It’s good to see that someone is working on the problem.

    • Tim E

      Where are the Fedora Workstation LXDE and MATE aarch64(64-bit) spin images?

      Fedora Workstation GNOME is unusable on Raspberry PI 3 Model B. One can boot into the graphical environment, but system becomes unresponsive often: not ready for general release. (How is GNOME 3 ever going to run on a phone?)

      Additionally, one needs to pay attention to the class of the SD card…must be class 6 or 10 if I recall…write operations are still a bottleneck.

  7. YS

    Any reason to not use fedora-arm-image-installer ?

    • Jeff Johnson

      That’s a good question but I’m thankful this article did NOT promote fedora-arm-image-installer. I use CentOS on my laptop and found it difficult to add a fedora VM just so I could create a bootable SD card for PI. I’ve been using DD from my first pi forward.

  8. Anonymous

    What’s the difference between dd’ing the image directly and using

    arm-image-installer

    ?

  9. ee

    how turn off logging to disk (only to ram)
    i have sd as disk, logs damaged my disk

  10. Anonymous

    there is another issue while booting. including mouse and keyboard, sometimes connected Ethernet cable also causes the boot process to get stuck. note: remove cable and plug it in after fedora boots

  11. Katakislives

    I have used it on a rpi3 (first version) and it is slow as hell, at least with gnome3. I would recommend a fast sdcard and other desktop environment.

  12. anonymus

    I tried out the workstation installation, but Gnome3 doesn’t work on a Pi. There is also a minimal installation (https://alt.fedoraproject.org/alt/) and you can extend it with sudo dnf groupinstall base-x, sudo dnf groupinstall xfce-desktop, sudo systemctl enable lightdm, sudo systemctl set-default graphical.target.
    Then you have a nice working xfce-desktop environment.

    • Tim E

      Thank you! I can boot into LXDE.
      I didn’t know about base-x nor the systemd commands. I also expand the swap partition to 2GiB.

      sudo dnf groupinstall base-x

      sudo dnf groupinstall lxde-desktop

      sudo endable lxdm

      sudo set-default graphical.target

      It doesn’t seem to boot reliably…sometime in the boot process the HDMI display powers off and doesn’t comeback on.

  13. Bill Chatfield

    Thank you Sinny Kumari for writing this article. You did a fine job. I did not intend to be critical of your article. My issue is with the technology behind it. And I didn’t intend to just be critical. I’m trying to help users find the right option and I’m trying to provide feedback to the developers of the distribution.

    For USERS of Fedora on Raspberry Pi you’re going to have to choose the LXDE edition of Fedora right now because nothing else is going to really be usable in 1 GB or less of RAM. This is the same conclusion that the developers of Raspberry Pi came to with Raspbian which uses LXDE on Debian.

    For the DEVELOPERS of Fedora on Raspberry Pi, you need to be recommending Fedora LXDE because otherwise you’re going to alienate your users with releases that just don’t work.

    In general Fedora developers have to be much more conscious of memory usage and optimize the software as much as possible. With the RPi and IoT in general, Fedora needs to run with a smaller memory footprint. This is not getting done right now. Fedora is going to continue to get killed in this area by Raspbian (Debian + LXDE + PIXEL) until memory requirements can be reduced. The main culprits are Gnome 3 and Python. Feedback needs to go back to the Gnome folks that they are using too much memory. Everyone seems to know that, but the Gnome folks don’t seem to care. We have to reincorporate a culture of efficiency in programming instead of the “use whatever technology you want” philosophy. For sure, use whatever technology you want, but also make sure it is efficient as possible. Efficiency is a critical part of the art of programming and it should not be left out. I am a Java programmer during the day but I would never suggest using Java to write core applications in Fedora because Java is a memory hog. It is fine for corporate servers, but not consumer devices. Python has the same problem. It uses too much memory for an application on a consumer device. You have to use smaller more efficient languages like C/C++ or Vala. Or make Python more efficient, maybe by using pypy? I don’t know, I’m not a Python expert, just throwing that out there. Do whatever is necessary to make it more efficient.

    We really need to return to a culture that values efficiency, as developers. Otherwise we risk technological extinction due to much more well adapted technologies like Debian LXDE+PIXEL. People say that LXQT is going to replace LXDE. I don’t see that happening in Raspbian because the people who make Raspbian are very smart. They chose LXDE for a good reason and that reason hasn’t changed. LXDE is still the most memory efficient option. The developers of LXQT have apparently lost sight of their original goal because it is certainly inferior to their first product which was LXDE.

    • Rene Reichenbach

      In IoT you do not run a GUI on your device (at least not for the IoT part). I for my self just dont run GUIs on RPI or other Boards unless its going to become a gaming console.

  14. Bill Chatfield

    Another thing I forgot to mention is that even Fedora LXDE on Raspberry Pi is not as good as Raspbian because the PIXEL extensions to LXDE distributed in Raspbian look so much better than the base LXDE user interface distributed in Fedora. Someone needs to step up and make Fedora LXDE look a lot better. Maybe me if I can prioritize my free time so that I can do something more useful than just complaining. The problem is I’m a programmer, not a graphical artist so I don’t really have the right skills to do it.

  15. Jeff Johnson

    Thank you for the clear and concise instructions on getting PI 3 B+ working with fedora. Unfortunately I deferred installing the ‘wifi’ drivers mentioned in this article (I intend to use a wired connection for this PI) and subsequently found my pi crashing. I’ve since installed the drivers and am hopeful that this non-wifi using PI 3 B+ will now be happy with Fedora 28.
    I would suggest the updated drivers be installed even if Wifi is not used (and is disabled with nmcli radio all off) or that the wifi drivers be blacklisted altogether.

    • Jeff Johnson

      Well, I spoke too soon. I’ve been unable to have fedora 28 run reliably on PI 3 B+. My 2 cents, the ‘+’ is a disappointment since it did not up the memory size. A slightly faster ethernet and barely noticeble performance improvement are outweighed by the reduced operable OSes (at this time).

Leave a Reply

The opinions expressed on this website are those of each author, not of the author's employer or of Red Hat. Fedora Magazine aspires to publish all content under a Creative Commons license but may not be able to do so in all cases. You are responsible for ensuring that you have the necessary permission to reuse any work on this site. The Fedora logo is a trademark of Red Hat, Inc. Terms and Conditions

%d bloggers like this: