From Fedora Project Wiki

Fedora 25 for ARM

Today the Fedora Project is pleased to announce the general release of Fedora 25. Download it now from our Get Fedora site:


Overview of Hardware Support Status

Raspberry Pi 2/3

Fedora 25 includes support for the Raspberry Pi 2/3! For full details and installation instructions, please visit:

Fedora 25 Released!

The Fedora Project is pleased to announce the immediate availability of Fedora 25, the next big step our journey into the containerized, modular future! Fedora is a global community that works together to lead the advancement of free and open source software. As part of the community’s mission the project delivers three editions, each one a free, Linux-based operating system tailored to meet specific use cases: Fedora 25 Atomic Host, Fedora 25 Server, and Fedora 25 Workstation. Each edition is built from a common set of base packages, which form the foundation of the Fedora operating system. As with all new versions of Fedora, Fedora 25 provides many bug fixes and tweaks to these underlying components, as well as new and enhanced packages, including:

  • Docker 1.12 for building and running containerized applications
  • Node.js 6.9.1, the latest version of the popular server-side JavaScript engine
  • Support for Rust, a faster and more stable system programming language
  • Multiple Python versions — 2.6, 2.7, 3.3, 3.4 and 3.5 — to help run test suites across several Python configurations, as well as PyPy, PyPy3, and Jython

Fedora Workstation

Providing many of the latest open source developer and desktop tools, Fedora 25 Workstation delivers a host of new features, including the long-awaited official debut of the Wayland display server. Replacing the legacy X11 system, Wayland has been under development for several years and seeks to provide a smoother, richer experience for graphical environments and better capabilities for modern graphics hardware. To further enhance ease-of-use, Fedora 25 Workstation also features GNOME 3.22, which offers multiple file renaming, a redesigned keyboard settings tool and additional user interface improvements. Workstation users will also be pleased with the inclusion of decoding support for the MP3 media format. Fedora 25 Workstation now makes it easier to for Windows and OS X users to get started, with Fedora Media Writer serving as the default download for those operating systems. This tool helps users find and download the current Fedora release and write it to removable media, like a USB stick, allowing potential Fedora users to “test drive” the operating system from that media environment. Fedora can then be installed to their systems with the same process. For current Fedora users, the upgrade path from Fedora 24 to Fedora 25 has been simplified and streamlined, with typical upgrades taking less than 30 minutes, depending on system configuration and network speed. Upgrades can be started from the command line or from the GNOME Software tool, just like regular security and bugfix updates. For developers, beyond the new docker engine and language support included in the base Fedora 25 packages, Fedora 25 Workstation introduces improved Flatpak support. This tweak makes it easier to install, update and remove Flatpak software and enables this application packaging standard to be more user friendly at the workstation level. GNOME Shell extensions are also no longer checked for compatibility with the current version of the Shell. This was originally required because the GNOME interfaces were changing rapidly during the early days of GNOME 3. Now these interfaces have stabilized, and extensions can generally be expected to work with new releases.

Fedora Server

In addition to the flexible multi-role functionality provided by rolekit, Fedora 25 Server now delivers a new SELinux Troubleshooter module for Cockpit. Similar to what is available on Fedora Workstation, the module helps provide suggestions for a user when an SELinux denial is encountered, which otherwise requires log checking and manual workarounds. Fedora 25 Server also will now display SSH keys in the Cockpit system dashboard to make it easier for administrators to see what keys are connecting to a given machine. Additionally, support is now included for multi-step (including two-factor) authentication services. The FreeIPA identity management system has also been upgraded to 4.4 series, which offers a set of new features for servers deployed in an identity management role. Some of these enhancements include:

  • Topology management: FreeIPA web UI can now be used to visually manage topology graph for large deployments.
  • DNS sites: DNS management in FreeIPA now supports location-specific placement of services.
  • Subordinate Certificate Authorities: FreeIPA Certificate Authority now is able to create subordinate CAs to issue certificates with a specific scope.
  • Kerberos Authentication Indicators: Kerberos KDC now takes Authentication Indicators into account when issuing service tickets. For example, two-factor authenticated Kerberos credentials can now be required prior to obtaining tickets to a VPN service (supported by OpenConnect Server).

Spins and More

