propellor-5.17: property-based host configuration management in haskell
Safe HaskellSafe-Inferred
LanguageHaskell2010

Propellor.Property.Machine

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

ARM boards

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

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