#!/bin/bash # This script do the following: # Download Debian Initrd for Stretch, Buster, Jessie, Wheezy and Sid # Download firmwares: # bnx2 # all non-free (for tigon) # Extract all downloaded files # Make a new initrd with the previous firmwares if command -v in.tftpd > /dev/null; then source /etc/default/tftpd-hpa else TFTP_DIRECTORY="/srv/tftp" fi for DISTRO in stretch buster jessie wheezy sid; do # For ALL Debian's version TEMP_DIR=$(mktemp -d) pushd "${TEMP_DIR}" > /dev/null # Download and uncompress original initrd #wget http://ftp.fr.debian.org/debian/dists/${DISTRO}/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz wget --quiet http://ftp.fr.debian.org/debian/dists/${DISTRO}/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz mkdir "${TEMP_DIR}"/mkinitrd pushd "${TEMP_DIR}"/mkinitrd/ > /dev/null zcat ../initrd.gz | cpio -iv popd > /dev/null # Download bnx2's firmware and uncompress it #wget http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-bnx2_0.43_all.deb wget --quiet http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-bnx2_0.43_all.deb dpkg-deb -x firmware-bnx2_0.43_all.deb "${TEMP_DIR}"/mkinitrd # Download tigon(all non-free)'s firmware and uncompress it #wget http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-linux-nonfree_0.43_all.deb wget --quiet http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-linux-nonfree_0.43_all.deb dpkg-deb -x firmware-linux-nonfree_0.43_all.deb "${TEMP_DIR}"/mkinitrd # Download myricom for IBM #wget http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-myricom_0.43_all.deb wget --quiet http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-myricom_0.43_all.deb dpkg-deb -x firmware-myricom_0.43_all.deb "${TEMP_DIR}"/mkinitrd # Download qlogic #wget http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-qlogic_0.43_all.deb wget --quiet http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-qlogic_0.43_all.deb dpkg-deb -x firmware-qlogic_0.43_all.deb "${TEMP_DIR}"/mkinitrd # Download iwlwifi #wget http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-iwlwifi_20170823-1_all.deb -O firmware-iwlwifi_all.deb wget --quiet http://ftp.fr.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-iwlwifi_20170823-1_all.deb -O firmware-iwlwifi_all.deb dpkg-deb -x firmware-iwlwifi_all.deb "${TEMP_DIR}"/mkinitrd # Make a new initrd mv initrd.gz initrd_orig.gz pushd "${TEMP_DIR}"/mkinitrd/ > /dev/null find . -print0 | cpio -0 -H newc -ov | gzip -c > ../initrd.gz popd > /dev/null # Move it to PXE Debian installer mkdir -p ${TFTP_DIRECTORY}/installer/debian/${DISTRO}/amd64/ mv initrd.gz ${TFTP_DIRECTORY}/installer/debian/${DISTRO}/amd64/initrd_firm.gz popd > /dev/null # Clean temp file rm -rf "${TEMP_DIR}" done exit 0