From Fedora Project Wiki
Line 1: Line 1:
= Fedora 18 for ARM=
= Fedora 18 for ARM=
 
This page contains installation instructions for Fedora 18 for ARM.
[[Category:Fedora ARM]][[Category:Fedora 18]]
[[Category:Fedora ARM]][[Category:Fedora 18]]
[[File:BeagleBoard-xM.jpg|right|200px|thumb|A BeagleBoard-xM used at Seneca College to test Fedora ARM]]
[[File:BeagleBoard-xM.jpg|right|200px|thumb|A BeagleBoard-xM used at Seneca College to test Fedora ARM]]
=BeagleBoard-xM=
=BeagleBoard-xM=



Revision as of 14:08, 17 July 2013

Fedora 18 for ARM

This page contains installation instructions for Fedora 18 for ARM.

A BeagleBoard-xM used at Seneca College to test Fedora ARM

BeagleBoard-xM

Running Fedora on a BeagleBoard-xM

This page will give you detailed instructions for running Fedora 18 on your BeagleBoard-xM. The provided images will boot to a serial console.

Download the image

The first step is to download the prebuilt Fedora 18 image, which includes everything you will need to boot your system. It will require a minimum of 4GB for the root filesystem. There two images available for the Beagleboard, a hardware floating point (armhfp) image, and a software floating point(arm) image. If you are unsure of which to choose, the hard floating point image is recommended, and will be used in the provided examples below (adjust accordingly for 'arm'):

Writing the Image

Linux Users

You can write the image to an SD card of your choosing but it does have to meet the minimum size requirements noted above (2GB for the serial image, 4GB for the XFCE Desktop). Connect the SD card to your computer and make note of the drive. To write the image to your SD card run the following command, changing the drive to the location of your SD card.

For the HFP Image:

xzcat Fedora-18-beagle-armhfp.img.xz > /dev/<location-of-your-SD-card>

For the SFP Image:

xzcat Fedora-18-beagle-armhfp.img.xz > /dev/<location-of-your-SD-card>

Once completed run the below command to ensure the entire image is written to the card:

sync

Windows Users

  • You will need to download Win32 Image Writer as well as a tool to extract the image such as 7-Zip.
  • Once downloaded and installed right click on the disk image and select "7-Zip->Extract files here"
  • Launch Win 32 Disk Imager and select the extracted disk image and the SD card you would like to write the files to. Click "Write". Be very careful during this step - all data on the selected drive will be lost!

Mac Users

  • Please note that the Default Archive Utility.app will not extract the .xz file. A third party app will have to be used to decompress it. There are multiple options for that
    1. There is a Free App available in the App Store called Unarchiver.
    2. If mac homebrew or macport is already installed, then the xz utility can be downloaded and installed using one of those.
    3. The xz utils .pkg for mac can be downloaded and installed directly from xz utils
  • Once the xz utility is installed, open a terminal and make a note of the current drives.
ls /dev/disk?
  • Connect the SD card to the mac and make a note of the drive.
  • Open Disk Utility and make sure that the card and all the partitions in the card (if any) is unmounted
  • In the terminal change to the directory where the .xz file is located
  • If xz was installed from the .pkg or macport or homebrew then run the following command
xzcat Fedora-18-beagle-armhfp.img.xz > /dev/<location-of-the-SD-card>
  • If the Unarchiver app from App Store was used then just click and decompress the .xz file and then run the following (may require sudo)
dd if=Fedora-18-beagle-armhfp.img of=/dev/<location-of-the-SD-card>
  • Click and eject the SD card

Using Fedora on the BeagleBoard-xM

Connect the newly created media to your BeagleBoard-xM and power on. No further steps are required and your system should boot to a text based log in prompt. The default root password is "fedoraarm". This should be changed immediately.

Guruplugs used at Seneca College to build Fedora for ARM. There are twenty Guruplugs in the Seneca build farm

Kirkwood Series ( DreamPlug, GuruPlug )

This page will give a user detailed instructions for running Fedora 18 on a Kirkwood based device. The F18 image provides a user with a minimal text based installation to a serial console. At the moment there is no GUI image available. F18 image has been tested to run on GuruPlug Server Plus using microSD card and a USB thumb drive, but should also work for other devices based on the Kirkwood SOC.

Downloading the image

