From Fedora Project Wiki
Line 24: Line 24:
== Using the Model with an Image ==
== Using the Model with an Image ==


Using the commands below, download and extract the Aarch64 root filesystem disk image. The disk image will extract to roughly 12GB in size and may take several minutes to unpack depending on your hardware.
Using the commands below, download and extract the Aarch64 root filesystem disk image.  
 
{{admon/note|Note: The disk image will extract to roughly 12GB in size.  Please ensure you have adequate free space.  This may take several minutes to unpack, depending on your hardware.}}
 
  cd ~/aarch64
  cd ~/aarch64
  wget http://fedorapeople.org/~pwhalen/aarch64/stage4-root-20130725.img.tar.bz2
  wget http://dmarlin.fedorapeople.org/fedora-arm/aarch64/F19-aarch64-efi.tar.xz
  tar xvjf stage4-root-20130725.img.tar.bz2
  tar Jxvf F19-aarch64-efi.tar.xz
 
=== Starting the Model ===
 
The image supports virtio, so the kernel image, initramfs, and device tree blob included on the image will be used to boot.  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:


==== Kernel Packages ====
The Foundation model seems to have some performance issues when using a serial console, there are two kernel packages to choose from - one that includes the console, the other does not and is intended for use by connecting through ssh. The kernels use the wrapper to set the hostname and networking. For example 'systemd-3.9-image-2G-1.axf' will set a hostname of 'model-1' with and IP address of 10.0.1.2, the default gw should be set to 10.0.1.1. The last number in the kernel name indicates which network, hostname will be used when it boots.
* With console:
<pre>
<pre>
wget http://fedorapeople.org/~pwhalen/aarch64/systemd-3.9-image-2G.tar.bz2
sudo ../Foundation_v8pkg/models/Linux64_GCC-4.1/Foundation_v8 \
tar xvjf systemd-3.9-image-2G.tar.bz2
  --cores=1 \
</pre>
  --visualization \
* No console:
  --image=linux-system-el3-foundation.axf \
<pre>
  --data=RTSM_VE_FOUNDATIONV8_EFI.fd@0xA0000000 \
wget http://fedorapeople.org/~pwhalen/aarch64/systemd-3.9-image-ns-2G.tar.bz2
  --block-device `pwd`/aarch64-efi.img \
tar xvjf systemd-3.9-image-ns-2G.tar.bz2
  --network=bridged \
  --network-bridge=ARM1 &
sleep 5
sudo ifconfig ARM1 10.0.1.1 netmask 255.255.255.0
</pre>
</pre>


===== Starting the Model =====
NOTE: You may need to adjust your path for the model depending on the version in use.
* With console:
<pre>
sudo Foundation_v8pkg/models/Linux64_GCC-4.1/Foundation_v8 \
--image systemd-3.9-image-2G/systemd-3.9-image-2G-1.axf \
--network=bridged \
--network-bridge=ARM1 \
--block-device stage4-root-20130725.img 
</pre>
* No console:
<pre>
sudo Foundation_v8pkg/models/Linux64_GCC-4.1/Foundation_v8 \
--image systemd-3.9-image-ns-2G/systemd-3.9-image-ns-2G-1.axf \
--network=bridged \
--network-bridge=ARM1 \
--block-device stage4-root-20130725.img 
</pre>


On the host immediately after launching the model:
Both console (telnet) and ssh access are supported.  To start the model, change to the F19-aarch64-efi subdirectory and run the script:
 
  cd ~/aarch64/F19-aarch64-efi
  ./efi-aarch64.sh
 
{{admon/note|Note: | You must have 'sudo' access in order to run this script.}}
 
{{admon/note|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.
 
{{admon/note|Note: |  It may take several minutes for the model to be fully booted.}}
 
{{admon/note|Note: |  Connecting using telnet will also close the xterm popup window.}}


sudo ifconfig ARM1 10.0.1.1 netmask 255.255.255.0


You should now be able to ssh to the model once it has fully booted. If you're using the console enabled kernels you can use telnet to connect to the serial console using the provided ports as it boots, this will also close the xterm popup window.
* For console:
* For console:
  telnet 10.0.1.1 5003 # note this is the IP of the gateway and not the model
  telnet 10.0.1.1 5000    # note this is the IP of the gateway and not the model
The port number seems to be inconsistent and can vary depending on how quickly you attempt to connect, but is usually the last listed port.
* For ssh login:
* No console (also works on console)
  ssh root@10.0.1.2       # note this is the IP address of the model
  ssh root@10.0.1.2 # note this is the IP address of the model
 
The '''root password is 'fedora', there is also another account called 'builder' password 'builder''''.
 
The '''root password is 'fedora''''.


== Using the model with an NFS root ==
== Using the model with an NFS root ==

Revision as of 16:31, 21 October 2013

Shortcut:
Arch:ARM

Aarch64 Quickstart Guide

This page will help those new to aarch64(armv8) get started with the Foundation Model provided by ARM. There are a number of options available when using the model, including use of a disk image file or NFS root filesystem, as well as a choice of kernel if you would like to use Systemd or Busybox as the init process.

Download the Foundation Model

The first step will be to download the Foundation model from ARM. The model is not redistributable and will therefor 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 extracted to a path of your choosing, in this example we will use your home directory. Unpack the model:

mkdir ~/aarch64
cd ~/aarch64
tar xvzf FM000-KT-00035-r0p8-44rel23.tgz

Using the Model with an Image

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

Note: The disk image will extract to roughly 12GB in size. 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/F19-aarch64-efi.tar.xz
tar Jxvf F19-aarch64-efi.tar.xz 

Starting the Model

The image supports virtio, so the kernel image, initramfs, and device tree blob included on the image will be used to boot. 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 F19-aarch64-efi subdirectory and run the script:

 cd ~/aarch64/F19-aarch64-efi
 ./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:
It may take several minutes for the model to be fully booted.
Note:
Connecting using telnet will also close the xterm popup window.


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


The root password is 'fedora'.

Using the model with an NFS root

Using the model through an NFS root is no longer recommended or supported here.

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).

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.

Notes

  • When using the model with a kernel that provides a serial console you may see intermittent 'ttyAMA0: 1 input overrun(s)'.
  • Intermittent networking issues with 'partial' file downloads.