Architectures/ARM/Kirkwood

From FedoraProject

< Architectures | ARM(Difference between revisions)
Jump to: navigation, search
m (Booting the Image)
m (Additional Support)
(22 intermediate revisions by 4 users not shown)
Line 2: Line 2:
 
[[File:guruplugs.jpg|right|200px|thumb|Guruplugs used at Seneca College to build Fedora for ARM. There are twenty Guruplugs in the Seneca build farm]]
 
[[File:guruplugs.jpg|right|200px|thumb|Guruplugs used at Seneca College to build Fedora for ARM. There are twenty Guruplugs in the Seneca build farm]]
 
=Kirkwood Series=
 
=Kirkwood Series=
Kirkwood processors were developed for network connected consumer electronic equipment that are used in gateway/access point, set-top boxes, network storage, digital home media servers, point of services terminal, and plug computers (sheevaplug, dreamplug, guruplug, etc).
+
Kirkwood processors were developed for network connected consumer electronic equipment that are used in gateway/access point, set-top boxes, network storage, digital home media servers, point of services terminal, and plug computers (sheevaplug, dreamplug, guruplug, etc).<ref>[http://www.marvell.com/embedded-processors/kirkwood/ Marvell - Embedded Processors - Kirkwood Series]</ref>
  
 
=Plug Computers=
 
=Plug Computers=
A plug computer is a small form factor server, intended to provide network-based services within the home. These ARM based devices provides always-on, always-connected, and environmentally-friendly computing that is readily available for developers.
+
A plug computer is a small form factor server, intended to provide network-based services within the home. These ARM based devices provides always-on, always-connected, and environmentally-friendly computing that is readily available for developers.<ref>[http://www.plugcomputer.org/about/ About Plug Computer]</ref>
 
==GuruPlugs==
 
==GuruPlugs==
 
The Guruplugs are one of the popular plug computers. More information on Guruplugs can be found [http://www.globalscaletechnologies.com/t-guruplugdetails.aspx here]. Below is the technical specifications for a typical GuruPlug Server Plus
 
The Guruplugs are one of the popular plug computers. More information on Guruplugs can be found [http://www.globalscaletechnologies.com/t-guruplugdetails.aspx here]. Below is the technical specifications for a typical GuruPlug Server Plus
Line 18: Line 18:
 
* 2 x USB 2.0 ports
 
* 2 x USB 2.0 ports
 
* 1 x MicroSD Slot
 
* 1 x MicroSD Slot
 +
 
=Running Fedora on a Kirkwood Device=
 
=Running Fedora on a Kirkwood Device=
 
This page will give a user detailed instructions for running Fedora 17 GA on a Kirkwood based device. The F17 GA image provides a user with a minimal text based installation to a serial console. At the moment there is no GUI image available. F17 GA image has been tested to run on GuruPlug Server Plus using microSD card.
 
This page will give a user detailed instructions for running Fedora 17 GA on a Kirkwood based device. The F17 GA image provides a user with a minimal text based installation to a serial console. At the moment there is no GUI image available. F17 GA image has been tested to run on GuruPlug Server Plus using microSD card.
 
==Downloading the image==
 
==Downloading the image==
The first step is to download the Fedora 17 image. The prebuilt images include kernels and can be written directly to an microSD Card and requires additional steps (uboot configurations) to boot. The serial console image requires a minimum of 2GB card.  
+
The first step is to download the Fedora 17 image. The prebuilt images include kernels and can be written directly to an storage medium such as an (micro)SD Card or an USB stick and requires additional steps (uboot configurations) to boot. The serial console image requires a minimum storage medium size of 2GB.  
 
* [http://download.fedoraproject.org/pub/fedora-secondary/releases/17/Images/arm/Fedora-17-arm-kirkwood-mmcblk0.img.xz Serial Console Image]
 
* [http://download.fedoraproject.org/pub/fedora-secondary/releases/17/Images/arm/Fedora-17-arm-kirkwood-mmcblk0.img.xz Serial Console Image]
  
 
==Writing the Image==
 
==Writing the Image==
Please be aware that writing the image to any drive (SD/microSD/USB/Hard Drive) will erase any existing data in that drive.
+
Please be aware that writing the image to any drive (SD/microSD/USB/Hard Drive) will erase any existing data in that drive. Please make sure that the card is not write protected.
 
===Linux Users===
 
===Linux Users===
The image can be written to a microSD card as long as it meets the minimum size requirements noted above (2GB for the serial image)
+
The image can be written to any storage device as long as it meets the minimum size requirements noted above (2GB for the serial image)
* Connect the microSD card to a computer and make a note of the drive.
+
* Connect the device or card to a computer and make a note of the device file in /dev.
* To write the image to a microSD card run the following command (Please change the drive to the location of the microSD card)  
+
* To write the image to to the device run the following command (Please adjust the path in /dev)  
  xzcat Fedora-17-arm-kirkwood-mmcblk0.img.xz > /dev/<location-of-your-microSD-card>
+
  xzcat Fedora-17-arm-kirkwood-mmcblk0.img.xz > /dev/<location-of-storage-device>
* Once completed run the command below to ensure the entire image is written to the card
+
* Once completed run the command below to ensure the entire image is written to the storage
 
  sync
 
  sync
  
Line 39: Line 40:
 
* Launch Win 32 Disk Imager and select the extracted disk image and the microSD card to write the files to. Click "Write". Be very careful during this step - all data on the selected drive will be lost!
 
* Launch Win 32 Disk Imager and select the extracted disk image and the microSD card to write the files to. Click "Write". Be very careful during this step - all data on the selected drive will be lost!
 
===Mac Users===
 
===Mac Users===
* Please note that the Default Archive Utility.app will not extract the .xz file. You will have to use a third party app to decompress it. There are multiple options for that
+
* Please note that the Default Archive Utility.app will not extract the .xz file. A third party app will have to be used to decompress it. There are multiple options for that
 
*# There is a Free App available in the App Store called Unarchiver.
 
*# There is a Free App available in the App Store called Unarchiver.
 
*# If [http://mxcl.github.com/homebrew/ mac homebrew] or [http://www.macports.org macport] is already installed, then the xz utility can be downloaded and installed using one of those.
 
*# If [http://mxcl.github.com/homebrew/ mac homebrew] or [http://www.macports.org macport] is already installed, then the xz utility can be downloaded and installed using one of those.
 
*# The xz utils .pkg for mac can be downloaded and installed directly from [http://tukaani.org/xz/ xz utils]
 
*# The xz utils .pkg for mac can be downloaded and installed directly from [http://tukaani.org/xz/ xz utils]
* Once the xz utility is installed, open a terminal and make a note of your current drives.
+
* Once the xz utility is installed, open a terminal and make a note of the current drives.
 
  ls /dev/disk?
 
  ls /dev/disk?
 
* Connect the microSD card to the mac and make a note of the drive.
 
* Connect the microSD card to the mac and make a note of the drive.
* Change directory to where the .xz file is located
+
* Open Disk Utility and make sure that the card and all the partitions in the card (if any) is unmounted
* If you are using xz from the .pkg file or macport or homebrew then run the following command
+
* In the terminal change to the directory where the .xz file is located
  xzcat Fedora-17-arm-kirkwood-mmcblk0.img.xz > /dev/<location-of-your-microSD-card>
+
* If xz was installed from the .pkg or macport or homebrew then run the following command
* If you are using the App Store Unarchiver app then just click and decompress the .xz file and then run the following
+
  xzcat Fedora-17-arm-kirkwood-mmcblk0.img.xz > /dev/<location-of-the-microSD-card>
  dd if=Fedora-17-arm-kirkwood-mmcblk0.img of=/dev/<location-of-your-microSD-card>
+
* If the Unarchiver app from App Store was used then just click and decompress the .xz file and then run the following (may require ''sudo'')
 +
  dd if=Fedora-17-arm-kirkwood-mmcblk0.img of=/dev/<location-of-the-microSD-card>
 
* Click and eject the microSD card
 
* Click and eject the microSD card
 +
 
==Booting the Image==
 
==Booting the Image==
Connect the newly created media to your Guruplug and power on. Depending on the model/version of the plug/uboot, you may need to add additional uboot parameters or edit the existing ones. Here is an example that has been tested to work with the GuruPlug Server Plus
+
{{admon/note|Pogoplug|If you want to use Fedora on a Pogoplug, follow the [[Architectures/ARM/PogoplugUSBDisk|Pogoplug special instructions]] before you continue here.}}
printenv
+
Connect the newly created media to the ARM device and power on. Depending on the model/version of the plug/uboot, additional uboot parameters may be necessary or the existing ones could be edited. To do that, stop the boot process during the countdown and follow the instructions here.
set bootargs 'console=ttyS0,115200 root=/dev/sdb2 rootwait'
+
 
set loadInitrd 'fatload usb 1:1 0x7400000 uInitrd-kirkwood'
+
Fedora 17 kirkwood images contain a FAT32 (vfat) filesystem on the first partition, and this can be read by the U-Boot bootloader installed on various Plugs. Fedora 18 kirkwood images currently contain an ext3 filesystem that cannot be read by many of these devices. On Fedora versions prior to 18, the following has been tested with a GuruPlug Server Plus (remove the "saveenv" command prior to "boot" if you would only like to test without permanently changing configuration):
set loadImage 'fatload usb 1:1 0x6400000 uImage-kirkwood'
+
 
set bootcmd 'usb start; ${loadImage}; ${loadInitrd} ; bootm 0x6400000 0x7400000'
+
<pre>
boot
+
# NOTE: substitute "usb 1:1" with "usb 0:1" on non-Plus model devices
If the above command is successful and the plug boots, then during next boot adding ''saveenv'' before ''boot'' will save the changes.
+
# NOTE: On Fedora 18 "uInitrd" replaces "uInitrd-kirkwood"
 +
# NOTE: On Fedora 18 "uImage" replaes "uImage-kirkwood"
 +
 
 +
printenv
 +
set bootargs 'console=ttyS0,115200 root=LABEL=rootfs rootwait'
 +
set loadInitrd 'fatload usb 1:1 0x7400000 uInitrd-kirkwood'
 +
set loadImage 'fatload usb 1:1 0x6400000 uImage-kirkwood'
 +
set bootcmd 'usb start; ${loadImage}; ${loadInitrd} ; bootm 0x6400000 0x7400000'
 +
saveenv
 +
boot
 +
</pre>
 +
 
 +
Fedora 18 (beta) kirkwood images contain an ext3 filesystem that cannot be booted directly by certain plugs (such as the GuruPlug) at this time. You can install the kernel and initrd directly into the Plug's NAND flash using commands similar to the following:
 +
 
 +
<pre>
 +
# NOTE: substitute "usb 1:1" with "usb 0:1" on non-Plus model devices
 +
 
 +
usb start
 +
fatload usb 1:1 0x6400000 /uImage
 +
nand erase 0x100000 0x400000
 +
nand write.e 0x6400000 0x100000 0x400000
 +
fatload usb 1:1 0x6400000 /uInitrd
 +
nand erase 0x500000 0x1b00000
 +
nand write.e 0x6400000 0x500000 0x1b00000
 +
set bootargs 'console=ttyS0,115200 root=LABEL=rootfs rootwait'
 +
set loadInitrd 'nand read.e 0x7400000 0x500000 0x1b00000'
 +
set loadImage 'nand read.e 0x6400000 0x100000 0x400000'
 +
set bootcmd 'nand start; ${loadImage}; ${loadInitrd} ; bootm 0x6400000
 +
0x7400000'
 +
saveenv
 +
boot
 +
</pre>
 +
 
 +
You can also boot the device directly from some USB sticks by recreating the "boot" filesystem as a vfat partition:
 +
 
 +
<pre>
 +
# mount the boot filesystem on the USB stick
 +
cp -ax /var/run/media/user/boot kirkwood_boot
 +
# unmount the USB stick but do not eject
 +
sudo mkfs.vfat -n boot /dev/sdc # replace "sdc" with device name
 +
# mount the USB stick
 +
sudo cp -ax kirkwood_boot /var/run/media/user/boot
 +
# umount the USB stick
 +
</pre>
 +
 
 +
The Fedora 17 instructions will then work as shown above.
  
 
==Using Fedora on the Kirkwood Device==
 
==Using Fedora on the Kirkwood Device==
At this point no further steps should require and your system should boot to a text based log in prompt (serial image). The default root password is "fedoraarm". This should be changed immediately.
+
At this point no further steps should require and the system should boot to a text based log in prompt (serial image). The default root password is "fedoraarm". This should be changed immediately.
  
 
=Known Issues=
 
=Known Issues=
Line 69: Line 117:
 
  service ntpd stop
 
  service ntpd stop
 
  ntpdate <LocalNTPServer>
 
  ntpdate <LocalNTPServer>
* Yum requires the system time be correct for HTTPS to function.  If yum updates are not working check your clock.
+
* Yum requires the system time be correct for HTTPS to function.  If yum updates are not working check the clock.
* The tar.xz rootfs archives do not preserve SELinux information or file capabilities.  If you use these to create your own filesystem image it is recommended that you switch SELinux to use warnings instead of enforcing for first boot, then relabel and reinstall packages that rely upon filesystem capabilities such as glibc-common and ping.
+
* The tar.xz rootfs archives do not preserve SELinux information or file capabilities.  When creating custom filesystem image, it is recommended that switching SELinux to use warnings instead of enforcing for first boot, then relabel and reinstall packages that rely upon filesystem capabilities such as glibc-common and ping.
 
* Images are designed to be written to 2GB (console) or 4GB (xfce) SD cards.  On first boot the partition will be resized to the maximum allowable amount.  On the second boot the filesystem will be resized to fill the expanded partition.  This works for SD cards, SATA Disks, and SSD drives.
 
* Images are designed to be written to 2GB (console) or 4GB (xfce) SD cards.  On first boot the partition will be resized to the maximum allowable amount.  On the second boot the filesystem will be resized to fill the expanded partition.  This works for SD cards, SATA Disks, and SSD drives.
 
* [[Common_F17_bugs|Known release issues]]
 
* [[Common_F17_bugs|Known release issues]]
  
=Additional Support=
+
= Additional Support =
There are Fedora ARM users all around the globe - if you need assistance, would like to provide feedback or contribute to Fedora ARM please visit us on the IRC - we can be found in #fedora-arm on Freenode. You can also contact us on the mailing list - arm@lists.fedoraproject.org
+
There are Fedora ARM users all around the globe - if you need assistance, would like to provide feedback or contribute to Fedora ARM please visit us on the IRC - we can be found in {{fpchat|#fedora-arm}} on Freenode. You can also contact us on the mailing list - {{fplist|arm}}
 +
 
 +
=References=
 +
<references/>

Revision as of 02:27, 18 January 2013

Guruplugs used at Seneca College to build Fedora for ARM. There are twenty Guruplugs in the Seneca build farm

Contents

Kirkwood Series

Kirkwood processors were developed for network connected consumer electronic equipment that are used in gateway/access point, set-top boxes, network storage, digital home media servers, point of services terminal, and plug computers (sheevaplug, dreamplug, guruplug, etc).[1]

Plug Computers

A plug computer is a small form factor server, intended to provide network-based services within the home. These ARM based devices provides always-on, always-connected, and environmentally-friendly computing that is readily available for developers.[2]

GuruPlugs

The Guruplugs are one of the popular plug computers. More information on Guruplugs can be found here. Below is the technical specifications for a typical GuruPlug Server Plus

Technical Specifications

  • 1.0 Ghz - 1.2 Ghz Processor (Marvell 88F6281)
  • 512 MB 16-bit DDR2 RAM
  • 512 MB NAND Flash
  • 802.11 b/g WiFi
  • SATA 2.0 port (eSATA)
  • 2 x Gigabit Ethernet
  • 2 x 16550 compatible UART interfaces (external JTAG adapter)
  • 2 x USB 2.0 ports
  • 1 x MicroSD Slot

Running Fedora on a Kirkwood Device

This page will give a user detailed instructions for running Fedora 17 GA on a Kirkwood based device. The F17 GA image provides a user with a minimal text based installation to a serial console. At the moment there is no GUI image available. F17 GA image has been tested to run on GuruPlug Server Plus using microSD card.

Downloading the image

The first step is to download the Fedora 17 image. The prebuilt images include kernels and can be written directly to an storage medium such as an (micro)SD Card or an USB stick and requires additional steps (uboot configurations) to boot. The serial console image requires a minimum storage medium size of 2GB.

Writing the Image

Please be aware that writing the image to any drive (SD/microSD/USB/Hard Drive) will erase any existing data in that drive. Please make sure that the card is not write protected.

Linux Users

The image can be written to any storage device as long as it meets the minimum size requirements noted above (2GB for the serial image)

  • Connect the device or card to a computer and make a note of the device file in /dev.
  • To write the image to to the device run the following command (Please adjust the path in /dev)
xzcat Fedora-17-arm-kirkwood-mmcblk0.img.xz > /dev/<location-of-storage-device>
  • Once completed run the command below to ensure the entire image is written to the storage
sync

Windows Users

  • Download Win32 Image Writer as well as a tool to extract the image such as 7-Zip.
  • Once downloaded and installed right click on the disk image and select "7-Zip->Extract files here"
  • Launch Win 32 Disk Imager and select the extracted disk image and the microSD card to write the files to. Click "Write". Be very careful during this step - all data on the selected drive will be lost!

Mac Users

  • Please note that the Default Archive Utility.app will not extract the .xz file. A third party app will have to be used to decompress it. There are multiple options for that
    1. There is a Free App available in the App Store called Unarchiver.
    2. If mac homebrew or macport is already installed, then the xz utility can be downloaded and installed using one of those.
    3. The xz utils .pkg for mac can be downloaded and installed directly from xz utils
  • Once the xz utility is installed, open a terminal and make a note of the current drives.
ls /dev/disk?
  • Connect the microSD card to the mac and make a note of the drive.
  • Open Disk Utility and make sure that the card and all the partitions in the card (if any) is unmounted
  • In the terminal change to the directory where the .xz file is located
  • If xz was installed from the .pkg or macport or homebrew then run the following command
xzcat Fedora-17-arm-kirkwood-mmcblk0.img.xz > /dev/<location-of-the-microSD-card>
  • If the Unarchiver app from App Store was used then just click and decompress the .xz file and then run the following (may require sudo)
dd if=Fedora-17-arm-kirkwood-mmcblk0.img of=/dev/<location-of-the-microSD-card>
  • Click and eject the microSD card

Booting the Image

Note.png
Pogoplug
If you want to use Fedora on a Pogoplug, follow the Pogoplug special instructions before you continue here.

Connect the newly created media to the ARM device and power on. Depending on the model/version of the plug/uboot, additional uboot parameters may be necessary or the existing ones could be edited. To do that, stop the boot process during the countdown and follow the instructions here.

Fedora 17 kirkwood images contain a FAT32 (vfat) filesystem on the first partition, and this can be read by the U-Boot bootloader installed on various Plugs. Fedora 18 kirkwood images currently contain an ext3 filesystem that cannot be read by many of these devices. On Fedora versions prior to 18, the following has been tested with a GuruPlug Server Plus (remove the "saveenv" command prior to "boot" if you would only like to test without permanently changing configuration):

# NOTE: substitute "usb 1:1" with "usb 0:1" on non-Plus model devices
# NOTE: On Fedora 18 "uInitrd" replaces "uInitrd-kirkwood"
# NOTE: On Fedora 18 "uImage" replaes "uImage-kirkwood"

printenv
set bootargs 'console=ttyS0,115200 root=LABEL=rootfs rootwait'
set loadInitrd 'fatload usb 1:1 0x7400000 uInitrd-kirkwood'
set loadImage 'fatload usb 1:1 0x6400000 uImage-kirkwood'
set bootcmd 'usb start; ${loadImage}; ${loadInitrd} ; bootm 0x6400000 0x7400000'
saveenv
boot

Fedora 18 (beta) kirkwood images contain an ext3 filesystem that cannot be booted directly by certain plugs (such as the GuruPlug) at this time. You can install the kernel and initrd directly into the Plug's NAND flash using commands similar to the following:

# NOTE: substitute "usb 1:1" with "usb 0:1" on non-Plus model devices

usb start
fatload usb 1:1 0x6400000 /uImage
nand erase 0x100000 0x400000
nand write.e 0x6400000 0x100000 0x400000
fatload usb 1:1 0x6400000 /uInitrd
nand erase 0x500000 0x1b00000
nand write.e 0x6400000 0x500000 0x1b00000
set bootargs 'console=ttyS0,115200 root=LABEL=rootfs rootwait'
set loadInitrd 'nand read.e 0x7400000 0x500000 0x1b00000'
set loadImage 'nand read.e 0x6400000 0x100000 0x400000'
set bootcmd 'nand start; ${loadImage}; ${loadInitrd} ; bootm 0x6400000
0x7400000'
saveenv
boot

You can also boot the device directly from some USB sticks by recreating the "boot" filesystem as a vfat partition:

# mount the boot filesystem on the USB stick
cp -ax /var/run/media/user/boot kirkwood_boot
# unmount the USB stick but do not eject
sudo mkfs.vfat -n boot /dev/sdc # replace "sdc" with device name
# mount the USB stick
sudo cp -ax kirkwood_boot /var/run/media/user/boot
# umount the USB stick

The Fedora 17 instructions will then work as shown above.

Using Fedora on the Kirkwood Device

At this point no further steps should require and the system should boot to a text based log in prompt (serial image). The default root password is "fedoraarm". This should be changed immediately.

Known Issues

  • Some images have ntpdate failed during boot, but expected running inside firewall. The following command can be applied to address the issue
service ntpd stop
ntpdate <LocalNTPServer>
  • Yum requires the system time be correct for HTTPS to function. If yum updates are not working check the clock.
  • The tar.xz rootfs archives do not preserve SELinux information or file capabilities. When creating custom filesystem image, it is recommended that switching SELinux to use warnings instead of enforcing for first boot, then relabel and reinstall packages that rely upon filesystem capabilities such as glibc-common and ping.
  • Images are designed to be written to 2GB (console) or 4GB (xfce) SD cards. On first boot the partition will be resized to the maximum allowable amount. On the second boot the filesystem will be resized to fill the expanded partition. This works for SD cards, SATA Disks, and SSD drives.
  • Known release issues

Additional Support

There are Fedora ARM users all around the globe - if you need assistance, would like to provide feedback or contribute to Fedora ARM please visit us on the IRC - we can be found in #fedora-arm[?] on Freenode. You can also contact us on the mailing list - arm

References

  1. Marvell - Embedded Processors - Kirkwood Series
  2. About Plug Computer