From Fedora Project Wiki
Line 56: Line 56:
<pre>
<pre>
  KICKSTART= # your kickstart
  KICKSTART= # your kickstart
  REMIXNAME- # remix name
  REMIXNAME= # remix name


appliance-creator -c $KICKSTART \
appliance-creator -c $KICKSTART \

Revision as of 17:59, 21 March 2014

Warning.png
Draft
This is a work in progress and has not been thoroughly tested. Use at your own risk!

Creating a Fedora Remix for ARM

Fedora Guidelines

Using Appliance-Tools on an ARM Host

To create a disk image remix for Fedora you will need to run 'Appliance-Tools' on an ARM host. For those without ARM hardware, this can be completed using QEMU and A15 emulation which can utilize more RAM. If you have ARM hardware you can safely ignore the QEMU portions.

Download the Fedora 20 Disk Image

First download the Minimal disk image for Fedora 20 and unpack.

wget http://download.fedoraproject.org/pub/fedora/linux/releases/20/Images/armhfp/Fedora-Minimal-armhfp-20-1-sda.raw.xz
unxz Fedora-Minimal-armhfp-20-1-sda.raw.xz

If needed install 'libguestfs-tools' to extract the boot files and expand the disk image to make room for our remix image.

sudo yum install -y libguestfs-tools
sudo virt-copy-out -a Fedora-Minimal-armhfp-20-1-sda.raw /boot .
qemu-img resize Fedora-Minimal-armhfp-20-1-sda.raw +10G # change this value to your desired size, it will need to be adequate for your disk image

Use QEMU to boot the new disk image using the vexpress-a15 dtb allowing for increased RAM usage (the example below uses 4G of RAM, adjust this to fit your hardware).

qemu-system-arm -machine vexpress-a15 -m 4096 -nographic -net nic -net user \
-append "console=ttyAMA0,115200n8 rw root=/dev/mmcblk0p3 rootwait physmap.enabled=0" \
-kernel boot/vmlinuz-3.11.10-301.fc20.armv7hl+lpae \
-initrd boot/initramfs-3.11.10-301.fc20.armv7hl+lpae.img \
-dtb boot/dtb-3.11.10-301.fc20.armv7hl+lpae/vexpress-v2p-ca15_a7.dtb \
-sd Fedora-Minimal-armhfp-20-1-sda.raw

Create a Repository for Remix Packages

These are packages not in Fedora, for remixes this usually includes the kernel package but can also include other software you would like to add. If you are adding a custom kernel package it is recommended you add the Fedora kernel as an exclusion (ie - 'exclude=kernel*)' in the yum.conf.

mkdir -p yum/f20/{armhfp,SRPMS}

Add packages to be included in the Remix, and run 'createrepo' to create repomd files.

createrepo yum/f20/armhfp/
createrepo yum/f20/SRPMS/

Copy files to your people account

scp -r yum $USER@fedorapeople.org:/public_html/

Use Appliance tools to Create the Remix

Boot Fedora and complete the initial setup. After logging in as root, expand the filesystem to use the disk space you added to the image and install appliance-tools to get started.

resize2fs /dev/mmcblk0 
yum install appliance-tools

An example kickstart is provided, this was used to create a Remix for the Pandaboard and can easily be adjusted.

Run the following command as root to create a disk image

 KICKSTART= # your kickstart
 REMIXNAME= # remix name

appliance-creator -c $KICKSTART \
-d -v --logfile /tmp/appliance.log --cache /tmp/koji-appliance \
-o app-output --format raw --name $REMIXNAME --version 20 --release $REMIXNAME 

Using an Existing Disk Image