These are not the only parts of Fedora that are seeing changes in the release today. Our KDE spin features new and improved packages for music, video, and personal information management. Xfce includes improvements to the terminal, notifications, and power management. Mate-Compiz features an update to Mate 1.16 and a complete switch to the GTK+3 toolkit.

Make Fedora Even Better

If you want to take an active hand in making Fedora even better, there are many ways you can contribute. There are many roles that you can participate. Visit http://whatcanidoforfedora.org/ for more information! While this is a general release, there is always a chance you may encounter bugs or missing features. To report issues encountered during testing, contact the Fedora QA team via the mailing list or in #fedora-qa on Freenode IRC. As testing progresses, common issues are tracked on the Common F25 Bugs page.

For tips on reporting a bug effectively, read "how to file a bug report."

Download the Disk Image & Copy to Media

The image-based installation process involves downloading an image file (depending upon desktop/non-desktop option desired), inserting removable media into a "host" system (e.g. an ARM or x86_64 PC class desktop, laptop, etc.) and performing a few simple commands to write this image onto the media. This media is then used by the ARM "target" system to boot the Fedora 25 environment.

After writing the image and correct U-boot file(s), insert the media into the target platform and boot.

Fedora Arm Installer

Note.png
Note
The examples provided here are from a Fedora 22/23/24 host and may need to be adjusted depending on your host environment.

Execute the following script as a user with sudo privileges. It will copy the selected disk image and write the appropriate U-Boot for the target hardware platform. Optionally you can also enable and disable SE Linux and remove the root password requirement (allowing log in without completing initial setup). To add a board not listed, simply create a bash scriptlet with the commands needed to copy U-Boot to media and add to the 'boards.d' directory.

sudo dnf install fedora-arm-installer
Usage: fedora-arm-image-installer <options>

   --image=IMAGE    - xz compressed image file name
   --target=TARGET  - target board
   --media=DEVICE   - media device file (/dev/[sdX|mmcblkX])
   --selinux=ON/OFF - Turn SELinux off/on as needed
   --norootpass     - Remove the root password
   -y		    - Assumes yes, will not wait for confirmation
   --version	    - Display version and exit
   --resizefs	    - Resize root filesystem to fill media device
   --addconsole     - Add system console to extlinux.conf

Example: fedora-arm-image-installer --image=Fedora-Rawhide.xz --target=Bananapi --media=/dev/mmcblk0 --selinux=OFF

For list of supported targets see SUPPORTED-BOARDS from documentation

Note.png
Note
In some packages, SUPPORTED-BOARDS file is missing. In that case list directory /usr/share/arm-image-installer/boards.d/ to see what boards are supported.
$ cat /usr/share/doc/fedora-arm-installer/SUPPORTED-BOARDS
AllWinner devices:
    A10-OLinuXino-Lime A10s-OLinuXino-M A13-OLinuXino A13-OLinuXinoM
    A20-OLinuXino-Lime A20-OLinuXino-Lime2 A20-OLinuXino_MICRO
    A20-Olimex-SOM-EVB Ampe_A76 Auxtek-T003 Auxtek-T004 Bananapi Bananapro CHIP
    CSQ_CS908 Chuwi_V7_CW0825 Colombus Cubieboard Cubieboard2 Cubietruck
    Cubietruck_plus Hummingbird_A31 Hyundai_A7HD Itead_Ibox_A20 Lamobo_R1
    Linksprite_pcDuino Linksprite_pcDuino3 Linksprite_pcDuino3_Nano MK808C
    MSI_Primo73 MSI_Primo81 Marsboard_A10 Mele_A1000 Mele_A1000G_quad Mele_I7
    Mele_M3 Mele_M5 Mele_M9 Mini-X Orangepi Orangepi_mini Sinlinx_SinA31s
    UTOO_P66 Wexler_TAB7200 Wits_Pro_A20_DKT Yones_Toptech_BS1078_V2
    ba10_tv_box colorfly_e708_q1 difrnce_dit4350 dserve_dsrv9703c i12-tvbox
    iNet_86VS icnova-a20-swac inet86dz jesurun_q5 mk802 mk802_a10s mk802ii
    orangepi_2 orangepi_lite orangepi_pc orangepi_plus polaroid_mid2809pxe04
    pov_protab2_ips9 q8_a13_tablet q8_a23_tablet_800x480 q8_a33_tablet_1024x600
    q8_a33_tablet_800x480 r7-tv-dongle sunxi_Gemei_G9

