From Fedora Project Wiki
m
 
(37 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
{{autolang|base=yes}}
 
{{autolang|base=yes}}
  
[[Category:Fedora ARM]][[Category:Fedora 22 ]]
+
[[Category:Fedora ARMv7]][[Category:Fedora 22 ]]
  
=Fedora 22 Alpha for ARM=
+
=Fedora 22 for ARM=
  
The Fedora ARM team is pleased to announce that Fedora 22 Alpha for the ARM Architecture is now available for download from:
+
The Fedora ARM team is pleased to announce that Fedora 22 for the ARM Architecture is now available for download from:
  
* Spins      - http://download.fedoraproject.org/pub/fedora/linux/releases/test/22_Alpha/Images/armhfp/
+
* Spins      - http://download.fedoraproject.org/pub/fedora/linux/releases/22/Images/armhfp/
* Workstation - http://download.fedoraproject.org/pub/fedora/linux/releases/test/22_Alpha/Workstation/Images/armhfp/
+
* Workstation - http://download.fedoraproject.org/pub/fedora/linux/releases/22/Workstation/armhfp/Images/
* Server      - http://download.fedoraproject.org/pub/fedora/linux/releases/test/22_Alpha/Server/Images/armhfp/  
+
* Server      - http://download.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/Images/  
  
Fedora 22 Alpha for ARM includes a number of images providing for a variety of desktop choices (including MATE, KDE, XFCE, LXDE, SOAS), as well as a minimal and Server image that does not include the desktop. Any of these images can be used with QEMU on an x86_64 desktop to emulate a fully functional ARM environment.
+
Fedora 22 for ARM includes a number of images providing for a variety of desktop choices (including MATE, KDE, XFCE, LXDE, SOAS), as well as a minimal and Server image that does not include the desktop. Any of these images can be used with QEMU on an x86_64 desktop to emulate a fully functional ARM environment.
  
 
The image-based installation process involves downloading an image file (depending upon the 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 22 environment.
 
The image-based installation process involves downloading an image file (depending upon the 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 22 environment.
  
 
====Overview of Hardware Support Status====
 
====Overview of Hardware Support Status====
* [http://fedoraproject.org/wiki/Architectures/ARM/F22/Installation/Hardware_Status Hardware Support Status]
+
* [[Architectures/ARM/F22/Installation/Hardware_Status|Hardware Support Status]]
  
 
=Download the Disk Image & Copy to Media=
 
=Download the Disk Image & Copy to Media=
Line 27: Line 27:
 
After writing the image and correct U-boot file(s), insert the media into the target platform and boot.
 
After writing the image and correct U-boot file(s), insert the media into the target platform and boot.
  
*http://download.fedoraproject.org/pub/fedora/linux/releases/test/22_Alpha/Images/armhfp/
+
*http://download.fedoraproject.org/pub/fedora/linux/releases/22/Images/armhfp/
  
 
== Scripted ==
 
== Scripted ==
{{admon/note|Note | The examples provided here are from a Fedora 19/20/21 host and may need to be adjusted depending on your host environment.}}
+
{{admon/note|Note | The examples provided here are from a Fedora 20/21/22 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
 
Execute the following script as a user with sudo privileges. It will copy the
Line 38: Line 38:
 
To add a board not listed, simply create a bash scriptlet with the commands
 
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.
 
needed to copy U-Boot to media and add to the 'boards.d' directory.
* https://pwhalen.fedorapeople.org/fedora-arm-installer-0.06.tar.bz2
+
dnf install fedora-arm-installer   #Fedora 22 and above
 +
yum install fedora-arm-installer  #Older releases
 
<pre>
 
<pre>
./fedora-arm-image-installer.sh
+
Usage: fedora-arm-image-installer <options>
 
 
Usage: fedora-arm-image-installer.sh <options>
 
  
 
   --image=IMAGE    - xz compressed image file name
 
   --image=IMAGE    - xz compressed image file name
 
   --target=TARGET  - target board
 
   --target=TARGET  - target board
      [Bananapi|beaglebone|Cubietruck|none|panda|trimslice|wandboard_dual|wandboard_quad|wandboard_solo]
+
      [A10-OLinuXino-Lime|A20-OLinuXino-Lime|A20-OLinuXino-Lime2|A20-OLinuXino_MICRO|Bananapi|Bananapro|beaglebone|Cubieboard|Cubieboard2|Cubietruck|Mele_A1000|Mini-X|none|novena|panda|riotboard|trimslice|wandboard_dl|wandboard_quad|wandboard_solo]
 
   --media=DEVICE  - media device file (/dev/[sdX|mmcblkX])
 
   --media=DEVICE  - media device file (/dev/[sdX|mmcblkX])
 
   --selinux=ON/OFF - Turn SELinux off/on as needed
 
   --selinux=ON/OFF - Turn SELinux off/on as needed
Line 53: Line 52:
 
   --version     - Display version and exit
 
   --version     - Display version and exit
  
Example: fedora-arm-image-installer.sh --image=Fedora-Rawhide.xz --target=panda --media=/dev/mmcblk0 --selinux=OFF
+
Example: fedora-arm-image-installer --image=Fedora-Rawhide.xz --target=panda --media=/dev/mmcblk0 --selinux=OFF
 +
 
 
</pre>
 
</pre>
 
Note, this is not the {{Package|fedora-arm-installer}} package.
 
  
 
== Manual==
 
== Manual==
 
Choose a disk image.
 
Choose a disk image.
  http://download.fedoraproject.org/pub/fedora/linux/releases/test/22_Alpha/Images/armhfp/
+
  http://download.fedoraproject.org/pub/fedora/linux/releases/22/Images/armhfp/
 
Write the image to your media
 
Write the image to your media
 
  TYPE=  # options include KDE, LXDE, XFCE, SoaS, Mate and Minimal
 
  TYPE=  # options include KDE, LXDE, XFCE, SoaS, Mate and Minimal
Line 66: Line 64:
 
         # for example /dev/sdc, /dev/sdg, ...
 
         # for example /dev/sdc, /dev/sdg, ...
 
         # read /var/log/messages to learn which device was assigned to your media
 
         # read /var/log/messages to learn which device was assigned to your media
  xzcat Fedora-$TYPE-armhfp-22_Alpha-3-sda.raw.xz | sudo dd of=$MEDIA; sync
+
  xzcat Fedora-$TYPE-armhfp-22-3-sda.raw.xz | sudo dd of=$MEDIA; sync
 
After writing the image, read the new partition table and mount the root partition
 
After writing the image, read the new partition table and mount the root partition
 
  partprobe $MEDIA
 
  partprobe $MEDIA
Line 78: Line 76:
 
Follow theses steps to write the appropriate U-Boot for your Hardware.
 
Follow theses steps to write the appropriate U-Boot for your Hardware.
 
===For the Banana Pi / CubieBoard / CubieBoard2 / CubieTruck (Allwinner A20)===
 
===For the Banana Pi / CubieBoard / CubieBoard2 / CubieTruck (Allwinner A20)===
Note - It is important to use the use format show below for your target.  
+
Note - It is important to use the use format shown below for your target.  
 
  TARGET= # Bananapi , CubieBoard , Cubieboard2 , Cubietruck
 
  TARGET= # Bananapi , CubieBoard , Cubieboard2 , Cubietruck
 
  MEDIA= #/dev/<location-of-your-media>
 
  MEDIA= #/dev/<location-of-your-media>
Line 91: Line 89:
 
         # for example /dev/sdc, /dev/sdg, ...
 
         # for example /dev/sdc, /dev/sdg, ...
 
         # read /var/log/messages to learn which device was assigned to your media
 
         # read /var/log/messages to learn which device was assigned to your media
  sudo dd if=/tmp/root/usr/share/uboot/beaglebone/MLO of=$MEDIA count=1 seek=1 conv=notrunc bs=128k
+
  sudo dd if=/tmp/root/usr/share/uboot/am335x_boneblack/MLO of=$MEDIA count=1 seek=1 conv=notrunc bs=128k
  sudo dd if=/tmp/root/usr/share/uboot/beaglebone/u-boot.img of=$MEDIA count=2 seek=1 conv=notrunc bs=384k
+
  sudo dd if=/tmp/root/usr/share/uboot/am335x_boneblack/u-boot.img of=$MEDIA count=2 seek=1 conv=notrunc bs=384k
 
Media should now be ready to boot on the BeagleBone. Insert into the device and boot. To boot the Fedora 22 version of U-Boot on MicroSD you will need to hold the "User Boot" button (located near the MicroSD slot) when the device is powered on.  
 
Media should now be ready to boot on the BeagleBone. Insert into the device and boot. To boot the Fedora 22 version of U-Boot on MicroSD you will need to hold the "User Boot" button (located near the MicroSD slot) when the device is powered on.  
  
Line 106: Line 104:
  
 
# copy Fedora U-Boot
 
# copy Fedora U-Boot
cp /usr/share/uboot/beaglebone/{MLO,u-boot.img} /tmp/emmc/
+
cp /usr/share/uboot/am335x_boneblack/{MLO,u-boot.img} /tmp/emmc/
 
</pre>
 
</pre>
  
Line 128: Line 126:
  
 
=== For the Pandaboard ===
 
=== For the Pandaboard ===
{{admon/warning|IMPORTANT |<b>The Pandaboard is not working in the Fedora 22 Alpha, this issue should be resolved before the F22 Beta.</b>}}
 
 
  MEDIA= #/dev/<location-of-your-media>
 
  MEDIA= #/dev/<location-of-your-media>
 
         # for example /dev/sdc, /dev/sdg, ...
 
         # for example /dev/sdc, /dev/sdg, ...
Line 135: Line 132:
 
  sudo dd if=/tmp/root/usr/share/uboot/panda/u-boot.img of=$MEDIA count=2 seek=1 conv=notrunc bs=384k
 
  sudo dd if=/tmp/root/usr/share/uboot/panda/u-boot.img of=$MEDIA count=2 seek=1 conv=notrunc bs=384k
 
Media should now be ready to boot on the Pandaboard. Insert into the device and boot.
 
Media should now be ready to boot on the Pandaboard. Insert into the device and boot.
 +
===For the Jetson TK1===
 +
{{admon/warning|IMPORTANT | Requires a recent version of U-Boot}}
 +
The Jetson TK1 requires no additional steps, U-Boot is included on the device.
  
 
=For Versatile Express Emulation with QEMU=
 
=For Versatile Express Emulation with QEMU=
Line 141: Line 141:
 
=== Using an Existing Disk Image ===
 
=== Using an Existing Disk Image ===
 
Choose a disk image.
 
Choose a disk image.
  http://download.fedoraproject.org/pub/fedora/linux/releases/test/22_Alpha/Images/armhfp/
+
  http://download.fedoraproject.org/pub/fedora/linux/releases/22/Images/armhfp/
 
Extract the image:
 
Extract the image:
 
<pre>
 
<pre>
 
TYPE= # Type of image used. (eg Minimal, KDE, Xfce, SoaS, MATE)
 
TYPE= # Type of image used. (eg Minimal, KDE, Xfce, SoaS, MATE)
unxz Fedora-$TYPE-armhfp-22_Alpha-3-sda.raw.xz
+
unxz Fedora-$TYPE-armhfp-22-3-sda.raw.xz
 
</pre>
 
</pre>
Install 'libguestfs-tools' to use virt-builder
+
Install 'libguestfs-tools' to use virt-builder and 'qemu-system-arm' to emulate arm in qemu.
<pre>sudo yum install -y libguestfs-tools</pre>
+
<pre>sudo yum install -y libguestfs-tools qemu-system-arm</pre>
 
Extract the kernel and initramfs for use with booting.
 
Extract the kernel and initramfs for use with booting.
 
<pre>
 
<pre>
virt-builder --get-kernel Fedora-$TYPE-armhfp-22_Alpha-3-sda.raw
+
virt-builder --get-kernel Fedora-$TYPE-armhfp-22-3-sda.raw
 
</pre>
 
</pre>
 
Move the files to the default libvirt image location:
 
Move the files to the default libvirt image location:
  sudo mv Fedora-$TYPE-armhfp-22_Alpha-3-sda.raw vmlinuz-4.0.0-0.rc1.git0.1.fc22.armv7hl initramfs-4.0.0-0.rc1.git0.1.fc22.armv7hl.img /var/lib/libvirt/images/
+
  sudo mv Fedora-$TYPE-armhfp-22-3-sda.raw vmlinuz-4.0.4-301.fc22.armv7hl initramfs-4.0.4-301.fc22.armv7hl.img /var/lib/libvirt/images/
  
== Using Virt-Manager (Graphical ) ==
+
==== Using Virt-Manager (Graphical ) ====
 
* Start virt-manager, connect to 'QEMU', click the 'New VM' icon
 
* 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
 
* 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
 
* Select the 'Import install' option, go to the next page
 
* Browse to the disk image, kernel, and initrd we moved in the previous step.
 
* Browse to the disk image, kernel, and initrd we moved in the previous step.
* Set kernel args as: console=ttyAMA0 rw root=/dev/vda3 rootwait
+
* Set kernel args as: console=ttyAMA0 rw root=LABEL=_/ rootwait
 
* Set the OS as Fedora 21.
 
* Set the OS as Fedora 21.
 
* Continue with the OS defaults, complete the install.
 
* Continue with the OS defaults, complete the install.
Line 167: Line 167:
 
To boot (you will need to determine the kernel version used in the disk image):
 
To boot (you will need to determine the kernel version used in the disk image):
  
== Using 'virt-install' (command line) ==
+
==== Using 'virt-install' (command line) ====
 
<pre>
 
<pre>
 
sudo virt-install \
 
sudo virt-install \
     --name Fedora-$TYPE-armhfp-22_Alpha --ram 1024 --arch armv7l --import \
+
     --name Fedora-$TYPE-armhfp-22 --ram 1024 --arch armv7l --import --os-variant fedora21\
     --disk /var/lib/libvirt/images/Fedora-$TYPE-armhfp-22_Alpha-3-sda.raw \
+
     --disk /var/lib/libvirt/images/Fedora-$TYPE-armhfp-22-3-sda.raw \
     --boot kernel=/var/lib/libvirt/images/vmlinuz-4.0.0-0.rc1.git0.1.fc22.armv7hl,initrd=/var/lib/libvirt/images/initramfs-4.0.0-0.rc1.git0.1.fc22.armv7hl.img,kernel_args="console=ttyAMA0 rw root=/dev/vda3 rootwait"
+
     --boot kernel=/var/lib/libvirt/images/vmlinuz-4.0.4-301.fc22.armv7hl,initrd=/var/lib/libvirt/images/initramfs-4.0.4-301.fc22.armv7hl.img,kernel_args="console=ttyAMA0 rw root=LABEL=_/ rootwait"
 
</pre>
 
</pre>
  
Line 179: Line 179:
  
 
For example to increase the image size by 10GB you can issue:
 
For example to increase the image size by 10GB you can issue:
   qemu-img resize Fedora-$TYPE-armhfp-22-5-sda.raw +10G
+
   qemu-img resize Fedora-$TYPE-armhfp-22-3-sda.raw +10G
  
 
=== Interactive Network Installation ===
 
=== Interactive Network Installation ===
Line 186: Line 186:
 
# vexpress-a15
 
# vexpress-a15
 
# Create the disk image
 
# Create the disk image
qemu-img create Fedora-QEMU-armhfp-22_Alpha-sda.raw $SIZE #add a size EG 8G
+
qemu-img create Fedora-QEMU-armhfp-22-sda.raw $SIZE #add a size EG 8G
 
# retrieve DTB
 
# retrieve DTB
wget https://dl.fedoraproject.org/pub/fedora/linux/releases/test/22_Alpha/Server/armhfp/os/images/pxeboot/dtb/vexpress-v2p-ca15-tc1.dtb
+
wget https://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/images/pxeboot/dtb/vexpress-v2p-ca15-tc1.dtb
 +
# move images to libvirt directory (to avoid a permission error)
 +
sudo mv Fedora-QEMU-armhfp-22-sda.raw vexpress-v2p-ca15-tc1.dtb /var/lib/libvirt/images/
 
# Begin Install
 
# Begin Install
 
sudo virt-install \
 
sudo virt-install \
--name Fedora-QEMU-armhfp-22_Alpha \
+
--name Fedora-QEMU-armhfp-22 \
 
--ram 2048        \
 
--ram 2048        \
 
--arch armv7l      \
 
--arch armv7l      \
 
--machine vexpress-a15 \
 
--machine vexpress-a15 \
--location=https://dl.fedoraproject.org/pub/fedora/linux/releases/test/22_Alpha/Server/armhfp/os/ \
+
--location=https://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/ \
--disk Fedora-QEMU-armhfp-22_Alpha-sda.raw \
+
--disk /var/lib/libvirt/images/Fedora-QEMU-armhfp-22-sda.raw \
 
--extra-args="console=ttyAMA0 rw" \
 
--extra-args="console=ttyAMA0 rw" \
 
--os-variant fedora21            \
 
--os-variant fedora21            \
 
--graphics none \
 
--graphics none \
--boot dtb=`pwd`/vexpress-v2p-ca15-tc1.dtb
+
--boot dtb=/var/lib/libvirt/images/vexpress-v2p-ca15-tc1.dtb
 
</pre>
 
</pre>
 
Complete a Text or VNC Installation choosing a software packge and partitioning scheme (note when choosing LVM or BTRFS you will need to edit the kernel arguments appropriately). T he system will attempt to reboot but fail until the next step is completed.  
 
Complete a Text or VNC Installation choosing a software packge and partitioning scheme (note when choosing LVM or BTRFS you will need to edit the kernel arguments appropriately). T he system will attempt to reboot but fail until the next step is completed.  
Line 223: Line 225:
  
 
= Upgrade using Fedup =
 
= Upgrade using Fedup =
It is also possible to upgrade to Fedora 22 Alpha from an existing Fedora 21 installation (previous releases may also work but have not been tested). The upgrade will work as intended with Enterprise hardware (Calxeda Highbank and Midway systems), ARM development boards will currently require an additional step of installing the kernel used in the Alpha ( this is to ensure the right DTB is used, previous DTB's are incompatible with the Fedora 22 Alpha release kernel). To begin upgrade the current kernel:
+
It is also possible to upgrade to Fedora 22 from an existing Fedora 21 installation (previous releases may also work but have not been tested). The upgrade will work as intended with Enterprise hardware (Calxeda Highbank and Midway systems), ARM development boards will currently require an additional step of installing the kernel used in the ( this is to ensure the right DTB is used, previous DTB's are incompatible with the Fedora 22 release kernel). To begin upgrade the current kernel:
 
<pre>
 
<pre>
 
# yum update the kernel package first
 
# yum update the kernel package first
yum update https://dl.fedoraproject.org/pub/alt/stage/22_Alpha_RC3/Server/armhfp/os/Packages/k/kernel-4.0.0-0.rc1.git0.1.fc22.armv7hl.rpm \
+
yum update http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-4.0.4-301.fc22.armv7hl.rpm \
https://dl.fedoraproject.org/pub/alt/stage/22_Alpha_RC3/Server/armhfp/os/Packages/k/kernel-core-4.0.0-0.rc1.git0.1.fc22.armv7hl.rpm \
+
http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-core-4.0.4-301.fc22.armv7hl.rpm \
https://dl.fedoraproject.org/pub/alt/stage/22_Alpha_RC3/Server/armhfp/os/Packages/k/kernel-modules-4.0.0-0.rc1.git0.1.fc22.armv7hl.rpm
+
http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-modules-4.0.4-301.fc22.armv7hl.rpm
  
 
# lpae kernel
 
# lpae kernel
yum update https://dl.fedoraproject.org/pub/alt/stage/22_Alpha_RC3/Server/armhfp/os/Packages/k/kernel-lpae-4.0.0-0.rc1.git0.1.fc22.armv7hl.rpm \
+
yum update http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-lpae-4.0.4-301.fc22.armv7hl.rpm \
https://dl.fedoraproject.org/pub/alt/stage/22_Alpha_RC3/Server/armhfp/os/Packages/k/kernel-lpae-core-4.0.0-0.rc1.git0.1.fc22.armv7hl.rpm \
+
http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-lpae-core-4.0.4-301.fc22.armv7hl.rpm \
https://dl.fedoraproject.org/pub/alt/stage/22_Alpha_RC3/Server/armhfp/os/Packages/k/kernel-lpae-modules-4.0.0-0.rc1.git0.1.fc22.armv7hl.rpm
+
http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-lpae-modules-4.0.4-301.fc22.armv7hl.rpm
  
#reboot to the new kernel
+
# IMPORTANT: Reboot to the new kernel (if you do not, you will need to hand edit /etc/extlinux.conf to use the new dtb-4.0.4-301.fc22.armv7hl).
 
# install fedup  
 
# install fedup  
 
yum install fedup  
 
yum install fedup  
  
 
# run network upgrade to F22
 
# run network upgrade to F22
fedup --network 22 --instrepo https://dl.fedoraproject.org/pub/fedora/linux/releases/test/22_Alpha/Server/armhfp/os/
+
fedup --network 22 --instrepo https://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/
 
</pre>
 
</pre>
  
Line 246: Line 248:
  
 
* Display is not currently working in vexpress emulation.  
 
* Display is not currently working in vexpress emulation.  
* After installation with Anaconda you will need to manually edit '/etc/extlinux/extlinux.conf' and add 'fdtdir /dtb-<version>/' line. .
+
* 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.  
* Anaconda installations require 'NetworkManager' be restarted on hardware that lacks a RTC ([https://bugzilla.redhat.com/show_bug.cgi?id=1183807 BZ#1183807] ). To complete the installation, while in anaconda change to the 'shell' tab (using '<control>2') and type 'systemctl restart NetworkManager'.
 
* 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.  
 
  
For a list of all common bugs please visit - http://fedoraproject.org/wiki/Common_F22_Alpha_bugs .
+
For a list of all common bugs please visit - http://fedoraproject.org/wiki/Common_F22_bugs .
  
 
= FAQ =
 
= FAQ =
Line 268: Line 268:
  
 
*  <b>QUESTION</b> : Why does 'yum update' fail?
 
*  <b>QUESTION</b> : Why does 'yum update' fail?
** <b>ANSWER</b>: The system time might be incorrect, plesae ensure it is correct.
+
** <b>ANSWER</b>: The system time might be incorrect, please ensure it is correct.

Latest revision as of 11:03, 6 June 2017

Fedora 22 for ARM

The Fedora ARM team is pleased to announce that Fedora 22 for the ARM Architecture is now available for download from:

Fedora 22 for ARM includes a number of images providing for a variety of desktop choices (including MATE, KDE, XFCE, LXDE, SOAS), as well as a minimal and Server image that does not include the desktop. Any of these images can be used with QEMU on an x86_64 desktop to emulate a fully functional ARM environment.

The image-based installation process involves downloading an image file (depending upon the 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 22 environment.

Overview of Hardware Support Status

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 22 environment.

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

Scripted

Note.png
Note
The examples provided here are from a Fedora 20/21/22 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.

dnf install fedora-arm-installer   #Fedora 22 and above
yum install fedora-arm-installer   #Older releases
 Usage: fedora-arm-image-installer <options>

   --image=IMAGE    - xz compressed image file name
   --target=TARGET  - target board
		      [A10-OLinuXino-Lime|A20-OLinuXino-Lime|A20-OLinuXino-Lime2|A20-OLinuXino_MICRO|Bananapi|Bananapro|beaglebone|Cubieboard|Cubieboard2|Cubietruck|Mele_A1000|Mini-X|none|novena|panda|riotboard|trimslice|wandboard_dl|wandboard_quad|wandboard_solo]
   --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

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

Manual

Choose a disk image.

http://download.fedoraproject.org/pub/fedora/linux/releases/22/Images/armhfp/

Write the image to your media

TYPE=  # options include KDE, LXDE, XFCE, SoaS, Mate and Minimal
MEDIA= #/dev/<location-of-your-media>
       # for example /dev/sdc, /dev/sdg, ...
       # read /var/log/messages to learn which device was assigned to your media
xzcat Fedora-$TYPE-armhfp-22-3-sda.raw.xz | sudo dd of=$MEDIA; sync

After writing the image, read the new partition table and mount the root partition

partprobe $MEDIA
PART=  #/dev/<location-of-your-media><partition-number>
       # this needs to be the root partition on the written media
       # for example /dev/sdc3, /dev/sdg3, /dev/mmcblk0p3, ...
mkdir /tmp/root; sudo mount $PART /tmp/root

Copy the appropriate U-Boot files for your target hardware listed below.

Write U-Boot to Media

Follow theses steps to write the appropriate U-Boot for your Hardware.

For the Banana Pi / CubieBoard / CubieBoard2 / CubieTruck (Allwinner A20)

Note - It is important to use the use format shown below for your target.

TARGET= # Bananapi , CubieBoard , Cubieboard2 , Cubietruck
MEDIA= #/dev/<location-of-your-media>
       # for example /dev/sdc, /dev/sdg, ...
       # read /var/log/messages to learn which device was assigned to your media
sudo dd if=/tmp/root/usr/share/uboot/$TARGET/u-boot-sunxi-with-spl.bin of=$MEDIA bs=1024 seek=8 conv=fsync,notrunc

Media should now be ready to boot, insert into the device and boot.

For the BeagleBone ( Black & White )

Warning.png
IMPORTANT
At this time you must have a serial console cable for the BeagleBone. For those that do not, please see the FAQ at the bottom of the page
MEDIA= #/dev/<location-of-your-media>
       # for example /dev/sdc, /dev/sdg, ...
       # read /var/log/messages to learn which device was assigned to your media
sudo dd if=/tmp/root/usr/share/uboot/am335x_boneblack/MLO of=$MEDIA count=1 seek=1 conv=notrunc bs=128k
sudo dd if=/tmp/root/usr/share/uboot/am335x_boneblack/u-boot.img of=$MEDIA count=2 seek=1 conv=notrunc bs=384k

Media should now be ready to boot on the BeagleBone. Insert into the device and boot. To boot the Fedora 22 version of U-Boot on MicroSD you will need to hold the "User Boot" button (located near the MicroSD slot) when the device is powered on.

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.

For the CompuLab TrimSlice

Warning.png
IMPORTANT
You must use the latest Device Tree enabled U-Boot to boot the Fedora 22 Trimslice image, which you can find here. And environmental variables described here. Failure to do so will result in a non-booting system. Trimslice currently does not boot from MMC due to a time out when reading the initramfs

The Trimslice requires no additional steps, U-Boot is included on the device.

For the Wandboard (Freescale i.MX6)

Note - The Wandboard includes a Solo, Dual, and Quad core configuration. Determine your hardware configuration and use the appropriate value. While the Wandboard Quad has been tes ted and confirmed working, the Solo and Dual core models should also work as well. The Wandboard Solo uses the same dtb as the Dual(imx6dl-wandboard.dtb). Copy the U-boot for the Wandboard hardware in use:

BOARD= # Choose 'solo', 'dl' or 'quad'
MEDIA= #/dev/<location-of-your-media>
       # for example /dev/sdc, /dev/sdg, ...
       # read /var/log/messages to learn which device was assigned to your media
sudo dd if=/tmp/root/usr/share/uboot/wandboard_$BOARD/u-boot.imx of=$MEDIA bs=1k seek=1 conv=fsync; sync

Remove the media and insert into the Wandboard and boot.

Warning.png
IMPORTANT
MicroSD for booting is located under the heatsink

For the Pandaboard

MEDIA= #/dev/<location-of-your-media>
       # for example /dev/sdc, /dev/sdg, ...
       # read /var/log/messages to learn which device was assigned to your media
sudo dd if=/tmp/root/usr/share/uboot/panda/MLO of=$MEDIA count=1 seek=1 conv=notrunc bs=128k
sudo dd if=/tmp/root/usr/share/uboot/panda/u-boot.img of=$MEDIA count=2 seek=1 conv=notrunc bs=384k

Media should now be ready to boot on the Pandaboard. Insert into the device and boot.

For the Jetson TK1

Warning.png
IMPORTANT
Requires a recent version of U-Boot

The Jetson TK1 requires no additional steps, U-Boot is included on the device.

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/22/Images/armhfp/

Extract the image:

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

Install 'libguestfs-tools' to use virt-builder and 'qemu-system-arm' to emulate arm in qemu.

sudo yum install -y libguestfs-tools qemu-system-arm

Extract the kernel and initramfs for use with booting.

virt-builder --get-kernel Fedora-$TYPE-armhfp-22-3-sda.raw

Move the files to the default libvirt image location:

sudo mv Fedora-$TYPE-armhfp-22-3-sda.raw vmlinuz-4.0.4-301.fc22.armv7hl initramfs-4.0.4-301.fc22.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 21.
  • 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-22 --ram 1024 --arch armv7l --import --os-variant fedora21\
    --disk /var/lib/libvirt/images/Fedora-$TYPE-armhfp-22-3-sda.raw \
    --boot kernel=/var/lib/libvirt/images/vmlinuz-4.0.4-301.fc22.armv7hl,initrd=/var/lib/libvirt/images/initramfs-4.0.4-301.fc22.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-22-3-sda.raw +10G

Interactive Network Installation

The below example uses the 'vexpress-a15' machine type and dtb, this can be substituted with 'vexpress-a9'. Using 'vexpress-a15' will allow the use of more RAM.

# vexpress-a15
# Create the disk image
qemu-img create Fedora-QEMU-armhfp-22-sda.raw $SIZE #add a size EG 8G
# retrieve DTB
wget https://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/images/pxeboot/dtb/vexpress-v2p-ca15-tc1.dtb
# move images to libvirt directory (to avoid a permission error)
sudo mv Fedora-QEMU-armhfp-22-sda.raw vexpress-v2p-ca15-tc1.dtb /var/lib/libvirt/images/
# Begin Install
sudo virt-install \
--name Fedora-QEMU-armhfp-22 \
--ram 2048         \
--arch armv7l      \
--machine vexpress-a15 \
--location=https://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/ \
--disk /var/lib/libvirt/images/Fedora-QEMU-armhfp-22-sda.raw \
--extra-args="console=ttyAMA0 rw" \
--os-variant fedora21             \
--graphics none \
--boot dtb=/var/lib/libvirt/images/vexpress-v2p-ca15-tc1.dtb

Complete a Text or VNC Installation choosing a software packge and partitioning scheme (note when choosing LVM or BTRFS you will need to edit the kernel arguments appropriately). T he 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 (the DTB should point to the correct path).
  • For kernel args add (note- if custom partitioning was used for the installation you will to make adjustments to 'root='):
# If you selected Standard Partitioning
console=ttyAMA0,115200n8 rw root=/dev/vda3 rootwait
# If you selected LVM
console=ttyAMA0,115200n8 rw root=/dev/mapper/fedora--server-root rootwait

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 Fedup

It is also possible to upgrade to Fedora 22 from an existing Fedora 21 installation (previous releases may also work but have not been tested). The upgrade will work as intended with Enterprise hardware (Calxeda Highbank and Midway systems), ARM development boards will currently require an additional step of installing the kernel used in the ( this is to ensure the right DTB is used, previous DTB's are incompatible with the Fedora 22 release kernel). To begin upgrade the current kernel:

# yum update the kernel package first
yum update http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-4.0.4-301.fc22.armv7hl.rpm \
http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-core-4.0.4-301.fc22.armv7hl.rpm \
http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-modules-4.0.4-301.fc22.armv7hl.rpm

# lpae kernel
yum update http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-lpae-4.0.4-301.fc22.armv7hl.rpm \
http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-lpae-core-4.0.4-301.fc22.armv7hl.rpm \
http://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/Packages/k/kernel-lpae-modules-4.0.4-301.fc22.armv7hl.rpm

# IMPORTANT: Reboot to the new kernel (if you do not, you will need to hand edit /etc/extlinux.conf to use the new dtb-4.0.4-301.fc22.armv7hl).
# install fedup 
yum install fedup 

# run network upgrade to F22
fedup --network 22 --instrepo https://dl.fedoraproject.org/pub/fedora/linux/releases/22/Server/armhfp/os/

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.

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

FAQ

  • QUESTION : How do I use Fedora ARM when I have no serial cable or display?
    • ANSWER: 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 19 system, you may need to adjust the mounts used).
USER= # your user account
rm /run/media/$USER/__/etc/systemd/system/graphical.target.wants/initial-setup-graphical.service
rm /run/media/$USER/__/etc/systemd/system/multi-user.target.wants/initial-setup-text.service
mkdir /run/media/$USER/__/root/.ssh/
cat /home/$USER/.ssh/id_rsa.pub >> /run/media/$USER/__/root/.ssh/authorized_keys
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.

  • QUESTION : Why does 'yum update' fail?
    • ANSWER: The system time might be incorrect, please ensure it is correct.