From Fedora Project Wiki
 
(16 intermediate revisions by 5 users not shown)
Line 6: Line 6:
This marks the last significant milestone before reaching the final release of Fedora 19 for ARM, with only critical bug fixes being added as updates to make this our most solid release to date.  
This marks the last significant milestone before reaching the final release of Fedora 19 for ARM, with only critical bug fixes being added as updates to make this our most solid release to date.  


The Fedora 19 Beta for ARM includes two pre-built images - one for the Pandaboard(es) which requires special partitioning, the second will support the Trimslice and Versatile Express(QEMU). The Beta for ARM also includes an installation tree in the yum repository which may be used to PXE-boot a kickstart-based installation on systems that support this option, such as the Calxeda EnergyCore (HighBank).
The Fedora 19 Beta for ARM includes two pre-built images - one for the Pandaboard and Pandaboard ES which requires special partitioning, the second will support the Trimslice and Versatile Express(QEMU). The Beta for ARM also includes an installation tree in the yum repository which may be used to PXE-boot a kickstart-based installation on systems that support this option, such as the Calxeda EnergyCore (HighBank).


==For Trimslice==
==For the Trimslice==
{{admon/warning|IMPORTANT | You must use a Device Tree enabled Uboot to boot the Fedora 19 Trimslice image.  <b>Failure to do so will result in a non-booting system.</b>}}
{{admon/warning|IMPORTANT | You must use the latest Device Tree enabled Uboot to boot the Fedora 19 Trimslice image, which you can find [http://www.trimslice.com/wiki/index.php/Trim-Slice_Firmware_Updater#v2012.04-1.02  here].  <b>Failure to do so will result in a non-booting system.</b>}}


Download the image for use in the Trimslice:
Download the image for use in the Trimslice:
Line 22: Line 22:
  yum remove kernel kernel-lpae
  yum remove kernel kernel-lpae


== For Pandaboard(ES) ==
== For the Pandaboard and Pandaboard ES ==
Download the image for use with the Pandaboard or Pandaboard ES.
Download the image for use with the Pandaboard or Pandaboard ES.
  wget http://dl.fedoraproject.org/pub/fedora-secondary/releases/test/19-Beta/Images/armhfp/Fedora-OMAP-armhfp-19-Beta-1-sda.raw.xz
  wget http://dl.fedoraproject.org/pub/fedora-secondary/releases/test/19-Beta/Images/armhfp/Fedora-OMAP-armhfp-19-Beta-1-sda.raw.xz
Line 32: Line 32:
Before booting the OMAP image reinsert the media into a host pc. The image should automatically mount, however if it does not you may need to adjust the mount point used in the below example. Use the 'mount' command to determine the name of the partition you will be working with.
Before booting the OMAP image reinsert the media into a host pc. The image should automatically mount, however if it does not you may need to adjust the mount point used in the below example. Use the 'mount' command to determine the name of the partition you will be working with.
<pre>
<pre>
USER=your-user-name # replace this with your username
DEVICE=/dev/<device> # use the mount command to determine the device, omit any tailing partitions (for example : /dev/sdb or /dev/mmcblk0)
PARTITION=/dev/<partition> # use the mount command to determine the partition, use the full path (for example /dev/mmcblk0p1)
TARGET=               #this is your target device - panda, panda_es  
TARGET=   #this is your target device - panda, panda_es  
 
umount /run/media/$USER/__BOOT/UBOO
 
mkfs.vfat $PARTITION
# fix the boot partition
mkdir /tmp/uboot
umount ${DEVICE}*1
sudo mount $PARTITION /tmp/uboot
mkfs.vfat -n 'BOOT' ${DEVICE}*1
sudo cp /run/media/$USER/__/usr/share/uboot-$TARGET/MLO /tmp/uboot/
BOOTUUID=$(blkid -s UUID -o value ${DEVICE}*1)
sync
 
sudo cp /run/media/$USER/__/usr/share/uboot-$TARGET/{uboot.img,uboot.bin} /tmp/uboot/
 
sudo cp /run/media/$USER/__/usr/share/uboot-$TARGET/uEnv.txt.$TARGET /tmp/uboot/uEnv.txt
# generate a new UUID for later use on the rootfs.
ROOTUUID=$(uuidgen)
 
 
# fix the rootfs
umount ${DEVICE}*3
tune2fs -L 'rootfs' -U "$ROOTUUID" ${DEVICE}*3
 
 
# Create temporary mount points
mkdir /tmp/{uboot,rootfs}
sudo mount ${DEVICE}*1 /tmp/uboot
sudo mount ${DEVICE}*3 /tmp/rootfs
 
 
# copy over the TI boards boot files.
sudo cp /tmp/rootfs/usr/share/uboot-panda/{MLO,u-boot.img} /tmp/uboot/
sudo cp /tmp/rootfs/usr/share/uboot-panda/uEnv.txt.$TARGET /tmp/uboot/uEnv.txt
sync
sync
# fix the rootfs mount point
sed -i -e "s|.*\(/.*ext4.*\)$|UUID=${ROOTUUID} \1|" /tmp/rootfs/etc/fstab
sed -i -e "s|.*\(/boot/uboot.*vfat.*\)$|UUID=${BOOTUUID} \1|" /tmp/rootfs/etc/fstab
sync
umount /tmp/rootfs
umount /tmp/uboot/
umount /tmp/uboot/
#THE END
</pre>
</pre>
Before removing the card you will need to edit the 'fstab' on the root filesystem and correct the UUID listed for /boot/uboot. Use the 'blkid' command to obtain the new UUID
sudo blkid
Edit the fstab
sudo vi /run/media/$USER/__/etc/fstab
You should now be able to boot from the media. Safely eject, insert into your device and boot.


==For Versatile Express Emulation with QEMU==
==For Versatile Express Emulation with QEMU==
Line 69: Line 90:
  sudo cp /tmp/boot/initramfs-3.9.2-301.fc19.armv7hl.img .
  sudo cp /tmp/boot/initramfs-3.9.2-301.fc19.armv7hl.img .
  sudo cp /tmp/boot/vmlinuz-3.9.2-301.fc19.armv7hl .
  sudo cp /tmp/boot/vmlinuz-3.9.2-301.fc19.armv7hl .
sudo cp -r /tmp/boot/dtb-3.9.2-301.fc19.armv7hl .


To boot:
To boot:
Line 78: Line 98:
  -initrd initramfs-3.9.2-301.fc19.armv7hl.img \
  -initrd initramfs-3.9.2-301.fc19.armv7hl.img \
  -sd Fedora-armhfp-19-Beta-1-sda.raw \
  -sd Fedora-armhfp-19-Beta-1-sda.raw \
--dtb dtb-3.9.2-301.fc19.armv7hl/vexpress-v2p-ca9.dtb
</pre>
</pre>


Line 90: Line 109:
To boot the image:
To boot the image:
<pre>
<pre>
sudo ./boot-vexpress --kernel=vmlinuz-3.9.2-301.fc19.armv7hl --ramfs=initramfs-3.9.2-301.fc19.armv7hl.img --image=Fedora-armhfp-19-Beta-1-sda.raw --dtb=dtb-3.9.2-301.fc19.armv7hlvexpress-v2p-ca9.dtb
sudo ./boot-vexpress --kernel=vmlinuz-3.9.2-301.fc19.armv7hl --ramfs=initramfs-3.9.2-301.fc19.armv7hl.img --image=Fedora-armhfp-19-Beta-1-sda.raw
</pre>
</pre>
Booting with device tree is possible, although passing <b>--gui</b> for graphics will not work. Booting without device tree is recommended for F-19, as it will work in both serial and graphics mode, whereas passing a DTB will only work with serial.
= Calxeda EnergyCore (HighBank) =
The Fedora 19 Beta for ARM includes support for systems that are able to perform a network installation using a kickstart, including enterprise hardware such as the Highbank. A working kickstart can be found [http://fedorapeople.org/~pwhalen/f19-beta/highbank.ks here].
For more detailed instructions on setting this up, please visit this [[Architectures/ARM/F18/HighBank |page]].


= Known Issues =
= Known Issues =

Latest revision as of 15:00, 17 June 2013

Fedora 19 ARM Beta

The Fedora ARM team is pleased to announce the Fedora 19 Beta for ARM is now available for download from:

https://dl.fedoraproject.org/pub/fedora-secondary/releases/test/19-Beta/Images/armhfp/

This marks the last significant milestone before reaching the final release of Fedora 19 for ARM, with only critical bug fixes being added as updates to make this our most solid release to date.

The Fedora 19 Beta for ARM includes two pre-built images - one for the Pandaboard and Pandaboard ES which requires special partitioning, the second will support the Trimslice and Versatile Express(QEMU). The Beta for ARM also includes an installation tree in the yum repository which may be used to PXE-boot a kickstart-based installation on systems that support this option, such as the Calxeda EnergyCore (HighBank).

For the Trimslice

Warning.png
IMPORTANT
You must use the latest Device Tree enabled Uboot to boot the Fedora 19 Trimslice image, which you can find here. Failure to do so will result in a non-booting system.

Download the image for use in the Trimslice:

wget http://dl.fedoraproject.org/pub/fedora-secondary/releases/test/19-Beta/Images/armhfp/Fedora-armhfp-19-Beta-1-sda.raw.xz

Copy the image to the intended media:

xzcat Fedora-armhfp-19-Beta-1-sda.raw.xz > /dev/<location-of-your-media> 

Insert into the Trimslice and boot. There is no root password required initially - this something you should change right away.

Once the system is booted it is recommended to do a little clean up and remove the unneeded kernels:

yum remove kernel kernel-lpae

For the Pandaboard and Pandaboard ES

Download the image for use with the Pandaboard or Pandaboard ES.

wget http://dl.fedoraproject.org/pub/fedora-secondary/releases/test/19-Beta/Images/armhfp/Fedora-OMAP-armhfp-19-Beta-1-sda.raw.xz

As root copy the image to the intended media:

xzcat Fedora-OMAP-armhfp-19-Beta-1-sda.raw.xz > /dev/<location-of-your-media>

Before Booting the OMAP Image

Before booting the OMAP image reinsert the media into a host pc. The image should automatically mount, however if it does not you may need to adjust the mount point used in the below example. Use the 'mount' command to determine the name of the partition you will be working with.

DEVICE=/dev/<device>  # use the mount command to determine the device, omit any tailing partitions (for example : /dev/sdb or /dev/mmcblk0)
TARGET=               #this is your target device - panda, panda_es 


# fix the boot partition
umount ${DEVICE}*1
mkfs.vfat -n 'BOOT' ${DEVICE}*1
BOOTUUID=$(blkid -s UUID -o value ${DEVICE}*1)


# generate a new UUID for later use on the rootfs.
ROOTUUID=$(uuidgen)


# fix the rootfs
umount ${DEVICE}*3
tune2fs -L 'rootfs' -U "$ROOTUUID" ${DEVICE}*3


# Create temporary mount points
mkdir /tmp/{uboot,rootfs}
sudo mount ${DEVICE}*1 /tmp/uboot
sudo mount ${DEVICE}*3 /tmp/rootfs


# copy over the TI boards boot files.
sudo cp /tmp/rootfs/usr/share/uboot-panda/{MLO,u-boot.img} /tmp/uboot/
sudo cp /tmp/rootfs/usr/share/uboot-panda/uEnv.txt.$TARGET /tmp/uboot/uEnv.txt
sync


# fix the rootfs mount point
sed -i -e "s|.*\(/.*ext4.*\)$|UUID=${ROOTUUID} \1|" /tmp/rootfs/etc/fstab
sed -i -e "s|.*\(/boot/uboot.*vfat.*\)$|UUID=${BOOTUUID} \1|" /tmp/rootfs/etc/fstab
sync

umount /tmp/rootfs
umount /tmp/uboot/

#THE END

For Versatile Express Emulation with QEMU

Even without hardware its possible to run the Fedora 19 ARM Beta using QEMU. To this we will use the generic image.

wget http://dl.fedoraproject.org/pub/fedora-secondary/releases/test/19-Beta/Images/armhfp/Fedora-armhfp-19-Beta-1-sda.raw.xz

Extract the image:

unxz Fedora-armhfp-19-Beta-1-sda.raw.xz

Mount the image and extract the kernel and initramfs for use with booting.

sudo kpartx -av Fedora-armhfp-19-Beta-1-sda.raw

Make a temporary mount point

mkdir /tmp/boot
sudo mount /dev/mapper/loop0p1 /tmp/boot
sudo cp /tmp/boot/initramfs-3.9.2-301.fc19.armv7hl.img .
sudo cp /tmp/boot/vmlinuz-3.9.2-301.fc19.armv7hl .

To boot:

sudo qemu-system-arm -machine vexpress-a9 -m 1024 -nographic -net nic -net user \
 -append "console=ttyAMA0,115200n8 rw root=/dev/mmcblk0p3 rootwait physmap.enabled=0" \
 -kernel vmlinuz-3.9.2-301.fc19.armv7hl \
 -initrd initramfs-3.9.2-301.fc19.armv7hl.img \
 -sd Fedora-armhfp-19-Beta-1-sda.raw \

For convenience you can also download a script for booting the system here. To run the script:

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

To boot the image:

sudo ./boot-vexpress --kernel=vmlinuz-3.9.2-301.fc19.armv7hl --ramfs=initramfs-3.9.2-301.fc19.armv7hl.img --image=Fedora-armhfp-19-Beta-1-sda.raw

Booting with device tree is possible, although passing --gui for graphics will not work. Booting without device tree is recommended for F-19, as it will work in both serial and graphics mode, whereas passing a DTB will only work with serial.

Calxeda EnergyCore (HighBank)

The Fedora 19 Beta for ARM includes support for systems that are able to perform a network installation using a kickstart, including enterprise hardware such as the Highbank. A working kickstart can be found here.

For more detailed instructions on setting this up, please visit this page.

Known Issues

  • Significant logical volume noise on first boot. This is harmless and resolved after rebooting the system.
  • Initial setup is not run on first boot.