Fedora 24 for ARM
The Fedora ARM team is pleased to announce that Fedora 24 for the ARM Architecture is now available for download from:
- Spins - http://download.fedoraproject.org/pub/fedora/linux/releases/24/Images/armhfp/
- Workstation - http://download.fedoraproject.org/pub/fedora/linux/releases/24/Workstation/armhfp/Images/
- Server - http://download.fedoraproject.org/pub/fedora/linux/releases/24/Server/armhfp/Images/
Fedora 24 for ARM includes a number of images providing for a variety of desktop choices (including MATE, 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 24 environment.
What is the release?
The release contains all the exciting features of Fedora 24's editions in a form that anyone can help test. This testing, guided by the Fedora QA team, helps us target and identify bugs. When these bugs are fixed, we make a release available. A release is code-complete and bears a very strong resemblance to the third and final release. The final release of Fedora 24 is expected in October.
We need your help to make Fedora 24 the best release yet, so please take some time to download and try out the and make sure the things that are important to you are working. If you find a bug, please report it – every bug you uncover is a chance to improve the experience for millions of Fedora users worldwide.
Together, we can make Fedora rock-solid. We have a culture of coordinating new features and pushing fixes upstream as much as feasible, and your feedback will help improve not only Fedora but Linux and free software on the whole.
Fedora-Wide Changes
Fedora 24 includes a number of changes that will improve all of the editions. For example, Fedora 24 is making use of compiler flags to help improve security by "hardening" the binaries against memory corruption vulnerabilities, buffer overflows, and so on. This is a "behind the scenes" change that most users won't notice through normal use of a Fedora edition, but should help provide additional system security.
Likewise, Fedora 24 has disabled SSL3 and RC4 by default due to known vulnerabilities in the protocols. This means all applications that use GNUTLS and OpenSSL libraries have had the SSL3 protocol and RC4 cipher disabled.
Fedora 24 also includes support for Unicode 8.0, which includes new emojis, and improvements in sorting Unicode text and processing non-ASCII URLs.
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 24 environment.
After writing the image and correct U-boot file(s), insert the media into the target platform and boot.
Scripted
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|am335x_boneblack|Bananapi|Bananapro|cm_fx6|Cubieboard|Cubieboard2|Cubietruck|jetson-tk1|Linksprite_pcDuino|Linksprite_pcDuino3|Linksprite_pcDuino3_Nano|Mele_A1000|Mini-X|mx6cuboxi|none|novena|omap4_panda|omap5_uevm|riotboard|trimslice|wandboard] --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 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/24/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-24-10-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 # Linksprite_pcDuino , Linksprite_pcDuino3 , Linksprite_pcDuino3_Nano 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 )
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 24 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
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.
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
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/24/Images/armhfp/
Extract the image:
TYPE= # Type of image used. (eg Minimal, KDE, Xfce, SoaS, MATE) unxz Fedora-$TYPE-armhfp-24-10-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-24-10-sda.raw
Move the files to the default libvirt image location:
sudo mv Fedora-$TYPE-armhfp-24-10-sda.raw vmlinuz-4.2.3-300.fc24.armv7hl initramfs-4.2.3-300.fc24.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-24_--ram 1024 --arch armv7l --import --os-variant fedora22 \ --disk /var/lib/libvirt/images/Fedora-$TYPE-armhfp-24-10-sda.raw \ --boot kernel=/var/lib/libvirt/images/vmlinuz-4.2.3-300.fc24.armv7hl,initrd=/var/lib/libvirt/images/initramfs-4.2.3-300.fc24.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-24-10-sda.raw +10G
Interactive Network Installation
This example will create an 8Gb disk image in the libvirt images directory.
sudo virt-install \ --name f24-armhfp --ram 2048 --arch armv7l --os-variant fedora22\ --disk /var/lib/libvirt/images/f24-armhfp.raw,bus=virtio,format=raw,size=8 \ --location=http://dl.fedoraproject.org/pub/fedora/linux/releases/24/Server/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/f24-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 Fedup
It is also possible to upgrade to Fedora 24 from an existing Fedora 22 installation (previous releases may also work but have not been tested).
# fully update the system dnf update -y # install the upgrade plugin dnf install dnf-plugin-system-upgrade #upgrade dnf system-upgrade download --releasever=24
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_F24_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 22 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.