Setting up a Physical Device
Gather the Physical Components
A list of currently tested devices is maintained in the Reference Platforms page.
Always reference the documentation of the board you have selected for assembly instructions and requirements. At a minimum you will need the board, a power source, and a microSD card.
Network connection
If support for your wireless network devices are not available in the Fedora image, it will have to be added after installation. You will need a wired connection to complete the install of the layered package.
For the Fedora disk images:
-
The Raspberry Pi WiFi is supported in the base image.
SD Card
The Fedora IoT image is currently 4GB in size. The best speed class depends on the usage. A faster speed class is better for writes but the trade off is slower read speed.
Documentation for your board may also recommend specific SD Card choices as well as required physical sizes for each device.
-
Raspberry Pi discusses card size and speed class in their SD Card Documentation.
The following procedures will overwrite everything on the micro SD card. Be sure to backup any data before continuing! |
Create a Bootable SD Card
If you have not already downloaded the image, do so now and make a note of the download location and filename.
Determine the SD Card Device name
There are several options for determining the media device name.
-
Run the
lsblk
command before and after inserting the card. The new device that appears on the list is the device for the media. If your microSD card has partitions, locate the name from the line that is type 'disk'. In this example the device name ismmcblk0
and will be referenced later as/dev/mmcblk0
:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk0 179:0 0 14.9G 0 disk ├─mmcblk0p1 179:1 0 142M 0 part /run/media/user/22DA-CAE8 ├─mmcblk0p2 179:2 0 1G 0 part /run/media/user/8b87a5af-12c7-4990-940e-5b457336b11f └─mmcblk0p3 179:3 0 2.9G 0 part /run/media/user/cce2e189-9aee-4b3e-b031-aac9bdc632c9 ...output omitted...
-
If you have the
udisks2
package installed you may find theudisksctl
command helpful in determining the media device name. It will show the model and only the device name without the extra partition information. In this example, a 16GB SanDisk Ultra shows as 'SL16G':
$ udisksctl status MODEL REVISION SERIAL DEVICE ---------------------------------------------------- SAMSUNG MZSLW1T0HMLH-000L1 S308NAAH501124 nvme0n1 SL16G 0x51821336 mmcblk0
-
Finally, the kernel messages will show the addition of a device. In a terminal window before inserting the device run:
$ dmesg -w
Scripted image transfer with arm-image-installer
Install the arm-image-installer
package:
$ sudo dnf install arm-image-installer
Display the usage for the utility. This will display an example command:
$ sudo arm-image-installer Usage: arm-image-installer <options> --image=IMAGE - xz compressed image file name --media=DEVICE - media device file (/dev/[sdX|mmcblkX]) Optional --addconsole - Add system console kernel parameter for the target --addkey - /path/to/ssh-public-key --args - Optional kernel parameters listed in quotes --norootpass - Remove the root password --relabel - SELinux relabel root filesystem on first boot --resizefs - Resize root filesystem to fill media device --sysrq - Enable System Request debugging of the kernel --target=TARGET - target board for uboot -y - Assumes yes, will not wait for confirmation Help --supported - List of supported hardware --version - Display version and exit Example: arm-image-installer --image=Fedora-Rawhide.xz --target=Bananapi --media=/dev/mmcblk0
For the Raspberry Pi Model 3 B/B+ use:
--target=rpi3
Provide the correct path for the downloaded image and the microSD media. Replace XXX
with the location of your media. It will be sdX
or mmcblkX
depending on hardware:
$ sudo arm-image-installer --image=Fedora-IoT-[version].raw.xz --target=rpi3 --media=/dev/XXX
Other options of interest:
-
The
--addkey=
option will place a specified ssh public key into the/root/authorized_keys
file (the option expects the path to the key). -
The
--resizefs
options will expand the/sysroot
partition to use all remaining space on the microSD card.
Configure a Serial Console (Optional)
If you wish to use a serial console you’ll need to configure it. Details for the Raspberry PI are here.
Want to help? Learn how to contribute to Fedora Docs ›