Skip to content
Guy Sheffer edited this page Dec 26, 2017 · 25 revisions

One of the main features in CustomPiOS is writing modules. A module is a structured piece of code that adds a function to a distro.

Setting Modules

To set what the distro does, you can add and remove modules. The modules are defined in the MODULES variable set in your distro <distro folder>/src/config file. Modules can be nested, the enables you to provide namespaces or run cleanup functions after other module have run. For example MODULES=base(network(octopi, picamera)), in this example base will start first, and end last, network will start second and end one before last, octopi will start third and end first.

Writing Modules

  • Module are places in folders whose names are small letters and with hyphens.
  • The can be placed either in CustomPiOS/src/modules or <distro folder>/src/modules.

See the example module in the example disro.

Modules are made from 3 parts:

  • start_chroot_script / end_chroot_script
  • filesystem folder
  • config file

List of Standard library modules

base

This is the base module you must have in your distro. It sets what image is selected and critical things in the distro

disable-services

Disables systemd services to start up right after installing them. If your module is installing something, say lighttpd. You should wrap your module with this one. Eg disable-services(lighttpd).

ffmpeg

Module builds and installs latest ffmpeg from git

gui

Lets you add a gui that will start on boot, autologin and GPU out of the box.

kernel

Builds and installs a custom kernel. Warning: building a kernel can take as long as 6 hours. And with two it takes 12 hours. If you are building them a lot its recommended to create a base image and build on top of that. See RealtimePi for usage example.

network

This module is enabled by default, it creates a file in /boot/${DIST_NAME}-network.txt and /boot/${DIST_NAME}-wpa-supplicant.txt that lets you set up the wifi configuration from a text file that is accessable even from a windows machine.

password-for-sudo

Revert Raspbian's "no password for sudo"

raspicam

Enables the pi camera by default

Clone this wiki locally