live-config - System Configuration Components
live-config contains the components that configure a live
system during the boot process (late userspace).
live-config can be configured through boot parameters or
configuration files. If both mechanisms are used for a certain option, the
boot parameters take precedence over the configuration files. When using
persistency, live-config components are only run once.
If live-build(7) is used to build the live system, the
live-config parameters used by default can be set through the
--bootappend-live option, see lb_config(1) manual page.
live-config is only activated if 'boot=live' is used as a
boot parameter. Additionally, live-config needs to be told which
components to run through the 'live-config.components' parameter or which
components to not run through the 'live-config.nocomponents' parameter. If
both 'live-config.components' and 'live-config.nocomponents' are used, or,
if either one is specified multiple times, always the later one takes
precedence over the previous one(s).
- live-config.components
| components
- All components are run. This is what live images use by default.
- live-config.components=COMPONENT1,COMPONENT2,
... COMPONENTn |
components=COMPONENT1,COMPONENT2, ...
COMPONENTn
- Only the specified components are run. Note that the order matters, e.g.
'live-config.components=sudo,user-setup' would not work since the user
needs to be added before it can be configured for sudo. Look at the
filenames of the components in /lib/live/config for their ordering
number.
- live-config.nocomponents
| nocomponents
- No component is run. This is the same as not using any of
'live-config.components' or 'live-config.nocomponents'.
- live-config.nocomponents=COMPONENT1,COMPONENT2,
... COMPONENTn |
nocomponents=COMPONENT1,COMPONENT2, ...
COMPONENTn
- All components are run, except the specified ones.
Some individual components can change their behaviour upon a boot
parameter.
- live-config.debconf-preseed=filesystem|medium|URL1|URL2|
... |URLn |
debconf-preseed=medium|filesystem|URL1|URL2| ...
|URLn
- Allows one to fetch and apply one or more debconf preseed files to be
applied to the debconf database. Note that the URLs must be fetchable by
wget (http, ftp or file://).
If the file is placed on the live medium, it can be fetched with
file:///lib/live/mount/medium/FILE, or with file:///FILE if
it is in the root filesystem of the live system itself.
All preseed files in /lib/live/config-preseed/ in the root filesystem of the
live system can be automatically enabled with the keyword 'filesystem'.
All preseed files in /live/config-preseed/ of the live medium can be
automatically enabled with the keyword 'medium'.
If several mechanisms are combined, then filesystem preseed files are
applied first, then medium preseed files, and last the network preseed
files.
- live-config.hostname=HOSTNAME
| hostname=HOSTNAME
- Allows one to set the hostname of the system. The default is
'debian'.
- live-config.username=USERNAME
| username=USERNAME
- Allows one to set the username that gets created for autologin. The
default is 'user'.
- live-config.user-default-groups=GROUP1,GROUP2
... GROUPn | user-default-groups=GROUP1,GROUP2
... GROUPn
- Allows one to set the default groups of the users that gets created for
autologin is member of. The default is 'audio cdrom dip floppy video
plugdev netdev powerdev scanner bluetooth'.
- live-config.user-fullname="USER
FULLNAME" | user-fullname="USER
FULLNAME"
- Allows one to set the fullname of the users that gets created for
autologin. On Debian the default is 'Debian Live user'.
- live-config.locales=LOCALE1,LOCALE2
... LOCALEn | locales=LOCALE1,LOCALE2 ...
LOCALEn
- Allows one to set the locale of the system, e.g. 'de_CH.UTF-8'. The
default is 'en_US.UTF-8'. In case the selected locale is not already
available on the system, it is automatically generated on the fly.
- live-config.timezone=TIMEZONE
| timezone=TIMEZONE
- Allows one to set the timezone of the system, e.g. 'Europe/Zurich'. The
default is 'UTC'.
- live-config.keyboard-model=KEYBOARD_MODEL
| keyboard-model=KEYBOARD_MODEL
- Allows one to change the keyboard model. There is no default value
set.
- live-config.keyboard-layouts=KEYBOARD_LAYOUT1,KEYBOARD_LAYOUT2
... KEYBOARD_LAYOUTn |
keyboard-layouts=KEYBOARD_LAYOUT1,KEYBOARD_LAYOUT2 ...
KEYBOARD_LAYOUTn
- Allows one to change the keyboard layouts. If more than one is specified,
the tools of the desktop environment will allow one to switch it under
X11. There is no default value set.
- live-config.keyboard-variants=KEYBOARD_VARIANT1,KEYBOARD_VARIANT2
... KEYBOARD_VARIANTn |
keyboard-variants=KEYBOARD_VARIANT1,KEYBOARD_VARIANT2
... KEYBOARD_VARIANTn
- Allows one to change the keyboard variants. If more than one is specified,
the same number of values as keyboard-layouts values should be specified
as they will be matched one-to-one in the order specified. Blank values
are allowed. The tools of the desktop environment will allow one to switch
between each layout and variant pair under X11. There is no default value
set.
- live-config.keyboard-options=KEYBOARD_OPTIONS
| keyboard-options=KEYBOARD_OPTIONS
- Allows one to change the keyboard options. There is no default value
set.
- live-config.sysv-rc=SERVICE1,SERVICE2
... SERVICEn | sysv-rc=SERVICE1,SERVICE2 ...
SERVICEn
- Allows one to disable sysv services through update-rc.d.
- live-config.utc=yes|no
| utc=yes|no
- Allows one to change if the system is assuming that the hardware clock is
set to UTC or not. The default is 'yes'.
- live-config.x-session-manager=X_SESSION_MANAGER
| x-session-manager=X_SESSION_MANAGER
- Allows one to set the x-session-manager through update-alternatives.
- live-config.xorg-driver=XORG_DRIVER
| xorg-driver=XORG_DRIVER
- Allows one to set xorg driver instead of autodetecting it. If a PCI ID is
specified in /usr/share/live/config/xserver-xorg/DRIVER.ids within
the live system, the DRIVER is enforced for these devices. If both
a boot parameter and an override are found, the boot parameter takes
precedence.
- live-config.xorg-resolution=XORG_RESOLUTION
| xorg-resolution=XORG_RESOLUTION
- Allows one to set xorg resolution instead of autodetecting it, e.g.
1024x768.
- live-config.wlan-driver=WLAN_DRIVER
| wlan-driver=WLAN_DRIVER
- Allows one to set WLAN driver instead of autodetecting it. If a PCI ID is
specified in /usr/share/live/config/broadcom-sta/DRIVER.ids within
the live system, the DRIVER is enforced for these devices. If both
a boot parameter and an override are found, the boot parameter takes
precedence.
- live-config.hooks=filesystem|medium|URL1|URL2|
... |URLn | hooks=medium|filesystem|URL1|URL2|
... |URLn
- Allows one to fetch and execute one or more arbitrary files. Note that the
URLs must be fetchable by wget (http, ftp or file://), the files are
executed in /tmp of the running live system, and that the files needs
their dependencies, if any, already installed, e.g. if a python script
should be executed the system needs python installed. Some hooks for some
common use-cases are available at
/usr/share/doc/live-config/examples/hooks/.
If the file is placed on the live medium, it can be fetched with
file:///lib/live/mount/medium/FILE, or with file:///FILE if
it is in the root filesystem of the live system itself.
All hooks in /lib/live/config-hooks/ in the root filesystem of the live
system can be automatically enabled with the keyword 'filesystem'.
All hooks in /live/config-hooks/ of the live medium can be automatically
enabled with the keyword 'medium'.
If several mechanisms are combined, then filesystem hooks are executed
first, then medium hooks, and last the network hooks.
live-config can be configured (but not activated) through
configuration files. Everything but the shortcuts that can be configured
with a boot parameter can also alternatively be configured through one or
more files. If configuration files are used, the 'boot=live' parameter is
still required to activate live-config.
Note: If configuration files are used, either (preferably)
all boot parameters should be put into the LIVE_CONFIG_CMDLINE
variable, or individual variables can be set. If individual variables are
used, the user is required to ensure that all the necessary variables are
set to create a valid configuration.
Configuration files can be placed either in the root filesystem
itself (/etc/live/config.conf, /etc/live/config.conf.d/*.conf), or on the
live media (live/config.conf, live/config.conf.d/*.conf). If both places are
used for a certain option, the ones from the live media take precedence over
the ones from the root filesystem.
Although the configuration files placed in the configuration
directories do not require a particular name, it is suggested for
consistency reasons to either use 'vendor.conf' or 'project.conf' as a
naming scheme (whereas 'vendor' or 'project' is replaced with the actual
name, resulting in a filename like 'progress-linux.conf').
The actual content of the configuration files consists of one or
more of the following variables.
- LIVE_CONFIG_CMDLINE=PARAMETER1
PARAMETER2 ... PARAMETERn
- This variable corresponds to the bootloader command line.
- LIVE_CONFIG_COMPONENTS=COMPONENT1,COMPONENT2,
... COMPONENTn
- This variable corresponds to the
'live-config.components=COMPONENT1,COMPONENT2, ...
COMPONENTn' parameter.
- LIVE_CONFIG_NOCOMPONENTS=COMPONENT1,COMPONENT2,
... COMPONENTn
- This variable corresponds to the
'live-config.nocomponents=COMPONENT1,COMPONENT2, ...
COMPONENTn' parameter.
- LIVE_DEBCONF_PRESEED=filesystem|medium|URL1|URL2|
... |URLn
- This variable corresponds to the
'live-config.debconf-preseed=filesystem|medium|URL1|URL2|
... |URLn' parameter.
- LIVE_HOSTNAME=HOSTNAME
- This variable corresponds to the
'live-config.hostname=HOSTNAME' parameter.
- LIVE_USERNAME=USERNAME
- This variable corresponds to the
'live-config.username=USERNAME' parameter.
- LIVE_USER_DEFAULT_GROUPS=GROUP1,GROUP2
... GROUPn
- This variable corresponds to the
'live-config.user-default-groups="GROUP1,GROUP2
... GROUPn"' parameter.
- LIVE_USER_FULLNAME="USER
FULLNAME"
- This variable corresponds to the
'live-config.user-fullname="USER FULLNAME"'
parameter.
- LIVE_LOCALES=LOCALE1,LOCALE2
... LOCALEn
- This variable corresponds to the
'live-config.locales=LOCALE1,LOCALE2 ...
LOCALEn' parameter.
- LIVE_TIMEZONE=TIMEZONE
- This variable corresponds to the
'live-config.timezone=TIMEZONE' parameter.
- LIVE_KEYBOARD_MODEL=KEYBOARD_MODEL
- This variable corresponds to the
'live-config.keyboard-model=KEYBOARD_MODEL' parameter.
- LIVE_KEYBOARD_LAYOUTS=KEYBOARD_LAYOUT1,KEYBOARD_LAYOUT2
... KEYBOARD_LAYOUTn
- This variable corresponds to the
'live-config.keyboard-layouts=KEYBOARD_LAYOUT1,KEYBOARD_LAYOUT2
... KEYBOARD_LAYOUTn' parameter.
- LIVE_KEYBOARD_VARIANTS=KEYBOARD_VARIANT1,KEYBOARD_VARIANT2
... KEYBOARD_VARIANTn
- This variable corresponds to the
'live-config.keyboard-variants=KEYBOARD_VARIANT1,KEYBOARD_VARIANT2
... KEYBOARD_VARIANTn' parameter.
- LIVE_KEYBOARD_OPTIONS=KEYBOARD_OPTIONS
- This variable corresponds to the
'live-config.keyboard-options=KEYBOARD_OPTIONS'
parameter.
- LIVE_SYSV_RC=SERVICE1,SERVICE2
... SERVICEn
- This variable corresponds to the
'live-config.sysv-rc=SERVICE1,SERVICE2 ...
SERVICEn' parameter.
- LIVE_UTC=yes|no
- This variable corresponds to the 'live-config.utc=yes|no'
parameter.
- LIVE_X_SESSION_MANAGER=X_SESSION_MANAGER
- This variable corresponds to the
'live-config.x-session-manager=X_SESSION_MANAGER'
parameter.
- LIVE_XORG_DRIVER=XORG_DRIVER
- This variable corresponds to the
'live-config.xorg-driver=XORG_DRIVER' parameter.
- LIVE_XORG_RESOLUTION=XORG_RESOLUTION
- This variable corresponds to the
'live-config.xorg-resolution=XORG_RESOLUTION'
parameter.
- LIVE_WLAN_DRIVER=WLAN_DRIVER
- This variable corresponds to the
'live-config.wlan-driver=WLAN_DRIVER' parameter.
- LIVE_HOOKS=filesystem|medium|URL1|URL2|
... |URLn
- This variable corresponds to the
'live-config.hooks=filesystem|medium|URL1|URL2| ...
|URLn' parameter.
- LIVE_CONFIG_DEBUG=true|false
- This variable corresponds to the 'live-config.debug' parameter.
live-config can be easily customized for downstream
projects or local usage.
Downstream projects can put their components into /lib/live/config
and do not need to do anything else, the components will be called
automatically during boot.
The components are best put into an own debian package. A sample
package containing an example component can be found in
/usr/share/doc/live-config/examples.
It is not really possible to remove components itself in a sane
way yet without requiring either to ship a locally modified
live-config package or using dpkg-divert. However, the same can be
achieved by disabling the respective components through the
live-config.nocomponents mechanism, see above. To avoid to always need
specifying disabled components through the boot parameter, a configuration
file should be used, see above.
The configuration files for the live system itself are best put
into an own debian package. A sample package containing an example
configuration can be found in /usr/share/doc/live-config/examples.
live-config currently features the following components in
/lib/live/config.
- debconf
- allows one to apply arbitrary preseed files placed on the live media or an
http/ftp server.
- hostname
- configures /etc/hostname and /etc/hosts.
- user-setup
- adds a live user account.
- sudo
- grants sudo privileges to the live user.
- locales
- configures locales.
- locales-all
- configures locales-all.
- tzdata
- configures /etc/timezone.
- gdm3
- configures autologin in gdm3.
- kdm
- configures autologin in kdm.
- lightdm
- configures autologin in lightdm.
- lxdm
- configures autologin in lxdm.
- nodm
- configures autologin in nodm.
- slim
- configures autologin in slim.
- xinit
- configures autologin with xinit.
- keyboard-configuration
- configures the keyboard.
- systemd
- configures systemd autologin.
- sysvinit
- configures sysvinit.
- sysv-rc
- configures sysv-rc by disabling listed services.
- login
- disables lastlog.
- apport
- disables apport.
- gnome-panel-data
- disables lock button for the screen.
- gnome-power-manager
- disables hibernation.
- gnome-screensaver
- disables the screensaver locking the screen.
- kaboom
- disables KDE migration wizard (squeeze and newer).
- kde-services
- disables some unwanted KDE services (squeeze and newer).
- policykit
- grant user privilegies through policykit.
- ssl-cert
- regenerating ssl snake-oil certificates.
- anacron
- disables anacron.
- util-linux
- disables util-linux' hwclock.
- login
- disables lastlog.
- xserver-xorg
- configures xserver-xorg.
- broadcom-sta
- configures broadcom-sta WLAN drivers.
- openssh-server
- recreates openssh-server host keys.
- xfce4-panel
- configures xfce4-panel to default settings.
- xscreensaver
- disables the screensaver locking the screen.
- hooks
- allows one to run arbitrary commands from a file placed on the live media
or an http/ftp server.
More information about live-config and the Debian Live project can
be found on the homepage at
<https://wiki.debian.org/DebianLive> and in the manual at
<https://live-team.pages.debian.net/live-manual/>.
Bugs can be reported by submitting a bugreport for the live-config
package in the Bug Tracking System at <http://bugs.debian.org/>
or by writing a mail to the Debian Live mailing list at
<debian-live@lists.debian.org>.
live-config was originally written by Daniel Baumann
<mail@daniel-baumann.ch>. Since 2016 development has been
continued by the Debian Live team.