Pidora 2014 compose

From CDOT Wiki
Jump to: navigation, search

This page is a work in progress and is not yet finished. There may also be better ways of doing this, I may mention that along the way, though I have not had time to try all things.

Pidora Compose on x86_64


  • All of this was tested on a fedora 20 host.
  • Create a fedora arm virtual machine
  • Create a custom pidora image based on the pidora 2014 build packages
  • Custom kickstart file
  • Requires old packages of anaconda(anaconda-17.29-1.fc17) and lorax(lorax-17.17-1.fc17)
  • Let us know if you get this working with newest packages of anaconda or lorax please (:


  • Install a virtual machine setup on fedora including virt-manager
  • Download a fedora arm image: Fedora 20 Arm Images
  • Copy out the boot files from the image: Some instructions
    • If these instructions don't work you may have to use kpartx on the image to mount it and cp out the /boot manually.
# if you are having trouble getting the /boot out of the image
kpartx -av /path_to_image/image.img
# find out which loop it was mounted on, probably loop0, which means boot is loop0p1
mount /dev/mapper/loop0p1 /mnt/
cp /mnt/ /where_ever_you_want/
umount /mnt/
kpartx -dv /path_to_image/image.img
# Confirm that loop closed successfully
losetup -a # should show no output
# If the loop is still being used by the image you can try removing all loops
losetup -D
# All else fails, don't worry about it, a reboot will get rid of it.
  • Create a new virtual machine with virt-manager
  1. Choose the arm architecture
  2. Use the vexpress-a15
  3. kernel: /directory_to_extracted_files/boot/vmlinuz-3.11.10-301.fc20.armv7hl
  4. Initrd: /directory_to_extracted_files/boot/uInitrd-3.11.10-301.fc20.armv7hl
  5. DTB: /directory_to_extracted_files/boot/dtb-3.11.10-301.fc20.armv7hl/vexpress-v2p-ca15-tc1.dtb
  6. Kernel args: console=ttyAMA0 rw root=/dev/vda3 rootwait
  7. ram should be at least than 1.2GB(I tested with 2GB)
  8. Only use 1 cpu or it crashes(I don't know why...)
  • Expand image or add extra space. You will need disk space equal to (pidora composed image size * 2) + pidora chroot size. I used about 20 GB, was enough for multiple composes.
  • I used a pidora f17chroot inside the inside the arm qemu image, then installed anaconda and lorax inside the chroot. You can get the packages for pidora f17 chroot through yum or if that is an issue from the pidora koji instance. The pidora f17v6 chroot should already have the packages installed inside it.
  1. pidora f17v6 chroot
  2. lorax-17.17-1.fc17
  3. anaconda-17.29-1.fc17
  • EXTRA NOTE: Using a pidora chroot might not be necessary(?) as long as you can use the following packages inside the qemu environment: anaconda(anaconda-17.29-1) and lorax(lorax-17.17-1), however this is a guess. Maybe people would have better luck using a fedora 17 rootfs instead of the f20 rootfs. (On that note, it might be worth it to try using the fedora 20 images /boot: kernel, initrd, and dtb with a fedora 17 arm image rootfs)
  • Before you chroot into the f17v6 chroot, make sure you bind mount the following directories. These are required by livemedia-creator. Don't forget to unmount them when you are done as well.
mount -o bind /dev/ /path_to_chroot/f17v6/dev/
mount -o bind /sys/ /path_to_chroot/f17v6/sys/
mount -o bind /proc/ /path_to_chroot/f17v6/proc/
chroot /path_to_chroot/f17v6/
cd /livemedia/
time livemedia-creator --make-disk --no-virt --image-only --keep-image --ks=custom-kickstart.ks | tee pidora-compose.log
  • Finally you should now have everything setup to start composing. For more information on how to do a compose for pidora: Pidora_SOP#Composing_Images