MX6 devices:
    cm_fx6 mx6cuboxi novena riotboard wandboard

TI devices:
    am335x_boneblack am57xx_evm kc1 omap3_beagle omap4_panda omap5_uevm

MVEBU devices:
    clearfog

Other devices:
    jetson-tk1 trimslice rpi2 rpi_3_32b

For Versatile Express Emulation with QEMU

No ARM hardware? No problem! Even without hardware, it is possible to run the Fedora for ARM images using the QEMU emulator program. Any image can be used, and you can choose a scr ipt method or manual depending on your preference.

Using an Existing Disk Image

Choose a disk image.

http://download.fedoraproject.org/pub/fedora/linux/releases/25/Spins/armhfp/images/

Extract the image:

TYPE= # Type of image used. (eg Minimal, KDE, Xfce, SoaS, MATE)
unxz Fedora-$TYPE-armhfp-25-1.3-sda.raw.xz

Install 'libguestfs-tools' to use virt-builder:

sudo dnf install -y libguestfs-tools

Extract the kernel and initramfs for use with booting.

virt-builder --get-kernel Fedora-$TYPE-armhfp-25-1.3-sda.raw

Move the files to the default libvirt image location:

sudo mv Fedora-$TYPE-armhfp-25-1.3-sda.raw vmlinuz-4.8.6-300.fc25.armv7hl initramfs-4.8.6-300.fc25.armv7hl.img /var/lib/libvirt/images/

Using Virt-Manager (Graphical )

  • Start virt-manager, connect to 'QEMU', click the 'New VM' icon
  • On the first page, under 'Architecture Options' select 'arm'. The 'virt' machine type should be selected automatically
  • Select the 'Import install' option, go to the next page
  • Browse to the disk image, kernel, and initrd we moved in the previous step.
  • Set kernel args as: console=ttyAMA0 rw root=LABEL=_/ rootwait
  • Set the OS as Fedora 22.
  • Continue with the OS defaults, complete the install.

The guest should shortly start booting, and you should see text console output. After a bit of a wait, it should hit a text mode 'initial setup' where you can set a root password. To boot (you will need to determine the kernel version used in the disk image):

Using 'virt-install' (command line)

sudo virt-install \
    --name Fedora-$TYPE-armhfp-25 --ram 2048 --arch armv7l --import --os-variant fedora22 \
    --disk /var/lib/libvirt/images/Fedora-$TYPE-armhfp-25-1.3-sda.raw \
    --boot kernel=/var/lib/libvirt/images/vmlinuz-4.8.6-300.fc25.armv7hl,initrd=/var/lib/libvirt/images/initramfs-4.8.6-300.fc25.armv7hl.img,kernel_args="console=ttyAMA0 rw root=LABEL=_/ rootwait"

Expanding the Disk Image

You can easily expand the root partition of the disk image using qemu-img.

For example to increase the image size by 10GB you can issue:

 qemu-img resize Fedora-$TYPE-armhfp-25-1.3-sda.raw +10G

Interactive Network Installation

This example will create an 8Gb disk image in the libvirt images directory.

sudo virt-install \
    --name f25-armhfp --ram 2048 --arch armv7l --os-variant fedora22\
    --disk /var/lib/libvirt/images/f25-armhfp.raw,bus=virtio,format=raw,size=8 \
    --location=http://dl.fedoraproject.org/pub/fedora/linux/releases/25/Everything/armhfp/os/ \
    --extra-args="console=ttyAMA0 rw"

Complete a Text or VNC Installation choosing a software packge and partitioning scheme. The system will attempt to reboot but fail until the next step is completed.

Virt-Manager

  • Open Virt-Manager and select the image created above. Click on "Edit-> Virtual Machine Details -> View -> Details"
  • Under "Boot Options", add the kernel, initramfs
  • Use virt-cat to get the appropriate kernel args.
sudo virt-cat -a /var/lib/libvirt/images/f25-armhfp.raw /boot/extlinux/extlinux.conf

Booting for the First Time

