An installer and live system for Wizzie Wizzie Computer Coding Club. It contains all the software identified as useful for our workshops.
This repository contains a number of scripts to be used with Debian Live. When run, they will generate an OS image that can be loaded on a USB stick. The USB stick can then be used as both:
-
A live system: run the environment completely off the USB drive without installing to disk, or altering the host computer in any way
-
An installer: copy the system to a computer for use without the USB drive
The final product of a build is a disk image that you can transfer to a USB drive. There are two different ways of running a build:
- With Docker: this is the simplest way and is preferred.
- Natively on Debian: takes longer to set up, but it's the only option if you are on a system that doesn't support Docker.
Independently of the chosen method, running a build will take a while. The first time it will download packages over the Internet and will take longer. Fortunately, many of these will be cached making this step faster in subsequent builds.
Start by cloning this repository if you haven't yet:
$ git clone https://github.com/pablobm/w2c3-livecd.git
We also need to manually provide the Flash plugin:
- Go to Adobe Flash's website (https://get.adobe.com/flashplayer).
- Download the Linux 64bit version.
- Put this file in the folder
config/includes.chroot/tmp
in this project.
Next, follow the instructions on the section appropriate for your preferred build method.
For this you need:
- A machine and operating system able to run Docker. Any modern computer should be able to run this, on Windows, Linux, or macOS. I'm not an expert though.
- Docker installed: https://www.docker.com/get-started.
- GNU Make. How to install this depends on your system. For example, on Debian it would be
sudo apt-get install make
. On macOS with Homebrew, you can dobrew install make
.
If everything is in place, you can now run a build:
$ make
The end results will appear in the output/
folder.
If your machine doesn't support Docker, or you otherwise prefer not to use it, follow this guide. You'll need a Debian Stretch (version 9) system.
Even though this section is called "the native option", a virtual machine is still recommended.
Note that the given lines assume that you are root, as it's required in the last step anyway.
If you choose to use a virtual machine, the setup might be different depending on the software you use. This is the process with VirtualBox:
-
Download a Debian ISO. Version should be Stretch (v9) and architecture amd64: https://www.debian.org/distrib/netinst. The "Small CD" one should do it.
-
Install VirtualBox, downloading the appropriate version for your host OS: https://www.virtualbox.org/wiki/Downloads.
-
Create VM to run Linux Debian 64 bit. I recommend a 25GB hard drive. I'm also assigning it 1024 MB memory, but can't be sure what's better there.
-
Install and boot.
-
You'll need the Guest Additions package, which in turns requires some development packages. On the menu bar, go to "Devices > Install Guest Additions CD image", and install as follows (as root):
# apt-get install make gcc linux-headers-amd64
# cd /media/cdrom
# sh VBoxLinuxAdditions.run
Finally restart the VM and you'll be set.
This should be enough:
# apt-get install live-build imagemagick
Finally you run Make. This has to be done as root (or so it appeared last time I tried to just sudo it):
# make image
The end results will appear in the output/
folder.
There are some "special" customisations on these scripts, but mostly it's all pretty standard.
Check out the Debian Live manual to get familiar with the basics of creating a build. There's a pretty good "For the impatient" section to get started.
Some quick notes:
-
See
config/package-lists
for lists of packages that are included in the build -
On
config/includes.chroot/etc
you can find some post-install configuration. Examples include desktop shortcuts (seeconfig/includes.chroot/etc/skel/Desktop/
) or a setting to automatically log the user in without asking for a password (seeconfig/includes.chroot/etc/lightdm/lightdm.conf
) -
The file
config/includes.binary/install/preseed.cfg
lists pre-selected answers to some questions asked during the installation process. These questions will be skipped during install of the resulting distribution. This file is referred to from the config auto script (auto/config
) with the option--debian-installer-preseedfile preseed.cfg
-
Again on
auto/config
, we enable the "contrib" and "non-free" archive areas. This is because some of our laptops require proprietary drivers not available in the main distribution.
A strange problem with proprietary drivers is that they don't seem to apply during installation. They are OK after install, or when running the live system.
This means that, for example, it's not possible to download updated packages from the Internet if you are installing on a laptop that requires proprietary network drivers.
Initially I thought this would be a problem, and set out to fix it. I put together a writeup here: https://blog.pablobm.com/post/125538410950/proprietary-drivers-on-a-custom-debian-installer
However, this is not a problem anymore as at present we include all the packages we need. We want to avoid using the Internet during installation, because we normally run our coding club on places where WiFi is spotty at best.
At some point I'll remove the changes I made to make this work.
For root access, use sudo
. The password is just password
. On older installs, use su
with the same password. Feel free to tinker. The worst that can happen is that the machine has to be reinstalled again, so no problem.