propellor-5.17: property-based host configuration management in haskell

Safe Haskell | Safe-Inferred
Language | Haskell2010

Propellor.Property.Machine

Contents

- ARM boards
- ARM boards (untested)

Description

Machine-specific properties.

Many embedded computers have their own special configuration needed to use them. Rather than needing to hunt down documentation about the kernel, bootloader, etc for a given machine, if there's a property in here for your machine, you can simply use it.

Not all machine properties have been tested yet. If one flagged as untested and you find it works, please let us know.

You will need to configure the `Host` with the right `Architecture` for the machine. These properties do test at runtime that a supported Architecture was selected.

Sometimes non-free firmware is needed to use a board. If the board won't be functional at all without it, its property will include the non-free firmware, but if the non-free firmware is only needed for non-critical functionality, it won't be included.

Example: Building a disk image for a Marvell SheevaPlug

This defines a Host "sheeva" that is a Marvell SheevaPlug. A bootable disk image for "sheeva" is built on another machine "darkstar", which can be eg an Intel laptop running Debian.

     import Propellor.Property.Machine
     import Propellor.Property.DiskImage

     sheeva :: Host
     sheeva = host "sheeva.example.com" $ props
     	& osDebian Unstable ARMEL
     	& marvell_SheevaPlug Marvell_SheevaPlug_SDCard
    	& hasPartition
    		( partition EXT4
     		`mountedAt` "/"
    		`addFreeSpace` MegaBytes 2048
    		)

     darkstar :: Host
     darkstar = host "darkstar.example.com" $ props
    	& imageBuiltFor sheeva
    		(RawDiskImage "/srv/sheeva-disk.img")
    		(Debootstrapped mempty)

Synopsis

- data Marvell_SheevaPlug_BootDevice
  - = Marvell_SheevaPlug_SDCard
  - | Marvell_SheevaPlug_ESATA
- marvell_SheevaPlug :: Marvell_SheevaPlug_BootDevice -> Property (HasInfo + DebianLike)
- cubietech_Cubietruck :: Property (HasInfo + DebianLike)
- olimex_A10_OLinuXino_LIME :: Property (HasInfo + DebianLike)
- lemaker_Banana_Pi :: Property (HasInfo + DebianLike)
- cubietech_Cubieboard :: Property (HasInfo + DebianLike)
- cubietech_Cubieboard2 :: Property (HasInfo + DebianLike)
- lemaker_Banana_Pro :: Property (HasInfo + DebianLike)
- olimex_A10s_OLinuXino_Micro :: Property (HasInfo + DebianLike)
- olimex_A20_OLinuXino_LIME :: Property (HasInfo + DebianLike)
- olimex_A20_OLinuXino_LIME2 :: Property (HasInfo + DebianLike)
- olimex_A20_OLinuXino_Micro :: Property (HasInfo + DebianLike)
- olimex_A20_SOM_EVB :: Property (HasInfo + DebianLike)
- linkSprite_pcDuino3_Nano :: Property (HasInfo + DebianLike)

# ARM boards

data Marvell_SheevaPlug_BootDevice Source #

Constructors

Marvell_SheevaPlug_SDCard |
Marvell_SheevaPlug_ESATA |

marvell_SheevaPlug :: Marvell_SheevaPlug_BootDevice -> Property (HasInfo + DebianLike) Source #

Marvell SheevaPlug

This includes a small EXT2 formatted /boot partition.

Note that u-boot may need to be upgraded manually, and will need to be configured to boot from the SD card or eSATA. See https://www.cyrius.com/debian/kirkwood/sheevaplug/install/

cubietech_Cubietruck :: Property (HasInfo + DebianLike) Source #

Cubietech Cubietruck

Wifi needs non-free firmware-brcm80211, which is not installed by this property. Also, see https://bugs.debian.org/844056

olimex_A10_OLinuXino_LIME :: Property (HasInfo + DebianLike) Source #

Olimex A10-OLinuXino-LIME

lemaker_Banana_Pi :: Property (HasInfo + DebianLike) Source #

LeMaker Banana Pi

# ARM boards (untested)

cubietech_Cubieboard :: Property (HasInfo + DebianLike) Source #

Cubietech Cubieboard (untested)

cubietech_Cubieboard2 :: Property (HasInfo + DebianLike) Source #

Cubietech Cubieboard2 (untested)

lemaker_Banana_Pro :: Property (HasInfo + DebianLike) Source #

LeMaker Banana Pro (untested)

olimex_A10s_OLinuXino_Micro :: Property (HasInfo + DebianLike) Source #

Olimex A10s-Olinuxino Micro (untested)

olimex_A20_OLinuXino_LIME :: Property (HasInfo + DebianLike) Source #

Olimex A20-OlinuXino-LIME (untested)

olimex_A20_OLinuXino_LIME2 :: Property (HasInfo + DebianLike) Source #

Olimex A20-OlinuXino-LIME2 (untested)

olimex_A20_OLinuXino_Micro :: Property (HasInfo + DebianLike) Source #

Olimex A20-Olinuxino Micro (untested)

olimex_A20_SOM_EVB :: Property (HasInfo + DebianLike) Source #

Olimex A20-SOM-EVB (untested)

linkSprite_pcDuino3_Nano :: Property (HasInfo + DebianLike) Source #

LinkSprite pcDuino Nano (untested)

Needs non-free firmware, see https://wiki.debian.org/InstallingDebianOn/Allwinner