From Fedora Project Wiki
Line 21: Line 21:
  mkdir ~/aarch64
  mkdir ~/aarch64
  cd ~/aarch64
  cd ~/aarch64
  tar xvzf FM000-KT-00035-r0p8-44rel23.tgz
  tar xvzf FM000-KT-00035-r0p8-52rel06.tgz


== Using the Model with an Image ==
== Using the Model with an Image ==

Revision as of 13:48, 8 April 2014

Shortcut:
Arch:ARM

Aarch64 Quickstart Guide

This page will help those new to aarch64 (ARMv8) get started with the Foundation Model provided by ARM. The F21-aarch64-efi tarball provides an F21-based disk image, which includes a kernel, initramfs, and device tree blob, files to support booting the kernel using EFI, and a sample script for starting the model.

Download the Foundation Model

The first step is to download the Foundation model from ARM. The model is not re-distributable and will therefore require you to create a free account with ARM. Once completed, you will be able to download the Foundation Model and begin.

To run the model you may need to install some additional software with the following command:

sudo yum install xterm xorg-x11-fonts-{misc,100dpi,75dpi}* telnet bridge-utils

Extract the Foundation Model

Once you have downloaded the model, you will need to set up your environment. The model can be extracted to a path of your choosing. Your home directory will be used in this example.

Unpack the model:

mkdir ~/aarch64
cd ~/aarch64
tar xvzf FM000-KT-00035-r0p8-52rel06.tgz

Using the Model with an Image

Using the commands below, download and extract the Aarch64 root filesystem tarball.

Note: The extracted disk image requires approximately 12GB disk space. Please ensure you have adequate free space. This may take several minutes to unpack, depending on your hardware.
cd ~/aarch64
wget http://dmarlin.fedorapeople.org/fedora-arm/aarch64/F21-20140407-foundation-v8.tar.xz
tar Jxvf F21-20140407-foundation-v8.tar.xz 

Allowing the Model to Connect to the Internet

On the host:

  • Enable IP forwarding (as root)
echo 1 > /proc/sys/net/ipv4/ip_forward
  • Set up Network Address Translation:
HOSTEXTERNAL=eth0 # Replace this with your outside interface
sudo iptables -t nat -I POSTROUTING -o $HOSTEXTERNAL -j MASQUERADE
sudo iptables -I FORWARD -i $HOSTEXTERNAL -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -I FORWARD -i ARM1 -o $HOSTEXTERNAL -j ACCEPT
  • Firewall trouble? Try this:
sudo iptables -I INPUT -i ARM1 -j ACCEPT

The model uses Google's Public DNS server (8.8.8.8) for name resolution (/etc/resolv.conf).

Starting the Model

The kernel supports virtio, so the kernel image, initramfs, and device tree blob included on the image will be used in the boot process. You no longer need to use separate "Kernel Packages".

An example script for starting the model has been included in the tarball. This script performs the following steps to start the model:

sudo ../Foundation_v8pkg/models/Linux64_GCC-4.1/Foundation_v8 \
  --cores=1 \
  --visualization \
  --image=linux-system-el3-foundation.axf \
  --data=RTSM_VE_FOUNDATIONV8_EFI.fd@0xA0000000 \
  --block-device `pwd`/aarch64-efi.img \
  --network=bridged \
  --network-bridge=ARM1 &
sleep 5
sudo ifconfig ARM1 10.0.1.1 netmask 255.255.255.0


Both console (telnet) and ssh access are supported. To start the model, change to the F21-20140407-foundation-v8 subdirectory and run the script:

 cd ~/F21-20140407-foundation-v8
 ./efi-aarch64.sh
Note:
You must have 'sudo' access in order to run this script.
Note:
The script assumes the foundation model is in:
   ~/aarch64/Foundation_v8pkg.
Adjust as necessary for your environment.


You should be able to ssh to the model once it has fully booted. You can use telnet to connect to the serial console using the provided ports as it boots.

Note:
Connecting using telnet will also close the xterm popup window.
Note:
It may take several minutes for the model to be fully booted.


  • For console:
telnet 192.168.1.1 5000     # note this is the IP of the gateway and not the model
  • For ssh login:
ssh root@192.168.1.5        # note this is the IP address of the model


The root password is 'fedora'.

Fixing build failures

If you want to debug a broken package, please visit the problem package list, follow the directions and claim the packages of your choice.