The first step is to download the F18 image. The prebuilt images include kernels and can be written directly to an storage medium such as an (micro)SD Card or an USB stick and requires additional steps (uboot configurations) to boot. The serial console image requires a minimum storage medium size of 4GB.

Writing the Image

Please be aware that writing the image to any drive (SD/microSD/USB/Hard Drive) will erase any existing data in that drive. Please make sure that the card is not write protected.

Linux Users

The image can be written to any storage device as long as it meets the minimum size requirements noted above (4GB for the serial image)

  • Connect the device or card to a computer and make a note of the device file in /dev.
  • To write the image to to the device run the following command (Please adjust the path in /dev)
xzcat Fedora-18-kirkwood-arm.img.xz > /dev/<location-of-storage-device>
  • Once completed run the command below to ensure the entire image is written to the storage
sync

Windows Users

  • Download Win32 Image Writer as well as a tool to extract the image such as 7-Zip.
  • Once downloaded and installed right click on the disk image and select "7-Zip->Extract files here"
  • Launch Win 32 Disk Imager and select the extracted disk image and the microSD card to write the files to. Click "Write". Be very careful during this step - all data on the selected drive will be lost!

Mac Users

  • Please note that the Default Archive Utility.app will not extract the .xz file. A third party app will have to be used to decompress it. There are multiple options for that
    1. There is a Free App available in the App Store called Unarchiver.
    2. If mac homebrew or macport is already installed, then the xz utility can be downloaded and installed using one of those.
    3. The xz utils .pkg for mac can be downloaded and installed directly from xz utils
  • Once the xz utility is installed, open a terminal and make a note of the current drives.
ls /dev/disk?
  • Connect the microSD card to the mac and make a note of the drive.
  • Open Disk Utility and make sure that the card and all the partitions in the card (if any) is unmounted
  • In the terminal change to the directory where the .xz file is located
  • If xz was installed from the .pkg or macport or homebrew then run the following command
xzcat Fedora-18-kirkwood-arm.img.xz > /dev/<location-of-the-microSD-card>
  • If the Unarchiver app from App Store was used then just click and decompress the .xz file and then run the following (may require sudo)
dd if=Fedora-18-kirkwood-arm.img of=/dev/<location-of-the-microSD-card>
  • Click and eject the microSD card

Booting the Image

Pogoplug
If you want to use Fedora on a Pogoplug, follow the Pogoplug special instructions before you continue here.
Dockstar Kernel/Initrd Addresses
To boot Fedora 18 a Dockstar you may need to use the following addresses for the kernel and the initrd, otherwise it hang loading the initrd: 0x800000 0x1100000.

Connect the newly created media to the ARM device and power on. Depending on the model/version of the plug/uboot, additional uboot parameters may be necessary or the existing ones could be edited. To do that, stop the boot process during the countdown and follow the instructions here. The Fedora 18 Kirkwood images contain an ext3 filesystem that cannot be booted directly by certain plugs (such as the GuruPlug) at this time. Please follow the appropriate installation instructions for your device.

U-Boot supporting boot from EXT partitions

The following has been tested with a GuruPlug Server Plus (remove the "saveenv" command prior to "boot" if you would only like to test without permanently changing configuration):

# NOTE: substitute "usb 1:1" with "usb 0:1" on non-Plus model devices, or try:

usb start
ext2ls usb x:1   
#where x can be any integer but usually 0-3, the right number will show a directory listing including the files uInitrd and uImage

#NOTE: If ext2ls does not work, your uboot does not support the ext2 filesystem, 
#skip down to the "U-Boot supporting boot from VFAT partitions only" section or upgrade your uboot.

printenv
set bootargs 'console=ttyS0,115200 root=LABEL=rootfs rootwait'
set loadInitrd 'ext2load usb 1:1 0x7400000 uInitrd'
set loadImage 'ext2load usb 1:1 0x6400000 uImage'
set bootcmd 'usb start; ${loadImage}; ${loadInitrd} ; bootm 0x6400000 0x7400000'
saveenv
boot

U-Boot supporting boot from VFAT partitions only

NOTE: Skip this if you have ext2 support in your uboot. You already did this in the previous step.

The first partition of the image will need to be reformatted to VFAT prior to successfully booting the device. You can do this manually if you would like, or use the livemedia-modifier tool to simplify the process. From a terminal enter the following:

