Applied Micro "Mustang" (X-C1) QuickStart Guide
This page contains some Quickstart instructions for getting up and running with an early engineering build of Fedora 19 on the Applied Micro "Mustang" development board. This Mustang build is based upon the Fedora 19 AArch64 bootstrap software builds, with the addition of a kernel and DeviceTree from the interim Applied Micro 1.08.12 engineering software release, packaged together into a single downloadable image for easy installation onto a hard disk or SSD. Applied Micro are currently working on upstreaming support into the mainline Linux kernel. In due course this image will be deprecated in favor of a standard Fedora build.
Pre-requisites for downloading and installing the Mustang Build
Prior to downloading and installing the Mustang build, you will require access to the following equipment:
- An existing Linux system, for example a laptop or desktop system
- A USB hard disk enclosure, or a spare disk bay in a Linux system
- A USB serial "null modem" cable (or USB serial adapter with "null modem" cable), or a serial port and a "null modem" cable
Hook up the Mustang board
Prior to installing Fedora, verify that the Mustang board is correctly hooked up and ready for use. To do this, perform the following:
- Attach a USB serial cable to your Linux system (or use a serial port), along with a "null modem" cable.
- Attach the other end of the serial cable to the DB9 connector on the rear of the Mustang system.
- Attach an Ethernet cable into the first Ethernet port on the Mustang system, which is located furthest away from the DB9 connector, atop the two USB connectors. This is the port that Linux will recognize as "eth0" when booted.
- Attach the power cable to the Mustang board.
Install the "minicom" package onto your Linux system:
$ sudo yum install minicom
Run the "minicom" command:
$ minicom -D /dev/ttyUSB0
Replace "/dev/ttyUSB0" with the name of the serial interface, which in the case of a single serial port is "ttyUSB0" or "ttyS0".
Configure minicom using the "Ctrl-A-O" key sequence. Then select "Modem and dialing". Select "A" and remove the "Init string". Do the same for the "Reset string". The result should look similar to the image below:
Press escape to return to the previous menu. Next, select "Serial port setup" and ensure that option "E" (Bps/Par/Bits) is set to "115200 8N1", option "F" (Hardware Flow Control) is set to "No", and option "G" (Software Flow Control) is set to "No". The result should look similar to the image below:
Press escape to return to the previous menu, then select "Save setup as dfl" to make the configuration changes to minicom persistent. Press escape again to exit from the configuration menus.
Power on the Mustang board and watch for output from the serial interface. The output should look similar to the image below:
Once you have confirmed that the Mustang board is hooked up correctly, power it off and continue with the following steps.
Download the Mustang Build
The first step is to download the Mustang build. This can be found at the following location:
Extract the Mustang Build
Once you have downloaded the Mustang build, you will need to extract the archive file. Use the following command from a Linux system:
$ tar xvfJ apm_f19_v4.tar.xz
This will extract the following files:
apm_f19_v4.img.xz config_jcm15 mustang_linux_src_1.08.12-beta_rc.tar.xz
The first file is a compressed disk image that will be written to the hard disk installed within the Mustang board case. The other two files contain the Linux kernel configuration and source (should you - optionally - wish to rebuild the kernel that ships within this image).
Extract the disk image:
$ xz -dk apm_f19_v4.img.xz
This will extract the following files:
apm_f19_v4.img
Copy the disk image to the Mustang board
The Mustang board ships in a case containing a 500GB hard disk. Carefully remove this disk drive from the case. Then install it into either a removable USB enclosure, or into a spare disk bay within your Linux system. Linux should detect this drive and assign a name, such as "/dev/sdc". You can determine the name using the "dmesg" or (preferably) "lsblk" commands.
Copy the disk image onto the hard disk:
$ dd if=apm_f19_v4.img of=/dev/sdX bs=1M
Replace "/dev/sdX" with the name of the device, for example "/dev/sdc".
Once this operation has completed, ensure that the drive is ejected safely from your Linux system:
$ sync $ eject /dev/sdX
Replace "/dev/sdX" with the name of the device, for example "/dev/sdX".
Configure the Mustang board to boot Fedora
Reinstall the hard disk drive into the Mustang case. Next, power on the system and interrupt the boot sequence when the countdown begins. Type the following commands (do not type the "Mustang#" prompt the precedes each command as it is typed into U-Boot):
Mustang# setenv rh_load_kern_scsi 'ext4load scsi 0:1 ${kern_addr_r} /uImage' Mustang# setenv rh_load_fdt_scsi 'ext4load scsi 0:1 ${fdt_addr_r} /mustang.dtb' Mustang# setenv rh_local_load 'run rh_load_kern_scsi rh_load_fdt_scsi' Mustang# setenv rh_local_args 'setenv bootargs root=/dev/sda2 rw panic=1 console=ttyS0,115200 earlyprintk=uart8250-32bit,0x1c020000 debug maxcpus=${num_cores}' Mustang# setenv rh_local 'scsi init; run rh_local_load; run rh_local_args; bootm ${kern_addr_r} - ${fdt_addr_r}' Mustang# setenv bootcmd 'run rh_local'
Save these settings into the Mustang's NOR flash memory with the following command:
Mustang# saveenv
The output should look similar to the image below:
Booting Fedora
Once the board has been configured, you can type "reset" or power-cycle the board, and it should automatically boot into the Fedora engineering build. The default password for the "root" user is "fedora".
Resizing the disk
To do this, login to the Mustang, and type:
$ fdisk /dev/sda
Then delete the second partition (the root partition) and recreate it, accepting all of the defaults, which will fill the disk (as opposed to the much smaller size contained within the example image). Exit from fdisk and reboot the system. After rebooting, run the following command:
$ resize2fs /dev/sda2
This will instruct the ext4 filesystem to resize itself to fill all of the remaining (e.g. 500GB in the example) free disk space.