-
Notifications
You must be signed in to change notification settings - Fork 161
Modules
Guy Sheffer edited this page Nov 12, 2017
·
26 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.
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.
- 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
- 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