wget http://fossjon.fedorapeople.org/packages/livemedia-modifier/livemedia-modifier-1.8-1.fc18.noarch.rpm
chmod 755 livemedia-modifier
./livemedia-modifier --image=<location-of-kirkwood-disk-image> --platform=kirkwood

The livemedia-modifier tool will mount the disk image, copy the contents of the boot partition to a temporary directory, reformat to VFAT and then copy the contents back to the partition.

When the reformat has completed, the following has been tested with a GuruPlug Server Plus (remove the "saveenv" command prior to "boot" if you would only like to test without permanently changing configuration):

# NOTE: substitute "usb 1:1" with "usb 0:1" on non-Plus model devices
printenv
set bootargs 'console=ttyS0,115200 root=LABEL=rootfs rootwait'
set loadInitrd 'fatload usb 1:1 0x7400000 uInitrd'
set loadImage 'fatload usb 1:1 0x6400000 uImage'
set bootcmd 'usb start; ${loadImage}; ${loadInitrd} ; bootm 0x6400000 0x7400000'
saveenv
boot

Installing the kernel to NAND

You can install the kernel and initrd directly into the Plug's NAND flash using commands similar to the following:

# NOTE: substitute "usb 1:1" with "usb 0:1" on non-Plus model devices
# NOTE: If you have ext2 support in uboot (some older versions do not), replace fatload with ext2load in the following directions. 

usb start
fatload usb 1:1 0x6400000 /uImage
nand erase 0x100000 0x400000
nand write.e 0x6400000 0x100000 0x400000
fatload usb 1:1 0x6400000 /uInitrd
nand erase 0x500000 0x1b00000
nand write.e 0x6400000 0x500000 0x1b00000
set bootargs 'console=ttyS0,115200 root=LABEL=rootfs rootwait'
set loadInitrd 'nand read.e 0x7400000 0x500000 0x1b00000'
set loadImage 'nand read.e 0x6400000 0x100000 0x400000'
set bootcmd 'nand start; ${loadImage}; ${loadInitrd} ; bootm 0x6400000
0x7400000'
saveenv
boot

Using Fedora on a Kirkwood Device

The default root password is "fedora". This should be changed immediately.

Serial Console

It is helpful to have a serial console. For the kirkwoods, you need a ttl serial/usb converter like the one on the Guruplug JTAG, a nokia serial cable, or possibly http://adafruit.com/products/954 (not tested, but it has leads so no soldering required for Pogoplug E02 or possibly Dockstars, sheevaplugs, tonidoplugs, etc?.)

The only place that sold the 1.25 pitched connectors with leads for the original guruplug jtag was someone from china off ebay. (It took 6 weeks for delivery.)

The Guruplugs and Pogoplug E02 pinouts are: http://www.plugcomputer.org/Documentation/all-categories/categoryguruplug/guruplug/#Pinouts_for_the_Guruplug_connectors

