summaryrefslogtreecommitdiff
path: root/lx-trainer-vm
AgeCommit message (Collapse)Author
2019-04-26dd-multi.sh: add --keep-filesJohn Ogness
The first couple steps of the dd-multi.sh script is to: 1. make a sparse copy of the original image 2. loop mount the copy 3. unpack the layers to the loop mount 4. create a vmdk of the copy 5. copy the image and vmdk to the usb drives If many USB drives need to be prepared at once, usually the dd-multi.sh script will need to be called multiple times (due to not enough USB-3 ports being available). However, there is no need for steps 1-4 to run each time. Add a --keep-files argument that will not delete the copy and vmdk files on completion. The --keep-files argument also tells the dd-multi.sh script to look for existing copy and vmdk files. If they are found, they are used. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-04-09dd-multi.sh: inform the trainer how much to ddJohn Ogness
The dd step is the longest, so showing the progress is nice. But dd does not show how big the file is. Hard-code the size since we know how big it is. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-04-09dd-multi.sh: use dd features from stretch and 128M blocksJohn Ogness
All trainers are now using stretch (or higher), so use the status=progress feature. Also, increase the blocksize to 128M since that amount should be available on the cloning host. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-04-09lx-trainer-vm: add linaro aarch64 toolchainJohn Ogness
Add the aarch64 toolchain from linaro. Use the same version as the armhf toolchain: 6.3.1-2017.05. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-04-09lx-trainer-vm: set preseed for man-dbJohn Ogness
If the man-db preseed is not set, the man database is not created by elbe. This means that things like: man -k timer won't work. Preceed the configuration so that the database exists immediately. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-02-28lx-trainer-vm: add kernel debugging symbolsJohn Ogness
This is useful when demonstrating crash kernels with the Debian kernel. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-02-28lx-trainer-vm: add required preseeding for jackd2John Ogness
When installing jackd2, it is required that the user choose if realtime options are allowed. Say "yes" in the preseeding. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-02-25lx-trainer-vm: add debconf-utilsJohn Ogness
It is nice to have debconf-get-selections so that the preseeding values can be investigated. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-02-25lx-trainer-vm: install lots of new packagesJohn Ogness
(helps for a comfortable vmware experience) open-vm-tools-desktop (requested from training participants) vim-gtk3 terminator iotop bash-completion (compression tools for building LZ4-compressed kernel/initramfs) liblz4-tool (realtime stress testing) stress-ng (fastboot tool) prelink (tool for devel/debugging) clang (packages for building new kernelshark) tig cmake libjson-c-dev freeglut3-dev libxmu-dev libxi-dev Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-02-15lx-trainer-vm: add manpages from stretch-backportsJohn Ogness
With commit 80aaf492("lx-trainer-vm: take manpages from stretch-backports"), elbe was no longer able to build the rootfs because manpages-dev also requires manpages from backports. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-02-15lx-trainer-vm: add graphvizJohn Ogness
This has the "dot" tool for visualizing systemd boot stats. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-02-01lx-trainer-vm: take manpages from stretch-backportsJohn Ogness
We want pthread_mutex_consistent, which is not in stretch. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-02-01dd-multi.sh: add sleep for caution, copy vmdk in parallelJohn Ogness
After calling partprobe, userspace may need a moment to delete any previously existing device nodes. Sleep a second to give userspace a chance to do this before checking for the nodes to appear. Also, copy the vmdk files in parallel. Otherwise it takes forever to setup the USB disks. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-02-01lx-trainer-vm: add qtbase5-devJohn Ogness
The qt5 base dev files allow building of the ivshmem software device. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-01-28dd-multi: create vmdk partition instead of /home paritionJohn Ogness
As of 6f5bc54("lx-trainer-vm: increase image size to 64GiB") the root filesystem is now large enough for all layers and training work. So there is no reason to create a separate /home partition. Change the dd-multi.sh script to instead: - create an exfat partition - convert the image to VMDK format and copy to exfat partition This allows participants who cannot boot from USB to be able to use VMware or VirtualBox during the training. They need only to create a virtual machine and set the "training-hd.vmdk" file as the hard drive. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-01-28dd-multi: rename HOMEPT to EXTRAPTJohn Ogness
Rename the variable representing the extra partition. Until now this was /home but it will be changed to be an extra partition. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-01-28lx-trainer-vm: increase image size to 64GiBJohn Ogness
Until now, a separate /home partition was created during post-build. However, now that the entire root filesystem will also need to exist as a VMDK file, it is simpler to just have the entire root filesystem in a single partition. 64GiB is currently large enough for the largest training: Yocto, 20GiB in layers with worst case about 10GiB in data generated during the training. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2019-01-28lx-trainer-vm: add exfat tools and virtualbox driversJohn Ogness
The generated image will be post-modified to include an exfat partition with a VMDK version of the image stored. This can be used by VMware or VirtualBox in case the image cannot be directly booted. Having the exfat tools in the image allows for usage of that partition by the booted system (if needed). VirtualBox needs the dkms drivers in order to provide a larger graphic screen. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-12-11lx-trainer-image: add networking toolsJohn Ogness
For the networking trainings, additional tools are needed. Add them: - ebtables - arptables - nftables - iptables-nftables-compat - ethtool - traceroute - mtr - iptraf - quagga Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-11-29lx-trainer-vm: add pwgenJohn Ogness
A nice tool to quickly generate secure passwords. For example with: pwgen -sy 32 1 Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-11-22lx-trainer-vm: add libpam-capJohn Ogness
The security schulung has an example involving capabilities assigned via PAM login. This package is needed for it. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-11-21lx-trainer-vm: set root:root as /opt/* ownerJohn Ogness
The linaro toolchain creates files with some obscure user/group. Instead of trusting the owners/permissions of the downloaded archives, recursively set all /opt to root:root. If for some reason any files are setuid, this will also clear that bit. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-11-09lx-trainer-img: use FQDN for nereusJohn Ogness
If building the image from a machine other than nereus, the name nereus (used in fine-tuning wget) cannot be resolved. Use the FQDN instead. That works (as long as you are in the Linutronix network). Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-10-19lx-trainer-vm: add iwJohn Ogness
This is the wireless tool to use for the future. iwlist/iwconfig are old. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-10-08lx-trainer-vm: setup console in finetuningJohn Ogness
Normally the console font and keyboard is setup on first boot. But this can be done in the finetuning so that we do not rely on a "first boot" for the console to be setup correctly. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-10-08lx-trainer-vm: use firmware from stretch backportsJohn Ogness
Most of the firmware packages have versions in stretch backports that support more hardware. Use these in an attempt to work for all laptops. NOTE: There are a few firmware packages that are not in stretch backports. These are still taking from stretch. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-09-28lx-trainer-vm: add tftp and ftpJohn Ogness
During a training I needed these tools. Especially tftp is useful for verifying that the tftp server is available. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-09-06dd-multi: workaround mount/umount issueJohn Ogness
It seems that calling umount directly after mount can lead to a busy error. With strace on umount the problem goes away. It must be a very small window. Someone should debug the umount syscall on this. It is reproducable with: ./dd-multi.sh lx-trainer.img /dev/sdx (i.e. regular training image and no layers) Implement a workaround for this for now. From the comments... If there were no layer files added, umount might return a busy error since we just mounted. (Possibly a kernel bug.) By accessing the filesytem before unmounting it, the mount/umount problem seems to go away. Use "ls" to access the filesystem. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-06-20lx-trainer-vm: add mate power managerJohn Ogness
In the last 2 trainings I've had participants with batteries going dead because there was no display for the battery status. The mate power manager provides this feature. Add it to the image. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-06-18lx-trainer-vm: add packages missing from audio schulungJohn Ogness
During the audio schulung, we needed to manually install: qjackctl libjack-dev Also, compiling the new kernels now requires: libelf-dev Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-06-09lx-trainer-vm: add audio packages for juce workshopJohn Ogness
JUCE itself is not installed (it is broken in stretch). Instead, all JUCE dependencies are installed and the upstream JUCE will be used for the workshop. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-06-09lx-trainer-vm: remove duplicate package namesJohn Ogness
Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-05-15lx-trainer-vm: yocto: add toaster/documentation depsJohn Ogness
For the yocto training, some important packages are missing. Toaster requires pip for python3. The documentation requires xsltproc and fop. Install them. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-05-14secureboot: remove references to lx-trainer.imgJohn Ogness
Use the image/device argument now passed to the script. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-05-07secureboot: allow device or image specificationJohn Ogness
Rather than assuming the image file lx-trainer.img in the current working directory, require an argument that specifies this. Also, allow this argument to be a block device to perform the secure boot preparation on devices already prepared with the image. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-05-04dd-multi.sh: unpack layers in parallelJohn Ogness
Start the untar processes in parallel. This will take advantage of file caching and should max out the USB bandwidth. This is important because some trainings (like Yocto) have huge layers. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-05-04dd-multi.sh: check if /home is empty before copyingJohn Ogness
/home shouldn't be empty, but check just in case. Getting an error in the middle of the script is very annoying. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-05-04dd-multi.sh: check for layers before beginningJohn Ogness
It is very annoying if the script aborts in the middle because of something like missing files. Check for them in the beginnning. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-05-04lx-trainer-vm: upgrade eclipseJohn Ogness
... from neon-3 to oxygen-3a. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-04-20secureboot: add make_lxtrainer_secureboot.sh scriptJohn Ogness
Eventually the lx-trainer image will come with secure boot automatically. But for now, we have to manually adjust the image. Here is a script to do that. Also update the README. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-04-20dd-multi.sh: unpack the tarballs directlyJohn Ogness
Tarballs are copied to the USB drives and then unpacked in a chroot. However, this means the data will travel across the bus three times! For large layers this is craziness. Since --numeric-owner is used anyway, just unpack the tarballs directly. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-04-05dd-multi: update/cleanup for gpt supportJohn Ogness
- require gpt images and expect partition layout and sizes from lx-trainer-vm.xml - cleanup output - use dd instead of cat (to allow progress status) - use parted instead of fdisk (necessary to fix gpt table) - remove unnecessary partprobe's Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-04-05lx-trainer-vm: do not explicitly mount debugfsJohn Ogness
Debian will mount debugfs by default. Do not explicitly specify it in /etc/fstab. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-04-05lx-trainer-vm: change boot to uefi/bios hybridJohn Ogness
This requires devel/elbe-3.0 branch to build! In particular, commit 79adee34de55 ("Add support for hybrid images (UEFI+Bios)") Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-04-05lx-trainer-vm: do not create lx-trainer.tar.gzJohn Ogness
Creating this tarball takes a long time and a lot of space on the initvm. Since this file is not needed, stop creating it. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-03-20dd-multi.sh: loop partprobe until successJohn Ogness
When partitioning many devices, it is possible that partprobe returns with a "EBUSY" error. Loop until partprobe succeeds. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-03-19lx-trainer.img: force nfs server to version 2John Ogness
In order for the qemu arm vm's to nfs root out-of-the-box, either the client must specify v3 or the server must restrict itself to version 2. Rather than expecting special arguments from the client, force the lx-trainer image to use nfs server version 2. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-03-02add colordiff toolJohn Ogness
Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-02-23dd-multi.sh: wait for new partitionsJohn Ogness
There is a latency between when partprobe is called and when udev actually creates the device nodes. Wait for the desired device nodes to appear before continuing. Signed-off-by: John Ogness <john.ogness@linutronix.de>
2018-02-23add gnome-screenshotJohn Ogness
Signed-off-by: John Ogness <john.ogness@linutronix.de>