Fire up a Raspberry Pi with Fedora.
The Raspberry Pi Foundation has produced quite a few models over the years. This procedure was tested on third generation Pis – a Model B v1.2, and a Model B+ (the older 2 and the new 4 weren’t tested). These are the credit-card size Pis that have been around a few years.
You do need a few hardware items, including the Pi. You don’t need any HaT (Hardware Attached on Top) boards or USB antennas. If you have used your Pi in the past, you probably have all these items.
- current network. Perhaps this is your home lab.
- ethernet cable. This connects the current network to the Raspberry Pi
- Raspberry Pi 3, model B or B+.
- power supply
- micro-SD card, 8GB or larger.
- keyboard and video monitor.
The keyboard and video monitor together make up the local console. It’s possible – though complicated – to get by without a console, such as setting up an automated install then connecting over the network. A local console makes it easy to answer the configuration questions during Fedora’s first boot. Also, a mistake during AP configuration may break the network, locking out remote users.
download Fedora Minimal
- Find Fedora’s alternate architecture images.
- Download the ARM® aarch64 Architecture image.
The Fedora Minimal image, one of Fedora’s alt downloads, has all the core packages and network packages required (well, nearly – check out dnsmasq below). The image contains a ready-made file system, with over 400 packages already installed. This minimal image does not include popular packages like a development environment, Internet service or desktop. These types of software aren’t required for this work, and may well use too much memory if you install them.
The Fedora Minimal raw image fits on a small SD card and runs in less than 1 GB of memory (these old Pis have 1GB RAM).
The name of the downloaded file is something like Fedora-Minimal-32-1.6.aarch64.raw.xz. The file is compressed and is about 700MB in size. When the file is uncompressed, it’s 5GB. It’s an ext4 file system that’s mostly empty – about 1GB is used and 4GB is empty. All that empty space is the reason the compressed download is so much smaller than the uncompressed raw image.
copy to the micro-SD card
- Copy the image to a micro-SD card.
This can be a more complex than it sounds, and a painful experience. Finding a good micro-SD card takes work. Then there’s the challenge of physically attaching the card to your computer.Perhaps your laptop has a full SD card slot and you need a card adapter, or perhaps you need a USB adapter. Then, when it comes to copying, the OS may either help or get in your way. You may have luck with Fedora Media Writer, or with these Linux commands.
unxz ./Fedora-Minimal-32-1.6.aarch64.raw.xz dd if=./Fedora-Minimal-32-1.6.aarch64.raw of=/dev/mmcblk0 bs=8M status=progress oflag=direct
set up Fedora
- Connect the Pi, power cable, network cable and micro-SD card.
- Hit the power.
- See the colored box as the graphics chip powers up.
- Wait for the anaconda installer to start.
- Answer anaconda’s setup questions.
Initial configuration of the OS takes a few minutes – a couple minutes waiting for boot-up, and a couple to fill out the spokes of anaconda’s text-based installer. In the examples below, the user is named nick and is an administrator (a member of the wheel group).
Congratulations! Your Fedora Pi is up and operational.
- Update packages with `dnf update`.
- Reboot the machine with `systemctl reboot`.
Over the years, a lot of people have put a lot of work into making the Raspberry Pi devices work. Use the latest software to make sure you get the benefit of their hard work. If you skip this step, you may find some things just don’t work.
The update downloads and installs about a hundred packages. Since the storage is a micro-SD card, writing new software is a slow process. This is what using computing storage felt like in the 1990s.
things to play with
There are a few other things that can be set up at this point, if you want to play around. It’s all optional. Try things like this.
- Replace the localhost hostname with the command `sudo hostnamectl set-hostname raspi`.
- Find the IP address with `ip addr`.
- Try an SSH login, or even set up key-based login with `ssh-copy-id`.
- Power down with `systemctl poweroff`.
Does anyone have any hands-on experience with running Fedora on R181-T90, R181-T92, R281-T91 or R281-T94 or other Marvell ThunderX2 servers and would like to share their impressions, incites etc. please?
Yes, but as a newbie (and of course finding this article via Google News) what are the advantages of fedora on a raspberry pi over raspian?
The advantage is you would have Fedora the best Distro on your RPi
Thanks for your reply, Stephen. it’s an understandable position, given the blog is titled Fedora Magazine.
I guess the question now, is “Why do people consider fedora the best distro?” (Background: I don’t have much exposure to different distros – I have entered via the world of raspberry pi.)
Well, in truth if you read other comments around here on the topic of RPi and Fedora, you can tell Fedora isn’t the first choice by many for an installation on a Raspberry Pi. Fedora is however the best Linux distribution IMO, and alot of my reason is coming from their stance on FOSS and their dogged support of it, also I like their near bleeding edge focus on the linux ecosystem, and release cadence. The four foundational core values of Fedora are “Freedom, Friends, Features, First”, this is at the core of the community and the distribution.
because it is the best 🙂
It’s true, I love Fedore 🙂 but Fedora on Raspberry PI is a failure … SD card slot is too slow. You can run Fedore on an external SSD via USB 3.0 to make it run much faster, but you still don’t have the options you expect from a Raspberry Pi.
Yeah, Fedora 32 Server uses the XFS filesystem on an SD Card which is just a performance disaster and needs to be fixed
I find the consistency of RPM packaging to be the best real advantage.
At work, we already have the infrastructure set up for RPM builds and deployments, adding ARM to it is easy due to the tooling we can borrow from Fedora.
As there is no need to describe a hybrid packaging and release system, it cuts down on training, documentation, and effort of debugging when things go wrong.
When it comes to the Raspberry Pi, I am mostly interested if the GPIO would work. The last time I checked, the binary was only readily available within its Debian derivative OS. Is the command “gpio” available now? Or was it already available longer and I simply did not find the right package/repo?
not work, as is the vcgencmd
Standard libraries used on Raspbian most likely won’t work because they hardcode Raspbian configuration in their system-level functions.
will work as it uses standard API of the vanilla kernel. It is packaged for Fedora and can be used as cli tool or via Python bindings. See
I also wrote a simple python library (https://github.com/bookwar/python-gpiodev/) to operate GPIO pins via kernel API. Haven’t packaged it for Fedora yet, but I will, someday.
I had success getting the GPIO pins to work with a Raspberry Pi 2B running Fedora. It wasn’t as simple as it could have been, but if you can open up the source for the library you’ll have to install manually, as well as the source for the kernel drivers; at least for that hardware and set of code, I managed to individually light 16 leds.
Of course, it involved a bit of programming, and wasn’t quite as simple as I believed it should have been.
I thought, and this is going back a bit, that there was a python library for that, which is usable in Fedora too.
PHP lib https://github.com/PiPHP/GPIO
Python Lib https://maker.pro/raspberry-pi/tutorial/how-to-get-started-with-the-raspberry-pi-gpio-python-library
or howto with C https://www.digikey.com/en/maker/blogs/2019/how-to-use-gpio-on-the-raspberry-pi-with-c
not work on 64 bit
When it boots up it asks if you can’t to continue quit or refresh. So I press c to continue and then it asks for a localhost user name and password. Anyone know what it is?
Is YouTube and other HD video play fine in this fedora version.
I flashed android in raspberry Pi 3b, when i play video cpu usage raises high because of software rendering.
and video struck in middle.
GPIO is supported with the use of libgpiod and associated bindings and utilities.
RPI.GPIO is not currently supported.
Wouldn’t you just use pip install RPI.GPIO or some such? I’m not a python programmer so I am just asking, but that was my impression on how you went about doing it.
I am a Fedora’s fan. So I tried off course.. )I’ll repeat again- it not work on 64 bit, 100%
Unfortunately libraries like RPI.GPIO internally have some checks which are basically saying “If system is not Raspbian – stop”. To be usable on other systems they need to be refactored to use standard API.
vcgencmd not compile or install too..
I use the Samsung EVO 256GB microSDXC UHS-I U3 100MB/s Full HD & 4K UHD, it has never had any issues with speed. I have tried a lot of Distro’s for my RPi. I did not like the speed that the SanDisk was giving me and I had a few that had issues. I am happy Fedora has a Pi version, as it is the only distro that I use daily at work and at home. I am also the only Support Tech where I work that uses Linux. It is by choice also!!
Just my 2 cents,
Hi everybody, has anybody ever got Fedora running on a Raspbi 4?
Not ready yet. CentOS7.8/Debian10/Ubuntu20.04/ArchLinux/RaspiOS now works on Raspbi 4.
Okay, thank you van.
Actually, while it’s not officially supported, Fedora 32 runs perfectly well on my 4GB Raspberry Pi 4 with Mate (Gnome also worked but it’s a bit resource consuming). Start with the minimal aarch64 image, then customise it up as you see fit.
I’ve had a number of micro-sd cards go bad in a relative quick time, so I looked at getting th Pi to run from a usb stick. You cannot completely do away with the micro-sd as it really is needed in the first boot stage, but you can run your file systems, including /dev, /etc, and /sbin from the usb stick. I noticed one odd thing, some Pi do need /boot on the micro-sd, others are happy with /boot on the usb, don’t know why (and I haven’t looked into it, I must say).
It’s fairly easy to do, it requires editing a few files, and assigning new UUIDs to a few partitions. All can be found on Google 🙂
Boot from USB without SD card is possible