NOTE: the -connector- is different for the Pogoplug E02, (Rumor has it sometimes they are reversed pin outs.) The connector is I believe 2.54mm for the Pogoplug E02, which is the same size as an analogue cd-rom audio cable, which you can use. (You don't want the power pin).

You can use several clients to connect to your usb/serial converter. cu, picocom, screen, minicom and kermit. You need to set flow control to none. You might have to use stty commands or dig through the settings. I use kermit with these settings:

[root@daffodil ~]# cat .mykermrc
set line /dev/ttyUSB0
set speed 115200
set flow /direct-serial
set flow none
set carrier-watch off
connect
[root@daffodil ~]#


With the serial console and bootrom versions 1.21+ you can also recover a machine (bricked) that has a corrupt uboot. There are several tools available kwboot is one of those tools. It uses the uart(serial) protocol to load a uart enabled uboot image. You can use either the uart boot or the xmodem protocol which is enabled by sending a special string over uart to the machine at boot.

For bootrom versions 1.11 like on the Pogoplug pink E02's, you need a jtag adapter (buspirate or guruplug jtags have been reported to work), and openocd.

The openocd commands for the pogoplug E02 are(it is similar for all kirkwoods and should work no matter what bootrom version you have):

#init dockstar this halts the processor
dockstar_init
#initialize the nand bank #0
nand probe 0

#one of the following 2 commands:
#this command erases all of your nand on bank 0, you may not want that. it takes a couple of minutes. 
nand erase 0
--or--
#this command erases a small section of your nand on bank 0 from address 0x0 to 0x060000 instead of the whole thing.(you can)
nand erase 0 0x0 0x060000

#this loads the new u-boot.kwb image from the directory you started openocd from to the address 0x80000.
# Use full pathnames ie /home/mystuff/kwb.boot if it is in another directory. It takes a minute or two.
# (if it doesn't then you probably forgot to enable the nand.. 
load_image u-boot.kwb 0x80000
#this command writes the file to nand starting at address 0x0
nand write 0 u-boot.kwb 0 oob_softecc_kw
#this saves your changes and resets the processor. You should be able to see the new uboot on the serial console. 
reset

Note: The Guruplug jtag requires the uses of the FTDI driver, and it needs to be compiled into openocd. Fedora does NOT do that due to software licensing and distribution issues surrounding the FTDI driver. They are available from: http://www.ftdichip.com and you will have to compile the driver into your version of openocd. You may also need to make a few minor changes to the openocd configs/scripts to get it to work right with openocd 0.6.1

Calxeda Energycore (HighBank)

The EnergyCore ECX-1000 Series is a family of SoC (Server-on-Chip) products that bring the power efficiency of ARM processors to the datacenter. The ECX-1000′s have an integrated 80Gb EnergyCore Fabric Switch, advanced power/systems management with the on-chip EnergyCore Management Engine, and a slew of I/O options.

For more information on the Calxeda EnergyCore processor, please visit their website.

Using Anaconda to install on Calxeda Energycore (HighBank)

The Calxeda Energycore (HighBank) system supports PXE-boot and may install Fedora using Anaconda and Kickstart. This guide will give you detailed instructions on how to perform the installation, including the HighBank-specific setup required to perform a PXE-boot and kickstart install.

Server Setup
How to set up the server (DHCP/TFTPBoot/PXE) is covered in other Fedora documentation, and is not specific to ARM, so it will not be covered in this document.

The ARM installation tree is included in the Fedora 18 for ARM release and can be found on Fedora Mirrors.

PXE-boot configuration

An example PXE-boot config file is:

menu title F18 HighBank Boot Options

default Highbank-Install
prompt 1
timeout 100

label Highbank-Install
    kernel f18-highbank/vmlinuz-highbank
    initrd f18-highbank/initrd-highbank.img
    append console=ttyAMA0 ip=eth0:dhcp ks=http://<ServerPathToKickstartConfig>/F18-highbank.ks rd.shell


By default, this file should be placed in the pxelinux.cfg directory and named 01-<MAC Address>, all lower case, for example:

  MAC=00-50-43-9e-17-28 -> FileName=01-00-50-43-9e-17-28


U-Boot will also search for alternate file names, including a hexidecimal representation of the system's IP address.

The command line optiopn "ip=eth0:dhcp" is required to perform a network-based install. Command line option rd.debug and rd.shell may be added to support debugging.

A copy of the kernel and initrd image files from the install tree in the yum repository, along with the kickstart config file, should be placed on the PXE/tftpboot server, example:

 /tftpboot/f18-highbank/
   F18-highbank.ks
   initrd-highbank.img
   vmlinuz-highbank
   upgrade-highbank.img
   uImage-highbank
   uInitrd-highbank


The kickstart config file could reside elsewhere, but it was included here with the other images, just to keep things together. This implies that the tftpboot directory is also accessible via http.


Default Operation
The current version of U-Boot on Highbank defaults to using 'bootz' instead of 'bootm' for PXE-booting, therefore the 'raw' images need to be copied to the server. The version of U-Boot on other systems may have the opposite default (use U-Boot wrapped images). Both versions of the kernel and initrd are provided in the images/pxeboot directory of the install tree and may be copied to the server.


Please use this example F18-highbank.ks file as a base for test installations. By default it points to the public yum repository and install tree.

To boot to the PXE install image, interrupt the autoboot on the system and perform a PXE-boot. For convenience U-Boot provides a script can be used to PXE boot the system, for example:

  bootcmd_pxe=setenv bootfile ""; dhcp; pxe get; pxe boot


This can then be automatically performed on boot, or run manually, for example:

 run bootcmd_pxe


U-Boot should display the boot menu defined in the PXE config file for the system. Once the default is selected (or autoboots) the kickstart install should begin. This may take a long time, so please be patient. Depending on the system and network performance the installation may take more than an hour.

The default root password is 'fedora'. This should be changed immediately.

IMPORTANT NOTE
This will wipe out anything on the hard drive in order to perform the new installation. It is not interactive, and no prompts or warnings will be provided. Only run this on a 'scratch' system for installation testing.


Fedora provides the images on the Fedora secondary-arch mirrors, and on the master repository at:

 http://dl.fedoraproject.org/pub/fedora-secondary/releases/18/Fedora/armhfp/os/images/pxeboot


These images can be used for quick testing of PXE configuration using the example kickstart file provided (above).

A "Pandastack" used at Seneca College to build Fedora for ARM. There are eleven stacked Pandaboards in this configuration

Pandaboard

The Pandaboard is an open OMAP™ 4 mobile software development platform. It provides users with either a desktop or text-based environment.

Technical Specifications

  • 1 GHz Dual core Cortex A9 Processor (OMAP 4430-4460)
  • 1 GB DDR2 RAM
  • HDMI v1.3
  • 10/100Mbit/s Ethernet
  • 802.11 b/g/n WiFi

For more information on the Pandaboard visit their website.

Running Fedora on a Pandaboard

This page will give you detailed instructions for running Fedora 18 on your Pandaboard. The image will provide both serial console and the XFCE desktop.

Download the image

The first step is to download the prebuilt Fedora 18 image, which includes everything you will need to boot your system. It will require a minimum of 4GB for the root filesystem. There two images available for the Pandaboard, a hardware floating point (armhfp) image, and a software floating point(arm) image. If you are unsure of which to choose, the hard floating point image is recommended, and will be used in the provided examples below (adjust accordingly for 'arm'):

Download and verify the checksum:

wget http://dl.fedoraproject.org/pub/fedora-secondary/releases/18/Images/armhfp/Fedora-18-armhfp-Images-CHECKSUM
sha256sum --check Fedora-18-armhfp-Images-CHECKSUM

Writing the Image

Linux Users

You can write the image to an SD card of your choosing but it does have to meet the minimum size requirements of 4GB. You can optionally use a USB device for the root file system to improve performance.

For use with SD:

 xzcat Fedora-18-panda-armhfp.img.xz  > /dev/<path-to-SD-device>

For use with SD/USB

 xzcat Fedora-18-panda-armhfp.img.xz > /dev/<path-to-SD-device>
 xzcat Fedora-18-panda-armhfp.img.xz > /dev/<path-to-USB-device>

Then use fdisk to delete the boot partition from the USB attached media, and rootfs and swap partitions from the SD card.

 fdisk /dev/<path-to-SD-device>

Delete partitions two and three (d,3,d,2,w).

 fdisk /dev/<path-to-USB-device>

Delete the first parition only. (d,1,w)

Once completed run the below command to ensure the entire image is written to the card:

sync

Windows Users

  • You will need to download Win32 Image Writer as well as a tool to extract the image such as 7-Zip.
  • Once downloaded and installed right click on the disk image and select "7-Zip->Extract files here"
  • Launch Win 32 Disk Imager and select the extracted disk image and the SD card you would like to write the files to. Click "Write". Be very careful during this step - all data on the selected drive will be lost!

Using Fedora on the Pandaboard

Connect the newly created media to your Pandaboard and power on. No further steps are required. Your images will boot to graphical.target (runlevel 5) by default. To change this default behaviour and boot to multi-user.target (runlevel 3) run the following command as root:

ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target

The default root password is "fedora". This should be changed immediately.

A Trimslice proudly wearing a "Powered by Fedora" case badge.

Trimslice

The Trim Slice is a small, fanless, nettop computer in an all metal case, manufactured by CompuLab. It is based on the NVIDIA Tegra 2 processor. It features a variety of connectivity options. At this time there is no support in Fedora for a display on the Trim Slice, so it boots to a serial console.

Technical Specifications

  • 1 GHz NVIDA Tegra 2 (dual-core ARM Cortex A9)
  • 1 GB DDR2-667 RAM
  • HDMI 1.3 max resolution 1920 x 1080
  • Gigabit Ethernet (Realtek RTL8111DL)
  • 802.11 b/g/n WiFi

For more information on the Trimslice visit their website.

Running Fedora on a Trimslice

This page will give you detailed instructions for running Fedora 18 on your Trimslice. The image is prepared to boot from SD card by default, but can be easily modified to boot from the internal SATA connection (USB) by using the appropriate boot script (boot.scr.usb).

Download the image

The first step is to download the Fedora 18 image. The prebuilt image includes everything you will need and can be written directly to SD Card, USB, or SATA drive and will require a minimum of 4GB. There are two images available for the Trimslice, a hardware floating point (armhfp) image, and a software floating point (arm) image. If you are unsure of which to choose, the armhfp image is recommended, and will be used in the examples below (adjust accordingly for 'arm'):

Download and verify the checksum:

wget http://dl.fedoraproject.org/pub/fedora-secondary/releases/18/Images/armhfp/Fedora-18-armhfp-Images-CHECKSUM
sha256sum --check Fedora-18-armhfp-Images-CHECKSUM

Writing the Image

Linux Users

You can write the image to media of your choosing but it does have to meet the minimum size requirement of 4GB. Connect the media to your computer and make note of the drive. To write the image to your media run the following command, changing the drive to the location of your media.

For the SD Image:
xzcat Fedora-18-trimslice-armhfp.img.xz > /dev/<location-of-your-SD-card>

Once completed run the below command to ensure the entire image is written to the device:

sync
For the SATA/USB Image:
xzcat Fedora-18-trimslice-armhfp.img.xz > /dev/<location-of-your-SATA/USB>

Then mount the 'boot' partition and copy the appropriate boot script to boot.scr:

 cp boot.scr.usb boot.scr

Once completed run the below command to ensure the entire image is written to the device:

sync

Windows Users

  • You will need to download Win32 Image Writer as well as a tool to extract the image such as 7-Zip.
  • Once downloaded and installed right click on the disk image and select "7-Zip->Extract files here"
  • Launch Win 32 Disk Imager and select the extracted disk image and the device you would like to write the files to. Click "Write". Be very careful during this step - all data on the selected drive will be lost!

Using Fedora on the Trimslice

IMPORTANT
You must use firmware "v2010.09-1.03" to boot the Fedora 18 Trimslice image. Failure to do so will result in a non-booting system.

Connect the newly created media to your Trimslice and power on. No further steps are required and your system should boot to a serial console log in prompt. If you do not have a serial cable to connect your Trimslice, you can watch your DHCP server for the newly connected device. After a few minutes you should be able to see the host IP address. Use SSH to connect to the root account.

ssh root@<ip-of-host>

The default root password is "fedora". This should be changed immediately.

Updating to the 3.7+ Kernel

IMPORTANT
When upgrading to the 3.7+ kernel, the Trimslice will require a new version of U-Boot and a Device Tree Binary (.dtb). Follow the below directions for use. Failure to do so will result in a non-booting system.

As of the 3.7+ kernel, the Trimslice will require the latest version of U-Boot that supports Device Tree and the use of a Device Tree Binary blob (.dtb). To successfully upgrade to the latest kernel:

yum update kernel-tegra

The kernel package will also install a subdirectory in '/boot/dtb-<kernel-version>' that will include the Device Tree Binary blob for the Trimslice. In order to use this 'dtb' file, create a symbolic link as follows:

cd /boot
rm dtbs  # remove the previous symlink if it exists
ln -sf dtb-<kernel version> dtbs

For example for 'kernel-tegra-3.9.0-0.rc8.git0.1.fc19.armv7hl':

cd /boot
rm dtbs # remove the previous symlink if it exists
ln -sf dtb-3.9.0-0.rc8.git0.1.fc19.armv7hl.tegra dtbs


Shutdown your device, and follow the instructions on the Compulab website to update the firmware on the Trimslice. Once the firmware is installed, you will need to add a couple of environmental variables to allow your system to boot. Boot your Trimslice and hit any key to prevent the system from booting, enter the following:

setenv fdt_high 0x2C000000
setenv initrd_high 0x2C000000
saveenv
reset

This should now boot into Fedora 18.

A screen shot of Fedora 18 for ARM on QEMU .

Versatile Express

The Versatile Express family of development platforms provides users with a modular board design for use testing different ARM SOC design implementations. QEMU provides the ability to emulate ARM Versatile Express for Cortex-A9 on your desktop computer for easy experimentation!

Technical Specifications

  • ARM Versatile Express for Cortex-A9
  • 1GB RAM
  • 10/100Mbit/s Ethernet

For more information on Versatile Express or QEMU visit their websites.

Running Fedora through QEMU

This page will give you detailed instructions for running Fedora 18 through QEMU. The tarball includes all that is needed to boot your system including the root filesystem image and the pre-extracted kernel and initramfs. Also, included for your convenience is a script to boot using a serial connection or the XFCE desktop. WARNING: If you will be doing development with this image then it is recommended that you add 10-15GB to the root partition before booting.

Download the image

There are two Versatile Express images available for use with QEMU, a hardware floating point (armhfp), and a software floating point(arm). If you are unsure of which to choose, the hard floating point image is recommended, and will be used in the provided examples below (adjust accordingly for 'arm'):

Download and verify the checksum:

wget http://dl.fedoraproject.org/pub/fedora-secondary/releases/18/Images/armhfp/Fedora-18-armhfp-Images-CHECKSUM
sha256sum --check Fedora-18-armhfp-Images-CHECKSUM

Preparing the Image

Linux Users

Extract the tarball using the graphical user interface or the following commandline option:

tar xvJf Fedora-18-vexpress-xfce-armhfp.tar.xz

Windows Users

QEMU is also available on Windows but is not yet covered in this guide. For more information on running QEMU on Windows please visit their website.

Using Fedora through QEMU

First you will need to install the ARM QEMU package (this example is using Fedora)

yum install qemu-system-arm

Once installed, change to the boot directory of the extracted kernel package:

cd Fedora-18-vexpress-xfce-armhfp/boot/

From there execute the provided script, choosing to boot with or without a graphical interface.

./boot-vexpress -h
Usage: ./boot-vexpress [--gui] --kernel=vmlinuz... --ramfs=initramfs --image=fsimage [--dtb=vexpress.dtb]

For serial console:

 ./boot-vexpress --kernel=vmlinuz-3.6.10-8.fc18.armv7hl \
    --ramfs=initramfs-3.6.10-8.fc18.armv7hl.img \
    --image=../Fedora-18-vexpress-xfce-armhfp.img

For XFCE Desktop:

 ./boot-vexpress --kernel=vmlinuz-3.6.10-8.fc18.armv7hl \
    --ramfs=initramfs-3.6.10-8.fc18.armv7hl.img \
    --image=../Fedora-18-vexpress-xfce-armhfp.img \
    --gui

The default root password is "fedora". This should be changed immediately.

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 ./file.img +10G

Doing this before booting the image will cause the filesystem to be automatically resized.

If you have already booted the system then you will need to do the following:

  • Enlarge the disk as before:
qemu-img resize ./file.img +10G
  • Boot into the guest and install the rootfs-resize application.
yum install -y rootfs-resize
  • Enable the service to start at boot
systemctl enable rootfs-resize.service
  • Create an empty file in the root directory named '.rootfs-repartition'
touch /.rootfs-repartition
  • Reboot your guest
reboot
  • Your system will automatically reboot again to complete the resize (this is not automatic on QEMU, and you will need to manually start the guest again).

Release Notes

  • Images were composed using tools in Fedora 17 due to continuing work on Fedora 18.
  • When upgrading to the 3.7.X kernel you will require a device tree binary (.dtb) file for the system to boot. The provided 'boot-vexpress' script allows for the optional use of a 'dtb' file and will give a warning when booting kernels above 3.6.x.
    • The XFCE Desktop is not currently available when using the 3.7.x kernel.

Known Issues

  • BeagleBoard-xM generates a kernel warning on reboot and requires use of the reset button to actually reboot.
  • Images are designed to be written to 2GB (console) or 4GB (xfce) SD cards. On first boot the partition will be resized to the maximum allowable amount. On the second boot the filesystem will be resized to fill the expanded partition. This works for SD cards, SATA Disks, and SSD drives.
  • Images were composed using tools in Fedora 17 due to continuing work on Fedora 18.
  • When using this image the system will automatically reboot to repartition the root filesystem on first boot. This will expand the size of the root partition to use all available space on the device. To prevent this, delete the '.rootfs-repartition' flag in '/' or pass a kernel command line argument of 'nofsresize'.
  • When upgrading the to 3.7.X kernel on the Trimslice you will require a new version of U-Boot that supports Device Tree, and a Device Tree Binary (.dtb) file.
  • Known release issues

Additional Support

There are Fedora ARM users all around the globe - if you need assistance, would like to provide feedback or contribute to Fedora ARM please visit us on the IRC - we can be found in #fedora-arm[?] on Freenode. You can also contact us on the mailing list - arm

References