Machine Setup Tool ================== Machine Setup Tool provides ability to configure a BSP image for a particular platform or machine. At the boot time, it customizes a BSP OS image with the provided machine configuration. It also has ability to detect or select the target platform at boot time. The development of this utility has been inspired by the zaurusd project. Supported features ================== * Ability to provide the machine configuration files in a separate layer. * Ability to provide a custom list of supported machines. * Ability to detect the target machine at boot time. * Ability to select the target machine via a user prompt at boot time. * Ability to specify the target machine on kernel command line from a bootloader * Ability to specify and select a default machine configuration on boot prompt timeout * Ability to reconfigure a previously configured image. * The following configuration items can be specified for the target machines. * Formfactor configuration file * Default sink device id for pulseaudio * Default source device id for pulseaudio * ALSA configuration file * Predefined ALSA state file * Xorg configuration file * Network interfaces configuration file * Touchscreen calibration file * Xinput-calibrator touchscreen calibration file * A list of kernel modules for automatic boot time loading * A list of kernel modules to blacklist from loading * Extra kernel boot parameters * Serial port configuration for the syslinux bootloader * Serial port configuration for the grub bootloader * List of any additional setup scripts to be run at setup time * Configuration and ability to reboot the image after the setup process Usage ===== The sources of the Machine Setup Tool does not contain machine configuration for any target. Users are expected to create and maintain their machine configurations separately. For reference a set of sample machine configurations are provided in the config/sample/ directory of the sources. As seen in the sample, the main machine configuration file is specified by name "mymachine.vars", which specifies rest of the needed configuration files for that machine. All the machine configuration files reside at location /etc/machinesetuptool/config/ on the target. Each supported target machine need to have a directory with supported configuration files at this location. For reference take a look at config/sample/mymachine/mymachine.vars and other files in the sample config directory in sources. In addition to the target machine configuration files provided at the /etc/machinesetuptool/config location, the default settings for the tool must be provided. The list of target machines supported, the default machine to select on boot prompt timeout,and the target machine selection is specified in the /etc/machinesetuptool/defaults file. Take a look at defaults file in the sources for reference. This file need to be customized as per the supported target machines. The target machine can also be overridden with the target_machine parameter in the kernel command line, which can be tweaked from the bootloader. For Example: target_machine=nuc or target_machine=detect_ask If you want automatic detection of the target machine, then in addition to the above configuration, a script named detect-machine need to be provided, which can detect the supported target machines and define the MACHINE variable accordingly. The detect-machine script need to be placed on the target at this location: /etc/machinesetuptool/scripts/detect-machine . For reference the sources contain an empty detect-machine script. Future Development ================== The framework of the tool is generic, and it can easily be expanded as needed to support additional features. While adding new features the back-words compatibility with existing code base should be considered. Contributing to the project =========================== If you want to contribute to the project or want to discuss about any features or communicate about anything on the project, contact the developers listed in the AUTHORS file.