Use local configuration (zlib). Documentation updates.
This commit is contained in:
parent
6917b236ab
commit
8d8cc0bda4
47
src/.config
47
src/.config
@ -35,20 +35,6 @@ SYSLINUX_SOURCE_URL=http://kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.0
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
# #
|
|
||||||
# This section contains the overlay source bundles and properties #
|
|
||||||
# #
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
# You can find the latest ZLIB source bundles here:
|
|
||||||
#
|
|
||||||
# http://zlib.net
|
|
||||||
#
|
|
||||||
ZLIB_SOURCE_URL=http://zlib.net/zlib-1.2.11.tar.xz
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# #
|
# #
|
||||||
# This section contains configuration properties #
|
# This section contains configuration properties #
|
||||||
@ -96,15 +82,26 @@ USE_PREDEFINED_BUSYBOX_CONFIG=false
|
|||||||
OVERLAY_TYPE=folder
|
OVERLAY_TYPE=folder
|
||||||
|
|
||||||
# This property defines one or more additional overlay software pieces which
|
# This property defines one or more additional overlay software pieces which
|
||||||
# will be generated and placed in the 'work/src/minimal_overlay/rootfs' folder.
|
# will be generated and placed in the directory 'work/overlay_rootfs'. These
|
||||||
# These software pieces will be visible and fully usable after boot. By default
|
# software pieces will be visible and fully usable after boot. Note that the
|
||||||
# this property is disabled because the build process for most of the software
|
# build process for most of the overlay bundles depends on the softawre that
|
||||||
# is host specific and may not work out of the box. Note that if you build any
|
# is already installed on the host machine. The only overlay bundles that are
|
||||||
# overlay software and you are using sparse image file for the overlay structure
|
# guaranteed to work are the ones declared by default. The build process for
|
||||||
# then most probably something will go wrong because the overlay software
|
# most of the other overlay bundles may fail and therefore these bundles are
|
||||||
# requires more than 1MB free space. The solution is to use folder overlay or to
|
# not enabled by default. It is up to you to prepare your host environment and
|
||||||
# edit the script 'xx_generate_iso.sh' and set it to create sparse image file
|
# install all prerequisites for the overlay bundles that you want to build.
|
||||||
# with bigger size.
|
# For starters, you might want to install the 'libncurses-dev' library which
|
||||||
|
# is required by some of the overlay bundles.
|
||||||
|
#
|
||||||
|
# In the future Minimal Linux Live aims to provide fully functional 'sysroot'
|
||||||
|
# and all development host dependencies should be eliminated. However, for now
|
||||||
|
# it is up to you to maintain your host build environment.
|
||||||
|
#
|
||||||
|
# Note that if you build any overlay software and you are using sparse image file
|
||||||
|
# for the overlay structure then most probably something will go wrong because
|
||||||
|
# the overlay software requires more than 1MB free space. The solution is to use
|
||||||
|
# folder overlay or to edit the script 'xx_generate_overlay.sh' and modify it to
|
||||||
|
# create sparse image file with bigger size.
|
||||||
#
|
#
|
||||||
# Currently available overlay software:
|
# Currently available overlay software:
|
||||||
#
|
#
|
||||||
@ -139,6 +136,10 @@ OVERLAY_TYPE=folder
|
|||||||
#
|
#
|
||||||
# Refer to the README file for more information.
|
# Refer to the README file for more information.
|
||||||
#
|
#
|
||||||
|
# Each bundle can have separate '.config' file which overrides any property
|
||||||
|
# which has been provided in this configuration file. Refer to the README
|
||||||
|
# file for more information.
|
||||||
|
#
|
||||||
# The line below is sample which provides Open JDK, Apache Felix and Links.
|
# The line below is sample which provides Open JDK, Apache Felix and Links.
|
||||||
# There is also network functionality provided by the 'dhcp' overlay bundle.
|
# There is also network functionality provided by the 'dhcp' overlay bundle.
|
||||||
#
|
#
|
||||||
|
114
src/README
114
src/README
@ -1,55 +1,54 @@
|
|||||||
|
|
||||||
The easiest way to build "Minimal Linux Live" is to run the following script:
|
The easiest way to build 'Minimal Linux Live' is to run the following script:
|
||||||
|
|
||||||
sh build_minimal_linux_live.sh
|
sh build_minimal_linux_live.sh
|
||||||
|
|
||||||
Note that the build process requires proper toolchain already installed and
|
Note that the build process requires proper toolchain already installed and
|
||||||
configured. Check the project's website for more information:
|
configured. Check the project website for more information:
|
||||||
|
|
||||||
http://minimal.idzona.com
|
http://minimal.idzona.com
|
||||||
|
|
||||||
For Ubuntu and other Debian based operating systems you can use the following
|
For Ubuntu and other Debian based operating systems you can use the following
|
||||||
command in order to resolve the required build dependencies:
|
command in order to resolve the required build dependencies:
|
||||||
|
|
||||||
sudo apt install wget make gawk gcc bc xorriso
|
sudo apt install wget make gawk gcc bc xorriso
|
||||||
|
|
||||||
Once you have your ISO image up and running perhaps you'd like to play with the
|
Once you have your ISO image up and running perhaps you'd like to examine the
|
||||||
configuration file ".config" and see what options you have there. For example
|
configuration file '.config' and see what options you have there. For example,
|
||||||
you can enable the property "OVERLAY_BUNDLES". If you do that you will have
|
you can change the property 'OVERLAY_BUNDLES' and build your own flavor of MLL.
|
||||||
additional software being downloaded, built and installed on the ISO image.
|
|
||||||
|
|
||||||
Currently available overlay bundles:
|
Currently available overlay bundles:
|
||||||
|
|
||||||
* GLIBC - Set of all core GNU C libraries packaged together. Requires ~3MB
|
GLIBC - Set of all core GNU C libraries packaged together. Requires ~3MB
|
||||||
additional space. This overlay bundle is not host specific and
|
additional space. This overlay bundle is not host specific and
|
||||||
can always be built. The libraries are useful if you plan to use
|
can always be built. The libraries are useful if you plan to use
|
||||||
more software after boot.
|
more software after boot.
|
||||||
|
|
||||||
This overlay bundle depends on the GLIBC build process.
|
This overlay bundle depends on the GLIBC build process.
|
||||||
|
|
||||||
* bosh_cli - BOSH command line tool. It can be used as landscape manager for
|
bosh_cli - BOSH command line tool. It can be used as landscape manager for
|
||||||
virtual network and server infrastructures in cloud environment,
|
virtual network and server infrastructures in cloud environment,
|
||||||
e.g. AWS, Google Cloud, etc. The most common use case for this
|
e.g. AWS, Google Cloud, etc. The most common use case for this
|
||||||
tool is to create and manage Cloud Foundry infrastructures.
|
tool is to create and manage Cloud Foundry infrastructures.
|
||||||
|
|
||||||
* cf_cli - Cloud Foundry command line tool. It can be used to manage all
|
cf_cli - Cloud Foundry command line tool. It can be used to manage all
|
||||||
aspects of already existing Cloud Foundry installation, including
|
aspects of already existing Cloud Foundry installation, including
|
||||||
the full software development lifecycle in cloud environment.
|
the full software development lifecycle in cloud environment.
|
||||||
|
|
||||||
* cf_tools - This is metapackage which installs all BOSH and Cloud Foundry
|
cf_tools - This is metapackage which installs all BOSH and Cloud Foundry
|
||||||
tools. Note that in MLL context these tools are mostly useful
|
tools. Note that in MLL context these tools are mostly useful
|
||||||
as remote managers for already existing BOSH and Cloud Foundry
|
as remote managers for already existing BOSH and Cloud Foundry
|
||||||
cloud infrastructures.
|
cloud infrastructures.
|
||||||
|
|
||||||
* coreutils - Set of commonly used GNU executable utilities.
|
coreutils - Set of commonly used GNU executable utilities.
|
||||||
|
|
||||||
* dhcp - DHCP and DNS functionality to connect to the Internet.
|
dhcp - DHCP and DNS functionality to connect to the Internet.
|
||||||
|
|
||||||
* dialog - Shell scripting library for ncurses
|
dialog - Shell scripting library for ncurses
|
||||||
|
|
||||||
This overlay bundle requires ncurses
|
This overlay bundle requires ncurses
|
||||||
|
|
||||||
* Dropbear - SSH server/client. Requires ~1MB additional space. The build
|
Dropbear - SSH server/client. Requires ~1MB additional space. The build
|
||||||
process creates user 'root' with password 'toor'. These are
|
process creates user 'root' with password 'toor'. These are
|
||||||
sample commands which demonstrate how to use Dropbear:
|
sample commands which demonstrate how to use Dropbear:
|
||||||
|
|
||||||
@ -58,83 +57,126 @@ Currently available overlay bundles:
|
|||||||
|
|
||||||
This overlay bundle requires GLIBC.
|
This overlay bundle requires GLIBC.
|
||||||
|
|
||||||
* Felix OSGi - Apache Felix OSGi framework. Requires ~2MB additional space. Use
|
Felix OSGi - Apache Felix OSGi framework. Requires ~2MB additional space. Use
|
||||||
the "felix-start" command to run the Apache Felix OSGi framework.
|
the "felix-start" command to run the Apache Felix OSGi framework.
|
||||||
|
|
||||||
This overlay bundle requires JRE or JDK.
|
This overlay bundle requires JRE or JDK.
|
||||||
|
|
||||||
* fio - I/O load generator that can simulate a wide variety of workloads
|
fio - I/O load generator that can simulate a wide variety of workloads
|
||||||
on RAM or disks. fio is essential for troubleshooting data
|
on RAM or disks. fio is essential for troubleshooting data
|
||||||
bottlenecks.
|
bottlenecks.
|
||||||
|
|
||||||
* JRE / JDK - Oracle's JRE or JDK. Requires ~366MB additional space for JDK.
|
JRE / JDK - Oracle's JRE or JDK. Requires ~366MB additional space for JDK.
|
||||||
This overlay bundle requires some manual preparation steps. Refer
|
This overlay bundle requires some manual preparation steps. Refer
|
||||||
to the "JAVA_ARCHIVE" property in the ".config" file for more
|
to the "JAVA_ARCHIVE" property in the ".config" file for more
|
||||||
detailed information.
|
detailed information.
|
||||||
|
|
||||||
This overlay bundle requires GLIBC. JDK 9 requires ZLIB.
|
This overlay bundle requires GLIBC. JDK 9 requires ZLIB.
|
||||||
|
|
||||||
* kbd - Keyboard utilities and keymaps. For example, you can load
|
kbd - Keyboard utilities and keymaps. For example, you can load
|
||||||
German keyboard layout like this:
|
German keyboard layout like this:
|
||||||
|
|
||||||
loadkeys de
|
loadkeys de
|
||||||
|
|
||||||
* libevent - event notification library API provides a mechanism to execute a
|
libevent - event notification library API provides a mechanism to execute a
|
||||||
callback function when a specific event occurs on a file
|
callback function when a specific event occurs on a file
|
||||||
descriptor or after a timeout has been reached.
|
descriptor or after a timeout has been reached.
|
||||||
|
|
||||||
* kexec_tools - Kexec tools, can be used to boot another kernel from userspace
|
kexec_tools - Kexec tools, can be used to boot another kernel from userspace
|
||||||
|
|
||||||
* Links - Text based browser. Requires ~1MB additional space. Use the
|
Links - Text based browser. Requires ~1MB additional space. Use the
|
||||||
"links" command to activate the browser.
|
"links" command to activate the browser.
|
||||||
|
|
||||||
* Open JDK - The open source JDK. No need for manual steps.
|
Open JDK - The open source JDK. No need for manual steps.
|
||||||
|
|
||||||
This overlay bundle requires GLIBC and ZLIB.
|
This overlay bundle requires GLIBC and ZLIB.
|
||||||
|
|
||||||
* Lua - The Lua Scripting Language 5.3. Requires ~ 800kb additional
|
Lua - The Lua Scripting Language 5.3. Requires ~ 800kb additional
|
||||||
space. Use the "lua" command to run an interactive lua
|
space. Use the "lua" command to run an interactive lua
|
||||||
interpreter.
|
interpreter.
|
||||||
|
|
||||||
* make - GNU make utility
|
make - GNU make utility
|
||||||
|
|
||||||
* MLL Utils - Set of experimental shell scripts (mll-*.sh) which provide
|
MLL Utils - Set of experimental shell scripts (mll-*.sh) which provide
|
||||||
additional functionality, e.g. installer and useful tools.
|
additional functionality, e.g. installer and useful tools.
|
||||||
|
|
||||||
This overlay bundle is currently experimental and its build
|
This overlay bundle is currently experimental and its build
|
||||||
process depends on the host machine.
|
process depends on the host machine.
|
||||||
|
|
||||||
* MLL Source - This overlay bundle provides all MLL source code in the
|
MLL Source - This overlay bundle provides all MLL source code in the
|
||||||
directory 'usr/src'.
|
directory 'usr/src'.
|
||||||
|
|
||||||
* nano - Simple command-line text editor with on-screen shortcuts.
|
nano - Simple command-line text editor with on-screen shortcuts.
|
||||||
|
|
||||||
This overlay bundle requires ncurses.
|
This overlay bundle requires ncurses.
|
||||||
|
|
||||||
* ncurses - "GUI-like" API that runs within a terminal emulator.
|
ncurses - "GUI-like" API that runs within a terminal emulator.
|
||||||
|
|
||||||
* nweb - nweb is a very small and easy to use webserver, it is run
|
nweb - nweb is a very small and easy to use webserver, it is run
|
||||||
automatically on port 80. To portforward port 80 from the
|
automatically on port 80. To portforward port 80 from the
|
||||||
guest (minimal) to port 8080 on the host add
|
guest (minimal) to port 8080 on the host add
|
||||||
'-net nic,model=e1000 -net user,hostfwd=tcp::8080-:80' to
|
'-net nic,model=e1000 -net user,hostfwd=tcp::8080-:80' to
|
||||||
'cmd' in the qemu.sh file.
|
'cmd' in the qemu.sh file.
|
||||||
|
|
||||||
* stress - Simple workload generator. Imposes a configurable amount of CPU,
|
stress - Simple workload generator. Imposes a configurable amount of CPU,
|
||||||
memory, I/O, and disk stress on the system. stress is useful for
|
memory, I/O, and disk stress on the system. stress is useful for
|
||||||
troubleshooting CPU and RAM.
|
troubleshooting CPU and RAM.
|
||||||
|
|
||||||
* util_linux - Set of executable utilities distributed by the Linux Kernel
|
util_linux - Set of executable utilities distributed by the Linux Kernel
|
||||||
similar to busybox or GNU Core Utils.
|
similar to busybox or GNU Core Utils.
|
||||||
|
|
||||||
Some packages in this overlay bundle require ncurses.
|
Some packages in this overlay bundle require ncurses.
|
||||||
|
|
||||||
* vim - An advanced text editor that seeks to provide the power of
|
vim - An advanced text editor that seeks to provide the power of
|
||||||
the de-facto Unix editor 'Vi', with a more complete feature
|
the de-facto Unix editor 'Vi', with a more complete feature
|
||||||
set.
|
set.
|
||||||
|
|
||||||
This package will create symlinks on top of vi.
|
This package will create symlinks on top of vi.
|
||||||
|
|
||||||
* ZLIB - Software library used for data compression.
|
ZLIB - Software library used for data compression.
|
||||||
|
|
||||||
|
The overlay bundles can be found in this directory:
|
||||||
|
|
||||||
|
minimal_overlay/bundles
|
||||||
|
|
||||||
|
Each overlay bundle can have its own '.config' file. All properties in this
|
||||||
|
configuration file will override the same properties in the main 'config'
|
||||||
|
file. Also, each overlay bundle can declare list of bundle dependencies in
|
||||||
|
the file 'bundle_deps'. The bundles in this file are built before the main
|
||||||
|
bundle.
|
||||||
|
|
||||||
|
The overlay build system is independent from the main build system. However,
|
||||||
|
some bundles depend on build artifacts from the main build process, so it is
|
||||||
|
highly recommended to build MLL before you use the overlay build system.
|
||||||
|
|
||||||
|
You can build all bundles declared in the main '.config' file like this:
|
||||||
|
|
||||||
|
cd minimal_overlay
|
||||||
|
./overlay_build
|
||||||
|
|
||||||
|
You can build individual overlay bundle like this:
|
||||||
|
|
||||||
|
cd minimal_overlay
|
||||||
|
./overlay_build bundle_name
|
||||||
|
|
||||||
|
You can build more two or more bundles if you separate them with comma:
|
||||||
|
|
||||||
|
cd minimal_overlay
|
||||||
|
./overlay_build bundle_name_a,bundle_name_b,bundle_name_c
|
||||||
|
|
||||||
|
The simplest way to add something to MLL is to put whatever you want in
|
||||||
|
the following folder:
|
||||||
|
|
||||||
|
minimal_overlay/rootfs
|
||||||
|
|
||||||
|
The content of this folder becomes visible at runtime. You can add your
|
||||||
|
own software or configurations. The content in this folder takes higher
|
||||||
|
priority which means that you can override everything which is provided
|
||||||
|
by Minimal Linux Live.
|
||||||
|
|
||||||
|
As already mentioned, the main configuration file is '.config'. It is
|
||||||
|
extensively documented and you can refer to it for detailed information
|
||||||
|
regarding all configuration properties.
|
||||||
|
|
||||||
### ### ###
|
### ### ###
|
||||||
|
|
||||||
@ -145,6 +187,6 @@ the time there is a single meta-package which installs most of the stuff that
|
|||||||
you need.
|
you need.
|
||||||
|
|
||||||
The build proces is slow, so be prepared to wait. In the end you should have
|
The build proces is slow, so be prepared to wait. In the end you should have
|
||||||
the ISO image file "minimal_linux_live.iso" in the same folder where you
|
the ISO image file 'minimal_linux_live.iso' in the same folder where you
|
||||||
started the build process. You can burn the ISO image on CD/DVD or (better) run
|
started the build process. You can burn the ISO image on CD/DVD or (better) run
|
||||||
it with PC emulator like QEMU or VirtualBox.
|
it with PC emulator like QEMU or VirtualBox.
|
||||||
|
5
src/minimal_overlay/bundles/zlib/.config
Normal file
5
src/minimal_overlay/bundles/zlib/.config
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# You can find the latest ZLIB source bundles here:
|
||||||
|
#
|
||||||
|
# http://zlib.net
|
||||||
|
#
|
||||||
|
ZLIB_SOURCE_URL=http://zlib.net/zlib-1.2.11.tar.xz
|
@ -4,15 +4,13 @@ set -e
|
|||||||
|
|
||||||
. ../../common.sh
|
. ../../common.sh
|
||||||
|
|
||||||
# Grab everything after the '=' character.
|
# Read the common configuration properties.
|
||||||
DOWNLOAD_URL=$(grep -i ZLIB_SOURCE_URL $MAIN_SRC_DIR/.config | cut -f2 -d'=')
|
DOWNLOAD_URL=`read_property ZLIB_SOURCE_URL`
|
||||||
|
USE_LOCAL_SOURCE=`read_property USE_LOCAL_SOURCE`
|
||||||
|
|
||||||
# Grab everything after the last '/' character.
|
# Grab everything after the last '/' character.
|
||||||
ARCHIVE_FILE=${DOWNLOAD_URL##*/}
|
ARCHIVE_FILE=${DOWNLOAD_URL##*/}
|
||||||
|
|
||||||
# Read the 'USE_LOCAL_SOURCE' property from '.config'
|
|
||||||
USE_LOCAL_SOURCE="$(grep -i USE_LOCAL_SOURCE $MAIN_SRC_DIR/.config | cut -f2 -d'=')"
|
|
||||||
|
|
||||||
if [ "$USE_LOCAL_SOURCE" = "true" -a ! -f $MAIN_SRC_DIR/source/overlay/$ARCHIVE_FILE ] ; then
|
if [ "$USE_LOCAL_SOURCE" = "true" -a ! -f $MAIN_SRC_DIR/source/overlay/$ARCHIVE_FILE ] ; then
|
||||||
echo "Source bundle $MAIN_SRC_DIR/source/overlay/$ARCHIVE_FILE is missing and will be downloaded."
|
echo "Source bundle $MAIN_SRC_DIR/source/overlay/$ARCHIVE_FILE is missing and will be downloaded."
|
||||||
USE_LOCAL_SOURCE="false"
|
USE_LOCAL_SOURCE="false"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user