How To: Use the Fedora rootfs on a Pogoplug
The Pogoplug is installed with a very minimal (busybox) imate on the 3rd MTD-partition. In order to boot a full distribution from a USB-stick or disk, like Fedora, it is needed to replace the bootloader (u-boot) to make it USB-aware. Changing the bootloader will probably make the Pogoplug unsupported by the vendor. This guide describes how to install Fedora on the pink/grey Pogoplug V2.
What you need
To complete this guide, you'll need
- Internet access on the Pogoplug
- An external USB-stick or disk
Replace u-boot to be able to boot from USB-storage
After updating uboot, but before rebooting there are some additional changes to the uboot envoirment that need to be made in order to work with the filesystem layout for the Fedora images.
Fedora 18
/usr/sbin/fw_setenv usb_scan 'usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done' /usr/sbin/fw_setenv usb_boot 'mw 0x800000 0 1; ext2load usb $usb_device 0x800000 uImage; if ext2load usb $usb_device 0x1100000 uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi' /usr/sbin/fw_setenv usb_scan_1 "usb=0:1 dev=sda3" /usr/sbin/fw_setenv usb_scan_2 "usb=1:1 dev=sdb3" /usr/sbin/fw_setenv usb_scan_3 "usb=2:1 dev=sdc3" /usr/sbin/fw_setenv usb_scan_4 "usb=3:1 dev=sdd3" /usr/sbin/fw_setenv usb_rootfstype ext4
Fedora 17
/usr/sbin/fw_setenv usb_scan 'usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && fatload usb $usb 0x800000 /uImage-kirkwood 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done' /usr/sbin/fw_setenv usb_boot 'mw 0x800000 0 1; fatload usb $usb_device 0x800000 uImage-kirkwood; if fatload usb $usb_device 0x1100000 uInitrd-kirkwood; then bootm 0x800000 0x1100000; else bootm 0x800000; fi' /usr/sbin/fw_setenv usb_scan_1 "usb=0:1 dev=sda2" /usr/sbin/fw_setenv usb_scan_2 "usb=1:1 dev=sdb2" /usr/sbin/fw_setenv usb_scan_3 "usb=2:1 dev=sdc2" /usr/sbin/fw_setenv usb_scan_4 "usb=3:1 dev=sdd2"
Note: The changes must be made from either the Pogoplug systems or in uboot at the serial console during boot. The updated version of uboot is not compatible with the uboot tools in fedora. DO NOT ATTEMPT to write the Pogoplug uboot enviorment with fw_saveenv provided by fedora. You will brick your system. If you do 'brick' your system, you can recover but it isn't easy or well documented.
Preparation of the USB-stick or disk
Write the Fedora Image for Kickwood SoCs following the instuctions on the Kirkwood page. Insert the drive into the Pogoplug and reboot. After about one minute you should be able to ssh to the PogoPlug (be patient, the first boot may take up to 10 minutes depending on your media speed.) the root password for F17 is 'fedoraarm', the root password for F18 is 'fedora'. Remember to recheck what dhcp address has been supplied as it will likely have changed from the uboot update step. (You can use: 'nmap 192.168.1.0/24' to find it from a machine on the same network.)
Optional Configuration
Because of the limited memory on the PogoPlug, on Fedora 17 or earlier it is advisable to add a swap partition/file. See, Fedora Documentation: Creating a Swap File. Use count=262144 for a 256MB swap partiation. The Fedora 18 image already comes with a swap partition.