Initial-setup

  • During the first boot the system will launch the 'initial-setup' utility. For graphical images this will occur on the display, for minimal images this will occur on the serial console. Failure to complete the initial-setup will prevent logging into the system. To log in to the root account without completing the initial-setup you will need to minimally edit '/etc/passwd' file and remove the 'x' from the line beginning with 'root' (this will allow you to log into the root account without entering a password).
    • NOTE - currently there is a timing issue with initial-setup, even though a display is connected, it may be run as text on the serial console. This is often resolved by rebooting the system.

Resize the Root Filesystem

To resize the root partition use 'gparted' on a Fedora host.

Upgrade using DNF

It is also possible to upgrade to Fedora 25 from an existing Fedora 23 installation (NOTE: This is not well tested prior to, and may not work for all hardware. Tested on Calxeda Highbank. Previous releases may also work but have not been tested).

# fully update the system
sudo dnf update -y
# install the upgrade plugin
sudo dnf install dnf-plugin-system-upgrade
# upgrade
sudo dnf system-upgrade download --releasever=25

Known Issues & Usage Tips

  • Display is not currently working in vexpress emulation.
  • On some hardware, initial setup runs on serial console (initial-setup-text) rather than graphical on Desktop enabled images. If no serial console is available, restarting the system may start the graphical version. Removing the symlink for initial-setup-text will ensure the correct version is run.
  • Pandaboard requires 'cpuidle.off=1' on the kernel args. Please edit the extlinux.conf and add this or the system will not boot.
  • The Raspberry Pi 2/3 has a known issue detecting some connected monitors using the vc4 driver. To work around this issue it is recommended you blacklist it with the following steps. Edit the image and change: 1) Edit the /boot/extlinux/extlinux.conf adding 'rd.driver.blacklist=vc4' to the kernel arguments (line beginning with 'append'). Then create a configuration file below:
 # ensure this path is updated for your system
 echo blacklist vc4 > /PATH-TO-SD/etc/modprobe.d/blacklist-vc4.conf

For a list of all common bugs please visit - http://fedoraproject.org/wiki/Common_F25_bugs .

FAQ

How do I use Fedora ARM when I have no serial cable or display?

Though not recommended it is possible to use Fedora ARM without a serial cable or display. When doing so you may want to limit updates to reduce the possibility of not being able to boot. (This example is from a Fedora 22 system, you may need to adjust the mounts used).

USER= # your user account
sudo rm /run/media/$USER/__/etc/systemd/system/graphical.target.wants/initial-setup-graphical.service  #only needed for Desktop images
sudo rm /run/media/$USER/__/etc/systemd/system/multi-user.target.wants/initial-setup.service
sudo mkdir /run/media/$USER/__/root/.ssh/
cat /home/$USER/.ssh/id_rsa.pub | sudo tee -a /run/media/$USER/__/root/.ssh/authorized_keys
sudo chmod -R u=rwX,o=,g= /run/media/$USER/__/root/.ssh/

Give the system a few minutes to boot, when it obtains an IP you should be able to ssh to the root account.

Why does 'yum update' fail? :

The system time might be incorrect, please ensure it is correct.

How do I enable hardware virtualization on the Jetson TK1?

At a U-Boot prompt enter 'setenv bootm_boot_mode nonsec; saveenv'. Then boot using an LPAE kernel.

How do I enlarge the root partition?

The images include cloud-utils-growpart to enlarge the root partition, then resize2fs to use that newly available space.

# enlarge the 4th partition (this example uses mmcblk0)
growpart /dev/mmcblk0 4
# grow the fileystem to fill the available space
resize2fs /dev/mmcblk0p4
# for the server image (which uses xfs)
xfs_growfs /dev/mmcblk0p4

Copying Fedora U-Boot to eMMC on the Beaglebone Black

To Copy the Fedora U-Boot to the eMMC on the Beaglebone Black execute the following steps:

# mount emmc boot partition 
mkdir /tmp/emmc; mount /dev/mmcblk1p1 /tmp/emmc

# optionally back up original U-Boot
mkdir /tmp/emmc/orig-uboot; cp /tmp/emmc/{MLO,u-boot.img} /tmp/emmc/orig-uboot/

# copy Fedora U-Boot
cp /usr/share/uboot/am335x_boneblack/{MLO,u-boot.img} /tmp/emmc/

Once completed you will no longer need to press the "User Boot" button to select the Fedora U-Boot.