-#!/bin/sh
+#!/bin/bash
set -ex
-apt-get -y install --no-install-recommends initramfs-tools libpng16-16 strace libsensors5 libexpat1 libdrm2
+apt-get -y install --no-install-recommends \
+ ca-certificates \
+ initramfs-tools \
+ libpng16-16 \
+ strace \
+ libsensors5 \
+ libexpat1 \
+ libdrm2 \
+ libdrm-nouveau2 \
+ firmware-qcom-media \
+ wget \
+ xz-utils
passwd root -d
chsh -s /bin/sh
-ln -s /bin/sh /init
+
+cat > /init <<EOF
+#!/bin/sh
+export PS1=lava-shell:
+exec sh
+EOF
+chmod +x /init
+
+mkdir -p /lib/firmware/rtl_nic
+wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/rtl_nic/rtl8153a-3.fw -O /lib/firmware/rtl_nic/rtl8153a-3.fw
#######################################################################
# Strip the image to a small minimal system without removing the debian
# toolchain.
+# xz compress firmware so it doesn't waste RAM at runtime. Except db820c's
+# GPU firmware, due to using a precompiled kernel without compression support.
+find /lib/firmware -type f -print0 | \
+ grep -vz a530 | \
+ xargs -0r -P4 -n4 xz -T1 -C crc32
+ln -s /lib/firmware/qcom/a530* /lib/firmware/
+
# Copy timezone file and remove tzdata package
rm -rf /etc/localtime
cp /usr/share/zoneinfo/Etc/UTC /etc/localtime
"init-system-helpers "\
"bash "\
"cpio "\
+"xz-utils "\
"passwd "\
"libsemanage1 libsemanage-common "\
"libsepol1 "\
-"gzip "\
-"gnupg "\
"gpgv "\
"hostname "\
"adduser "\
"debian-archive-keyring "\
-"libgl1 libgl1-mesa-dri libglapi-mesa libglvnd0 libglx-mesa0 libegl-mesa0 libgles2 "\
-"libllvm7 "\
-"libx11-data libthai-data "\
-"systemd dbus "\
# Removing unneeded packages
for PACKAGE in ${UNNEEDED_PACKAGES}
# remove NSS support for nis, nisplus and hesiod
rm usr/lib/*/libnss_hesiod*
rm usr/lib/*/libnss_nis*
-
-rm bin/tar